@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.
Files changed (67) hide show
  1. package/README.md +8 -8
  2. package/dist/lib/doctor.js +27 -0
  3. package/dist/lib/doctor.js.map +1 -1
  4. package/dist/lib/history.js +2 -2
  5. package/dist/lib/history.js.map +1 -1
  6. package/dist/lib/skill-registry-engine.js +3 -3
  7. package/dist/lib/skill-registry-engine.js.map +1 -1
  8. package/dist/lib/tooling/commands/scan-doc-contract.js +0 -1
  9. package/dist/lib/tooling/commands/scan-doc-contract.js.map +1 -1
  10. package/dist/scripts/prepare-template.js +1 -1
  11. package/dist/scripts/prepare-template.js.map +1 -1
  12. package/package.json +1 -1
  13. package/template/.agents/skills/audit/SKILL.md +4 -1
  14. package/template/.agents/skills/brainstorm/SKILL.md +5 -4
  15. package/template/.agents/skills/check/SKILL.md +26 -116
  16. package/template/.agents/skills/check/reference/guide.md +126 -0
  17. package/template/.agents/skills/check/reference/verify.md +129 -0
  18. package/template/.agents/skills/ci/SKILL.md +42 -8
  19. package/template/.agents/skills/complete/SKILL.md +2 -0
  20. package/template/.agents/skills/discovery/SKILL.md +9 -0
  21. package/template/.agents/skills/doctor/SKILL.md +6 -0
  22. package/template/.agents/skills/explore/SKILL.md +78 -0
  23. package/template/.agents/skills/feature/SKILL.md +4 -1
  24. package/template/.agents/skills/feature/reference/feature-spec-template.md +16 -16
  25. package/template/.agents/skills/grill/SKILL.md +6 -1
  26. package/template/.agents/skills/idea/SKILL.md +6 -6
  27. package/template/.agents/skills/implement/SKILL.md +9 -1
  28. package/template/.agents/skills/test/SKILL.md +26 -0
  29. package/template/.claude/skills/audit/SKILL.md +4 -1
  30. package/template/.claude/skills/brainstorm/SKILL.md +5 -4
  31. package/template/.claude/skills/check/SKILL.md +26 -116
  32. package/template/.claude/skills/check/reference/guide.md +126 -0
  33. package/template/.claude/skills/check/reference/verify.md +129 -0
  34. package/template/.claude/skills/ci/SKILL.md +42 -8
  35. package/template/.claude/skills/complete/SKILL.md +2 -0
  36. package/template/.claude/skills/discovery/SKILL.md +11 -3
  37. package/template/.claude/skills/doctor/SKILL.md +6 -0
  38. package/template/.claude/skills/explore/SKILL.md +78 -0
  39. package/template/.claude/skills/feature/SKILL.md +4 -1
  40. package/template/.claude/skills/feature/reference/feature-spec-template.md +16 -16
  41. package/template/.claude/skills/grill/SKILL.md +6 -1
  42. package/template/.claude/skills/idea/SKILL.md +6 -6
  43. package/template/.claude/skills/implement/SKILL.md +9 -1
  44. package/template/.claude/skills/test/SKILL.md +26 -0
  45. package/template/AGENTS.md +12 -1
  46. package/template/devflow/context/coding-standards.md +62 -2
  47. package/template/devflow/context/glossary.md +20 -0
  48. package/template/devflow/decisions/README.md +15 -1
  49. package/template/devflow/reference/feature-spec-template.md +59 -79
  50. package/template/devflow/reference/help-playbook-protocol.md +8 -8
  51. package/template/devflow/reference/slicing-archetypes.md +105 -0
  52. package/template/devflow/docs/USAGE.md +0 -194
  53. package/template/devflow/docs/diagrams/nexus-devflow-architecture.html +0 -14821
  54. package/template/devflow/docs/diagrams/nexus-devflow-architecture.json +0 -80
  55. package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.html +0 -14860
  56. package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.json +0 -88
  57. package/template/devflow/docs/examples/living-spec/adr.example.md +0 -43
  58. package/template/devflow/docs/examples/living-spec/current-feature.example.md +0 -113
  59. package/template/devflow/docs/examples/living-spec/discovery.example.md +0 -45
  60. package/template/devflow/docs/examples/living-spec/ideas.example.md +0 -22
  61. package/template/devflow/docs/governance-rules.md +0 -39
  62. package/template/devflow/docs/manual-review-workflow-spec.md +0 -116
  63. package/template/devflow/docs/markdown-metadata-contract.md +0 -140
  64. package/template/devflow/docs/quickstart.md +0 -124
  65. package/template/devflow/docs/release-process.md +0 -52
  66. package/template/devflow/docs/skill-selection-policy.md +0 -64
  67. package/template/devflow/docs/workflow-surface-map.md +0 -85
