Communitygithub.com

tuannv0069/claude-doc-genome

一键式 Claude Code 插件,用于快速启动 AI 智能体的文档系统(CLAUDE.md + 规则 + 智能体指南)。

claude-doc-genome 是什么?

该技能专为 Claude Code 设计,旨在用一次命令即可为新项目快速搭建完整的 AI 智能体文档系统。它通过一个便携式捆绑包(包含规则、智能体指南、技能定义和智能体配置文件)完成初始化,并支持后续的“更新”模式,以安全地将新版本文件合并到现有项目中,同时避免覆盖本地修改。“检查”和“提升”模式则用于在原始仓库中维护捆绑包本身,确保版本一致性。该技能通过扫描项目结构、交互式访谈来定制化部署,并生成包含版本追踪和完整性校验的清单文件。其核心价值在于提供标准化、可复用的文档骨架,并确保部署后的文件与原始捆绑包之间的双向同步与可追溯性。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add tuannv0069/claude-doc-genome

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

init-project

目的

一键从便携捆绑包为新项目搭建智能体文档系统。初始化后,项目将通过已部署的标准(doc-organization.md §8.3 决策树 + 便携元标准)实现自我维护。init 模式每个项目仅运行一次;update 模式可在后续重新运行,以从捆绑包拉取更新的便携文件(3 路安全合并——绝不覆盖未提升的本地编辑)。check/promote 模式管理捆绑包本身,且仅在此主仓库运行。

依赖

  • ./portable/rules/ — 7 个便携规则(始终加载 + 作用域路径)
  • ./portable/agent-guide/ — five-why.md, markdown.md, mermaid.md, orchestration-policy.md, worktree.md(部署到 docs/agent-guide/general/)
  • ./portable/skills/ — skill-designer/, skill-writer/, document-writer/(完整目录树)
  • ./portable/agents/ — skill-writer-auditor.md
  • ./templates/ — CLAUDE.md.tpl, agent-guide/index.md.tpl, docs/index.md.tpl
  • ./VERSION — 捆绑包版本,每次 promote 时递增
  • scripts/update.mjs(仓库根目录)— 用于 update 模式的引擎(3 路捆绑包→在线合并);scripts/sync-version.mjs — 版本单一来源同步

模式

调用方式执行位置操作
/init-project新项目部署捆绑包(如下工作流)
/init-project check主仓库按 §map 对捆绑包↔在线文件进行 sha256 比较 → 报告差异
/init-project promote主仓库将每个映射文件的在线版本复制到捆绑包,递增 VERSION
/init-project update已初始化的项目拉取更新的便携文件捆绑包→在线,3 路安全(清单↔在线↔捆绑包);跳过冲突(如下工作流)

