get-shit-done 的 CLAUDE.md 模板解析:7 分区标记驱动的 Claude Code 项目上下文自动生成机制
发布时间:2026/9/10 13:42:49 锦皓数字建站

get-shit-done 的 CLAUDE.md 模板解析7 分区标记驱动的 Claude Code 项目上下文自动生成机制【免费下载链接】get-shit-doneA light-weight and powerful meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES.项目地址: https://gitcode.com/GitHub_Trending/getshi/get-shit-done在 Claude Code 项目中CLAUDE.md是 Claude 每次会话启动时读取的项目级指令文件它的质量直接决定 Agent 对项目身份、技术栈、代码约定、架构与工作流的理解程度。get-shit-doneGSD为此提供了一套可自动生成、可分区独立更新、可回退降级的CLAUDE.md模板由gsd-tools generate-claude-md子命令驱动。本文以 get-shit-done/templates/claude-md.md 为骨架结合 sdk/src/query/profile-output.ts 的底层实现完整讲解模板的 7 个标记分区、fallback 行为、marker 更新协议以及如何把分散在.planning/下的规划产物PROJECT、STACK、CONVENTIONS、ARCHITECTURE与各目录下的 Skills 汇总成一份可被 Claude 直接消费的单一上下文文件。读完本文你将理解 GSD 如何让 CLAUDE.md 的维护从手工手写、极易漂移升级为源文件驱动、分区精准更新。模板定位由generate-claude-md管理的项目根 CLAUDE.md模板的头部明确交代了它的用途与职责边界它是项目根目录CLAUDE.md的模板由gsd-tools generate-claude-md自动生成全文由7 个 marker 界定marker-bounded的分区构成每个分区都可以独立更新其中6 个分区project、stack、conventions、architecture、skills、workflow enforcement由generate-claude-md子命令管理Profile开发者画像分区由generate-claude-profile独占管理generate-claude-md只在新建文件时写入占位符。这一分工在源码中得到精确印证generateClaudeMd的MANAGED_SECTIONS常量仅包含六个分区profile-output.ts而CLAUDE_MD_PROFILE_PLACEHOLDER占位符块与 profile 的实际写入逻辑含--global、--refresh、目标路径解析则属于generate-claude-profile的职责profile-output.ts。这意味着两份生成器可以在同一文件中分域而治互不覆盖。七个分区模板全解以下每个分区都遵循统一的骨架HTML 风格注释标记起始、##二级标题、内容主体、结束标记。模板中所有分区原文如下均为可直接复制使用的形式。Project 分区项目身份!-- GSD:project-start source:PROJECT.md -- ## Project {{project_content}} !-- GSD:project-end --Fallback 文本Project not yet initialized. Run /gsd:new-project to set up.当.planning/PROJECT.md缺失或尚未初始化时Claude 会得到明确的行动指引——先运行/gsd:new-project建立项目而不是面对一条信息缺失的空白提示。源码中generateProjectSection的实现profile-output.ts说明该分区并非简单整段搬运 PROJECT.md而是做了结构化抽取读取#一级标题作为加粗项目名依次提取What This Is、Core Value、Constraints三个小节重组为紧凑的项目画像若提取结果为空则回退到 fallback 文本。Stack 分区技术栈!-- GSD:stack-start source:STACK.md -- ## Technology Stack {{stack_content}} !-- GSD:stack-end --Fallback 文本Technology stack not yet documented. Will populate after codebase mapping or first phase.generateStackSectionprofile-output.ts按优先级读取两个来源优先.planning/codebase/STACK.md缺失时回退.planning/research/STACK.md两者都缺才进入 fallback。内容生成时只保留表格行|开头、列表项-/*开头以及二级及以下标题形成一个精简的技术栈摘要避免把冗长的研究笔记灌进 CLAUDE.md。Conventions 分区代码约定!-- GSD:conventions-start source:CONVENTIONS.md -- ## Conventions {{conventions_content}} !-- GSD:conventions-end --Fallback 文本Conventions not yet established. Will populate as patterns emerge during development.实现上generateConventionsSectionprofile-output.ts读取.planning/codebase/CONVENTIONS.md同样只抽取列表项与表格行作为约定速览。fallback 语义是约定会随开发过程自然沉淀现在没有不等于禁止开发。Architecture 分区系统结构!-- GSD:architecture-start source:ARCHITECTURE.md -- ## Architecture {{architecture_content}} !-- GSD:architecture-end --Fallback 文本Architecture not yet mapped. Follow existing patterns found in the codebase.generateArchitectureSectionprofile-output.ts读取.planning/codebase/ARCHITECTURE.md抽取列表、表格与代码块保留架构文档中最具信息量的结构化部分。fallback 给出了一个极其实用的行为指令架构未绘制时遵循代码库中已有的模式——这是把未知转化为可执行策略的典型写法。Skills 分区项目技能清单!-- GSD:skills-start source:skills/ -- ## Project Skills | Skill | Description | Path | | -------------- | --------------------- | ------------------------- | | {{skill_name}} | {{skill_description}} | {{skill_path}}/SKILL.md | !-- GSD:skills-end --Fallback 文本No project skills found. Add skills to any of: .claude/skills/, .agents/skills/, .cursor/skills/, or .github/skills/ with a SKILL.md index file.模板明确定义了技能的发现行为Discovery behavior依次扫描.claude/skills/、.agents/skills/、.cursor/skills/、.github/skills/下包含SKILL.md的子目录从 YAML frontmatter 中提取name和description支持多行描述跳过 GSD 自身安装的技能目录以gsd-开头跨目录按技能名去重。源码将这一行为落实为SKILL_SEARCH_DIRS数组与generateSkillsSectionprofile-output.ts逐目录枚举子目录过滤gsd-前缀读取SKILL.md的 frontmatterextractSkillFrontmatter支持续行拼接待缩进的 description按name去重后生成三列表格同时把描述中的|转义为\|以防破坏 Markdown 表格结构。另外源码中的搜索目录还包含.codex/skills/与模板中的四目录清单相比覆盖面更广实际生效范围以当前仓库实现为准。Workflow Enforcement 分区工作流强制!-- GSD:workflow-start source:GSD defaults -- ## GSD Workflow Enforcement Before using Edit, Write, or other file-changing tools, start work through a GSD command so planning artifacts and execution context stay in sync. Use these entry points: - /gsd:quick for small fixes, doc updates, and ad-hoc tasks - /gsd:debug for investigation and bug fixing - /gsd:execute-phase for planned phase work Do not make direct repo edits outside a GSD workflow unless the user explicitly asks to bypass it. !-- GSD:workflow-end --这是模板中唯一不带 fallback 的分区它由 GSD 默认值source:GSD defaults恒定生成generateWorkflowSection在源码中直接返回常量CLAUDE_MD_WORKFLOW_ENFORCEMENTprofile-output.ts。其核心主张是任何文件修改类操作Edit、Write 等之前都应先经由 GSD 命令进入工作流确保规划产物与执行上下文保持同步除非用户明确要求绕过否则不要在工作流之外直接修改仓库。需要说明的是当前源码常量中的命令形式为/gsd-quick、/gsd-debug、/gsd-execute-phase连字符形式模板文件中为/gsd:quick等冒号形式具体以你所用 GSD 版本的命令清单为准。Profile 分区占位符仅供外部管理!-- GSD:profile-start -- ## Developer Profile Profile not yet configured. Run /gsd:profile-user to generate your developer profile. This section is managed by generate-claude-profile — do not edit manually. !-- GSD:profile-end --模板特别强调该分区不由generate-claude-md管理而是由generate-claude-profile独占管理上述占位符仅在新建 CLAUDE.md 且尚无 profile 分区时使用。源码中generateClaudeMd的更新循环对 profile 分区做了条件化处理非--auto模式下若文件中不存在!-- GSD:profile-start标记则追加占位符并在结果消息中提示Run /gsd-profile-user to unlock Developer Profileprofile-output.tsprofile 的真实内容由cmdWriteProfileLogic写入包含维度评分表Dimension / Rating / Confidence与行为指令Directives并支持--global写入~/.claude/CLAUDE.mdprofile-output.ts。分区排序规则模板定义了固定的 7 级顺序每一级对应一个明确的信息学问题Project— 身份与目的这个项目是什么Stack— 技术选型使用了哪些工具Conventions— 代码模式与规则代码怎么写Architecture— 系统结构组件如何拼装Skills— 发现到的项目技能具备哪些领域知识Workflow Enforcement— 文件变更工作的 GSD 默认入口Profile— 开发者行为偏好如何交互从源码结构看这一顺序由sectionHeadings映射与MANAGED_SECTIONS的声明顺序共同保证profile-output.ts新建文件时按序拼接六个分区并追加 profile 占位符profile-output.ts。排序逻辑是从客观事实到主观偏好先讲清项目与技术再讲约定与架构最后才是交互偏好——确保 Claude 先建立事实基础再获得行为约束。Marker 格式与分区更新协议所有分区的边界由统一格式的 HTML 注释标记界定这是分区独立更新机制的基石起始标记!-- GSD:{name}-start source:{file} --其中source属性记录了该分区内容的来源文件结束标记!-- GSD:{name}-end --source属性使生成器能在源文件变化时进行定向更新起始标记采用不含闭合--的部分匹配进行检测容错性更强。源码将这套协议实现为一组对称的原语profile-output.tsextractSectionContent按起始/结束标记切出分区内部内容起始标记按第一个--之后取值buildSection把分区名、来源文件与内容重组为完整标记块updateSection若目标文件已存在该分区标记则整体替换该块action 为replaced否则追加到文件末尾action 为appendeddetectManualEdit对比分区当前内容与期望内容规范化空白后判断该分区是否被用户手工改写过——这是--auto模式跳过人工编辑分区的依据。Fallback 行为缺数据时的可行动指引模板在结尾总结了 fallback 的统一设计哲学这也是该项目文档工程的核心准则之一当源文件缺失时fallback 文本为 Claude 提供可执行的行动指引它不是占位广告也不是简单的缺失通知每条 fallback 都告诉 Claude该做什么而不只是报告什么不存在。对照源码中的CLAUDE_MD_FALLBACKS常量profile-output.ts可以清楚看到这条准则的落地project 的 fallback 指引运行/gsd:new-projectstack 说明将在代码库映射或首个 phase 后填充conventions 说明约定将在开发中随模式浮现architecture 指引遵循代码库已有模式skills 则列举了四种技能目录的存放位置。每一条都以动词开头或包含明确动作让 Claude 在信息真空时依然有路可走。源码级流程一次generate-claude-md的完整生命周期综合 profile-output.ts 的实现可以把整个生成流程还原为如下阶段参数解析识别--output自定义输出路径与--auto自动模式两个标志逐分区生成遍历MANAGED_SECTIONS六个分区分别调用对应的生成器同时统计sectionsGenerated有真实来源与sectionsFallback走 fallback解析输出路径默认读取配置中的claude_md_path缺省为./CLAUDE.md这里有一个值得注意的运行时适配——当检测到当前运行时是 Codex 时输出目标会被强制改写为./AGENTS.md确保 Codex 项目永远不会写入 CLAUDE.md源码注释标注为 #3163见 profile-output.ts新建 vs 更新文件不存在按排序拼接六个分区 profile 占位符action 为created文件已存在逐分区按标记原位替换在--auto模式下detectManualEdit检测到某分区被手工改写过就跳过该分区计入sectionsSkipped保护用户的定制内容不被自动生成覆盖profile 占位符治理非--auto模式下自动补齐缺失的 profile 占位符结果报告返回claude_md_path、action、各分区的生成/回退/跳过清单与总分区数并输出人类可读的消息例如Generated 4/6 sections. Fallback: stack, skills. Run /gsd-profile-user to unlock Developer Profile.这套流程的意义在于CLAUDE.md 不再是一次性手写的静态文件而是由.planning/下的真实规划产物PROJECT.md、STACK.md、CONVENTIONS.md、ARCHITECTURE.md和各 Skills 目录投影生成的动态上下文。规划文档更新后重新运行生成命令即可让 CLAUDE.md 与之一致从机制上杜绝上下文漂移。延伸模板在仓库中的位置与生态claude-md.md存放在 GSD 的模板目录 get-shit-done/templates/与 AI-SPEC、DEBUG、SECURITY、UAT、state 等模板并列属于 GSD 模板体系中面向Claude 运行时上下文的一环模板目录内的 README 对各类模板的用途有集中说明get-shit-done/templates/README.md。与之配套的完整命令生态包括/gsd:new-project初始化项目与 PROJECT.md、/gsd:profile-user生成 Developer Profile 分区、/gsd:quick、/gsd:debug、/gsd:execute-phaseWorkflow Enforcement 分区中列出的三个工作流入口以及 map-codebase 等产生 STACK/CONVENTIONS/ARCHITECTURE 源文件的命令。要实际体验只需在项目根目录运行gsd-tools generate-claude-md可选--output指定路径、--auto启用跳过人工分区并用gsd-tools generate-claude-profile解锁最后的 Profile 分区——一个包含项目画像、技术栈、约定、架构、技能清单、工作流约束与开发者偏好的完整项目上下文文件即告生成。【免费下载链接】get-shit-doneA light-weight and powerful meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES.项目地址: https://gitcode.com/GitHub_Trending/getshi/get-shit-done创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。