cc-devflow 4.5.6 → 4.5.8

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.
Files changed (92) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +6 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +11 -2
  3. package/.claude/skills/cc-act/SKILL.md +17 -7
  4. package/.claude/skills/cc-act/references/closure-contract.md +4 -0
  5. package/.claude/skills/cc-act/scripts/{archive-requirement.sh → archive-change.sh} +7 -7
  6. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +27 -0
  7. package/.claude/skills/cc-act/scripts/ensure-ship-branch.sh +93 -0
  8. package/.claude/skills/cc-act/scripts/generate-status-report.sh +6 -0
  9. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +6 -0
  10. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +14 -0
  11. package/.claude/skills/cc-dev/CHANGELOG.md +5 -0
  12. package/.claude/skills/cc-dev/PLAYBOOK.md +63 -0
  13. package/.claude/skills/cc-dev/SKILL.md +168 -0
  14. package/.claude/skills/cc-do/CHANGELOG.md +6 -0
  15. package/.claude/skills/cc-do/SKILL.md +23 -1
  16. package/.claude/skills/cc-investigate/CHANGELOG.md +5 -0
  17. package/.claude/skills/cc-investigate/SKILL.md +2 -2
  18. package/.claude/skills/cc-next/CHANGELOG.md +5 -0
  19. package/.claude/skills/cc-next/PLAYBOOK.md +52 -0
  20. package/.claude/skills/cc-next/SKILL.md +161 -0
  21. package/.claude/skills/cc-plan/CHANGELOG.md +28 -0
  22. package/.claude/skills/cc-plan/PLAYBOOK.md +20 -17
  23. package/.claude/skills/cc-plan/SKILL.md +135 -21
  24. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +42 -0
  25. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +28 -0
  26. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +84 -2
  27. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +30 -0
  28. package/.claude/skills/cc-plan/references/planning-contract.md +31 -15
  29. package/.claude/skills/cc-plan/scripts/next-change-key.sh +78 -0
  30. package/.claude/skills/cc-pr-land/CHANGELOG.md +5 -0
  31. package/.claude/skills/cc-pr-land/PLAYBOOK.md +45 -0
  32. package/.claude/skills/cc-pr-land/SKILL.md +157 -0
  33. package/.claude/skills/cc-pr-review/CHANGELOG.md +5 -0
  34. package/.claude/skills/cc-pr-review/PLAYBOOK.md +46 -0
  35. package/.claude/skills/cc-pr-review/SKILL.md +142 -0
  36. package/.claude/skills/cc-review/CHANGELOG.md +28 -0
  37. package/.claude/skills/cc-review/PLAYBOOK.md +108 -0
  38. package/.claude/skills/cc-review/SKILL.md +340 -0
  39. package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +85 -0
  40. package/.claude/skills/cc-review/references/implementation-review-branch.md +152 -0
  41. package/.claude/skills/cc-review/references/plan-review-branch.md +151 -0
  42. package/.claude/skills/cc-review/references/review-methods.md +221 -0
  43. package/.claude/skills/cc-review/scripts/collect-review-context.sh +80 -0
  44. package/.claude/skills/cc-roadmap/CHANGELOG.md +6 -0
  45. package/.claude/skills/cc-roadmap/SKILL.md +102 -8
  46. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +3 -0
  47. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +23 -0
  48. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +20 -1
  49. package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +28 -13
  50. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +18 -0
  51. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +8 -0
  52. package/.claude/skills/cc-simplify/CHANGELOG.md +6 -0
  53. package/.claude/skills/cc-simplify/SKILL.md +19 -8
  54. package/CHANGELOG.md +16 -0
  55. package/README.md +58 -4
  56. package/README.zh-CN.md +58 -4
  57. package/bin/cc-devflow-cli.js +119 -0
  58. package/config/distributable-skills.json +10 -0
  59. package/docs/assets/cc-devflow-pr-harness-en.svg +153 -0
  60. package/docs/assets/cc-devflow-pr-harness-zh.svg +152 -0
  61. package/docs/assets/wechat-group-qr.jpg +0 -0
  62. package/docs/examples/example-bindings.json +11 -6
  63. package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
  64. package/docs/examples/full-design-blocked/README.md +1 -1
  65. package/docs/examples/full-design-blocked/ROADMAP.md +16 -1
  66. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +36 -3
  67. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +604 -76
  68. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +46 -1
  69. package/docs/examples/full-design-blocked/roadmap.json +18 -2
  70. package/docs/examples/local-handoff/BACKLOG.md +1 -1
  71. package/docs/examples/local-handoff/README.md +1 -1
  72. package/docs/examples/local-handoff/ROADMAP.md +16 -1
  73. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +27 -1
  74. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +366 -44
  75. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +36 -1
  76. package/docs/examples/local-handoff/roadmap.json +16 -2
  77. package/docs/examples/pdca-loop/BACKLOG.md +1 -1
  78. package/docs/examples/pdca-loop/README.md +1 -1
  79. package/docs/examples/pdca-loop/ROADMAP.md +16 -1
  80. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +27 -1
  81. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +259 -14
  82. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +36 -1
  83. package/docs/examples/pdca-loop/roadmap.json +16 -2
  84. package/docs/examples/scripts/check-example-bindings.sh +21 -1
  85. package/docs/guides/getting-started.md +12 -9
  86. package/docs/guides/getting-started.zh-CN.md +12 -9
  87. package/lib/skill-runtime/__tests__/archive-change.test.js +124 -0
  88. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +1 -0
  89. package/lib/skill-runtime/__tests__/paths.test.js +81 -1
  90. package/lib/skill-runtime/archive-change.js +64 -0
  91. package/lib/skill-runtime/paths.js +32 -0
  92. package/package.json +7 -1
