
Global Context【免费下载链接】home-managerManage a user environment using Nix [maintainerkhaneliman, rycee]项目地址: https://gitcode.com/GitHub_Trending/ho/home-managerYou are a helpful AI assistant for software development.Coding StandardsFollow consistent code styleWrite clear commentsTest your changes它包含三要素角色定义You are a helpful AI assistant for software development.、章节标题## Coding Standards以及可执行的行为清单。在 Antigravity CLI 的工作方式中这类文件会被写入 ~/.gemini/ 目录作为每次会话的全局上下文自动加载相当于把代码风格一致、写清晰注释、提交前测试这类团队规范固化到 AI 助手的系统提示中。值得注意的是这份内容在 [模块的 context 选项示例](https://link.gitcode.com/i/36be0194968a1b2599dada8df06de785) 中被一字不差地引用说明它就是该项目认可的全局上下文标准范式。 ## 二、核心选项programs.antigravity-cli.context 在 home-manager 中全局上下文的声明入口是 programs.antigravity-cli.context 选项定义于 [modules/programs/antigravity-cli.nix#L357-L399](https://link.gitcode.com/i/29100bdae1ced8b18a1c2eb5c78d3800) nix context lib.mkOption { type lib.types.attrsOf (lib.types.either lib.types.lines lib.types.path); default { }; ... };该选项的类型是属性集每个键值对遵循两条规则属性名即文件名属性名会成为生成文件的文件名并自动追加.md扩展名。例如GEMINI ...;生成GEMINI.mdAGENTS ./context.md;生成AGENTS.md值有两种形态内联字符串lib.types.lines直接把多行文本写进 Nix 配置适合较短、随配置走的内容文件路径lib.types.path引用仓库内或本机某个.md文件适合较长、需要单独维护的内容。此外context的说明中还给出一个重要配套项可以通过settings.context.fileName自定义 Antigravity CLI 实际查找的上下文文件名详见下文第四节。三、完整配置示例内联内容与文件路径混用测试用例 context.nix 给出了一个三种内容形态混用的完整示例这也是官方测试验证的标准配置{ pkgs, lib, options, ... }: { programs.gemini-cli { enable true; package pkgs.writeShellScriptBin gemini-cli ; context { # 内联内容GEMINI.md GEMINI # Global Context You are a helpful AI assistant for software development. ## Coding Standards - Follow consistent code style - Write clear comments - Test your changes ; # 文件路径AGENTS.md内容即 context.md AGENTS ./context.md; # 另一份内联内容CONTEXT.md CONTEXT Additional context for specialized tasks. ; }; settings { context.fileName [ AGENTS.md CONTEXT.md GEMINI.md ]; }; }; }值得注意三点示例中写的是programs.gemini-cli旧名称但context等选项在 模块导入段 通过lib.mkRenamedOptionModule被自动重定向到programs.antigravity-cli因此新配置应直接使用programs.antigravity-cli.contextGEMINI、CONTEXT是内联字符串AGENTS是./context.md文件路径三者共存互不冲突演示了同一选项下的两种取值形态settings.context.fileName按优先级列出 Antigravity CLI 会扫描的上下文文件名声明了哪些.md文件会被实际纳入会话上下文。四、生成文件的落盘位置与底层实现全局上下文文件的生成逻辑在 modules/programs/antigravity-cli.nix#L484-L486home.file lib.mapAttrs ( n: v: lib.nameValuePair .gemini/${n}.md ( if lib.isPath v then { source v; } else { text v; } ) ) cfg.context;实现要点可归纳为配置写法底层处理生成结果NAME 多行文本;text v直接写入~/.gemini/NAME.mdNAME ./path/to/file.md;source v作为源文件~/.gemini/NAME.md内容与原文件一致也就是说无论选择内联还是文件引用最终都会统一落到~/.gemini/属性名.md属性名自动补上.md后缀。这与settings.context.fileName的默认查找行为如AGENTS.md、CONTEXT.md、GEMINI.md天然衔接——你声明的每个属性名应当落在 Antigravity CLI 会读取的文件名集合内否则文件生成了也不会被加载。默认模型相关的内容如defaultModel写入$GEMINI_MODEL与上下文文件彼此独立不影响本选项的落盘。五、测试验证nmt 如何断言上下文文件正确生成home-manager 对上下文功能有完整的自动化测试见 tests/modules/programs/antigravity-cli-legacy/context.nix#L61-L77nmt.script assertFileExists home-files/.gemini/GEMINI.md assertFileContent home-files/.gemini/GEMINI.md \ ${./context-inline.md} assertFileExists home-files/.gemini/AGENTS.md assertFileContent home-files/.gemini/AGENTS.md \ ${./context.md} assertFileExists home-files/.gemini/CONTEXT.md assertFileContent home-files/.gemini/CONTEXT.md \ ${./context-additional.md} assertFileExists home-path/etc/profile.d/hm-session-vars.sh assertFileNotRegex home-path/etc/profile.d/hm-session-vars.sh \ GEMINI_MODEL ;【免费下载链接】home-managerManage a user environment using Nix [maintainerkhaneliman, rycee]项目地址: https://gitcode.com/GitHub_Trending/ho/home-manager创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考