agentic-sdlc-wizard 1.41.1 → 1.42.2
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/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,24 @@ All notable changes to the SDLC Wizard.
|
|
|
4
4
|
|
|
5
5
|
> **Note:** This changelog is for humans to read. Don't manually apply these changes - just run the wizard ("Check for SDLC wizard updates") and it handles everything automatically.
|
|
6
6
|
|
|
7
|
+
## [1.42.2] - 2026-04-26
|
|
8
|
+
|
|
9
|
+
### Documented
|
|
10
|
+
|
|
11
|
+
- **`pr_number` opt-in for PreCompact self-heal** (ROADMAP #209 closure). The `precompact-seam-check.sh` hook self-heals on `PENDING_*` handoffs whose linked PR has merged: when handoff has `pr_number` and `gh pr view N --json state` returns `MERGED`, hook treats handoff as implicit CERTIFIED and unblocks `/compact` silently. The behavior shipped earlier alongside ROADMAP #229 (stale-expire fallback) but was undocumented in the handoff template schemas — meaning consumers had no way to discover the opt-in. Documented `pr_number` as an optional self-heal field in all 3 handoff schemas: `skills/sdlc/SKILL.md` (Step 1: Mission-First Handoff), `CLAUDE_CODE_SDLC_WIZARD.md` (Round 1: Initial Review + cross-model review section). New `test_handoff_template_documents_pr_number` in `tests/test-hooks.sh` (129 hook tests, 1 new) enforces template/doc parity going forward — a future schema edit that drops `pr_number` will fail this test. Hit live in this repo 2026-04-19 (PR #205) and 2026-04-26 (PR #253) — original handoffs lacked the field and fell through to the 14-day stale-expire fallback. Together with #229, #209 closes the "stuck PENDING handoff blocks /compact forever" footgun from both directions: PR-linked reviews self-heal on merge (instant), unlinked reviews auto-expire on mtime (14d default).
|
|
12
|
+
|
|
13
|
+
## [1.42.1] - 2026-04-26
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **Skip Claude PR review on wizard self-PRs** (CI hygiene). The `review` job in `pr-review.yml` calls `claude-code-action@v1` which requires `ANTHROPIC_API_KEY` with positive credit balance. The wizard maintainer keeps that key's balance dead as an "API canary" so unexpected API draws fail CI. Result: every wizard self-PR's `review` job was failing with "Credit balance is too low" — seven PRs (v1.39.0–v1.42.0) shipped to main with red CI, normalizing red and masking any real review failure. Fixed: workflow `if:` gate now skips the review job when `github.repository == 'BaseInfinity/claude-sdlc-wizard'`. Consumer projects using `pr-review.yml` are unaffected — the skip only fires on the wizard's own repo. The wizard uses Codex (`codex exec` xhigh) for cross-model review on its own PRs, so the Claude PR review is redundant on self-repo. Documented in `CI_CD.md` → "Self-PR Skip on the Wizard Repo". New `tests/test-self-pr-review-skip.sh` (6 tests) prevents regression.
|
|
18
|
+
|
|
19
|
+
## [1.42.0] - 2026-04-26
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- **AGENTS.md interop detection in setup** (ROADMAP #205, phase a). Setup wizard now scans for `AGENTS.md` (cross-tool agent-instructions standard adopted by Cursor/Continue.dev/Aider, [CC issue #6235](https://github.com/anthropics/claude-code/issues/6235)) during Step 1 auto-scan. If found, new Step 4.5 surfaces a 3-way decision: dual-maintain (default), merge (manual in phase a), or skip. The choice is recorded as a one-line comment in the project's `SDLC.md` for the user's reference — `/update-wizard` does NOT yet parse this metadata (phase d). No wizard-side merge or symlink behavior in v1.42.0 — option B in the prompt is "record intent, copy by hand"; phase (b) will add the copy helper. Phase (d) drift-consistency test also deferred. New `tests/test-agents-md-interop.sh` (7 tests) asserts setup auto-scan, decision step structure, wizard doc reference + phase-scope honesty.
|
|
24
|
+
|
|
7
25
|
## [1.41.1] - 2026-04-26
|
|
8
26
|
|
|
9
27
|
### Added
|
|
@@ -353,6 +353,22 @@ Claude Code now has built-in auto-memory that persists context across sessions.
|
|
|
353
353
|
|
|
354
354
|
**No changes needed**: The wizard's hooks and skills work alongside auto-memory. Memory stores preferences and context; the wizard enforces process.
|
|
355
355
|
|
|
356
|
+
### AGENTS.md interop (cross-tool standard, ROADMAP #205)
|
|
357
|
+
|
|
358
|
+
`AGENTS.md` is the cross-tool agent-instructions standard adopted by Cursor, Continue.dev, Aider, and other agentic IDEs ([CC issue #6235](https://github.com/anthropics/claude-code/issues/6235), 276 comments). It plays the same role as `CLAUDE.md` does for Claude Code, but reads as agent-agnostic.
|
|
359
|
+
|
|
360
|
+
**Wizard behavior** (v1.42.0, phase a only):
|
|
361
|
+
|
|
362
|
+
- **Setup skill detects existing AGENTS.md** during Step 1 auto-scan. If found, Step 4.5 surfaces a 3-way decision: dual-maintain (default, recommended), merge (manual in phase a), or skip. The user's choice is recorded as a one-line comment in their project's `SDLC.md` for their own reference. **`/update-wizard` does NOT parse this comment** — that wiring is phase (d) work, not v1.42.0 scope.
|
|
363
|
+
- **No automatic merge / symlink yet** — phase (a) is detection + decision surfacing only. Option B in the prompt is "record your intent, do the copy by hand"; the wizard does not perform any merge in this phase.
|
|
364
|
+
|
|
365
|
+
**Deferred phases** (not in v1.42.0 scope):
|
|
366
|
+
|
|
367
|
+
- **Phase (b)**: when generating `CLAUDE.md` fresh (no AGENTS.md exists), offer to ALSO write AGENTS.md (symlinked or content-duplicated). Requires choosing a sync strategy.
|
|
368
|
+
- **Phase (d)**: cross-document-consistency drift test — fail CI if `CLAUDE.md` and `AGENTS.md` drift apart on key sections (Commands, Architecture, etc.).
|
|
369
|
+
|
|
370
|
+
**Why phase (a) only**: phase (a) ships detection signal value with zero new merge logic. The dual-maintain decision is reversible per-project; users who pick A get a sensible default and can opt up to phase (b) when it ships. Multi-tool sync is a real engineering problem (which file is source of truth? on edit, propagate which way?) that deserves its own design pass before automating.
|
|
371
|
+
|
|
356
372
|
### Built-in Commands (v2.1.59-v2.1.76)
|
|
357
373
|
|
|
358
374
|
New built-in commands available to use alongside the wizard:
|
|
@@ -2318,9 +2334,11 @@ PLANNING → DOCS → TDD RED → TDD GREEN → Tests Pass → Self-Review
|
|
|
2318
2334
|
"round": 1,
|
|
2319
2335
|
"files_changed": ["src/auth.ts", "tests/auth.test.ts"],
|
|
2320
2336
|
"review_instructions": "Review for security, edge cases, and correctness",
|
|
2321
|
-
"artifact_path": ".reviews/feature-xyz-001/"
|
|
2337
|
+
"artifact_path": ".reviews/feature-xyz-001/",
|
|
2338
|
+
"pr_number": 205
|
|
2322
2339
|
}
|
|
2323
2340
|
```
|
|
2341
|
+
`pr_number` (optional) is the PreCompact self-heal opt-in (ROADMAP #209). When set, the `precompact-seam-check.sh` hook queries `gh pr view N --json state` on every manual `/compact` and treats MERGED as implicit CERTIFIED — so a forgotten PENDING handoff doesn't block every future compact. Omit for ad-hoc reviews not tied to a PR.
|
|
2324
2342
|
2. Run the independent reviewer:
|
|
2325
2343
|
```bash
|
|
2326
2344
|
codex exec \
|
|
@@ -2900,7 +2918,7 @@ If deployment fails or post-deploy verification catches issues:
|
|
|
2900
2918
|
|
|
2901
2919
|
**SDLC.md:**
|
|
2902
2920
|
```markdown
|
|
2903
|
-
<!-- SDLC Wizard Version: 1.
|
|
2921
|
+
<!-- SDLC Wizard Version: 1.42.2 -->
|
|
2904
2922
|
<!-- Setup Date: [DATE] -->
|
|
2905
2923
|
<!-- Completed Steps: step-0.1, step-0.2, step-0.4, step-1, step-2, step-3, step-4, step-5, step-6, step-7, step-8, step-9 -->
|
|
2906
2924
|
<!-- Git Workflow: [PRs or Solo] -->
|
|
@@ -3681,12 +3699,15 @@ Use an independent AI model from a different company as a code reviewer. The aut
|
|
|
3681
3699
|
],
|
|
3682
3700
|
"review_instructions": "Focus on security and edge cases. Assume bugs may be present until proven otherwise.",
|
|
3683
3701
|
"preflight_path": ".reviews/preflight-feature-xyz-001.md",
|
|
3684
|
-
"artifact_path": ".reviews/feature-xyz-001/"
|
|
3702
|
+
"artifact_path": ".reviews/feature-xyz-001/",
|
|
3703
|
+
"pr_number": 205
|
|
3685
3704
|
}
|
|
3686
3705
|
```
|
|
3687
3706
|
|
|
3688
3707
|
The `mission/success/failure` fields give the reviewer context. Without them, you get generic "looks good" feedback. With them, reviewers dig into source files and verify specific claims. The `verification_checklist` tells the reviewer exactly what to verify — not "review this" but specific items with file:line references.
|
|
3689
3708
|
|
|
3709
|
+
`pr_number` (optional) is the PreCompact self-heal opt-in (ROADMAP #209). Set it when the review tracks a specific PR — the `precompact-seam-check.sh` hook queries `gh pr view N --json state` on every manual `/compact` and treats MERGED as implicit CERTIFIED, so a forgotten PENDING handoff doesn't lock you out of compaction after the PR ships. Omit for ad-hoc reviews not tied to a PR.
|
|
3710
|
+
|
|
3690
3711
|
3. Run the independent reviewer (Round 1 — full review). These commands use your Codex default model — configure it to the latest, most capable model available:
|
|
3691
3712
|
|
|
3692
3713
|
```bash
|
|
@@ -3962,7 +3983,7 @@ Walk through updates? (y/n)
|
|
|
3962
3983
|
Store wizard state in `SDLC.md` as metadata comments (invisible to readers, parseable by Claude):
|
|
3963
3984
|
|
|
3964
3985
|
```markdown
|
|
3965
|
-
<!-- SDLC Wizard Version: 1.
|
|
3986
|
+
<!-- SDLC Wizard Version: 1.42.2 -->
|
|
3966
3987
|
<!-- Setup Date: 2026-01-24 -->
|
|
3967
3988
|
<!-- Completed Steps: step-0.1, step-0.2, step-1, step-2, step-3, step-4, step-5, step-6, step-7, step-8, step-9 -->
|
|
3968
3989
|
<!-- Git Workflow: PRs -->
|
package/package.json
CHANGED
package/skills/sdlc/SKILL.md
CHANGED
|
@@ -267,7 +267,8 @@ After self-review and preflight pass, write `.reviews/handoff.json`:
|
|
|
267
267
|
],
|
|
268
268
|
"review_instructions": "Focus on security and edge cases. Be strict — assume bugs may be present until proven otherwise.",
|
|
269
269
|
"preflight_path": ".reviews/preflight-feature-xyz-001.md",
|
|
270
|
-
"artifact_path": ".reviews/feature-xyz-001/"
|
|
270
|
+
"artifact_path": ".reviews/feature-xyz-001/",
|
|
271
|
+
"pr_number": 205
|
|
271
272
|
}
|
|
272
273
|
```
|
|
273
274
|
|
|
@@ -275,6 +276,7 @@ After self-review and preflight pass, write `.reviews/handoff.json`:
|
|
|
275
276
|
- `mission/success/failure` — Gives the reviewer context. Without this, you get generic "looks good" feedback. With it, reviewers read raw source files and verify specific claims (proven across 4 repos)
|
|
276
277
|
- `verification_checklist` — Specific things to verify with file:line references. NOT "review for correctness" — that's too vague. Each item is independently verifiable
|
|
277
278
|
- `preflight_path` — Shows the reviewer what you already checked, so they focus on what you might have missed
|
|
279
|
+
- `pr_number` (optional) — PreCompact self-heal opt-in (ROADMAP #209). When the review tracks a specific PR, set this. The `precompact-seam-check.sh` hook queries `gh pr view N --json state` on every manual `/compact` and, if the PR is MERGED, treats this handoff as implicit CERTIFIED — unblocking `/compact` even if `status` is still `PENDING_*`. Without `pr_number`, a forgotten PENDING handoff blocks every future manual compact until you flip status by hand or hit the `SDLC_HANDOFF_STALE_DAYS` (default 14) auto-expire fallback. Omit for ad-hoc reviews not tied to a PR.
|
|
278
280
|
|
|
279
281
|
### Step 2: Run the Independent Reviewer
|
|
280
282
|
|
package/skills/setup/SKILL.md
CHANGED
|
@@ -38,7 +38,7 @@ Scan the project root for:
|
|
|
38
38
|
- Deployment: Dockerfile, vercel.json, fly.toml, netlify.toml, Procfile, k8s/
|
|
39
39
|
- Design system: tailwind.config.*, .storybook/, theme files, CSS custom properties
|
|
40
40
|
- Branding assets: BRANDING.md, brand/, logos/, style-guide.md, brand-voice.md, tone-of-voice.*
|
|
41
|
-
- Existing docs: README.md, CLAUDE.md, ARCHITECTURE.md
|
|
41
|
+
- Existing docs: README.md, CLAUDE.md, ARCHITECTURE.md, AGENTS.md (cross-tool agent-instructions standard, ROADMAP #205)
|
|
42
42
|
- Scripts in package.json (lint, test, build, typecheck, etc.)
|
|
43
43
|
- Database config files (prisma/, drizzle.config.*, knexfile.*, .env with DB_*)
|
|
44
44
|
- Cache config (redis.conf, .env with REDIS_*)
|
|
@@ -108,6 +108,34 @@ Using detected + confirmed values, generate `CLAUDE.md` with:
|
|
|
108
108
|
|
|
109
109
|
Reference: See "Step 8" in `CLAUDE_CODE_SDLC_WIZARD.md` for the full template.
|
|
110
110
|
|
|
111
|
+
### Step 4.5: AGENTS.md Interop Detection (ROADMAP #205, phase a)
|
|
112
|
+
|
|
113
|
+
`AGENTS.md` is the cross-tool agent-instructions file converged on by Cursor, Continue.dev, Aider, and other agentic IDEs (CC issue #6235, 276 comments). If the user already has `AGENTS.md` in the repo, the wizard's `CLAUDE.md` overlaps in scope; ignoring it leads to drift between the two files.
|
|
114
|
+
|
|
115
|
+
**Detection** (already in Step 1's auto-scan): does `./AGENTS.md` exist?
|
|
116
|
+
|
|
117
|
+
**If YES, surface the dual-maintain decision:**
|
|
118
|
+
|
|
119
|
+
> Detected `AGENTS.md` (cross-tool agent-instructions standard, used by Cursor/Continue.dev/Aider). The wizard's `CLAUDE.md` covers the same ground for Claude Code. Three options:
|
|
120
|
+
>
|
|
121
|
+
> **A.** **Dual-maintain (recommended)**: keep both files. `CLAUDE.md` for Claude Code (loaded into every session), `AGENTS.md` for other tools. Sync manually when changing one — phase (a) does not auto-merge. Future work (phase d) will add a drift-consistency test.
|
|
122
|
+
>
|
|
123
|
+
> **B.** **Merge** (manual in phase a): record your intent to converge on a single source of truth. The wizard does NOT copy content for you in v1.42.0 — phase (b) will add the copy/symlink helper. For now, pick this if you plan to merge by hand and just want the wizard to know.
|
|
124
|
+
>
|
|
125
|
+
> **C.** **Skip**: leave AGENTS.md alone. The wizard generates only `CLAUDE.md`. AGENTS.md will go stale relative to your CC-specific instructions.
|
|
126
|
+
>
|
|
127
|
+
> Pick A, B, or C: `[A/B/C]`
|
|
128
|
+
|
|
129
|
+
Default if no response: **A** (dual-maintain). Document the user's choice as a one-line comment in their project's `SDLC.md` (e.g. `<!-- AGENTS.md interop: dual-maintain (per ROADMAP #205 phase a) -->`). v1.42.0 does NOT teach `/update-wizard` to parse this metadata key — that's phase (d) work. The comment is for the user's own reference and for whatever future `/update-wizard` version adds AGENTS-aware behavior.
|
|
130
|
+
|
|
131
|
+
**If NO `AGENTS.md` exists**: skip this step silently. Phase (b) of #205 (offer to ALSO generate AGENTS.md alongside CLAUDE.md) is deferred — not in v1.42.0 scope.
|
|
132
|
+
|
|
133
|
+
**Phase scope honest summary**:
|
|
134
|
+
- Phase (a) — DONE in v1.42.0: detection + decision surfacing only.
|
|
135
|
+
- Phase (b) — deferred: write/symlink AGENTS.md when generating CLAUDE.md fresh.
|
|
136
|
+
- Phase (c) — partial: this step IS the setup-skill update.
|
|
137
|
+
- Phase (d) — deferred: cross-document-consistency drift test.
|
|
138
|
+
|
|
111
139
|
### Step 5: Generate SDLC.md
|
|
112
140
|
|
|
113
141
|
Generate `SDLC.md` with the full SDLC checklist customized to the project:
|
package/skills/update/SKILL.md
CHANGED
|
@@ -131,9 +131,12 @@ Parse all CHANGELOG entries between the user's installed version and the latest.
|
|
|
131
131
|
|
|
132
132
|
```
|
|
133
133
|
Installed: 1.24.0
|
|
134
|
-
Latest: 1.
|
|
134
|
+
Latest: 1.42.2
|
|
135
135
|
|
|
136
136
|
What changed:
|
|
137
|
+
- [1.42.2] PreCompact self-heal documented — ROADMAP #209 closure. Added `pr_number` opt-in to all 3 handoff template schemas (skill Step 1; wizard Round 1 + cross-model section). Self-heal logic shipped earlier with #229 but was undocumented, leaving the dead-code path. New `test_handoff_template_documents_pr_number` enforces template/doc parity. Together with #229 (mtime auto-expire) closes the "stuck PENDING handoff blocks /compact forever" footgun from both directions.
|
|
138
|
+
- [1.42.1] CI hygiene fix — skip Claude PR review on wizard self-PRs. 7 self-PRs (v1.39.0–v1.42.0) had shipped with red `review` job (API canary firing on dead credit balance). Treated as "expected" but red normalizes red. Workflow `if:` now skips review on `BaseInfinity/claude-sdlc-wizard` repo only; consumer projects unaffected. 7 quality tests, mutation-verified (== inversion fails).
|
|
139
|
+
- [1.42.0] AGENTS.md interop detection — ROADMAP #205 phase (a). Setup wizard auto-scan now lists AGENTS.md (cross-tool agent-instructions standard, CC issue #6235); new Step 4.5 surfaces a 3-way decision (dual-maintain / merge / skip) when AGENTS.md is detected. Phase (b) write-fresh and phase (d) drift-test deferred. 7 quality tests.
|
|
137
140
|
- [1.41.1] MCP-tool hooks audit — ROADMAP #218. Audited all 5 wizard hooks against CC 2.1.118's `type: "mcp_tool"` migration option; conclusion: all stay bash (portability to Codex/OpenCode siblings + exit-code gating semantics rule out MCP). Per-hook rationale documented under "Known CC Gotchas → MCP-tool hooks audit". 7 quality tests.
|
|
138
141
|
- [1.41.0] Post-mortem 2026-04-23 lessons folded into wizard — ROADMAP #221. New "Known CC Gotchas" section documents extended-thinking + caching + idle-session failure mode. Recommended Effort section cites the post-mortem as third-party evidence ("don't rely on CC default — set effort yourself"). Brevity-cap audit clean, regression guard added. 7 quality tests.
|
|
139
142
|
- [1.40.1] cleanupPeriodDays: 30 pinned in template — ROADMAP #225. CC 2.1.117 expanded `cleanupPeriodDays` to also cover `~/.claude/tasks/`. Aggressive defaults could prune in-progress TodoWrite checklists for paused long-running features. Wizard now ships a 30-day floor + documented gotcha. 7 quality tests.
|