Skip to content

fix(schema): cli schema and cloud public schema diverge by 3 fields #433

@BryanFRD

Description

@BryanFRD

Describe the bug

The schema parity check in the workspace CLAUDE.md says `FerrFlow/schema/ferrflow.json` and `FerrFlow-Cloud/packages/site/public/schema/ferrflow.json` must be byte-identical. They are not. Running `diff` between the two against current main produces three live divergences:

```
11a12,16

\"auto\": {
  \"type\": \"boolean\",
  \"description\": \"Auto mode. When true, FerrFlow re-runs project detection on every release/check and appends newly-discovered packages or versioned files to this config — never overwriting hand edits...\",
  \"default\": false
},

58,63d62
< "releaseCommitScope": {
< "type": "string",
< "description": "In monorepo mode, whether to create a single grouped commit for all packages or one commit per package...",
< "enum": ["grouped", "per-package"],
< "default": "grouped"
< },
163,166d161
< },
< "selector": {
< "type": "string",
< "description": "Optional selector to disambiguate which version is bumped..."
```

Two directions of drift:

  1. Cloud schema has `auto` field but CLI schema doesn't — the cloud was edited in isolation when the auto-bootstrapping feature shipped (PR feat(cli): auto mode — bootstrap missing config and version files on first release #388 "feat(cli): auto mode").
  2. CLI schema has `releaseCommitScope` and `selector` but the cloud schema doesn't — these landed in the CLI (`releaseCommitScope` from per-package commit work, `selector` from PR feat(formats): custom selector (regex/xpath/path) per version file to disambiguate which version is bumped #387) but the corresponding cloud schema sync PR was either never opened or never merged.

Either way, ferrflow.com is serving a schema that lies about supported features in both directions. Users editing `ferrflow.json` against the cloud schema get red squiggles on valid `releaseCommitScope` / `selector` keys and no autocomplete on `auto`. Conversely, anyone validating against the CLI schema in isolation never learns `auto` exists.

Package
Which package is affected? [ ] cli [ ] action [x] schema [ ] fixtures

To Reproduce

```bash
diff FerrFlow/schema/ferrflow.json FerrFlow-Cloud/packages/site/public/schema/ferrflow.json
```

Expected behavior

This is a near-duplicate of #412 ("enforce byte-identical parity between CLI and cloud schemas") which is open with no CI enforcement yet. This issue documents the current observed drift so it doesn't blur into the meta-tracking issue:

  1. Add `auto` to `FerrFlow/schema/ferrflow.json`.
  2. Add `releaseCommitScope` and `selector` to `FerrFlow-Cloud/packages/site/public/schema/ferrflow.json`.
  3. Land fix(schema): enforce byte-identical parity between CLI and cloud schemas #412's CI parity check in the same PR (or follow up immediately) — `diff -q` between the two files in both repos' CI.

Environment

  • Package version: 4.7.0

Severity: P1. Closes the concrete drift; #412 tracks the CI guardrail.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions