Releases: Minokun/xdev
v2.0.4 — Codex CLI install target
Added
- Codex CLI as a third install target alongside Claude Code and Windsurf.
bin/install.sh codexsimultaneously installs both Codex interfaces:- Custom Prompts — per-file symlinks at
~/.codex/prompts/xdev-*.md→ invoke via/prompts:xdev-full-devetc. (preservesargument-hint). - Skills — generated
SKILL.mdwrappers at~/.agents/skills/xdev-*/→ invoke via$xdev-full-devor rely on Codex's implicit description matching. Wrappers are marked<!-- xdev-generated -->and regenerated idempotently on every install; the body delegates to the absolute path of the source workflow so a singlegit pullupdates both interfaces.
- Custom Prompts — per-file symlinks at
bin/install.shnow accepts multiple agent targets in one call (e.g.claude codex,windsurf codex);allis shorthand forclaude windsurf codex.
Changed
bin/install.sh --helpand both READMEs document the newcodextarget, the multi-select syntax, and a per-agent invocation table covering Claude Code, Windsurf, Codex prompts, and Codex skills.--target <path>now explicitly errors when combined withcodex(codex install has two fixed paths).
Notes
- Codex's Custom Prompts surface is officially deprecated in favour of Skills, but still fully supported. xdev installs both so users can pick the explicit
/prompts:path or the implicit-matching$skillpath per task. - Windsurf source files are deliberately not unified with
claude-code/. The two source trees have intentional content drift (frontmatter format, command self-references,$ARGUMENTSplaceholder usage, project-context file naming). Codex was unifiable because it natively accepts Claude Code's frontmatter; Windsurf was not.
Quick start
cd ~/.claude/skills/xdev && git pull
bash bin/install.sh codex # codex only
bash bin/install.sh claude codex # multi-select
bash bin/install.sh all # claude + windsurf + codexThen in Codex CLI:
/prompts:xdev-full-dev <your request> # explicit prompt invocation
$xdev-full-dev # explicit skill invocation
See docs/CHANGELOG.md for the directional rationale and the alternatives that were tried and rejected.
v2.0.3
Added
- Added Light Impact Gate to
/iterate: each quick iteration now performs a bounded Step A anchor scan, escalates to a structured Impact Gate only when risk signals appear, and records an After Diff Gate before quality checks. - Added task-level Impact Gate requirements to
full-devplanning: L2 tasks carry a simplified impact summary, L3 tasks carry the full template, and plan validation now treats missing Impact Gate data as a HIGH issue. - Added
Impact boundarytofull-dev-impltask packets so executors know the intended blast radius and must returnNEEDS_RECLASSIFYwhen they discover out-of-bound impact.
Changed
- Documented Light Impact Gate in both README files as a built-in lightweight precheck, not a GitNexus dependency or Graphify replacement.
- Limited Risk trigger keyword scans to candidate files, anchor neighborhoods, and diff hunks to avoid false escalation from high-frequency repo documentation terms.
- Clarified that
/shipconsumes prior After Diff Gate results instead of generating a new gate during release.
For contributors
- See
docs/CHANGELOG.mdfor the design rationale and why the implementation lives infull-dev-design.md+full-dev-impl.mdrather than onlyfull-dev.md.
v2.0.2 — Harden auto-completion + fix stage 8 ordering
v2.0.2 — Harden auto-completion + fix stage 8 ordering
Targets the long-standing complaint that /full-dev and /full-dev-impl would auto-stop after the design phase was approved, forcing the user to keep nudging "完成了吗 / 为什么停" before the mainline resumed. This release closes the three root causes diagnosed from a 2,900-event session log: invariant ambiguity, auto-compact momentum loss, and a stage 7/8 ordering bug.
Fixed
- Mainline no longer auto-stops mid-implementation. Added a hard auto-completion invariant in all four workflow files (claude-code + windsurf × full-dev + full-dev-impl) that overrides Intent Guard's "question = clarify" fallback for pure status questions. The mainline answers in one line and immediately continues the remaining queue.
Done/DONEtoken disambiguated. Mainline must not use "Done / 完成 / 阶段总结" to end a turn while work remains; subagent replyDONEstatus tokens are still valid internal signals.- Stage 8 (
learn) now runs before state/worktree cleanup in both combinedfull-devand splitfull-dev-impl. Previously the state file, audit sidecar, and implementation worktree were deleted beforelearn, solearnhad no diff context to evaluate triggers — effectively making it a no-op. - Unified stage-7-vs-stage-8 termination wording across combined and split flows so the invariant references a single terminal state: ship → learn → cleanup.
Added
- Mainline context budget rule (
full-dev-impl.md§4.1.1 #8): mainline must not Read / Grep business source files more than 3 times within a single batch (CLAUDE.md, design doc, implementation plan, state file, Handoff Summary, task packet templates, and Graphify output are excluded). After an auto-compact, the first action must be reading## Handoff Summaryand immediately dispatching the next batch — no recap, no project rescan, no user check-in. Defends against the auto-compact momentum loss observed during long sessions (7 compactions in the diagnosed 2.7M-token session). - Extended CWD/path collision rule to the fast path (
full-dev-impl.md§4.4.1). The mainline must use absolute paths or verifypwdmatchesgit rev-parse --show-toplevelbefore runningrg/grep/test -f/ test commands, preventing thebackend/backend/...drift that surfaces when the Claude Code Bash tool persists a subdirectory cwd.
Upgrade notes
No breaking changes. Re-install the relevant skills / slash commands from claude-code/ or windsurf/ to pick up the new wording. State file schema is unchanged.
Diagnostic context
The fixes are grounded in a post-mortem of a real session log that exhibited:
- 7 auto-compactions in one workflow run (
This session is being continued from a previous conversation that ran out of context) - 2 user interventions of the form "全部完成了吗 / 没完成为什么停下来" — exactly the status-question pattern the invariant now neutralises
- 1 shell cwd drift causing
rg "backend/api/routes/settings.py"to fail withNo such file or directory
Three defence layers are now in place: textual invariant → context budget → path self-check.
v2.0.1 - Safer ship workflow
Highlights
- Safer ship workflow: xdev now enters an implementation worktree before full-dev produces design, visual, plan, or implementation commits.
- Base branch protection: ship flows now stop before publishing from
mainormaster. - Cleaner worktree lifecycle: implementation worktrees copy root
.env*/.envrcfiles, remind users to reinstall ignored dependencies, and clean up after ship. - More portable workflow snippets: state-file updates now use Python instead of macOS-only
sed -i ''commands. - Better release discoverability: the project now has a root
CHANGELOG.md, aVERSIONfile, and README links to release notes.
Upgrade notes
- Current version:
v2.0.1. - Existing users can update with
cd ~/.claude/skills/xdev && git pull. - Windsurf users should rerun
bash ~/.claude/skills/xdev/bin/install.sh windsurfif new or renamed workflow files appear in future releases.