@jakkrichm/create-nexus-devflow 2.17.8 → 2.18.0
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 +9 -10
- package/dist/bin/create-nexus-devflow.js +52 -80
- package/dist/bin/create-nexus-devflow.js.map +1 -1
- package/dist/lib/doctor.js +0 -27
- 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 +1 -0
- package/dist/lib/tooling/commands/scan-doc-contract.js.map +1 -1
- package/dist/lib/ui.d.ts +0 -23
- package/dist/lib/ui.js +0 -85
- package/dist/lib/ui.js.map +1 -1
- package/dist/lib/update.d.ts +6 -1
- package/dist/lib/update.js +78 -7
- package/dist/lib/update.js.map +1 -1
- package/dist/scripts/prepare-template.js +7 -3
- package/dist/scripts/prepare-template.js.map +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/audit/SKILL.md +1 -4
- package/template/.agents/skills/brainstorm/SKILL.md +4 -5
- package/template/.agents/skills/bughunter/SKILL.md +1 -1
- package/template/.agents/skills/check/SKILL.md +116 -26
- package/template/.agents/skills/check/reference/guide.md +17 -53
- package/template/.agents/skills/ci/SKILL.md +13 -35
- package/template/.agents/skills/complete/SKILL.md +0 -2
- package/template/.agents/skills/devflow/SKILL.md +2 -3
- package/template/.agents/skills/discovery/SKILL.md +0 -9
- package/template/.agents/skills/doctor/SKILL.md +6 -6
- package/template/.agents/skills/feature/SKILL.md +1 -4
- package/template/.agents/skills/feature/reference/feature-spec-template.md +16 -16
- package/template/.agents/skills/fix/SKILL.md +3 -3
- package/template/.agents/skills/grill/SKILL.md +1 -6
- package/template/.agents/skills/idea/SKILL.md +6 -6
- package/template/.agents/skills/implement/SKILL.md +119 -45
- package/template/.agents/skills/setup-tests/reference/browser.md +95 -0
- package/template/.agents/skills/test/SKILL.md +0 -26
- package/template/.claude/skills/audit/SKILL.md +1 -4
- package/template/.claude/skills/brainstorm/SKILL.md +4 -5
- package/template/.claude/skills/bughunter/SKILL.md +1 -1
- package/template/.claude/skills/check/SKILL.md +116 -26
- package/template/.claude/skills/check/reference/guide.md +17 -53
- package/template/.claude/skills/ci/SKILL.md +13 -35
- package/template/.claude/skills/complete/SKILL.md +0 -2
- package/template/.claude/skills/devflow/SKILL.md +2 -3
- package/template/.claude/skills/discovery/SKILL.md +3 -11
- package/template/.claude/skills/doctor/SKILL.md +6 -6
- package/template/.claude/skills/feature/SKILL.md +1 -4
- package/template/.claude/skills/feature/reference/feature-spec-template.md +16 -16
- package/template/.claude/skills/fix/SKILL.md +3 -3
- package/template/.claude/skills/grill/SKILL.md +1 -6
- package/template/.claude/skills/idea/SKILL.md +6 -6
- package/template/.claude/skills/implement/SKILL.md +119 -45
- package/template/.claude/skills/setup-tests/reference/browser.md +95 -0
- package/template/.claude/skills/test/SKILL.md +0 -26
- package/template/AGENTS.md +39 -17
- package/template/devflow/build-plan.md +1 -1
- package/template/devflow/context/ai-interaction.md +14 -15
- package/template/devflow/context/coding-standards.md +19 -68
- package/template/devflow/context/glossary.md +6 -26
- package/template/devflow/decisions/README.md +1 -15
- package/template/devflow/docs/USAGE.md +194 -0
- package/template/devflow/docs/diagrams/nexus-devflow-architecture.html +14821 -0
- package/template/devflow/docs/diagrams/nexus-devflow-architecture.json +80 -0
- package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.html +14860 -0
- package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.json +88 -0
- package/template/devflow/docs/examples/living-spec/adr.example.md +43 -0
- package/template/devflow/docs/examples/living-spec/current-feature.example.md +113 -0
- package/template/devflow/docs/examples/living-spec/discovery.example.md +45 -0
- package/template/devflow/docs/examples/living-spec/ideas.example.md +22 -0
- package/template/devflow/docs/governance-rules.md +39 -0
- package/template/devflow/docs/manual-review-workflow-spec.md +116 -0
- package/template/devflow/docs/markdown-metadata-contract.md +140 -0
- package/template/devflow/docs/quickstart.md +124 -0
- package/template/devflow/docs/release-process.md +52 -0
- package/template/devflow/docs/skill-selection-policy.md +64 -0
- package/template/devflow/docs/workflow-surface-map.md +85 -0
- package/template/devflow/reference/feature-spec-template.md +79 -59
- package/template/devflow/runs/.gitkeep +1 -0
- package/template/.agents/skills/check/reference/verify.md +0 -129
- package/template/.agents/skills/explore/SKILL.md +0 -78
- package/template/.claude/skills/check/reference/verify.md +0 -129
- package/template/.claude/skills/explore/SKILL.md +0 -78
- package/template/devflow/reference/help-playbook-protocol.md +0 -33
- package/template/devflow/reference/slicing-archetypes.md +0 -105
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Browser test setup
|
|
2
|
+
|
|
3
|
+
This is an explicit optional setup command. It creates a project-owned browser
|
|
4
|
+
test path that later Feature, Implement, Check, and Continuous runs can reuse. It
|
|
5
|
+
does not replace live browser inspection, install during another workflow
|
|
6
|
+
command, or make browser testing mandatory for every DevFlow project.
|
|
7
|
+
|
|
8
|
+
> 💡 **Nexus-DevFlow Superpower**:
|
|
9
|
+
> Nexus-DevFlow also provides the dedicated first-class skill **`/browser-tests`** which natively connects with Playwright test harnesses and the user's MCP `browseros-neo` (live real-browser inspection). Both paths are fully supported under DevFlow Dual Compatibility.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
|
|
13
|
+
This reference is selected by `/setup-tests browser`, `/tests browser`, or an explicit request to set up
|
|
14
|
+
browser or end-to-end testing. A named runner, browser, application surface, or
|
|
15
|
+
flow is a preference to verify against the real project.
|
|
16
|
+
|
|
17
|
+
## Step 1 - inspect the project
|
|
18
|
+
|
|
19
|
+
Read enough files to identify the actual browser surface and existing setup:
|
|
20
|
+
|
|
21
|
+
- `AGENTS.md`, especially Commands and any Verify command
|
|
22
|
+
- package or language manifests, lockfiles, workspaces, and runtime versions
|
|
23
|
+
- existing browser, integration, and end-to-end test configs and files
|
|
24
|
+
- build, dev, preview, extension-build, and test commands
|
|
25
|
+
- relevant CI workflows and ignore rules
|
|
26
|
+
- `devflow/context/coding-standards.md`
|
|
27
|
+
- Git branch and worktree state
|
|
28
|
+
|
|
29
|
+
Do not assume Node.js, npm, a web server, or a blank test setup. Do not install
|
|
30
|
+
dependencies or edit files during inspection.
|
|
31
|
+
|
|
32
|
+
## Step 2 - choose the smallest useful harness
|
|
33
|
+
|
|
34
|
+
Reuse a working browser runner already established by the project. For a
|
|
35
|
+
compatible JavaScript or TypeScript web app or browser extension with no runner,
|
|
36
|
+
prefer Playwright Test. If the stack or executable surface is unclear, stop and
|
|
37
|
+
ask instead of inventing a framework.
|
|
38
|
+
|
|
39
|
+
Choose one representative smoke path through a real project surface. It must
|
|
40
|
+
prove the harness can launch the app and observe behavior, not merely assert that
|
|
41
|
+
a static fixture exists. Keep authentication state, profiles, secrets, generated
|
|
42
|
+
reports, traces, videos, and screenshots out of Git unless the project already
|
|
43
|
+
has a deliberate safe convention.
|
|
44
|
+
|
|
45
|
+
## Step 3 - present the setup
|
|
46
|
+
|
|
47
|
+
Before editing, state:
|
|
48
|
+
|
|
49
|
+
- runner selected or reused
|
|
50
|
+
- exact dependency install command, when needed
|
|
51
|
+
- config, script, test, and ignore files to add or change
|
|
52
|
+
- application or extension surface covered by the smoke test
|
|
53
|
+
- exact browser-test command that will be documented
|
|
54
|
+
- any server, build, authentication, or browser-chrome limitation
|
|
55
|
+
|
|
56
|
+
Dependency installation and browser-binary downloads require the user's approval
|
|
57
|
+
through the current tool's normal approval flow. Do not treat running this skill
|
|
58
|
+
as permission to change CI, download unrelated browsers, or add a broad suite.
|
|
59
|
+
|
|
60
|
+
## Step 4 - create or normalize the harness
|
|
61
|
+
|
|
62
|
+
Make the smallest practical diff:
|
|
63
|
+
|
|
64
|
+
1. Add only the required runner dependency and config.
|
|
65
|
+
2. Add one project-relevant smoke test.
|
|
66
|
+
3. Add or reuse a conventional command such as `test:browser`.
|
|
67
|
+
4. Document the exact invocation in the Commands section of `AGENTS.md` as
|
|
68
|
+
`Browser tests: <command>`. Include a working directory when a workspace
|
|
69
|
+
needs one.
|
|
70
|
+
5. Configure runner-owned server lifecycle only when the project has a safe,
|
|
71
|
+
documented command and the runner can start and stop it reliably. Do not
|
|
72
|
+
create a duplicate server when the established harness reuses one.
|
|
73
|
+
6. Ignore generated browser-test artifacts that should stay local.
|
|
74
|
+
|
|
75
|
+
Do not add browser tests to the default Verify command or GitHub workflow unless
|
|
76
|
+
the user separately asks for that slower gate or the project already requires
|
|
77
|
+
it. Preserve existing CI and existing browser coverage.
|
|
78
|
+
|
|
79
|
+
## Step 5 - verify the path
|
|
80
|
+
|
|
81
|
+
Run the documented Browser tests command. Confirm that the smoke test exercises
|
|
82
|
+
the intended real surface and that the runner exits cleanly. Inspect generated
|
|
83
|
+
console, request, trace, screenshot, or report evidence only when relevant to
|
|
84
|
+
the claim.
|
|
85
|
+
|
|
86
|
+
## Step 6 - report
|
|
87
|
+
|
|
88
|
+
Return a concise setup report:
|
|
89
|
+
|
|
90
|
+
- runner and browser surface
|
|
91
|
+
- command documented in `AGENTS.md`
|
|
92
|
+
- smoke behavior proven
|
|
93
|
+
- files added or changed
|
|
94
|
+
- verification result
|
|
95
|
+
- remaining manual or environment-specific boundary
|
|
@@ -87,32 +87,6 @@ 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
|
-
|
|
116
90
|
## Relationship To DevFlow 2.6.x
|
|
117
91
|
|
|
118
92
|
- **Classification**: Companion command & Engineering standard
|
|
@@ -300,10 +300,8 @@ 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.
|
|
304
303
|
- *No Rubber-Stamping*: "LGTM" is prohibited. State what was traced, what was verified, and what evidence supports the verdict.
|
|
305
304
|
|
|
306
|
-
|
|
307
305
|
Do not nitpick harmless style differences unless they signal drift from the local
|
|
308
306
|
patterns. Prefer a short list of real findings over a broad list of guesses.
|
|
309
307
|
|
|
@@ -321,8 +319,7 @@ Maintain the durable record in `devflow/context/{xxx-slug}/findings.md` (or `dev
|
|
|
321
319
|
3. Set severity honestly:
|
|
322
320
|
- `P0`: critical blocking bug, data corruption, severe vulnerability, complete outage.
|
|
323
321
|
- `P1`: serious defect, missing critical test, unhandled core error.
|
|
324
|
-
- `P2`: moderate debt, performance degradation, missing edge cases
|
|
322
|
+
- `P2`: moderate debt, performance degradation, missing edge cases.
|
|
325
323
|
- `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.)*
|
|
327
324
|
4. Set status: `open`, `fixed`, `closed`, `accepted`, or `invalid`.
|
|
328
325
|
5. Display concise findings summary and next actions.
|
|
@@ -29,11 +29,10 @@ 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 /
|
|
36
|
-
|
|
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 / Unconventional)**: High innovation, simplified scope, or creative alternative.
|
|
37
36
|
|
|
38
37
|
### 3. Trade-off Comparison Matrix
|
|
39
38
|
Construct a structured evaluation table:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bughunter
|
|
3
|
-
description: "[devflow]
|
|
3
|
+
description: "[devflow] Offensive security orchestrator & bug hunting guide. Indexes 83 vulnerability classes, 5-phase methodology (Think, Hunt, Perimeter, Ship), 681 disclosed HackerOne patterns, and JIT reference guides in devflow/.vendor/bughunter/. Use when running /bughunter, performing security reviews, verifying auth/injection risks in /check or /audit, or testing API endpoints for vulnerabilities."
|
|
4
4
|
argument-hint: "[{target, vuln-class, or topic}]"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,36 +1,126 @@
|
|
|
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 code. Use for /check, proving behavior before completion beyond builds and tests."
|
|
4
|
+
argument-hint: "[{run-id, number, or name}]"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# check -
|
|
7
|
+
# check - Dual-Axis Independent Verification Engine
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
$ARGUMENTS
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**First action:** Before project inspection, preflight, or any other tool call,
|
|
12
|
+
publish `running` to `devflow/.state/run.json` using the dashboard activity
|
|
13
|
+
contract in `AGENTS.md`.
|
|
12
14
|
|
|
13
|
-
|
|
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.
|
|
15
|
+
Where this sits in the workflow:
|
|
24
16
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
unchanged. The separate `check` gates continue to select verification mode.
|
|
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)
|
|
30
21
|
|
|
31
|
-
|
|
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.
|
|
32
23
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
|
59
|
+
|
|
60
|
+
Read the target spec from `devflow/context/{xxx-slug}/spec.md` and `devflow/context/coding-standards.md`. Prepare the inspection criteria across two independent axes:
|
|
61
|
+
|
|
62
|
+
1. **Axis 1 (Standards & Architecture Criteria)**:
|
|
63
|
+
- Coding conventions in `coding-standards.md`
|
|
64
|
+
- Deep Modules discipline (Small interface, deep implementation, clean seams, no leaky abstractions)
|
|
65
|
+
- Baseline 12 Fowler Code Smells (Primitive obsession, Feature envy, Shotgun surgery, Speculative generality, etc.)
|
|
66
|
+
- Multi-lane technical gates (Typecheck, test suites, zero secrets, zero P0/P1 findings)
|
|
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)
|
|
71
|
+
|
|
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]
|
|
94
|
+
|
|
95
|
+
## ⚖️ Axis 1: Standards, Architecture & Quality Gate
|
|
96
|
+
|
|
97
|
+
- **Technical Lanes**:
|
|
98
|
+
- [pass] Type Safety: `tsc --noEmit` (0 errors)
|
|
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
|
+
```
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
Where this sits in the workflow:
|
|
6
6
|
|
|
7
|
-
/implement or /complete -> [check guide] -> human review
|
|
8
|
-
(work exists) (manual
|
|
9
|
-
path) what to click)
|
|
7
|
+
/implement or /complete -> [check guide / try] -> human review
|
|
8
|
+
(work exists) (manual walkthrough) (where to go, what to click)
|
|
10
9
|
|
|
11
|
-
`/check` proves behavior from the agent side. `/check guide` gives the user a practical
|
|
10
|
+
`/check` proves behavior from the agent side. `/check guide` (and its alias `/try`) gives the user a practical
|
|
12
11
|
manual walkthrough: start this command, open this route, click these controls,
|
|
13
12
|
expect this result, and watch for these failure signs.
|
|
14
13
|
|
|
@@ -18,16 +17,15 @@ produce verification receipts. Reading files and git status is allowed. A guide
|
|
|
18
17
|
never counts as acceptance evidence or proof that any check passed.
|
|
19
18
|
|
|
20
19
|
The quality-gate config controls when another workflow generates this guide
|
|
21
|
-
automatically. An explicit `/check guide` or
|
|
20
|
+
automatically. An explicit `/check guide` or `/try` request always runs.
|
|
22
21
|
A generated guide never counts as evidence that the user performed the walkthrough.
|
|
23
22
|
|
|
24
23
|
## Input
|
|
25
24
|
|
|
26
25
|
Optional scope:
|
|
27
26
|
|
|
28
|
-
- no argument: use the active
|
|
29
|
-
- `latest`: use the most recent archive under `devflow/history/features/`,
|
|
30
|
-
`devflow/history/fixes/`, or `devflow/history/rollbacks/`
|
|
27
|
+
- no argument: use the active feature, fix, or rollback in `devflow/context/{xxx-slug}/spec.md`
|
|
28
|
+
- `latest`: use the most recent archive under `devflow/history/features/`, `devflow/history/fixes/`, or `devflow/history/rollbacks/`
|
|
31
29
|
- a step name or number: focus the guide on that current task step
|
|
32
30
|
- a path, route, or command: include it as the main thing to try
|
|
33
31
|
|
|
@@ -40,19 +38,11 @@ Read:
|
|
|
40
38
|
|
|
41
39
|
- `AGENTS.md`
|
|
42
40
|
- `devflow/config.json`
|
|
43
|
-
- `devflow/context/{xxx-slug}/spec.md`
|
|
41
|
+
- `devflow/context/{xxx-slug}/spec.md` (or latest archive)
|
|
44
42
|
- `devflow/context/project-overview.md`
|
|
45
43
|
- `devflow/context/coding-standards.md`
|
|
46
44
|
- `devflow/build-plan.md`
|
|
47
|
-
-
|
|
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.
|
|
45
|
+
- Git branch and working tree status
|
|
56
46
|
|
|
57
47
|
Do not dump the spec. Pull out the routes, commands, UI surfaces, CLI commands,
|
|
58
48
|
API endpoints, data states, and done-whens that matter for a human trying it.
|
|
@@ -64,37 +54,25 @@ include one unaffected regression path from the rollback spec.
|
|
|
64
54
|
Use the Commands section in `AGENTS.md`. Match the project type:
|
|
65
55
|
|
|
66
56
|
- **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.
|
|
57
|
+
- **Server/API** - server command, base URL, endpoint, method, and expected response shape.
|
|
69
58
|
- **CLI** - exact command(s), arguments, and expected output.
|
|
70
59
|
- **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.
|
|
60
|
+
- **Hybrid app** - list the smallest set of commands needed, such as backend plus web dev server.
|
|
73
61
|
|
|
74
62
|
If the app may already be running, say how to reuse it. If a command is missing
|
|
75
63
|
from `AGENTS.md`, report that as a gap rather than inventing certainty.
|
|
76
64
|
|
|
77
65
|
## Step 3 - write the manual guide
|
|
78
66
|
|
|
79
|
-
Produce a
|
|
67
|
+
Produce a concise guide with these 5 sections (respond in Thai per project convention):
|
|
80
68
|
|
|
81
69
|
1. **Start** - commands to run and where to run them.
|
|
82
70
|
2. **Open** - URLs, screens, tabs, API endpoints, or CLI commands.
|
|
83
71
|
3. **Do** - clicks, inputs, selections, or command arguments.
|
|
84
|
-
4. **Expect** - visible result, output, response, state change, file, or lack of
|
|
85
|
-
|
|
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`.
|
|
72
|
+
4. **Expect** - visible result, output, response, state change, file, or lack of error.
|
|
73
|
+
5. **Watch For** - common wrong outcomes, console or network errors, stale data, missing fields, bad empty states, layout issues, or safety warnings.
|
|
94
74
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
Check that the snapshot works.
|
|
75
|
+
Keep it concrete.
|
|
98
76
|
|
|
99
77
|
## Step 4 - include confidence and gaps
|
|
100
78
|
|
|
@@ -102,25 +80,11 @@ End with:
|
|
|
102
80
|
|
|
103
81
|
- **Best signal** - the one thing the user should try first.
|
|
104
82
|
- **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.
|
|
83
|
+
- **Gaps** - anything the guide cannot know from the docs, such as missing route names, seed data, credentials, or external services.
|
|
107
84
|
|
|
108
85
|
If the feature is not user-visible, say so and provide the closest manual signal,
|
|
109
86
|
such as an API response, CLI output, log line, or unit test command.
|
|
110
87
|
|
|
111
|
-
##
|
|
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
|
|
88
|
+
## Dual Compatibility with `/try`
|
|
123
89
|
|
|
124
|
-
|
|
125
|
-
`devflow/context/ai-interaction.md`: concise, scannable markdown, with numbered
|
|
126
|
-
steps for the manual path and short bullets for warnings.
|
|
90
|
+
In Nexus-DevFlow, `/try` and `/check guide` serve the same user purpose and can be used interchangeably.
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ci
|
|
3
|
-
description: "[devflow] Set up or normalize one project Verify command and matching GitHub Actions checks while preserving existing CI
|
|
4
|
-
argument-hint: "[--hook | --no-hook]"
|
|
3
|
+
description: "[devflow] Set up or normalize one project Verify command and matching GitHub Actions checks while preserving existing CI. Use for /ci, GitHub Actions setup, pull-request checks, automatic checks, or aligning verification."
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# ci - set up automatic GitHub checks
|
|
8
7
|
|
|
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
|
-
|
|
11
8
|
**First action:** Before project inspection, preflight, or any other tool call,
|
|
12
9
|
publish `running` to `devflow/.state/run.json` using the dashboard activity
|
|
13
10
|
contract in `AGENTS.md`.
|
|
@@ -18,7 +15,7 @@ Where this sits in the workflow:
|
|
|
18
15
|
(project commands) (setup) (same recipe) (pull requests)
|
|
19
16
|
|
|
20
17
|
This skill gives local work and GitHub one shared automated command. It is an
|
|
21
|
-
optional setup task, not a requirement for using
|
|
18
|
+
optional setup task, not a requirement for using the Blueprint.
|
|
22
19
|
|
|
23
20
|
Keep the beginner explanation simple:
|
|
24
21
|
|
|
@@ -26,12 +23,9 @@ Keep the beginner explanation simple:
|
|
|
26
23
|
- **GitHub Actions is the worker.** It runs the same recipe automatically.
|
|
27
24
|
- **A GitHub ruleset is the lock.** That optional remote setting can require the
|
|
28
25
|
worker to report green before merge.
|
|
29
|
-
- **A pre-push hook is the early warning.** That optional local setting runs the
|
|
30
|
-
recipe before a push leaves the machine. It is a convenience, not the lock:
|
|
31
|
-
`git push --no-verify` skips it.
|
|
32
26
|
|
|
33
|
-
This skill configures the recipe and worker
|
|
34
|
-
|
|
27
|
+
This skill configures the recipe and worker. It never changes the remote ruleset,
|
|
28
|
+
pushes, publishes, deploys, or adds local git hooks.
|
|
35
29
|
|
|
36
30
|
## Input
|
|
37
31
|
|
|
@@ -53,7 +47,7 @@ Read enough to identify the real project setup:
|
|
|
53
47
|
- `.github/workflows/` and any documented external CI
|
|
54
48
|
- git's current branch, configured default branch, and remotes when available
|
|
55
49
|
|
|
56
|
-
Do not assume npm, Node.js, `main`, or GitHub from the
|
|
50
|
+
Do not assume npm, Node.js, `main`, or GitHub from the Blueprint template. Do not
|
|
57
51
|
run installs or edit files during inspection.
|
|
58
52
|
|
|
59
53
|
If an existing workflow already provides equivalent pull-request checks, explain
|
|
@@ -119,26 +113,11 @@ After the workflow exists, ask one question and default to no:
|
|
|
119
113
|
|
|
120
114
|
Also add a local pre-push hook that runs Verify before every push? [y/N]
|
|
121
115
|
|
|
122
|
-
Skip the question when the request already answered it (for example "/ci with
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
the exact `Verify` command from `AGENTS.md` with `exec`, so the command's
|
|
128
|
-
exit code is the hook's exit code.
|
|
129
|
-
2. Point git at the folder: `git config core.hooksPath .githooks`.
|
|
130
|
-
3. For JavaScript and TypeScript projects, add a `prepare` script,
|
|
131
|
-
`git config core.hooksPath .githooks 2>/dev/null || true`, so a fresh
|
|
132
|
-
install wires the hook without a manual step. The `|| true` keeps installs
|
|
133
|
-
working where no git checkout exists, such as a deploy build. For other
|
|
134
|
-
stacks, document the `git config` line in the README instead.
|
|
135
|
-
4. Run the hook once (`.githooks/pre-push`). If it fails, remove what this
|
|
136
|
-
step added and report the failing subcommand. Never leave a hook the
|
|
137
|
-
project cannot pass.
|
|
138
|
-
|
|
139
|
-
The hook and the workflow run the same `Verify` command; if one changes, the
|
|
140
|
-
other changes with it. Say in the report that `--no-verify` bypasses the hook,
|
|
141
|
-
so the GitHub ruleset remains the lock.
|
|
116
|
+
Skip the question when the request already answered it (for example "/ci with hook" or "no hook"). When the answer is no, write nothing and move on. When it is yes:
|
|
117
|
+
|
|
118
|
+
1. Use `npx nexus-devflow hook install pre-push` or configure `.githooks/pre-push` running the exact `Verify` command with `git config core.hooksPath .githooks`.
|
|
119
|
+
2. Run the hook once to verify it passes cleanly. If it fails, revert the hook setup and report the failure. Never leave a hook the project cannot pass.
|
|
120
|
+
3. Note that `git push --no-verify` bypasses the hook if an emergency push is ever needed.
|
|
142
121
|
|
|
143
122
|
## Step 4 - prove the setup locally
|
|
144
123
|
|
|
@@ -167,7 +146,6 @@ Finish with a concise setup report:
|
|
|
167
146
|
- checks included and checks omitted
|
|
168
147
|
- test gate status
|
|
169
148
|
- workflow path and triggers
|
|
170
|
-
- whether a pre-push hook was added, and that `--no-verify` bypasses it
|
|
171
149
|
- local Verify result and whether CI is only prepared locally or confirmed by a
|
|
172
150
|
successful GitHub run
|
|
173
151
|
- files changed
|
|
@@ -179,7 +157,7 @@ part of this skill.
|
|
|
179
157
|
|
|
180
158
|
## Interaction with other skills
|
|
181
159
|
|
|
182
|
-
- `/
|
|
160
|
+
- `/tests` adds the real test command to an existing Verify command, but never
|
|
183
161
|
creates CI by itself.
|
|
184
162
|
- `/implement`, `/complete`, and `/autopilot` run Verify when it is documented,
|
|
185
163
|
with their existing fallback behavior when it is absent.
|
|
@@ -190,8 +168,8 @@ part of this skill.
|
|
|
190
168
|
|
|
191
169
|
- Preserve existing CI and custom checks.
|
|
192
170
|
- Never invent tests or install a runner as part of CI setup.
|
|
193
|
-
- Never add coverage, browser tests, security scans, or matrices by
|
|
194
|
-
|
|
171
|
+
- Never add git hooks, coverage, browser tests, security scans, or matrices by
|
|
172
|
+
default.
|
|
195
173
|
- Never push or change a remote ruleset without separate explicit approval.
|
|
196
174
|
- Keep one exact Verify command shared by local work and GitHub.
|
|
197
175
|
|
|
@@ -106,8 +106,6 @@ Before logging or committing, run a short safety pass and report blockers only:
|
|
|
106
106
|
- no P0 or P1 finding in `devflow/context/{xxx-slug}/findings.md` is `open` or `fixed`.
|
|
107
107
|
`fixed` still blocks on purpose: the repair exists but no review has looked at
|
|
108
108
|
it - run `/audit` to close it. The only waivers are `accepted` or `invalid`.
|
|
109
|
-
- any `Status: Assumed` ADR in `devflow/decisions/` has been surfaced with its ratification plan noted.
|
|
110
|
-
|
|
111
109
|
|
|
112
110
|
Do not claim "passed", "verified", or "working" without naming the command,
|
|
113
111
|
route, screenshot, or output that proves it. Stop before Step 1 if required
|
|
@@ -36,8 +36,7 @@ When invoked without an argument (or when determining the next step), inspect:
|
|
|
36
36
|
|
|
37
37
|
### Default State Recommendations
|
|
38
38
|
- If no run is active and user wants to start a feature -> Recommend `/feature <name>`.
|
|
39
|
-
- If
|
|
40
|
-
- If the user requests a completed fix -> preserve the implementation and verification scope; draft the required spec internally and continue to `/implement` using existing authorization.
|
|
39
|
+
- If no run is active and user wants to fix a bug -> Recommend `/fix <bug>`.
|
|
41
40
|
- If no run is active and user has pending ideas in `devflow/ideas.md` -> Highlight `/feature IDEA-xxx` or `/discovery IDEA-xxx`.
|
|
42
41
|
- If no run is active and user wants deep architectural exploration -> Recommend `/discovery`.
|
|
43
42
|
- If user asks to check system health -> Recommend `doctor`.
|
|
@@ -49,7 +48,7 @@ When invoked without an argument (or when determining the next step), inspect:
|
|
|
49
48
|
| User Intent / Request Type | Recommended Skill | Normal Name / Alias | Lifecycle Path |
|
|
50
49
|
| :--- | :--- | :--- | :--- |
|
|
51
50
|
| **"Spec new feature / living spec"** | `feature` | `/feature` / `/spec` | **Unified**: `/feature` -> `/implement` -> `/check` -> `/complete` |
|
|
52
|
-
| **"
|
|
51
|
+
| **"Quick bugfix / ad-hoc change"** | `fix` | `/fix` | **Unified**: `/fix` -> `/implement` -> `/check` -> `/complete` |
|
|
53
52
|
| **"Capture quick idea / thought"** | `idea` | `/idea` | **Companion**: Enriches & saves to `devflow/ideas.md` |
|
|
54
53
|
| **"Pre-delivery exploration / research"**| `discovery`| `/discovery` | **Pre-Flight**: `discovery` -> `/feature` |
|
|
55
54
|
| **"Socratic alignment / ADR / glossary"**| `grill` | `/grill` / `/align` | **Pre-Flight**: `grill` -> `/feature` |
|
|
@@ -77,18 +77,10 @@ devflow/discoveries/{DISCOVERY_ID}-{slug}/discovery.md
|
|
|
77
77
|
- Codebase-grounded interactive inquiry to clarify entity boundaries, data flows, and edge cases.
|
|
78
78
|
- Record agreed terminology in `devflow/context/glossary.md` and major architecture decisions in `devflow/decisions/ADR-xxx-{slug}.md`.
|
|
79
79
|
6. **🎨 Visual Architecture & Diagram Design Lens (`archify` / `diagram-design`)**:
|
|
80
|
-
- When exploring system topologies, legacy IT modernizations, sequence flows, data platform pipelines, state machines, or user journeys, check for `archify` or `diagram-design` in `.
|
|
81
|
-
- **For interactive system architecture, dataflows, state transitions, and sequence traces**: Use `archify` (`.
|
|
82
|
-
- **For editorial, business, quadrant, or broad diagram types**: Use `diagram-design` (`.
|
|
80
|
+
- When exploring system topologies, legacy IT modernizations, sequence flows, data platform pipelines, state machines, or user journeys, check for `archify` or `diagram-design` in `.agents/skills/`.
|
|
81
|
+
- **For interactive system architecture, dataflows, state transitions, and sequence traces**: Use `archify` (`.agents/skills/archify/SKILL.md`) to compile validated interactive HTML artifacts with dark/light themes, motion, and route probes.
|
|
82
|
+
- **For editorial, business, quadrant, or broad diagram types**: Use `diagram-design` (`.agents/skills/diagram-design/SKILL.md`).
|
|
83
83
|
- Save diagram artifacts to `devflow/discoveries/{DISCOVERY_ID}-{slug}/diagrams/{name}.html` and reference them directly in `discovery.md`.
|
|
84
|
-
7. **🧩 Slicing & Decomposition Lens (4 Slicing Archetypes)**:
|
|
85
|
-
- When breaking down a large initiative into sub-features or milestones, evaluate against [`devflow/reference/slicing-archetypes.md`](file:///d:/Projects/devtools/nexus-devflow/devflow/reference/slicing-archetypes.md):
|
|
86
|
-
- **Skateboard**: Minimal functional loop (prove core logic end-to-end with minimal UI).
|
|
87
|
-
- **Facade**: Rich UI/DX with mock backend (validate user flow & interaction first).
|
|
88
|
-
- **Tracer Bullet**: Deep vertical slice across all layers (DB -> API -> UI) for 1 happy path.
|
|
89
|
-
- **Journey**: Slice along natural user workflow milestones.
|
|
90
|
-
- Recommend the primary Archetype for each proposed sub-feature in `discovery.md`.
|
|
91
|
-
|
|
92
84
|
|
|
93
85
|
### Decision & Approval Gate:
|
|
94
86
|
Set one visible decision:
|