@@ -0,0 +1,129 @@
1
+ # Check verification
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
+ Verification activity was started by the dispatcher before loading this reference.
6
+
7
+ Where this sits in the workflow:
8
+
9
+ /implement -> [check] -> /complete
10
+ (built a (run the app, (only once the
11
+ step or prove each done-whens are
12
+ the feature) done-when) proven)
13
+
14
+ `/implement` builds and does a quick build-plus-screenshot check inline. `/check`
15
+ is the deeper, repeatable gate for when a "done when" needs the *real running app*,
16
+ not just a green build: a click that triggers a download, a route that returns a
17
+ file, a flow across screens. Run it on a single step whose done-when is
18
+ behavioral, or on the whole feature as the acceptance check before `/complete`.
19
+
20
+ The point is evidence. A passing build proves the code compiles; `/check` proves
21
+ the thing the spec promised actually happens. It changes no source and commits
22
+ nothing - it runs the app and reports what it saw.
23
+
24
+ ## Input
25
+
26
+ Optional: a specific thing to check (a step, a flow, a URL). With no argument,
27
+ verify the whole current feature against every "done when" in
28
+ `devflow/context/{xxx-slug}/spec.md`.
29
+
30
+ ## Step 1 - build the checklist
31
+
32
+ Read `devflow/config.json` first. A missing file means the built-in defaults
33
+ apply. If the file exists but is invalid, stop and point the user to `/doctor`.
34
+ Configuration never grants permission to start a server or take any other action
35
+ that the project instructions or user have not authorized.
36
+ The quality-gate config controls automatic invocation only. An explicit `/check`
37
+ or `$check` request always runs.
38
+
39
+ Read `devflow/context/{xxx-slug}/spec.md`. Pull the observable "done when"
40
+ criteria from the build steps (and any acceptance notes in the Testing section).
41
+ Turn them into a concrete checklist of claims to prove - each one a specific,
42
+ observable behavior, not "it works". If the user named one thing, scope to that.
43
+
44
+ If there's no active feature spec, ask what to verify rather than guessing.
45
+
46
+ ## Step 2 - get the app running
47
+
48
+ Use the project's real commands (see Commands in `AGENTS.md`). Match the project
49
+ type:
50
+
51
+ - **Web app** - start (or reuse) the dev/preview server, then drive a real browser
52
+ to the relevant routes. Prefer reusing an already-running server over starting a
53
+ duplicate. If `AGENTS.md` declares `Browser tests: <command>`, run that exact
54
+ command as repeatable evidence and use its harness for covered interactions.
55
+ Reuse runner-owned server lifecycle instead of starting a duplicate. A green
56
+ suite is one evidence source, not proof of claims it does not observe. If no
57
+ command is declared but Playwright is already installed, prefer it for browser
58
+ driving, screenshots, console errors, and failed request checks. Never install
59
+ it from `/check`; use another real-browser evidence path and report what you
60
+ used, or point to `/browser-tests` for later optional setup.
61
+ - **CLI** - run the actual command(s) with representative inputs.
62
+ - **Server/API** - start it and hit the endpoints.
63
+ - **Library** - exercise the public API through an example or the test command.
64
+
65
+ If a `test` command is declared in `AGENTS.md`, you may run it as *one* input, but
66
+ `/check` is broader than unit tests: it checks real behavior, which is exactly the
67
+ evidence UI and integration steps ride on instead of unit tests.
68
+
69
+ ## Step 3 - exercise each claim
70
+
71
+ Drive the app to each checklist item and capture evidence as you go:
72
+
73
+ - Navigate and interact for real (click, type, submit, download) - don't assert
74
+ from the code what the running app would do.
75
+ - Capture **screenshots** for visual/UI claims, **output** for CLI/API claims.
76
+ - Watch for **console errors and failed network requests**; a clean-looking screen
77
+ with errors in the console is not a pass.
78
+
79
+ With `verification.uiEvidence: "required"`, every UI claim needs direct browser
80
+ evidence, including a screenshot and the relevant console and network check. If
81
+ that evidence path is unavailable, mark the claim unverifiable instead of
82
+ passing it from build output. With `when-available`, use the strongest available
83
+ evidence and report any gap plainly.
84
+
85
+ ### AC-to-Test Traceability Verification:
86
+ Cross-reference each Acceptance Criterion (`- [ ] **AC-N**`) in `spec.md` against the test suite's executed assertions and observable evidence:
87
+ - Match tagged test cases (e.g. `it('AC-1: ...')`) to their respective criteria.
88
+ - Ensure 100% of defined acceptance criteria have empirical proof before issuing a `verified` status.
89
+
90
+
91
+ ## Step 4 - report
92
+
93
+ Give a short, honest verdict, one line per checklist item:
94
+
95
+ [pass] Download PDF saves certificate-<slug>.pdf - file downloaded, opened to the cert
96
+ [pass] Both buttons show a loading state - screenshot: loading-state.png
97
+ [fail] PDF border missing - printBackground not set; screenshot: pdf-no-border.png
98
+ [skip] Vercel render - can't verify locally (feature 9)
99
+
100
+ Then state the bottom line: are all the feature's done-whens proven, or not yet.
101
+
102
+ - All proven -> update only the `**Status:**` line in
103
+ `devflow/context/{xxx-slug}/spec.md` to `verified`, then say it is ready for
104
+ `/complete`.
105
+ - Anything failed -> update only that status line to `verification failed`, then
106
+ hand back to `/implement`; name what to fix. Do not fix it here.
107
+ - Anything unverifiable -> update only that status line to `verification
108
+ incomplete`, then say why; never report it as a pass.
109
+
110
+ The status-line update is generated workflow state, not a product-source edit.
111
+ Do not change the spec, checkboxes, findings, or product files from `/check`.
112
+
113
+ ## Rules
114
+
115
+ - **Observe product behavior, don't repair it.** `/check` changes only the
116
+ current spec's status line as described above. It never edits product source,
117
+ commits, or merges. Fixing is `/implement`'s job.
118
+ - **Evidence or it didn't happen.** Every `pass` is backed by something observed -
119
+ a screenshot, output, a response. No assumed passes from reading the code.
120
+ - **Honest over green.** "Couldn't verify" and "failed" are valid, useful results.
121
+ Faking a pass defeats the entire gate.
122
+ - **Check the spec, not vibes.** Verify against the done-whens in
123
+ `spec.md`, so "works" means what the spec said it would do.
124
+
125
+ ## Formatting
126
+
127
+ Format the output to match the project's conventions in
128
+ `devflow/context/ai-interaction.md`: concise, scannable markdown, with lists for
129
+ enumerations and tables for matrices rather than dense paragraphs.
@@ -1,10 +1,13 @@
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. Use for /ci, GitHub Actions setup, pull-request checks, automatic checks, or aligning verification."
3
+ description: "[devflow] Set up or normalize one project Verify command and matching GitHub Actions checks while preserving existing CI, with an optional local pre-push hook. Use for /ci, GitHub Actions setup, pull-request checks, automatic checks, pre-push hooks, or aligning verification."
4
+ argument-hint: "[--hook | --no-hook]"
4
5
  ---
5
6
 
6
7
  # ci - set up automatic GitHub checks
7
8
 
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
+
8
11
  **First action:** Before project inspection, preflight, or any other tool call,
9
12
  publish `running` to `devflow/.state/run.json` using the dashboard activity
10
13
  contract in `AGENTS.md`.
@@ -15,7 +18,7 @@ Where this sits in the workflow:
15
18
  (project commands) (setup) (same recipe) (pull requests)
16
19
 
17
20
  This skill gives local work and GitHub one shared automated command. It is an
18
- optional setup task, not a requirement for using the Blueprint.
21
+ optional setup task, not a requirement for using DevFlow.
19
22
 
20
23
  Keep the beginner explanation simple:
21
24
 
@@ -23,9 +26,12 @@ Keep the beginner explanation simple:
23
26
  - **GitHub Actions is the worker.** It runs the same recipe automatically.
24
27
  - **A GitHub ruleset is the lock.** That optional remote setting can require the
25
28
  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.
26
32
 
27
- This skill configures the recipe and worker. It never changes the remote ruleset,
28
- pushes, publishes, deploys, or adds local git hooks.
33
+ This skill configures the recipe and worker, and adds the hook only when the
34
+ user opts in. It never changes the remote ruleset, pushes, publishes, or deploys.
29
35
 
