@jakkrichm/create-nexus-devflow 2.2.2 → 2.5.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.
Files changed (52) hide show
  1. package/dist/bin/create-nexus-devflow.js +9 -1
  2. package/dist/bin/create-nexus-devflow.js.map +1 -1
  3. package/dist/lib/command-catalog.js +1 -1
  4. package/dist/lib/command-catalog.js.map +1 -1
  5. package/dist/lib/dashboard-page.d.ts +1 -1
  6. package/dist/lib/dashboard-page.js +42 -20
  7. package/dist/lib/dashboard-page.js.map +1 -1
  8. package/dist/lib/dashboard-snapshot.js +16 -12
  9. package/dist/lib/dashboard-snapshot.js.map +1 -1
  10. package/dist/lib/dashboard.js +10 -1
  11. package/dist/lib/dashboard.js.map +1 -1
  12. package/dist/lib/doctor.js +1 -1
  13. package/dist/lib/gatekeeper.d.ts +4 -0
  14. package/dist/lib/gatekeeper.js +2 -2
  15. package/dist/lib/gatekeeper.js.map +1 -1
  16. package/dist/lib/git-status.d.ts +10 -2
  17. package/dist/lib/git-status.js +57 -29
  18. package/dist/lib/git-status.js.map +1 -1
  19. package/dist/lib/swarm-orchestrator.d.ts +4 -1
  20. package/dist/lib/swarm-orchestrator.js +2 -2
  21. package/dist/lib/swarm-orchestrator.js.map +1 -1
  22. package/dist/lib/version-check.js +1 -1
  23. package/dist/lib/workflow-state.js +19 -32
  24. package/dist/lib/workflow-state.js.map +1 -1
  25. package/package.json +1 -1
  26. package/template/.agents/skills/complete/SKILL.md +47 -36
  27. package/template/.agents/skills/devflow/SKILL.md +51 -79
  28. package/template/.claude/skills/complete/SKILL.md +47 -36
  29. package/template/.claude/skills/devflow/SKILL.md +51 -79
  30. package/template/AGENTS.md +21 -30
  31. package/template/devflow/build-plan.md +9 -0
  32. package/template/devflow/context/ai-interaction.md +38 -39
  33. package/template/devflow/context/findings.md +8 -11
  34. package/template/devflow/context/glossary.md +31 -0
  35. package/template/devflow/reference/build-plan-template.md +65 -0
  36. package/template/devflow/reference/feature-spec-template.md +110 -0
  37. package/template/devflow/reference/project-plan-template.md +128 -0
  38. package/template/devflow/reference/running-id-contract.md +12 -11
  39. package/template/.agents/skills/10-define/SKILL.md +0 -54
  40. package/template/.agents/skills/20-spec/SKILL.md +0 -155
  41. package/template/.agents/skills/30-plan/SKILL.md +0 -226
  42. package/template/.agents/skills/40-execute/SKILL.md +0 -158
  43. package/template/.agents/skills/50-verify/SKILL.md +0 -62
  44. package/template/.agents/skills/60-report/SKILL.md +0 -57
  45. package/template/.agents/skills/70-deliver/SKILL.md +0 -72
  46. package/template/.claude/skills/10-define/SKILL.md +0 -54
  47. package/template/.claude/skills/20-spec/SKILL.md +0 -155
  48. package/template/.claude/skills/30-plan/SKILL.md +0 -226
  49. package/template/.claude/skills/40-execute/SKILL.md +0 -158
  50. package/template/.claude/skills/50-verify/SKILL.md +0 -62
  51. package/template/.claude/skills/60-report/SKILL.md +0 -57
  52. package/template/.claude/skills/70-deliver/SKILL.md +0 -72
