Zhulong Project Intelligence Kit

技术手册

Zhulong 如何工作。

从命令路由、本地制品到 completion gate,逐层理解 workflow、文档 RAG、Graphify 和 evidence loop。

先用三张图建立技术模型。

技术教程后面会展开细节,但接手者最先需要知道三件事:Zhulong 在哪里、文件落在哪里、生命周期怎么走。

本地控制面 制品留在项目内
Runtime Packs Zhulong CLI Adapters .planning/ Workflow Gates
artifact contract
target-project/ ├─ src/ ├─ docs/ ├─ AGENTS.md ├─ project.manifest.yml └─ .planning/ ├─ codebase/ CODEBASE_STATUS.md ├─ knowledge/ DOCS_SYNC.md ├─ quality/ ANSWER_AUDIT.md ├─ graphs/ GRAPH_REPORT.md ├─ refresh/ REFRESH_STATE.json ├─ workflows/ WORKFLOW_STATE.json └─ evidence/ INDEX.md
gate model

Completion gates

context、codebase、docs、graph、plan、implementation、verification、evidence、writeback 全部通过才允许完成。

local first

目标项目内落盘

Zhulong 自己只写本地文件;外部流通只来自你显式配置的 runtime、RAG 或 Graphify command。

1. 心智模型

Zhulong 是目标项目旁边的一层本地 intelligence layer。它不搬动源码,不替代 IDE,不替代 AI runtime。它负责组织上下文、证据、代码地图和完成前检查。

用户 / runtime
调用 zl-debugzl-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 noneworkflow + codebase baseline + Graphify;少量资料可直接扫描RAG gate 不参与阻断,代码、策略、验证和 evidence gate 保持有效zl-codebase-scanzl-graph-build --runzl-debug
普通既有改修reference,必要时升到 strictcodebase baseline + Graphify 影响面代码图缺失或 privacy 问题阻断;文档缺失按风险放行zl-graph-build --runzl-preflightzl-graph-impact
文档密集 / 规格严格--doc-policy strict --rag local --setup-rag skip本地 GraphRAG、citation、answer audit、tracemissing citation、RAG stale、Graphify stale、外部 provider 均可阻断zl-rag-init-localzl-docs-index --runzl-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.mdproject.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检查内容为什么需要
contextcontext packet 和 handoff 是否存在。证明 workflow 已启动并留下执行上下文。
codebaseCODEBASE_STATUS.md;既存项目源码数量大于 0。避免对未知代码库直接下结论。
docs真实文档扫描结果,或带有本地源文件 citation 的成功 RAG/docs query;rag none 项目按 reference 策略处理。存在正式业务资料时必须给出来源;非文档密集型项目不虚构文档要求。
graphGraphify graph/report 存在且不 stale。改修前要知道代码影响面。
interaction-policyinteractiveauto_advance 和配置矛盾。默认 fail closed,避免配置只写在模板里却从未执行。
authorization当前用户消息对当前工作的明确授权,或匹配 action/milestone 的活动 Goal grant。代理不能把建议或前一阶段完成当成执行授权。
acceptance用户查看产物后的当前 workflow 验收,或匹配的 Goal grant。“请分析/修复/规划”不等于提前接受尚未生成的结果;原消息明确要求完成/关闭时除外。
decisionsspec/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。历史证据不能替当前任务通过。
writebackissue/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-scanRAG_SOURCES.mdDOC_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-localgraphrag-workspace/settings.yamlLOCAL_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.jsongraphify-out/GRAPH_REPORT.md
同步到 .planning/graphs/graph.jsonGRAPH_REPORT.md
zl-graph-queryzl-graph-impactzl-graph-riskzl-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、组件库、视觉稿或品牌规范只审计,不引入新视觉系统
systemDashboard、后台、表格和多步骤产品 UI关闭营销页规则,服从产品设计系统

