一键导入
sample
归档已完成的 llman SDD 变更。BDD-off 合并 TOON delta 到主 specs;BDD-on 在 attach/checkpoint 后仅封存 change 文档,再由 Git/PR merge 提升 live specs。在 verify 报告全绿后运行。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
归档已完成的 llman SDD 变更。BDD-off 合并 TOON delta 到主 specs;BDD-on 在 attach/checkpoint 后仅封存 change 文档,再由 Git/PR merge 提升 live specs。在 verify 报告全绿后运行。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
单个闭环完成一个变更:实现→测试→校验→归档→提交。仅手动触发。Agent 禁止自动启用。
在一个闭环内实施 llman SDD 变更的 tasks:写代码 → 跑测试 → 失败自修复 → 直到门禁全绿。自动更新 tasks.md 勾选状态并运行校验。用于提案完成后的实现阶段。
进入 llman SDD 探索模式:理清思路、调查需求、分析问题。仅思考,禁止写代码。用于意图不明确或需要分析后再行动的场景。
以 mermaid 图可视化 llman SDD 变更间的依赖关系(depends_on/blocks)。辅助工具,任意阶段可用,不属于主实现 pipeline。
创建 llman SDD 变更提案与规划工件(proposal/tasks;在 feature 分支编辑 live specs/features 并 attach)。用于 MUST/SHALL 行为合约变更。
快速路径:处理不改行为合约的小改动——重构、修错字、性能优化。不涉及 MUST/SHALL 变更。如发现需要改合约,立即切换到 propose 完整路径。
| name | llman-sdd-archive |
| description | 归档已完成的 llman SDD 变更。BDD-off 合并 TOON delta 到主 specs;BDD-on 在 attach/checkpoint 后仅封存 change 文档,再由 Git/PR merge 提升 live specs。在 verify 报告全绿后运行。 |
| metadata | {"version":"0.0.64","llman_sdd":{"bdd_mode":"on","skill_set":"default"}} |
使用此 skill 归档已完成的变更。BDD-off:合并 delta specs 到主 specs。BDD-on:仅移动 change 文档(specs 已在 feature 分支上 live),再经 Git/PR merge 提升。
flowchart LR
verify["llman-sdd-verify<br/>验证"] --> archive
archive["★ llman-sdd-archive ★<br/>归档(你现在在这里)"]
archive --> commit["git commit<br/>完成闭环"]
style archive fill:#fff3cd,stroke:#ffc107,stroke-width:3px
📍 你现在在归档阶段:pipeline 最后一站。 📎 若 specs 逐渐膨胀,可运行
llman-sdd-specs-compact压缩。
llman sdd validate <id> --strict --no-interactive。git status --porcelain:确认工作区改动属于已完成的 change。llman sdd list --json)。llman sdd validate <id> --strict --no-interactive。llman sdd change archive <id> --dry-run。llman sdd change archive <id>llman sdd change archive <id> --skip-specsllman sdd change attach <id>,仍在 feature 分支上。change archive / change finalize 只移动 change 文档到 changes/archive/——不会把 TOON delta 当 SSOT 合并,也永不 apply feature_delta。*.feature.delta.toon 是迁移阻断项——归档前须移除/迁移。llmanspec/specs/**。change finalize)——同进程跑门禁 → 写 frontmatter(checkpointed / checkpoint_sha = base_sha)→ docs-only archive,结束后工作区脏一次,一次 git commit 收尾:
1. 实现 live specs + 代码(工作区可保持脏)
2. llman sdd change finalize <id> # 门禁 + 写 frontmatter + 移动 change 文档
3. git commit # 一次提交:实现 + frontmatter + archive 改名
checkpoint_sha 语义:finalize 写入的是 attach 时的 base_sha,不是实现 commit 的 HEAD(单 commit 模式下实现 commit 尚未发生)。如需精确指向实现 commit,走下方 fallback。checkpoint + archive)——需要严格 checkpoint_sha、或想中途 review 实现快照时使用:
1. git commit # 提交 live specs + 代码(让工作区干净,checkpoint 才能跑)
2. llman sdd change checkpoint <id> # 写入 checkpointed / checkpoint_sha(指向实现 commit HEAD)
3. git commit # 提交 proposal.md 的 checkpoint 元数据
4. llman sdd change archive <id> # 仅移动 change 文档到 archive/
5. git commit # 提交 archive 改名
change archive 按今日流程将 change 内 TOON delta 合并进主 spec.toon。llman sdd validate --all --strict --no-interactive。feat(sdd): archive <id1>, <id2> - <简短总结>),然后 git add -A && git commit -m "..."。depends_on:archive 会把 change 目录改名为 archive/YYYY-MM-DD-<id>,但 validate 会把指向 archived/frozen id 的 depends_on 识别为 INFO(非 ERROR),所以归档后无需手动更新其它 change 的 depends_on frontmatter。💡 上一阶段
llman-sdd-verify(验证通过)→ 本阶段归档后闭环结束。若 specs 逐渐膨胀,可运行llman-sdd-specs-compact压缩。
llman sdd archive freeze --dry-runllman sdd archive freeze --before <YYYY-MM-DD> --keep-recent <N>llman sdd archive thaw --change <YYYY-MM-DD-id>YYYY-MM-DD-*);建议保留少量最近目录不冻结。行动前先阅读 llmanspec/config.yaml,并遵循其中的 context 与 rules(若有)。
常用命令:
llman sdd context --task "<描述>" --paths "<文件>"(找相关 specs)。使用 pageindex agentic tree 后端(需 LLMAN_SDD_INDEX_CHAT_MODEL)。可用 LLMAN_SDD_INDEX_BACKEND 预设。llman sdd list(列出变更)llman sdd list --specs(列出 specs 及 purpose/scope 元数据)llman sdd show <id>(展示 change/spec)llman sdd validate <id>(校验 change 或 spec)llman sdd validate --all(批量校验)llman sdd index rebuild(重建 pageindex 树索引——不需要模型)llman sdd index check(检查索引新鲜度)llman sdd change new <id>(创建草稿 changes/<id>/proposal.md)
{% if bdd_enabled %}llman sdd change attach <id> [--force](BDD-on:绑定 feature 分支 + base SHA)llman sdd change finalize <id> [--no-check](BDD-on:推荐单 commit 路径——不要求干净树;同进程 checkpoint + docs-only archive;写 checkpoint_sha = base_sha)llman sdd change checkpoint <id> [--no-check](BDD-on:干净工作区 + 归档前门禁;严格 sha = HEAD)llman sdd change diff <id> [--export-patch <path>](BDD-on:只读 base...HEAD 审查/导出)
{% endif %}
{% if not bdd_enabled %}llman sdd change delta …(仅 BDD-off:TOON delta 作者工具;BDD-on 会拒绝)
{% endif %}llman sdd change archive <id>(封存变更;BDD-on:checkpoint 后仅文档 / 或作 finalize fallback;BDD-off:合并 TOON delta)llman sdd archive freeze [--before YYYY-MM-DD] [--keep-recent N] [--dry-run](冻结已归档目录)llman sdd archive thaw [--change <id> ...] [--dest <path>](从冷备份恢复)llman sdd graph [CHANGE] [--format mermaid] [--scope active|archived|all] [--depth N](生成变更依赖图)llman sdd project migrate [--kind format|partitioned|legacy-bdd|auto](一次性迁移)常见校验修复(TOON 独立文件 spec):
Spec valid_scope must not be empty):
Main spec 必须在 .toon 文档内携带非空的 valid_scope。
llmanspec/specs/<feature-id>/spec.toon:kind: llman.sdd.spec
name: sample
purpose: "One-line overview."
valid_scope[1]: src
requirements[1]{req_id,title,statement}:
r1,Title,System MUST do something.
scenarios[1]{req_id,id,given,when,then}:
r1,happy,"",a trigger happens,the outcome is observed
llmanspec/changes/<change-id>/specs/<feature-id>/spec.toon):kind: llman.sdd.delta
ops[1]{op,req_id,title,statement,from,to,name}:
add_requirement,r1,Title,System MUST do something.,null,null,null
op_scenarios[1]{req_id,id,given,when,then}:
r1,happy,"",a trigger happens,the outcome is observed
# 错误:未加引号的空格值会被拆成多个值
r1,happy,"",a trigger happens,the outcome is observed
# 正确:多词值加引号
r1,happy,"","a trigger happens","the outcome is observed"
config.yaml 有 bdd: 时:spec.toon=约束/不可执行场景;*.feature=可执行 GWT(@req)。在非默认分支编辑 live 文件 → change attach → 优先 change finalize(单 commit)或 fallback checkpoint → docs-only change archive → Git merge。不要找 solidify,也不要新建 *.feature.delta.toon(若已存在则是迁移阻断,跑 project migrate --kind partitioned)。空 requirements 且无 .feature = ERROR。备注:
.toon 文件;没有 Markdown 外壳,也没有 ```toon fence。null 表示可选字段缺失。.md+fence 迁移请使用 llman sdd migrate。llman sdd context --task --paths 获取相关 specs,而非全量读取或猜测。llman sdd context --task --paths 获取相关 specs。llman sdd 命令结果为事实来源。llman sdd context 获取相关 specs,而非全量读取或猜测。list --specs --json)。ethics.risk_level:按 low|medium|high|critical 标注风险等级。ethics.prohibited_actions:列出绝对禁止执行的动作。ethics.required_evidence:列出高影响输出前必须具备的证据。ethics.refusal_contract:定义何时拒答以及安全替代响应方式。ethics.escalation_policy:定义何时必须升级为用户确认/人工复核。