cc-devflow 4.5.8 → 4.5.10
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 +33 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +9 -4
- package/.claude/skills/cc-act/SKILL.md +73 -12
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_INDEX_TEMPLATE.md +30 -0
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_PRINCIPLES_TEMPLATE.md +29 -0
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_TEMPLATE.md +103 -0
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +61 -5
- package/.claude/skills/cc-act/references/closure-contract.md +4 -1
- package/.claude/skills/cc-act/references/git-commit-guidelines.md +342 -37
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +29 -1
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +164 -0
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +1 -1
- package/.claude/skills/cc-check/CHANGELOG.md +17 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +1 -0
- package/.claude/skills/cc-check/SKILL.md +9 -5
- package/.claude/skills/cc-check/references/review-contract.md +7 -0
- package/.claude/skills/cc-check/scripts/render-report-card.js +6 -1
- package/.claude/skills/cc-dev/CHANGELOG.md +5 -0
- package/.claude/skills/cc-dev/SKILL.md +26 -1
- package/.claude/skills/cc-do/CHANGELOG.md +23 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +7 -7
- package/.claude/skills/cc-do/SKILL.md +49 -45
- package/.claude/skills/cc-do/references/execution-recovery.md +18 -13
- package/.claude/skills/cc-do/scripts/build-task-context.sh +13 -22
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +0 -6
- package/.claude/skills/cc-do/scripts/record-review-decision.sh +4 -5
- package/.claude/skills/cc-do/scripts/recover-workflow.sh +9 -11
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +12 -10
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +7 -29
- package/.claude/skills/cc-investigate/CHANGELOG.md +34 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +21 -5
- package/.claude/skills/cc-investigate/SKILL.md +97 -40
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +66 -4
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +30 -59
- package/.claude/skills/cc-investigate/assets/{ANALYSIS_TEMPLATE.md → legacy/ANALYSIS_TEMPLATE.md} +48 -0
- package/.claude/skills/cc-investigate/references/investigation-contract.md +16 -2
- package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +1 -1
- package/.claude/skills/cc-next/CHANGELOG.md +6 -0
- package/.claude/skills/cc-next/PLAYBOOK.md +26 -4
- package/.claude/skills/cc-next/SKILL.md +39 -4
- package/.claude/skills/cc-plan/CHANGELOG.md +38 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +60 -53
- package/.claude/skills/cc-plan/SKILL.md +164 -87
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +101 -9
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +58 -229
- package/.claude/skills/cc-plan/assets/{DESIGN_TEMPLATE.md → legacy/DESIGN_TEMPLATE.md} +68 -0
- package/.claude/skills/cc-plan/assets/{TINY_DESIGN_TEMPLATE.md → legacy/TINY_DESIGN_TEMPLATE.md} +47 -1
- package/.claude/skills/cc-plan/references/planning-contract.md +48 -33
- package/.claude/skills/cc-review/CHANGELOG.md +6 -0
- package/.claude/skills/cc-review/PLAYBOOK.md +9 -11
- package/.claude/skills/cc-review/SKILL.md +37 -61
- package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +1 -1
- package/.claude/skills/cc-review/references/implementation-review-branch.md +5 -5
- package/.claude/skills/cc-review/references/plan-review-branch.md +1 -1
- package/.claude/skills/cc-review/references/review-methods.md +4 -4
- package/.claude/skills/cc-review/scripts/collect-review-context.sh +14 -7
- package/.claude/skills/cc-roadmap/CHANGELOG.md +6 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +30 -0
- package/.claude/skills/cc-roadmap/SKILL.md +45 -8
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +8 -0
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +22 -0
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +32 -1
- package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +14 -14
- package/CHANGELOG.md +28 -0
- package/CONTRIBUTING.md +40 -4
- package/CONTRIBUTING.zh-CN.md +40 -4
- package/README.md +57 -43
- package/README.zh-CN.md +57 -43
- package/bin/cc-devflow-cli.js +293 -36
- package/docs/examples/START-HERE.md +5 -4
- package/docs/examples/example-bindings.json +10 -10
- package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
- package/docs/examples/full-design-blocked/README.md +2 -2
- package/docs/examples/full-design-blocked/ROADMAP.md +1 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +2 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +29 -312
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +11 -8
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +4 -4
- package/docs/examples/full-design-blocked/roadmap.json +1 -1
- package/docs/examples/local-handoff/BACKLOG.md +1 -1
- package/docs/examples/local-handoff/README.md +2 -2
- package/docs/examples/local-handoff/ROADMAP.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +2 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +27 -210
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +9 -6
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +1 -1
- package/docs/examples/local-handoff/roadmap.json +1 -1
- package/docs/examples/pdca-loop/BACKLOG.md +1 -1
- package/docs/examples/pdca-loop/README.md +2 -2
- package/docs/examples/pdca-loop/ROADMAP.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +65 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +2 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +26 -228
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +9 -6
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +1 -1
- package/docs/examples/pdca-loop/roadmap.json +1 -1
- package/docs/examples/scripts/check-example-bindings.sh +11 -5
- package/docs/get-shit-done-strategy-audit.md +22 -22
- package/docs/guides/artifact-contract.md +44 -0
- package/docs/guides/getting-started.md +10 -8
- package/docs/guides/getting-started.zh-CN.md +10 -8
- package/docs/guides/minimize-artifacts.md +123 -0
- package/docs/guides/project-postmortem.md +78 -0
- package/lib/compiler/__tests__/skills-registry.test.js +2 -2
- package/lib/skill-runtime/CLAUDE.md +1 -1
- package/lib/skill-runtime/__tests__/autopilot.test.js +42 -6
- package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +165 -0
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +2 -2
- package/lib/skill-runtime/__tests__/dispatch.test.js +8 -38
- package/lib/skill-runtime/__tests__/intent.test.js +4 -20
- package/lib/skill-runtime/__tests__/lifecycle.test.js +1 -1
- package/lib/skill-runtime/__tests__/paths.test.js +7 -1
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +63 -2
- package/lib/skill-runtime/__tests__/prepare-pr.test.js +3 -16
- package/lib/skill-runtime/__tests__/query.test.js +388 -7
- package/lib/skill-runtime/__tests__/review-check-integration.test.js +148 -0
- package/lib/skill-runtime/__tests__/review-records.test.js +619 -0
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +64 -23
- package/lib/skill-runtime/__tests__/schemas.test.js +76 -2
- package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +137 -0
- package/lib/skill-runtime/__tests__/task-contract.test.js +783 -0
- package/lib/skill-runtime/__tests__/verify-artifacts.test.js +203 -0
- package/lib/skill-runtime/__tests__/worker-run.test.js +4 -11
- package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +31 -0
- package/lib/skill-runtime/__tests__/workflow-context.test.js +98 -0
- package/lib/skill-runtime/artifacts.js +0 -5
- package/lib/skill-runtime/context-index.js +545 -0
- package/lib/skill-runtime/intent.js +9 -33
- package/lib/skill-runtime/lifecycle.js +1 -1
- package/lib/skill-runtime/operations/CLAUDE.md +2 -2
- package/lib/skill-runtime/operations/dispatch.js +4 -42
- package/lib/skill-runtime/operations/init.js +2 -6
- package/lib/skill-runtime/operations/janitor.js +2 -18
- package/lib/skill-runtime/operations/resume.js +21 -38
- package/lib/skill-runtime/operations/review-records.js +265 -0
- package/lib/skill-runtime/operations/snapshot.js +1 -1
- package/lib/skill-runtime/operations/task-contract.js +524 -0
- package/lib/skill-runtime/operations/worker-run.js +2 -30
- package/lib/skill-runtime/paths.js +4 -4
- package/lib/skill-runtime/planner.js +25 -13
- package/lib/skill-runtime/query-registry.js +2 -2
- package/lib/skill-runtime/query.js +16 -3
- package/lib/skill-runtime/review-records.js +123 -0
- package/lib/skill-runtime/review.js +246 -11
- package/lib/skill-runtime/schemas.js +179 -15
- package/lib/skill-runtime/store.js +0 -10
- package/lib/skill-runtime/task-contract.js +187 -0
- package/lib/skill-runtime/workflow-context.js +748 -0
- package/package.json +7 -4
|
@@ -137,7 +137,7 @@ Each planning smell must become a plan finding and route to `cc-plan`.
|
|
|
137
137
|
|
|
138
138
|
## Output Requirements
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
Record in `review-ledger.jsonl` and render on-demand Markdown when a human report is needed:
|
|
141
141
|
|
|
142
142
|
- plan review nodes checked, skipped, or blocked
|
|
143
143
|
- plan reviewer agents used or fallback reason
|
|
@@ -4,7 +4,7 @@ Use this reference for every `cc-review` run. It defines the shared method libra
|
|
|
4
4
|
|
|
5
5
|
## Method Selection
|
|
6
6
|
|
|
7
|
-
Select every method needed by the current risk and write the selected methods into `
|
|
7
|
+
Select every method needed by the current risk and write the selected methods into the `review-started` event in `review-ledger.jsonl`. This table is a routing map, not a cap.
|
|
8
8
|
|
|
9
9
|
| Risk | Method |
|
|
10
10
|
| --- | --- |
|
|
@@ -53,7 +53,7 @@ Assignment rules:
|
|
|
53
53
|
|
|
54
54
|
- Assign independent reviewers by facet, not by random file chunks.
|
|
55
55
|
- Keep each reviewer packet self-contained: scope, delta, node ids, required artifacts, reference to use, and output schema.
|
|
56
|
-
- Do not ask one reviewer to wait for another reviewer result unless the dependency is explicit in `
|
|
56
|
+
- Do not ask one reviewer to wait for another reviewer result unless the dependency is explicit in `review-ledger.jsonl`.
|
|
57
57
|
- Do not assign two reviewers to the same node unless a critical finding needs a second opinion.
|
|
58
58
|
- Main thread validates reviewer evidence before final findings.
|
|
59
59
|
|
|
@@ -66,7 +66,7 @@ downgraded -> real note but not blocking or confidence too low
|
|
|
66
66
|
rejected -> out-of-scope, stale, speculative, or contradicted by evidence
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
Record these states in `
|
|
69
|
+
Record these states in `review-ledger.jsonl` or on-demand rendered Markdown and preserve raw reviewer output in `review-agent-results.jsonl`.
|
|
70
70
|
|
|
71
71
|
## Risk-Lane Review Swarm Profile
|
|
72
72
|
|
|
@@ -93,7 +93,7 @@ The main thread owns aggregation:
|
|
|
93
93
|
|
|
94
94
|
Use git and prior records to avoid repeating stale work:
|
|
95
95
|
|
|
96
|
-
1. Find the previous reviewed SHA from `cc-review-ledger.jsonl` or `cc-review-report.md`.
|
|
96
|
+
1. Find the previous reviewed SHA from `review-ledger.jsonl`, falling back to legacy `cc-review-ledger.jsonl` or `cc-review-report.md`.
|
|
97
97
|
2. Compare `git diff <previous-sha>...HEAD` when possible.
|
|
98
98
|
3. If no previous SHA exists, compare against the base branch or reviewed artifact timestamps.
|
|
99
99
|
4. Re-review changed nodes and dependent nodes.
|
|
@@ -15,10 +15,12 @@ if [[ -z "$change_dir" ]]; then
|
|
|
15
15
|
fi
|
|
16
16
|
|
|
17
17
|
review_dir="$change_dir/review"
|
|
18
|
-
ledger="$review_dir/
|
|
18
|
+
ledger="$review_dir/review-ledger.jsonl"
|
|
19
|
+
legacy_ledger="$review_dir/cc-review-ledger.jsonl"
|
|
19
20
|
report="$review_dir/cc-review-report.md"
|
|
20
21
|
plan="$review_dir/cc-review-plan.md"
|
|
21
|
-
findings="$review_dir/
|
|
22
|
+
findings="$review_dir/review-findings.json"
|
|
23
|
+
legacy_findings="$review_dir/cc-review-findings.json"
|
|
22
24
|
|
|
23
25
|
head_sha="$(git rev-parse HEAD)"
|
|
24
26
|
base_sha=""
|
|
@@ -27,9 +29,14 @@ if git rev-parse --verify "$base_ref" >/dev/null 2>&1; then
|
|
|
27
29
|
fi
|
|
28
30
|
|
|
29
31
|
reviewed_sha=""
|
|
30
|
-
|
|
32
|
+
ledger_for_read="$ledger"
|
|
33
|
+
if [[ ! -f "$ledger_for_read" && -f "$legacy_ledger" ]]; then
|
|
34
|
+
ledger_for_read="$legacy_ledger"
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
if [[ -f "$ledger_for_read" ]]; then
|
|
31
38
|
reviewed_sha="$(
|
|
32
|
-
sed -n 's/.*"headSha"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$
|
|
39
|
+
sed -n 's/.*"headSha"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$ledger_for_read" |
|
|
33
40
|
tail -n 1
|
|
34
41
|
)"
|
|
35
42
|
fi
|
|
@@ -57,7 +64,7 @@ echo "diff_base=${diff_base:-unknown}"
|
|
|
57
64
|
|
|
58
65
|
echo
|
|
59
66
|
echo "PRIOR_REVIEW_FILES"
|
|
60
|
-
for file in "$plan" "$report" "$
|
|
67
|
+
for file in "$ledger" "$findings" "$plan" "$report" "$legacy_ledger" "$legacy_findings"; do
|
|
61
68
|
if [[ -f "$file" ]]; then
|
|
62
69
|
printf 'present %s\n' "$file"
|
|
63
70
|
else
|
|
@@ -73,8 +80,8 @@ else
|
|
|
73
80
|
git diff --name-status HEAD
|
|
74
81
|
fi
|
|
75
82
|
|
|
76
|
-
if [[ -f "$
|
|
83
|
+
if [[ -f "$ledger_for_read" ]]; then
|
|
77
84
|
echo
|
|
78
85
|
echo "RECENT_LEDGER"
|
|
79
|
-
tail -n 20 "$
|
|
86
|
+
tail -n 20 "$ledger_for_read"
|
|
80
87
|
fi
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Roadmap Skill Changelog
|
|
2
2
|
|
|
3
|
+
## v5.3.0 - 2026-05-11
|
|
4
|
+
|
|
5
|
+
- add the Roadmap Funnel Protocol with fixed F0-F9 rounds for direction mode, demand reality, status quo, specific human/sponsor, wedge/lake boundary, observation signal, future fit, premise challenge, alternatives, and route approval
|
|
6
|
+
- persist the funnel transcript in `devflow/roadmap.json` and render it into `devflow/ROADMAP.md` so route decisions survive beyond chat
|
|
7
|
+
- upgrade backlog handoff fields so ready RM items carry source funnel rounds, frozen decisions, do-not-re-decide constraints, and remaining blocking questions for downstream `cc-plan`
|
|
8
|
+
|
|
3
9
|
## v5.2.0 - 2026-05-09
|
|
4
10
|
|
|
5
11
|
- add project-direction routing and brand-neutral founder guardrails
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
8. 先判断 planning posture 和 evidence maturity,再决定追问哪些问题;不要用同一套问题硬套 idea、已有用户、付费客户、infra 和 recovery 场景。
|
|
21
21
|
9. developer-facing / operator-facing 路线必须写清 target user、time to first value、magic moment 和 adoption bottleneck。
|
|
22
22
|
10. 先对齐 `devflow/specs/`、roadmap/backlog 和历史 design decision,再命名 stage、capability、RM 和 backlog;术语或决策冲突必须成为显式路线风险。
|
|
23
|
+
11. Roadmap Funnel Protocol 必须固定推进:方向、真实需求、现状、具体人、wedge/lake、观察信号、future fit、premise challenge、alternatives、route approval。
|
|
24
|
+
12. 每轮要么由证据回答,要么问用户一个 `D<N>` 决策题,要么写明 skipped reason;不能让关键轮次停在聊天记忆里。
|
|
23
25
|
|
|
24
26
|
## Local Kit
|
|
25
27
|
|
|
@@ -48,6 +50,31 @@
|
|
|
48
50
|
|
|
49
51
|
先把这些材料压成 `Context Snapshot`,再追问用户。
|
|
50
52
|
|
|
53
|
+
## Roadmap Funnel Protocol
|
|
54
|
+
|
|
55
|
+
固定轮次:
|
|
56
|
+
|
|
57
|
+
1. `F0 Direction Mode`
|
|
58
|
+
2. `F1 Demand / Operator Reality`
|
|
59
|
+
3. `F2 Status Quo`
|
|
60
|
+
4. `F3 Specific Human / Sponsor`
|
|
61
|
+
5. `F4 Narrowest Wedge / Lake Boundary`
|
|
62
|
+
6. `F5 Observation / Feedback Signal`
|
|
63
|
+
7. `F6 Future Fit`
|
|
64
|
+
8. `F7 Premise Challenge`
|
|
65
|
+
9. `F8 Alternatives`
|
|
66
|
+
10. `F9 Route Approval`
|
|
67
|
+
|
|
68
|
+
执行规则:
|
|
69
|
+
|
|
70
|
+
1. 一次只推进一轮;需要用户时只问一个 `D<N> - <decision title>`。
|
|
71
|
+
2. 每个问题必须有推荐答案、证据来源、选项影响和 STOP。
|
|
72
|
+
3. 用户回答后先更新 `roadmapFunnel.rounds[]`,再继续下一轮。
|
|
73
|
+
4. 用户要求跳过时,最多再问 2 个最关键剩余问题,然后必须仍然跑 `F7` 和 `F8`。
|
|
74
|
+
5. `F7` 把隐含前提写成可同意 / 反对的句子;反对时回到受影响轮次重算。
|
|
75
|
+
6. `F8` 至少给最小路径和理想架构路径;非平凡项目给第三条 lateral / decomposition 路径。
|
|
76
|
+
7. `F9` 才能冻结 route、stage、ready RM 和 `cc-plan` handoff。
|
|
77
|
+
|
|
51
78
|
## Force Reality First
|
|
52
79
|
|
|
53
80
|
至少逼清这 5 件事:
|
|
@@ -119,10 +146,12 @@
|
|
|
119
146
|
`devflow/roadmap.json`
|
|
120
147
|
- single editable roadmap state
|
|
121
148
|
- output policy, meta, context, evidence, route, stages, items, handoff, and architecture
|
|
149
|
+
- `context.roadmapFunnel.rounds[]` stores every fixed round, answer source, evidence, skipped reason, and decision impact
|
|
122
150
|
- flat `architecture.nodes` / `architecture.edges` used to generate Mermaid
|
|
123
151
|
|
|
124
152
|
`devflow/ROADMAP.md`
|
|
125
153
|
- version / skill version / context snapshot / evidence ledger
|
|
154
|
+
- Roadmap Funnel Transcript with F0-F9 answers and skipped reasons
|
|
126
155
|
- 1-3 个阶段
|
|
127
156
|
- 独立子系统拆分判断
|
|
128
157
|
- 每阶段目标
|
|
@@ -139,6 +168,7 @@
|
|
|
139
168
|
- deprecated compatibility projection; edit `devflow/roadmap.json` instead
|
|
140
169
|
- 只保留会真的进入下一轮 `cc-plan` 的事项
|
|
141
170
|
- 每项注明来源阶段、优先级、证据、`Depends On`、`Parallel With`、当前未知点、下一决策、是否 ready
|
|
171
|
+
- ready 项必须带 `Source funnel rounds`、`Frozen decisions`、`Do not re-decide` 和 `Remaining blocking question`
|
|
142
172
|
- developer-facing / operator-facing 条目要带 target user、time to first value、magic moment 和 adoption bottleneck,方便 `cc-plan` 继续做 DX 设计
|
|
143
173
|
- `Backlog Meta`、`Queue`、`Dependency Handoff`、`Ready For Req-Plan`、`Parked` 由 `devflow/roadmap.json` 回渲染,避免 roadmap truth 和 backlog handoff 分叉
|
|
144
174
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cc-roadmap
|
|
3
|
-
version: 5.
|
|
3
|
+
version: 5.3.0
|
|
4
4
|
description: "Use when defining, resetting, or narrowing project direction, stage order, or backlog priority before a concrete requirement enters the PDCA loop."
|
|
5
5
|
triggers:
|
|
6
6
|
- "帮我定路线图"
|
|
@@ -42,6 +42,7 @@ entry_gate:
|
|
|
42
42
|
- "If the ask contains multiple independent subsystems, decompose them into stages and RM candidates before refining any implementation detail."
|
|
43
43
|
- "Do not decompose implementation tasks while the roadmap is still being decided."
|
|
44
44
|
- "Apply the AI Leverage Route Lens before route approval: name the reachable user/operator, current workaround, human-vs-agent effort, complete-lake boundary, ocean boundary, first success signal, and kill signal."
|
|
45
|
+
- "Run the Roadmap Funnel Protocol as fixed one-question rounds; every round must either be answered from repo evidence, asked to the user, or explicitly skipped with reason."
|
|
45
46
|
- "If AI makes a complete same-blast-radius route cheap and verifiable, prefer boil-lake over a timid MVP slice."
|
|
46
47
|
- "If the route cannot name a real user/operator and current workaround, mark it as needs-evidence instead of producing implementation-ready RM handoff."
|
|
47
48
|
exit_criteria:
|
|
@@ -50,6 +51,7 @@ exit_criteria:
|
|
|
50
51
|
- "The roadmap shows an explicit RM dependency graph so serial blockers and parallel-ready work are obvious."
|
|
51
52
|
- "The user-approved recommendation is explicit and grounded in current evidence."
|
|
52
53
|
- "Each Stage 1 or ready-for-cc-plan item records an AI Leverage Route Lens verdict: boil-lake, sharp-wedge, needs-evidence, or pivot."
|
|
54
|
+
- "The Roadmap Funnel Transcript is persisted in `devflow/roadmap.json`, rendered into `devflow/ROADMAP.md`, and each ready RM carries the source funnel rounds, frozen decisions, and remaining blocking question."
|
|
53
55
|
reroutes:
|
|
54
56
|
- when: "The user is already discussing one concrete requirement, bug, or execution task."
|
|
55
57
|
target: "cc-plan"
|
|
@@ -240,6 +242,39 @@ Verdict 只允许四种:
|
|
|
240
242
|
5. 每条路线都要用一个具体 scenario 压测:谁在什么约束下,今天如何绕路,Stage 1 完成后哪一步不再发生。
|
|
241
243
|
6. 硬决策才沉淀:只有 hard to reverse、surprising without context、real trade-off 三者同时成立,才进入 capability spec delta、roadmap decision note 或本次 design decision log。
|
|
242
244
|
|
|
245
|
+
## Roadmap Funnel Protocol
|
|
246
|
+
|
|
247
|
+
路线图必须像 office-hours 一样固定推进多轮,但输出必须是 source-neutral 的 `cc-roadmap` 产物,不暴露外部来源。
|
|
248
|
+
|
|
249
|
+
每轮只允许处理一个 route-changing unknown。能从仓库证据回答就写 `answered-by-evidence`;不能回答才问用户;用户催促跳过时最多保留 2 个最关键问题,然后进入 premise challenge 和 alternatives。每个问题都必须给推荐答案、证据、反对时会改变的路线,并在回答后更新 `Roadmap Funnel Transcript`。
|
|
250
|
+
|
|
251
|
+
固定轮次:
|
|
252
|
+
|
|
253
|
+
1. `F0 Direction Mode`:确认项目目标模式,说明为什么不是其它模式。
|
|
254
|
+
2. `F1 Demand / Operator Reality`:确认真实用户或操作者,以及他们今天是否真的痛。
|
|
255
|
+
3. `F2 Status Quo`:确认现状 workaround、成本、失败方式;没有 workaround 默认 `needs-evidence`。
|
|
256
|
+
4. `F3 Specific Human / Sponsor`:把类别词压成可命名角色、具体约束、职业/组织后果。
|
|
257
|
+
5. `F4 Narrowest Wedge / Lake Boundary`:比较最窄 wedge、完整 same-blast-radius lake、ocean boundary。
|
|
258
|
+
6. `F5 Observation / Feedback Signal`:确认看过真实使用、失败日志、运营证据或可复现实验;没有观察就写 Stage 1 observation task。
|
|
259
|
+
7. `F6 Future Fit`:确认 6-12 个月后为什么更需要这条路,而不是只靠今天的热词。
|
|
260
|
+
8. `F7 Premise Challenge`:把本轮隐含前提写成 2-4 条,逐条确认或修正。
|
|
261
|
+
9. `F8 Alternatives`:至少给 2 条路线,非平凡项目给 3 条;必须包含最小路径与理想架构路径。
|
|
262
|
+
10. `F9 Route Approval`:冻结推荐路线、拒绝路线、第一成功信号、kill signal、下一批 ready RM。
|
|
263
|
+
|
|
264
|
+
STOP 规则:
|
|
265
|
+
|
|
266
|
+
- 每次需要用户判断时只问一个 `D<N> - <decision title>`。
|
|
267
|
+
- 选项只用 `A` / `B` / `C`,推荐项必须标 `(recommended)`。
|
|
268
|
+
- 问完必须停止等待,不能同一轮继续生成最终 roadmap。
|
|
269
|
+
- 用户回答后,先更新 transcript,再决定是否进入下一轮。
|
|
270
|
+
|
|
271
|
+
产物规则:
|
|
272
|
+
|
|
273
|
+
- `devflow/roadmap.json.context.roadmapFunnel.rounds[]` 记录每轮 `id`、`question`、`answerSource`、`answer`、`evidence`、`decisionImpact`、`status`。
|
|
274
|
+
- `devflow/ROADMAP.md` 必须渲染 `## Roadmap Funnel Transcript`,让后续读者知道路线不是拍脑袋。
|
|
275
|
+
- `devflow/BACKLOG.md` 的 ready RM 必须记录 `Source funnel rounds`、`Frozen decisions`、`Do not re-decide`、`Remaining blocking question`。
|
|
276
|
+
- 没有闭合 `F7` 和 `F8` 时,不允许把任何 RM 标成 ready for `cc-plan`,除非用户给出已成形且有证据的计划;即便如此也要把跳过理由写入 transcript。
|
|
277
|
+
|
|
243
278
|
## Founder Advice Guardrail
|
|
244
279
|
|
|
245
280
|
创业建议只能服务于 roadmap 质量,不是推广内容。遇到 `founder-business` 或 `internal-company`:
|
|
@@ -319,13 +354,15 @@ Verdict 只允许四种:
|
|
|
319
354
|
1. 没有 `Context Snapshot`,不准给路线推荐。
|
|
320
355
|
2. 没有 project direction mode、planning posture、evidence maturity 和 framing check,不准给路线推荐。
|
|
321
356
|
3. 没有 native language / durable decision scan,不准给路线推荐;如果缺少 `devflow/specs/` 或历史决策材料,写成 `not present`,不要假装已对齐。
|
|
322
|
-
4. 没有
|
|
323
|
-
5. 没有
|
|
324
|
-
6.
|
|
325
|
-
7.
|
|
326
|
-
8.
|
|
327
|
-
9.
|
|
328
|
-
10.
|
|
357
|
+
4. 没有 `Roadmap Funnel Transcript`,不准给路线推荐。
|
|
358
|
+
5. 没有 `F7 Premise Challenge` 和 `F8 Alternatives`,不准把事项标成 ready。
|
|
359
|
+
6. 没有 2-3 条路线对比,不准直接拍脑袋定主线。
|
|
360
|
+
7. 没有 exit signal / kill signal / non-goals,不算阶段冻结。
|
|
361
|
+
8. 没有明确成功信号和下一决策,不准把事项放进 `Ready For Req-Plan`。
|
|
362
|
+
9. developer-facing / operator-facing item 没有 target user、time to first value 或 adoption bottleneck,不准标成 ready。
|
|
363
|
+
10. 没有 `RM dependency graph` 或 parallel-ready wave,不准宣称事项可以并发推进。
|
|
364
|
+
11. 没有独立子系统拆分判断,不准把大而混杂的方向伪装成单一主线。
|
|
365
|
+
12. 没有用户批准,不准把 roadmap item 下放到 `cc-plan`。
|
|
329
366
|
|
|
330
367
|
## Review Loop
|
|
331
368
|
|
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
## Adoption Handoff
|
|
28
28
|
|
|
29
29
|
- Project direction mode:
|
|
30
|
+
- Source funnel rounds:
|
|
31
|
+
- Frozen decisions:
|
|
32
|
+
- Do not re-decide:
|
|
33
|
+
- Remaining blocking question:
|
|
30
34
|
- Direction-specific first question:
|
|
31
35
|
- Founder / builder / infra guardrail:
|
|
32
36
|
- Planning posture:
|
|
@@ -56,6 +60,10 @@
|
|
|
56
60
|
- Expected spec delta:
|
|
57
61
|
- Open risks:
|
|
58
62
|
- First planning question:
|
|
63
|
+
- Source funnel rounds:
|
|
64
|
+
- Frozen decisions:
|
|
65
|
+
- Do not re-decide:
|
|
66
|
+
- Remaining blocking question:
|
|
59
67
|
- Evidence maturity:
|
|
60
68
|
- Target developer / operator:
|
|
61
69
|
- Time to first value:
|
|
@@ -53,6 +53,28 @@
|
|
|
53
53
|
| Feasibility | | High / Med / Low | | |
|
|
54
54
|
| Distribution | | High / Med / Low | | |
|
|
55
55
|
|
|
56
|
+
## Roadmap Funnel Transcript
|
|
57
|
+
|
|
58
|
+
| Round | Question | Answer source | Answer / decision | Evidence | Decision impact | Status |
|
|
59
|
+
|-------|----------|---------------|-------------------|----------|-----------------|--------|
|
|
60
|
+
| F0 Direction Mode | | repo-evidence / user-answer / skipped | | | | pending |
|
|
61
|
+
| F1 Demand / Operator Reality | | repo-evidence / user-answer / skipped | | | | pending |
|
|
62
|
+
| F2 Status Quo | | repo-evidence / user-answer / skipped | | | | pending |
|
|
63
|
+
| F3 Specific Human / Sponsor | | repo-evidence / user-answer / skipped | | | | pending |
|
|
64
|
+
| F4 Narrowest Wedge / Lake Boundary | | repo-evidence / user-answer / skipped | | | | pending |
|
|
65
|
+
| F5 Observation / Feedback Signal | | repo-evidence / user-answer / skipped | | | | pending |
|
|
66
|
+
| F6 Future Fit | | repo-evidence / user-answer / skipped | | | | pending |
|
|
67
|
+
| F7 Premise Challenge | | repo-evidence / user-answer / skipped | | | | pending |
|
|
68
|
+
| F8 Alternatives | | repo-evidence / user-answer / skipped | | | | pending |
|
|
69
|
+
| F9 Route Approval | | repo-evidence / user-answer / skipped | | | | pending |
|
|
70
|
+
|
|
71
|
+
- Premises confirmed:
|
|
72
|
+
- Premises rejected / revised:
|
|
73
|
+
- Alternatives reviewed:
|
|
74
|
+
- Approved route:
|
|
75
|
+
- Open concerns:
|
|
76
|
+
- Skipped rounds and reasons:
|
|
77
|
+
|
|
56
78
|
## AI Leverage Route Lens
|
|
57
79
|
|
|
58
80
|
- Real user / operator:
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
},
|
|
6
6
|
"meta": {
|
|
7
7
|
"roadmapVersion": "roadmap.v1",
|
|
8
|
-
"skillVersion": "5.
|
|
8
|
+
"skillVersion": "5.3.0",
|
|
9
9
|
"status": "active",
|
|
10
10
|
"lastUpdated": "2026-05-01",
|
|
11
11
|
"currentFocusStage": "Stage 1"
|
|
@@ -32,6 +32,33 @@
|
|
|
32
32
|
"verdict": "needs-evidence",
|
|
33
33
|
"missingEvidence": []
|
|
34
34
|
},
|
|
35
|
+
"roadmapFunnel": {
|
|
36
|
+
"status": "in-progress",
|
|
37
|
+
"currentRound": "F0",
|
|
38
|
+
"approvedRouteRound": "",
|
|
39
|
+
"rounds": [
|
|
40
|
+
{
|
|
41
|
+
"id": "F0",
|
|
42
|
+
"title": "Direction Mode",
|
|
43
|
+
"question": "What project-direction mode are we in, and why not the other modes?",
|
|
44
|
+
"answerSource": "repo-evidence | user-answer | skipped",
|
|
45
|
+
"answer": "",
|
|
46
|
+
"evidence": [],
|
|
47
|
+
"decisionImpact": "Selects the question set and default route shape",
|
|
48
|
+
"status": "pending",
|
|
49
|
+
"skippedReason": ""
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"premiseChallenge": [],
|
|
53
|
+
"alternativesReviewed": [],
|
|
54
|
+
"routeApproval": {
|
|
55
|
+
"approved": false,
|
|
56
|
+
"approvedRoute": "",
|
|
57
|
+
"approvedBy": "",
|
|
58
|
+
"approvedAt": "",
|
|
59
|
+
"openConcerns": []
|
|
60
|
+
}
|
|
61
|
+
},
|
|
35
62
|
"canonicalTerms": [],
|
|
36
63
|
"durableDecisionSources": []
|
|
37
64
|
},
|
|
@@ -69,6 +96,10 @@
|
|
|
69
96
|
"entryConstraints": "",
|
|
70
97
|
"openRisks": "",
|
|
71
98
|
"firstPlanningQuestion": "",
|
|
99
|
+
"sourceFunnelRounds": [],
|
|
100
|
+
"frozenDecisions": [],
|
|
101
|
+
"doNotRedecide": [],
|
|
102
|
+
"remainingBlockingQuestion": "",
|
|
72
103
|
"requiredContextToLoad": "",
|
|
73
104
|
"whyReadyNow": "",
|
|
74
105
|
"parked": false,
|
|
@@ -3,28 +3,27 @@
|
|
|
3
3
|
## Order
|
|
4
4
|
|
|
5
5
|
0. 先做 `Context Snapshot`:现有 roadmap / backlog、capability specs、历史 design/analysis、最近提交、forcing functions、项目语言 / durable decisions
|
|
6
|
-
1.
|
|
7
|
-
2.
|
|
8
|
-
3.
|
|
9
|
-
4.
|
|
10
|
-
5.
|
|
11
|
-
6.
|
|
12
|
-
7.
|
|
13
|
-
8.
|
|
14
|
-
9.
|
|
15
|
-
10.
|
|
16
|
-
11. 给出 2-3 条路线图形状并明确推荐
|
|
17
|
-
12. 冻结 1-3 个阶段,写 exit signal / kill signal / non-goals
|
|
18
|
-
13. 画出 `RM dependency graph`,标出串行主链和 parallel-ready wave
|
|
19
|
-
14. 标出哪些事项真的 ready for `cc-plan`
|
|
6
|
+
1. `F0 Direction Mode`:project direction mode,为什么不是其它模式
|
|
7
|
+
2. `F1 Demand / Operator Reality`:用户是谁,最强需求或运营证据是什么
|
|
8
|
+
3. `F2 Status Quo`:今天靠什么笨办法活着,成本和失败方式是什么
|
|
9
|
+
4. `F3 Specific Human / Sponsor`:具体人、具体角色、具体组织后果
|
|
10
|
+
5. `F4 Narrowest Wedge / Lake Boundary`:最窄突破口、完整 lake、ocean boundary
|
|
11
|
+
6. `F5 Observation / Feedback Signal`:真实观察、运行证据、demo 使用或待补证据任务
|
|
12
|
+
7. `F6 Future Fit`:6-12 个月后为什么更需要它
|
|
13
|
+
8. `F7 Premise Challenge`:核心前提、canonical language、capability/spec 冲突
|
|
14
|
+
9. `F8 Alternatives`:给出 2-3 条路线图形状并明确推荐
|
|
15
|
+
10. `F9 Route Approval`:冻结 1-3 个阶段、dependency graph、parallel wave、ready RM
|
|
20
16
|
|
|
21
17
|
## Question Rules
|
|
22
18
|
|
|
23
19
|
- 一次只推进一个关键未知点
|
|
24
20
|
- 每个问题附带推荐答案、证据来源,以及用户反对时会改变哪条路线
|
|
21
|
+
- 问题编号使用 `D<N> - <decision title>`;选项只用 `A` / `B` / `C`,推荐项标 `(recommended)`
|
|
22
|
+
- 每轮回答必须落入 `Roadmap Funnel Transcript`
|
|
25
23
|
- 能从 repo / capability spec / roadmap / design / git history 得到答案时先查证,不问用户
|
|
26
24
|
- 没证据时明确写 assumption
|
|
27
25
|
- 用户没批准前,不把事项偷下放成 requirement
|
|
26
|
+
- 用户催促跳过时,最多补问 2 个关键问题,但不能跳过 `F7 Premise Challenge` 和 `F8 Alternatives`
|
|
28
27
|
|
|
29
28
|
## Project Direction Modes
|
|
30
29
|
|
|
@@ -54,3 +53,4 @@
|
|
|
54
53
|
- backlog 只收下一轮真会进入 `cc-plan` 的事项
|
|
55
54
|
- ready 项必须带成功信号、下一决策、`Depends On`、`Parallel With`
|
|
56
55
|
- ready 项必须带 canonical terms、capability spec context 或明确的 language / decision conflict
|
|
56
|
+
- ready 项必须带 Source funnel rounds、Frozen decisions、Do not re-decide、Remaining blocking question
|
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [4.5.10] - 2026-05-13
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Added the `workflow-context` typed runtime query as a context index that reports the next PDCA/IDCA skill, current task, source hashes, `mustNotForget` guardrails, default section/JSON refs, trusted commands, fail-closed rules, and machine-readable deep-open triggers.
|
|
17
|
+
- Added `cc-devflow query --data-only --no-trace --compact` output controls and `npm run benchmark:workflow-context` for checked-in token estimates plus synthetic routing-correctness cases.
|
|
18
|
+
- Added the minimized workflow artifact contract guide, `cc-devflow task-contract validate`, `npm run verify:artifacts`, and `npm run benchmark:artifacts` so change artifacts stay small and measurable.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Updated `cc-plan`, `cc-investigate`, `cc-do`, `cc-check`, `cc-act`, and `cc-dev` so stage transitions start from `cc-devflow query workflow-context --data-only --no-trace --compact` instead of reloading the full loop history by default.
|
|
23
|
+
- Updated `cc-plan` and `cc-investigate` so new changes default to `planning/tasks.md` as the only human-authored Markdown handoff: feature plans use `## Contract Summary`, bug investigations use `## Root Cause Contract`, and legacy `planning/design.md` / `planning/analysis.md` remain fallback inputs only.
|
|
24
|
+
- Updated `cc-review` so `review/review-ledger.jsonl` is the default durable review record, with `review-findings.json` and rendered Markdown reports created only when needed.
|
|
25
|
+
- Updated `cc-check` review truth loading to prefer structured findings and review ledger records before legacy `cc-review-*.md` reports.
|
|
26
|
+
- Updated `npm run verify` to include `verify:artifacts` after tests and example binding checks.
|
|
27
|
+
|
|
28
|
+
## [4.5.9] - 2026-05-11
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Added project-level AI postmortem contracts under `devflow/postmortems/`, with `cc-act` writing progressive incident, index, and principle records that include Git evidence and verification facts.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- Updated `cc-plan`, `cc-investigate`, and `cc-do` to search project postmortems before freezing plans, finalizing root-cause hypotheses, or executing individual tasks.
|
|
37
|
+
- Updated `cc-act` so `post-merge-closeout` must run `cc-devflow archive-change <change-key>` and prove the archive path, instead of leaving archive as an optional next action.
|
|
38
|
+
- Updated `cc-next` so unarchived `devflow/changes/<REQ|FIX>-*` directories are next-work candidates, including done-but-unarchived closeout work.
|
|
39
|
+
|
|
12
40
|
## [4.5.8] - 2026-05-11
|
|
13
41
|
|
|
14
42
|
### Changed
|
package/CONTRIBUTING.md
CHANGED
|
@@ -13,17 +13,25 @@ cc-devflow is now a skills-first repository with a restored distributable CLI.
|
|
|
13
13
|
Public surface:
|
|
14
14
|
|
|
15
15
|
- `cc-roadmap`
|
|
16
|
+
- `cc-next`
|
|
17
|
+
- `cc-dev`
|
|
16
18
|
- `cc-plan`
|
|
17
19
|
- `cc-investigate`
|
|
18
20
|
- `cc-do`
|
|
21
|
+
- `cc-review`
|
|
22
|
+
- `cc-pr-review`
|
|
23
|
+
- `cc-pr-land`
|
|
19
24
|
- `cc-check`
|
|
20
25
|
- `cc-act`
|
|
21
26
|
- `cc-devflow init`
|
|
22
27
|
- `cc-devflow adapt`
|
|
28
|
+
- `cc-devflow query`
|
|
29
|
+
- `cc-devflow task-contract`
|
|
30
|
+
- `cc-devflow review`
|
|
23
31
|
|
|
24
32
|
Shared runtime helpers may still live under `lib/skill-runtime/`, but they are not the user-facing workflow anymore.
|
|
25
33
|
|
|
26
|
-
Maintenance helpers may also exist under `.claude/skills/`, such as `cc-spec-init`, `cc-simplify`, and `docs-sync
|
|
34
|
+
Maintenance helpers may also exist under `.claude/skills/`, such as `cc-spec-init`, `cc-simplify`, and `docs-sync`. `cc-spec-init` and `cc-simplify` ship with the pack as maintenance skills; `docs-sync` stays internal.
|
|
27
35
|
|
|
28
36
|
---
|
|
29
37
|
|
|
@@ -125,7 +133,34 @@ If you touch a shipped skill, treat these files as one contract:
|
|
|
125
133
|
|
|
126
134
|
Do not change one part of the contract and leave the others stale.
|
|
127
135
|
|
|
128
|
-
|
|
136
|
+
Codex output under `.codex/skills/` is generated by `cc-devflow adapt`. Do not hand-edit it. Change `.claude/skills/<skill>/` first, then regenerate the mirror with:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npm run adapt
|
|
140
|
+
npm run adapt -- --check
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### 3. Keep Skill Contract Changes Complete
|
|
144
|
+
|
|
145
|
+
When a shipped skill contract changes, update the source and public surfaces in one pass:
|
|
146
|
+
|
|
147
|
+
- `.claude/skills/<skill>/SKILL.md`
|
|
148
|
+
- `.claude/skills/<skill>/CHANGELOG.md`
|
|
149
|
+
- affected `PLAYBOOK.md`, `assets/`, `references/`, and `scripts/`
|
|
150
|
+
- root `README.md` / `README.zh-CN.md`
|
|
151
|
+
- affected docs under `docs/`
|
|
152
|
+
- `docs/examples/example-bindings.json` and example metadata
|
|
153
|
+
|
|
154
|
+
Then run the relevant gates:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npm run verify:examples
|
|
158
|
+
npm run verify:publish
|
|
159
|
+
npm run verify:artifacts
|
|
160
|
+
npm run verify
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 4. Keep Distribution Clean
|
|
129
164
|
|
|
130
165
|
Do not ship transient files in templates or tarballs.
|
|
131
166
|
|
|
@@ -135,7 +170,7 @@ Examples of junk we should exclude:
|
|
|
135
170
|
- `.DS_Store`
|
|
136
171
|
- local editor or OS artifacts
|
|
137
172
|
|
|
138
|
-
###
|
|
173
|
+
### 5. Keep Runtime Helpers Secondary
|
|
139
174
|
|
|
140
175
|
If you touch `lib/skill-runtime/`, keep the behavior testable, but do not document it as the primary user entry. The public workflow still belongs to the shipped skills.
|
|
141
176
|
|
|
@@ -178,7 +213,8 @@ This should confirm:
|
|
|
178
213
|
- do not describe `.claude/commands/` as required structure
|
|
179
214
|
- do not describe internal runtime helpers as the supported public workflow
|
|
180
215
|
- if a shipped skill changes, update that skill's `version`, local `CHANGELOG.md`, and affected public docs in the same PR
|
|
181
|
-
- keep the workflow story as `cc-roadmap
|
|
216
|
+
- keep the workflow story as `cc-roadmap`, `cc-next`, `cc-dev`, manual PDCA/IDCA skills, optional `cc-review`, and PR review/landing skills; document maintenance helpers such as `cc-spec-init` / `cc-simplify` separately
|
|
217
|
+
- do not hand-edit `.codex/skills`; regenerate it from `.claude/skills` with `npm run adapt`
|
|
182
218
|
|
|
183
219
|
---
|
|
184
220
|
|
package/CONTRIBUTING.zh-CN.md
CHANGED
|
@@ -13,17 +13,25 @@ cc-devflow 现在是一个 skills-first 仓库,并且重新带回了可分发
|
|
|
13
13
|
对外可见面只有这些:
|
|
14
14
|
|
|
15
15
|
- `cc-roadmap`
|
|
16
|
+
- `cc-next`
|
|
17
|
+
- `cc-dev`
|
|
16
18
|
- `cc-plan`
|
|
17
19
|
- `cc-investigate`
|
|
18
20
|
- `cc-do`
|
|
21
|
+
- `cc-review`
|
|
22
|
+
- `cc-pr-review`
|
|
23
|
+
- `cc-pr-land`
|
|
19
24
|
- `cc-check`
|
|
20
25
|
- `cc-act`
|
|
21
26
|
- `cc-devflow init`
|
|
22
27
|
- `cc-devflow adapt`
|
|
28
|
+
- `cc-devflow query`
|
|
29
|
+
- `cc-devflow task-contract`
|
|
30
|
+
- `cc-devflow review`
|
|
23
31
|
|
|
24
32
|
`lib/skill-runtime/` 可以保留共享运行时支撑,但它已经不是用户要直接理解或运行的工作流入口。
|
|
25
33
|
|
|
26
|
-
仓库里也可以存在维护类 Skill,例如 `cc-spec-init`、`cc-simplify`、`docs-sync
|
|
34
|
+
仓库里也可以存在维护类 Skill,例如 `cc-spec-init`、`cc-simplify`、`docs-sync`。其中 `cc-spec-init` 和 `cc-simplify` 随整包分发为维护类 Skill;`docs-sync` 仍是内部维护 Skill。
|
|
27
35
|
|
|
28
36
|
---
|
|
29
37
|
|
|
@@ -125,7 +133,34 @@ cc-devflow/
|
|
|
125
133
|
|
|
126
134
|
不要只改其中一部分,让其余说明继续过期。
|
|
127
135
|
|
|
128
|
-
|
|
136
|
+
Codex 输出目录 `.codex/skills/` 由 `cc-devflow adapt` 生成。不要手改它。先改 `.claude/skills/<skill>/`,再重新生成镜像:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npm run adapt
|
|
140
|
+
npm run adapt -- --check
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### 3. 保持 Skill 契约变更完整
|
|
144
|
+
|
|
145
|
+
如果一个已发布 Skill 的契约变化,请一次性同步这些面:
|
|
146
|
+
|
|
147
|
+
- `.claude/skills/<skill>/SKILL.md`
|
|
148
|
+
- `.claude/skills/<skill>/CHANGELOG.md`
|
|
149
|
+
- 受影响的 `PLAYBOOK.md`、`assets/`、`references/` 和 `scripts/`
|
|
150
|
+
- 根 `README.md` / `README.zh-CN.md`
|
|
151
|
+
- `docs/` 下受影响的公开文档
|
|
152
|
+
- `docs/examples/example-bindings.json` 和样例 metadata
|
|
153
|
+
|
|
154
|
+
然后运行相关门禁:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npm run verify:examples
|
|
158
|
+
npm run verify:publish
|
|
159
|
+
npm run verify:artifacts
|
|
160
|
+
npm run verify
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 4. 保持分发包干净
|
|
129
164
|
|
|
130
165
|
不要把瞬态文件放进模板或 tarball。
|
|
131
166
|
|
|
@@ -135,7 +170,7 @@ cc-devflow/
|
|
|
135
170
|
- `.DS_Store`
|
|
136
171
|
- 本地编辑器和操作系统产生的垃圾文件
|
|
137
172
|
|
|
138
|
-
###
|
|
173
|
+
### 5. 让运行时辅助层保持次要
|
|
139
174
|
|
|
140
175
|
如果你改了 `lib/skill-runtime/`,请保持可测试,但不要再把它写成用户主入口。真正的公开 workflow 仍然属于已发布 Skill。
|
|
141
176
|
|
|
@@ -178,7 +213,8 @@ node scripts/validate-publish.js
|
|
|
178
213
|
- 不要把 `.claude/commands/` 写成必需结构
|
|
179
214
|
- 不要把内部运行时辅助层写成受支持的公开工作流
|
|
180
215
|
- 如果改了已发布 Skill,在同一个 PR 里同步该 Skill 的 `version`、本地 `CHANGELOG.md` 和受影响的公开文档
|
|
181
|
-
- 主 workflow
|
|
216
|
+
- 主 workflow 仍然围绕 `cc-roadmap`、`cc-next`、`cc-dev`、手动 PDCA/IDCA Skill、可选 `cc-review` 和 PR review/landing Skill;`cc-spec-init` / `cc-simplify` 等维护类 Skill 单独说明
|
|
217
|
+
- 不要手改 `.codex/skills`;从 `.claude/skills` 通过 `npm run adapt` 重新生成
|
|
182
218
|
|
|
183
219
|
---
|
|
184
220
|
|