Migrate / Migrate from v1 to v2

M01 / Migrate

Migrate from v1 to v2

Move from Guild Stack v1 to v2: command renames, settings.json migration, rigor flags, phase verbs, and the approval-gated lifecycle.
First move
Map commands and settings, then test one run
Expected receipt
verified cutover record
Last verified
Jul 17, 2026

Page evidence and guidance

Read as StartRenamed commands, changed defaults, preserved data, and the safest upgrade path. SteerConfig translation, compatibility surfaces, host profiles, docs, and rollback. ExtendCanonical host IDs, contracts, shims, parity tests, cutover gates, and removal.

Guild Stack v2 is the clean command surface for the gated specialist workflow: six phase verbs, one --rigor profile, .guild/settings.json, opt-in initiatives, host-adapted execution, and evidence under .guild/.

Operational mapMigrate the control surface, then prove one full run.
Before
  1. nested commandslegacy names
  2. config.ymllegacy settings
  3. claimed supportlabel-led state
After
  1. flat verbsone command surface
  2. settings.jsonclosed-key config
  3. receipt-backed stateverified promotion
v1's nested command names and config.yml become v2's flat verbs and settings.json.

v1

Nested command names (guild-team, guild-wiki, guild-evolve...), .guild/config.yml, and host assumptions baked into copy.

v2

Flat /guild:<verb> commands, one .guild/settings.json with closed-key validation, and 16 canonical hosts with receipt-backed Support labels.

FAST PATH

StepDo thisProof or safety check
1Run /guild:migrateDefault mode is dry-run; it writes a migration report and does not convert live state.
2Read the reportConfirm whether the tree is v1, v2, mixed, corrupt, or empty.
3Replace v1 command namesUse the command panel below; bare /guild is not a v2 command.
4Convert configMove .guild/config.yml into .guild/settings.json; unknown keys are rejected.
5Recheck hostsUse current Support labels and /hosts, not v1 assumptions.
6Migrate only when readyRun /guild:migrate --mode=migrate for the snapshot-first conversion.
/guild:migrate

Default /guild:migrate is a dry run. It detects the current .guild/ shape, prints the conversion plan, and writes only the migration report. Use /guild:migrate --mode=migrate only after you are ready for the snapshot-first conversion.

What Changed Conceptually

v1 exposed a long linear spine. v2 keeps that work, but organizes it as one state machine with six phases:

init -> ideate -> plan -> build -> qa -> ops

The linear entrypoint remains /guild:guild [brief]; it walks the lifecycle and surfaces gates as it goes. Phase entrypoints are /guild:init, /guild:ideate, /guild:plan, /guild:build, /guild:qa, and /guild:ops. Bare /guild is not a command.

Initiatives are opt-in. A one-off run is still first-class. Guild Stack asks before attaching a run to an initiative, and D8 initiative closure keeps three separate legs: execution verified, release readiness resolved, and documentation sync resolved.

Command Migration Panel

v1 commandv2 replacementWhat changed
/guild:guild [brief] with loop/review tuning flags/guild:guild [brief] plus phase verbsmain entry remains; phase detection and gates are surfaced
/guild:guild-team propose/guild:planteam composition moved inside Planning
/guild:guild-team show/guild:statusstatus shows active team/run state
/guild:guild-team editedit at the plan/team gateediting is an approval-gate response
/guild:guild-team --allow-larger/guild:plan --team-size=Nlarger teams are explicit
`/guild:guild-wiki ingestquerylint`
/guild:guild-evolve/guild:evolveredundant command prefix dropped
/guild:guild-rollback/guild:rollbackredundant command prefix dropped
/guild:guild-stats/guild:statsredundant command prefix dropped
/guild:guild-audit/guild:auditredundant command prefix dropped
/guild:guild-diagnose/guild:fixverb renamed; diagnose skill remains internal
/guild:guild-init design-era name/guild:initphase command
/guild:guild-initiative ... design-era name/guild:initiative ...opt-in initiative command

Removed names do not execute work in v2.0. Unknown subcommands print usage help and exit non-zero.

Flag Migration Panel

Use --rigor=quick|standard|deep for the normal upgrade path. It expands the common loop, cap, and review posture and prints the expanded profile before the first gate.

