cc-devflow 4.5.11 → 4.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/cc-act/CHANGELOG.md +18 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +17 -269
- package/.claude/skills/cc-act/SKILL.md +38 -425
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_INDEX_TEMPLATE.md +2 -13
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_TEMPLATE.md +1 -9
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +21 -177
- package/.claude/skills/cc-act/references/closure-contract.md +12 -63
- package/.claude/skills/cc-act/references/git-commit-guidelines.md +5 -5
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +5 -322
- package/.claude/skills/cc-act/scripts/detect-ship-target.sh +11 -2
- package/.claude/skills/cc-act/scripts/inspect-git-index.sh +58 -0
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +40 -440
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +10 -50
- package/.claude/skills/cc-check/CHANGELOG.md +18 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +19 -273
- package/.claude/skills/cc-check/SKILL.md +33 -456
- package/.claude/skills/cc-check/references/review-contract.md +12 -147
- package/.claude/skills/cc-dev/CHANGELOG.md +15 -0
- package/.claude/skills/cc-dev/PLAYBOOK.md +1 -1
- package/.claude/skills/cc-dev/SKILL.md +52 -137
- package/.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh +181 -0
- package/.claude/skills/cc-do/CHANGELOG.md +11 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +19 -113
- package/.claude/skills/cc-do/SKILL.md +39 -245
- package/.claude/skills/cc-do/references/execution-recovery.md +15 -109
- package/.claude/skills/cc-do/scripts/cc-do-common.sh +5 -57
- package/.claude/skills/cc-do/scripts/check-task-status.sh +35 -65
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +9 -46
- package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +29 -97
- package/.claude/skills/cc-investigate/CHANGELOG.md +16 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +20 -180
- package/.claude/skills/cc-investigate/SKILL.md +64 -246
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -98
- package/.claude/skills/cc-investigate/references/investigation-contract.md +14 -218
- package/.claude/skills/cc-next/CHANGELOG.md +6 -0
- package/.claude/skills/cc-next/PLAYBOOK.md +12 -8
- package/.claude/skills/cc-next/SKILL.md +34 -140
- package/.claude/skills/cc-plan/CHANGELOG.md +16 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +22 -161
- package/.claude/skills/cc-plan/SKILL.md +45 -295
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +30 -228
- package/.claude/skills/cc-plan/references/planning-contract.md +24 -161
- package/.claude/skills/cc-plan/scripts/next-change-key.sh +8 -44
- package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +2 -2
- package/.claude/skills/cc-plan/scripts/validate-scope.sh +1 -1
- package/.claude/skills/cc-pr-land/SKILL.md +14 -114
- package/.claude/skills/cc-pr-review/CHANGELOG.md +4 -0
- package/.claude/skills/cc-pr-review/SKILL.md +20 -103
- package/.claude/skills/cc-review/CHANGELOG.md +17 -0
- package/.claude/skills/cc-review/PLAYBOOK.md +13 -86
- package/.claude/skills/cc-review/SKILL.md +53 -241
- package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +2 -2
- package/.claude/skills/cc-review/references/implementation-review-branch.md +7 -147
- package/.claude/skills/cc-review/references/plan-review-branch.md +5 -147
- package/.claude/skills/cc-review/references/review-methods.md +10 -218
- package/.claude/skills/cc-review/scripts/collect-review-context.sh +4 -63
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +1 -1
- package/.claude/skills/cc-roadmap/SKILL.md +3 -3
- package/.claude/skills/cc-simplify/CHANGELOG.md +7 -0
- package/.claude/skills/cc-simplify/SKILL.md +26 -21
- package/.claude/skills/cc-spec-init/PLAYBOOK.md +12 -48
- package/.claude/skills/cc-spec-init/SKILL.md +29 -132
- package/.claude/skills/cc-spec-init/references/spec-contract.md +8 -17
- package/CHANGELOG.md +13 -0
- package/bin/cc-devflow-cli.js +20 -260
- package/bin/cc-devflow.js +44 -7
- package/docs/commands/README.md +1 -1
- package/docs/commands/README.zh-CN.md +1 -1
- package/docs/examples/README.md +1 -1
- package/docs/examples/START-HERE.md +14 -15
- package/docs/examples/example-bindings.json +11 -11
- package/docs/examples/full-design-blocked/README.md +4 -6
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/{planning/tasks.md → task.md} +20 -15
- package/docs/examples/local-handoff/README.md +8 -11
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/pr-brief.md +31 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/{planning/tasks.md → task.md} +18 -13
- package/docs/examples/pdca-loop/README.md +6 -9
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +9 -11
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/{planning/tasks.md → task.md} +18 -13
- package/docs/examples/scripts/check-example-bindings.sh +11 -62
- package/docs/guides/artifact-contract.md +10 -40
- package/docs/guides/getting-started.md +8 -8
- package/docs/guides/getting-started.zh-CN.md +8 -8
- package/docs/guides/minimize-artifacts.md +16 -130
- package/docs/guides/project-postmortem.md +14 -71
- package/lib/compiler/__tests__/skills-registry.test.js +9 -8
- package/lib/compiler/resource-copier.js +29 -0
- package/lib/skill-runtime/__tests__/archive-change.test.js +2 -2
- package/lib/skill-runtime/__tests__/benchmark-skills.test.js +3 -3
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +14 -4
- package/lib/skill-runtime/errors.js +3 -3
- package/lib/skill-runtime/index.js +5 -23
- package/lib/skill-runtime/paths.js +5 -52
- package/lib/skill-runtime/query-registry.js +4 -4
- package/lib/skill-runtime/query.js +89 -201
- package/lib/skill-runtime/store.js +4 -40
- package/lib/skill-runtime/trace.js +2 -2
- package/package.json +2 -5
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_PRINCIPLES_TEMPLATE.md +0 -29
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +0 -54
- package/.claude/skills/cc-act/scripts/generate-status-report.sh +0 -92
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +0 -355
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +0 -234
- package/.claude/skills/cc-check/scripts/render-report-card.js +0 -438
- package/.claude/skills/cc-check/scripts/verify-gate.sh +0 -85
- package/.claude/skills/cc-do/scripts/build-task-context.sh +0 -175
- package/.claude/skills/cc-do/scripts/record-review-decision.sh +0 -88
- package/.claude/skills/cc-do/scripts/recover-workflow.sh +0 -82
- package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +0 -70
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +0 -109
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +0 -92
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +0 -224
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +0 -178
- package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +0 -28
- package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +0 -45
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +0 -234
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +0 -488
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +0 -189
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +0 -39
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +0 -29
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +0 -123
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +0 -292
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +0 -136
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +0 -29
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +0 -124
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +0 -292
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +0 -136
- package/docs/get-shit-done-strategy-audit.md +0 -518
- package/docs/skill-runtime-migration.md +0 -46
- package/lib/skill-runtime/__tests__/approve.test.js +0 -92
- package/lib/skill-runtime/__tests__/autopilot.test.js +0 -253
- package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +0 -165
- package/lib/skill-runtime/__tests__/delegation.test.js +0 -97
- package/lib/skill-runtime/__tests__/dispatch.test.js +0 -237
- package/lib/skill-runtime/__tests__/intent.test.js +0 -203
- package/lib/skill-runtime/__tests__/lifecycle.test.js +0 -169
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +0 -331
- package/lib/skill-runtime/__tests__/prepare-pr.test.js +0 -126
- package/lib/skill-runtime/__tests__/query.test.js +0 -860
- package/lib/skill-runtime/__tests__/readiness.test.js +0 -53
- package/lib/skill-runtime/__tests__/release.test.js +0 -85
- package/lib/skill-runtime/__tests__/review-check-integration.test.js +0 -148
- package/lib/skill-runtime/__tests__/review-records.test.js +0 -619
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +0 -351
- package/lib/skill-runtime/__tests__/schemas.test.js +0 -337
- package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +0 -137
- package/lib/skill-runtime/__tests__/task-contract.test.js +0 -874
- package/lib/skill-runtime/__tests__/team-state.test.js +0 -51
- package/lib/skill-runtime/__tests__/verify-artifacts.test.js +0 -203
- package/lib/skill-runtime/__tests__/worker-run.test.js +0 -275
- package/lib/skill-runtime/__tests__/worker.test.js +0 -56
- package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +0 -31
- package/lib/skill-runtime/__tests__/workflow-context.test.js +0 -98
- package/lib/skill-runtime/artifacts.js +0 -88
- package/lib/skill-runtime/context-index.js +0 -545
- package/lib/skill-runtime/delegation.js +0 -533
- package/lib/skill-runtime/intent.js +0 -309
- package/lib/skill-runtime/lifecycle.js +0 -294
- package/lib/skill-runtime/operations/CLAUDE.md +0 -19
- package/lib/skill-runtime/operations/approve.js +0 -81
- package/lib/skill-runtime/operations/autopilot-core.js +0 -337
- package/lib/skill-runtime/operations/autopilot-execution.js +0 -307
- package/lib/skill-runtime/operations/autopilot-shared.js +0 -48
- package/lib/skill-runtime/operations/autopilot.js +0 -163
- package/lib/skill-runtime/operations/dispatch.js +0 -416
- package/lib/skill-runtime/operations/init.js +0 -60
- package/lib/skill-runtime/operations/janitor.js +0 -61
- package/lib/skill-runtime/operations/plan.js +0 -59
- package/lib/skill-runtime/operations/prepare-pr.js +0 -25
- package/lib/skill-runtime/operations/release.js +0 -99
- package/lib/skill-runtime/operations/resume.js +0 -126
- package/lib/skill-runtime/operations/review-records.js +0 -265
- package/lib/skill-runtime/operations/snapshot.js +0 -45
- package/lib/skill-runtime/operations/task-contract.js +0 -593
- package/lib/skill-runtime/operations/verify.js +0 -170
- package/lib/skill-runtime/operations/worker-run.js +0 -531
- package/lib/skill-runtime/operations/worker.js +0 -33
- package/lib/skill-runtime/planner.js +0 -539
- package/lib/skill-runtime/readiness.js +0 -84
- package/lib/skill-runtime/review-records.js +0 -123
- package/lib/skill-runtime/review.js +0 -855
- package/lib/skill-runtime/schemas.js +0 -746
- package/lib/skill-runtime/task-contract.js +0 -188
- package/lib/skill-runtime/team-state.js +0 -122
- package/lib/skill-runtime/workflow-context.js +0 -748
package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md
DELETED
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
# DESIGN
|
|
2
|
-
|
|
3
|
-
## Document Meta
|
|
4
|
-
|
|
5
|
-
- Requirement version: `REQ-002.v2`
|
|
6
|
-
- Design version: `design.v2`
|
|
7
|
-
- CC-Plan skill version: `3.9.2`
|
|
8
|
-
- Work branch: `REQ/002-bulk-invite-import`
|
|
9
|
-
- Requirement ID: `REQ-002`
|
|
10
|
-
- Design mode: `full-design`
|
|
11
|
-
- Why not `tiny-design`: the feature crosses import parsing, invite rules, billing limits, duplicate handling, and audit logging
|
|
12
|
-
- Design status: `in-review`
|
|
13
|
-
- Source roadmap item: `RM-010`
|
|
14
|
-
- Source roadmap version: `roadmap.v2`
|
|
15
|
-
- Source roadmap skill version: `4.1.0`
|
|
16
|
-
- Date: `2026-04-16`
|
|
17
|
-
- Owner: `product-owner`
|
|
18
|
-
|
|
19
|
-
## Source Handoff
|
|
20
|
-
|
|
21
|
-
- Source stage: `Stage 2`
|
|
22
|
-
- Why now from roadmap: admin demand is real, but trust risks dominate the design
|
|
23
|
-
- Inherited success signal: admins can predict every bulk invite outcome
|
|
24
|
-
- Inherited kill signal: if semantics remain underspecified, stop execution and reopen planning
|
|
25
|
-
- Inherited dependencies:
|
|
26
|
-
- existing seat limit enforcement
|
|
27
|
-
- current audit log contract
|
|
28
|
-
- Inherited non-goals:
|
|
29
|
-
- no background job redesign
|
|
30
|
-
- no enterprise provisioning layer
|
|
31
|
-
- Upstream evidence: support notes from larger teams
|
|
32
|
-
- Assumptions to re-validate:
|
|
33
|
-
- duplicate emails can be skipped safely
|
|
34
|
-
- seat-limit failures can be partially accepted
|
|
35
|
-
|
|
36
|
-
## Requirement Snapshot
|
|
37
|
-
|
|
38
|
-
- Raw ask: admins want to upload a CSV of emails instead of inviting people one by one
|
|
39
|
-
- User: workspace admins onboarding 20-200 collaborators
|
|
40
|
-
- Pain: manual invites are too slow and error-prone
|
|
41
|
-
- Smallest viable wedge: a CSV upload that clearly predicts accepted, skipped, and rejected rows
|
|
42
|
-
- Out of scope:
|
|
43
|
-
- enterprise SCIM provisioning
|
|
44
|
-
- background retry orchestration
|
|
45
|
-
|
|
46
|
-
## PRD-Grade Requirement Brief
|
|
47
|
-
|
|
48
|
-
- Problem statement: admins onboarding larger teams spend too much time sending individual invites, and they cannot predict how duplicates, invalid rows, and seat limits will resolve in bulk.
|
|
49
|
-
- Solution summary: admins upload a CSV and receive deterministic row outcomes before the invite flow can be trusted for execution.
|
|
50
|
-
- Actors / personas:
|
|
51
|
-
- workspace admin onboarding 20-200 collaborators
|
|
52
|
-
- support operator explaining invite outcomes
|
|
53
|
-
- Primary user stories:
|
|
54
|
-
|
|
55
|
-
| ID | Actor | Wants | Benefit | Acceptance / evidence |
|
|
56
|
-
|----|-------|-------|---------|-----------------------|
|
|
57
|
-
| US-001 | Workspace admin | upload a CSV of invite emails | invite many collaborators without one-by-one entry | mixed valid rows produce visible accepted outcomes |
|
|
58
|
-
| US-002 | Workspace admin | see duplicate, invalid, and over-limit row states | understand what happened without support help | every skipped or rejected row has a reason |
|
|
59
|
-
| US-003 | Support operator | trust the audit trail for each row outcome | explain invite history consistently | audit entries match visible row outcomes |
|
|
60
|
-
|
|
61
|
-
- Edge / recovery stories:
|
|
62
|
-
|
|
63
|
-
| ID | Actor | Failure / boundary | Desired outcome | Acceptance / evidence |
|
|
64
|
-
|----|-------|--------------------|-----------------|-----------------------|
|
|
65
|
-
| US-EDGE-001 | Workspace admin | CSV contains duplicates and invalid emails | safe rows can proceed while bad rows are explained | rule matrix covers duplicate and invalid cases |
|
|
66
|
-
| US-EDGE-002 | Workspace admin | upload exceeds seat limits | over-limit rows are rejected consistently | billing-seat tests match UI summary |
|
|
67
|
-
|
|
68
|
-
- Implementation decisions:
|
|
69
|
-
- Freeze one row-outcome matrix before execution resumes.
|
|
70
|
-
- Reuse the existing invite engine, billing seat checks, and audit log contract.
|
|
71
|
-
- Keep enterprise provisioning and background retry orchestration outside this requirement.
|
|
72
|
-
- Testing decisions:
|
|
73
|
-
- Test row semantics through bulk-import rules and the admin upload flow.
|
|
74
|
-
- Verify audit mapping against visible row outcomes.
|
|
75
|
-
- Use existing invite and admin panel tests as prior art.
|
|
76
|
-
- Out of scope:
|
|
77
|
-
- enterprise SCIM provisioning
|
|
78
|
-
- background job redesign
|
|
79
|
-
- rollback wizard for partial success
|
|
80
|
-
- Further notes:
|
|
81
|
-
- This design remains blocked until duplicate and seat-limit semantics are approved.
|
|
82
|
-
|
|
83
|
-
## Success Criteria
|
|
84
|
-
|
|
85
|
-
- Observable success signals:
|
|
86
|
-
- admin sees deterministic results for each CSV row
|
|
87
|
-
- duplicate, over-limit, and invalid rows are explained consistently
|
|
88
|
-
- Business / operator success signals:
|
|
89
|
-
- support no longer manually explains bulk invite outcomes
|
|
90
|
-
- Abort signals:
|
|
91
|
-
- billing-seat or audit outcomes differ from the documented plan
|
|
92
|
-
|
|
93
|
-
## Options Considered
|
|
94
|
-
|
|
95
|
-
### Option A
|
|
96
|
-
|
|
97
|
-
- Shape: front-end-only CSV parsing with best-effort invite submission
|
|
98
|
-
- Reuses: existing single-invite API
|
|
99
|
-
- Pros: fast to prototype
|
|
100
|
-
- Cons: semantics depend on hidden backend edge cases
|
|
101
|
-
- Risks: partial success becomes impossible to explain
|
|
102
|
-
|
|
103
|
-
### Option B
|
|
104
|
-
|
|
105
|
-
- Shape: freeze a rule matrix first, then implement import around it
|
|
106
|
-
- Reuses: existing invite engine, but with explicit row-state mapping
|
|
107
|
-
- Pros: makes billing, duplicate, and audit behavior reviewable
|
|
108
|
-
- Cons: more upfront planning
|
|
109
|
-
- Risks: may expose a need for additional shared contracts
|
|
110
|
-
|
|
111
|
-
## Approved Direction
|
|
112
|
-
|
|
113
|
-
- Approved option: `Option B`
|
|
114
|
-
- Why this is the best trade-off now: the import UX is not trustworthy until row outcomes and seat limits are explicitly modeled
|
|
115
|
-
- Why not the other options now: best-effort submission would let implementation invent semantics during execution
|
|
116
|
-
- What we explicitly rejected: a UI-only CSV uploader that guesses row behavior
|
|
117
|
-
- Frozen decisions:
|
|
118
|
-
- bulk import must classify each row into accepted, skipped, or rejected
|
|
119
|
-
- seat-limit failures cannot silently pass
|
|
120
|
-
- audit log entries must match the visible row outcome
|
|
121
|
-
- Deferred questions:
|
|
122
|
-
- whether partial success needs an explicit rollback option
|
|
123
|
-
|
|
124
|
-
## AI Leverage Decision Lens
|
|
125
|
-
|
|
126
|
-
- Real user / operator: workspace admin onboarding larger teams
|
|
127
|
-
- Status quo workaround: paste invite emails one by one or track them in spreadsheets
|
|
128
|
-
- Human-team effort for full scope: multiple weeks across product, engineering, billing, and support review
|
|
129
|
-
- CC / agent effort for full scope: several hours once row semantics are approved, but unbounded before that
|
|
130
|
-
- AI compression ratio: high after semantics freeze, low while the product contract is ambiguous
|
|
131
|
-
- Complete-lake boundary: row classification, admin upload flow, billing-seat checks, and audit mapping after rule approval
|
|
132
|
-
- Ocean boundary: SCIM, background retries, rollback wizard, and unspecified billing semantics
|
|
133
|
-
- Scope recommendation: `sharp-wedge`
|
|
134
|
-
- Cost model: medium agent time after rule approval, high human review time until semantics are approved, high failure cost if billing or audit outcomes drift
|
|
135
|
-
- Verdict: `sharp-wedge`
|
|
136
|
-
- Missing evidence or pivot reason: none at plan approval; cc-check later reopened duplicate, invalid-row, partial-success, and seat-limit semantics before retry or cc-act
|
|
137
|
-
|
|
138
|
-
## External Best-Practice Validation
|
|
139
|
-
|
|
140
|
-
- Needed: Yes
|
|
141
|
-
- Decision status: declined
|
|
142
|
-
- Decision question: `D2`
|
|
143
|
-
- Privacy guard: generalized terms only; no project names, private requirements, customer names, secrets, logs, or proprietary concepts
|
|
144
|
-
- Generalized search terms:
|
|
145
|
-
- `bulk invite CSV import validation best practices`
|
|
146
|
-
- Sources checked:
|
|
147
|
-
- Conventional wisdom:
|
|
148
|
-
- Current discourse:
|
|
149
|
-
- Repo-fit verdict: skipped
|
|
150
|
-
- Changes to options / tasks:
|
|
151
|
-
- keep the design blocked until row-outcome semantics are approved from internal evidence
|
|
152
|
-
- Skipped reason: user kept the example repo-local for the blocked design
|
|
153
|
-
|
|
154
|
-
## Decision Questions
|
|
155
|
-
|
|
156
|
-
| ID | Gate | Known evidence | Recommendation | User choice | Impact on `cc-do` | Status |
|
|
157
|
-
|----|------|----------------|----------------|-------------|-------------------|--------|
|
|
158
|
-
| D1 | approach-approval | Best-effort upload would let duplicate, invalid, and seat-limit semantics drift during execution | Choose Option B and freeze a rule matrix first | Option B | Keep execution blocked until row outcomes are modeled | answered |
|
|
159
|
-
| D2 | external-best-practice | Bulk CSV import semantics could benefit from generalized external practice, but this example stays repo-local | Stay repo-local for this blocked example | Stay repo-local | `cc-do` still must not start implementation until row outcomes are answered from internal evidence | answered |
|
|
160
|
-
| D3 | review-blocker | Duplicate and seat-limit outcomes are still not explicit enough for final requirement proof | Answer the row-outcome matrix before retry or cc-act | pending | `cc-do` retry and `cc-act` must stay blocked until this is answered | asked |
|
|
161
|
-
|
|
162
|
-
## Design
|
|
163
|
-
|
|
164
|
-
- Modules touched:
|
|
165
|
-
- admin invite UI
|
|
166
|
-
- invite validation rules
|
|
167
|
-
- billing / seat limit decision points
|
|
168
|
-
- audit log mapping
|
|
169
|
-
- Data flow:
|
|
170
|
-
- CSV parse -> row validation -> invite decision -> row result summary -> audit log write
|
|
171
|
-
- Contracts:
|
|
172
|
-
- one rule matrix for duplicate, invalid, over-limit, and existing-member rows
|
|
173
|
-
- Error handling:
|
|
174
|
-
- every rejected row must expose a user-readable reason
|
|
175
|
-
- Rollout / migration:
|
|
176
|
-
- release only after rule matrix and verification plan are both approved
|
|
177
|
-
|
|
178
|
-
## File Plan
|
|
179
|
-
|
|
180
|
-
| File | Change | Reason |
|
|
181
|
-
|------|--------|--------|
|
|
182
|
-
| `src/admin/BulkInvitePanel.tsx` | update | upload and result display |
|
|
183
|
-
| `src/admin/BulkInvitePanel.test.tsx` | update | row-state behavior tests |
|
|
184
|
-
| `src/invite/bulk-import.ts` | add | import rule orchestration |
|
|
185
|
-
| `src/invite/bulk-import.test.ts` | add | duplicate / seat / invalid cases |
|
|
186
|
-
| `src/audit/invite-log.ts` | update | audit consistency |
|
|
187
|
-
|
|
188
|
-
## Validation Strategy
|
|
189
|
-
|
|
190
|
-
- Unit: rule matrix tests for each row outcome
|
|
191
|
-
- Integration: admin upload flow covering duplicates and seat-limit failures
|
|
192
|
-
- Manual: CSV import with mixed valid and invalid rows
|
|
193
|
-
- Observability / evidence: row summary and audit log must agree
|
|
194
|
-
|
|
195
|
-
## Risks
|
|
196
|
-
|
|
197
|
-
| Risk | Impact | Mitigation |
|
|
198
|
-
|------|--------|------------|
|
|
199
|
-
| duplicate handling is underspecified | high | freeze explicit rule matrix before continuing |
|
|
200
|
-
| audit and visible row summary diverge | high | verify audit mapping in integration review |
|
|
201
|
-
|
|
202
|
-
## Review Gate
|
|
203
|
-
|
|
204
|
-
- Placeholder scan: pass
|
|
205
|
-
- Consistency scan: fail; current implementation evidence still assumes some row outcomes not frozen here
|
|
206
|
-
- Scope scan: pass
|
|
207
|
-
- Ambiguity scan: blocked; duplicate + seat-limit semantics still need sharper wording
|
|
208
|
-
- Feasibility scan: pass
|
|
209
|
-
- Source alignment: pass; roadmap still prioritizes trust over speed
|
|
210
|
-
- PRD brief scan: pass for actors and stories; blocked on duplicate and seat-limit semantics
|
|
211
|
-
- AI Leverage Decision Lens scan: pass at plan approval as a sharp wedge; cc-check later blocked final proof because product semantics were still unbounded evidence risk
|
|
212
|
-
- External best-practice scan: pass; declined and recorded before task generation
|
|
213
|
-
- Decision question scan: blocked; `D3` is still unanswered
|
|
214
|
-
- UI / interaction review summary: result states are acceptable if semantics are frozen first
|
|
215
|
-
- DX review summary: execution still needs a single row-outcome matrix
|
|
216
|
-
- Auto-decided items:
|
|
217
|
-
- CSV upload stays inside admin settings
|
|
218
|
-
- Taste decisions:
|
|
219
|
-
- show result rows directly after parse instead of a second confirmation wizard
|
|
220
|
-
- User challenges:
|
|
221
|
-
- can admins predict partial failure without reading documentation?
|
|
222
|
-
- Recommendation: do not declare this design complete until the row-outcome matrix is explicit
|
|
223
|
-
|
|
224
|
-
## Approval
|
|
225
|
-
|
|
226
|
-
- User approval status: `in-review`
|
|
227
|
-
- Follow-up changes after review:
|
|
228
|
-
- add a rule matrix section before execution resumes
|
|
229
|
-
|
|
230
|
-
## First-Read Test
|
|
231
|
-
|
|
232
|
-
- 10 秒内能看出这次为什么不是 `tiny-design`
|
|
233
|
-
- 10 秒内能看出批准方案和被拒方案的边界
|
|
234
|
-
- `cc-do` 是否还能被迫二次设计;这里答案仍然是“会”,所以设计还不能诚实闭环
|