cc-devflow 4.5.10 → 4.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/cc-act/CHANGELOG.md +23 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +17 -269
- package/.claude/skills/cc-act/SKILL.md +38 -418
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_INDEX_TEMPLATE.md +2 -13
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_TEMPLATE.md +1 -9
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +21 -177
- package/.claude/skills/cc-act/references/closure-contract.md +12 -63
- package/.claude/skills/cc-act/references/git-commit-guidelines.md +5 -5
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +5 -322
- package/.claude/skills/cc-act/scripts/detect-ship-target.sh +11 -2
- package/.claude/skills/cc-act/scripts/inspect-git-index.sh +58 -0
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +40 -440
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +10 -50
- package/.claude/skills/cc-check/CHANGELOG.md +24 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +19 -273
- package/.claude/skills/cc-check/SKILL.md +33 -454
- package/.claude/skills/cc-check/references/review-contract.md +12 -147
- package/.claude/skills/cc-dev/CHANGELOG.md +20 -0
- package/.claude/skills/cc-dev/PLAYBOOK.md +1 -1
- package/.claude/skills/cc-dev/SKILL.md +52 -130
- package/.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh +181 -0
- package/.claude/skills/cc-do/CHANGELOG.md +17 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +19 -113
- package/.claude/skills/cc-do/SKILL.md +39 -236
- package/.claude/skills/cc-do/references/execution-recovery.md +15 -109
- package/.claude/skills/cc-do/scripts/cc-do-common.sh +5 -57
- package/.claude/skills/cc-do/scripts/check-task-status.sh +35 -65
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +9 -46
- package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +29 -97
- package/.claude/skills/cc-investigate/CHANGELOG.md +23 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +20 -180
- package/.claude/skills/cc-investigate/SKILL.md +65 -513
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -95
- package/.claude/skills/cc-investigate/references/investigation-contract.md +14 -217
- package/.claude/skills/cc-next/CHANGELOG.md +6 -0
- package/.claude/skills/cc-next/PLAYBOOK.md +12 -8
- package/.claude/skills/cc-next/SKILL.md +34 -140
- package/.claude/skills/cc-plan/CHANGELOG.md +29 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +22 -161
- package/.claude/skills/cc-plan/SKILL.md +47 -640
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +30 -225
- package/.claude/skills/cc-plan/references/planning-contract.md +24 -160
- package/.claude/skills/cc-plan/scripts/next-change-key.sh +8 -44
- package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +2 -2
- package/.claude/skills/cc-plan/scripts/validate-scope.sh +1 -1
- package/.claude/skills/cc-pr-land/SKILL.md +14 -114
- package/.claude/skills/cc-pr-review/CHANGELOG.md +4 -0
- package/.claude/skills/cc-pr-review/SKILL.md +20 -103
- package/.claude/skills/cc-review/CHANGELOG.md +17 -0
- package/.claude/skills/cc-review/PLAYBOOK.md +13 -86
- package/.claude/skills/cc-review/SKILL.md +53 -241
- package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +2 -2
- package/.claude/skills/cc-review/references/implementation-review-branch.md +7 -147
- package/.claude/skills/cc-review/references/plan-review-branch.md +5 -147
- package/.claude/skills/cc-review/references/review-methods.md +10 -218
- package/.claude/skills/cc-review/scripts/collect-review-context.sh +4 -63
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +1 -1
- package/.claude/skills/cc-roadmap/SKILL.md +3 -3
- package/.claude/skills/cc-simplify/CHANGELOG.md +7 -0
- package/.claude/skills/cc-simplify/SKILL.md +26 -21
- package/.claude/skills/cc-spec-init/PLAYBOOK.md +12 -48
- package/.claude/skills/cc-spec-init/SKILL.md +29 -132
- package/.claude/skills/cc-spec-init/references/spec-contract.md +8 -17
- package/CHANGELOG.md +27 -0
- package/README.md +5 -3
- package/README.zh-CN.md +5 -3
- package/bin/cc-devflow-cli.js +20 -260
- package/bin/cc-devflow.js +44 -7
- package/docs/commands/README.md +1 -1
- package/docs/commands/README.zh-CN.md +1 -1
- package/docs/examples/README.md +1 -1
- package/docs/examples/START-HERE.md +14 -14
- package/docs/examples/example-bindings.json +11 -11
- package/docs/examples/full-design-blocked/README.md +4 -6
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/{planning/tasks.md → task.md} +20 -15
- package/docs/examples/local-handoff/README.md +8 -11
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/pr-brief.md +31 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/{planning/tasks.md → task.md} +18 -13
- package/docs/examples/pdca-loop/README.md +6 -9
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +9 -11
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/{planning/tasks.md → task.md} +18 -13
- package/docs/examples/scripts/check-example-bindings.sh +11 -62
- package/docs/guides/artifact-contract.md +10 -36
- package/docs/guides/getting-started.md +8 -7
- package/docs/guides/getting-started.zh-CN.md +8 -7
- package/docs/guides/minimize-artifacts.md +16 -116
- package/docs/guides/project-postmortem.md +14 -71
- package/lib/compiler/__tests__/skills-registry.test.js +9 -8
- package/lib/compiler/resource-copier.js +29 -0
- package/lib/skill-runtime/__tests__/archive-change.test.js +2 -2
- package/lib/skill-runtime/__tests__/benchmark-skills.test.js +109 -0
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +14 -4
- package/lib/skill-runtime/errors.js +3 -3
- package/lib/skill-runtime/index.js +5 -23
- package/lib/skill-runtime/paths.js +5 -52
- package/lib/skill-runtime/query-registry.js +4 -4
- package/lib/skill-runtime/query.js +89 -201
- package/lib/skill-runtime/store.js +4 -40
- package/lib/skill-runtime/trace.js +2 -2
- package/package.json +5 -7
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_PRINCIPLES_TEMPLATE.md +0 -29
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +0 -54
- package/.claude/skills/cc-act/scripts/generate-status-report.sh +0 -92
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +0 -355
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +0 -234
- package/.claude/skills/cc-check/scripts/render-report-card.js +0 -438
- package/.claude/skills/cc-check/scripts/verify-gate.sh +0 -85
- package/.claude/skills/cc-do/scripts/build-task-context.sh +0 -175
- package/.claude/skills/cc-do/scripts/record-review-decision.sh +0 -88
- package/.claude/skills/cc-do/scripts/recover-workflow.sh +0 -82
- package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +0 -70
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +0 -109
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +0 -92
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +0 -225
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +0 -179
- package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +0 -28
- package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +0 -45
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +0 -234
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +0 -488
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +0 -189
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +0 -39
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +0 -29
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +0 -123
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +0 -292
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +0 -136
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +0 -29
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +0 -124
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +0 -292
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +0 -136
- package/docs/get-shit-done-strategy-audit.md +0 -518
- package/docs/skill-runtime-migration.md +0 -46
- package/lib/skill-runtime/__tests__/approve.test.js +0 -92
- package/lib/skill-runtime/__tests__/autopilot.test.js +0 -253
- package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +0 -165
- package/lib/skill-runtime/__tests__/delegation.test.js +0 -97
- package/lib/skill-runtime/__tests__/dispatch.test.js +0 -237
- package/lib/skill-runtime/__tests__/intent.test.js +0 -203
- package/lib/skill-runtime/__tests__/lifecycle.test.js +0 -169
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +0 -331
- package/lib/skill-runtime/__tests__/prepare-pr.test.js +0 -126
- package/lib/skill-runtime/__tests__/query.test.js +0 -860
- package/lib/skill-runtime/__tests__/readiness.test.js +0 -53
- package/lib/skill-runtime/__tests__/release.test.js +0 -85
- package/lib/skill-runtime/__tests__/review-check-integration.test.js +0 -148
- package/lib/skill-runtime/__tests__/review-records.test.js +0 -619
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +0 -351
- package/lib/skill-runtime/__tests__/schemas.test.js +0 -337
- package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +0 -137
- package/lib/skill-runtime/__tests__/task-contract.test.js +0 -783
- package/lib/skill-runtime/__tests__/team-state.test.js +0 -51
- package/lib/skill-runtime/__tests__/verify-artifacts.test.js +0 -203
- package/lib/skill-runtime/__tests__/worker-run.test.js +0 -275
- package/lib/skill-runtime/__tests__/worker.test.js +0 -56
- package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +0 -31
- package/lib/skill-runtime/__tests__/workflow-context.test.js +0 -98
- package/lib/skill-runtime/artifacts.js +0 -88
- package/lib/skill-runtime/context-index.js +0 -545
- package/lib/skill-runtime/delegation.js +0 -533
- package/lib/skill-runtime/intent.js +0 -309
- package/lib/skill-runtime/lifecycle.js +0 -294
- package/lib/skill-runtime/operations/CLAUDE.md +0 -19
- package/lib/skill-runtime/operations/approve.js +0 -81
- package/lib/skill-runtime/operations/autopilot-core.js +0 -337
- package/lib/skill-runtime/operations/autopilot-execution.js +0 -307
- package/lib/skill-runtime/operations/autopilot-shared.js +0 -48
- package/lib/skill-runtime/operations/autopilot.js +0 -163
- package/lib/skill-runtime/operations/dispatch.js +0 -416
- package/lib/skill-runtime/operations/init.js +0 -60
- package/lib/skill-runtime/operations/janitor.js +0 -61
- package/lib/skill-runtime/operations/plan.js +0 -59
- package/lib/skill-runtime/operations/prepare-pr.js +0 -25
- package/lib/skill-runtime/operations/release.js +0 -99
- package/lib/skill-runtime/operations/resume.js +0 -126
- package/lib/skill-runtime/operations/review-records.js +0 -265
- package/lib/skill-runtime/operations/snapshot.js +0 -45
- package/lib/skill-runtime/operations/task-contract.js +0 -524
- package/lib/skill-runtime/operations/verify.js +0 -170
- package/lib/skill-runtime/operations/worker-run.js +0 -531
- package/lib/skill-runtime/operations/worker.js +0 -33
- package/lib/skill-runtime/planner.js +0 -539
- package/lib/skill-runtime/readiness.js +0 -84
- package/lib/skill-runtime/review-records.js +0 -123
- package/lib/skill-runtime/review.js +0 -855
- package/lib/skill-runtime/schemas.js +0 -746
- package/lib/skill-runtime/task-contract.js +0 -187
- package/lib/skill-runtime/team-state.js +0 -122
- package/lib/skill-runtime/workflow-context.js +0 -748
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# CC-Act Skill Changelog
|
|
2
2
|
|
|
3
|
+
## v1.9.1 - 2026-05-13
|
|
4
|
+
|
|
5
|
+
- simplify closeout rules so `cc-act` names only the allowed durable outputs and bans extra process files as a class
|
|
6
|
+
- remove old release/status/resume/report/ledger filename lists from the default ship contract
|
|
7
|
+
|
|
8
|
+
## v1.8.11 - 2026-05-13
|
|
9
|
+
|
|
10
|
+
- collapse `cc-act` delivery material into a single default `handoff/pr-brief.md` file
|
|
11
|
+
- fold release notes, local resume entry, and doc sync status into `pr-brief.md` sections instead of generating parallel `release-note.md`, `resume-index.md`, or `doc-sync-report.md`
|
|
12
|
+
- update `sync-act-docs.sh` so it collects doc-sync inputs without writing extra handoff Markdown files
|
|
13
|
+
- add `inspect-git-index.sh` and unborn-branch preflight rules so commit flow checks HEAD/ref/index truth before staging or committing
|
|
14
|
+
|
|
15
|
+
## v1.8.10 - 2026-05-13
|
|
16
|
+
|
|
17
|
+
- require the shared `resolve-cc-devflow.sh` CLI resolver before delivery context reset or post-merge archive commands
|
|
18
|
+
- make old global CLIs a ship blocker instead of allowing stale workflow context or archive claims
|
|
19
|
+
- update closeout language to call resolved CLI commands for archive proof
|
|
20
|
+
|
|
21
|
+
## v1.8.9 - 2026-05-13
|
|
22
|
+
|
|
23
|
+
- internalize closure operating rules so `cc-act` chooses one ship mode from verified facts, records rejected paths, and keeps handoff materials mode-specific
|
|
24
|
+
- require handoffs to state done, verified, remaining/blocker, and next entry while exposing skipped tests, archive, auth, PR, or release uncertainty loudly
|
|
25
|
+
|
|
3
26
|
## v1.8.8 - 2026-05-12
|
|
4
27
|
|
|
5
28
|
- require `cc-devflow query workflow-context` before ship work so `cc-act` confirms the context-index next action before opening delivery artifacts
|
|
@@ -1,280 +1,28 @@
|
|
|
1
1
|
# CC-Act Playbook
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## State Machine
|
|
4
4
|
|
|
5
|
-
`cc-check -> cc-act -> roadmap/
|
|
5
|
+
`cc-check -> cc-act -> next roadmap/REQ/FIX`
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- Stay in: `cc-act` while ship mode, simplify/test evidence, docs, and handoff are being aligned to proven facts.
|
|
9
|
-
- Exit to: the next roadmap/backlog loop once delivery artifacts, source RM progress, and follow-up writeback are complete.
|
|
10
|
-
- Reroute to: `cc-check` if verification changes, or `cc-do` if act uncovers unfinished implementation.
|
|
7
|
+
Act ships verified work. It does not create process state.
|
|
11
8
|
|
|
12
|
-
##
|
|
9
|
+
## Durable Outputs
|
|
13
10
|
|
|
14
|
-
`
|
|
11
|
+
- `handoff/pr-brief.md` for PR or local handoff
|
|
12
|
+
- incident postmortem for FIX or recurring failure
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
Everything else is Git history, PR history, or final response.
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
- `cc-act` 解决:这次被证明的变更到底怎么落地
|
|
16
|
+
## Closeout
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
1. Verify Git status and latest commits.
|
|
19
|
+
2. Run or cite the current validation commands.
|
|
20
|
+
3. Commit any remaining owned changes.
|
|
21
|
+
4. Build `pr-brief.md` only when PR/handoff needs it.
|
|
22
|
+
5. Write incident postmortem only when triggered.
|
|
23
|
+
6. Push/create/update PR when requested and available.
|
|
24
|
+
7. Archive completed change only after merge or explicit closeout.
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
## Blockers
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
2. 确认 `review/report-card.json` 是 `pass`,且没有未解释的 gaps / reroute
|
|
27
|
-
3. 确认 `planning/tasks.md` 不再有未完成项
|
|
28
|
-
4. 确认 `review.freshness` 新鲜、`runtime.failureOwnership` 无未解释失败、`qa.coverageAudit` / `qa.browserEvidence` 有证据或明确 skip
|
|
29
|
-
5. 确认 `qa.feedbackLoop` / `qa.behaviorEvidence` 能支撑行为结论;不可复现时必须写清缺什么 artifact / 权限 / 输入
|
|
30
|
-
6. 定位 source RM,并确认 `devflow/roadmap.json`、`devflow/ROADMAP.md`、optional `devflow/BACKLOG.md` 没有和 verified reality 冲突
|
|
31
|
-
|
|
32
|
-
如果 gate 没闭合,直接回 `cc-check` 或 `cc-do`,不要在 `cc-act` 自我安慰。
|
|
33
|
-
|
|
34
|
-
## Phase 0.5: Check Roadmap Progress
|
|
35
|
-
|
|
36
|
-
Roadmap 是执行链路的长期记忆,不是收尾时才想起的备忘录。
|
|
37
|
-
|
|
38
|
-
1. 从 `change-meta.json` / `planning/task-manifest.json` 读取 `sourceRoadmap.itemId`、REQ/FIX、primary capability、expected spec delta。
|
|
39
|
-
2. 用 `../cc-roadmap/scripts/locate-roadmap-item.sh <RM-ID>` 对照 `devflow/roadmap.json`、`devflow/ROADMAP.md`、optional `devflow/BACKLOG.md`。
|
|
40
|
-
3. 如果 RM 已经指向另一个 change、被标成 blocked/deferred/done,或 progress 与 `review/report-card.json` 现实冲突,先同步或 reroute,不继续 ship。
|
|
41
|
-
4. 如果没有 source RM,不编造;在 handoff 写 `roadmapSync.noOpReason: no-source-rm`。
|
|
42
|
-
|
|
43
|
-
## Phase 1: Freeze Ship Facts
|
|
44
|
-
|
|
45
|
-
运行 `scripts/detect-ship-target.sh`,锁定这些事实:
|
|
46
|
-
|
|
47
|
-
- current branch
|
|
48
|
-
- base branch
|
|
49
|
-
- branch state / rescue action
|
|
50
|
-
- platform / remote 能力
|
|
51
|
-
- 是否已有 PR / MR
|
|
52
|
-
- 推荐 ship 模式
|
|
53
|
-
|
|
54
|
-
Ship 必须属于这 4 种模式之一:
|
|
55
|
-
|
|
56
|
-
- `create-pr`
|
|
57
|
-
- `update-pr`
|
|
58
|
-
- `local-handoff`
|
|
59
|
-
- `post-merge-closeout`
|
|
60
|
-
|
|
61
|
-
如果 `BRANCH_STATE=detached` 且 `BRANCH_RESCUE=create-branch-before-pr`,立即运行
|
|
62
|
-
`scripts/ensure-ship-branch.sh --dir <requirement-dir>`,然后重跑最终验证与
|
|
63
|
-
`scripts/detect-ship-target.sh`。用户已经要求继续或提交远程 PR 时,detached HEAD
|
|
64
|
-
不是停在 `local-handoff` 的理由。
|
|
65
|
-
|
|
66
|
-
这里不要只报事实,必须给出一句明确结论:
|
|
67
|
-
|
|
68
|
-
- `Recommended mode: <mode>`
|
|
69
|
-
- `Why now: <一句话理由>`
|
|
70
|
-
- `Why not others: <一句话排除>`
|
|
71
|
-
|
|
72
|
-
## Phase 2: Simplify And Refresh Proof
|
|
73
|
-
|
|
74
|
-
在真正准备交付材料前,先做这 4 件事:
|
|
75
|
-
|
|
76
|
-
1. 调用 `cc-simplify`
|
|
77
|
-
- 通过当前运行时可用的 skill 调用器执行
|
|
78
|
-
- 如果桥接环境暴露为 `${JM}`,使用 `${JM}` with `skill: "cc-simplify"`
|
|
79
|
-
2. 跑项目单测
|
|
80
|
-
- 先检查 `package.json` scripts、`Makefile`、或项目常见测试入口
|
|
81
|
-
- 选择项目实际存在的命令执行
|
|
82
|
-
3. 跑 e2e
|
|
83
|
-
- 严格遵守协调器 prompt 给出的 e2e recipe
|
|
84
|
-
- recipe 明确要求跳过时,只记录 skip 理由
|
|
85
|
-
4. 一旦这三步里有任何修复改了代码,立即回 `cc-check`
|
|
86
|
-
|
|
87
|
-
原则很简单:
|
|
88
|
-
|
|
89
|
-
- `cc-act` 可以做清理和收尾修复
|
|
90
|
-
- 但只要现实被改写,就必须重新证明
|
|
91
|
-
- verification 每次进 `cc-act` 都要重新跑;只有 push、PR 更新、文档生成这类动作可以因幂等状态跳过
|
|
92
|
-
|
|
93
|
-
## Phase 2.5: Ship Hygiene
|
|
94
|
-
|
|
95
|
-
真正提交或推送前,先锁住 ship 卫生:
|
|
96
|
-
|
|
97
|
-
1. 比较 `VERSION` / `package.json` / base branch,识别 `fresh`、`already bumped`、`stale package`、`unexpected drift`。
|
|
98
|
-
2. 读取 changelog,不覆盖已有条目;新增或润色只能基于当前 diff 和 commit history。
|
|
99
|
-
3. 检查提交边界,按逻辑单元拆分,保证提交顺序不引用未来代码。
|
|
100
|
-
4. 如果有 WIP commit,只能用非破坏性 rebase / fixup 处理,不允许盲目 soft reset。
|
|
101
|
-
5. push 前比较 local / remote HEAD;PR 前检查是否已有打开 PR / MR。
|
|
102
|
-
- 如果当前是 detached HEAD 且目标是远程 PR,先用 `ensure-ship-branch.sh` 锚定命名分支,再做 push / PR。
|
|
103
|
-
6. 生成 readiness dashboard:review freshness、review quality、QA coverage、browser QA、feedback loop、behavior evidence、failure ownership、documentation release、PR body accuracy。
|
|
104
|
-
7. 生成 ship preflight:branch/base/remote/auth/clean tree/review freshness/ship mode。
|
|
105
|
-
8. preflight 失败必须命名为 `ShipPreflightError`,并写明 rescue action 或切到 `local-handoff`。
|
|
106
|
-
9. 发布、合并、PR 更新或 release note 前必须写 rollback guard。
|
|
107
|
-
|
|
108
|
-
## Phase 3: Build Delivery Pack
|
|
109
|
-
|
|
110
|
-
先按模式整理最小材料:
|
|
111
|
-
|
|
112
|
-
- `create-pr`: `handoff/pr-brief.md`
|
|
113
|
-
- `update-pr`: 更新后的 `handoff/pr-brief.md`
|
|
114
|
-
- `local-handoff`: `handoff/resume-index.md`
|
|
115
|
-
- `post-merge-closeout`: doc sync 结果 + `handoff/release-note.md`(需要发布时)
|
|
116
|
-
|
|
117
|
-
然后再补下面这些扩展材料:
|
|
118
|
-
|
|
119
|
-
- `handoff/pr-brief.md`
|
|
120
|
-
- `handoff/release-note.md`(需要发布时)
|
|
121
|
-
- 更新后的 `handoff/resume-index.md`
|
|
122
|
-
- `doc-sync-report.md`
|
|
123
|
-
|
|
124
|
-
这些文件只允许写已经被证明过的事实,不准补编故事。
|
|
125
|
-
|
|
126
|
-
建议顺序:
|
|
127
|
-
|
|
128
|
-
1. `scripts/sync-act-docs.sh --dir <requirement-dir>`
|
|
129
|
-
2. `scripts/render-pr-brief.sh --dir <requirement-dir>`
|
|
130
|
-
|
|
131
|
-
`pr-brief.md` 还必须带上 `cc-check` 的 review range:
|
|
132
|
-
|
|
133
|
-
- reviewed base SHA
|
|
134
|
-
- reviewed head SHA
|
|
135
|
-
- review packet path / summary
|
|
136
|
-
- finding triage summary
|
|
137
|
-
- QA / claim evidence summary
|
|
138
|
-
- ship preflight and `ShipPreflightError` rescue if any
|
|
139
|
-
- rollback guard
|
|
140
|
-
- QA behavior evidence and feedback-loop quality
|
|
141
|
-
- readiness dashboard
|
|
142
|
-
- PR body accuracy check
|
|
143
|
-
- Pull Request Body Draft: 按 `Output language` 生成中文或英文 PR 正文草稿,包含 summary/problem/changes/validation/review-gate/risk-rollback/docs-writeback/follow-ups
|
|
144
|
-
- Durable follow-up briefs: current behavior、desired behavior、key interfaces、acceptance criteria、out of scope
|
|
145
|
-
|
|
146
|
-
缺这些字段时,可以生成 local handoff,但不能声称 PR body 已经可 review。
|
|
147
|
-
|
|
148
|
-
## Phase 4: Sync Docs
|
|
149
|
-
|
|
150
|
-
文档同步不是装饰动作,而是 ship 的一部分。
|
|
151
|
-
|
|
152
|
-
同步规则:
|
|
153
|
-
|
|
154
|
-
1. 代码结构变了,就同步对应目录的 `CLAUDE.md`
|
|
155
|
-
2. 用户可感知行为变了,就同步 `README.md` / `handoff/release-note.md`
|
|
156
|
-
3. handoff 路径变了,就同步 `handoff/resume-index.md`
|
|
157
|
-
4. reviewer 如果看文档还得猜,就说明 sync 失败
|
|
158
|
-
5. 新文档必须从 README、CLAUDE 或 handoff 入口可发现
|
|
159
|
-
6. CHANGELOG 只允许保护性更新,不能重写历史
|
|
160
|
-
7. doc sync 结果要进入 PR body 或 handoff,而不是只留在聊天里
|
|
161
|
-
|
|
162
|
-
## Phase 5: Execute Integration
|
|
163
|
-
|
|
164
|
-
### `create-pr`
|
|
165
|
-
|
|
166
|
-
- 按 `references/git-commit-guidelines.md` 完成提交
|
|
167
|
-
- 如果当前是 detached HEAD,先运行 `scripts/ensure-ship-branch.sh --dir <requirement-dir>`
|
|
168
|
-
- 推送当前分支
|
|
169
|
-
- 用 `gh pr create` 创建 PR / MR
|
|
170
|
-
- PR body 以 `pr-brief.md` 的 `Pull Request Body Draft` 为真相源,并按 `Output language` 输出中文或英文
|
|
171
|
-
- PR body 必须包含 Summary/摘要、Problem/问题、Changes/变更、Validation/验证、Review/Gate Evidence、Risk/Rollback、Docs/Writeback、Follow-ups
|
|
172
|
-
- 创建前检查 PR body 是否来自当前 report-card、当前 diff、doc sync 和 roadmap writeback,不继承旧 body、不保留 `<placeholder>`、不只写一句泛化摘要
|
|
173
|
-
|
|
174
|
-
### `update-pr`
|
|
175
|
-
|
|
176
|
-
- 如果有新增提交,先按 `references/git-commit-guidelines.md` 完成 commit / push
|
|
177
|
-
- 不重新造一个 PR
|
|
178
|
-
- 刷新已有 PR / MR body
|
|
179
|
-
- 确保 body 由本次最新 `cc-check` 结果、doc sync 状态和 `Pull Request Body Draft` 重建,不沿用旧 body
|
|
180
|
-
- PR body 与当前 commits / diff 不一致时,必须先更新 body,再继续交付判断
|
|
181
|
-
|
|
182
|
-
### `local-handoff`
|
|
183
|
-
|
|
184
|
-
- 不假装已经 ship
|
|
185
|
-
- 明确写出下一位接手者的入口、验证方式、阻塞点
|
|
186
|
-
|
|
187
|
-
### `post-merge-closeout`
|
|
188
|
-
|
|
189
|
-
- 不做 feature branch PR 动作
|
|
190
|
-
- 在 merged result 上重跑必要 gate,并记录命令、exit status、关键观察
|
|
191
|
-
- 完成 release note、文档同步、backlog/roadmap 回写、归档
|
|
192
|
-
- 归档是 exit gate:运行 `cc-devflow archive-change <change-key>`,再用 archive path 或 `cc-devflow list-archived` 证明 active change 已离开 `devflow/changes/<change-key>`
|
|
193
|
-
|
|
194
|
-
### destructive cleanup
|
|
195
|
-
|
|
196
|
-
- 删除 branch、worktree、未合并提交、change archive 前,先列出对象
|
|
197
|
-
- 丢弃未合并工作必须要求用户显式确认
|
|
198
|
-
- 无法确认时保留现场,切到 `local-handoff`
|
|
199
|
-
|
|
200
|
-
如果 `gh` 不可用、push 失败、远端不可达,就不要硬凹 `create-pr` / `update-pr`。切到 `local-handoff`,把阻塞和下一步写清楚。
|
|
201
|
-
|
|
202
|
-
## Phase 6: Write Back The Learning
|
|
203
|
-
|
|
204
|
-
以下情况必须回写 `devflow/roadmap.json`,再重新生成 `devflow/ROADMAP.md` / `devflow/BACKLOG.md`:
|
|
205
|
-
|
|
206
|
-
1. 本次工作暴露了新的 follow-up
|
|
207
|
-
2. 原有优先级被改变
|
|
208
|
-
3. 有明确 deferred item 不能靠口头记忆保存
|
|
209
|
-
4. source RM 的 ship 现实从 planned / repair planned 推进到了 in review / ready for handoff / done
|
|
210
|
-
|
|
211
|
-
原则:
|
|
212
|
-
|
|
213
|
-
- 长期方向写进 `devflow/roadmap.json` 的 stage / item / backlog 字段
|
|
214
|
-
- 下一轮待排队动作写进对应 RM 的 backlog 字段,或交给 `cc-roadmap` 新增 RM
|
|
215
|
-
- 不要把噪音和碎念回写成系统真相
|
|
216
|
-
- follow-up 必须是 durable brief:用领域语言写 current behavior、desired behavior、key interfaces、acceptance criteria、out of scope
|
|
217
|
-
- 独立行为拆独立条目;有依赖关系时写明顺序,方便下一轮并行或排队
|
|
218
|
-
- 常规进度用 `../cc-roadmap/scripts/sync-roadmap-progress.sh --rm <RM-ID> --status <state> --req <REQ/FIX> --progress <percent>`
|
|
219
|
-
- follow-up 改变阶段顺序或项目优先级时,不在 `cc-act` 临场重排,reroute 到 `cc-roadmap`
|
|
220
|
-
|
|
221
|
-
## Phase 7: Declare The Next Entry
|
|
222
|
-
|
|
223
|
-
`cc-act` 结束时必须留下一个明确入口:
|
|
224
|
-
|
|
225
|
-
- requirement 真闭环:已经归档,下一轮入口在 backlog / roadmap
|
|
226
|
-
- requirement 未完全闭环:`handoff/resume-index.md` 必须告诉下一位从哪里接、怎么验、当前卡点是什么
|
|
227
|
-
|
|
228
|
-
## Recommendation Test
|
|
229
|
-
|
|
230
|
-
交付前过一遍这 4 个问题:
|
|
231
|
-
|
|
232
|
-
1. 看完第一屏,别人能不能立刻知道 ship 模式?
|
|
233
|
-
2. 材料是不是只覆盖当前模式真正需要的内容?
|
|
234
|
-
3. reviewer / 接手者 还需不需要追问“所以我现在该看哪个文件”?
|
|
235
|
-
4. `cc-simplify`、单测、e2e、commit/push 的结果是不是都能追溯?
|
|
236
|
-
5. PR body / release note / handoff / changelog 说的是不是同一套现实?
|
|
237
|
-
6. readiness dashboard 有没有 blocker 或 stale warning?
|
|
238
|
-
7. follow-up 是不是行为契约,而不是“改某文件某行”的易腐烂 TODO?
|
|
239
|
-
8. ship preflight failure 是否有 `ShipPreflightError`、artifact ref 和 rescue action?
|
|
240
|
-
9. rollback guard 是否足够让下一位维护者不靠聊天记录回退?
|
|
241
|
-
10. source RM 的 status、REQ/FIX、progress 是否已经和 ship 现实一致?
|
|
242
|
-
11. `post-merge-closeout` 是否已经跑过 `cc-devflow archive-change <change-key>`,并留下 archive path?如果没有,是否有明确 `ArchiveSkip` blocker 和 retry command?
|
|
243
|
-
|
|
244
|
-
如果第 1 或第 3 题答案不是“能”,说明 `cc-act` 仍然太重或太糊。
|
|
245
|
-
|
|
246
|
-
## Required Outputs
|
|
247
|
-
|
|
248
|
-
- `handoff/pr-brief.md`
|
|
249
|
-
- `handoff/release-note.md`(需要发布时)
|
|
250
|
-
- 更新后的 `handoff/resume-index.md`
|
|
251
|
-
- 更新后的 `CLAUDE.md` / README / 架构文档(如果结构或行为变了)
|
|
252
|
-
- 必要时更新后的 `devflow/roadmap.json` / `devflow/ROADMAP.md` / `devflow/BACKLOG.md`
|
|
253
|
-
- `post-merge-closeout` 必须留下 archive path;未归档只能留下 `ArchiveSkip` blocker,不能宣称闭环完成
|
|
254
|
-
|
|
255
|
-
## Local Kit
|
|
256
|
-
|
|
257
|
-
- `assets/PR_BRIEF_TEMPLATE.md` 负责 reviewer / PR 交付骨架
|
|
258
|
-
- `assets/RELEASE_NOTE_TEMPLATE.md` 负责对外发布骨架
|
|
259
|
-
- `scripts/verify-act-gate.sh` 负责 gate 闭合校验
|
|
260
|
-
- `scripts/detect-ship-target.sh` 负责分支与 PR 决策
|
|
261
|
-
- `scripts/ensure-ship-branch.sh` 负责把可继续的 detached HEAD 锚定成可推送分支
|
|
262
|
-
- `scripts/sync-act-docs.sh` 负责同步 requirement 级文档与 doc target 报告
|
|
263
|
-
- `scripts/render-pr-brief.sh` 负责从 requirement 真相源渲染 `pr-brief.md`
|
|
264
|
-
- `scripts/generate-status-report.sh` 负责汇总 requirement 与 ship 现状
|
|
265
|
-
- `scripts/archive-change.sh` 负责 change 生命周期收尾(归档到 `devflow/changes/archive/YYYY-MM/`)
|
|
266
|
-
- `../cc-roadmap/scripts/locate-roadmap-item.sh` 负责定位 source RM
|
|
267
|
-
- `../cc-roadmap/scripts/sync-roadmap-progress.sh` 负责回写 roadmap progress 并渲染投影
|
|
268
|
-
- `cc-simplify` 负责在 ship 前压掉重复、坏味道、低效实现
|
|
269
|
-
- `references/git-commit-guidelines.md` 负责提交规范真相源
|
|
270
|
-
|
|
271
|
-
## Exit Smell
|
|
272
|
-
|
|
273
|
-
如果用户看完结果还会问:
|
|
274
|
-
|
|
275
|
-
- “所以现在是提 PR 还是先 handoff?”
|
|
276
|
-
- “你真的跑过 simplify、单测、e2e 吗?”
|
|
277
|
-
- “为什么要写 release note?”
|
|
278
|
-
- “下一位到底从哪里开始接?”
|
|
279
|
-
|
|
280
|
-
那这次 `cc-act` 还没有把复杂度压平。
|
|
28
|
+
Return to `cc-check` when evidence changed. Return to `cc-do` when implementation is unfinished. Do not patch around missing proof in Act.
|