✨ feat(playbook): version durable scratch workflow state
This commit is contained in:
@@ -123,9 +123,11 @@ setup-matt-pocock-skills
|
||||
-> to-spec
|
||||
-> to-tickets
|
||||
-> main_loop.py enqueue
|
||||
-> 提交 planning baseline
|
||||
-> main_loop.py claim
|
||||
-> 本地 ticket 执行协议 (tdd -> commit -> code-review -> finish)
|
||||
-> main_loop.py integrate
|
||||
-> 提交 final workflow state
|
||||
```
|
||||
|
||||
- 每个仓库首次使用时运行 `setup-matt-pocock-skills`,本地开发选择 local markdown tracker
|
||||
@@ -139,6 +141,9 @@ setup-matt-pocock-skills
|
||||
- `to-spec` 不重新进行已经完成的需求采访
|
||||
- `to-tickets` 产出可独立验证的 tracer-bullet tickets,并显式声明 `Blocked by`
|
||||
- 一次可以先生成多个 feature 的 spec/tickets,再按期望顺序逐个 `enqueue`
|
||||
- 本批次全部 `enqueue` 成功后、任何 `claim` 之前,必须把对应的
|
||||
`.scratch/<feature>/spec.md`、`.scratch/<feature>/issues/*.md` 和 `.scratch/queue.md`
|
||||
提交为一个 planning baseline;`to-spec`、`to-tickets` 和 `enqueue` 本身不隐式提交
|
||||
- `codebase-design` 是 seam、deep module 与依赖分类的词汇来源,供 `to-spec` 和 `tdd` 查阅,
|
||||
不作为独立会话运行
|
||||
|
||||
@@ -196,11 +201,6 @@ setup-matt-pocock-skills
|
||||
不得手工修改 ticket 的 `Status` 或 `main-loop:ticket-state` 区块;只通过主循环变更。主循环
|
||||
没有对应命令的状态组合按"卡死与恢复"处理,仍然不手工改。
|
||||
|
||||
`.scratch/` 是否纳入版本控制由项目决定并写入 `AGENT_RULES.local.md`:纳入则 spec、ticket 和
|
||||
证据进入历史,可审计、新 clone 能接手队列,代价是状态变更产生提交噪音;排除则历史干净,
|
||||
代价是状态只存在于本机磁盘、集成后审计线索消失,并发只靠"共享同一文件系统"兜住。无论哪种
|
||||
都不得把两份 `.scratch/` 当成同一队列。
|
||||
|
||||
## 稳定知识维护
|
||||
|
||||
只记录下一 session 仍需要的稳定知识;当前 feature、ticket、owner、heartbeat、验证和集成
|
||||
@@ -444,6 +444,12 @@ review 后再调用。main 合并冲突时主循环会**自动**把 feature 标
|
||||
`_integration` worktree;不干净或路径异常的保留并以 `WARNING=` 行报告。已集成的 feature
|
||||
再次调用时幂等返回 `INTEGRATED=`。
|
||||
|
||||
`integrate` 成功后必须在主干提交本 feature 的最终 workflow state。只暂存
|
||||
`.scratch/<feature>/` 下的持久变更,以及确由本次集成改写时的 `.scratch/queue.md`;不得用
|
||||
`git add .scratch` 把其他活动 feature 的并发状态带入。该状态提交必须位于 feature merge commit
|
||||
之后,不得 amend 或 squash 进 merge commit;`.scratch/<feature>/.main-loop.json` 中记录的
|
||||
`integration_commit` 必须继续指向主循环返回的 `MAIN_INTEGRATION_COMMIT`。
|
||||
|
||||
ready-to-integrate feature 因人工决策暂时不能集成时必须显式记录,否则主循环不会为后序
|
||||
feature 继续分配开发工作:
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ playbook/
|
||||
templates/
|
||||
├── AGENTS.template.md # 项目主入口与导航模板
|
||||
├── AGENT_RULES.template.md # Matt Pocock ticket-native 执行规则模板
|
||||
├── gitignore.template # .scratch 持久状态与本机运行时忽略规则
|
||||
├── memory-bank/ # 稳定项目知识模板(3 个),不是机器状态源
|
||||
├── cpp/ # C++ 工具链模板
|
||||
└── python/ # Python 工具链模板
|
||||
@@ -47,6 +48,7 @@ templates/
|
||||
- `AGENT_RULES.md`:`<!-- playbook:rules:start/end -->` 区块内的工程流程由 Playbook
|
||||
维护,重新同步时刷新;项目自己的补充写在区块外,同步不会动它
|
||||
- `AGENT_RULES.local.md`:项目私有规则,Playbook 不覆盖
|
||||
- `.gitignore`:Playbook 维护专属标记区块,仅忽略 `.scratch` 下的本机运行时产物
|
||||
- `memory-bank/`:稳定项目定位、技术上下文和当前系统模式,不承载机器状态
|
||||
|
||||
Playbook 只处理框架提供的同名文件。项目新增的 `memory-bank/*` 不会被删除。
|
||||
@@ -119,12 +121,14 @@ setup-matt-pocock-skills
|
||||
-> to-spec
|
||||
-> to-tickets
|
||||
-> main_loop.py enqueue
|
||||
-> 提交 planning baseline(spec + tickets + queue)
|
||||
-> main_loop.py claim
|
||||
-> 本地 ticket 执行协议(tdd)
|
||||
-> commit
|
||||
-> code-review
|
||||
-> main_loop.py finish
|
||||
-> main_loop.py integrate
|
||||
-> 提交 final workflow state
|
||||
```
|
||||
|
||||
产物和职责:
|
||||
@@ -136,6 +140,12 @@ setup-matt-pocock-skills
|
||||
- `docs/adr/`:长期架构决策
|
||||
- `docs/agents/*.md`:tracker 与领域文档配置
|
||||
|
||||
本批次 feature 全部 `enqueue` 后,先把对应 spec、tickets 和 queue 提交为一个 planning
|
||||
baseline,再开始任何 `claim`。生成和入队步骤本身不隐式提交。
|
||||
|
||||
feature 集成成功后,再在主干提交该 feature 的最终 `.scratch` 持久状态。此提交位于 feature
|
||||
merge commit 之后,并与其他活动 feature 的未提交状态隔离。
|
||||
|
||||
明确串行时可用 in-place,不创建 worktree;计划多个 session 并发时,第一个 claim
|
||||
就指定 worktree。并发 sessions 必须共享同一文件系统与 Git common directory;
|
||||
`main_loop.py` 不支持跨机器、独立 clone 或远程 tracker adapter。Matt skills 可单独
|
||||
@@ -175,6 +185,7 @@ project/
|
||||
├── AGENTS.md # 任一 sync_* 节启用时创建或按区块更新
|
||||
├── AGENT_RULES.md # [sync_rules]
|
||||
├── AGENT_RULES.local.md # 首次成功写入规则时创建,后续由项目维护
|
||||
├── .gitignore # [sync_rules] 更新 Playbook .scratch 标记区块
|
||||
├── CLAUDE.md # 默认位置;也可使用 .claude/CLAUDE.md
|
||||
├── .agents/ # [sync_standards]
|
||||
├── .gitattributes # [sync_standards] 按配置同步
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# Keep durable Playbook workflow state under .scratch version-controlled.
|
||||
!/.scratch/
|
||||
!/.scratch/**
|
||||
|
||||
# Ignore only machine-local main-loop runtime artifacts.
|
||||
/.scratch/*.lock
|
||||
/.scratch/worktrees/
|
||||
/.scratch/**/*.tmp
|
||||
Reference in New Issue
Block a user