@jakkrichm/create-nexus-devflow 2.16.4 → 2.17.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/dist/bin/create-nexus-devflow.d.ts +1 -1
- package/dist/bin/create-nexus-devflow.js +41 -2
- package/dist/bin/create-nexus-devflow.js.map +1 -1
- package/dist/lib/project-status-engine.d.ts +11 -3
- package/dist/lib/project-status-engine.js +99 -17
- package/dist/lib/project-status-engine.js.map +1 -1
- package/dist/lib/review.d.ts +1 -0
- package/dist/lib/review.js +58 -3
- package/dist/lib/review.js.map +1 -1
- package/dist/lib/skill-registry-engine.js +1 -1
- package/dist/lib/skill-registry-engine.js.map +1 -1
- package/dist/lib/status.d.ts +3 -3
- package/dist/lib/status.js +2 -2
- package/dist/lib/status.js.map +1 -1
- package/dist/lib/tooling/commands/migrate-structure.d.ts +8 -0
- package/dist/lib/tooling/commands/migrate-structure.js +197 -0
- package/dist/lib/tooling/commands/migrate-structure.js.map +1 -0
- package/dist/lib/tooling/commands/summarize-run-status.js +3 -1
- package/dist/lib/tooling/commands/summarize-run-status.js.map +1 -1
- package/dist/lib/tooling/registry.js +2 -0
- package/dist/lib/tooling/registry.js.map +1 -1
- package/dist/lib/update.d.ts +29 -3
- package/dist/lib/update.js +76 -0
- package/dist/lib/update.js.map +1 -1
- package/dist/lib/workspace-paths.d.ts +15 -0
- package/dist/lib/workspace-paths.js +61 -0
- package/dist/lib/workspace-paths.js.map +1 -0
- package/dist/scripts/prepare-template.js +75 -15
- package/dist/scripts/prepare-template.js.map +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/analyze/SKILL.md +21 -21
- package/template/.agents/skills/audit/SKILL.md +36 -18
- package/template/.agents/skills/audit/reference/independent-review.md +58 -2
- package/template/.agents/skills/brainstorm/SKILL.md +1 -1
- package/template/.agents/skills/complete/SKILL.md +23 -1
- package/template/.agents/skills/complete/reference/completion-recovery.md +248 -0
- package/template/.agents/skills/continuous/SKILL.md +156 -82
- package/template/.agents/skills/feature/SKILL.md +6 -0
- package/template/.agents/skills/feature/reference/build-history.md +79 -0
- package/template/.agents/skills/idea/SKILL.md +14 -14
- package/template/.agents/skills/rollback/SKILL.md +23 -10
- package/template/.claude/skills/analyze/SKILL.md +21 -21
- package/template/.claude/skills/audit/SKILL.md +33 -16
- package/template/.claude/skills/audit/reference/independent-review.md +58 -2
- package/template/.claude/skills/brainstorm/SKILL.md +1 -1
- package/template/.claude/skills/complete/SKILL.md +23 -1
- package/template/.claude/skills/complete/reference/completion-recovery.md +248 -0
- package/template/.claude/skills/continuous/SKILL.md +156 -82
- package/template/.claude/skills/feature/SKILL.md +6 -0
- package/template/.claude/skills/feature/reference/build-history.md +79 -0
- package/template/.claude/skills/idea/SKILL.md +14 -14
- package/template/.claude/skills/rollback/SKILL.md +23 -10
- package/template/AGENTS.md +11 -10
- package/template/devflow/{context → 00-context}/ai-interaction.md +1 -1
- package/template/devflow/{build-plan.md → 30-planning/build-plan.md} +24 -0
- package/template/devflow/40-tasks/.gitkeep +0 -0
- package/template/devflow/40-tasks/README.md +11 -0
- package/template/devflow/60-docs/migration-guide-decade-numbered.md +93 -0
- /package/template/devflow/{context → 00-context}/coding-standards.md +0 -0
- /package/template/devflow/{context → 00-context}/glossary.md +0 -0
- /package/template/devflow/{context → 00-context}/project-overview.md +0 -0
- /package/template/devflow/{ideas.md → 10-ideation/ideas.md} +0 -0
- /package/template/devflow/{reference → 10-ideation/reference}/build-plan-template.md +0 -0
- /package/template/devflow/{reference → 10-ideation/reference}/feature-spec-template.md +0 -0
- /package/template/devflow/{reference → 10-ideation/reference}/mockup.html +0 -0
- /package/template/devflow/{reference → 10-ideation/reference}/project-overview-template.md +0 -0
- /package/template/devflow/{reference → 10-ideation/reference}/project-plan-template.md +0 -0
- /package/template/devflow/{reference → 10-ideation/reference}/running-id-contract.md +0 -0
- /package/template/devflow/{decisions → 20-discovery/decisions}/.gitkeep +0 -0
- /package/template/devflow/{decisions → 20-discovery/decisions}/README.md +0 -0
- /package/template/devflow/{discoveries → 20-discovery/discoveries}/.gitkeep +0 -0
- /package/template/devflow/{project-plan.md → 30-planning/project-plan.md} +0 -0
- /package/template/devflow/{history → 50-history}/HISTORY.md +0 -0
- /package/template/devflow/{history → 50-history}/features/README.md +0 -0
- /package/template/devflow/{history → 50-history}/fixes/README.md +0 -0
- /package/template/devflow/{history → 50-history}/rollbacks/README.md +0 -0
- /package/template/devflow/{docs → 60-docs}/USAGE.md +0 -0
- /package/template/devflow/{docs → 60-docs}/diagrams/nexus-devflow-architecture.html +0 -0
- /package/template/devflow/{docs → 60-docs}/diagrams/nexus-devflow-architecture.json +0 -0
- /package/template/devflow/{docs → 60-docs}/diagrams/nexus-devflow-lifecycle.html +0 -0
- /package/template/devflow/{docs → 60-docs}/diagrams/nexus-devflow-lifecycle.json +0 -0
- /package/template/devflow/{docs → 60-docs}/examples/living-spec/adr.example.md +0 -0
- /package/template/devflow/{docs → 60-docs}/examples/living-spec/current-feature.example.md +0 -0
- /package/template/devflow/{docs → 60-docs}/examples/living-spec/discovery.example.md +0 -0
- /package/template/devflow/{docs → 60-docs}/examples/living-spec/ideas.example.md +0 -0
- /package/template/devflow/{docs → 60-docs}/governance-rules.md +0 -0
- /package/template/devflow/{docs → 60-docs}/manual-review-workflow-spec.md +0 -0
- /package/template/devflow/{docs → 60-docs}/markdown-metadata-contract.md +0 -0
- /package/template/devflow/{docs → 60-docs}/quickstart.md +0 -0
- /package/template/devflow/{docs → 60-docs}/release-process.md +0 -0
- /package/template/devflow/{docs → 60-docs}/skill-selection-policy.md +0 -0
- /package/template/devflow/{docs → 60-docs}/workflow-surface-map.md +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Build history identity
|
|
2
|
+
|
|
3
|
+
Read metadata from the archived original spec, not appended findings or review.
|
|
4
|
+
Read the feature ID from its `**From build-plan:**` or supported legacy
|
|
5
|
+
feature field, not its title or filename. Normalize the numeric part by removing
|
|
6
|
+
leading zeros and the optional letter to lowercase (`012A` becomes `12a`). Match
|
|
7
|
+
that complete ID, never a substring. Use the archived spec's positive integer
|
|
8
|
+
`**Build attempt:**`; duplicate or malformed fields stop selection. A legacy
|
|
9
|
+
first-build archive without it counts as attempt 1 only when its spec identity
|
|
10
|
+
and unsuffixed `NN-name.md` path agree unambiguously. Derive the expected name
|
|
11
|
+
from its own spec, not today's renamed plan title. Text such as `Build 2` in a
|
|
12
|
+
title proves no attempt.
|
|
13
|
+
For new paths, pad the numeric part to at least two digits, keep its letter, and
|
|
14
|
+
use the spec title's lowercase kebab-case slug. Append `--build-N` only for N > 1.
|
|
15
|
+
An archive declaring an attempt must agree with that computed path.
|
|
16
|
+
The double hyphen is reserved: slug normalization collapses punctuation runs to
|
|
17
|
+
one hyphen, so a first build titled `Export Build 2` uses `04-export-build-2.md`,
|
|
18
|
+
while a later attempt 2 titled `Export` uses `04-export--build-2.md`.
|
|
19
|
+
|
|
20
|
+
Before freezing a new spec, check its exact planned archive path in `devflow/history/features/` and branch.
|
|
21
|
+
Require `lstat` to return `ENOENT` for the archive leaf; any existing entry,
|
|
22
|
+
including a dangling symlink, blocks it. Present parents must be ordinary
|
|
23
|
+
directories. Require a valid branch name and no existing or namespace-conflicting
|
|
24
|
+
local branch ref (inspect `git for-each-ref refs/heads/`, including packed refs).
|
|
25
|
+
Also require no prior use of the archive path in available Git history:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git log --all --reflog --full-history --format=%H -- <planned-archive-path>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Any result or inspection failure stops before spec review with the exact collision.
|
|
32
|
+
Do not auto-bump the attempt or rename reviewed work to avoid it. These checks
|
|
33
|
+
apply to new specs; existing completion must run its recovery routing first so
|
|
34
|
+
its own archive is reconciled rather than rejected. Preserve already-reviewed
|
|
35
|
+
legacy spec bytes, branch, and any proven recovery destination.
|
|
36
|
+
|
|
37
|
+
A legacy rebuild can preserve a reviewed spec without this field. Its completion
|
|
38
|
+
annotation must freeze the original `baseCommit`: resolve only prior builds and
|
|
39
|
+
their completed reversals present at that base, derive `max(attempts) + 1`, and
|
|
40
|
+
require the exact resulting archive path. For an integrated archive, its unique
|
|
41
|
+
introducing commit's sole parent must equal that base. For unfinished completion,
|
|
42
|
+
use Complete's phase proof. The path checks this derived attempt; it never supplies
|
|
43
|
+
the number. Missing or ambiguous proof stops without rewriting the archived spec.
|
|
44
|
+
Settled history numbering and rollback selection do not require the annotation's
|
|
45
|
+
historical `head` or `sourceTree`; actual completion recovery still requires them.
|
|
46
|
+
|
|
47
|
+
Before using prior builds or reversals, prove each selected record on the local
|
|
48
|
+
default branch. Resolve the unique introducing commit with:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
git log --full-history --diff-filter=A --format=%H <local-default> -- <archive-path>
|
|
52
|
+
git log --full-history --format=%H <introducing-commit>..<local-default> -- <archive-path>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The first result must contain exactly one commit which actually adds the path;
|
|
56
|
+
the second must be empty. Confirm the current blob and mode equal that addition
|
|
57
|
+
(use Git's normal EOL normalization for a working-file comparison). Inspect the
|
|
58
|
+
record at that commit, not an uncommitted replacement. Reject orphan, overwritten,
|
|
59
|
+
deleted/re-added, renamed, multiply-added, or conflicting records. Never choose
|
|
60
|
+
the newest commit, file count, or timestamp to resolve ambiguity.
|
|
61
|
+
|
|
62
|
+
A build is reversed only by a completed `**Type:** Rollback` record in `devflow/history/rollbacks/` with its exact
|
|
63
|
+
`**Target archive:**` and full `**Target commit:**`, matching feature ID, verified
|
|
64
|
+
or complete status and finished steps. Its `Target parent` must match the target's
|
|
65
|
+
sole parent. Prove that rollback record's unique unchanged addition
|
|
66
|
+
by the same procedure, reachable on the local default after the target build.
|
|
67
|
+
Require a non-merge rollback commit containing that record and its completed
|
|
68
|
+
plan bookkeeping. Uncommitted, malformed, changed, or merely rollback-looking
|
|
69
|
+
files are not completed reversals. Conflicting or duplicate reversals stop.
|
|
70
|
+
|
|
71
|
+
Include exact rollback references retained on the selected plan line; missing
|
|
72
|
+
referenced records are a blocker, not an empty history. For a new unchecked feature,
|
|
73
|
+
use 1 when there are no prior records; otherwise
|
|
74
|
+
require every prior build to have one proven completed reversal and allocate
|
|
75
|
+
`max(attempts) + 1`. Duplicate attempts or inconsistent/missing history stop with
|
|
76
|
+
the exact paths and missing proof. Search only this feature's records and their
|
|
77
|
+
exact reversal references. Ignored local-only history without introducing-commit
|
|
78
|
+
proof cannot establish a rebuild or rollback target; stop without force-adding or
|
|
79
|
+
migrating it. Ordinary first builds do not require prior history.
|
|
@@ -26,32 +26,32 @@ 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
|
|
30
|
-
-
|
|
31
|
-
- **AI Feasibility & Tech**:
|
|
32
|
-
- **Value & Potential**:
|
|
33
|
-
- **Quick Seed
|
|
29
|
+
Evaluate the user's raw idea and generate an enriched entry in Thai (`th` per user communication rules):
|
|
30
|
+
- **Raw Idea**: The user's input description
|
|
31
|
+
- **AI Feasibility & Tech**: Feasibility rating (Easy / Medium / Complex) along with recommended libraries, APIs, or architectural approaches
|
|
32
|
+
- **Value & Potential**: Business value, user benefits, and strategic impact
|
|
33
|
+
- **Quick Seed**: 2-3 key technical nuances or seed points to preserve context for later pickup
|
|
34
34
|
|
|
35
35
|
### 3. Append to `devflow/ideas.md`
|
|
36
36
|
Insert the new idea block directly under `## 📌 Pending Ideas` in `devflow/ideas.md`:
|
|
37
37
|
|
|
38
38
|
```markdown
|
|
39
|
-
### [IDEA-001] {
|
|
39
|
+
### [IDEA-001] {Brief idea title}
|
|
40
40
|
- **บันทึกเมื่อ**: {YYYY-MM-DD}
|
|
41
|
-
- **ไอเดียตั้งต้น**: {
|
|
42
|
-
- **AI Feasibility & Tech**: {
|
|
43
|
-
- **Value & Potential**: {
|
|
41
|
+
- **ไอเดียตั้งต้น**: {User's raw idea text}
|
|
42
|
+
- **AI Feasibility & Tech**: {Feasibility and tooling analysis}
|
|
43
|
+
- **Value & Potential**: {Value and impact analysis}
|
|
44
44
|
- **Quick Seed (กันลืม)**:
|
|
45
|
-
1. {
|
|
46
|
-
2. {
|
|
47
|
-
- **สถานะ**: `Pending` (
|
|
45
|
+
1. {Key point 1}
|
|
46
|
+
2. {Key point 2}
|
|
47
|
+
- **สถานะ**: `Pending` (Ready for pickup via `/feature IDEA-001` or `/discovery IDEA-001`)
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
*(
|
|
50
|
+
*(If placeholder `*(ยังไม่มีไอเดียค้างอยู่...)*` exists, remove it upon recording the first idea)*
|
|
51
51
|
|
|
52
52
|
### 4. Output Summary
|
|
53
53
|
Report to the user:
|
|
54
54
|
- Allocated Idea ID: `[IDEA-xxx]`
|
|
55
55
|
- Summary of Feasibility & Value analysis
|
|
56
56
|
- Seed points saved
|
|
57
|
-
- Instructions for promotion: "
|
|
57
|
+
- Instructions for promotion: "Ready to implement? Run `/feature IDEA-xxx` or `/discovery IDEA-xxx` anytime."
|
|
@@ -53,16 +53,23 @@ skill.
|
|
|
53
53
|
|
|
54
54
|
## Step 1 - resolve the exact feature
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
Resolve the requested number or name to one checked build-plan ID; for an archive
|
|
57
|
+
path, read its exact spec identity first and match that checked item. Then gather
|
|
58
|
+
all exact-ID feature archive candidates using `../feature/reference/build-history.md`.
|
|
59
|
+
Normalize the stable ID, retaining its letter, and read attempts from verified
|
|
60
|
+
spec metadata/history proof, never arbitrary title or filename suffixes.
|
|
61
|
+
|
|
62
|
+
For each candidate, require its unique introducing commit on the local default
|
|
63
|
+
and prove the archive blob and mode have not changed since that addition. Exclude
|
|
64
|
+
builds with a proven completed reachable rollback naming that exact archive and
|
|
65
|
+
introducing commit. The checked item must have exactly one unreversed build.
|
|
66
|
+
An explicit archive request stays bound to that exact path: reject it if already
|
|
67
|
+
reversed, rather than silently choosing another build. Ambiguous, orphan,
|
|
68
|
+
overwritten, multiply-added, or missing records stop with their exact paths and
|
|
69
|
+
missing proof. Do not select by newest commit, filename order, or rollback date.
|
|
70
|
+
|
|
71
|
+
Confirm the selected commit's diff is consistent with the requested feature.
|
|
72
|
+
If the target is a merge commit, stop before Step 2 and before
|
|
66
73
|
writing or changing `devflow/context/{xxx-slug}/spec.md`. Do not record a
|
|
67
74
|
target parent or choose a mainline. Publish `blocked` to
|
|
68
75
|
`devflow/.state/run.json`, explain that DevFlow cannot safely infer which
|
|
@@ -129,6 +136,12 @@ Allocate sequential ID (`xxx-slug`) and create `devflow/context/{xxx-slug}/`. Wr
|
|
|
129
136
|
- compatibility work that is allowed, if any
|
|
130
137
|
- exact verification commands and observable removal criteria
|
|
131
138
|
|
|
139
|
+
Before freezing a new rollback spec, apply the archive-path and branch-availability
|
|
140
|
+
checks in `../feature/reference/build-history.md` to its planned branch and
|
|
141
|
+
`YYYY-MM-DD-<exact-target-archive-stem>.md` destination. Retain `--build-N` in the
|
|
142
|
+
target stem when present. A collision stops for an explicit decision; never
|
|
143
|
+
renumber the target or silently rename reviewed work. Existing completion recovery runs first.
|
|
144
|
+
|
|
132
145
|
The first build step must apply the target commit's product diff in reverse using
|
|
133
146
|
the guarded Type: Rollback behavior in `/implement`. Later steps may repair only
|
|
134
147
|
the specific downstream compatibility issues named in the spec. Do not use a
|
package/template/AGENTS.md
CHANGED
|
@@ -5,20 +5,21 @@ Instructions for AI coding agents working in this project. This is the cross-too
|
|
|
5
5
|
## What this is
|
|
6
6
|
|
|
7
7
|
This project uses **Nexus-DevFlow**, an agentic workflow layer supporting **The 3-Pillars Workspace Architecture & Pure Task-Isolated Living Spec Model**:
|
|
8
|
-
1. **🔮 Future (Backlog)**: `devflow/ideas.md`, `devflow/project-plan.md`, `devflow/build-plan.md`
|
|
9
|
-
2. **⚡ Present (Active Context)**: `devflow/context/` — Global Shared Source of Truth (`project-overview.md`, `coding-standards.md`, `ai-interaction.md`, `glossary.md`) & Active Task Workspaces (`devflow/context/{xxx-slug}/`).
|
|
10
|
-
3. **📦 Past (History Archive)**: `devflow/history/` — Categorized delivery archives (`features/`, `fixes/`, `rollbacks/`, and `HISTORY.md`).
|
|
8
|
+
1. **🔮 Future (Backlog)**: `devflow/ideas.md`, `devflow/project-plan.md`, `devflow/build-plan.md` (or Decade-Numbered `devflow/10-ideation/` & `devflow/30-planning/`).
|
|
9
|
+
2. **⚡ Present (Active Context)**: `devflow/context/` (or Decade-Numbered `devflow/00-context/`) — Global Shared Source of Truth (`project-overview.md`, `coding-standards.md`, `ai-interaction.md`, `glossary.md`) & Active Task Workspaces (`devflow/context/{xxx-slug}/` or `devflow/40-tasks/{xxx-slug}/`).
|
|
10
|
+
3. **📦 Past (History Archive)**: `devflow/history/` (or Decade-Numbered `devflow/50-history/`) — Categorized delivery archives (`features/`, `fixes/`, `rollbacks/`, and `HISTORY.md`).
|
|
11
11
|
|
|
12
|
-
To start a new project, scaffold the application first in an empty folder, then run `npx nexus-devflow` (or `npm create @jakkrichm/nexus-devflow`) to overlay DevFlow onto your codebase.
|
|
12
|
+
To start a new project, scaffold the application first in an empty folder, then run `npx nexus-devflow` (or `npm create @jakkrichm/nexus-devflow`) to overlay DevFlow onto your codebase. To migrate an existing workspace to the Decade-Numbered Stages structure (`00-context`, `10-ideation`, `20-discovery`, `30-planning`, `40-tasks`, `50-history`, `60-docs`), run `npx nexus-devflow migrate-structure`.
|
|
13
13
|
|
|
14
14
|
## Read these for full context
|
|
15
15
|
|
|
16
16
|
- `devflow/config.json` - deterministic project workflow settings
|
|
17
|
-
- `devflow/context/project-overview.md` - the project's source of truth
|
|
18
|
-
- `devflow/context/coding-standards.md` - engineering conventions & rules to follow
|
|
19
|
-
- `devflow/context/ai-interaction.md` - how to interact with the user on this project
|
|
20
|
-
- `devflow/context/glossary.md` - domain terms & architecture definitions
|
|
21
|
-
- `devflow/context/{xxx-slug}/` - active task living spec, stage, findings ledger, and independent review receipt
|
|
17
|
+
- `devflow/00-context/` (or `devflow/context/`) `project-overview.md` - the project's source of truth
|
|
18
|
+
- `devflow/00-context/` (or `devflow/context/`) `coding-standards.md` - engineering conventions & rules to follow
|
|
19
|
+
- `devflow/00-context/` (or `devflow/context/`) `ai-interaction.md` - how to interact with the user on this project
|
|
20
|
+
- `devflow/00-context/` (or `devflow/context/`) `glossary.md` - domain terms & architecture definitions
|
|
21
|
+
- `devflow/40-tasks/{xxx-slug}/` (or `devflow/context/{xxx-slug}/`) - active task living spec, stage, findings ledger, and independent review receipt
|
|
22
|
+
|
|
22
23
|
|
|
23
24
|
## Project configuration
|
|
24
25
|
|
|
@@ -42,7 +43,7 @@ Unused adapter families can be removed. Codex, Antigravity, GitHub Copilot, and
|
|
|
42
43
|
|
|
43
44
|
### Universal Invocation & Agent Directives:
|
|
44
45
|
|
|
45
|
-
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`, `
|
|
46
|
+
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:
|
|
46
47
|
- **Canonical Name (Plain text)**: Directly invoke or prompt the command by its standard name (e.g., `feature`, `implement`, `continuous`, `devflow`, `discovery`, `analyze`).
|
|
47
48
|
- **Slash Prefix (`/`)**: For tools supporting slash commands (Claude Code, Google Antigravity, Gemini CLI), e.g., `/feature`, `/fix`, `/implement`, `/continuous`, `/devflow`, `/discovery`, `/analyze`.
|
|
48
49
|
- **Dollar Prefix (`$`)**: For OpenAI Codex CLI or skill-invocation tools, e.g., `$feature`, `$fix`, `$continuous`, `$devflow`, `$discovery`, `$analyze`.
|
|
@@ -148,7 +148,7 @@ Progress lives in persistent files, not in transient chat history:
|
|
|
148
148
|
|
|
149
149
|
- **Branch Naming**: `feature/{xxx-slug}` or `fix/{xxx-slug}`.
|
|
150
150
|
- **Commit Messages**: Conventional imperative format (e.g. `feat(uninstall): add clean eject CLI command`, `fix(parser): handle undefined metadata field`).
|
|
151
|
-
- **No AI Attribution in Commits**: Never include "Generated with AI" or agent metadata in Git commit logs.
|
|
151
|
+
- **No AI Attribution in Commits**: Never include "Generated with AI", AI `Co-Authored-By` trailers, or agent metadata in Git commit logs or PR descriptions; preserve genuine human attribution. Claude Code supports `"attribution": { "commit": "", "pr": "" }` in `.claude/settings.json` to suppress default signatures.
|
|
152
152
|
- **Explicit Approval for Push & Deploy**: Merge approval is strictly separate from consent to `git push` to remote repositories or deploy to production.
|
|
153
153
|
|
|
154
154
|
---
|
|
@@ -276,3 +276,27 @@
|
|
|
276
276
|
- [x] **35. Superpowers Debugging Heuristics & TDD Reference Guides (`DISC-20260909-003`, `085-superpowers-debugging-heuristics-integration`)** `[Size: S]`
|
|
277
277
|
- *Dependencies*: Feature 31 (`081`), Feature 32 (`082`)
|
|
278
278
|
- *Scope*: เพิ่ม JIT reference guides สำหรับ root-cause tracing, defense-in-depth, condition-based waiting, TDD anti-patterns และ two-stage review พร้อม 3-Strike Rule และ Iron Law; ซิงก์ `.agents/` กับ `.claude/` และตรวจ file contracts
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Phase 36: Upstream AI Blueprint v1.6.1 Synchronization
|
|
283
|
+
|
|
284
|
+
- [x] **36. Sync Upstream v1.6.1 (Installer Symlink Rejection, Completion Recovery Engine, Rebuild History Preservation, Local-Only Spec Review & Status Evidence Alignment) (`DISC-20260911-001`, `086-sync-upstream-ai-blueprint-v161`)** `[Size: M]`
|
|
285
|
+
- *Dependencies*: Feature 28 (`073`), DISC-20260911-001
|
|
286
|
+
- *Scope*: นำเข้า 5 เสาหลักความปลอดภัยและความแม่นยำจาก AI Blueprint v1.6.1: (1) ปฏิเสธ Symlink paths และตรวจ type compatibility ในตัวติดตั้ง `create-nexus-devflow`, (2) สร้างสัญญา `completion-recovery.md` พร้อม JSON comment annotation `<!-- devflow:completion ... -->` กู้คืนการส่งมอบงานที่สะดุด, (3) สร้างสัญญา `build-history.md` รองรับการตั้งชื่อ `--build-N` เมื่อ Rebuild ฟีเจอร์ที่เคยถูก Rollback, (4) ขยาย `lib/review.ts` ให้รองรับ `specSnapshot` สำหรับ Local-only spec review, (5) บูรณาการ `classifyWorkEvidence` ใน `project-status-engine.ts` และ `dashboard.ts` ป้องกัน False Ready State เมื่อ verification failed หรือพบ malformed records, (6) ซิงก์สคิลและเอกสารทั้ง `.agents/` และ `.claude/` พร้อม automated tests ผ่าน 100%
|
|
287
|
+
|
|
288
|
+
## 🔌 Phase 37: AI-Orchestrated Project-Local Vendor Skill Ingestion (`/vendor`)
|
|
289
|
+
|
|
290
|
+
- [x] **37. AI-Orchestrated Project-Local Vendor Skill Ingestion (`DISC-20260911-002`, `087-ai-orchestrated-vendor-skill-ingestion`)** `[Size: M]`
|
|
291
|
+
- *Dependencies*: Feature 33 (`083`), Feature 34 (`084`), DISC-20260911-002
|
|
292
|
+
- *Scope*: พัฒนาคำสั่ง `/vendor` (พร้อม aliases: `skill-add`, `equip`, `ingest`) สำหรับนำเข้า Git repository ลงในระดับโปรเจกต์ `devflow/.vendor/<slug>/`, ให้ AI Agent สำรวจโค้ดและสังเคราะห์ Custom Wrapper Skill ใน `.agents/skills/<slug>/SKILL.md` และ `.claude/skills/<slug>/SKILL.md`, พัฒนากลไก Update Protection ใน `update.ts` เพื่อป้องกันไม่ให้คำสั่งอัปเดต DevFlow ลบ custom skills เหล่านี้, บันทึก metadata ลง `.nexus/nexus-devflow.json`, ปรับปรุง CLI `nexus-devflow skill update all` ให้รองรับการ pull upstream ใน `.vendor/` โดยคงรักษา custom wrapper ที่ AI เขียนไว้, พร้อมเขียน Automated Unit Tests ครอบคลุม 100%
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## 📂 Phase 38: Decade-Numbered Folder Architecture & Multi-Version Migration Engine
|
|
297
|
+
|
|
298
|
+
- [x] **38. Decade-Numbered Folder Architecture, Legacy Path Resolver & Structure Migration Engine (`REQ-20260911-001`, `088-decade-numbered-folder-architecture`)** `[Size: M]`
|
|
299
|
+
- *Dependencies*: None
|
|
300
|
+
- *Scope*: ปรับสถาปัตยกรรมโฟลเดอร์ของ DevFlow ให้จัดเรียงตาม Decade-Numbered Stages (`00-context`, `10-ideation`, `20-discovery`, `30-planning`, `40-tasks`, `50-history`, `60-docs`), สร้าง Dynamic Path Resolver Engine รองรับ Client เวอร์ชันเก่าแบบ Zero-Breaking Change, พัฒนา CLI Subcommand `nexus-devflow migrate-structure` ทำการย้ายโฟลเดอร์และอัปเดต Manifest/Config อัตโนมัติ, ลบโฟลเดอร์ Legacy `devflow/runs/`, อัปเดตคู่มือ `AGENTS.md`, `CLAUDE.md`, `README.md`, Playbooks และเขียน Automated Tests ครอบคลุม
|
|
301
|
+
|
|
302
|
+
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# ⚡ 40-tasks: Active Living Spec Workspaces
|
|
2
|
+
|
|
3
|
+
This directory contains active, isolated task workspaces (`{xxx-slug}/`) during development.
|
|
4
|
+
|
|
5
|
+
Each active task folder contains:
|
|
6
|
+
- `spec.md` - Task-isolated living specification and implementation checklist
|
|
7
|
+
- `stage.md` - Lifecycle stage tracker (`defined`, `in-progress`, `checked`, `verified`)
|
|
8
|
+
- `findings.md` - Dedicated findings ledger for audit and verification proof
|
|
9
|
+
- `review.md` - Optional independent review request and receipt
|
|
10
|
+
|
|
11
|
+
When a task is completed via `/complete`, its spec is archived to `devflow/50-history/features/` (or `fixes/`, `rollbacks/`) and the active folder in `40-tasks/` is cleanly removed.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# คู่มือการย้ายโครงสร้างโฟลเดอร์สู่ Decade-Numbered Stages (Migration Guide)
|
|
2
|
+
|
|
3
|
+
> **DevFlow Version**: 2.16.5+
|
|
4
|
+
> **Topic**: การจัดระเบียบโฟลเดอร์ `devflow/` ตามลำดับขั้นตอนด้วย Decade-Numbered Stages และการอัปเกรดจากโครงสร้างเดิม
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 🌟 1. สถาปัตยกรรมโฟลเดอร์ Decade-Numbered Stages
|
|
9
|
+
|
|
10
|
+
เพื่อแก้ปัญหาโฟลเดอร์ใน `devflow/` กระจัดกระจายและไม่มีตัวเลขจัดเรียงสายตาใน IDE ทาง DevFlow ได้แนะนำโครงสร้าง **Decade-Numbered Stages Structure** (`00-`, `10-`, `20-`, ...) ที่ช่วยให้ทั้งผู้ใช้งานและ AI Agent ไล่ลำดับขั้นตอนการพัฒนาได้อย่างเป็นธรรมชาติ:
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
devflow/
|
|
14
|
+
├── config.json # Root configuration
|
|
15
|
+
├── .state/ # Runtime state (run.json - Git ignored)
|
|
16
|
+
├── .vendor/ # External vendor skills (bughunter, ponytail, ฯลฯ)
|
|
17
|
+
│
|
|
18
|
+
├── 00-context/ # [Foundation & Source of Truth]
|
|
19
|
+
│ ├── project-overview.md # Living overview (สถาปัตยกรรม & tech stack ล่าสุด)
|
|
20
|
+
│ ├── coding-standards.md # กฎระเบียบและมาตรฐานการเขียนโค้ด
|
|
21
|
+
│ ├── ai-interaction.md # ข้อกำหนดการทำงานร่วมกับ AI Agent
|
|
22
|
+
│ └── glossary.md # พจนานุกรมศัพท์เฉพาะของระบบ
|
|
23
|
+
│
|
|
24
|
+
├── 10-ideation/ # [Input & Reference Ingestion]
|
|
25
|
+
│ ├── ideas.md # บันทึกไอเดียใหม่ (Idea Inbox)
|
|
26
|
+
│ ├── inbox/ # ไฟล์ดิบจากภายนอก (PDF, Excel, Word, ภาพ)
|
|
27
|
+
│ └── reference/ # เอกสารที่แปลงเป็น Markdown สะอาดพร้อมใช้งาน
|
|
28
|
+
│
|
|
29
|
+
├── 20-discovery/ # [Analysis, Exploration & Architecture]
|
|
30
|
+
│ ├── analysis/ # ผลการวิเคราะห์ System Analyst (/analyze)
|
|
31
|
+
│ ├── discoveries/ # Pre-flight Spikes & Research (/discovery)
|
|
32
|
+
│ ├── decisions/ # บันทึกการตัดสินใจ ADRs (/grill)
|
|
33
|
+
│ ├── research/ # เอกสารวิจัยเชิงลึกและ Benchmark
|
|
34
|
+
│ ├── 21-prototype/ # (Optional: Static UI mockups / prototype)
|
|
35
|
+
│ └── 22-diagrams/ # (Optional: System & Architecture Diagrams)
|
|
36
|
+
│
|
|
37
|
+
├── 30-planning/ # [Roadmap & Master Plans]
|
|
38
|
+
│ ├── project-plan.md # Master Roadmap & Milestones
|
|
39
|
+
│ └── build-plan.md # Master Delivery Checklist
|
|
40
|
+
│
|
|
41
|
+
├── 40-tasks/ # [Active Living Spec Workspaces]
|
|
42
|
+
│ └── {xxx-slug}/ # Active task workspace (สร้างตอนทำฟีเจอร์/แก้บั๊ก)
|
|
43
|
+
│ ├── spec.md # Task-Isolated Living Spec
|
|
44
|
+
│ ├── stage.md # ตัวชี้สถานะ Stage
|
|
45
|
+
│ ├── findings.md # บันทึกบั๊ก/Audit ประจำงาน
|
|
46
|
+
│ └── tickets/ # Tracer-bullet tickets ย่อย
|
|
47
|
+
│
|
|
48
|
+
├── 50-history/ # [Shipped & Delivered Archives]
|
|
49
|
+
│ ├── HISTORY.md # Release Ledger สรุปภาพรวมประวัติ
|
|
50
|
+
│ ├── features/ # ฟีเจอร์ที่ส่งมอบแล้ว
|
|
51
|
+
│ ├── fixes/ # บั๊กที่แก้แล้ว
|
|
52
|
+
│ └── rollbacks/ # ฟีเจอร์ที่ถูก rollback
|
|
53
|
+
│
|
|
54
|
+
└── 60-docs/ # [Documentation & System Playbooks]
|
|
55
|
+
└── playbooks/ # Interactive HTML Playbooks (5W1H)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## ⚡ 2. จุดเด่นของการใช้เลขทศวรรษ (Decade Convention: `00-`, `10-`, `20-`)
|
|
61
|
+
|
|
62
|
+
1. **ลำดับสายตาใน Editor สวยงาม**: เรียงตามลำดับความก้าวหน้าของโครงการ
|
|
63
|
+
2. **ขยาย Sub-stages ในอนาคตได้ง่าย (Future-Proof)**: สามารถสร้างโฟลเดอร์แทรก เช่น `21-prototype`, `22-diagrams` ได้โดยไม่ต้องแก้เลขนำหน้าของโฟลเดอร์อื่น
|
|
64
|
+
3. **ตัดโฟลเดอร์ Legacy ออก 100%**: ลบโฟลเดอร์ `devflow/runs/` ที่ไม่ได้ใช้งานตั้งแต่ v1.x ออกอย่างปลอดภัย
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 🚀 3. วิธีการ Migrate อัตโนมัติ
|
|
69
|
+
|
|
70
|
+
### 1) รันอัตโนมัติผ่านคำสั่ง `update` (แนะนำที่สุด):
|
|
71
|
+
เมื่อโปรเจกต์ Client สั่งอัปเดตเวอร์ชัน DevFlow ด้วยคำสั่ง:
|
|
72
|
+
```bash
|
|
73
|
+
npx nexus-devflow update
|
|
74
|
+
```
|
|
75
|
+
ระบบจะตรวจจับโครงสร้างโฟลเดอร์อัตโนมัติ:
|
|
76
|
+
* **หากยังเป็นโครงสร้างเดิม (Legacy)**: ระบบจะรันกระบวนการ `migrate-structure` ให้อัตโนมัติทันที พร้อมย้ายไฟล์เข้า `00-`, `10-`, `20-`, `30-`, `40-`, `50-`, `60-` และลบ `devflow/runs/`
|
|
77
|
+
* **หากเป็นโครงสร้าง Decade-Numbered อยู่แล้ว**: ระบบจะไม่ทำอะไรกับโฟลเดอร์ (No-op) และดำเนินการอัปเดตโค้ดต่อไปอย่างปลอดภัย
|
|
78
|
+
|
|
79
|
+
### 2) สั่ง Migrate ด้วยตัวเองโดยตรง:
|
|
80
|
+
หากต้องการย้ายโครงสร้างทันทีโดยไม่อัปเดตส่วนอื่น สามารถสั่งได้ผ่านคำสั่ง:
|
|
81
|
+
```bash
|
|
82
|
+
npx nexus-devflow migrate-structure
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 🛡️ 4. การรองรับ Client เวอร์ชันเก่า (Zero-Breaking Compatibility)
|
|
89
|
+
|
|
90
|
+
ระบบ DevFlow มีกลไก **Dynamic Workspace Path Resolver** (`resolveWorkspacePaths`) ที่จะ:
|
|
91
|
+
1. ตรวจสอบว่าโปรเจกต์ใช้โครงสร้าง Decade-Numbered หรือไม่ (มี `devflow/00-context` หรือไม่)
|
|
92
|
+
2. หากไม่พบ จะ **Fallback กลับไปหา Path เดิม (`devflow/context/`, `devflow/history/`) อัตโนมัติ 100%**
|
|
93
|
+
3. โปรเจกต์เก่าที่ยังไม่ได้ Migrate จึงยังคงรันคำสั่งสถานะ, ตรวจสอบคุณภาพ, และบิวด์ได้ตามปกติโดยไม่มีข้อผิดพลาด
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|