@jakkrichm/create-nexus-devflow 2.17.5 → 2.17.7
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/README.md +8 -8
- package/dist/lib/doctor.js +27 -0
- package/dist/lib/doctor.js.map +1 -1
- package/dist/lib/history.js +2 -2
- package/dist/lib/history.js.map +1 -1
- package/dist/lib/skill-registry-engine.js +3 -3
- package/dist/lib/skill-registry-engine.js.map +1 -1
- package/dist/lib/tooling/commands/scan-doc-contract.js +0 -1
- package/dist/lib/tooling/commands/scan-doc-contract.js.map +1 -1
- package/dist/scripts/prepare-template.js +1 -1
- package/dist/scripts/prepare-template.js.map +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/audit/SKILL.md +4 -1
- package/template/.agents/skills/brainstorm/SKILL.md +5 -4
- package/template/.agents/skills/check/SKILL.md +26 -116
- package/template/.agents/skills/check/reference/guide.md +126 -0
- package/template/.agents/skills/check/reference/verify.md +129 -0
- package/template/.agents/skills/ci/SKILL.md +42 -8
- package/template/.agents/skills/complete/SKILL.md +2 -0
- package/template/.agents/skills/discovery/SKILL.md +9 -0
- package/template/.agents/skills/doctor/SKILL.md +6 -0
- package/template/.agents/skills/explore/SKILL.md +78 -0
- package/template/.agents/skills/feature/SKILL.md +4 -1
- package/template/.agents/skills/feature/reference/feature-spec-template.md +16 -16
- package/template/.agents/skills/grill/SKILL.md +6 -1
- package/template/.agents/skills/idea/SKILL.md +6 -6
- package/template/.agents/skills/implement/SKILL.md +9 -1
- package/template/.agents/skills/test/SKILL.md +26 -0
- package/template/.claude/skills/audit/SKILL.md +4 -1
- package/template/.claude/skills/brainstorm/SKILL.md +5 -4
- package/template/.claude/skills/check/SKILL.md +26 -116
- package/template/.claude/skills/check/reference/guide.md +126 -0
- package/template/.claude/skills/check/reference/verify.md +129 -0
- package/template/.claude/skills/ci/SKILL.md +42 -8
- package/template/.claude/skills/complete/SKILL.md +2 -0
- package/template/.claude/skills/discovery/SKILL.md +11 -3
- package/template/.claude/skills/doctor/SKILL.md +6 -0
- package/template/.claude/skills/explore/SKILL.md +78 -0
- package/template/.claude/skills/feature/SKILL.md +4 -1
- package/template/.claude/skills/feature/reference/feature-spec-template.md +16 -16
- package/template/.claude/skills/grill/SKILL.md +6 -1
- package/template/.claude/skills/idea/SKILL.md +6 -6
- package/template/.claude/skills/implement/SKILL.md +9 -1
- package/template/.claude/skills/test/SKILL.md +26 -0
- package/template/AGENTS.md +12 -1
- package/template/devflow/context/coding-standards.md +62 -2
- package/template/devflow/context/glossary.md +20 -0
- package/template/devflow/decisions/README.md +15 -1
- package/template/devflow/reference/feature-spec-template.md +59 -79
- package/template/devflow/reference/help-playbook-protocol.md +8 -8
- package/template/devflow/reference/slicing-archetypes.md +105 -0
- package/template/devflow/docs/USAGE.md +0 -194
- package/template/devflow/docs/diagrams/nexus-devflow-architecture.html +0 -14821
- package/template/devflow/docs/diagrams/nexus-devflow-architecture.json +0 -80
- package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.html +0 -14860
- package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.json +0 -88
- package/template/devflow/docs/examples/living-spec/adr.example.md +0 -43
- package/template/devflow/docs/examples/living-spec/current-feature.example.md +0 -113
- package/template/devflow/docs/examples/living-spec/discovery.example.md +0 -45
- package/template/devflow/docs/examples/living-spec/ideas.example.md +0 -22
- package/template/devflow/docs/governance-rules.md +0 -39
- package/template/devflow/docs/manual-review-workflow-spec.md +0 -116
- package/template/devflow/docs/markdown-metadata-contract.md +0 -140
- package/template/devflow/docs/quickstart.md +0 -124
- package/template/devflow/docs/release-process.md +0 -52
- package/template/devflow/docs/skill-selection-policy.md +0 -64
- package/template/devflow/docs/workflow-surface-map.md +0 -85
|
@@ -102,6 +102,8 @@ the data model, stack, and conventions. Decide how big the feature is:
|
|
|
102
102
|
those sub-items back under the parent in `build-plan.md` as an indented
|
|
103
103
|
checklist (`4a`, `4b`, `4c` ...). Spec only the **first** sub-feature now; the
|
|
104
104
|
rest get picked up on later `/feature` runs.
|
|
105
|
+
*Use the **4 Slicing Archetypes** ([`devflow/reference/slicing-archetypes.md`](file:///d:/Projects/devtools/nexus-devflow/devflow/reference/slicing-archetypes.md)) to guide the split: 🛹 Skateboard (core logic first), 🎭 Facade (UI/DX mock first), 🎯 Tracer Bullet (end-to-end slice), or 🧭 Journey (workflow steps).*
|
|
106
|
+
|
|
105
107
|
|
|
106
108
|
Two levels of breakdown - don't confuse them:
|
|
107
109
|
|
|
@@ -198,7 +200,7 @@ Before the user reads it, turn on the spec yourself and try to break it. The
|
|
|
198
200
|
cheapest place to catch a scope problem or an oversized step is here, before any
|
|
199
201
|
code exists. Run the draft against these questions:
|
|
200
202
|
|
|
201
|
-
- **Coverage.** What does this feature need that no step delivers? Push on the
|
|
203
|
+
- **Coverage & Input Mapping.** What does this feature need that no step delivers? Run a mechanical **Input Coverage Test**: does every value this build produces, displays, or computes have a named source (input, DB column, formula, or settled decision) in the spec? Push on the
|
|
202
204
|
unhappy paths the happy-path spec skipped: empty / missing / malformed input,
|
|
203
205
|
the error / loading / empty states, the first-run case, failure of anything
|
|
204
206
|
external it calls.
|
|
@@ -218,6 +220,7 @@ code exists. Run the draft against these questions:
|
|
|
218
220
|
anything pushed to "out of scope" that this feature actually can't ship without?
|
|
219
221
|
- **Done-whens.** Is each one observable and checkable by `/check`, or is it a
|
|
220
222
|
vague "it works"? Make it concrete.
|
|
223
|
+
- **Proportionality.** Does any proposed abstraction, dependency, service, config surface, or security mechanism lack a current requirement, or duplicate existing code/platform features? If so, remove it.
|
|
221
224
|
- **Testing.** Does the predicted coverage match the gate - in-scope logic gets a
|
|
222
225
|
test when a `test` command is declared in `AGENTS.md`, UI/integration rides on
|
|
223
226
|
screenshot + build?
|
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
## 1. Specification & Scope
|
|
15
15
|
|
|
16
16
|
### 1.1 Problem Statement
|
|
17
|
-
{
|
|
17
|
+
{Description of the problem, background, and rationale for developing this feature}
|
|
18
18
|
|
|
19
19
|
### 1.2 In-Scope
|
|
20
|
-
1. {
|
|
21
|
-
2. {
|
|
20
|
+
1. {In-scope item 1}
|
|
21
|
+
2. {In-scope item 2}
|
|
22
22
|
|
|
23
23
|
### 1.3 Out-of-Scope
|
|
24
|
-
- {
|
|
24
|
+
- {Items deliberately excluded or deferred to future features}
|
|
25
25
|
|
|
26
|
-
### 1.4 Acceptance Criteria
|
|
27
|
-
- [ ] **AC-1**: {
|
|
28
|
-
- [ ] **AC-2**: {
|
|
26
|
+
### 1.4 Acceptance Criteria
|
|
27
|
+
- [ ] **AC-1**: {Acceptance criterion 1}
|
|
28
|
+
- [ ] **AC-2**: {Acceptance criterion 2}
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
@@ -40,18 +40,18 @@
|
|
|
40
40
|
- **Review Strategy**: One feature-level review packet at completion
|
|
41
41
|
|
|
42
42
|
### 2.3 Test Decision: Required (TDD) | Optional
|
|
43
|
-
- **Rationale**: {
|
|
43
|
+
- **Rationale**: {Reason for requiring Unit Tests / TDD}
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
47
47
|
## 3. Implementation Checklist (Strict TDD)
|
|
48
48
|
|
|
49
|
-
- [ ] **Task 1: {
|
|
50
|
-
- [ ] 1.1 `[TDD-Red]`: {
|
|
51
|
-
- [ ] 1.2 `[TDD-Green]`: {
|
|
52
|
-
- [ ] 1.3 `[TDD-Refactor]`: {Refactor
|
|
49
|
+
- [ ] **Task 1: {Task 1 title}**
|
|
50
|
+
- [ ] 1.1 `[TDD-Red]`: {Write failing unit or behavioral test}
|
|
51
|
+
- [ ] 1.2 `[TDD-Green]`: {Write minimal implementation to pass test}
|
|
52
|
+
- [ ] 1.3 `[TDD-Refactor]`: {Refactor and ensure 100% tests green}
|
|
53
53
|
|
|
54
|
-
- [ ] **Task 2: {
|
|
54
|
+
- [ ] **Task 2: {Task 2 title}**
|
|
55
55
|
- [ ] 2.1 `[TDD-Red]`: ...
|
|
56
56
|
- [ ] 2.2 `[TDD-Green]`: ...
|
|
57
57
|
- [ ] 2.3 `[TDD-Refactor]`: ...
|
|
@@ -65,11 +65,11 @@
|
|
|
65
65
|
- **Automated Test Matrix**: TBD
|
|
66
66
|
- **Static Contract Verification**: TBD
|
|
67
67
|
- **Package Smoke Test**: TBD
|
|
68
|
-
- **Findings Ledger**:
|
|
68
|
+
- **Findings Ledger**: Verify `findings.md` is 100% clean
|
|
69
69
|
|
|
70
70
|
### 🎯 Axis 2: Spec Fidelity & Behavioral Acceptance Gate
|
|
71
|
-
- [ ] **AC-1**: {
|
|
72
|
-
- [ ] **AC-2**: {
|
|
71
|
+
- [ ] **AC-1**: {Empirical proof for AC-1}
|
|
72
|
+
- [ ] **AC-2**: {Empirical proof for AC-2}
|
|
73
73
|
|
|
74
74
|
---
|
|
75
75
|
|
|
@@ -70,10 +70,14 @@ Allocate the next sequential ID (`ADR-001`, `ADR-002`, ...) and create `devflow/
|
|
|
70
70
|
```markdown
|
|
71
71
|
# ADR-xxx: {Title}
|
|
72
72
|
|
|
73
|
-
- **Status**: Accepted
|
|
73
|
+
- **Status**: Accepted | Assumed (Fast-tracked Assumption)
|
|
74
74
|
- **Date**: {YYYY-MM-DD}
|
|
75
75
|
- **Context**: {Why was this decision needed? What problem does it solve?}
|
|
76
76
|
- **Decision**: {What did we decide to do?}
|
|
77
|
+
- **Assumption Metadata** *(Required when Status is Assumed)*:
|
|
78
|
+
- **Assumption**: {What was assumed to unblock progress}
|
|
79
|
+
- **Risk Level & Blast Radius**: {Risk if assumption fails}
|
|
80
|
+
- **Ratification Plan**: {Trigger, date, or test to ratify as Accepted or Rejected}
|
|
77
81
|
- **Alternatives Considered**:
|
|
78
82
|
- *Option 1*: {Pros / Cons}
|
|
79
83
|
- *Option 2*: {Pros / Cons}
|
|
@@ -82,6 +86,7 @@ Allocate the next sequential ID (`ADR-001`, `ADR-002`, ...) and create `devflow/
|
|
|
82
86
|
- *Trade-offs / Risks*: {Costs, constraints, or follow-ups}
|
|
83
87
|
```
|
|
84
88
|
|
|
89
|
+
|
|
85
90
|
---
|
|
86
91
|
|
|
87
92
|
## 4. Closing & Handoff
|
|
@@ -26,7 +26,7 @@ When invoked:
|
|
|
26
26
|
3. Allocate the next sequential ID (e.g. `IDEA-001`, `IDEA-002`).
|
|
27
27
|
|
|
28
28
|
### 2. AI Feasibility & Value Analysis
|
|
29
|
-
Evaluate the user's raw idea and generate an enriched entry
|
|
29
|
+
Evaluate the user's raw idea and generate an enriched entry:
|
|
30
30
|
- **Raw Idea**: The user's input description
|
|
31
31
|
- **AI Feasibility & Tech**: Feasibility rating (Easy / Medium / Complex) along with recommended libraries, APIs, or architectural approaches
|
|
32
32
|
- **Value & Potential**: Business value, user benefits, and strategic impact
|
|
@@ -37,17 +37,17 @@ Insert the new idea block directly under `## 📌 Pending Ideas` in `devflow/ide
|
|
|
37
37
|
|
|
38
38
|
```markdown
|
|
39
39
|
### [IDEA-001] {Brief idea title}
|
|
40
|
-
-
|
|
41
|
-
-
|
|
40
|
+
- **Recorded Date**: {YYYY-MM-DD}
|
|
41
|
+
- **Original Idea**: {User's raw idea text}
|
|
42
42
|
- **AI Feasibility & Tech**: {Feasibility and tooling analysis}
|
|
43
43
|
- **Value & Potential**: {Value and impact analysis}
|
|
44
|
-
- **Quick Seed
|
|
44
|
+
- **Quick Seed**:
|
|
45
45
|
1. {Key point 1}
|
|
46
46
|
2. {Key point 2}
|
|
47
|
-
-
|
|
47
|
+
- **Status**: `Pending` (Ready for pickup via `/feature IDEA-001` or `/discovery IDEA-001`)
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
*(If placeholder `*(
|
|
50
|
+
*(If placeholder `*(No pending ideas...)*` exists, remove it upon recording the first idea)*
|
|
51
51
|
|
|
52
52
|
### 4. Output Summary
|
|
53
53
|
Report to the user:
|
|
@@ -93,7 +93,12 @@ feature was started earlier and interrupted (often a cleared context). The spec
|
|
|
93
93
|
its ticked steps are files, so pick up where it left off: read which steps are done,
|
|
94
94
|
check the git branch and `git status`/log to see what is committed and what is still
|
|
95
95
|
in the working tree, then continue from the **first unchecked step** instead of
|
|
96
|
-
|
|
96
|
+
### Step 0 - Mechanical Input Coverage Pre-flight Gate
|
|
97
|
+
|
|
98
|
+
Before touching code or executing build tasks, perform a positive **Input Coverage Test** against the active Living Spec:
|
|
99
|
+
- Enumerate every value, state, or data field this implementation must produce, compute, or display (from the acceptance criteria and spec design).
|
|
100
|
+
- For each required value, verify that the spec explicitly names where it comes from (e.g. database schema/column, API request parameter, calculated derivation from a named source, or explicit prior architectural decision).
|
|
101
|
+
- **Anti-Hallucination Guard**: Any required value with no named source is an **Owed Decision**. Do NOT rationalize it as "just wiring" and do NOT silently invent an ad-hoc provider, schema field, or business rule. Stop and route to `/grill` or request user clarification before proceeding.
|
|
97
102
|
|
|
98
103
|
## Step 1 - branch
|
|
99
104
|
|
|
@@ -111,10 +116,13 @@ When implementing a rollback task, follow the exact safety procedure in `referen
|
|
|
111
116
|
Work in small reviewable diffs, keeping progress in the selected spec.
|
|
112
117
|
|
|
113
118
|
1. For logic or behavior changes with the test gate on, use Red-Green-Refactor: write a focused failing test, confirm the assertion fails for the missing behavior, implement the smallest change, then refactor with affected tests green. Preserve the user's existing work. Consult [TDD anti-patterns](tdd-anti-patterns.md) when test design needs it.
|
|
119
|
+
- **Proportional Engineering**: Add an abstraction, dependency, service, configuration surface, compatibility layer, or security mechanism only when the approved spec or an established repository requirement needs it now. Prefer existing code, standard library, and native platform features.
|
|
114
120
|
2. Match the step's done-when and run focused checks. Documentation or formatting-only edits use structural checks and review; they do not require artificial unit tests. Capture relevant runtime or browser proof for behavioral criteria, following the selected Check policy.
|
|
115
121
|
3. Fix failures caused by the change and rerun affected checks without requesting authorization again. Broaden verification when dependencies, failures, or risk justify it.
|
|
116
122
|
4. Record the diff summary and evidence. Mark a step complete once its done-when passes and any configured per-step review has been approved. A repaired finding becomes `fixed` with resolution evidence; only a subsequent audit can close it. Apply the review cadence above before proceeding.
|
|
117
123
|
|
|
124
|
+
Run a proportionality check before final verification: every new abstraction, dependency, service, configuration surface, compatibility layer, and security mechanism must trace to the approved spec or an established repository requirement. Remove speculative machinery this work added without weakening real trust-boundary validation, data-loss prevention, accessibility, or configured verification.
|
|
125
|
+
|
|
118
126
|
At the final handoff, run the exact documented Verify command and all required gates. If there is no Verify command, use the project's declared build and test commands. Reuse a passing result for unchanged inputs within this pass; rerun affected gates after subsequent edits. Do not add tests or tools just to inflate the verification matrix.
|
|
119
127
|
|
|
120
128
|
### Ticket execution
|
|
@@ -87,6 +87,32 @@ When generating or logging test runs during `/implement` or `/check`:
|
|
|
87
87
|
|
|
88
88
|
---
|
|
89
89
|
|
|
90
|
+
## 7. 5-Tier Test File Classification Strategy
|
|
91
|
+
|
|
92
|
+
Do not write identical test patterns for all file types. Classify files into 5 distinct tiers:
|
|
93
|
+
|
|
94
|
+
| Tier | Category / File Paths | Recommended Test Strategy | What NOT to do |
|
|
95
|
+
| :--- | :--- | :--- | :--- |
|
|
96
|
+
| 🧠 **Tier 1** | **Pure Logic & Algorithms**<br>`src/utils/`, `src/services/`, `lib/` | Fast in-memory Unit Tests with 100% boundary & edge cases coverage. Use TDD (Red-Green-Refactor). | Do not over-mock pure mathematical or transformation functions. |
|
|
97
|
+
| 🎨 **Tier 2** | **UI Components**<br>`src/components/`, `src/pages/` | Component rendering, event dispatching, visual verification via Playwright / BrowserOS Neo. | **Prohibited**: Do not write trivial unit tests that merely assert static HTML tags exist. |
|
|
98
|
+
| 🔌 **Tier 3** | **API & Data Integration**<br>`src/api/`, route handlers, DB models | Contract tests, schema validation (Zod), HTTP status codes, error payload shapes. | Do not test external third-party network APIs without isolated fakes. |
|
|
99
|
+
| ⚙️ **Tier 4** | **Config & Build Tooling**<br>`*.json`, `*.yaml`, `scripts/` | Static contract validation (`npm run check:static`), budget linters (`npm run check:budgets`), smoke tests. | Do not skip static validation on build tool modifications. |
|
|
100
|
+
| 📝 **Tier 5** | **Documentation & Prose**<br>`*.md`, `devflow/docs/` | Structural checks, markdown contract scans, and link integrity verification. | Do not write artificial unit test suites for documentation files. |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 8. Acceptance Criteria (`AC-N`) Traceability Protocol
|
|
105
|
+
|
|
106
|
+
To guarantee 100% spec fidelity, every automated test suite must trace back to the active Living Spec:
|
|
107
|
+
- **Test Title Tagging**: Prefix test titles or describe blocks with the target Acceptance Criterion:
|
|
108
|
+
```typescript
|
|
109
|
+
it('AC-1: enforces 32KB byte budget on SKILL.md files', async () => { ... });
|
|
110
|
+
it('AC-2: returns exit code 1 when budget violation occurs', async () => { ... });
|
|
111
|
+
```
|
|
112
|
+
- **Traceability Verification**: During `/check`, cross-reference every `- [ ] AC-N` against the passing test assertion name to ensure zero untracked requirements.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
90
116
|
## Relationship To DevFlow 2.6.x
|
|
91
117
|
|
|
92
118
|
- **Classification**: Companion command & Engineering standard
|
|
@@ -300,8 +300,10 @@ expectations. Apply only the selected lens or lenses:
|
|
|
300
300
|
- *Question Intent & Simpler Alternatives*: State what the change actually attempts in one sentence. Ask: is there a simpler, smaller, or more elegant way to achieve the same goal (reusing existing code, config vs code, solving at a different layer)?
|
|
301
301
|
- *Full Call-Path Tracing*: Follow the call graph through real code paths (entry point → call sites → branches taken → state mutated → exit/side effect), including unchanged code on either side of the diff where bugs hide.
|
|
302
302
|
- *Verify Claims & Edge Cases*: Does the traced path actually produce the claimed behavior? What inputs/states would break it (concurrency, retries, null/unicode/huge payloads, ordering)? What does it silently change?
|
|
303
|
+
- *Assumed Decision Debt Check*: Scan `devflow/decisions/` for any ADR with `Status: Assumed`. Flag unratified assumptions as `Q-xxx` (P2) to ensure ratification before production handoff.
|
|
303
304
|
- *No Rubber-Stamping*: "LGTM" is prohibited. State what was traced, what was verified, and what evidence supports the verdict.
|
|
304
305
|
|
|
306
|
+
|
|
305
307
|
Do not nitpick harmless style differences unless they signal drift from the local
|
|
306
308
|
patterns. Prefer a short list of real findings over a broad list of guesses.
|
|
307
309
|
|
|
@@ -319,7 +321,8 @@ Maintain the durable record in `devflow/context/{xxx-slug}/findings.md` (or `dev
|
|
|
319
321
|
3. Set severity honestly:
|
|
320
322
|
- `P0`: critical blocking bug, data corruption, severe vulnerability, complete outage.
|
|
321
323
|
- `P1`: serious defect, missing critical test, unhandled core error.
|
|
322
|
-
- `P2`: moderate debt, performance degradation, missing edge cases.
|
|
324
|
+
- `P2`: moderate debt, performance degradation, missing edge cases, or pure proportionality finding.
|
|
323
325
|
- `P3`: minor improvement, code cleanup, cosmetic tweak.
|
|
326
|
+
*(For a proportionality finding, state in Suggested fix what can be deleted. An otherwise pure proportionality finding is P2 or P3. Raise to P0/P1 only when the unnecessary machinery causes a concrete reachable defect or violates an established security or data-integrity boundary.)*
|
|
324
327
|
4. Set status: `open`, `fixed`, `closed`, `accepted`, or `invalid`.
|
|
325
328
|
5. Display concise findings summary and next actions.
|
|
@@ -29,10 +29,11 @@ Use this when:
|
|
|
29
29
|
- Identify technical, business, or timeline constraints.
|
|
30
30
|
|
|
31
31
|
### 2. Option Formulation (Divergent Phase)
|
|
32
|
-
Provide at least 2-3 materially distinct approaches:
|
|
33
|
-
- **Option A (Standard / Conservative)**: Low risk, proven pattern, minimal changes.
|
|
34
|
-
- **Option B (Modern / Optimized)**: Best-practice architecture, balanced trade-off, scalable.
|
|
35
|
-
- **Option C (Alternative /
|
|
32
|
+
Provide at least 2-3 materially distinct approaches. Where applicable, map each option to its **Slicing Archetype** ([`devflow/reference/slicing-archetypes.md`](file:///d:/Projects/devtools/nexus-devflow/devflow/reference/slicing-archetypes.md)):
|
|
33
|
+
- **Option A (Standard / Conservative)**: Low risk, proven pattern, minimal changes (e.g. *Skateboard* or *Tracer Bullet*).
|
|
34
|
+
- **Option B (Modern / Optimized)**: Best-practice architecture, balanced trade-off, scalable (e.g. *Journey*).
|
|
35
|
+
- **Option C (Alternative / Fast-Feedback)**: High innovation, simplified scope, or UX-first (e.g. *Facade*).
|
|
36
|
+
|
|
36
37
|
|
|
37
38
|
### 3. Trade-off Comparison Matrix
|
|
38
39
|
Construct a structured evaluation table:
|
|
@@ -1,126 +1,36 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: check
|
|
3
|
-
description: "[devflow] Check the running app, CLI, or server against the active spec's done-when criteria and capture observable pass or fail evidence without editing
|
|
4
|
-
argument-hint: "[
|
|
3
|
+
description: "[devflow] Check the running app, CLI, or server against the active spec's done-when criteria and capture observable pass or fail evidence without editing source. Use /check to verify real feature behavior, or /check guide [latest|scope] for a read-only manual walkthrough: how to test manually, where to click, expected and incorrect results, or a human review path."
|
|
4
|
+
argument-hint: "[guide] [latest | <step> | <path> | <route>]"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# check -
|
|
7
|
+
# check - verify behavior or explain how to try it
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**Context reuse:** Reuse any required file already loaded in project instructions or the current session. Read it again only if absent, changed, or exact current bytes or line references are needed.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
publish `running` to `devflow/.state/run.json` using the dashboard activity
|
|
13
|
-
contract in `AGENTS.md`.
|
|
14
|
-
|
|
15
|
-
Where this sits in the workflow:
|
|
16
|
-
|
|
17
|
-
/implement -> [check] -> /complete
|
|
18
|
-
(built a (dual-axis (only once both
|
|
19
|
-
step or review with axes pass with
|
|
20
|
-
the feature) empirical proof) evidence)
|
|
21
|
-
|
|
22
|
-
`/implement` builds and does a quick build-plus-screenshot check inline. `/check` is the rigorous, repeatable gate for when a feature or step needs **empirical proof** on the running app and **two-axis code review** before merging.
|
|
23
|
-
|
|
24
|
-
It changes no source and commits nothing — it executes, inspects, and reports observed facts.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Input
|
|
29
|
-
|
|
30
|
-
- **Given an ID or name** (e.g. `/check 12`, `/check 012`) -> targets `devflow/context/{xxx-slug}/` and records audit ledger to `{xxx-slug}/findings.md`.
|
|
31
|
-
- **With no argument** (`/check`) -> verifies the active run matching current git branch or single active spec.
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Hybrid Browser Verification Engine
|
|
36
|
-
|
|
37
|
-
Nexus-DevFlow uses a **Dual-Layer Browser Verification Hierarchy**:
|
|
38
|
-
|
|
39
|
-
```text
|
|
40
|
-
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
41
|
-
│ 🌐 Hybrid Browser Verification Engine │
|
|
42
|
-
├──────────────────────────────────────┬──────────────────────────────────────┤
|
|
43
|
-
│ 1. Code-Driven Test Automation (CI) │ 2. Interactive AI Visual QA (MCP) │
|
|
44
|
-
│ • Framework: Playwright │ • Server: MCP browseros-neo │
|
|
45
|
-
│ • Command: npm run test:browser │ • URL: http://127.0.0.1:9010/mcp │
|
|
46
|
-
│ • Purpose: Assertions, Headless, │ • Purpose: Live DOM Inspection, │
|
|
47
|
-
│ Regression Suite & Pre-commit │ Real Screenshot Proofs, /try │
|
|
48
|
-
└──────────────────────────────────────┴──────────────────────────────────────┘
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
1. **Layer 1: Code-Driven Repeatable Tests (Playwright)**:
|
|
52
|
-
- If `AGENTS.md` declares `Browser tests: <command>`, run that exact command as repeatable automated evidence.
|
|
53
|
-
2. **Layer 2: Interactive AI Visual QA (MCP browseros-neo)**:
|
|
54
|
-
- When the `browseros-neo` MCP server (`http://127.0.0.1:9010/mcp`) is active, use it to inspect the live running app, verify rendered CSS/layout, test click flows, and capture actual screenshot proofs.
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Step 1 - Build the Dual-Axis Review Matrix
|
|
11
|
+
## Select the mode before any tool call
|
|
59
12
|
|
|
60
|
-
|
|
13
|
+
- `/check guide` or `$check guide`: generate a read-only manual walkthrough.
|
|
14
|
+
Pass remaining arguments such as `latest`, a step, a path, route, or command
|
|
15
|
+
to `reference/guide.md`. Read and follow that reference only. Do not write
|
|
16
|
+
activity state, run checks or the app, edit files, update spec status, or
|
|
17
|
+
produce verification receipts.
|
|
18
|
+
- A natural-language request for instructions on how the user can manually test
|
|
19
|
+
or review a change also selects guide mode. If the request mixes a guide with
|
|
20
|
+
agent verification, clarify which mode to run first before any activity.
|
|
21
|
+
- `/check` or `$check`, optionally with a verification scope: verify observed
|
|
22
|
+
behavior against the spec. Follow verification startup below, then read and
|
|
23
|
+
follow `reference/verify.md` only.
|
|
61
24
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
2. **Axis 2 (Spec Fidelity & Behavioral Observables)**:
|
|
68
|
-
- Line-by-line Acceptance Criteria (ACs) and "Done When" observables from `devflow/context/{xxx-slug}/spec.md`
|
|
69
|
-
- Scope Creep detection (Unrequested behavior in the diff)
|
|
70
|
-
- Missing Requirements detection (Unimplemented edge cases)
|
|
25
|
+
Load only the selected reference. Do not read both references preemptively.
|
|
26
|
+
Guide generation never satisfies a verification gate. The existing
|
|
27
|
+
`qualityGates.regular.tryGuide` and `qualityGates.continuous.tryGuide` keys now
|
|
28
|
+
select `/check guide`; their policy values and automatic invocation rules are
|
|
29
|
+
unchanged. The separate `check` gates continue to select verification mode.
|
|
71
30
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
## Step 2 - Get the App Running & Exercise Live Proof
|
|
75
|
-
|
|
76
|
-
Use the project's real commands (from `AGENTS.md`):
|
|
77
|
-
|
|
78
|
-
- **Web app**: Start (or reuse) the local dev server. Drive a real browser to relevant routes. If `Browser tests: <command>` is declared, run it. When MCP `browseros-neo` is active, connect to inspect live visual state.
|
|
79
|
-
- **CLI**: Execute commands with representative input fixtures, asserting exit codes and output snapshots.
|
|
80
|
-
- **Server / API**: Hit endpoints with real payloads and assert on HTTP response status and bodies.
|
|
81
|
-
- **Library**: Exercise public interfaces through integration tests or sample scripts.
|
|
82
|
-
|
|
83
|
-
> [!IMPORTANT]
|
|
84
|
-
> **Evidence or it didn't happen**: Every verdict must be backed by empirical evidence (screenshot, command output, status code, response time). Never assume a pass from reading source code alone.
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Step 3 - Dual-Axis Independent Report & State Update
|
|
89
|
-
|
|
90
|
-
Format the report into two distinct, un-merged review axes:
|
|
91
|
-
|
|
92
|
-
```markdown
|
|
93
|
-
# 🔍 Verification Report: [Feature Name]
|
|
31
|
+
## Verification startup (verification mode only)
|
|
94
32
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- [pass] Automated Tests: `npm test` (All tests green)
|
|
100
|
-
- [pass] Browser Tests: `npm run test:browser` (Playwright passed)
|
|
101
|
-
- [pass] Visual Inspection: MCP browseros-neo verified UI layout & zero console errors
|
|
102
|
-
- [pass] Security & Hygiene: Zero secrets, sanitized inputs
|
|
103
|
-
- [pass] Findings Ledger: 0 blocking P0/P1 in `devflow/context/{xxx-slug}/findings.md`
|
|
104
|
-
- **Deep Modules & Architecture**:
|
|
105
|
-
- [pass] Seam Integrity: Public interfaces remain small, implementation details hidden.
|
|
106
|
-
- [pass] The Deletion Test: Complexity is concentrated inside the module, not scattered across callers.
|
|
107
|
-
- **Code Smells Assessment**:
|
|
108
|
-
- [clean] 12 Fowler Code Smells evaluated across git diff: No critical smells detected.
|
|
109
|
-
|
|
110
|
-
## 🎯 Axis 2: Spec Fidelity & Behavioral Acceptance Gate
|
|
111
|
-
|
|
112
|
-
Line-by-line verification against `devflow/context/{xxx-slug}/spec.md`:
|
|
113
|
-
- [pass] **AC-1 (<title>)**: <Observed empirical evidence / screenshot path>
|
|
114
|
-
- [pass] **AC-2 (<title>)**: <Observed empirical evidence / terminal output>
|
|
115
|
-
- [fail] **AC-3 (<title>)**: <Exact observed failure with reproduction command>
|
|
116
|
-
- [clean] **Scope Creep Check**: No unrequested features or unnecessary abstractions introduced.
|
|
117
|
-
- [clean] **Completeness Check**: 100% of spec requirements addressed.
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## 🚦 Final Routing & Verdict
|
|
122
|
-
|
|
123
|
-
- **ALL PASSED**: Both axes green. Update `stage.md` (Passed -> Ready for `/complete`).
|
|
124
|
-
- **ANY FAILURE**: Hand back to `/implement` with exact failure evidence and reproduction steps.
|
|
125
|
-
- **UNVERIFIABLE**: Clearly document the gap and residual risk. Never fabricate a pass.
|
|
126
|
-
```
|
|
33
|
+
**First action:** Before project inspection, preflight, or any other tool call,
|
|
34
|
+
publish `running` to `devflow/.state/run.json` using the dashboard activity
|
|
35
|
+
contract in `AGENTS.md`, with command `check`. This precedes reading the
|
|
36
|
+
verification reference. Guide mode must skip this startup entirely.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Check guide - manual review guide
|
|
2
|
+
|
|
3
|
+
**Context reuse:** Reuse any required file already loaded in project instructions or the current session. Read it again only if absent, changed, or exact current bytes or line references are needed.
|
|
4
|
+
|
|
5
|
+
Where this sits in the workflow:
|
|
6
|
+
|
|
7
|
+
/implement or /complete -> [check guide] -> human review
|
|
8
|
+
(work exists) (manual (where to go,
|
|
9
|
+
path) what to click)
|
|
10
|
+
|
|
11
|
+
`/check` proves behavior from the agent side. `/check guide` gives the user a practical
|
|
12
|
+
manual walkthrough: start this command, open this route, click these controls,
|
|
13
|
+
expect this result, and watch for these failure signs.
|
|
14
|
+
|
|
15
|
+
It is always read-only. Do not edit files, write activity state, update spec
|
|
16
|
+
status, run checks or the app, install dependencies, commit, merge, push, or
|
|
17
|
+
produce verification receipts. Reading files and git status is allowed. A guide
|
|
18
|
+
never counts as acceptance evidence or proof that any check passed.
|
|
19
|
+
|
|
20
|
+
The quality-gate config controls when another workflow generates this guide
|
|
21
|
+
automatically. An explicit `/check guide` or `$check guide` request always runs.
|
|
22
|
+
A generated guide never counts as evidence that the user performed the walkthrough.
|
|
23
|
+
|
|
24
|
+
## Input
|
|
25
|
+
|
|
26
|
+
Optional scope:
|
|
27
|
+
|
|
28
|
+
- no argument: use the active task spec in `devflow/context/{xxx-slug}/spec.md`
|
|
29
|
+
- `latest`: use the most recent archive under `devflow/history/features/`,
|
|
30
|
+
`devflow/history/fixes/`, or `devflow/history/rollbacks/`
|
|
31
|
+
- a step name or number: focus the guide on that current task step
|
|
32
|
+
- a path, route, or command: include it as the main thing to try
|
|
33
|
+
|
|
34
|
+
If there is no active feature and no useful archive, ask what change the user
|
|
35
|
+
wants to try instead of guessing.
|
|
36
|
+
|
|
37
|
+
## Step 1 - find the work to explain
|
|
38
|
+
|
|
39
|
+
Read:
|
|
40
|
+
|
|
41
|
+
- `AGENTS.md`
|
|
42
|
+
- `devflow/config.json`
|
|
43
|
+
- `devflow/context/{xxx-slug}/spec.md`
|
|
44
|
+
- `devflow/context/project-overview.md`
|
|
45
|
+
- `devflow/context/coding-standards.md`
|
|
46
|
+
- `devflow/build-plan.md`
|
|
47
|
+
- latest files under `devflow/history/features/`,
|
|
48
|
+
`devflow/history/fixes/`, and `devflow/history/rollbacks/`, if the current
|
|
49
|
+
feature is reset
|
|
50
|
+
- git branch and working tree status
|
|
51
|
+
|
|
52
|
+
For `latest`, use the most recent archive even when an active spec exists.
|
|
53
|
+
Otherwise prefer the active spec. If the active spec is missing, use
|
|
54
|
+
the most recent archived feature, fix, or rollback by filename or modification time and
|
|
55
|
+
say that is what you used.
|
|
56
|
+
|
|
57
|
+
Do not dump the spec. Pull out the routes, commands, UI surfaces, CLI commands,
|
|
58
|
+
API endpoints, data states, and done-whens that matter for a human trying it.
|
|
59
|
+
For a rollback, lead with the path that proves the removed behavior is gone, then
|
|
60
|
+
include one unaffected regression path from the rollback spec.
|
|
61
|
+
|
|
62
|
+
## Step 2 - identify how to run the app
|
|
63
|
+
|
|
64
|
+
Use the Commands section in `AGENTS.md`. Match the project type:
|
|
65
|
+
|
|
66
|
+
- **Web app** - dev server command, URL, and the route or screen to open.
|
|
67
|
+
- **Server/API** - server command, base URL, endpoint, method, and expected
|
|
68
|
+
response shape.
|
|
69
|
+
- **CLI** - exact command(s), arguments, and expected output.
|
|
70
|
+
- **Library** - example command, test fixture, REPL snippet, or sample call.
|
|
71
|
+
- **Hybrid app** - list the smallest set of commands needed, such as backend plus
|
|
72
|
+
web dev server.
|
|
73
|
+
|
|
74
|
+
If the app may already be running, say how to reuse it. If a command is missing
|
|
75
|
+
from `AGENTS.md`, report that as a gap rather than inventing certainty.
|
|
76
|
+
|
|
77
|
+
## Step 3 - write the manual guide
|
|
78
|
+
|
|
79
|
+
Produce a short guide with these sections:
|
|
80
|
+
|
|
81
|
+
1. **Start** - commands to run and where to run them.
|
|
82
|
+
2. **Open** - URLs, screens, tabs, API endpoints, or CLI commands.
|
|
83
|
+
3. **Do** - clicks, inputs, selections, or command arguments.
|
|
84
|
+
4. **Expect** - visible result, output, response, state change, file, or lack of
|
|
85
|
+
error.
|
|
86
|
+
5. **Watch For** - common wrong outcomes, console or network errors, stale data,
|
|
87
|
+
missing fields, bad empty states, layout issues, or safety warnings.
|
|
88
|
+
|
|
89
|
+
Keep it concrete. Prefer:
|
|
90
|
+
|
|
91
|
+
Open http://127.0.0.1:7788/api/snapshot
|
|
92
|
+
Expect a JSON object with `generated_at`, `services`, `projects`, and
|
|
93
|
+
`conflicts`.
|
|
94
|
+
|
|
95
|
+
Avoid:
|
|
96
|
+
|
|
97
|
+
Check that the snapshot works.
|
|
98
|
+
|
|
99
|
+
## Step 4 - include confidence and gaps
|
|
100
|
+
|
|
101
|
+
End with:
|
|
102
|
+
|
|
103
|
+
- **Best signal** - the one thing the user should try first.
|
|
104
|
+
- **Optional deeper checks** - only if useful.
|
|
105
|
+
- **Gaps** - anything the guide cannot know from the docs, such as missing route
|
|
106
|
+
names, seed data, credentials, or external services.
|
|
107
|
+
|
|
108
|
+
If the feature is not user-visible, say so and provide the closest manual signal,
|
|
109
|
+
such as an API response, CLI output, log line, or unit test command.
|
|
110
|
+
|
|
111
|
+
## Rules
|
|
112
|
+
|
|
113
|
+
- Read-only only. Do not edit, commit, merge, push, install, or delete.
|
|
114
|
+
- Do not run the app or verification commands in guide mode. If the user asks
|
|
115
|
+
you to try it for them, leave guide mode and explicitly route to `/check`
|
|
116
|
+
verification, following its activity and authorization rules.
|
|
117
|
+
- Do not pretend a path is known when the spec does not say it. Give the best
|
|
118
|
+
likely path and label uncertainty.
|
|
119
|
+
- Keep the guide short enough to follow while the app is open.
|
|
120
|
+
- Match the project's commands from `AGENTS.md`.
|
|
121
|
+
|
|
122
|
+
## Formatting
|
|
123
|
+
|
|
124
|
+
Format the output to match the project's conventions in
|
|
125
|
+
`devflow/context/ai-interaction.md`: concise, scannable markdown, with numbered
|
|
126
|
+
steps for the manual path and short bullets for warnings.
|