Skip to content

docs(spec): semver 1.0 compatibility & stability policy (M4 freeze)#155

Merged
takashi-matsuyama merged 1 commit into
mainfrom
docs/compat-policy
Jul 1, 2026
Merged

docs(spec): semver 1.0 compatibility & stability policy (M4 freeze)#155
takashi-matsuyama merged 1 commit into
mainfrom
docs/compat-policy

Conversation

@takashi-matsuyama

Copy link
Copy Markdown
Member

What

Adds docs/spec/compatibility.md — the canonical statement of the semver contract basou commits to at 1.0. This is the M4 (API/format freeze) done-criterion "publish the semver 1.0 compatibility policy".

The policy

Guaranteed surfaces (semver applies; additive-only within a 1.x line):

  1. The basou CLI — commands/subcommands, flags, exit codes, and the documented --json output shapes.
  2. @basou/sdk — the read-only provenance API.
  3. The .basou/ on-disk format — durable schemas (manifest, session, event, approval, task) + published JSON Schemas.

Not guaranteed: @basou/core (published but CLI-internal; depend on the SDK), and the CLI's human-facing prose.

On-disk format versioning: the format major is decoupled from the product version (shipping 1.0.0 does not bump it) and gated forward-compatibly — accept 0.x.y, gate 1.x.y+ with an "upgrade basou" error. Migration machinery is deferred (only the gate contract is frozen now); caches are exempt.

Deprecation policy: obsolete flags become deprecated no-ops through 0.x (accepted, warn) and are removed at 1.0 (--repo-url is the live example).

Also wired into docs/README.md, the root README "Status & stability" section, and CHANGELOG Unreleased.

Review

Went through a review-only, design-challenging adversarial review (codex). Disposition:

  • 4 implementation/factual defects (all confirmed against code) — fixed: the .basou/-only claim (integrations also write ~/.claude/, ~/.codex/), the uniform-loose-schema claim (some event variants are .strict()), the JSON-Schema pattern scope (caches use const), and the dry-run-by-default scope (provenance views write by default).
  • 6 design-challenge candidates — operator-decided: adopt B1 (guarantee --json output shapes, since basou's own session-end capture depends on them) and B3 (clarify that schema_version: 0.x on a 1.0+ install is expected); the strict-event-variant tension is resolved by honest wording (variants encode real invariants); @basou/core public-surface reduction recorded as post-1.0 backlog; deferred migration and the 1.0 flag-removal timing held as settled.

Docs-only change. lint:lang OK; no source touched.

🤖 Generated with Claude Code

Adds docs/spec/compatibility.md, the canonical statement of the semver
contract basou commits to at 1.0 (the M4 API/format freeze deliverable):

- Guaranteed surfaces: the basou CLI (commands/flags/exit codes + the
  documented --json output shapes), @basou/sdk, and the .basou/ on-disk
  format. Additive-only within a 1.x line.
- Not guaranteed: @basou/core (published but internal; use the SDK) and
  the CLI's human-facing prose.
- On-disk format major is decoupled from the product version and gated
  forward-compatibly (accept 0.x.y, gate 1.x.y+ with an upgrade error);
  migration machinery is deferred, caches are exempt.
- Deprecation policy: obsolete flags become deprecated no-ops through
  0.x and are removed at 1.0 (--repo-url is the live example).

Wired into docs/README.md, the root README "Status & stability"
section, and CHANGELOG Unreleased.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@takashi-matsuyama takashi-matsuyama merged commit 963cd87 into main Jul 1, 2026
7 checks passed
@takashi-matsuyama takashi-matsuyama deleted the docs/compat-policy branch July 1, 2026 15:01
takashi-matsuyama added a commit that referenced this pull request Jul 1, 2026
Bump packages/{basou,core,cli,sdk} to 0.31.0 and finalize the CHANGELOG
section. Bundles the M4 (API/format freeze) pass:

- Portfolio view live repo links (#152).
- .basou format version gate — forward-compatible format major (#153).
- Remove project.repository_url; --repo-url kept as a deprecated no-op (#154).
- semver 1.0 compatibility & stability policy doc (#155).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
takashi-matsuyama added a commit that referenced this pull request Jul 1, 2026
Bump packages/{basou,core,cli,sdk} to 0.31.0 and finalize the CHANGELOG
section. Bundles the M4 (API/format freeze) pass:

- Portfolio view live repo links (#152).
- .basou format version gate: forward-compatible format major (#153).
- Remove project.repository_url; --repo-url kept as a deprecated no-op (#154).
- semver 1.0 compatibility and stability policy doc (#155).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
takashi-matsuyama added a commit that referenced this pull request Jul 1, 2026
Bump packages/{basou,core,cli,sdk} to 0.31.0 and finalize the CHANGELOG
section. Bundles the M4 (API/format freeze) pass:

- Portfolio view live repo links (#152).
- .basou format version gate: forward-compatible format major (#153).
- Remove project.repository_url; --repo-url kept as a deprecated no-op (#154).
- semver 1.0 compatibility and stability policy doc (#155).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant