Project metadata operations
The Project create/rename slice extends the existing Protocol → SDK → Node → CLI boundary. It does not add a renderer mutation path or an alternate database.
CLI commands accept bounded protocol-shaped JSON through --input-stdin. Each
is one two-phase command: --input-stdin --dry-run previews and
--confirm-stdin confirms the preview piped back:
maia project createmaia project rename
Use the preview result and exact confirmation input required by the public SDK schemas. Confirmation does not infer a target, revision or authorization from a name. Retain the same command identity when reconciling an unknown outcome; creating another command is not recovery.
contract/project-metadata.ts and storage/project-metadata-store.ts own the
stored preview and mutation boundary. Migration 36 precedes the recorded
Interaction tables in migration 37; neither migration rewrites existing IDs or
replaces a runtime database. Production or default-profile migration is not part
of the isolated test and publication workflow.
Colocated store/application tests, dispatcher tests, public SDK/CLI contract tests and the disposable built CLI fixture cover this slice. These checks do not grant release qualification, multi-user authority or permission to migrate a live Node.
Imported from Maia OS docs at a2175bb