get-shit-done 的 CLAUDE.md 模板解析:7 分区标记驱动的 Claude Code 项目上下文自动生成机制

发布时间:2026/9/10 13:42:50

get-shit-done 的 CLAUDE.md 模板解析:7 分区标记驱动的 Claude Code 项目上下文自动生成机制 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),仅供参考
延伸阅读

更多相关文章

2026/9/10 15:43:35

SpringBoot驾校学员管理系统设计与实现

1. 项目概述:SpringBoot驾校学员管理系统设计与实现 去年帮朋友驾校做信息化改造时,发现市面上多数学员管理系统要么功能冗余要么操作复杂。于是基于SpringBoot设计了一套轻量级解决方案,从报名到拿证全流程数字化管理,特别适合中…

2026/9/10 15:43:34

锂枝晶抑制与电池隔膜优化技术解析

1. 锂枝晶生长机制与电池安全痛点锂金属负极因其极高的理论比容量(3860 mAh/g)和最低的电极电位(-3.04 V vs. SHE)被视为下一代高能量密度电池的"圣杯"。但在实际应用中,锂枝晶的生长问题就像一把悬在头顶的…

2026/9/10 15:43:34

PHP协程调度器原理与Swoole高性能实现

1. PHP协程调度器实现原理与核心价值在传统PHP开发中,阻塞式I/O操作一直是性能瓶颈的根源。当我们需要处理高并发请求时,通常会采用多进程或多线程方案,但这会带来显著的内存开销和上下文切换成本。PHP协程调度器的出现,本质上是通…

2026/9/10 15:38:34

龙珠数字藏品与游戏模组的技术实现与市场分析

1. 项目背景解析 "dragonballz_e209-2"这个看似神秘的代号,实际上蕴含着丰富的文化基因和技术内涵。作为一名长期关注二次元文化和技术交叉领域的从业者,我首次看到这个命名时就意识到它可能代表着某种融合了经典动漫元素与现代技术理念的创新…

2026/9/9 13:11:35

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/9 10:21:54

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码