Use this when a project already has an older Agentboard .platform/ layout and you want to upgrade it to the current metadata-driven format.
This guide is for:
- old projects with legacy
work/*.mdstream files - old projects with legacy
domains/*.mdfiles - old projects with a legacy multi-stream
work/BRIEF.md
This guide is not for:
- fresh installs
- projects that already pass
agentboard doctorwith no migration warnings
Current Agentboard expects:
- stream metadata frontmatter in
.platform/work/*.md - domain metadata frontmatter in
.platform/domains/*.md - repo-aware sync state in
.platform/scripts/sync-context.sh - a modern single-stream
work/BRIEF.md
The migration workflow upgrades those pieces in stages so you can preview before writing.
If agentboard is not on your PATH, use the full binary path:
'/absolute/path/to/agentboard/bin/agentboard'Example:
'/Users/danilulmashev/Documents/GitHub/agentboard/bin/agentboard'Then run this sequence inside the target project:
agentboard update
agentboard migrate
agentboard migrate --apply
agentboard brief-upgrade <stream-slug>
agentboard brief-upgrade <stream-slug> --apply
agentboard doctorIf you are using the full binary path, substitute it in each command.
agentboard updateThis refreshes shipped process files and preserves project-specific state.
For hub-style projects, update also preserves or rebuilds the repo sync list in .platform/scripts/sync-context.sh.
agentboard migrateThis does not change files. It shows which legacy stream and domain files can be upgraded safely.
Review the inferred:
domain_slugsrepo_ids
If the preview obviously maps a stream to the wrong domain, stop and fix that before applying.
agentboard migrate --applyThis upgrades legacy:
.platform/work/*.mdstream files.platform/domains/*.mddomain files
It intentionally does not rewrite a legacy multi-stream work/BRIEF.md.
Old projects often have a legacy work/BRIEF.md that points to multiple active streams.
Current Agentboard wants one brief focused on one active stream at a time.
Preview a rewritten BRIEF for the stream you want:
agentboard brief-upgrade <stream-slug>Examples:
agentboard brief-upgrade care-plan-pdf-flow
agentboard brief-upgrade medications-admin-api-errorsChoose the stream that should be the main session-entry brief right now.
agentboard brief-upgrade <stream-slug> --applyThis rewrites work/BRIEF.md into the modern single-stream format using:
- the chosen stream file
- that stream’s done criteria
- its key decisions
- its next action
- its domains and repo references
agentboard doctorTarget outcome:
Doctor passed
errors: 0 warnings: 0
If you already know the target BRIEF stream, the practical migration sequence is:
agentboard update
agentboard migrate
agentboard migrate --apply
agentboard brief-upgrade <stream-slug> --apply
agentboard doctorPick the stream that should answer this question:
If a fresh Claude/Codex/Gemini session starts right now, what is the one stream it should orient around first?
Good choices:
- the stream currently in active implementation
- the stream most likely to receive the next engineering session
- the stream with the highest user or delivery urgency
Bad choices:
- an old reference-only analysis stream
- a stream that is effectively parked
- a stream you do not want new sessions to resume by default
Remember: ACTIVE.md can still list multiple streams. The BRIEF is just the default orientation layer.
After a successful migration:
- stream files have
stream_id,slug,status,domain_slugs,repo_ids, and timestamps - domain files have
domain_id,slug,repo_ids, and timestamps doctorcan validate repo/domain/stream integrityhandoffcan produce low-token resume packets- old projects become compatible with the current workflow and validation model
Use the full binary path or install Agentboard onto your PATH.
Do not apply yet. Inspect the relevant legacy stream/domain files first.
Most likely causes:
- legacy
work/BRIEF.mdstill needsbrief-upgrade - repo registry in
.platform/repos.mdis incomplete - the project has unusual custom files that need a manual pass
Keep ACTIVE.md as-is. Just choose the stream that should be the default orientation entry point for now.
For each old project:
- Run
update - Run
migrate - Review the preview
- Run
migrate --apply - Preview
brief-upgradefor the stream you want - Run
brief-upgrade <stream-slug> --apply - Run
doctor - Commit the project changes in that project repo
That is the safest repeatable migration loop.