1. 心智模型
Zhulong 是目标项目旁边的一层本地 intelligence layer。它不搬动源码,不替代 IDE,不替代 AI runtime。它负责组织上下文、证据、代码地图和完成前检查。
用户 / runtime
调用 zl-debug、zl-plan-phase、/zl-debug。
Zhulong CLI
读取 .planning/config.json,写 context、handoff、state。
Adapters
调用文档扫描、GraphRAG/RAG、Graphify、evidence。
Guard
检查本地 artifact,阻断未完成工作。
普通 AI coding 和 Zhulong 的区别
普通:
prompt -> 改代码 -> 可能跑测试
Zhulong:
zl command
-> project state
-> docs/RAG evidence
-> Graphify impact
-> plan / implementation / verification
-> evidence writeback
-> completion-check
场景选择模型
Zhulong 是通用项目框架,不要求所有项目启用 RAG。它把 workflow、代码地图、可选文档依据和 evidence 按项目约束组合起来:非文档密集型项目使用专门的 rag none 路线,文档承担需求、验收或合规责任时再启用严格文档和本地 GraphRAG。
| 项目类型 | 初始化选择 | 知识层 | 阻断规则 | 典型命令 |
| 非文档密集型 | --doc-policy reference --rag none | workflow + codebase baseline + Graphify;少量资料可直接扫描 | RAG gate 不参与阻断,代码、策略、验证和 evidence gate 保持有效 | zl-codebase-scan、zl-graph-build --run、zl-debug |
| 普通既有改修 | 先 reference,必要时升到 strict | codebase baseline + Graphify 影响面 | 代码图缺失或 privacy 问题阻断;文档缺失按风险放行 | zl-graph-build --run、zl-preflight、zl-graph-impact |
| 文档密集 / 规格严格 | --doc-policy strict --rag local --setup-rag skip | 本地 GraphRAG、citation、answer audit、trace | missing citation、RAG stale、Graphify stale、外部 provider 均可阻断 | zl-rag-init-local、zl-docs-index --run、zl-answer-audit |
| Leader 演示 | 读取当前项目状态 | workflow / RAG / Graphify / evidence / policy 汇总 | 不触发刷新,只展示已有 artifact 的可信度 | zl-cockpit-build |
rag none 是非文档密集型项目的完整模式:它只关闭 RAG 安装、索引和 RAG 查询,不关闭 workflow、代码地图、策略、evidence 或完成门禁。如果文档只是少量辅助上下文,仍可使用轻量扫描和直接查询;如果文档是正式验收依据,再使用 strict + rag local。外部 RAG 永远不是默认路线。
2. Zhulong 仓库结构
| 路径 | 职责 |
bin/zl.mjs | 稳定的 npm 可执行入口,只负责启动 src/app.mjs。 |
src/ | CLI 参数与路由、项目策略、工作流目录、质量审计和领域实现。 |
core/ | 初始化目标项目时复制的核心模板。 |
core/workflows/ | Zhulong native workflow contract,GSD 只作为参考设计。 |
templates/ | 不同项目类型模板,如新项目、既存 monorepo、后端、前端。 |
runtime/ | Codex、Claude Code、GitHub Copilot command pack。 |
adapters/ | GraphRAG、Graphify、source search、verification 的设计说明。 |
verification/ | 可复跑验证脚本和最新报告。 |
3. 接入目标项目
Zhulong 接入后会在目标项目根目录增加 AGENTS.md、project.manifest.yml、.planning/。不会移动原来的 src/、tests/、docs/。
target-project/
src/
tests/
docs/
AGENTS.md
project.manifest.yml
.planning/
PROJECT.md
STATE.md
config.json
codebase/
knowledge/
graphs/
refresh/
workflows/
evidence/
新项目
zl-init --target "$PWD" --template greenfield-app --name app --mode new --doc-policy reference --rag none
zl-codebase-scan --target "$PWD"
既存项目
zl-init --target "$PWD" --template brownfield-monorepo --name app --mode existing --doc-policy reference --rag none
zl-codebase-scan --target "$PWD"
zl-codebase-status --target "$PWD"
4. Workflow guard
Guard 是 Zhulong 当前最核心的“硬约束”。它不是只在 prompt 里提醒 agent,而是检查目标项目中的本地 artifact。
zl-debug --target "$PWD" "bug"
-> workflow run debug
-> write .planning/context/debug-*.md
-> write .planning/context/handoffs/*-HANDOFF.md
-> write .planning/workflows/<id>/WORKFLOW_STATE.json
-> evaluate gates
-> completion eligible / blocked
-> explicit workflow complete changes state
| Gate | 检查内容 | 为什么需要 |
context | context packet 和 handoff 是否存在。 | 证明 workflow 已启动并留下执行上下文。 |
codebase | CODEBASE_STATUS.md;既存项目源码数量大于 0。 | 避免对未知代码库直接下结论。 |
docs | 真实文档扫描结果,或带有本地源文件 citation 的成功 RAG/docs query;rag none 项目按 reference 策略处理。 | 存在正式业务资料时必须给出来源;非文档密集型项目不虚构文档要求。 |
graph | Graphify graph/report 存在且不 stale。 | 改修前要知道代码影响面。 |
interaction-policy | interactive、auto_advance 和配置矛盾。 | 默认 fail closed,避免配置只写在模板里却从未执行。 |
authorization | 当前用户消息对当前工作的明确授权,或匹配 action/milestone 的活动 Goal grant。 | 代理不能把建议或前一阶段完成当成执行授权。 |
acceptance | 用户查看产物后的当前 workflow 验收,或匹配的 Goal grant。 | “请分析/修复/规划”不等于提前接受尚未生成的结果;原消息明确要求完成/关闭时除外。 |
decisions | spec/discuss/ui 的 accepted/proposed/open/contradiction 状态。 | 重大开放问题和矛盾必须交给用户判断。 |
plan | 当前 workflow 目录中的类型化 PLAN.md。 | 确认方案属于当前 workflow,而不是任意历史字符串。 |
implementation | 当前 workflow 的 IMPLEMENTATION.md;diagnose-only debug 不要求。 | 确认授权范围内的改动已实施。 |
verification | 当前 workflow 的 VERIFICATION.md。 | 确认测试或检查已执行并可复查。 |
evidence | 存在绑定当前 workflow ID 的正式 evidence record。 | 历史证据不能替当前任务通过。 |
writeback | issue/debug/phase 中有绑定当前 workflow ID 的 Zhulong Evidence Writeback。 | 证据要回到当前工作记录里。 |
5. 文档 / RAG 机制
真实终端中只运行 zl-init --target "$PWD" 会进入 init wizard,依次选择项目类型、文档策略、RAG 后端和本地/外部 RAG 风险;CI 和 runtime pack 使用显式参数,避免等待输入。默认的 reference + rag none 专门适配非文档密集型项目:不安装 GraphRAG,不执行 index,也不要求 RAG 参与日常 workflow。文档密集或规格严格项目在 init 时选择 --doc-policy strict --rag local,再显式准备本地 GraphRAG、Ollama 和本地模型。外部 provider 不是默认能力,必须 --allow-external-rag。
python3 --version # GraphRAG requires Python 3.10-3.12
python3 -m pip install --user graphrag
export PATH="$HOME/.local/bin:$PATH"
brew install ollama
brew services start ollama
ollama pull qwen2.5:7b
ollama pull bge-m3
.planning/config.json
{
"spec_context": {
"enabled": true,
"provider": "graphrag-local",
"source_paths": ["docs", "documents", "仕様書"],
"index_command": "graphrag index --root graphrag-workspace --method fast",
"query_command": "graphrag query --root graphrag-workspace --method basic {query}"
},
"graphrag": {
"enabled": true,
"mode": "local",
"profile": "local_basic",
"requires_api_key": false,
"llm_model": "qwen2.5:7b",
"embedding_model": "bge-m3",
"api_base": "http://127.0.0.1:11434",
"vector_store": "lancedb"
}
}
zl-docs-scan 写 RAG_SOURCES.md 和 DOC_RAG_STATUS.md。
zl-docs-extract 抽取 md/txt/csv/pdf/docx/xlsx,写 DOCUMENT_INDEX.json。
zl-docs-sync 默认先 diff 再 extract,发现变更写 STALE_NEEDS_REFRESH,不自动重建 GraphRAG。
zl-docs-citations 写 source citation;zl-answer-audit 审计最近一次 docs/RAG 回答是否有依据。
zl-citation-audit 检查 citation 是否指向真实源文件。
zl-rag-init-local 写 graphrag-workspace/settings.yaml 和 LOCAL_RAG_STATUS.md。
zl-docs-query --rag 先过隐私审计,再执行本地 GraphRAG query command。
6. Graphify 机制
Zhulong 不重写 Graphify。Zhulong 通过配置执行 Graphify,然后把 graphify-out/ 中的结果同步到 .planning/graphs/,供 workflow guard 和 query 使用。
.planning/config.json
{
"code_map": {
"provider": "graphify",
"update_command": "graphify update ."
}
}
zl-graph-build --run 执行 update_command。
读取 graphify-out/graph.json 和 graphify-out/GRAPH_REPORT.md。
同步到 .planning/graphs/graph.json 和 GRAPH_REPORT.md。
zl-graph-query、zl-graph-impact、zl-graph-risk、zl-graph-diff 读取 .planning/graphs/。
zl-graph-freshness --strict 在图谱 stale 时阻断完成证据。
7. Runtime command pack
Runtime pack 只是让不同 AI 工具知道如何调用 Zhulong。核心命令仍然是本地 zl CLI。
交互默认与有界自动执行
三种 runtime 都读取同一份 core/workflows/authorization.md:默认只执行当前 Skill,“建议下一步”不能触发下一个 workflow;调查、分析、诊断默认 diagnose-only。Workflow alias 不会自动注入用户来源;只有直接响应当前用户消息的 runtime 才能附加 --source user-message,且这只是可审计的 runtime assertion,不是密码学身份认证。用户明确说“自动执行 MVP4.0 到 MVP4.7,完成后停止”时,runtime 把每个 MVP 的原始描述编译成结构化 milestone contract,child workflow 继承 authorization ID、milestone 与 contract digest,并使用合同中的精确 objective。
workflow:
mode: interactive
auto_advance: false
require_explicit_user_intent: true
allow_goal_authorization: true
zl workflow authorize --target "$PWD" \
--source user-message \
--request "自动执行 MVP4.0 到 MVP4.7,完成后停止" \
--contract-file ".planning/goals/MVP4_CONTRACTS.json" \
--actions "spec,ui,plan,execute,review,verify,complete_milestone,advance" \
--stop-after MVP4.7
授权合同保存在 .planning/goals/,可用 zl workflow authorization-status 检查、用 zl workflow revoke 撤销。执行、修复、完成与推进必须使用结构化合同;旧式只有 milestone 名称的 grant 仅能用于非修改型 workflow。依赖、commit、push、merge、release 前还要通过 zl workflow permission-check。范围外 objective、digest、milestone/action、重大 open question 与 contradiction 都会阻塞。
条件化 Taste 前端设计
zl-ui-phase 会读取项目 manifest、依赖和有界的前端路径证据,实际计算并写入 Frontend Design Decision,而不是只输出待填写模板。Runtime 随后补充品牌资料、既有页面和人工设计证据;低置信度只提出一个方向问题。Taste Adapter 已内置,不需要另外运行 npx skills add。
frontend_design:
strategy: auto # auto | preserve | evolve | create | system
taste: auto # auto | enabled | disabled
| 模式 | 默认判断 | Taste 权限 |
create | 全新营销页、官网、portfolio | 完整应用相关规则 |
evolve | 已有风格但不完整或不一致 | 在保留品牌基础上增强 |
preserve | 稳定 token、组件库、视觉稿或品牌规范 | 只审计,不引入新视觉系统 |
system | Dashboard、后台、表格和多步骤产品 UI | 关闭营销页规则,服从产品设计系统 |
优先级固定为:用户明确要求、正式设计与规格证据、合规与可访问性约束、现有源码约定、Taste Adapter、模型自由选择。greenfield 营销页通常进入 create;brownfield 项目只有在风格确实零散时才进入 evolve。设置 taste: disabled 可以完全关闭 Taste。
| Runtime | 安装目录 | 文件类型 | 内部调用 |
| Codex | ~/.codex/skills | SKILL.md | workflow run debug |
| Claude Code | ~/.claude/skills | SKILL.md | workflow run debug |
| GitHub Copilot | .github/prompts | *.prompt.md | workflow run debug |
zl-runtime-install --runtime codex --dest ~/.codex/skills
zl-runtime-install --runtime claude-code --dest ~/.claude/skills
zl-runtime-install --runtime github-copilot --dest .github/prompts
zl-runtime-status --runtime codex --dest ~/.codex/skills
8. Evidence loop
Evidence loop 的原则是:实现不能只停留在聊天记录里,必须写回项目本地 artifact。
zl-evidence-record --target "$PWD" \
"CR-017 proxy approval limit verified" \
--command "npm test && npm run test:task" \
--result "passed" \
--source "docs/qa/QA-042.md,.planning/graphs/GRAPH_REPORT.md" \
--writeback .planning/issues/CR-017.md
这会创建 evidence record,并在目标 issue 中追加 Zhulong Evidence Writeback。Guard 的 evidence 和 writeback gate 都依赖它。
9. MVP3 证据质量
MVP3 把“查到了文档”和“有了证据”再往前推一步:RAG 答案要能用 golden case 复跑,citation 要能指向真实源文件,文档、代码、测试和 evidence 要能进入 trace matrix。
RAG golden / citation
zl-rag-golden-add --target "$PWD" \
--question "代理承認の上限金額は?" \
--expect "30,000" \
--citation "docs/qa/QA-042.md:3"
zl-rag-golden-run --target "$PWD"
zl-rag-eval --target "$PWD"
zl-citation-audit --target "$PWD"
Trace matrix
zl-trace-build --target "$PWD"
zl-trace-query --target "$PWD" "代理承認"
zl-trace-audit --target "$PWD"
核心产物是 .planning/quality/ 和 .planning/trace/。以后接可视化 QA 时,这两类文件会成为“需求或决策依据 -> 代码影响面 -> 测试 -> evidence”的数据源。
MVP4.0 Knowledge Reliability Lite
Knowledge Reliability Lite 把文档更新和回答依据做成默认轻量流程。它不会每次都重建 GraphRAG,也不会在 public workflow 里自动审计,只会在有最近 query 且缺少 answer audit 时提示下一条命令。
zl-docs-sync --target "$PWD"
zl-docs-query --target "$PWD" "代理承認 上限"
zl-answer-audit --target "$PWD"
# 只有明确需要重建本地 GraphRAG index 时
zl-docs-sync --target "$PWD" --index
核心产物是 .planning/knowledge/DOCS_SYNC.md、.planning/knowledge/DOCS_QUERY_RESULT.md 和 .planning/quality/ANSWER_AUDIT.md。zl-answer-audit --target "$PWD" 会自动读取最近一次 RAG/docs query 结果;--answer 只作为调试入口。
MVP3.5 执行预算
Refresh control 让 Zhulong 能提醒 GraphRAG / Graphify 是否落后当前 commit,但普通 workflow 不会自动重建。重刷新必须显式运行。
zl-preflight --target "$PWD"
zl-refresh-plan --target "$PWD"
zl-refresh-run --target "$PWD" --rag
zl-refresh-run --target "$PWD" --graph
zl-mode-status --target "$PWD"
zl-mode-set --target "$PWD" docs-reference
zl-mode-set --target "$PWD" docs-strict
核心产物是 .planning/refresh/REFRESH_STATE.json、PREFLIGHT.md、REFRESH_PLAN.md、REFRESH_RUN.md 和 MODE.md。看到 behind-unrelated 时,说明落后的 commit 没改到文档源或代码地图相关路径,可以先跳过刷新。
10. Policy mode
Policy mode 是完成前的横向审计:local-only、citation、golden、trace、graph freshness、license 必须统一给出四态结果。它不是聊天建议,而是写入 .planning/policies/ 的本地报告。
zl-policy-list --target "$PWD"
zl-policy-explain --target "$PWD" privacy.local_only
zl-policy-check --target "$PWD" --strict
zl-policy-lock --target "$PWD"
zl-policy-verify --target "$PWD"
zl-policy-diff --target "$PWD"
--strict 和 docs-strict 会要求 offline lock。保密项目建议先跑 zl-offline-lock --target "$PWD",再用 zl-policy-lock 固化当前本地策略。
| 状态 | 语义 | profile 行为 |
PASS | 可以作为完成证据。 | 所有 profile 都允许继续。 |
FAIL | 必须阻断。 | 隐私、外部 provider、API key、外部 URL 永远阻断。 |
WAIVED_WITH_RISK | 允许继续,但必须写清风险和缺失依据。 | reference 文档策略无 docs/RAG 时使用。 |
STALE_NEEDS_REFRESH | RAG/Graphify 落后相关变更。 | reference 只提醒;strict 阻断。 |
zl-policy-lock 生成稳定 snapshot 和 SHA-256 hash;zl-policy-verify 重新生成 snapshot 并做轻量 checks;zl-policy-diff 输出字段级差异。三条命令都必须输出 heavy refresh executed: no,不会触发 GraphRAG index 或 Graphify build。
当你不知道该跑什么命令时,可以用 zl-help-skills 让 Zhulong 根据场景推荐命令组:
zl-help-skills --target "$PWD" "文档更新后想确认影响面和完成前检查"
11. 保密边界
Zhulong CLI 本身不主动上传数据。默认 reference + rag none 不需要 GraphRAG、模型或外部 API key;strict + rag local 也使用本地 Ollama。风险来自你把 RAG/Graphify/runtime 配置改成外部服务。
- 审查
.planning/config.json 中的 index_command、query_command、update_command。
- 默认保密项目使用
zl-rag-init-local、Ollama、本地 embedding 和 LanceDB。
- 运行
zl-offline-lock --target "$PWD"、zl-privacy-audit --target "$PWD" --strict、zl-outbound-audit --target "$PWD",确认没有外部 endpoint、外部 provider、API key 或网络命令。
- 不要把
.planning/、graphify-out/、graphrag-workspace/ 提交到公开仓库。
不要把 graphrag-workspace/settings.yaml 中的 model_provider 改成 openai、deepseek、azure 等外部 provider,也不要把 api_base 改成公网 URL。GraphRAG index 会处理原始文档和 text units,query 会把问题和检索上下文交给配置的模型;改成外部 provider 就可能造成资料外泄。
12. 验证方法
Zhulong 的可信度来自可复跑验证,不是口头说明。
npm test
npm run verify:ci
npm run verify:release
npm run verify:local-rag
# 维护者内部审计 / 对标
npm run dev:audit:full
node scripts/run-full-test-plan.mjs --run-id round-1
node scripts/run-full-test-plan.mjs --run-id round-2
# 外部 GraphRAG 验证,只能在允许外发脱敏 fixture 时使用
GRAPHRAG_API_KEY=<your key> npm run verify:integration -- --live-graphrag
scripts/verification-manifest.mjs 是唯一任务目录:verify:ci 运行可重现 PR gate,verify:release 运行完整发布层,verify:local-rag 追加真实本地 RAG smoke。同一 verifier 在一个 tier 中最多运行一次,最终索引写入忽略的 verification/reports/verification-<tier>-index.*。
dev:audit:full 是维护者内部机制:它在 .zl-audit/latest/ 生成 scorecard、命令/skills/feature 分表、Zhulong / GSD / Superpowers 对标、时间拆分和 token 统计边界,并把可提交摘要写到 verification/reports/developer-audit-summary.md。Benchmark comparison 是所有对标行的保守平均,不是 Zhulong 单体分;本轮 Zhulong 产品平均为 90 / A,scorecard 里的 87 反映了 graph-lite 低成本路径、full-local 无文档正确阻断、GSD / Superpowers replay 可信度上限。默认 benchmark 是 deterministic,不调用外部 AI,所以 token 写 TOKEN_USAGE_UNAVAILABLE;GSD / Superpowers 使用本机真实 skill/plugin 文件做 skill-pack-backed-replay,记录 instruction pack hash、fixture、代码改修、测试和证据文件。真实 Codex 子进程必须显式设置 ZHULONG_AUDIT_REAL_AI=1,并使用 --ephemeral --ignore-rules --json;需要完全不读用户配置时再加 ZHULONG_AUDIT_CODEX_IGNORE_USER_CONFIG=1。本轮真实子进程已经尝试执行,但当前账号不支持默认 gpt-5.3-codex 模型,三个 subprocess 均在启动阶段失败,因此没有 usage events,token 没有数字化。
13. 项目生命周期教程
Zhulong 在新项目和既存项目中的使用顺序不同。关键原则是:新项目先建立工作台,既存项目先建立代码基线;文档更新后必须重扫文档,代码结构更新后必须重扫 codebase/graph。
新项目:先建工作台,再让代码和文档长出来
新项目可以没有大量源码,但也要从第一天开始写 .planning/。这样 AI 的计划、讨论、验证会自然沉淀。
zl-init --target "$PWD" --template greenfield-app --name order_app --mode new --doc-policy reference --rag none
zl-codebase-scan --target "$PWD"
zl-docs-sync --target "$PWD"
zl-new-milestone --target "$PWD" "MVP1 注文管理"
既存项目:初始化后立刻跑 codebase scan
既存项目的风险在于 AI 对旧代码影响面不了解。zl-init 只叠加目录,zl-codebase-scan 才真正建立代码基线。
zl-init --target "$PWD" --template brownfield-monorepo --name legacy_order --mode existing --doc-policy reference --rag none
zl-codebase-scan --target "$PWD"
zl-codebase-status --target "$PWD"
第一次导入文档:sync、query、audit
把 PRD、ADR、QA、会议记录、设计或运行手册放到项目文档目录后,优先用 zl-docs-sync 建立轻量目录,再查询并审计回答依据。只有 rag local 项目才需要建立 RAG 索引。
zl-docs-scan --target "$PWD"
zl-docs-sync --target "$PWD"
zl-docs-query --target "$PWD" "退款上限依据"
zl-answer-audit --target "$PWD"
文档更新:不要只改文件,要刷新 Zhulong 的知识层
新增 QA、更新 ADR、会议记录或规范后,先做 lightweight sync。默认只标记 STALE_NEEDS_REFRESH,不自动重建 GraphRAG;只有 rag local 项目明确需要新索引时才加 --index。
zl-preflight --target "$PWD"
zl-refresh-plan --target "$PWD"
zl-docs-sync --target "$PWD"
# 需要重建本地 GraphRAG index 时再执行
zl-docs-sync --target "$PWD" --index
代码结构更新:刷新 codebase 和 graph
模块拆分、入口变更、依赖调整后,旧 codebase/graph 可能 stale。先刷新,再让 AI 做影响面判断。
zl-codebase-scan --target "$PWD"
zl-preflight --target "$PWD"
zl-refresh-plan --target "$PWD"
zl-refresh-run --target "$PWD" --graph
zl-graph-status --target "$PWD"
zl-graph-impact --target "$PWD" --files "src/a.js"
zl-graph-risk --target "$PWD"
任务闭环:workflow、类型化 gate、evidence、completion
Zhulong 严格流程不是靠一句 prompt,而是靠状态文件和 gate 检查。public workflow 会自动写 WORKFLOW_FACADE.md,把 preflight、policy、docs、graph、authorization、evidence 和下一步命令汇总给 AI,但不会自动执行下一个 Skill,也不会自动重建 RAG 或 Graphify。当前 workflow 的 plan、implementation 和 verification 必须是绑定 workflow ID 的类型化文件;实现后还要写 evidence 并回写工作记录。
zl workflow run debug --target "$PWD" \
"请调查并修复退款上限与业务规则不一致" \
--source user-message --intent fix
zl-workflow-audit --target "$PWD"
zl-workflow-continue --target "$PWD" --gate plan \
--evidence .planning/workflows/<workflow-id>/PLAN.md
zl-workflow-continue --target "$PWD" --gate implementation \
--evidence .planning/workflows/<workflow-id>/IMPLEMENTATION.md
zl-workflow-continue --target "$PWD" --gate verification \
--evidence .planning/workflows/<workflow-id>/VERIFICATION.md
zl-evidence-record --target "$PWD" "退款规则已验证" --command "npm test" --result "passed" --writeback .planning/issues/CR-017.md
zl-evidence-status --target "$PWD"
zl-gate-check --target "$PWD"
zl-completion-check --target "$PWD" # read-only eligibility
zl workflow complete --target "$PWD" # explicit state transition
14. CLI 内部机制
Zhulong 的 runtime 适配不是为每个 AI 工具写一套业务逻辑,而是让它们统一落到本地 CLI。bin/zl.mjs 是稳定入口,参数和路由实现位于 src/cli/。
命令 alias
zl-debug、zl-plan-phase 这类公开命令会被路由到内部 workflow。这样以后即使替换 GSD 思路,也不需要暴露 gsd-*。
zl-debug
-> workflow run debug
zl-codebase-scan
-> codebase scan
zl-completion-check
-> workflow completion-check
zl-cockpit-build
-> cockpit build
Runtime command pack
Codex、Claude Code、Copilot 只安装不同格式的“调用说明”。它们不会各自实现 Zhulong,只会引导 AI 调用同一套 zl-*。
Codex: ~/.codex/skills/.../SKILL.md
Claude Code: ~/.claude/skills/.../SKILL.md
Copilot: .github/prompts/*.prompt.md
所以“适配 Codex / Claude / Copilot”的本质是命令入口适配,不是三套功能分叉。可信能力仍以本地 CLI 和 .planning/ 产物为准。
15. 命令面总览
这里是技术教程里的快速索引。完整参数、示例和产物见命令手册;本表用于确认 Zhulong 的能力层和命令入口没有断层。
| 层 | 命令 | 验证关注点 |
| 初始化 | zl, zl-init, zl-verify, zl-map | CLI 可用,目标项目有 .planning/ 基础结构。 |
| Codebase | zl-codebase, zl-codebase-scan, zl-codebase-status | 既存项目有 source/test/config baseline。 |
| 文档/RAG | zl-docs-scan, zl-docs-status, zl-docs-normalize, zl-docs-extract, zl-docs-diff, zl-docs-citations, zl-docs-sync, zl-citation-audit, zl-rag-init-local, zl-rag-golden-add, zl-rag-golden-run, zl-rag-eval, zl-docs-index, zl-docs-query, zl-answer-audit | 文档来源、抽取、同步、citation、answer audit、golden、RAG eval 可复查。 |
| Graphify | zl-graph-build, zl-graph-status, zl-graph-query, zl-graph-diff, zl-graph-impact, zl-graph-risk, zl-graph-freshness | 代码图谱、影响面、风险和 stale 状态可检查。 |
| Refresh / Mode | zl-preflight, zl-refresh-plan, zl-refresh-run, zl-mode-status, zl-mode-set | 普通流程只提醒,显式命令才刷新,模式可切换。 |
| Privacy / License | zl-privacy-audit, zl-offline-lock, zl-outbound-audit, zl-license-audit | local-only、外发风险和 license 风险可审计。 |
| Evidence / Trace / Policy | zl-evidence-record, zl-evidence-status, zl-trace-build, zl-trace-query, zl-trace-audit, zl-policy-list, zl-policy-check, zl-policy-explain, zl-policy-lock, zl-policy-verify, zl-policy-diff, zl-help-skills | 证据、追踪矩阵、策略检查、策略合同和命令推荐可落盘。 |
| Runtime | zl-runtime-install, zl-runtime-status | Codex / Claude Code / GitHub Copilot 入口统一落到 CLI。 |
| Workflow guard | zl-workflow-run, zl-workflow-status, zl-workflow-continue, zl-workflow-audit, zl-gate-check, zl-completion-check, zl workflow authorize, zl workflow revoke, zl workflow complete | 当前意图、Goal 范围、gate 和显式完成状态可审计。 |
| Public workflow | zl-new-milestone, zl-spec-phase, zl-discuss-phase, zl-ui-phase, zl-debug, zl-plan-phase, zl-execute-phase, zl-code-review, zl-verify-work, zl-complete-milestone | 日常工作流只暴露 zl-*,GSD 只作参考设计。 |
| Cockpit | zl-cockpit-build | 生成本地静态项目驾驶舱,展示 Graphify、RAG、workflow、quality、privacy 和 evidence 状态。 |
| Context | zl-context-debug, zl-context-execute | 只生成 context packet,不启动完整 guard。 |
16. Artifact contract
以后扩展 Zhulong 时,先定义 artifact contract。没有本地文件落点的能力,很难被 guard 检查,也很难证明真的接入。
.planning/INIT_PROFILE.md记录初始化模板、模式、项目名。mode: existing 会影响 codebase gate。
.planning/codebase/CODEBASE_STATUS.md代码基线。既存项目没有这个文件,workflow 不应该允许收口。
.planning/knowledge/RAG_SOURCES.md文档来源清单。证明文档不是靠聊天复制粘贴临时塞进去。
.planning/knowledge/normalized/本地查询使用的规范化文档。文档更新后需要刷新。
.planning/knowledge/DOCS_SYNC.md文档同步报告。记录 diff/extract/citation audit 和是否执行 heavy refresh。
.planning/knowledge/DOCS_QUERY_RESULT.md普通本地文档查询结果。默认 answer audit 会读取它。
.planning/knowledge/RAG_QUERY_RESULT.md本地 GraphRAG 查询结果。默认 answer audit 会优先读取它。
.planning/quality/ANSWER_AUDIT.md回答依据审计报告。记录 citation 是否存在、源文件是否存在和当前 profile 下是否阻断。
.planning/quality/RAG_EVAL.mdRAG golden 和 citation 的汇总结果。用于判断文档问答是否还能稳定命中依据。
.planning/graphs/GRAPH_REPORT.mdGraphify 报告。用于影响面说明和 code review。
.planning/trace/TRACE_MATRIX.md文档、代码、测试、evidence 的追踪矩阵。用于可视化 QA 和 policy。
.planning/policies/POLICY_CHECK.md完成前横向策略检查。local-only、citation、golden、trace、graph freshness、license 都在这里给出状态。
.planning/refresh/REFRESH_STATE.jsonGraphRAG / Graphify 上次成功刷新 commit、corpus hash 和显式刷新命令。
.planning/refresh/PREFLIGHT.md轻量新鲜度提醒。普通 workflow 可读取它,但不能自动重建。
.planning/policies/POLICY_LOCK.mdpolicy snapshot 和 hash。用于确认 local-only/profile/RAG/Graphify 配置没有漂移。
.planning/workflows/*/WORKFLOW_STATE.jsonworkflow 状态机源数据。WORKFLOW_STATE.md 是给人看的版本。
.planning/workflows/*/WORKFLOW_FACADE.mdpublic workflow 的无感编排摘要。列出轻量 checks、四态 gate 和下一步建议命令。
.planning/goals/*/AUTHORIZATION.json自然语言多 milestone 自动执行的有界授权。记录 scope、actions、permissions、停止条件、原始用户消息摘要和撤销状态。
.planning/workflows/*/{PLAN,IMPLEMENTATION,VERIFICATION}.md当前 workflow 的类型化 gate artifact;必须包含 workflow ID、完成状态且不得保留 TBD。
.planning/evidence/INDEX.md验证证据索引。完成 milestone 前应该能找到当前任务证据。
templates/cockpit/sample.html稳定展示样例。使用假数据展示理想状态,适合先看页面目标形态。
templates/cockpit/index.template.htmlcockpit 独立模板。真实项目和样例页都复用它,避免 HTML 写死在 CLI 中。
cockpit-viewmodel.v1cockpit 的稳定视图契约。借鉴 Graphify 的 graph viewer 思路,先把散落报告归一成固定 view model,再由模板渲染搜索、节点详情、legend 过滤和聚合图。
.planning/cockpit/index.html真实项目驾驶舱静态页面。只读取已有 Graphify/RAG/workflow/quality/privacy/evidence artifact,不触发 heavy refresh;缺 artifact 时显示 WARN 或 WAIVED_WITH_RISK。
17. 排障方法
Zhulong 出问题时,按 gate 从前到后排查。不要先怀疑 AI runtime,先看本地 artifact 是否存在。
| 现象 | 优先检查 | 修复命令 |
| 既存项目 completion 被 codebase gate 阻断 | .planning/codebase/CODEBASE_STATUS.md 是否存在,源码数量是否为 0。 | zl-codebase-scan --target "$PWD" |
| docs gate 失败 | RAG_SOURCES.md、DOC_RAG_STATUS.md、RAG_QUERY_RESULT.md。 | zl-docs-sync --target "$PWD" |
出现 RAG backend disabled | .planning/config.json 是否是 rag_backend: none。 | 轻量项目改用 zl-docs-query --target "$PWD" "关键词";严格项目重新选择 --rag local 并运行 zl-rag-init-local --target "$PWD"。 |
出现 WAIVED_WITH_RISK | 当前是否为 reference 文档策略;缺少哪些 docs/RAG/citation artifact。 | 允许继续但要用 zl-evidence-record 写明风险;规格强约束任务切到 zl-mode-set --target "$PWD" docs-strict 并补 citation。 |
| graph gate 失败 | .planning/graphs/GRAPH_REPORT.md 是否存在,graph 是否 stale。 | zl-graph-build --target "$PWD" --run |
preflight 显示 behind-unrelated | PREFLIGHT.md 中 changed files 是否不在文档源或代码路径下。 | zl-refresh-plan --target "$PWD",无关则跳过。 |
| preflight 显示 RAG stale | 是否有文档源路径变更;是否需要更新 GraphRAG index。 | zl-refresh-run --target "$PWD" --rag |
| preflight 显示 Graph stale | 是否有源码或测试路径变更;是否需要更新 Graphify 图谱。 | zl-refresh-run --target "$PWD" --graph |
docs-strict 或 full-strict 阻断 completion | ANSWER_AUDIT.md、GRAPH_FRESHNESS.md、POLICY_CHECK.md 是否有 FAIL 或 STALE_NEEDS_REFRESH。 | 按报告补 citation、显式刷新 RAG/Graphify,或回到 docs-reference 并记录风险。 |
| authorization gate 失败 | 当前 Skill 是否真由用户请求;或 workflow 是否携带活动 authorization ID、milestone 和匹配的 contract digest/objective。 | 只有直接响应用户消息的 runtime 才附加 --source user-message;多 MVP 使用 zl workflow authorization-status 读取合同,并把精确 objective 与 digest 传给 child。 |
| acceptance gate 失败 | 用户是否已经查看并接受当前产物;原始消息是否明确要求完成;或 Goal 是否覆盖当前阶段。 | 获得用户验收后运行 zl workflow accept --source user-message --request "<验收原文>"。不要把测试通过当成用户验收。 |
| decisions gate 失败 | spec/discuss/ui 是否仍有重大 open question、contradiction 或 proposed decision。 | 让用户决定后更新结构化 decision 文件,再运行 zl workflow decisions --file <decision.json>。 |
| plan/implementation/verification 失败 | 当前 workflow 目录的类型化 artifact 是否包含 workflow ID、完成状态且无 TBD。 | zl-workflow-continue --target "$PWD" --gate verification --evidence .planning/workflows/<id>/VERIFICATION.md |
| evidence 或 writeback 失败 | .planning/evidence/ 和目标 issue/debug/phase 的记录是否绑定当前 workflow ID。 | zl-evidence-record --target "$PWD" "検証済み" --type verification --command "npm test" --result "passed" --writeback .planning/issues/CR-017.md |
completion-check 通过但状态仍是 running | 这是预期的只读语义。 | 确认确实要关闭后显式运行 zl workflow complete --target "$PWD"。 |
| policy check 失败 | POLICY_CHECK.md 中失败项;常见是没有 offline lock、没有 citation、没有 golden 或 trace matrix。 | zl-offline-lock --target "$PWD" && zl-citation-audit --target "$PWD" && zl-trace-build --target "$PWD" |
cockpit 显示 WAIVED_WITH_RISK | COCKPIT_REPORT.md 中缺少的 Graphify/RAG/evidence artifact。 | zl-docs-sync --target "$PWD" 或显式 zl-graph-build --target "$PWD" --run |
| Codex/Claude/Copilot 找不到命令 | runtime pack 是否安装到对应目录。 | zl-runtime-status --runtime codex --dest ~/.codex/skills |
18. CLI 输出与环境诊断
Zhulong 的所有顶层命令共享同一机器输出信封。普通结果进入 stdout,诊断进入 stderr;开启 --json 后,只输出一个符合 schemas/cli-output.schema.json 的 JSON 对象。
zhulong doctor --target "$PWD"
zhulong doctor --target "$PWD" --json
zhulong mode status --target "$PWD" --quiet
zhulong completion bash
zhulong completion zsh
zhulong completion fish
| 退出码 | 含义 | 调用方动作 |
0 | 成功 | 读取 stdout 或 JSON 信封。 |
1 | 命令或 gate 失败 | 按报告修复项目状态。 |
2 | 用法错误 | 修正命令或参数。 |
3 | 必需环境缺失 | 运行 zhulong doctor 补齐环境。 |
70 | 内部错误 | 保留 stderr 与复现步骤后报告缺陷。 |
19. 如何扩展
新增能力时,遵守这个顺序:先定义本地 artifact,再接 CLI 命令,再接 runtime pack,最后补 verification。
1. Artifact contract
明确文件落点、字段和通过条件。
2. CLI command
在 src/cli/ 与对应领域模块增加命令和 help。
3. Runtime pack
让 Codex/Claude/Copilot 通过 zl-* 调用。
4. Verification
在 verification/run-full-validation.mjs 中证明真实可用。
新增一个 Zhulong 命令的建议步骤
1. 在 README / docs/changelog.md / docs/commands.html / docs/quality-plan.md 定义用户入口和目标 artifact。
2. 在 src/cli/args.mjs 增加 alias,并在对应领域模块增加 handler。
3. 在 handler 中只写目标项目内的文件,不把数据散落到 Zhulong 仓库。
4. 如果是 workflow 或 cockpit 这类 AI runtime 可直接触发的命令,更新 runtime/codex、runtime/claude-code、runtime/github-copilot 的调用说明。
5. 增加专项 verification;命令面还要进入 verify:full-command-surface。
6. 跑 npm run check && npm test && npm run verify:ci;发布相关变更再跑 npm run verify:release。
新增一个外部工具适配器的建议步骤
1. 在 .planning/config.json 定义 command,例如 update_command 或 query_command。
2. 不带 --run 时先生成 handoff,让用户能审查会执行什么。
3. 带 --run 时执行命令,并把结果复制/摘要到 .planning/。
4. status/query/diff 命令只读取 .planning/,不要强依赖外部工具实时可用。
5. verification 中用 fixture provider 证明离线可测,再提供 live provider 开关。