Skip to content

Releases: Minokun/xdev

v2.0.4 — Codex CLI install target

12 May 02:13

Choose a tag to compare

Added

  • Codex CLI as a third install target alongside Claude Code and Windsurf. bin/install.sh codex simultaneously installs both Codex interfaces:
    • Custom Prompts — per-file symlinks at ~/.codex/prompts/xdev-*.md → invoke via /prompts:xdev-full-dev etc. (preserves argument-hint).
    • Skills — generated SKILL.md wrappers at ~/.agents/skills/xdev-*/ → invoke via $xdev-full-dev or 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 single git pull updates both interfaces.
  • bin/install.sh now accepts multiple agent targets in one call (e.g. claude codex, windsurf codex); all is shorthand for claude windsurf codex.

Changed

  • bin/install.sh --help and both READMEs document the new codex target, 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 with codex (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 $skill path 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, $ARGUMENTS placeholder 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 + codex

Then 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

11 May 08:48

Choose a tag to compare

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-dev planning: 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 boundary to full-dev-impl task packets so executors know the intended blast radius and must return NEEDS_RECLASSIFY when 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 /ship consumes prior After Diff Gate results instead of generating a new gate during release.

For contributors

  • See docs/CHANGELOG.md for the design rationale and why the implementation lives in full-dev-design.md + full-dev-impl.md rather than only full-dev.md.

v2.0.2 — Harden auto-completion + fix stage 8 ordering

11 May 07:19

Choose a tag to compare

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 / DONE token disambiguated. Mainline must not use "Done / 完成 / 阶段总结" to end a turn while work remains; subagent reply DONE status tokens are still valid internal signals.
  • Stage 8 (learn) now runs before state/worktree cleanup in both combined full-dev and split full-dev-impl. Previously the state file, audit sidecar, and implementation worktree were deleted before learn, so learn had 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 Summary and 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 verify pwd matches git rev-parse --show-toplevel before running rg / grep / test -f / test commands, preventing the backend/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 with No such file or directory

Three defence layers are now in place: textual invariant → context budget → path self-check.

v2.0.1 - Safer ship workflow

10 May 16:15

Choose a tag to compare

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 main or master.
  • Cleaner worktree lifecycle: implementation worktrees copy root .env* / .envrc files, 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, a VERSION file, 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 windsurf if new or renamed workflow files appear in future releases.