cc-devflow 4.5.1 → 4.5.3
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 +27 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +32 -1
- package/.claude/skills/cc-act/SKILL.md +53 -7
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +35 -1
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +10 -1
- package/.claude/skills/cc-act/references/closure-contract.md +11 -0
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +32 -1
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +130 -0
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +23 -1
- package/.claude/skills/cc-check/CHANGELOG.md +26 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +128 -1
- package/.claude/skills/cc-check/SKILL.md +147 -7
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +164 -1
- package/.claude/skills/cc-check/references/gate-contract.md +11 -0
- package/.claude/skills/cc-check/references/review-contract.md +104 -0
- package/.claude/skills/cc-check/scripts/render-report-card.js +209 -5
- package/.claude/skills/cc-check/scripts/verify-gate.sh +28 -0
- package/.claude/skills/cc-do/CHANGELOG.md +12 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +14 -9
- package/.claude/skills/cc-do/SKILL.md +24 -13
- package/.claude/skills/cc-do/references/execution-recovery.md +16 -5
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +19 -6
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +14 -2
- package/.claude/skills/cc-investigate/CHANGELOG.md +31 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +124 -8
- package/.claude/skills/cc-investigate/SKILL.md +252 -17
- package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +112 -3
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +17 -5
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +141 -1
- package/.claude/skills/cc-investigate/references/investigation-contract.md +192 -0
- package/.claude/skills/cc-plan/CHANGELOG.md +26 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +18 -6
- package/.claude/skills/cc-plan/SKILL.md +72 -34
- package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +30 -3
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +28 -0
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +46 -1
- package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +24 -0
- package/.claude/skills/cc-plan/references/planning-contract.md +18 -4
- package/.claude/skills/cc-roadmap/CHANGELOG.md +14 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +10 -7
- package/.claude/skills/cc-roadmap/SKILL.md +43 -23
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +10 -0
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +15 -0
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +1 -1
- package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +11 -7
- package/.claude/skills/cc-simplify/CHANGELOG.md +21 -0
- package/.claude/skills/cc-simplify/SKILL.md +264 -35
- package/.claude/skills/cc-spec-init/CHANGELOG.md +6 -0
- package/.claude/skills/cc-spec-init/SKILL.md +14 -1
- package/CHANGELOG.md +37 -0
- package/README.md +10 -2
- package/README.zh-CN.md +10 -2
- package/docs/examples/example-bindings.json +7 -7
- package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
- package/docs/examples/full-design-blocked/README.md +1 -1
- 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 +1 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +1 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +140 -3
- package/docs/examples/full-design-blocked/roadmap-tracking.json +1 -1
- package/docs/examples/local-handoff/BACKLOG.md +1 -1
- package/docs/examples/local-handoff/README.md +1 -1
- package/docs/examples/local-handoff/ROADMAP.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +92 -0
- package/docs/examples/local-handoff/roadmap-tracking.json +1 -1
- package/docs/examples/pdca-loop/BACKLOG.md +1 -1
- package/docs/examples/pdca-loop/README.md +1 -1
- package/docs/examples/pdca-loop/ROADMAP.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +20 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +2 -2
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +92 -0
- package/docs/examples/pdca-loop/roadmap-tracking.json +1 -1
- package/docs/skill-strategy-audit.md +48 -0
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +19 -1
- package/lib/skill-runtime/review.js +64 -1
- package/lib/skill-runtime/schemas.js +161 -4
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cc-spec-init
|
|
3
|
-
version: 1.0
|
|
3
|
+
version: 1.1.0
|
|
4
4
|
description: Use when you need to initialize capability specs under `devflow/specs/`, create or evolve capability truth sources, generate `change-meta.json`, or validate roadmap/change/spec links before roadmap, planning, or closeout work continues.
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -67,6 +67,7 @@ description: Use when you need to initialize capability specs under `devflow/spe
|
|
|
67
67
|
2. 先判断你是在做 `bootstrap`、`create`、`update-links`、`split`、`merge` 还是 `deprecate`。
|
|
68
68
|
3. 先锁定 capability 边界,再写模板;不要先写 prose 再猜结构。
|
|
69
69
|
4. 先明确 primary capability,再允许 secondary capabilities 存在。
|
|
70
|
+
5. 先检查命名是否已经有 canonical term;同义词、歧义词和关系约束没收口前,不要新建第二套 capability 名称。
|
|
70
71
|
|
|
71
72
|
## Session Protocol
|
|
72
73
|
|
|
@@ -80,6 +81,7 @@ description: Use when you need to initialize capability specs under `devflow/spe
|
|
|
80
81
|
- 为当前已知 capability 写最小 spec
|
|
81
82
|
3. 如果是新 capability:
|
|
82
83
|
- 先写 capability 边界、约束、当前 truth、gaps
|
|
84
|
+
- 再写最小 language block:canonical term、definition、aliases to avoid、relationships、flagged ambiguities
|
|
83
85
|
- 再登记到 `INDEX.md`
|
|
84
86
|
4. 如果是 change 绑定:
|
|
85
87
|
- 生成或更新 `change-meta.json`
|
|
@@ -91,6 +93,17 @@ description: Use when you need to initialize capability specs under `devflow/spe
|
|
|
91
93
|
- `INDEX.md` 引到的 capability 文件都存在
|
|
92
94
|
- `change-meta.json` 里的 capability 都能落到 spec
|
|
93
95
|
- roadmap / backlog 里的 capability 引用仍可追踪
|
|
96
|
+
- 新 capability 的名称、aliases、relationships 没有和已有 spec 冲突
|
|
97
|
+
|
|
98
|
+
## Language Boundary Gate
|
|
99
|
+
|
|
100
|
+
capability spec 是长期 truth source,命名必须比一次需求更稳定:
|
|
101
|
+
|
|
102
|
+
- canonical term:只选一个主名,优先沿用 roadmap、历史 design/analysis、代码公共接口和用户领域语言里已经稳定的词。
|
|
103
|
+
- aliases to avoid:记录容易混用的别名,说明为什么不能继续用。
|
|
104
|
+
- flagged ambiguity:同一个词指向两个概念时,必须写清拆分边界,必要时拆 capability。
|
|
105
|
+
- relationships:用一句话写清 capability 之间的拥有、依赖、生命周期、输入输出或互斥关系。
|
|
106
|
+
- implementation names:类名、文件名、函数名只有在它们已经是公共领域语言时才进入 spec;否则留在 change 设计里。
|
|
94
107
|
|
|
95
108
|
## Output
|
|
96
109
|
|
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [4.5.3] - 2026-04-29
|
|
13
|
+
|
|
14
|
+
### Skill Strategy Integration
|
|
15
|
+
|
|
16
|
+
v4.5.3 absorbs the useful strategies from an external skill library into native
|
|
17
|
+
cc-devflow contracts, keeping the public workflow cohesive instead of adding
|
|
18
|
+
parallel skill surfaces.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Added an external skill strategy audit and migrated the useful patterns into native cc-devflow contracts instead of copying external skill prose.
|
|
23
|
+
- Updated `cc-plan` to capture glossary deltas, compare non-trivial interface shapes, mark `AFK` / `HITL` vertical slices, and keep durable handoffs behavior-focused.
|
|
24
|
+
- Updated `cc-investigate` to sharpen feedback loops as investigation products and record prevention handoffs after root-cause freeze.
|
|
25
|
+
- Updated `cc-do` and `cc-check` to enforce tracer-bullet execution and review test fixture honesty around partial data, casts, stubs, and mocks.
|
|
26
|
+
- Updated `cc-simplify` to apply deep-module, deletion-test, and real-seam checks before accepting architecture cleanup findings.
|
|
27
|
+
- Updated `cc-act`, `cc-spec-init`, and `docs-sync` to harden issue handoffs, dangerous git action safety, capability language boundaries, and skill contract quality gates.
|
|
28
|
+
- Updated `cc-check` to require QA feedback-loop and behavior evidence for bugfix and user-visible behavior verification, including reproduction mode, determinism, expected/actual behavior, and test seam follow-ups.
|
|
29
|
+
- Updated `cc-act` to carry QA behavior evidence into PR briefs, handoffs, and release notes, and to write follow-ups as durable behavior briefs before roadmap/backlog writeback.
|
|
30
|
+
- Updated `cc-roadmap`, `cc-plan`, and `cc-investigate` to keep canonical language and durable decisions in cc-devflow-native sources: `devflow/specs/`, roadmap/backlog, design/analysis, and change metadata.
|
|
31
|
+
- Refreshed public examples and skill binding metadata for `cc-roadmap@4.4.1`, `cc-plan@3.7.0`, `cc-investigate@1.2.0`, `cc-do@1.6.0`, `cc-check@1.10.0`, `cc-act@1.8.0`, and `cc-spec-init@1.1.0`.
|
|
32
|
+
|
|
33
|
+
## [4.5.2] - 2026-04-28
|
|
34
|
+
|
|
35
|
+
### Skill Review Hardening
|
|
36
|
+
|
|
37
|
+
v4.5.2 strengthens the verification and cleanup side of the workflow so
|
|
38
|
+
review, QA, investigation, release readiness, and pre-ship simplification carry
|
|
39
|
+
fresh evidence instead of relying on stale chat context.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- Updated `cc-check` to record review freshness, specialist review facets, QA coverage/browser evidence, and runtime failure ownership before a verdict can enter `cc-act`.
|
|
44
|
+
- Updated `cc-act` to render a readiness dashboard, check PR body accuracy, and rerun verification on each invocation while keeping ship actions idempotent.
|
|
45
|
+
- Updated `cc-investigate` to require a frozen root-cause contract with prior-history checks, boundary probes, backward trace, reference comparison, diagnostic probe cleanup, condition-wait evidence, pattern analysis, sanitized research evidence, and repair-boundary blast-radius fields.
|
|
46
|
+
- Updated `cc-simplify` to a Chinese Codex-native cleanup workflow with scope-aware reviewer dispatch, JSONL findings, confidence-gated deduplication, Fix-First decisions, false-positive suppressions, and fresh validation evidence.
|
|
47
|
+
- Refreshed public examples and skill binding metadata for `cc-investigate@1.1.4`, `cc-check@1.8.4`, `cc-act@1.6.4`, and `cc-simplify@1.3.0`.
|
|
48
|
+
|
|
12
49
|
## [4.5.1] - 2026-04-28
|
|
13
50
|
|
|
14
51
|
### Planning Evidence Gates
|
package/README.md
CHANGED
|
@@ -76,9 +76,17 @@ Maintenance skills are shipped with the pack:
|
|
|
76
76
|
|
|
77
77
|
## Planning Quality Gates
|
|
78
78
|
|
|
79
|
-
`cc-roadmap` now records planning posture
|
|
79
|
+
`cc-roadmap` now records planning posture, evidence maturity, canonical project language, and durable decision context before recommending a route. That keeps idea-stage, active-user, paying-customer, infrastructure, and recovery work from being forced through the same questions, and prevents roadmap items from inventing a second vocabulary. Developer-facing or operator-facing roadmap items also carry target user, time to first value, magic moment, adoption bottleneck, and domain handoff into `cc-plan`.
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
Canonical language and durable decisions stay inside cc-devflow-native sources: `devflow/specs/`, `devflow/ROADMAP.md`, `devflow/BACKLOG.md`, `planning/design.md`, `planning/analysis.md`, and `change-meta.json`.
|
|
82
|
+
|
|
83
|
+
`cc-plan` freezes more implementation decisions before `cc-do` starts. Non-trivial plans compare minimal viable and ideal architecture options, full designs include decision horizon plus error/rescue mapping, and test-first plans record test framework evidence, public test seams, behavior assertions, mock boundaries, coverage quality, mandatory regression tests, interface depth, and vertical tracer-bullet slices when existing behavior changes.
|
|
84
|
+
|
|
85
|
+
## Verification And Ship Gates
|
|
86
|
+
|
|
87
|
+
`cc-check` now treats QA as a feedback-loop problem, not only a green-test problem. Bugfix and behavior work records the loop used to prove reality, expected versus actual behavior, reproduction steps, test boundary quality, and architecture follow-ups when no clean public test seam exists.
|
|
88
|
+
|
|
89
|
+
`cc-act` carries that evidence into PR briefs, handoffs, and release notes. Follow-ups must be durable behavior briefs with current behavior, desired behavior, key interfaces, acceptance criteria, and explicit out-of-scope notes before they are written back to roadmap or backlog.
|
|
82
90
|
|
|
83
91
|
## Installation Modes
|
|
84
92
|
|
package/README.zh-CN.md
CHANGED
|
@@ -76,9 +76,17 @@ npx cc-devflow@latest adapt --cwd /path/to/your/project --all
|
|
|
76
76
|
|
|
77
77
|
## 计划质量门禁
|
|
78
78
|
|
|
79
|
-
`cc-roadmap` 现在会先记录 planning posture
|
|
79
|
+
`cc-roadmap` 现在会先记录 planning posture、evidence maturity、项目 canonical language 和持久决策上下文,再推荐路线。idea、已有用户、付费客户、infra、recovery 场景不会被套进同一组问题,也不会让 roadmap item 发明第二套词汇。面向开发者或操作者的 roadmap item 还会把目标用户、time to first value、magic moment、adoption bottleneck 和 domain handoff 交给 `cc-plan`。
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
Canonical language 和 durable decisions 只收敛到 cc-devflow 原生真相源:`devflow/specs/`、`devflow/ROADMAP.md`、`devflow/BACKLOG.md`、`planning/design.md`、`planning/analysis.md` 和 `change-meta.json`。
|
|
82
|
+
|
|
83
|
+
`cc-plan` 会在 `cc-do` 开始前冻结更多实现决策。非 trivial 计划需要比较 minimal viable 和 ideal architecture,full-design 需要包含 implementation decision horizon 和 error/rescue map;测试计划要记录测试框架证据、public test seam、behavior assertion、mock boundary、覆盖质量、强制 regression test、interface depth 和 vertical tracer-bullet slices。
|
|
84
|
+
|
|
85
|
+
## 验证与交付门禁
|
|
86
|
+
|
|
87
|
+
`cc-check` 现在把 QA 当成反馈环问题,而不是只看测试是否绿。Bugfix 和行为变更需要记录证明现实的 loop、expected / actual、复现步骤、测试边界质量;如果没有干净的 public test seam,要留下架构 follow-up。
|
|
88
|
+
|
|
89
|
+
`cc-act` 会把这些证据带进 PR brief、handoff 和 release note。Follow-up 必须写成 durable behavior brief,包含 current behavior、desired behavior、key interfaces、acceptance criteria 和 out-of-scope,再回写 roadmap 或 backlog。
|
|
82
90
|
|
|
83
91
|
## 安装方式
|
|
84
92
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"updatedAt": "2026-04-28",
|
|
3
3
|
"skills": {
|
|
4
|
-
"cc-roadmap": "4.
|
|
5
|
-
"cc-plan": "3.
|
|
6
|
-
"cc-investigate": "1.
|
|
7
|
-
"cc-do": "1.
|
|
8
|
-
"cc-check": "1.
|
|
9
|
-
"cc-act": "1.
|
|
10
|
-
"cc-spec-init": "1.0
|
|
4
|
+
"cc-roadmap": "4.4.1",
|
|
5
|
+
"cc-plan": "3.7.0",
|
|
6
|
+
"cc-investigate": "1.2.0",
|
|
7
|
+
"cc-do": "1.6.0",
|
|
8
|
+
"cc-check": "1.10.0",
|
|
9
|
+
"cc-act": "1.8.0",
|
|
10
|
+
"cc-spec-init": "1.1.0"
|
|
11
11
|
},
|
|
12
12
|
"examples": [
|
|
13
13
|
{
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Example version: `1.0.0`
|
|
6
6
|
- Last reviewed: `2026-04-17`
|
|
7
|
-
- Bound skills: `cc-roadmap@4.
|
|
7
|
+
- Bound skills: `cc-roadmap@4.4.1`, `cc-plan@3.7.0`, `cc-do@1.6.0`, `cc-check@1.10.0`
|
|
8
8
|
|
|
9
9
|
This example shows a requirement that **looked executable**, but `cc-check` correctly stopped it and sent it back to `cc-plan`.
|
|
10
10
|
|
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Requirement version: `REQ-002.v2`
|
|
6
6
|
- Design version: `design.v2`
|
|
7
|
-
- CC-Plan skill version: `3.
|
|
7
|
+
- CC-Plan skill version: `3.7.0`
|
|
8
8
|
- Requirement ID: `REQ-002`
|
|
9
9
|
- Design mode: `full-design`
|
|
10
10
|
- Why not `tiny-design`: the feature crosses import parsing, invite rules, billing limits, duplicate handling, and audit logging
|
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json
CHANGED
|
@@ -3,6 +3,74 @@
|
|
|
3
3
|
"verdict": "blocked",
|
|
4
4
|
"overall": "fail",
|
|
5
5
|
"summary": "verdict=blocked quick=2/2 strict=0/0 review=blocked",
|
|
6
|
+
"specAlignment": "blocked",
|
|
7
|
+
"specDeltaVerified": false,
|
|
8
|
+
"specSyncReady": false,
|
|
9
|
+
"runtime": {
|
|
10
|
+
"status": "blocked",
|
|
11
|
+
"failureOwnership": [
|
|
12
|
+
{
|
|
13
|
+
"failure": "requirement semantics cannot be proven from current design",
|
|
14
|
+
"classification": "ambiguous",
|
|
15
|
+
"touchedByDiff": true,
|
|
16
|
+
"evidence": "duplicate-email and seat-limit outcomes lack a frozen row matrix",
|
|
17
|
+
"action": "reroute-cc-plan",
|
|
18
|
+
"status": "open"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"claimEvidence": [
|
|
23
|
+
{
|
|
24
|
+
"claim": "tests-pass",
|
|
25
|
+
"requiredProof": "fresh targeted test command with exit 0",
|
|
26
|
+
"commandOrArtifact": "npm test -- src/invite/bulk-import.test.ts",
|
|
27
|
+
"exitStatus": 0,
|
|
28
|
+
"keyObservation": "targeted bulk invite rule tests passed",
|
|
29
|
+
"status": "pass"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"claim": "requirements-met",
|
|
33
|
+
"requiredProof": "line-by-line planning/tasks.md and task-manifest.json checklist",
|
|
34
|
+
"commandOrArtifact": "planning/design.md + planning/task-manifest.json",
|
|
35
|
+
"exitStatus": null,
|
|
36
|
+
"keyObservation": "duplicate-email and seat-limit semantics are still underspecified",
|
|
37
|
+
"status": "blocked"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"qa": {
|
|
41
|
+
"status": "blocked",
|
|
42
|
+
"regressionProof": [],
|
|
43
|
+
"testQuality": [
|
|
44
|
+
{
|
|
45
|
+
"area": "bulk-invite-rules",
|
|
46
|
+
"checksRealBehavior": true,
|
|
47
|
+
"mockBoundary": "none",
|
|
48
|
+
"testOnlyProductionApi": false,
|
|
49
|
+
"status": "pass"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"coverageAudit": {
|
|
53
|
+
"status": "blocked",
|
|
54
|
+
"coveragePct": null,
|
|
55
|
+
"pathMap": ["bulk invite parser", "admin panel happy path"],
|
|
56
|
+
"gaps": ["duplicate-email row semantics", "seat-limit partial-failure semantics"],
|
|
57
|
+
"testsAdded": ["src/invite/bulk-import.test.ts", "src/admin/BulkInvitePanel.test.tsx"],
|
|
58
|
+
"e2eRequired": true,
|
|
59
|
+
"evalRequired": false,
|
|
60
|
+
"qualityStars": "★"
|
|
61
|
+
},
|
|
62
|
+
"browserEvidence": {
|
|
63
|
+
"status": "skipped",
|
|
64
|
+
"mode": "not-applicable",
|
|
65
|
+
"affectedRoutes": [],
|
|
66
|
+
"screenshots": [],
|
|
67
|
+
"consoleErrors": [],
|
|
68
|
+
"healthScore": null,
|
|
69
|
+
"issues": [],
|
|
70
|
+
"skipReason": "design contract is blocked before browser QA can prove the intended behavior"
|
|
71
|
+
},
|
|
72
|
+
"tddException": "design contract is incomplete, so tests cannot prove final requirement semantics yet"
|
|
73
|
+
},
|
|
6
74
|
"quickGates": [
|
|
7
75
|
{
|
|
8
76
|
"name": "bulk-rule-tests",
|
|
@@ -22,10 +90,35 @@
|
|
|
22
90
|
"status": "blocked",
|
|
23
91
|
"summary": "The implementation evidence is real, but the requirement-level design contract is still incomplete",
|
|
24
92
|
"details": "Diff review found that duplicate-email and seat-limit semantics are still not frozen tightly enough to trust the current implementation as the requirement truth.",
|
|
93
|
+
"freshness": {
|
|
94
|
+
"status": "fresh",
|
|
95
|
+
"reviewedCommit": "example-head",
|
|
96
|
+
"currentCommit": "example-head",
|
|
97
|
+
"commitsSinceReview": 0,
|
|
98
|
+
"staleReason": ""
|
|
99
|
+
},
|
|
100
|
+
"qualityScore": 6,
|
|
101
|
+
"specialistReviews": [
|
|
102
|
+
{
|
|
103
|
+
"name": "testing",
|
|
104
|
+
"status": "blocked",
|
|
105
|
+
"required": true,
|
|
106
|
+
"summary": "tests are real but cannot cover semantics that are not frozen in design",
|
|
107
|
+
"skipReason": "",
|
|
108
|
+
"findings": []
|
|
109
|
+
}
|
|
110
|
+
],
|
|
25
111
|
"taskReviews": {
|
|
26
112
|
"status": "pass",
|
|
27
113
|
"required": true,
|
|
28
114
|
"summary": "All completed tasks carry spec/code proof",
|
|
115
|
+
"reviewPacket": {
|
|
116
|
+
"baseSha": "example-base",
|
|
117
|
+
"headSha": "example-head",
|
|
118
|
+
"requirements": "planning/tasks.md",
|
|
119
|
+
"implemented": "bulk invite import implementation",
|
|
120
|
+
"reviewerContext": "task manifest plus current implementation evidence"
|
|
121
|
+
},
|
|
29
122
|
"reviewers": [],
|
|
30
123
|
"findings": []
|
|
31
124
|
},
|
|
@@ -33,20 +126,64 @@
|
|
|
33
126
|
"status": "blocked",
|
|
34
127
|
"required": false,
|
|
35
128
|
"summary": "Requirement-level review says the row-outcome matrix must be reopened in planning",
|
|
129
|
+
"reviewPacket": {
|
|
130
|
+
"baseSha": "example-base",
|
|
131
|
+
"headSha": "example-head",
|
|
132
|
+
"requirements": "planning/design.md",
|
|
133
|
+
"implemented": "bulk invite import implementation",
|
|
134
|
+
"reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
|
|
135
|
+
},
|
|
36
136
|
"reviewers": [],
|
|
37
137
|
"findings": [
|
|
38
|
-
|
|
39
|
-
|
|
138
|
+
{
|
|
139
|
+
"severity": "important",
|
|
140
|
+
"confidence": "high",
|
|
141
|
+
"source": "diff-review",
|
|
142
|
+
"summary": "duplicate-email behavior is still underspecified",
|
|
143
|
+
"evidence": "planning/design.md does not freeze row-level duplicate semantics",
|
|
144
|
+
"action": "reroute-cc-plan",
|
|
145
|
+
"triageStatus": "clarification-needed",
|
|
146
|
+
"confidenceScore": 9,
|
|
147
|
+
"fingerprint": "diff-review:bulk-invite:duplicate-email-semantics",
|
|
148
|
+
"displayTier": "blocking",
|
|
149
|
+
"suppressionReason": null
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"severity": "important",
|
|
153
|
+
"confidence": "high",
|
|
154
|
+
"source": "diff-review",
|
|
155
|
+
"summary": "seat-limit partial-failure semantics are not frozen in design.md",
|
|
156
|
+
"evidence": "planning/design.md lacks accepted row-outcome matrix",
|
|
157
|
+
"action": "reroute-cc-plan",
|
|
158
|
+
"triageStatus": "clarification-needed",
|
|
159
|
+
"confidenceScore": 9,
|
|
160
|
+
"fingerprint": "diff-review:bulk-invite:seat-limit-partial-failure",
|
|
161
|
+
"displayTier": "blocking",
|
|
162
|
+
"suppressionReason": null
|
|
163
|
+
}
|
|
40
164
|
]
|
|
41
165
|
},
|
|
42
166
|
"findings": [
|
|
43
|
-
|
|
167
|
+
{
|
|
168
|
+
"severity": "important",
|
|
169
|
+
"confidence": "medium",
|
|
170
|
+
"source": "diff-review",
|
|
171
|
+
"summary": "The current code may be locally green while still violating the intended admin trust model",
|
|
172
|
+
"evidence": "tests pass but requirement claim remains blocked by design ambiguity",
|
|
173
|
+
"action": "reroute-cc-plan",
|
|
174
|
+
"triageStatus": "clarification-needed",
|
|
175
|
+
"confidenceScore": 7,
|
|
176
|
+
"fingerprint": "diff-review:bulk-invite:trust-model-ambiguous",
|
|
177
|
+
"displayTier": "warning",
|
|
178
|
+
"suppressionReason": null
|
|
179
|
+
}
|
|
44
180
|
]
|
|
45
181
|
},
|
|
46
182
|
"blockingFindings": [
|
|
47
183
|
"design: duplicate-email row handling is not frozen tightly enough",
|
|
48
184
|
"design: seat-limit partial-failure semantics must be reopened in cc-plan"
|
|
49
185
|
],
|
|
186
|
+
"gaps": ["duplicate-email row handling", "seat-limit partial-failure semantics"],
|
|
50
187
|
"reroute": "cc-plan",
|
|
51
188
|
"timestamp": "2026-04-16T12:15:00.000Z"
|
|
52
189
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Example version: `1.0.0`
|
|
6
6
|
- Last reviewed: `2026-04-17`
|
|
7
|
-
- Bound skills: `cc-roadmap@4.
|
|
7
|
+
- Bound skills: `cc-roadmap@4.4.1`, `cc-plan@3.7.0`, `cc-do@1.6.0`, `cc-check@1.10.0`, `cc-act@1.8.0`
|
|
8
8
|
|
|
9
9
|
This example shows verified work that is **ready to move forward**, but `cc-act` still chooses `local-handoff`.
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Requirement version: `REQ-003.v1`
|
|
6
6
|
- Design version: `design.v1`
|
|
7
|
-
- CC-Plan skill version: `3.
|
|
7
|
+
- CC-Plan skill version: `3.7.0`
|
|
8
8
|
- Requirement ID: `REQ-003`
|
|
9
9
|
- Design mode: `tiny-design`
|
|
10
10
|
- Why this stays `tiny-design`: the patch adds one export action inside the existing admin audit UI without changing data contracts
|
package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json
CHANGED
|
@@ -3,6 +3,65 @@
|
|
|
3
3
|
"verdict": "pass",
|
|
4
4
|
"overall": "pass",
|
|
5
5
|
"summary": "verdict=pass quick=2/2 strict=0/0 review=pass",
|
|
6
|
+
"specAlignment": "pass",
|
|
7
|
+
"specDeltaVerified": true,
|
|
8
|
+
"specSyncReady": true,
|
|
9
|
+
"runtime": {
|
|
10
|
+
"status": "pass",
|
|
11
|
+
"failureOwnership": []
|
|
12
|
+
},
|
|
13
|
+
"claimEvidence": [
|
|
14
|
+
{
|
|
15
|
+
"claim": "tests-pass",
|
|
16
|
+
"requiredProof": "fresh targeted test command with exit 0",
|
|
17
|
+
"commandOrArtifact": "npm test -- src/admin/AuditSummaryPanel.test.tsx",
|
|
18
|
+
"exitStatus": 0,
|
|
19
|
+
"keyObservation": "audit summary panel targeted tests passed",
|
|
20
|
+
"status": "pass"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"claim": "requirements-met",
|
|
24
|
+
"requiredProof": "line-by-line planning/tasks.md and task-manifest.json checklist",
|
|
25
|
+
"commandOrArtifact": "planning/tasks.md + planning/task-manifest.json",
|
|
26
|
+
"exitStatus": null,
|
|
27
|
+
"keyObservation": "approved tiny-design scope completed",
|
|
28
|
+
"status": "pass"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"qa": {
|
|
32
|
+
"status": "pass",
|
|
33
|
+
"regressionProof": [],
|
|
34
|
+
"testQuality": [
|
|
35
|
+
{
|
|
36
|
+
"area": "audit-summary-panel",
|
|
37
|
+
"checksRealBehavior": true,
|
|
38
|
+
"mockBoundary": "none",
|
|
39
|
+
"testOnlyProductionApi": false,
|
|
40
|
+
"status": "pass"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"coverageAudit": {
|
|
44
|
+
"status": "pass",
|
|
45
|
+
"coveragePct": 80,
|
|
46
|
+
"pathMap": ["audit summary render path", "empty audit state"],
|
|
47
|
+
"gaps": [],
|
|
48
|
+
"testsAdded": ["src/admin/AuditSummaryPanel.test.tsx"],
|
|
49
|
+
"e2eRequired": false,
|
|
50
|
+
"evalRequired": false,
|
|
51
|
+
"qualityStars": "★★"
|
|
52
|
+
},
|
|
53
|
+
"browserEvidence": {
|
|
54
|
+
"status": "skipped",
|
|
55
|
+
"mode": "not-applicable",
|
|
56
|
+
"affectedRoutes": [],
|
|
57
|
+
"screenshots": [],
|
|
58
|
+
"consoleErrors": [],
|
|
59
|
+
"healthScore": null,
|
|
60
|
+
"issues": [],
|
|
61
|
+
"skipReason": "local handoff example records component evidence without a live browser fixture"
|
|
62
|
+
},
|
|
63
|
+
"tddException": null
|
|
64
|
+
},
|
|
6
65
|
"quickGates": [
|
|
7
66
|
{
|
|
8
67
|
"name": "targeted-tests",
|
|
@@ -22,10 +81,35 @@
|
|
|
22
81
|
"status": "pass",
|
|
23
82
|
"summary": "Task review proof and requirement-level diff review both passed",
|
|
24
83
|
"details": "The diff stayed inside the approved tiny-design scope and verification evidence is fresh.",
|
|
84
|
+
"freshness": {
|
|
85
|
+
"status": "fresh",
|
|
86
|
+
"reviewedCommit": "example-head",
|
|
87
|
+
"currentCommit": "example-head",
|
|
88
|
+
"commitsSinceReview": 0,
|
|
89
|
+
"staleReason": ""
|
|
90
|
+
},
|
|
91
|
+
"qualityScore": 9,
|
|
92
|
+
"specialistReviews": [
|
|
93
|
+
{
|
|
94
|
+
"name": "testing",
|
|
95
|
+
"status": "pass",
|
|
96
|
+
"required": true,
|
|
97
|
+
"summary": "targeted tests cover the audit summary behavior for this example",
|
|
98
|
+
"skipReason": "",
|
|
99
|
+
"findings": []
|
|
100
|
+
}
|
|
101
|
+
],
|
|
25
102
|
"taskReviews": {
|
|
26
103
|
"status": "pass",
|
|
27
104
|
"required": true,
|
|
28
105
|
"summary": "All completed tasks carry spec/code proof",
|
|
106
|
+
"reviewPacket": {
|
|
107
|
+
"baseSha": "example-base",
|
|
108
|
+
"headSha": "example-head",
|
|
109
|
+
"requirements": "planning/tasks.md",
|
|
110
|
+
"implemented": "audit log export summary view",
|
|
111
|
+
"reviewerContext": "task manifest plus changed audit panel files"
|
|
112
|
+
},
|
|
29
113
|
"reviewers": [],
|
|
30
114
|
"findings": []
|
|
31
115
|
},
|
|
@@ -33,12 +117,20 @@
|
|
|
33
117
|
"status": "pass",
|
|
34
118
|
"required": false,
|
|
35
119
|
"summary": "No blocking requirement-level findings",
|
|
120
|
+
"reviewPacket": {
|
|
121
|
+
"baseSha": "example-base",
|
|
122
|
+
"headSha": "example-head",
|
|
123
|
+
"requirements": "planning/design.md",
|
|
124
|
+
"implemented": "audit log export summary view",
|
|
125
|
+
"reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
|
|
126
|
+
},
|
|
36
127
|
"reviewers": [],
|
|
37
128
|
"findings": []
|
|
38
129
|
},
|
|
39
130
|
"findings": []
|
|
40
131
|
},
|
|
41
132
|
"blockingFindings": [],
|
|
133
|
+
"gaps": [],
|
|
42
134
|
"reroute": "none",
|
|
43
135
|
"timestamp": "2026-04-16T14:30:00.000Z"
|
|
44
136
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Example version: `1.0.0`
|
|
6
6
|
- Last reviewed: `2026-04-17`
|
|
7
|
-
- Bound skills: `cc-roadmap@4.
|
|
7
|
+
- Bound skills: `cc-roadmap@4.4.1`, `cc-plan@3.7.0`, `cc-do@1.6.0`, `cc-check@1.10.0`, `cc-act@1.8.0`
|
|
8
8
|
|
|
9
9
|
This folder shows one minimal but complete `cc-roadmap -> cc-plan -> cc-do -> cc-check -> cc-act` loop.
|
|
10
10
|
|
|
@@ -20,6 +20,25 @@
|
|
|
20
20
|
- Base branch: `main`
|
|
21
21
|
- PR / MR: not created yet
|
|
22
22
|
|
|
23
|
+
## Review Range
|
|
24
|
+
|
|
25
|
+
- Reviewed base SHA: `example-base`
|
|
26
|
+
- Reviewed head SHA: `example-head`
|
|
27
|
+
- Review packet: `planning/tasks.md#T001-T003`; `planning/design.md`
|
|
28
|
+
- Finding triage: no findings
|
|
29
|
+
- QA / claim evidence: `qa=pass`, `tests-pass=pass`, `requirements-met=pass`
|
|
30
|
+
|
|
31
|
+
## Readiness Dashboard
|
|
32
|
+
|
|
33
|
+
- Review freshness: `fresh`, reviewed `example-head`, current `example-head`
|
|
34
|
+
- Review quality: `qualityScore=9`
|
|
35
|
+
- Specialist review facets: `testing:pass`
|
|
36
|
+
- QA coverage: `status=pass`, gaps `0`, e2eRequired `false`
|
|
37
|
+
- Browser QA: `skipped`, example fixture uses targeted component evidence instead of a live browser
|
|
38
|
+
- Failure ownership: no open failures recorded
|
|
39
|
+
- Documentation release: README and CLAUDE unchanged for this scoped example
|
|
40
|
+
- PR body accuracy: regenerate the PR body from this brief, current report-card, and current diff
|
|
41
|
+
|
|
23
42
|
## Summary
|
|
24
43
|
|
|
25
44
|
- removes a small but visible sharing friction in the beta flow
|
|
@@ -35,6 +54,7 @@
|
|
|
35
54
|
## Verification Evidence
|
|
36
55
|
|
|
37
56
|
- `report-card.json` verdict: `pass`
|
|
57
|
+
- Merged-result verification: not applicable before merge
|
|
38
58
|
- Fresh evidence:
|
|
39
59
|
- `npm test -- src/features/share/ShareDialog.test.tsx`
|
|
40
60
|
- `npm run lint -- src/features/share/ShareDialog.tsx`
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Requirement version: `REQ-001.v1`
|
|
6
6
|
- Design version: `design.v1`
|
|
7
|
-
- CC-Plan skill version: `3.
|
|
7
|
+
- CC-Plan skill version: `3.7.0`
|
|
8
8
|
- Requirement ID: `REQ-001`
|
|
9
9
|
- Design mode: `tiny-design`
|
|
10
10
|
- Why this stays `tiny-design`: the patch is limited to an existing dialog and test file, with no API or data model changes
|