工作流(init — 新项目)

  1. 扫描项目:检测技术栈及按 ## module matrix 信号列的可选模块。输出:提议的模块集 + 发现的槽值。
  2. 访谈:确认提议的模块集;询问不可扫描的槽(开发端口使用情况、所有权范围、文档语言)。无法回答的槽 → 保留 TODO 标记,绝不凭空捏造值;模块不确定 → 跳过。
  3. 直接复制 portable/:portable/rules/* → .claude/rules/;portable/agent-guide/* → docs/agent-guide/general/;portable/skills/* → .claude/skills/;portable/agents/* → .claude/agents/。
  4. 渲染模板:根据访谈内容填充 {{slots}} 到 CLAUDE.md、docs/agent-guide/index.md、docs/index.md;缺失的槽 → 保留 TODO 标记。
  5. 生成可选规则:对于每个确认的可选模块,根据 rule-writing-standards 编写一个项目适配的规则到 docs/agent-guide/general/,并在同一步骤将其触发行追加到 CLAUDE.md 中——无需硬编码模板。
  6. 写入清单 .claude/init-manifest.json:{ version, deployedAt, files:[{path,sha256}], templates:[{path,sha256}], modules:[...] }(来源记录;files[] 由 update 读取用于 3 路差异检测——保持 sha256 准确;templates[] 记录每个渲染文件所依据的 .tpl sha——path 是相对于 templates/ 的模板路径,例如 CLAUDE.md.tpl,在 update 中用于在部署后模板发生更改时发出 WARN 警告)。
  7. 验证:每个已部署的文件位于正确的层级;每个规则/智能体指南文件带有 scope: 前置元数据;CLAUDE.md 在 token 预算内;每个影响行为、按需访问的文件都有触发行或路由条目(可达性,文件→触发);每个 CLAUDE.md 中的 MUST Read 触发器都对应一个已部署的文件(可达性,触发→文件——无死触发器);没有未渲染的 {{slot}} 残留(有意保留的 TODO 标记除外)。完成条件 = 检查清单通过 + 清单已写入。

捆绑包↔在线映射(check / promote — 主仓库;update — 已初始化项目)

捆绑包路径在线路径
portable/rules/*.claude/rules/*
portable/agent-guide/*docs/agent-guide/general/*
portable/skills/*.claude/skills/*
portable/agents/*.claude/agents/*
  • check:对每对文件进行 sha256 计算 → 列出不匹配项。默认更新方向为在线→捆绑包(promote);先修复在线文件,再执行 promote。
  • promote:将每个映射文件的在线版本复制到捆绑包,然后通过 node scripts/sync-version.mjs set <x.y.z> 递增版本(写入规范 VERSION 并将其同步到 .claude-plugin/* 和 README 徽章)。

工作流(update — 已初始化项目)

方向为捆绑包→在线(与 promote 相反)。仅处理直接复制的便携集;渲染的表型(CLAUDE.md、index.md、项目自建的指南)不在范围内。通过已安装插件内部的路径调用 update.mjs(它会根据自身位置定位捆绑包);--project 指定已初始化的项目根目录,默认为当前目录。

  1. 预演:node <plugin>/scripts/update.mjs --project <project-root> → 审查 ADD / UPDATE / CONFLICT 计划以及版本差异。
  2. 首先解决所有 CONFLICT——冲突表示部署后便携文件被本地编辑。将其提升到上游(以便改进进入捆绑包)或在审查后手动覆盖。绝不盲覆盖。
  3. 应用:node <plugin>/scripts/update.mjs --apply --project <project-root> → 写入 ADD + UPDATE,跳过冲突,刷新清单中的 version 和 files[].sha256。
  4. 仅进行新增和原地修改——update 从不删除:已从捆绑包中移除的文件会保留在项目中,本地删除的文件会被重新添加。如有需要,手动清理这些文件。
    • templates/*(CLAUDE.md、index.md — 渲染的表型)从不被覆盖:其槽位包含项目特定的值。update 仅在部署后 .tpl 发生更改时发出 WARN 警告(sha 对比 manifest.templates[]);手动重新渲染(比较 .tpl 与在线版本,重新应用结构性更改,保留槽值)或重新运行 /init-project。该 WARN 警告会持续存在,直到下次 init 重新记录模板 sha。
  5. 退出码:0 = 已是最新或应用成功;1 = 仍有冲突;2 = 设置错误(无清单 → 项目未由此插件初始化)。

模块矩阵

模块包含内容部署时机扫描信号(示例,非穷举)
coreportable/*(全部 4 组)+ 3 个模板始终—
runtimeagent-guide/general/local-runtime.md + CLAUDE.md 触发(按扫描结果通过步骤 5 编写技能)项目自行运行开发服务器package.json 中的 dev/start 脚本、launchSettings.json、vite/next/dotnet/django/cargo 配置
e2eagent-guide/general/<tool>.md(以检测到的工具命名)+ CLAUDE.md 触发(步骤 5)项目有 E2E 浏览器测试playwright/cypress/selenium 依赖、e2e/ 文件夹、E2E 配置
  • 可选模块仅在扫描确认或用户在访谈中确认时部署——不确定则跳过。
  • Git:最小防护措施(仅在请求时提交,绝不推送)内置在 CLAUDE.md.tpl 中;详细策略为 scope: project——项目按需编写 docs/agent-guide/general/git.md,并在同一提交中添加其触发行(可达性——绝不允许触发器指向缺失的文件)。
  • 后续需要某个跳过的模块时 → 项目根据已部署的标准自行编写规则。新模块仅在实际项目验证过该模式后,才能通过 promote 进入捆绑包。

独立性规则

  • 技能每个项目仅运行一次;部署的文件不引用此主仓库的任何文件;项目规则从不提及此技能名称。
  • 自包含,但上述捆绑包↔在线映射除外,该映射仅在主仓库的 check/promote 模式中执行。

示例

✅ 扫描发现 package.json 中有 "dev" 脚本 → 提议 runtime 模块 → 步骤 5 编写
   general/local-runtime.md + 将 "self-run dev server → MUST Read ..." 追加到 CLAUDE.md
❌ 在没有扫描信号且未在访谈中确认的情况下部署 runtime 模块(猜测的模块)

✅ /init-project check → "MISMATCH: portable/rules/doc-organization.md != .claude/rules/doc-organization.md"
   → 先修复在线文件 → /init-project promote
❌ 直接编辑 portable/* 然后初始化新项目(捆绑包与在线文件悄悄产生分歧)

参考文件

  • 捆绑包:./portable/**
  • 模板:./templates/**
  • 版本:./VERSION

相关技能