@@ -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.7`
7
+ - CC-Plan skill version: `3.8.2`
8
8
  - Source roadmap item: `RM-010`
9
9
  - Source roadmap version: `roadmap.v2`
10
10
 
@@ -22,6 +22,7 @@
22
22
  - Implementation decisions: reuse invite engine, billing checks, and audit contract after the row-outcome matrix is approved
23
23
  - Testing decisions: test bulk-import rules, admin upload flow, and audit mapping
24
24
  - Out of scope: SCIM provisioning, background jobs, rollback wizard
25
+ - AI Leverage Decision Lens: sharp-wedge; AI can implement this bounded import path fast, but cc-check may still block final proof if row semantics drift
25
26
  - Read first:
26
27
  - `design.md`
27
28
  - `src/admin/BulkInvitePanel.tsx`
@@ -36,50 +37,94 @@
36
37
  - audit row-result contract
37
38
  - Parallel boundaries: no parallel execution until row-outcome semantics are frozen
38
39
 
40
+ ## Execution Protocol
41
+
42
+ ClaudeCode / Codex 执行本计划时,必须把本文件当成任务模板合同,而不是普通 TODO 列表。
43
+
44
+ - Template source: `assets/TASKS_TEMPLATE.md`
45
+ - Task selection: read `planning/task-manifest.json.currentTaskId`; if empty, run the ready-task selector before choosing work.
46
+ - Task block rule: read the full task block before coding; title-only execution is invalid.
47
+ - Completion rule: after verification and review gates pass, run the completion script; do not manually edit checkbox, status, or `currentTaskId`.
48
+ - Completion failure: if the script fails, fix the missing checkpoint / review / dependency evidence and rerun it. Do not bypass it by editing JSON or Markdown.
49
+
50
+ ```bash
51
+ SCRIPT_ROOT=".claude/skills/cc-do/scripts"
52
+ if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then
53
+ SCRIPT_ROOT=".codex/skills/cc-do/scripts"
54
+ fi
55
+ bash "$SCRIPT_ROOT/select-ready-tasks.sh" --manifest docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json
56
+ bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task <task-id>
57
+ ```
58
+
39
59
  ## Phase 1: Rule Matrix
40
60
 
41
61
  - [x] T001 [TEST] Add failing tests for duplicate and over-limit row outcomes (dependsOn:none) `src/invite/bulk-import.test.ts`
42
62
  Goal: 先把最危险的 bulk invite 行为变成红灯。
63
+ TDD phase: red
43
64
  Files: `src/invite/bulk-import.test.ts`
44
65
  Read first: `design.md`, `src/invite/bulk-import.ts`
45
66
  Verification: `npm test -- src/invite/bulk-import.test.ts`
46
67
  Evidence: failing output
68
+ Completion: after verification evidence and required checkpoint/review records exist, run `SCRIPT_ROOT=".claude/skills/cc-do/scripts"; if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then SCRIPT_ROOT=".codex/skills/cc-do/scripts"; fi; bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T001`; do not hand-edit status.
69
+ Test seam: bulk invite rules and admin upload UI behavior
70
+ Public verification path: Run the bulk invite rule and admin panel tests through their public flows
71
+ Allowed mocks: file upload boundary / billing / seat limit boundary
47
72
  Ready when: 当前规则文件已经可定位
48
73
 
49
74
  - [x] T002 [IMPL] Implement the initial bulk invite row classification (dependsOn:T001) `src/invite/bulk-import.ts`
50
75
  Goal: 给 duplicate / over-limit 行为一个最小实现。
76
+ TDD phase: green
51
77
  Files: `src/invite/bulk-import.ts`
52
78
  Read first: `design.md`, `src/invite/bulk-import.test.ts`
53
79
  Verification: `npm test -- src/invite/bulk-import.test.ts`
54
80
  Evidence: passing output + checkpoint
81
+ Completion: after verification evidence and required checkpoint/review records exist, run `SCRIPT_ROOT=".claude/skills/cc-do/scripts"; if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then SCRIPT_ROOT=".codex/skills/cc-do/scripts"; fi; bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T002`; do not hand-edit status.
82
+ Test seam: bulk invite rules and admin upload UI behavior
83
+ Public verification path: Run the bulk invite rule and admin panel tests through their public flows
84
+ Allowed mocks: file upload boundary / billing / seat limit boundary
55
85
  Ready when: T001 已见红
56
86
 
57
87
  ## Phase 2: Surface Integration
58
88
 
59
89
  - [x] T003 [TEST] Add failing admin panel tests for mixed CSV results (dependsOn:T002) `src/admin/BulkInvitePanel.test.tsx`
60
90
  Goal: 在 UI 层看到 mixed row outcomes 的真实表现。
91
+ TDD phase: red
61
92
  Files: `src/admin/BulkInvitePanel.test.tsx`
62
93
  Read first: `design.md`, `src/admin/BulkInvitePanel.tsx`
63
94
  Verification: `npm test -- src/admin/BulkInvitePanel.test.tsx`
64
95
  Evidence: failing output
96
+ Completion: after verification evidence and required checkpoint/review records exist, run `SCRIPT_ROOT=".claude/skills/cc-do/scripts"; if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then SCRIPT_ROOT=".codex/skills/cc-do/scripts"; fi; bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T003`; do not hand-edit status.
97
+ Test seam: bulk invite rules and admin upload UI behavior
98
+ Public verification path: Run the bulk invite rule and admin panel tests through their public flows
99
+ Allowed mocks: file upload boundary / billing / seat limit boundary
65
100
  Ready when: T002 已完成
66
101
 
67
102
  - [x] T004 [IMPL] Render bulk invite results in the admin panel (dependsOn:T003) `src/admin/BulkInvitePanel.tsx`
68
103
  Goal: 把 row outcomes 接进管理界面。
104
+ TDD phase: green
69
105
  Files: `src/admin/BulkInvitePanel.tsx`
70
106
  Read first: `design.md`, `src/admin/BulkInvitePanel.test.tsx`
71
107
  Verification: `npm test -- src/admin/BulkInvitePanel.test.tsx`
72
108
  Evidence: passing output + review notes
109
+ Completion: after verification evidence and required checkpoint/review records exist, run `SCRIPT_ROOT=".claude/skills/cc-do/scripts"; if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then SCRIPT_ROOT=".codex/skills/cc-do/scripts"; fi; bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T004`; do not hand-edit status.
110
+ Test seam: bulk invite rules and admin upload UI behavior
111
+ Public verification path: Run the bulk invite rule and admin panel tests through their public flows
112
+ Allowed mocks: file upload boundary / billing / seat limit boundary
73
113
  Ready when: T003 已见红
74
114
 
75
115
  ## Phase 3: Verification
76
116
 
77
117
  - [x] T005 Run mixed-surface checks and gather review evidence (dependsOn:T004) `bulk invite quality gates`
78
118
  Goal: 为 `cc-check` 准备 bulk invite 的新鲜证据。
119
+ TDD phase: evidence
79
120
  Files: `src/admin/BulkInvitePanel.tsx`, `src/invite/bulk-import.ts`
80
121
  Read first: `tasks.md`, `task-manifest.json`
81
122
  Verification:
82
123
  - `npm test -- src/invite/bulk-import.test.ts`
83
124
  - `npm test -- src/admin/BulkInvitePanel.test.tsx`
84
125
  Evidence: passing output + review notes
126
+ Completion: after verification evidence and required checkpoint/review records exist, run `SCRIPT_ROOT=".claude/skills/cc-do/scripts"; if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then SCRIPT_ROOT=".codex/skills/cc-do/scripts"; fi; bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json --tasks docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md --task T005`; do not hand-edit status.
127
+ Test seam: bulk invite rules and admin upload UI behavior
128
+ Public verification path: Run the bulk invite rule and admin panel tests through their public flows
129
+ Allowed mocks: file upload boundary / billing / seat limit boundary
85
130
  Ready when: T004 已完成
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "meta": {
7
7
  "roadmapVersion": "roadmap.v2",
8
- "skillVersion": "5.0.0",
8
+ "skillVersion": "5.2.0",
9
9
  "status": "active",
10
10
  "lastUpdated": "2026-04-19",
11
11
  "currentFocusStage": "Stage 2"
@@ -14,7 +14,23 @@
14
14
  "planningPosture": "",
15
15
  "evidenceMaturity": "",
16
16
  "canonicalTerms": [],
17
- "durableDecisionSources": []
17
+ "durableDecisionSources": [],
18
+ "aiLeverageRouteLens": {
19
+ "realUserOrOperator": "workspace admin onboarding 20-200 collaborators",
20
+ "statusQuoWorkaround": "paste individual invite emails or coordinate in spreadsheets",
21
+ "humanTeamEffortForFullScope": "multiple weeks across product, engineering, billing, and support review",
22
+ "ccAgentEffortForFullScope": "several hours once row semantics are approved, but unbounded before that",
23
+ "aiCompressionRatio": "high after semantics freeze, low while the product contract is ambiguous",
24
+ "completeLakeBoundary": "row classification, admin upload flow, billing-seat checks, and audit mapping after rule approval",
25
+ "oceanBoundary": "SCIM, background retries, rollback wizard, and unspecified billing semantics",
26
+ "scopeRecommendation": "sharp-wedge",
27
+ "firstSuccessSignal": "admins can predict duplicate, invalid, and over-limit outcomes",
28
+ "killSignal": "duplicate and seat-limit semantics remain unresolved",
29
+ "verdict": "sharp-wedge",
30
+ "missingEvidence": [
31
+ "none recorded at route handoff; cc-check later reopened duplicate, invalid-row, partial-success, and seat-limit semantics"
32
+ ]
33
+ }
18
34
  },
19
35
  "evidence": [],
20
36
  "route": {
@@ -5,7 +5,7 @@
5
5
  ## Backlog Meta
6
6
 
7
7
  - Roadmap version: `roadmap.v2`
8
- - Skill version: `5.0.0`
8
+ - Skill version: `5.2.0`
9
9
  - Last synced: `2026-04-19`
10
10
  - Current focus stage: `Stage 2`
11
11
  - Roadmap state source: `roadmap.json`
@@ -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@5.0.0`, `cc-plan@3.7.7`, `cc-do@1.6.2`, `cc-check@1.10.1`, `cc-act@1.8.2`
7
+ - Bound skills: `cc-roadmap@5.2.0`, `cc-plan@3.8.2`, `cc-do@1.6.3`, `cc-check@1.10.1`, `cc-act@1.8.3`
8
8
 
9
9
  This example shows verified work that is **ready to move forward**, but `cc-act` still chooses `local-handoff`.
10
10
 
@@ -3,7 +3,7 @@
3
3
  ## Roadmap Meta
4
4
 
5
5
  - Roadmap version: `roadmap.v3`
6
- - Skill version: `5.0.0`
6
+ - Skill version: `5.2.0`
7
7
  - Status: `active`
8
8
  - Last updated: `2026-04-16`
9
9
  - Owner / decider: `product-owner`
@@ -27,6 +27,21 @@
27
27
  - Adoption / trust bottleneck: admins want proof they can take activity history out of the UI cleanly
28
28
  - Known unknowns: whether CSV alone is enough or if JSON export will be needed later
29
29
 
30
+ ## AI Leverage Route Lens
31
+
32
+ - Real user / operator: workspace admin preparing weekly activity review notes
33
+ - Status quo workaround: manually copy visible audit rows into an internal note
34
+ - Human-team effort for full scope: about one day for an engineer to implement, test, and document the local export
35
+ - CC / agent effort for full scope: about 30 minutes for visible-row CSV export plus targeted test and lint
36
+ - AI compression ratio: roughly 10x for the bounded local export path
37
+ - Complete-lake boundary: visible-row CSV export, panel action, current data source, targeted panel test, and lint
38
+ - Ocean boundary: JSON export, scheduled reporting, shared reporting backend, and cross-panel reporting platform
39
+ - Scope recommendation: `boil-lake`
40
+ - First success signal: admins finish weekly review without manual row copying
41
+ - Kill signal: implementation requires shared reporting pipeline redesign
42
+ - Verdict: `boil-lake`
43
+ - Missing evidence before ready-for-cc-plan: none
44
+
30
45
  ## Recommended Route
31
46
 
32
47
  - Recommendation: `wedge-first`
@@ -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.7`
7
+ - CC-Plan skill version: `3.8.2`
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
@@ -66,6 +66,30 @@
66
66
  - Risk: admins may soon ask for more export formats
67
67
  - Mitigation: treat JSON or scheduled exports as later roadmap items
68
68
 
69
+ ## AI Leverage Decision Lens
70
+
71
+ - Real user / operator: workspace admin preparing weekly review notes
72
+ - Status quo workaround: manually copy visible audit rows
73
+ - Human-team effort for full scope: about one day for an engineer to implement, test, and document the local export
74
+ - CC / agent effort for full scope: about 30 minutes for visible-row CSV export plus targeted test and lint
75
+ - AI compression ratio: roughly 10x for the bounded local export path
76
+ - Complete-lake boundary: visible-row CSV export, panel action, current data source, targeted panel test, and lint
77
+ - Ocean boundary: JSON export, scheduled reporting, shared reporting backend, and cross-panel reporting platform
78
+ - Scope recommendation: `boil-lake`
79
+ - Cost model: low agent time, low human review time, targeted panel test plus lint, low maintenance cost while scoped to visible rows, reversible UI action
80
+ - Verdict: `boil-lake`
81
+ - Missing evidence or pivot reason: none
82
+
83
+ ## External Best-Practice Validation
84
+
85
+ - Needed: No
86
+ - Decision status: not-needed
87
+ - Generalized search terms:
88
+ - Sources checked:
89
+ - Repo-fit verdict: skipped
90
+ - Changes to frozen design:
91
+ - Skipped reason: the local handoff exports existing visible rows and does not introduce a new reporting standard
92
+
69
93
  ## Review Gate
70
94
 
71
95
  - Placeholder scan: pass
@@ -74,6 +98,8 @@
74
98
  - Ambiguity scan: pass
75
99
  - Feasibility scan: pass
76
100
  - PRD brief scan: pass; the export story and scope boundaries are explicit
101
+ - AI Leverage Decision Lens scan: pass; visible-row export lake is bounded enough to complete while reporting platform work stays out
102
+ - External best-practice scan: pass; not needed for a repo-local visible-row export
77
103
  - Decision question scan: pass; `D1` approved the tiny-design CSV-export boundary
78
104
  - Final recommendation: approved as `tiny-design`
79
105