30
36
  ## Input
31
37
 
@@ -47,7 +53,7 @@ Read enough to identify the real project setup:
47
53
  - `.github/workflows/` and any documented external CI
48
54
  - git's current branch, configured default branch, and remotes when available
49
55
 
50
- Do not assume npm, Node.js, `main`, or GitHub from the Blueprint template. Do not
56
+ Do not assume npm, Node.js, `main`, or GitHub from the DevFlow template. Do not
51
57
  run installs or edit files during inspection.
52
58
 
53
59
  If an existing workflow already provides equivalent pull-request checks, explain
@@ -107,6 +113,33 @@ before writing the push trigger instead of guessing. Preserve all other workflow
107
113
  files. When another workflow overlaps, report the overlap and ask whether to
108
114
  reuse, align, or leave it alone.
109
115
 
116
+ ## Step 3b - offer a local pre-push hook (opt-in)
117
+
118
+ After the workflow exists, ask one question and default to no:
119
+
120
+ Also add a local pre-push hook that runs Verify before every push? [y/N]
121
+
122
+ Skip the question when the request already answered it (for example "/ci with
123
+ hook" or "no hook"). When the answer is no, write nothing and move on. When it
124
+ is yes:
125
+
126
+ 1. Write `.githooks/pre-push` (mode 755) that announces itself and then runs
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.
142
+
110
143
  ## Step 4 - prove the setup locally
111
144
 
112
145
  Run the exact documented `Verify` command locally. The individual build, test,
@@ -134,6 +167,7 @@ Finish with a concise setup report:
134
167
  - checks included and checks omitted
135
168
  - test gate status
136
169
  - workflow path and triggers
170
+ - whether a pre-push hook was added, and that `--no-verify` bypasses it
137
171
  - local Verify result and whether CI is only prepared locally or confirmed by a
138
172
  successful GitHub run
139
173
  - files changed
@@ -145,7 +179,7 @@ part of this skill.
145
179
 
146
180
  ## Interaction with other skills
147
181
 
148
- - `/tests` adds the real test command to an existing Verify command, but never
182
+ - `/setup-tests` or `/test` adds the real test command to an existing Verify command, but never
149
183
  creates CI by itself.
150
184
  - `/implement`, `/complete`, and `/autopilot` run Verify when it is documented,
151
185
  with their existing fallback behavior when it is absent.
@@ -156,8 +190,8 @@ part of this skill.
156
190
 
157
191
  - Preserve existing CI and custom checks.
158
192
  - Never invent tests or install a runner as part of CI setup.
159
- - Never add git hooks, coverage, browser tests, security scans, or matrices by
160
- default.
193
+ - Never add coverage, browser tests, security scans, or matrices by default.
194
+ - Add a git hook only through the Step 3b opt-in, never silently.
161
195
  - Never push or change a remote ruleset without separate explicit approval.
162
196
  - Keep one exact Verify command shared by local work and GitHub.
163
197
 
@@ -106,6 +106,8 @@ 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
+
109
111
 
110
112
  Do not claim "passed", "verified", or "working" without naming the command,
111
113
  route, screenshot, or output that proves it. Stop before Step 1 if required
@@ -77,10 +77,18 @@ 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 `.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`).
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 `.claude/skills/`.
81
+ - **For interactive system architecture, dataflows, state transitions, and sequence traces**: Use `archify` (`.claude/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` (`.claude/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
+
84
92
 
85
93
  ### Decision & Approval Gate:
86
94
  Set one visible decision:
@@ -100,6 +100,10 @@ Gather these, then summarize. Do not dump file contents.
100
100
  report it as an obsolete installer artifact. Its absence is healthy. An
101
101
  unchanged managed copy can be removed by the updater; a modified copy needs
102
102
  user review.
103
+ - Check whether `AGENTS.md` contains substantive proportional-engineering
104
+ guidance (`## Proportional engineering` or equivalent rules). Warn if
105
+ missing, explaining that updates preserve this file and provide manual repair
106
+ guidance.
103
107
  - Check whether `AGENTS.md` has a `## Commands` section with dev and build
104
108
  commands.
105
109
  - Report missing lint or test commands as informational unless the project has
@@ -160,6 +164,8 @@ Gather these, then summarize. Do not dump file contents.
160
164
  last commit subject, and whether the branch is ahead of upstream.
161
165
  - If the directory is not a git repo, report that as a setup issue and keep
162
166
  going.
167
+ 9. **Token Economics & Session Cost Audit**
168
+ - When session transcript is available, report token efficiency, cache hit rate, and estimated model costs using `npm run analyze:tokens` or `scripts/analyze-token-usage.ts`.
163
169
 
164
170
  ## Output
165
171
 
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: explore
3
+ description: "[devflow] Explore an idea against the actual codebase without changing files. Investigate whether a change would help, compare alternatives and tradeoffs, and discuss uncertainty before deciding whether to plan anything. Use for /explore, considering an idea, or weighing options without writing a spec."
4
+ argument-hint: "[<idea or question>]"
5
+ ---
6
+
7
+ # explore - investigate an idea before deciding to build
8
+
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
+ Explore is a read-only conversation grounded in the actual project. It can help
12
+ with questions such as whether caching would help a dashboard, whether teams
13
+ belong in the product, or which upload approach fits existing code.
14
+
15
+ No plans or active feature are required. Do not require `/overview`, invent a
16
+ plan, or treat missing DevFlow context as a blocker to discussing the idea.
17
+ This command never writes activity state, including `devflow/.state/run.json`.
18
+
19
+ ## Start from the question
20
+
21
+ Use the supplied topic or relevant conversation context. With neither, ask what
22
+ the user wants to investigate. For a vague idea, state a tentative interpretation
23
+ and ask a focused question only when its answer changes the investigation.
24
+
25
+ Reuse context already loaded in the session. Read relevant project instructions,
26
+ code, tests as text, manifests, and existing plans when they help answer the
27
+ question. Follow the actual implementation far enough to support your claims;
28
+ point to concrete files or symbols. Avoid scanning unrelated parts of the repo.
29
+ Read-only Git inspection can establish what exists or is already in progress.
30
+
31
+ Authoritative documentation lookup is appropriate when technical uncertainty
32
+ needs it. Distinguish documented facts from what this project actually uses.
33
+ Missing code or evidence is an uncertainty to explain, not permission to execute
34
+ an experiment or to invent current behavior.
35
+
36
+ ## Discuss the options
37
+
38
+ Keep the conversation proportional to the question. Compare plausible options
39
+ against the user's needs and existing project constraints. Include doing nothing
40
+ when the current behavior may already be sufficient. Do not invent scale,
41
+ security requirements, or new abstractions to justify a change.
42
+
43
+ Explain the strongest case against your recommendation and how confident you
44
+ are. Separate observed facts, assumptions, and unanswered questions. Say what
45
+ evidence could change the recommendation without gathering it through execution.
46
+ An unresolved question or a recommendation to leave the project alone is a valid
47
+ outcome.
48
+
49
+ Use a small diagram in the response when it makes a relationship or tradeoff
50
+ clearer. Do not create diagram files. There is no mandatory output template,
51
+ report, question count, or next-step checklist. Follow the user's responses and
52
+ let the discussion continue as long as useful.
53
+
54
+ ## Keep the boundaries clear
55
+
56
+ - Never create, edit, or delete files, including specs, plans, notes, generated
57
+ output, and activity state. Do not save the conversation into the project.
58
+ - Never install dependencies, execute product code, run tests or builds, start
59
+ servers, perform browser interactions, or call state-changing tools. Read
60
+ source and existing evidence instead of testing a hypothesis by execution.
61
+ - Never create or switch branches, commit, merge, push, publish, or deploy.
62
+ - Never turn a request to discuss an idea into approval to plan or implement it.
63
+ If the user asks for changes, explain the appropriate handoff and keep this
64
+ Explore invocation read-only. Do not invoke another command automatically.
65
+
66
+ ## Neighbors and handoff
67
+
68
+ - `/brief` explains an existing build-plan item, its scope, dependencies, and
69
+ size. Explore can discuss an unplanned idea or question a planned approach.
70
+ - `/discovery` develops broader product direction and reviewed planning drafts.
71
+ Explore does not draft either planning file.
72
+ - `/debug` reproduces and isolates an actual failure. Explore discusses options
73
+ without executing code to diagnose or verify them.
74
+ - `/feature` writes a buildable spec; `/fix` specifies a confirmed small change.
75
+ Suggest the appropriate command only when the user is ready to proceed.
76
+
77
+ Do not force a handoff at the end of every response. Keep discussing the idea
78
+ when that is what the user wants, and leave the project unchanged.
@@ -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. {ขอบเขตการทำงานข้อที่ 1}
21
- 2. {ขอบเขตการทำงานข้อที่ 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**: {เกณฑ์การตรวจรับข้อที่ 1}
28
- - [ ] **AC-2**: {เกณฑ์การตรวจรับข้อที่ 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**: {เหตุผลความจำเป็นในการเขียน Unit Tests / TDD}
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: {หัวข้องานที่ 1}**
50
- - [ ] 1.1 `[TDD-Red]`: {เขียน Test เคสล้มเหลว}
51
- - [ ] 1.2 `[TDD-Green]`: {เขียนโค้ดขั้นต่ำเพื่อให้ Test ผ่าน}
52
- - [ ] 1.3 `[TDD-Refactor]`: {Refactor และตรวจให้ 100% Tests Green}
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: {หัวข้องานที่ 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**: ตรวจสอบ `findings.md` สะอาด 100%
68
+ - **Findings Ledger**: Verify `findings.md` is 100% clean
69
69
 
70
70
  ### 🎯 Axis 2: Spec Fidelity & Behavioral Acceptance Gate
71
- - [ ] **AC-1**: {หลักฐานการผ่านเกณฑ์ข้อที่ 1}
72
- - [ ] **AC-2**: {หลักฐานการผ่านเกณฑ์ข้อที่ 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 in Thai (`th` per user communication rules):
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
- - **บันทึกเมื่อ**: {YYYY-MM-DD}
41
- - **ไอเดียตั้งต้น**: {User's raw idea text}
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
- - **สถานะ**: `Pending` (Ready for pickup via `/feature IDEA-001` or `/discovery IDEA-001`)
47
+ - **Status**: `Pending` (Ready for pickup via `/feature IDEA-001` or `/discovery IDEA-001`)
48
48
  ```
49
49
 
50
- *(If placeholder `*(ยังไม่มีไอเดียค้างอยู่...)*` exists, remove it upon recording the first idea)*
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
- starting over.
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
@@ -28,6 +28,17 @@ Explicit user scope takes precedence over skill guidance, within runtime permiss
28
28
 
29
29
  Use focused checks during edits, and run the documented required gates before handoff. Repeat passing checks only after relevant changes, failures, or unresolved concerns. Apply TDD to logic and behavior changes; documentation-only edits need appropriate structural or review evidence.
30
30
 
31
+ ## Proportional engineering
32
+
33
+ Build for established requirements, not hypothetical scale, threats, or future flexibility. Reuse existing code, the standard library, native platform features, and installed dependencies before adding machinery.
34
+
35
+ - Unknown scale or extensibility defaults to the smaller reversible design. Do not infer enterprise, multi-tenant, hostile-user, or compliance requirements.
36
+ - Derive trust and data-integrity boundaries from actual reachability: untrusted input, auth/session/ownership, shared persisted data, destructive operations, payments, secrets, and sensitive data.
37
+ - Ask only when an unknown materially changes behavior, architecture, persisted data, interoperability, a real security boundary, or cost. Otherwise choose the simplest repository-native implementation.
38
+ - Add an abstraction, dependency, service, configuration surface, compatibility layer, or security mechanism only for a current requirement.
39
+ - Simplicity never removes real trust-boundary validation, data-loss prevention, accessibility, explicit security requirements, configured tests, or project rules.
40
+ - Stack-specific template standards apply only when the project uses that stack.
41
+
31
42
  ## Project configuration
32
43
 
33
44
  `devflow/config.json` is the user-owned, machine-readable workflow policy for this project. Workflow skills read the relevant settings before acting. A missing file means built-in defaults. An invalid file falls back to defaults for read-only status reporting, but mutating workflow commands stop and point to `/doctor` instead of guessing.
@@ -50,7 +61,7 @@ Unused adapter families can be removed. Codex, Antigravity, GitHub Copilot, and
50
61
 
51
62
  ### Universal Invocation & Agent Directives:
52
63
 
53
- 1. **Canonical Command Names & AI Provider Invocation**: Each workflow stage and companion tool has exactly **one Canonical Name** (e.g. `feature`, `fix`, `implement`, `check`, `complete`, `continuous`, `analyze`, `discovery`, `idea`, `grill`, `brainstorm`, `bughunter`, `devflow`, `doctor`, `overview`, `debug`, `onboard`, `adopt`, `try`, `rollback`, `ci`, `test`, `setup-tests`, `browser-tests`, `autopilot`, `prototype`, `report-html`, `brief`, `audit`, `release`, `convert-any-to-md`, `publish-devflow`, `vendor`). The way you invoke commands depends on your AI Provider / Tool:
64
+ 1. **Canonical Command Names & AI Provider Invocation**: Each workflow stage and companion tool has exactly **one Canonical Name** (e.g. `feature`, `fix`, `implement`, `check`, `complete`, `continuous`, `analyze`, `discovery`, `explore`, `idea`, `grill`, `brainstorm`, `bughunter`, `devflow`, `doctor`, `overview`, `debug`, `onboard`, `adopt`, `try`, `rollback`, `ci`, `test`, `setup-tests`, `browser-tests`, `autopilot`, `prototype`, `report-html`, `brief`, `audit`, `release`, `convert-any-to-md`, `publish-devflow`, `vendor`). The way you invoke commands depends on your AI Provider / Tool:
54
65
  - **Canonical Name (Plain text)**: Directly invoke or prompt the command by its standard name (e.g., `feature`, `implement`, `continuous`, `devflow`, `discovery`, `analyze`).
55
66
  - **Slash Prefix (`/`)**: For tools supporting slash commands (Claude Code, Google Antigravity, Gemini CLI), e.g., `/feature`, `/fix`, `/implement`, `/continuous`, `/devflow`, `/discovery`, `/analyze`.
56
67
  - **Dollar Prefix (`$`)**: For OpenAI Codex CLI or skill-invocation tools, e.g., `$feature`, `$fix`, `$continuous`, `$devflow`, `$discovery`, `$analyze`.