v1 flagv2 equivalent
--loops=<...>still accepted; prefer --rigor or settings.json loops
--loop-cap=Nstill accepted; persistent key is loop_cap
--codex-cap=Nstill accepted; persistent key is codex_cap
--codex-review--review=cross
--auto-approve=spec-and-plan--auto-approve=spec,plan
--auto-approve=implementation--auto-approve=build
--auto-approve=allstill accepted; hard-set approvals still ask
--restart as the first argument/guild:resume --restart
--deep-scan on init--learn or defaults.auto_learn: true

Config Migration Panel

v2 uses one config file:

.guild/settings.json

The v1 .guild/config.yml reader was removed in v2.0. If config.yml is still present, run /guild:migrate; do not assume runtime reads it.

v1 configv2 configNotes
loops:loops: or rigor:prefer rigor; loops is a power-user override
loop_cap:loop_cap:same setting name
codex_cap:codex_cap:same setting name
codex_review: truereview: "cross"cross-host review posture
codex_review: falsereview: "local"same-host/local posture
auto_approve: noneauto_approve: []no soft gates pre-cleared
auto_approve: spec-and-planauto_approve: ["spec", "plan"]split token list
auto_approve: implementationauto_approve: ["build"]build token
auto_approve: allauto_approve: ["all"]hard-set approvals still ask
defaults.agent_team: trueagent_mode: "team"top-level key
defaults.agent_team: falseagent_mode: "subagent"top-level key
absent team defaultagent_mode: "auto"default resolver behavior

Unknown keys are rejected by validation. No config key turns wiki promotion into an automatic path; knowledge promotion remains human-gated.

Host Migration Panel

Do not carry v1 host assumptions forward. v2 uses 16 canonical host targets through one adapter contract, but hosts do not all expose identical runtime behavior. The same lifecycle, artifacts, gates, and receipts are the goal; host capability gaps degrade with an observable on-disk signal.

Support labelMeaning
Supportedcommitted verification receipt exists
Supported (beta)installable target exists; operator-box receipt is pending
Supported (app)app surface uses a degraded bootstrap or enqueue path
Supported (connector)connector path with serial/enqueue behavior and approval needs

The Support label is presentation language. Shipped reality still comes from the evidence-derived public state and committed receipts. Recheck current host claims on Host support, especially for app and connector surfaces.

Roster Migration Panel (v2.2)

The v2.2 roster change, shipped on the beta (next) channel, replaces the host-registered specialist roster with two registered machinery agents (advisor, developer) plus 15 read-only domain specialist type templates at templates/specialists/<role>.md. A domain specialist now joins a team as a project instance under .guild/agents/, minted deterministically from the template library. Groups, default tiers, and trigger boundaries are unchanged.

Existing projects with team files that still point at shipped domain agents (definition_source: shipped entries) are fixed with one command:

npx tsx <plugin>/scripts/roster-resolve.ts migrate-team-roster --cwd .

It mints the missing instances and re-points the team entries; machinery entries are untouched. Re-composing the phase team achieves the same result. Optionally, mint <role> --host-native also projects an instance into .claude/agents/ for Claude host-native routing; the projection is marker-stamped and never clobbers a hand-authored file.

Knowledge, Quality, And Operations

The canonical durable knowledge store is .guild/wiki/**. The KnowledgeGraph, knowledge-links, recall projections, and optional .guild/index.sqlite are derived and rebuildable. Learning writes proposals and candidates. It does not promote wiki pages, decisions, skills, agents, or policy by itself.

/guild:qa and /guild:ops are shipped v2 phase entrypoints, not reserved notices. Quality computes release readiness from discovered evidence. Operations executes runbook classes such as release, monitoring, incident, rollback, and maintenance. Incident and rollback are never autonomous, and destructive, network, and spend steps always ask.

Verification checklist

A migration is not proven by renamed commands alone. Before retiring the v1 path:

  • Keep the dry-run migration report and the pre-migration snapshot.
  • Validate .guild/settings.json and confirm each migrated key has the intended value.
  • Replace removed command names and test the current command surface.
  • Recheck the selected host against current support evidence and capability limits.
  • Complete one bounded project run that references an approved spec, team, and plan, then inspect its handoff, review, verification, and trace receipts.
  • Keep the rollback snapshot until the verified run and its docs or support claims have been reviewed.

Source Anchors

This page is anchored to docs/v2/lifecycle.md, docs/v2/knowledge-memory.md, docs/v2/host-adversarial-adaptability.md, docs/v2/config-surfaces.md, docs/v2/distribution.md, docs/v2/host-adapter-migration-spec.md, and docs/v2/architecture/modules/migrations.md.

See Also