trellis update --migrate / init-context. Not breaking; no --migrate required.
Bug Fixes
1. trellis- prefix missing from codex / kiro skill paths
get_trellis_command_path in cli_adapter.py returned bare-name paths, ignoring the prefix 0.5.0-beta.0 introduced across 60+ skill dirs. check.jsonl generated by task.py init-context on codex / kiro projects pointed at non-existent files.
2. .agents/skills/ blocked Kiro / Antigravity / Windsurf detection
.agents/skills/ is a shared cross-platform layer (Codex writes, Amp / Cline / Kimi Code / Warp consume via agentskills.io). It was listed in _ALL_PLATFORM_CONFIG_DIRS, blocking every detection branch whose exclude set didn’t name it. detect_platform fell through to claude.
- Removed
".agents"from_ALL_PLATFORM_CONFIG_DIRS. - Added a guarded codex fallback at the end of
detect_platform:
3. init-context now accepts --platform
Skills / commands are rendered per-platform; the invoking platform is known at render time. Threaded it end-to-end instead of re-detecting from the filesystem.
{{CLI_FLAG}}placeholder added toresolvePlaceholders— resolves to the platform’scliFlagat configure time.TemplateContextgainedcliFlag: CliFlag, asserted againstAIToolConfig.cliFlagby a registry invariant test.task.py init-contextgained--platform, threaded throughcmd_init_context→get_check_context(repo_root, platform=...)→get_cli_adapter(platform).codex/skills/start/SKILL.mdandcopilot/prompts/start.prompt.mdnow invoke:
--platform is omitted (CLI-direct invocation, TRELLIS_PLATFORM env var).
4. migrationGuide back-fill for 0.5.0-beta.0 and 0.5.0-beta.5
update.ts builds the migrate-to-<version> task PRD by concatenating every migrationGuide between fromVersion and toVersion. Both breaking 0.5.x releases shipped without the field; users upgrading from 0.4.x saw a PRD containing only 0.3/0.4 historical guides, with nothing about the actual 0.5 breaking changes.
| Manifest | Back-filled content |
|---|---|
0.5.0-beta.0.json | 0.4→0.5 narrative: skill renames, retired commands, Multi-Agent Pipeline removal, iFlow drop, task.json schema cleanup |
0.5.0-beta.5.json | Sub-agent rename: implement / check / research → trellis-* |
packages/cli/scripts/create-manifest.js now rejects manifests where breaking && recommendMigrate && !migrationGuide. .trellis/spec/cli/backend/migrations.md documents the rule.
End-to-end paths verified:
| From → To | Guides included |
|---|---|
0.4.0 → 0.5.0-beta.10 | 0.5.0-beta.0, 0.5.0-beta.5 |
0.3.9 → 0.5.0-beta.10 | 0.4.0-beta.1, 0.5.0-beta.0, 0.5.0-beta.5 |
0.5.0-beta.4 → 0.5.0-beta.10 | 0.5.0-beta.5 |
5. release:beta / release:rc / release:promote check docs-site changelog
packages/cli/scripts/check-docs-changelog.js runs before version bump. If docs-site/changelog/v<target>.mdx, docs-site/zh/changelog/v<target>.mdx, or their docs.json page entries are missing, the script exits 1. Added after beta.10 itself shipped without a docs-site changelog for this exact reason.
Upgrade
- Upgraded from beta.9 and already ran
trellis update --migrate:check.jsonlin tasks created during that run still points at the old bare-name paths. Re-runtask.py init-context <task-dir> <type> --platform <platform>on each, or recreate the task. - On 0.4.x, never migrated to 0.5 yet: the migration task PRD now contains the real 0.4→0.5 guide.
- Codex users with fresh clones missing
.codex/:detect_platformnow returnscodexinstead ofclaudewhen.agents/skills/trellis-*is the only platform signal present.
npm install -g @mindfoldhq/trellis@beta