优先级固定为:用户明确要求、正式设计与规格证据、合规与可访问性约束、现有源码约定、Taste Adapter、模型自由选择。greenfield 营销页通常进入 create;brownfield 项目只有在风格确实零散时才进入 evolve。设置 taste: disabled 可以完全关闭 Taste。

Runtime安装目录文件类型内部调用
Codex~/.codex/skillsSKILL.mdworkflow run debug
Claude Code~/.claude/skillsSKILL.mdworkflow run debug
GitHub Copilot.github/prompts*.prompt.mdworkflow 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 的 evidencewriteback 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.mdzl-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.jsonPREFLIGHT.mdREFRESH_PLAN.mdREFRESH_RUN.mdMODE.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"
--strictdocs-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_REFRESHRAG/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_commandquery_commandupdate_command
  • 默认保密项目使用 zl-rag-init-local、Ollama、本地 embedding 和 LanceDB。
  • 运行 zl-offline-lock --target "$PWD"zl-privacy-audit --target "$PWD" --strictzl-outbound-audit --target "$PWD",确认没有外部 endpoint、外部 provider、API key 或网络命令。
  • 不要把 .planning/graphify-out/graphrag-workspace/ 提交到公开仓库。

不要把 graphrag-workspace/settings.yaml 中的 model_provider 改成 openaideepseekazure 等外部 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.mdBenchmark 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-debugzl-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-mapCLI 可用,目标项目有 .planning/ 基础结构。
Codebasezl-codebase, zl-codebase-scan, zl-codebase-status既存项目有 source/test/config baseline。
文档/RAGzl-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 可复查。
Graphifyzl-graph-build, zl-graph-status, zl-graph-query, zl-graph-diff, zl-graph-impact, zl-graph-risk, zl-graph-freshness代码图谱、影响面、风险和 stale 状态可检查。
Refresh / Modezl-preflight, zl-refresh-plan, zl-refresh-run, zl-mode-status, zl-mode-set普通流程只提醒,显式命令才刷新,模式可切换。
Privacy / Licensezl-privacy-audit, zl-offline-lock, zl-outbound-audit, zl-license-auditlocal-only、外发风险和 license 风险可审计。
Evidence / Trace / Policyzl-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证据、追踪矩阵、策略检查、策略合同和命令推荐可落盘。
Runtimezl-runtime-install, zl-runtime-statusCodex / Claude Code / GitHub Copilot 入口统一落到 CLI。
Workflow guardzl-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 workflowzl-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 只作参考设计。
Cockpitzl-cockpit-build生成本地静态项目驾驶舱,展示 Graphify、RAG、workflow、quality、privacy 和 evidence 状态。
Contextzl-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.md

RAG golden 和 citation 的汇总结果。用于判断文档问答是否还能稳定命中依据。

.planning/graphs/GRAPH_REPORT.md

Graphify 报告。用于影响面说明和 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.json

GraphRAG / Graphify 上次成功刷新 commit、corpus hash 和显式刷新命令。

.planning/refresh/PREFLIGHT.md

轻量新鲜度提醒。普通 workflow 可读取它,但不能自动重建。

.planning/policies/POLICY_LOCK.md

policy snapshot 和 hash。用于确认 local-only/profile/RAG/Graphify 配置没有漂移。

.planning/workflows/*/WORKFLOW_STATE.json

workflow 状态机源数据。WORKFLOW_STATE.md 是给人看的版本。

.planning/workflows/*/WORKFLOW_FACADE.md

public 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.html

cockpit 独立模板。真实项目和样例页都复用它,避免 HTML 写死在 CLI 中。

cockpit-viewmodel.v1

cockpit 的稳定视图契约。借鉴 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.mdDOC_RAG_STATUS.mdRAG_QUERY_RESULT.mdzl-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-unrelatedPREFLIGHT.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-strictfull-strict 阻断 completionANSWER_AUDIT.mdGRAPH_FRESHNESS.mdPOLICY_CHECK.md 是否有 FAILSTALE_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_RISKCOCKPIT_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 开关。