@haposoft/cafekit 0.16.0-rc.3 → 0.16.0-rc.5
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/bin/__tests__/change-firewall.semantic-firewall.test.js +2134 -0
- package/bin/__tests__/codex-hooks.test.js +531 -29
- package/bin/__tests__/codex-native.test.js +228 -7
- package/bin/__tests__/develop-contract.test.js +653 -185
- package/bin/__tests__/finalizer-pass-gate.semantic-firewall.test.js +342 -0
- package/bin/__tests__/installer-safety.test.js +39 -0
- package/bin/__tests__/opencode-spec-gate.test.js +24 -16
- package/bin/__tests__/package-inventory.test.js +705 -13
- package/bin/__tests__/release-preflight.semantic-firewall.test.js +578 -0
- package/bin/__tests__/review-receipt-c2.semantic-firewall.test.js +378 -0
- package/bin/__tests__/specs-v2-execution-closeout.test.js +468 -0
- package/bin/__tests__/specs-v2-policy-and-scaffold.test.js +665 -0
- package/bin/__tests__/specs-v2-validator-grounder-contract.test.js +1132 -0
- package/bin/__tests__/test-runtime-dependency-closure.cjs +182 -0
- package/bin/__tests__/validator-grounding.test.js +2013 -221
- package/bin/lib/managed-writer.js +12 -3
- package/bin/phases/codex-runtime.js +17 -1
- package/package.json +5 -2
- package/src/claude/CLAUDE.md +6 -0
- package/src/claude/agents/code-auditor.md +20 -0
- package/src/claude/agents/spec-maker.md +143 -99
- package/src/claude/hooks/__tests__/completion-authority.test.js +321 -58
- package/src/claude/hooks/__tests__/privacy-block.test.js +254 -0
- package/src/claude/hooks/__tests__/semantic-review-authority.test.js +257 -0
- package/src/claude/hooks/__tests__/spec-gate.test.js +115 -40
- package/src/claude/hooks/completion-authority-check.cjs +37 -288
- package/src/claude/hooks/completion-authority-state.cjs +10 -8
- package/src/claude/hooks/completion-authority.cjs +13 -7
- package/src/claude/hooks/docs-sync.cjs +5 -2
- package/src/claude/hooks/lib/privacy-command-analysis.cjs +393 -0
- package/src/claude/hooks/lib/runtime-path-safety.cjs +119 -0
- package/src/claude/hooks/privacy-block.cjs +99 -28
- package/src/claude/hooks/semantic-review-authority.cjs +152 -0
- package/src/claude/hooks/spec-gate.cjs +47 -117
- package/src/claude/hooks/spec-state.cjs +8 -2
- package/src/claude/migration-manifest.json +9 -1
- package/src/claude/rules/state-sync.md +52 -21
- package/src/claude/rules/workflow.md +17 -9
- package/src/claude/scripts/change-firewall.cjs +1748 -0
- package/src/claude/scripts/spec-authoring-digest.cjs +151 -0
- package/src/claude/scripts/spec-authoring-validation.cjs +126 -0
- package/src/claude/scripts/spec-final-state.cjs +290 -0
- package/src/claude/scripts/spec-ground.cjs +571 -173
- package/src/claude/scripts/spec-readiness.cjs +425 -0
- package/src/claude/scripts/spec-receipt.cjs +162 -0
- package/src/claude/scripts/spec-resolver.cjs +67 -16
- package/src/claude/scripts/spec-scaffold.cjs +1594 -139
- package/src/claude/scripts/spec-semantic-model.cjs +396 -0
- package/src/claude/scripts/validate-spec-output.cjs +3110 -218
- package/src/claude/scripts/workflow-policy.cjs +501 -183
- package/src/claude/settings/settings.json +4 -0
- package/src/claude/skills/code-review/SKILL.md +12 -3
- package/src/claude/skills/code-review/references/spec-compliance-review.md +10 -2
- package/src/claude/skills/code-review/references/verification-gate.md +13 -0
- package/src/claude/skills/develop/SKILL.md +47 -60
- package/src/claude/skills/develop/references/parallel-waves.md +9 -6
- package/src/claude/skills/develop/references/quality-gate.md +19 -12
- package/src/claude/skills/specs/SKILL.md +183 -177
- package/src/claude/skills/specs/references/ask-user-question-gates.md +27 -18
- package/src/claude/skills/specs/references/cross-spec-dependency.md +8 -4
- package/src/claude/skills/specs/references/research-strategy.md +4 -1
- package/src/claude/skills/specs/references/review.md +214 -262
- package/src/claude/skills/specs/references/scope-inquiry.md +18 -5
- package/src/claude/skills/specs/rules/design-discovery-full.md +33 -81
- package/src/claude/skills/specs/rules/design-discovery-light.md +21 -42
- package/src/claude/skills/specs/rules/design-principles.md +136 -180
- package/src/claude/skills/specs/rules/design-review.md +42 -97
- package/src/claude/skills/specs/rules/ears-format.md +42 -50
- package/src/claude/skills/specs/rules/phase-decision-matrix.md +42 -41
- package/src/claude/skills/specs/rules/task-scoring-rubric.md +2 -1
- package/src/claude/skills/specs/rules/tasks-generation.md +189 -300
- package/src/claude/skills/specs/templates/design.md +49 -263
- package/src/claude/skills/specs/templates/requirements.md +26 -36
- package/src/claude/skills/specs/templates/research.md +9 -98
- package/src/claude/skills/specs/templates/spec-state.json +35 -85
- package/src/claude/skills/specs/templates/task.md +30 -102
- package/src/claude/skills/sync/SKILL.md +33 -10
- package/src/claude/skills/sync/references/sync-protocols.md +31 -13
- package/src/claude/skills/test/SKILL.md +17 -7
- package/src/codex/AGENTS.md +6 -0
- package/src/codex/hooks/completion-authority-check.cjs +43 -240
- package/src/codex/hooks/completion-authority-state.cjs +10 -8
- package/src/codex/hooks/completion-authority.cjs +13 -7
- package/src/codex/hooks/lib/hook-context.cjs +16 -2
- package/src/codex/hooks/lib/privacy-command-analysis.cjs +3 -0
- package/src/codex/hooks/lib/privacy-state.cjs +61 -38
- package/src/codex/hooks/lib/runtime-path-safety.cjs +3 -0
- package/src/codex/hooks/lib/spec-receipt.cjs +72 -134
- package/src/codex/hooks/lib/spec-utils.cjs +56 -5
- package/src/codex/hooks/privacy-approval.cjs +6 -2
- package/src/codex/hooks/privacy-block.cjs +94 -15
- package/src/codex/hooks/semantic-review-authority.cjs +130 -0
- package/src/codex/hooks/spec-gate.cjs +49 -34
- package/src/codex/hooks/spec-state.cjs +10 -3
- package/src/codex/hooks/state.cjs +2 -0
- package/src/codex/hooks.json +6 -1
- package/src/codex/rules/state-sync.md +47 -27
- package/src/common/AGENTS.md +1 -1
|
@@ -1,110 +1,55 @@
|
|
|
1
|
-
# Design
|
|
1
|
+
# Design review contract
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Review the complete routed artifact graph for implementation-blocking semantic
|
|
4
|
+
gaps. Concise presentation is encouraged; inventory size is never capped.
|
|
5
5
|
|
|
6
|
-
##
|
|
7
|
-
- **Quality assurance, not perfection seeking**
|
|
8
|
-
- **Critical focus**: Limit to 3 most important concerns
|
|
9
|
-
- **Interactive dialogue**: Engage with designer, not one-way evaluation
|
|
10
|
-
- **Balanced assessment**: Recognize strengths and weaknesses
|
|
11
|
-
- **Clear decision**: Definitive GO/NO-GO with rationale
|
|
6
|
+
## Coverage
|
|
12
7
|
|
|
13
|
-
|
|
8
|
+
For every `RN.M` criterion:
|
|
14
9
|
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
1. trace the exact implementation owner, boundary, applicable `D`/`I`/`C`
|
|
11
|
+
definitions, and canonical `V` definition;
|
|
12
|
+
2. construct a concrete counterexample or failure scenario;
|
|
13
|
+
3. confirm the expected result rejects or handles that scenario;
|
|
14
|
+
4. confirm referenced anchors are reachable and grounded; and
|
|
15
|
+
5. record every unresolved contradiction, ambiguity, missing owner, broken
|
|
16
|
+
dependency, unreachable proof, or scope violation as a blocker.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Also review cross-criterion contracts, state transitions, concurrency,
|
|
19
|
+
authorization, recovery, compatibility, and rollback where scope activates
|
|
20
|
+
them. Do not perform broad technology research during review; return an exact
|
|
21
|
+
uncertainty to the artifact router when new material uncertainty is discovered.
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
- Integration with existing system boundaries and layers
|
|
22
|
-
- Consistency with established architectural patterns
|
|
23
|
-
- Proper dependency direction and coupling management
|
|
24
|
-
- Alignment with current module organization
|
|
23
|
+
## Finding shape
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
- Adherence to project naming conventions and code standards
|
|
28
|
-
- Consistent error handling and logging strategies
|
|
29
|
-
- Uniform configuration and dependency management
|
|
30
|
-
- Alignment with established data modeling patterns
|
|
25
|
+
Each blocker states:
|
|
31
26
|
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
27
|
+
- affected criterion and design/verification refs;
|
|
28
|
+
- concrete counterexample;
|
|
29
|
+
- observed conflicting or missing artifact content;
|
|
30
|
+
- impact on implementation or proof; and
|
|
31
|
+
- smallest semantic decision or correction required.
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
- Avoidance of unsafe patterns (e.g., `any` in TypeScript)
|
|
41
|
-
- Clear API boundaries and data structures
|
|
42
|
-
- Input validation and error handling coverage
|
|
33
|
+
Group duplicates for readability without dropping distinct blockers. Positive
|
|
34
|
+
observations are optional and never displace a blocker.
|
|
43
35
|
|
|
44
|
-
##
|
|
36
|
+
## Decision
|
|
45
37
|
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
- `PASS`: the full routed graph is coherent, grounded, and every criterion's
|
|
39
|
+
counterexample is resolved.
|
|
40
|
+
- `FAIL`: at least one semantic or structural blocker is actionable now.
|
|
41
|
+
- `BLOCKED`: required product input, trusted capability, or external evidence
|
|
42
|
+
is unavailable.
|
|
48
43
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
**Evidence**: [Design doc section/heading]
|
|
58
|
-
```
|
|
44
|
+
Routine and Elevated require semantic review but no reviewer ceremony. Strict
|
|
45
|
+
requires an independent allowlisted reviewer capability observed by the host
|
|
46
|
+
hook. An author, task marker, receipt text, or claimed role cannot self-attest
|
|
47
|
+
that capability. Risk alone has an Elevated floor; Strict is opt-in only for an
|
|
48
|
+
explicit user/project audit requirement or a user-confirmed, scope-specific
|
|
49
|
+
audit decision. If the host event is unavailable, pause once rather than retry,
|
|
50
|
+
downgrade, or simulate authority. Deterministic validation checks implemented
|
|
51
|
+
structure and grounding; it never replaces this semantic judgment.
|
|
59
52
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
### Step 4: Decide GO/NO-GO
|
|
64
|
-
- **GO**: No critical architectural misalignment, requirements addressed, clear implementation path, acceptable risks
|
|
65
|
-
- **NO-GO**: Fundamental conflicts, critical gaps, high failure risk, disproportionate complexity
|
|
66
|
-
|
|
67
|
-
## Traceability & Evidence
|
|
68
|
-
|
|
69
|
-
- Link each critical issue to the relevant requirement(s) from `requirements.md` (ID or section).
|
|
70
|
-
- Cite evidence locations in the design document (section/heading, diagram, or artifact) to support the assessment.
|
|
71
|
-
- When applicable, reference constraints from steering context to justify the issue.
|
|
72
|
-
|
|
73
|
-
## Output Format
|
|
74
|
-
|
|
75
|
-
### Design Review Summary
|
|
76
|
-
2-3 sentences on overall quality and readiness.
|
|
77
|
-
|
|
78
|
-
### Critical Issues (≤3)
|
|
79
|
-
For each: Issue, Impact, Recommendation, Traceability (e.g., 1.1, 1.2), Evidence (design.md section).
|
|
80
|
-
|
|
81
|
-
### Design Strengths
|
|
82
|
-
1-2 positive aspects.
|
|
83
|
-
|
|
84
|
-
### Final Assessment
|
|
85
|
-
Decision (GO/NO-GO), Rationale (1-2 sentences), Next Steps.
|
|
86
|
-
|
|
87
|
-
### Interactive Discussion
|
|
88
|
-
Engage on designer's perspective, alternatives, clarifications, and necessary changes.
|
|
89
|
-
|
|
90
|
-
## Length & Focus
|
|
91
|
-
|
|
92
|
-
- Summary: 2–3 sentences
|
|
93
|
-
- Each critical issue: 5–7 lines total (including Issue/Impact/Recommendation/Traceability/Evidence)
|
|
94
|
-
- Overall review: keep concise (~400 words guideline)
|
|
95
|
-
|
|
96
|
-
## Review Guidelines
|
|
97
|
-
|
|
98
|
-
1. **Critical Focus**: Only flag issues that significantly impact success
|
|
99
|
-
2. **Constructive Tone**: Provide solutions, not just criticism
|
|
100
|
-
3. **Interactive Approach**: Engage in dialogue rather than one-way evaluation
|
|
101
|
-
4. **Balanced Assessment**: Recognize both strengths and weaknesses
|
|
102
|
-
5. **Clear Decision**: Make definitive GO/NO-GO recommendation
|
|
103
|
-
6. **Actionable Feedback**: Ensure all suggestions are implementable
|
|
104
|
-
|
|
105
|
-
## Final Checklist
|
|
106
|
-
|
|
107
|
-
- **Critical Issues ≤ 3** and each includes Impact and Recommendation
|
|
108
|
-
- **Traceability**: Each issue references requirement ID/section
|
|
109
|
-
- **Evidence**: Each issue cites design doc location
|
|
110
|
-
- **Decision**: GO/NO-GO with clear rationale and next steps
|
|
53
|
+
Readiness stays false until the complete blocker inventory is resolved and all
|
|
54
|
+
required machine gates pass. Review does not claim implementation execution,
|
|
55
|
+
approval, closeout, or lifecycle completion.
|
|
@@ -1,50 +1,42 @@
|
|
|
1
|
-
# EARS
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
- **Process/Workflow**: Use responsible team/role (e.g., "Support Team", "Review Process")
|
|
44
|
-
- **Non-Software**: Use appropriate subject (e.g., "Marketing Campaign", "Documentation")
|
|
45
|
-
|
|
46
|
-
## Quality Criteria
|
|
47
|
-
- Requirements must be testable, verifiable, and describe a single behavior.
|
|
48
|
-
- **Measurability:** Avoid qualitative terms (e.g. "safe state", "fast", "some coverage"). Replace with measurable thresholds (e.g., "HTTP 400 error", "< 500ms response", ">= 80% coverage").
|
|
49
|
-
- Use objective language: "shall" for mandatory behavior, "should" for recommendations; avoid ambiguous terms.
|
|
50
|
-
- Follow EARS syntax: [condition], the [system] shall [response/action].
|
|
1
|
+
# EARS authoring rules
|
|
2
|
+
|
|
3
|
+
Use EARS to make behavior testable, not to fill a template.
|
|
4
|
+
|
|
5
|
+
## Canonical IDs
|
|
6
|
+
|
|
7
|
+
- Top-level headings: `Requirement N: <outcome>`.
|
|
8
|
+
- Acceptance criteria: literal `RN.M` (`R1.1`, `R1.2`, ...).
|
|
9
|
+
- Task mappings: numeric `N.M` only.
|
|
10
|
+
- Do not emit `REQ-01`, `NFR-1`, alphabetic IDs, or bare numbered criteria.
|
|
11
|
+
|
|
12
|
+
## Patterns
|
|
13
|
+
|
|
14
|
+
| Need | Pattern |
|
|
15
|
+
|---|---|
|
|
16
|
+
| Event | `When <event>, the <system> shall <observable response>.` |
|
|
17
|
+
| State | `While <state>, the <system> shall <observable response>.` |
|
|
18
|
+
| Negative/error | `If <invalid or failure condition>, the <system> shall <observable response or recovery>.` |
|
|
19
|
+
| Optional scope | `Where <feature is enabled>, the <system> shall <observable response>.` |
|
|
20
|
+
| Always true | `The <system> shall <observable property>.` |
|
|
21
|
+
|
|
22
|
+
Combine conditions only when they describe one behavior. Split criteria that
|
|
23
|
+
have independent triggers, outcomes, or proof.
|
|
24
|
+
|
|
25
|
+
## Quality gate
|
|
26
|
+
|
|
27
|
+
Every criterion must be singular, unambiguous, observable, and testable. Name a
|
|
28
|
+
concrete subject and replace words such as “fast”, “safe”, “graceful”, or “some”
|
|
29
|
+
with an observable result or threshold. Use `shall` for mandatory behavior.
|
|
30
|
+
|
|
31
|
+
Add a negative/error criterion when invalid input, missing permission,
|
|
32
|
+
unavailable dependency, conflict, timeout, retry, rollback, or partial failure
|
|
33
|
+
is relevant. Add a concrete example when values, ordering, boundaries, or
|
|
34
|
+
transformation rules would otherwise admit multiple interpretations.
|
|
35
|
+
|
|
36
|
+
User Story, rationale, scenario narrative, and role framing are optional. Keep
|
|
37
|
+
them only when they explain a product decision not already clear from the
|
|
38
|
+
outcome and criteria.
|
|
39
|
+
|
|
40
|
+
Non-functional requirements are not a standard appendix. Add one only for a
|
|
41
|
+
feature-specific measurable performance, security, privacy, accessibility,
|
|
42
|
+
reliability, or compatibility constraint, continuing the same numeric sequence.
|
|
@@ -1,55 +1,56 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Task and phase decision matrix
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Tasks and phases are conditional structure, not mandatory planning ceremony.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Task gate
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Create a task only when at least one boundary is real:
|
|
8
8
|
|
|
9
|
-
|
|
|
10
|
-
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
| Integration Gate | Prior outputs must be wired into a route, app, command, worker, extension manifest, or runtime surface | Final task in dependency chain | No orphaned services/components/files |
|
|
17
|
-
| Verification Gate | Security/performance/migration/critical path needs dedicated proof | Dedicated task only when proof cannot live inside related task | Exact command/artifact/negative-path evidence |
|
|
18
|
-
| Release/Packaging | Store/package/release behavior is explicitly in scope | Last task | Build artifact and release-specific checks |
|
|
9
|
+
| Boundary | Create a separate task when |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Ownership | A distinct owner can change the files or contract without overlap. |
|
|
12
|
+
| Dependency | One durable output must exist before another consumer can begin. |
|
|
13
|
+
| Transition | Stateful, migration, async, retry, or recovery behavior needs one named owner. |
|
|
14
|
+
| Proof | The outcome needs proof that cannot coherently live with the implementation slice. |
|
|
15
|
+
| Parallel coordination | Independent work can proceed with disjoint ownership and no hidden shared resource. |
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
Do not create tasks from estimated effort, requirement count, architectural
|
|
18
|
+
layers, risk labels, or a desire for uniform files.
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
4. Use layer slices when one layer blocks another or file ownership would conflict.
|
|
26
|
-
5. Add a spike before implementation when evidence says the outcome is uncertain.
|
|
27
|
-
6. Add an integration gate for every feature with runtime-facing outputs.
|
|
28
|
-
7. Add a verification gate only when the required proof is too broad for a single implementation task.
|
|
29
|
-
8. Do not create a slice just because the plan "feels large"; every slice needs a deliverable boundary.
|
|
20
|
+
When the gate passes, encode the real reason as one or more typed
|
|
21
|
+
`coordination.boundaries` entries. Legacy trigger fields, priority markers,
|
|
22
|
+
related-file lists, and free-form declarations are not authority.
|
|
30
23
|
|
|
31
|
-
## Split
|
|
24
|
+
## Split preference
|
|
32
25
|
|
|
33
|
-
|
|
26
|
+
Start with one vertical outcome slice that reaches a real user or runtime
|
|
27
|
+
entrypoint. Split horizontally only because dependency, ownership, or proof
|
|
28
|
+
requires it.
|
|
34
29
|
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
30
|
+
- Foundation: only when two or more consumers need the same owned prerequisite.
|
|
31
|
+
- Spike: only for a named uncertainty with a time-box and go/no-go output.
|
|
32
|
+
- Integration: only when earlier outputs are not already proven reachable.
|
|
33
|
+
- Verification: only when separate ownership or evidence is genuinely required.
|
|
34
|
+
- Release/packaging: only when explicitly in `scope_lock`.
|
|
40
35
|
|
|
41
|
-
Merge
|
|
36
|
+
Merge slices that touch the same files, share one proof, or would otherwise
|
|
37
|
+
produce an orphaned intermediate output.
|
|
42
38
|
|
|
43
|
-
-
|
|
44
|
-
- A task would only wrap another task with no independent deliverable.
|
|
45
|
-
- Splitting would create orphaned support code before integration.
|
|
39
|
+
## Owner-before-consumer
|
|
46
40
|
|
|
47
|
-
|
|
41
|
+
Every cross-task contract, invariant, schema transition, or recovery authority
|
|
42
|
+
has exactly one owner task. All consumers reference its stable ID and depend
|
|
43
|
+
directly or transitively on the owner. The typed dependency boundary is machine
|
|
44
|
+
authority; Markdown and `task_registry.dependencies` are projections that must
|
|
45
|
+
agree with it.
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
## Lightweight phases
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
49
|
+
Use phases only for a complex `Full` task graph where grouping materially helps
|
|
50
|
+
navigation or sequencing. Persist them as lightweight task-ID groups in
|
|
51
|
+
`spec.json`.
|
|
52
|
+
|
|
53
|
+
- Never create `phase-*.md` files.
|
|
54
|
+
- Never copy requirement, design, or task prose into a phase.
|
|
55
|
+
- A phase does not replace dependency edges or ownership.
|
|
56
|
+
- Compact specs and simple Full graphs omit phases.
|
|
@@ -30,7 +30,8 @@ independent proof path.
|
|
|
30
30
|
- Low evidence plus risk ≥2: consider a time-boxed spike, but do not create one
|
|
31
31
|
solely because a Cynefin label says `Complex`.
|
|
32
32
|
- Blast radius 3: include rollback/negative-path proof.
|
|
33
|
-
- File conflict ≥2:
|
|
33
|
+
- File conflict ≥2: parallel eligibility remains false unless a typed parallel
|
|
34
|
+
boundary proves isolated ownership and disjoint resources.
|
|
34
35
|
- High value plus dependency ≥2: schedule early only after real prerequisites.
|
|
35
36
|
|
|
36
37
|
Cynefin is advisory discovery language. It may suggest a spike or research
|