@@ -8,7 +8,7 @@ async function checkPackageVersion(options) {
8
8
  return cached.value;
9
9
  const checkedAt = new Date(now()).toISOString();
10
10
  const controller = new AbortController();
11
- const timeout = setTimeout(() => controller.abort(), options.timeoutMs ?? 2500);
11
+ const timeout = setTimeout(() => controller.abort(), options.timeoutMs ?? 1000);
12
12
  let value;
13
13
  try {
14
14
  const response = await (options.fetchImpl || fetch)(`https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`, { headers: { accept: "application/json" }, signal: controller.signal });
@@ -1,16 +1,7 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  const FAST_STAGES = ["feature-fix", "implement", "check", "complete"];
4
- const DEEP_STAGES = [
5
- "discovery",
6
- "10-define",
7
- "20-spec",
8
- "30-plan",
9
- "40-execute",
10
- "50-verify",
11
- "60-report",
12
- "70-deliver"
13
- ];
4
+ const PREFLIGHT_STAGES = ["idea", "grill", "brainstorm", "discovery"];
14
5
  async function readWorkflowState(projectRoot, currentWork) {
15
6
  const stagePath = path.join(projectRoot, "devflow", "context", "current-stage.md");
16
7
  let markdown = "";
@@ -30,35 +21,30 @@ function parseWorkflowState(markdown, currentWork) {
30
21
  const rawStage = nullableField(markdown, "Current Stage");
31
22
  const lastCompletedRun = nullableField(markdown, "Last Completed Run");
32
23
  const lastUpdated = nullableField(markdown, "Last Updated");
33
- const deepStage = normalizeDeepStage(rawStage);
24
+ const preflightStage = normalizePreflightStage(rawStage);
34
25
  const fastStageFromMarkdown = normalizeFastStage(rawStage);
26
+ const isExplicitIdle = explicitTrack === "idle" || explicitTrack === "none";
27
+ const isExplicitFast = Boolean(explicitTrack?.includes("fast") || explicitTrack?.includes("living"));
28
+ const isExplicitDeep = Boolean(explicitTrack?.includes("deep") || explicitTrack?.includes("preflight") || explicitTrack?.includes("discovery"));
35
29
  let track = "idle";
36
30
  let currentStage = null;
37
- const isIdle = explicitTrack === "idle" ||
31
+ const isIdle = isExplicitIdle ||
38
32
  (rawStage === null && currentWork.state === "idle" && !activeRunId && !activeDiscoveryId);
39
33
  if (isIdle) {
40
34
  track = "idle";
41
35
  currentStage = null;
42
36
  }
43
- else if (explicitTrack === "deep") {
44
- track = "deep";
45
- currentStage = deepStage || (activeDiscoveryId ? "discovery" : "10-define");
46
- }
47
- else if (explicitTrack === "fast") {
37
+ else if (isExplicitFast || (activeRunId && currentWork.state === "active")) {
48
38
  track = "fast";
49
39
  currentStage = fastStageFromMarkdown || fastStage(currentWork);
50
40
  }
51
- else if (activeRunId && deepStage) {
52
- track = "deep";
53
- currentStage = deepStage;
54
- }
55
- else if (activeDiscoveryId) {
41
+ else if (isExplicitDeep || activeDiscoveryId) {
56
42
  track = "deep";
57
- currentStage = "discovery";
43
+ currentStage = preflightStage || "discovery";
58
44
  }
59
45
  else if (currentWork.state === "active") {
60
- track = currentWork.type === "stage" ? "deep" : "fast";
61
- currentStage = track === "deep" ? deepStage || "40-execute" : fastStageFromMarkdown || fastStage(currentWork);
46
+ track = "fast";
47
+ currentStage = fastStageFromMarkdown || fastStage(currentWork);
62
48
  }
63
49
  return {
64
50
  track,
@@ -68,7 +54,7 @@ function parseWorkflowState(markdown, currentWork) {
68
54
  lastCompletedRun,
69
55
  lastUpdated,
70
56
  fast: buildPipeline(FAST_STAGES, track === "fast" ? currentStage : null),
71
- deep: buildPipeline(DEEP_STAGES, track === "deep" ? currentStage : null)
57
+ deep: buildPipeline(PREFLIGHT_STAGES, track === "deep" ? currentStage : null)
72
58
  };
73
59
  }
74
60
  function nullableField(markdown, label) {
@@ -79,15 +65,16 @@ function nullableField(markdown, label) {
79
65
  ? null
80
66
  : value;
81
67
  }
82
- function normalizeDeepStage(value) {
68
+ function normalizePreflightStage(value) {
83
69
  if (!value)
84
70
  return null;
85
- const handoff = value.match(/(?:ready\s+for|executing)\s+(discovery|00-explore|10-define|20-spec|30-plan|40-execute|50-verify|60-report|70-deliver)/i)?.[1];
86
- const direct = value.match(/\b(discovery|00-explore|10-define|20-spec|30-plan|40-execute|50-verify|60-report|70-deliver)\b/i)?.[1];
87
- const raw = (handoff || direct || "").toLowerCase();
88
- if (raw === "00-explore")
71
+ const match = value.match(/\b(idea|grill|brainstorm|discovery|explore)\b/i)?.[1];
72
+ if (!match)
73
+ return null;
74
+ const raw = match.toLowerCase();
75
+ if (raw === "explore")
89
76
  return "discovery";
90
- return raw || null;
77
+ return raw;
91
78
  }
92
79
  function normalizeFastStage(value) {
93
80
  if (!value)
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../../lib/workflow-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../../lib/workflow-state.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakkrichm/create-nexus-devflow",
3
- "version": "2.2.2",
3
+ "version": "2.5.0",
4
4
  "description": "Installer package for Nexus-DevFlow agentic workflow layer.",
5
5
  "license": "MIT",
6
6
  "author": "Jakkrich",
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: complete
3
- description: "[devflow][F] Wrap up a finished feature, fix, or rollback. Runs a final safety pass, archives its spec to devflow/history/features/, devflow/history/fixes/, or devflow/history/rollbacks/, updates the build plan for features and rollbacks, resets devflow/context/current-feature.md to its stub, makes one work-level commit, then squash-merges the branch to main and deletes it. Merges only with explicit approval, then asks separately before pushing main. Use when the user runs /complete, or asks to finish, wrap up, merge, or close out the current feature, fix, or rollback after it is built and reviewed."
3
+ description: "[devflow][F] Wrap up a finished feature, fix, or rollback. Runs a final safety pass, archives its spec to devflow/history/features/, devflow/history/fixes/, or devflow/history/rollbacks/, updates the build plan for features and rollbacks, resets devflow/context/current-feature.md to its stub, and makes the work commit. Enforces a mandatory user gate: asks whether to squash-merge to main/master OR pull latest main/master into the feature/dev branch and push to remote for Merge Request (MR / PR) creation. Never merges into main/master without explicit user instruction."
4
4
  ---
5
5
 
6
- # complete - log the finished work, make the work commit, and merge
6
+ # complete - log the finished work, make the work commit, and deliver
7
7
 
8
8
  Where this sits in the workflow:
9
9
 
10
10
  /feature, /fix, or /rollback -> /implement -> [complete] -> next
11
- (the spec) (build it) (commit + merge + log)
11
+ (the spec) (build it) (commit + delivery gate)
12
12
 
13
13
  `/implement` built the feature, fix, or rollback on its branch, with optional per-step commit
14
14
  checkpoints. This skill closes it out: it logs the work, makes the single
15
- work-level commit, and squash-merges. Run it only when the work is done,
15
+ work-level commit, and guides the delivery through a **Mandatory User Delivery Gate**. Run it only when the work is done,
16
16
  reviewed, and the documented `Verify` command, or the fallback build and tests,
17
17
  passes.
18
18
 
@@ -22,7 +22,7 @@ Confirm the work is actually finished: `devflow/context/current-feature.md`
22
22
  holds a real spec, its steps are built on a branch, and `Verify`, or the fallback
23
23
  build and tests, passes. If any of the
24
24
  spec's done-whens are behavioral, `/check` should have proven them against the
25
- running app first - don't merge on an unverified claim. Uncommitted step work is
25
+ running app first - don't merge or complete on an unverified claim. Uncommitted step work is
26
26
  expected (per-step checkpoints are optional); this skill commits it. Don't require
27
27
  the steps to be pre-committed.
28
28
 
@@ -30,7 +30,7 @@ the steps to be pre-committed.
30
30
 
31
31
  Before logging or committing, run a short safety pass and report blockers only:
32
32
 
33
- - active spec exists and the work is not being completed from `main` or `master`
33
+ - active spec exists and the work is not being completed directly from `main` or `master`
34
34
  - changed files are tied to the active spec, with no unrelated dirty work mixed
35
35
  in (a dirty `devflow/context/findings.md` is expected, since `/audit` writes it)
36
36
  - the exact `Verify` command from `AGENTS.md` passed in this session, when one is
@@ -107,25 +107,47 @@ into the app - delete the `prototypes/` folder now. The tokens live in the real
107
107
  stylesheet and the HTML mockups were always throwaway; fold the deletion into this
108
108
  feature's commit. Skip this if the feature didn't consume prototypes.
109
109
 
110
- ## Step 2 - make the work commit
110
+ ## Step 2 - make the work commit on feature branch
111
111
 
112
112
  Stage everything on the branch (any uncommitted step work plus the Step 1 logging
113
- changes) and make one conventional work commit (for example `feat: <feature>`,
113
+ changes) and make one conventional work commit on the active branch (for example `feat: <feature>`,
114
114
  `fix: <name>`, or `revert: roll back <feature>`). `Verify`, or the fallback build
115
115
  and tests, must pass first.
116
116
 
117
- ## Step 3 - merge
117
+ ## Step 3 - Mandatory Delivery Gate (Ask User First)
118
+
119
+ > [!IMPORTANT]
120
+ > **MANDATORY USER SELECTION**: In real-world engineering teams, developers often do NOT have direct merge/push access to `main` or `master` (protected branches).
121
+ > Therefore, you **MUST STOP AND ASK** the user to choose their desired delivery flow. **NEVER automatically merge into `main` or `master` without explicit user choice.**
122
+
123
+ Present the user with two clear delivery options:
124
+
125
+ ### 🔀 Option 1: Team MR / PR Flow (Pull latest main/master & Push dev branch) [Default for Teams]
126
+ - **When to choose**: When working in a team where code reviews happen via GitLab Merge Request (MR) or GitHub Pull Request (PR), or where developers lack direct write access to protected `main`/`master` branches.
127
+ - **Execution Actions**:
128
+ 1. Detect default base branch name (`main` or `master`).
129
+ 2. Run `git pull origin <main/master>` (or `git fetch origin <main/master> && git merge origin/<main/master>`) to bring the latest upstream changes into the active feature/dev branch.
130
+ 3. If merge conflicts occur, highlight them clearly and help the user resolve them.
131
+ 4. Run `Verify` (or build & tests) to ensure integrity after the merge.
132
+ 5. Run `git push origin <current-feature-branch>` to push the up-to-date branch to the remote repository.
133
+ 6. Stop and inform the user that the branch is synchronized and pushed, ready for them to open a Merge Request (MR / PR) on GitLab/GitHub.
134
+ 7. **Do NOT merge into local `main`/`master` and do NOT delete the branch.**
135
+
136
+ ### 🔀 Option 2: Direct Local Squash-Merge (Solo / Direct Access Mode)
137
+ - **When to choose**: Only when the user explicitly instructs that they want to merge directly into `main` or `master` locally now (e.g. solo projects or Tech Leads with merge privileges).
138
+ - **Execution Actions**:
139
+ 1. Switch to `main` or `master`: `git checkout <main/master>`.
140
+ 2. Squash-merge the branch: `git merge --squash <feature-branch>`.
141
+ 3. Commit the squash-merge.
142
+ 4. Delete the local feature branch only with the user's explicit consent.
143
+ 5. **Stop and ask separately** before pushing local `main`/`master` to remote upstream. The merge approval does NOT count as push approval.
144
+ 6. Run `git push origin <main/master>` only after separate explicit confirmation.
118
145
 
119
- 1. Squash-merge the branch into main, only with the user's explicit go-ahead, so
120
- the feature lands as one clean commit regardless of how many checkpoints the
121
- branch carried.
122
- 2. Delete the branch after a clean merge.
123
- 3. Stop and ask whether to push local `main` to its upstream. The merge approval
124
- does not count as push approval.
125
- 4. Push main only after a separate explicit yes to push main in the current chat.
126
- If the repo has no remote or upstream, say so instead of guessing.
146
+ ---
147
+
148
+ ## Step 4 - Finish & Try Path
127
149
 
128
- Then point the user at `/feature`, `/fix`, or `/rollback` for the next thing.
150
+ Point the user at `/feature`, `/fix`, or `/rollback` for the next task.
129
151
 
130
152
  Finish with a concise **How to try it** note for the completed work. For a
131
153
  rollback, explain how to confirm the removed behavior is gone and name one
@@ -135,26 +157,15 @@ that command can read the archived feature after `current-feature.md` is reset.
135
157
 
136
158
  ## Rules
137
159
 
160
+ - **Mandatory User Confirmation Gate**: Always ask before choosing between Team MR/PR Push vs Direct Squash-Merge.
161
+ - **Never auto-merge into main/master**: The decision to merge into `main` or `master` belongs strictly to the user.
138
162
  - The work item is the unit of history: one squashed feature, fix, or rollback
139
- commit on main, even if the branch carried several checkpoint commits.
163
+ commit, even if the branch carried several checkpoint commits.
140
164
  - A rollback preserves the original feature archive and adds a separate rollback
141
165
  archive. Never rewrite history to make the feature look as if it never existed.
142
- - Don't merge unfinished or failing work. The documented `Verify` command, or
166
+ - Don't merge or push unfinished or failing work. The documented `Verify` command, or
143
167
  the fallback build and tests, must pass first.
144
- - Never merge while a P0 or P1 finding is `open` or `fixed` in the ledger. The
145
- recorded ways past the gate without code are `accepted` (only by the user's
146
- explicit decision, with their reason) or `invalid` (only from re-examination
147
- evidence or the user's explicit call); both travel into the archive, never a
148
- silent drop.
149
- - Merging and pushing are the user's calls: get an explicit yes for the merge,
150
- then ask whether to push main. Do not treat merge approval, `/complete`, or
151
- "looks good" as permission to push.
152
- - Push main only after a separate explicit yes to push main in the current chat.
168
+ - Never merge or push while a P0 or P1 finding is `open` or `fixed` in the ledger.
169
+ - Pushing to remote is always explicit: confirm before running `git push`.
153
170
  - One item per completion. If a parent feature still has unchecked sub-features,
154
- leave the parent unchecked.
155
-
156
- ## Formatting
157
-
158
- Format the output to match the project's conventions in
159
- `devflow/context/ai-interaction.md`: concise, scannable markdown, with lists for
160
- enumerations and tables for matrices rather than dense paragraphs.
171
+ leave the parent unchecked.
@@ -5,26 +5,19 @@ description: "[devflow][B] Flagship interactive guide, state inspector, and inte
5
5
 
6
6
  # devflow - Interactive Workflow Guide & Intent Router for Nexus-DevFlow
7
7
 
8
- ## Command Track Policy
9
- - [F] Fast-Track only
10
- - [D] Deep-Track only
11
- - [B] Available in both tracks (Track-agnostic)
12
-
13
-
14
- Use this skill to guide the user on what to do next, inspect current workspace state, map their natural language intent to the right Nexus-DevFlow track (Fast-Track or Deep-Track) or companion command, or display a sitemap of available DevFlow skills.
8
+ Use this skill to guide the user on what to do next, inspect current workspace state, map their natural language intent to the matching Nexus-DevFlow stage or companion command, or display a sitemap of available DevFlow skills.
15
9
 
16
10
  ## Input
17
11
 
18
- - **No argument (`devflow`, `devflow`, `$devflow`, or `status`)**: Inspect current workspace state (active run in `devflow/runs/` or `devflow/context/current-stage.md`, active discovery in `devflow/discoveries/`, pending ideas in `devflow/ideas.md`, open findings in `devflow/context/findings.md`, and project overview in `devflow/context/project-overview.md`) and recommend the exact next action.
19
- - **With user request (`devflow "<request>"`)**: Classify the user's intent and guide them to the matching DevFlow workflow track or companion command path.
12
+ - **No argument (`devflow`, `/devflow`, `$devflow`, or `status`)**: Inspect current workspace state (active run in `devflow/context/current-stage.md`, active living spec in `devflow/context/current-feature.md`, active discovery in `devflow/discoveries/`, pending ideas in `devflow/ideas.md`, open findings in `devflow/context/findings.md`, and project overview in `devflow/context/project-overview.md`) and recommend the exact next action.
13
+ - **With user request (`devflow "<request>"`)**: Classify the user's intent and guide them to the matching DevFlow workflow stage or companion command path.
20
14
 
21
- ## Dual-Track Architecture
15
+ ## The Unified Living Spec Architecture (DevFlow 2.5.0)
22
16
 
23
- Nexus-DevFlow supports two seamless workflow tracks:
24
- 1. **🏎️ Fast-Track (Blueprint Mode - 4 Steps)**: `/spec` ➔ `/implement` ➔ `/check` ➔ `/complete`
25
- *Driven by a **Single Living Spec (`current-feature.md`)** for fast, high-velocity daily development and bugfixes (85% of tasks).*
26
- 2. **🏗️ Deep-Track (Architect Mode - 8 Steps)**: `discovery` `10-define` `20-spec` `30-plan` `40-execute` `50-verify` ➔ `60-report` ➔ `70-deliver`
27
- *Driven by modular separate stage files for large, high-stakes architectural epics and multi-agent coordination.*
17
+ Nexus-DevFlow uses a **Single Unified Living Spec Model**:
18
+ - **The 4-Stage Lifecycle**: `/feature` (or `/fix`) ➔ `/implement` ➔ `/check` ➔ `/complete`
19
+ - Driven by a **Single Living Spec (`devflow/context/current-feature.md`)** that integrates architectural depth (Define, Spec, Plan, Execution Log, Multi-Lane QA, and Release Digest) into one clear living document.
20
+ - **Pre-Flight Inception Engine**: Companion skills (`/discovery`, `/idea`, `/grill`, `/brainstorm`) feed directly into `/feature`.
28
21
 
29
22
  ---
30
23
 
@@ -33,93 +26,72 @@ Nexus-DevFlow supports two seamless workflow tracks:
33
26
  When invoked without an argument (or when determining the next step), inspect:
34
27
 
35
28
  1. **Project Setup Baseline**: Read `devflow/context/project-overview.md` and `devflow/context/coding-standards.md`. If empty or default placeholders, recommend `onboard` (for fresh projects) or `adopt` (for existing codebases).
36
- 2. **Active Delivery Run**: Read `devflow/context/current-stage.md` and check `devflow/runs/{RUNNING_ID}/`.
37
- - **If Fast-Track (`current-feature.md`, `spec.md`, or `blueprint.md` present)**:
38
- - If `current-feature.md` (or `spec.md`) has incomplete checklist items -> Recommend `/implement` (or `implement {RUNNING_ID}`).
39
- - If all tasks done but no passing verification evidence -> Recommend `/check` (or `check {RUNNING_ID}`).
40
- - If verification evidence passed -> Recommend `/complete` (or `complete {RUNNING_ID}`).
41
- - **If Deep-Track (numbered stage files present)**:
42
- - If at `10-define.md` -> Recommend `20-spec {RUNNING_ID}`.
43
- - If at `20-spec.md` -> Recommend `30-plan {RUNNING_ID}`.
44
- - If at `30-plan.md` -> Recommend `40-execute {RUNNING_ID}`.
45
- - If at `40-execute.md` with all tasks done -> Recommend `50-verify {RUNNING_ID}`.
46
- - If passed `50-verify.md` -> Recommend `60-report {RUNNING_ID}` then `70-deliver {RUNNING_ID}`.
29
+ 2. **Active Delivery Run**: Read `devflow/context/current-stage.md` and `devflow/context/current-feature.md`.
30
+ - If `current-feature.md` has incomplete checklist tasks (`- [ ]`) -> Recommend `/implement`.
31
+ - If all tasks are completed (`- [x]`) but no passing verification evidence in Section 5 -> Recommend `/check`.
32
+ - If verification evidence passed in Section 5 -> Recommend `/complete`.
47
33
  3. **Active Discovery**: Check `devflow/discoveries/` for open discovery notes.
48
- 4. **Pending Ideas Inbox**: Check `devflow/ideas.md`. If items exist under `## 📌 Pending Ideas`, summarize them in a **💡 Pending Ideas (Inbox)** list with their IDs (`[IDEA-xxx]`), feasibility, and mention that they can be started with `/spec IDEA-xxx` or `/discovery IDEA-xxx`.
34
+ 4. **Pending Ideas Inbox**: Check `devflow/ideas.md`. If items exist under `## 📌 Pending Ideas`, summarize them in a **💡 Pending Ideas (Inbox)** list with their IDs (`[IDEA-xxx]`), feasibility, and mention that they can be started with `/feature IDEA-xxx` or `/discovery IDEA-xxx`.
49
35
  5. **Audit Findings Ledger**: Check `devflow/context/findings.md` for open high-severity findings.
50
36
 
51
37
  ### Default State Recommendations
52
- - if no run is active and user wants to start a feature -> Recommend `/feature <name>`.
38
+ - If no run is active and user wants to start a feature -> Recommend `/feature <name>`.
53
39
  - If no run is active and user wants to fix a bug -> Recommend `/fix <bug>`.
54
- - If no run is active and user has pending ideas in `devflow/ideas.md` -> Highlight `/spec IDEA-xxx` or `/discovery IDEA-xxx`.
55
- - If no run is active and user wants deep architectural exploration -> Recommend `discovery`.
40
+ - If no run is active and user has pending ideas in `devflow/ideas.md` -> Highlight `/feature IDEA-xxx` or `/discovery IDEA-xxx`.
41
+ - If no run is active and user wants deep architectural exploration -> Recommend `/discovery`.
56
42
  - If user asks to check system health -> Recommend `doctor`.
57
43
 
58
44
  ---
59
45
 
60
46
  ## Intent Classification & Skill Routing
61
47
 
62
- | User Intent / Request Type | Recommended Skill | Normal Name / Alias | Track / Lifecycle Path |
48
+ | User Intent / Request Type | Recommended Skill | Normal Name / Alias | Lifecycle Path |
63
49
  | :--- | :--- | :--- | :--- |
64
- | **"Spec new feature / lean workflow"** | `spec` | `/spec` / `/feature` | **Fast-Track**: `/spec` -> `/implement` -> `/check` -> `/complete` |
65
- | **"Quick bugfix / ad-hoc change"** | `spec` | `/fix` | **Fast-Track**: `/fix` -> `/implement` -> `/check` -> `/complete` |
50
+ | **"Spec new feature / living spec"** | `feature` | `/feature` / `/spec` | **Unified**: `/feature` -> `/implement` -> `/check` -> `/complete` |
51
+ | **"Quick bugfix / ad-hoc change"** | `fix` | `/fix` | **Unified**: `/fix` -> `/implement` -> `/check` -> `/complete` |
66
52
  | **"Capture quick idea / thought"** | `idea` | `/idea` | **Companion**: Enriches & saves to `devflow/ideas.md` |
67
- | **"Execute implementation tasks"** | `implement` | `/implement` | **Fast-Track**: `/implement` -> `/check` |
68
- | **"Run QA verification & check"** | `check` | `/check` | **Fast-Track**: `/check` -> `/complete` |
69
- | **"Complete run & git merge"** | `complete` | `/complete` | **Fast-Track**: `/complete` |
70
- | **"Generate HTML dashboard report"**| `report-html` | `/report:html` | **Standalone**: Converts `current-feature.md` / `60-report.md` to HTML |
71
- | "Setup DevFlow on fresh/new project" | `onboard` | `onboard` / `setup` | `onboard` -> `/spec` or `10-define` |
72
- | "Adopt DevFlow on existing codebase" | `adopt` | `adopt` / `bootstrap` | `adopt` -> `/spec` or `10-define` |
53
+ | **"Pre-delivery exploration / research"**| `discovery`| `/discovery` | **Pre-Flight**: `discovery` -> `/feature` |
54
+ | **"Socratic alignment / ADR / glossary"**| `grill` | `/grill` / `/align` | **Pre-Flight**: `grill` -> `/feature` |
55
+ | **"Execute implementation tasks"** | `implement` | `/implement` | **Core Loop**: `/implement` -> `/check` |
56
+ | **"Run QA verification & check"** | `check` | `/check` | **Core Loop**: `/check` -> `/complete` |
57
+ | **"Complete run & git merge"** | `complete` | `/complete` | **Core Loop**: `/complete` |
58
+ | **"Generate HTML dashboard report"**| `report-html` | `/report:html` | **Standalone**: Converts `current-feature.md` or archive to HTML |
59
+ | "Setup DevFlow on fresh/new project" | `onboard` | `onboard` / `setup` | `onboard` -> `/feature` |
60
+ | "Adopt DevFlow on existing codebase" | `adopt` | `adopt` / `bootstrap` | `adopt` -> `/feature` |
73
61
  | "Check setup health & diagnostics" | `doctor` | `doctor` / `health` | `doctor` |
74
- | "Explore a new request / deep idea" | `discovery` | `discovery` / `/discovery` | **Deep-Track**: `discovery` -> `10` -> `20` -> ... |
75
- | "Define delivery boundaries and ID" | `10-define` | `define` | **Deep-Track**: `10` -> `20` -> `30` |
76
- | "Break down spec into plan (Deep)" | `30-plan` | `plan` | **Deep-Track**: `30` -> `40` -> `50` |
77
- | "Deep code implementation" | `40-execute` | `implement` | **Deep-Track**: `40` -> `50` |
78
- | "Deep QA verification" | `50-verify` | `verify` | **Deep-Track**: `50` -> `60` -> `70` |
79
- | "Deep markdown digest report" | `60-report` | `report` | **Deep-Track**: `60` -> `70` |
80
- | "Deep release packaging & merge" | `70-deliver` | `release` | **Deep-Track**: `70-deliver` |
81
62
  | "Human manual QA walkthrough guide" | `try` | `try` | Companion (after implement or check) |
82
- | "Safely plan feature or run reversal" | `rollback` | `rollback` | Companion |
63
+ | "Safely plan feature or run reversal"| `rollback` | `rollback` | Companion |
83
64
  | "Set up automatic GitHub Actions CI" | `ci` | `ci` | Companion |
84
- | "Pre-check scope & risks before spec" | `brief` | `brief` | Companion |
65
+ | "Pre-check scope & risks before spec"| `brief` | `brief` | Companion |
85
66
  | "Run autonomous bounded delivery loop"| `autopilot` | `autopilot` | Companion |
86
67
  | "Brainstorm ideas without ID" | `brainstorm` | `brainstorm` | Companion |
87
- | "Socratic alignment / ADR / glossary" | `grill` | `/grill` / `align` | Companion (pre-spec / domain modeling) |
88
68
  | "Investigate failure or root cause" | `debug` | `debug` | Companion |
89
69
 
90
70
  ---
91
71
 
92
72
  ## Available Skills Sitemap
93
73
 
94
- ### 1. Fast-Track (Blueprint Mode - 4 Steps)
95
- - `spec` (`/spec`, `/feature`, `/fix`, `$spec`) - Define, spec, plan, and create `current-feature.md`
96
- - `implement` (`/implement`, `$implement`) - Execute planned checklist tasks with TDD
97
- - `check` (`/check`, `$check`) - Senior QA review, multi-lane verification, record evidence
98
- - `complete` (`/complete`, `$complete`) - Safety pass, release digest, git merge, close run
74
+ ### 1. Mainline Living Spec Loop (4 Steps)
75
+ - `feature` (`/feature`, `/spec`) - Define, spec, and plan in `current-feature.md`
76
+ - `fix` (`/fix`) - Document an ad-hoc bug or change in `current-feature.md`
77
+ - `implement` (`/implement`) - Execute planned checklist tasks with TDD
78
+ - `check` (`/check`) - Senior QA review, multi-lane verification, record evidence
79
+ - `complete` (`/complete`) - Safety pass, release digest, git merge, close run
99
80
 
100
- ### 2. Deep-Track (Architect Mode - 8 Steps)
81
+ ### 2. Pre-Flight Discovery Engine
101
82
  - `discovery` - Project roadmap planning or feature exploration before delivery commitment
102
- - `10-define` - Lock delivery boundaries and allocate Running ID
103
- - `20-spec` - Formalize markdown delivery contract
104
- - `30-plan` - Breakdown spec into phased tasks with test decisions
105
- - `40-execute` - Incremental task implementation
106
- - `50-verify` - Senior QA review and multi-lane validation
107
- - `60-report` - Generate standardized markdown digest report
108
- - `70-deliver` - Release packaging, release notes, and merge
109
-
110
- ### 3. Public Companion Commands
111
- - `devflow` (`status`, `/devflow`) - Interactive guide, state inspector, and router
112
- - `idea` (`/idea`) - Quick idea capture and AI feasibility enrichment into `devflow/ideas.md`
113
- - `grill` (`/grill`, `align`) - Codebase-grounded Socratic alignment, domain glossary, and ADR recorder
114
- - `brainstorm` - Ideate and compare trade-off options without allocating running IDs
115
- - `report-html` (`/report:html`) - Standalone interactive HTML report dashboard generator
116
- - `onboard` - Baseline stack setup for freshly scaffolded projects
117
- - `adopt` - Bootstrap DevFlow into existing brownfield projects
118
- - `doctor` - Read-only health check for setup and drift
119
- - `try` - Step-by-step human manual QA review guide
120
- - `rollback` - Safe feature/run reversal planner
121
- - `ci` - Automatic GitHub Actions workflow setup
122
- - `brief` - Read-only scope and risk pre-briefing
123
- - `autopilot` - Autonomous bounded delivery loop
124
- - `debug` - Root cause investigation before or during implementation
125
- - `overview` - Living context synchronization into project-overview.md
83
+ - `idea` - Quick idea capture with AI feasibility scoring
84
+ - `grill` (or `align`) - Socratic alignment, domain modeling, and ADR recording
85
+ - `brainstorm` - Multi-option ideation with trade-off analysis
86
+
87
+ ### 3. Verification & Diagnostic Companions
88
+ - `doctor` - Health check for setup, adapters, and workspace state
89
+ - `audit` - Branch-aware or full-project code, security, and quality review
90
+ - `test` / `tests` - Test suite runner and unit test scaffolding
91
+ - `ci` - Set up or normalize GitHub Actions checks
92
+ - `status` - Read-only progress summary and next action suggestion
93
+ - `try` - Human manual QA walkthrough guide
94
+ - `report-html` - Standalone interactive HTML report dashboard
95
+ - `debug` - Root-cause investigation without editing code
96
+ - `rollback` - Safe reversal of completed features
97
+ - `release` - Deployment readiness check
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: complete
3
- description: "[devflow][F] Wrap up a finished feature, fix, or rollback. Runs a final safety pass, archives its spec to devflow/history/features/, devflow/history/fixes/, or devflow/history/rollbacks/, updates the build plan for features and rollbacks, resets devflow/context/current-feature.md to its stub, makes one work-level commit, then squash-merges the branch to main and deletes it. Merges only with explicit approval, then asks separately before pushing main. Use when the user runs /complete, or asks to finish, wrap up, merge, or close out the current feature, fix, or rollback after it is built and reviewed."
3
+ description: "[devflow][F] Wrap up a finished feature, fix, or rollback. Runs a final safety pass, archives its spec to devflow/history/features/, devflow/history/fixes/, or devflow/history/rollbacks/, updates the build plan for features and rollbacks, resets devflow/context/current-feature.md to its stub, and makes the work commit. Enforces a mandatory user gate: asks whether to squash-merge to main/master OR pull latest main/master into the feature/dev branch and push to remote for Merge Request (MR / PR) creation. Never merges into main/master without explicit user instruction."
4
4
  ---
5
5
 
6
- # complete - log the finished work, make the work commit, and merge
6
+ # complete - log the finished work, make the work commit, and deliver
7
7
 
8
8
  Where this sits in the workflow:
9
9
 
10
10
  /feature, /fix, or /rollback -> /implement -> [complete] -> next
11
- (the spec) (build it) (commit + merge + log)
11
+ (the spec) (build it) (commit + delivery gate)
12
12
 
13
13
  `/implement` built the feature, fix, or rollback on its branch, with optional per-step commit
14
14
  checkpoints. This skill closes it out: it logs the work, makes the single
15
- work-level commit, and squash-merges. Run it only when the work is done,
15
+ work-level commit, and guides the delivery through a **Mandatory User Delivery Gate**. Run it only when the work is done,
16
16
  reviewed, and the documented `Verify` command, or the fallback build and tests,
17
17
  passes.
18
18
 
@@ -22,7 +22,7 @@ Confirm the work is actually finished: `devflow/context/current-feature.md`
22
22
  holds a real spec, its steps are built on a branch, and `Verify`, or the fallback
23
23
  build and tests, passes. If any of the
24
24
  spec's done-whens are behavioral, `/check` should have proven them against the
25
- running app first - don't merge on an unverified claim. Uncommitted step work is
25
+ running app first - don't merge or complete on an unverified claim. Uncommitted step work is
26
26
  expected (per-step checkpoints are optional); this skill commits it. Don't require
27
27
  the steps to be pre-committed.
28
28
 
@@ -30,7 +30,7 @@ the steps to be pre-committed.
30
30
 
31
31
  Before logging or committing, run a short safety pass and report blockers only:
32
32
 
33
- - active spec exists and the work is not being completed from `main` or `master`
33
+ - active spec exists and the work is not being completed directly from `main` or `master`
34
34
  - changed files are tied to the active spec, with no unrelated dirty work mixed
35
35
  in (a dirty `devflow/context/findings.md` is expected, since `/audit` writes it)
36
36
  - the exact `Verify` command from `AGENTS.md` passed in this session, when one is
@@ -107,25 +107,47 @@ into the app - delete the `prototypes/` folder now. The tokens live in the real
107
107
  stylesheet and the HTML mockups were always throwaway; fold the deletion into this
108
108
  feature's commit. Skip this if the feature didn't consume prototypes.
109
109
 
110
- ## Step 2 - make the work commit
110
+ ## Step 2 - make the work commit on feature branch
111
111
 
112
112
  Stage everything on the branch (any uncommitted step work plus the Step 1 logging
113
- changes) and make one conventional work commit (for example `feat: <feature>`,
113
+ changes) and make one conventional work commit on the active branch (for example `feat: <feature>`,
114
114
  `fix: <name>`, or `revert: roll back <feature>`). `Verify`, or the fallback build
115
115
  and tests, must pass first.
116
116
 
117
- ## Step 3 - merge
117
+ ## Step 3 - Mandatory Delivery Gate (Ask User First)
118
+
119
+ > [!IMPORTANT]
120
+ > **MANDATORY USER SELECTION**: In real-world engineering teams, developers often do NOT have direct merge/push access to `main` or `master` (protected branches).
121
+ > Therefore, you **MUST STOP AND ASK** the user to choose their desired delivery flow. **NEVER automatically merge into `main` or `master` without explicit user choice.**
122
+
123
+ Present the user with two clear delivery options:
124
+
125
+ ### 🔀 Option 1: Team MR / PR Flow (Pull latest main/master & Push dev branch) [Default for Teams]
126
+ - **When to choose**: When working in a team where code reviews happen via GitLab Merge Request (MR) or GitHub Pull Request (PR), or where developers lack direct write access to protected `main`/`master` branches.
127
+ - **Execution Actions**:
128
+ 1. Detect default base branch name (`main` or `master`).
129
+ 2. Run `git pull origin <main/master>` (or `git fetch origin <main/master> && git merge origin/<main/master>`) to bring the latest upstream changes into the active feature/dev branch.
130
+ 3. If merge conflicts occur, highlight them clearly and help the user resolve them.
131
+ 4. Run `Verify` (or build & tests) to ensure integrity after the merge.
132
+ 5. Run `git push origin <current-feature-branch>` to push the up-to-date branch to the remote repository.
133
+ 6. Stop and inform the user that the branch is synchronized and pushed, ready for them to open a Merge Request (MR / PR) on GitLab/GitHub.
134
+ 7. **Do NOT merge into local `main`/`master` and do NOT delete the branch.**
135
+
136
+ ### 🔀 Option 2: Direct Local Squash-Merge (Solo / Direct Access Mode)
137
+ - **When to choose**: Only when the user explicitly instructs that they want to merge directly into `main` or `master` locally now (e.g. solo projects or Tech Leads with merge privileges).
138
+ - **Execution Actions**:
139
+ 1. Switch to `main` or `master`: `git checkout <main/master>`.
140
+ 2. Squash-merge the branch: `git merge --squash <feature-branch>`.
141
+ 3. Commit the squash-merge.
142
+ 4. Delete the local feature branch only with the user's explicit consent.
143
+ 5. **Stop and ask separately** before pushing local `main`/`master` to remote upstream. The merge approval does NOT count as push approval.
144
+ 6. Run `git push origin <main/master>` only after separate explicit confirmation.
118
145
 
119
- 1. Squash-merge the branch into main, only with the user's explicit go-ahead, so
120
- the feature lands as one clean commit regardless of how many checkpoints the
121
- branch carried.
122
- 2. Delete the branch after a clean merge.
123
- 3. Stop and ask whether to push local `main` to its upstream. The merge approval
124
- does not count as push approval.
125
- 4. Push main only after a separate explicit yes to push main in the current chat.
126
- If the repo has no remote or upstream, say so instead of guessing.
146
+ ---
147
+
148
+ ## Step 4 - Finish & Try Path
127
149
 
128
- Then point the user at `/feature`, `/fix`, or `/rollback` for the next thing.
150
+ Point the user at `/feature`, `/fix`, or `/rollback` for the next task.
129
151
 
130
152
  Finish with a concise **How to try it** note for the completed work. For a
131
153
  rollback, explain how to confirm the removed behavior is gone and name one
@@ -135,26 +157,15 @@ that command can read the archived feature after `current-feature.md` is reset.
135
157
 
136
158
  ## Rules
137
159
 
160
+ - **Mandatory User Confirmation Gate**: Always ask before choosing between Team MR/PR Push vs Direct Squash-Merge.
161
+ - **Never auto-merge into main/master**: The decision to merge into `main` or `master` belongs strictly to the user.
138
162
  - The work item is the unit of history: one squashed feature, fix, or rollback
139
- commit on main, even if the branch carried several checkpoint commits.
163
+ commit, even if the branch carried several checkpoint commits.
140
164
  - A rollback preserves the original feature archive and adds a separate rollback
141
165
  archive. Never rewrite history to make the feature look as if it never existed.
142
- - Don't merge unfinished or failing work. The documented `Verify` command, or
166
+ - Don't merge or push unfinished or failing work. The documented `Verify` command, or
143
167
  the fallback build and tests, must pass first.
144
- - Never merge while a P0 or P1 finding is `open` or `fixed` in the ledger. The
145
- recorded ways past the gate without code are `accepted` (only by the user's
146
- explicit decision, with their reason) or `invalid` (only from re-examination
147
- evidence or the user's explicit call); both travel into the archive, never a
148
- silent drop.
149
- - Merging and pushing are the user's calls: get an explicit yes for the merge,
150
- then ask whether to push main. Do not treat merge approval, `/complete`, or
151
- "looks good" as permission to push.
152
- - Push main only after a separate explicit yes to push main in the current chat.
168
+ - Never merge or push while a P0 or P1 finding is `open` or `fixed` in the ledger.
169
+ - Pushing to remote is always explicit: confirm before running `git push`.
153
170
  - One item per completion. If a parent feature still has unchecked sub-features,
154
- leave the parent unchecked.
155
-
156
- ## Formatting
157
-
158
- Format the output to match the project's conventions in
159
- `devflow/context/ai-interaction.md`: concise, scannable markdown, with lists for
160
- enumerations and tables for matrices rather than dense paragraphs.
171
+ leave the parent unchecked.