Skip to content

Add schema version field to base_manifest.yaml before team-facing expansion #319

@codeforester

Description

@codeforester

Problem

base_manifest.yaml has no version field. As the manifest gains new sections — health, structured commands, IDE bootstrapping, and eventual team-onboarding fields — there is no way for Base to detect and migrate stale manifests, or to give users a clear error when they are running an old Base against a newer manifest schema.

This is a precondition for any manifest expansion that could be adopted by multiple teams or project repositories. Without versioning, the first breaking change will silently produce wrong behavior rather than a clear error.

Proposed Change

Add an optional schema_version field at the manifest root:

schema_version: 1

project:
  name: bankbuddy

Behaviour:

  • Omitting schema_version is treated as version 1 (current schema) — fully backwards-compatible.
  • Base should warn (not error) when schema_version is absent on manifests that declare newer sections.
  • Base should error clearly when schema_version is higher than the installed Base version understands.
  • The schema version is a simple integer, not semver. It increments only on breaking changes.

Why Now

Before adding health, commands, or any other manifest section that project teams will check in and share, there needs to be a stable path for Base to say "this manifest uses features your installed Base does not support — upgrade Base or remove the unsupported sections."

Without this, later migration becomes painful.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions