Skip to content

bootstrap can generate manifest that parses as 0 default-load (verify:adf fails) #150

@stackbilt-admin

Description

@stackbilt-admin

Summary

Running npx @stackbilt/cli bootstrap --yes in an existing repo produced a manifest that looked valid to a human but parsed as 0 default-load, causing verify:adf to fail in CI mode until the manifest was manually rewritten.

Environment

  • Repo: Stackbilt-dev/mindspring
  • CLI version: @stackbilt/cli@0.12.1
  • Node/npm project (existing .ai/core.adf + custom CLAUDE.md)

Repro

  1. In an existing repo with .ai/core.adf and .ai/manifest.adf, run:
    • npx @stackbilt/cli bootstrap --yes
  2. Run:
    • npm run verify:adf

Observed

  • Bootstrap output says it registered modules and updated scripts/deps.
  • Generated manifest content (observed immediately after bootstrap) used this shape:
# mindspring ADF Manifest
load core.adf always

📂 ON_DEMAND:
  - backend.adf (Triggers on: backend)
  - core.adf (Triggers on: core)
  - frontend.adf (Triggers on: frontend)
  - state.adf (Triggers on: state)
  • charter doctor --adf-only --ci --format json then reports:
    • Parsed: 0 default-load
    • Missing from DEFAULT_LOAD: core.adf, state.adf

Expected

  • Bootstrap should emit canonical manifest syntax that parses with:
    • DEFAULT_LOAD: [core.adf, state.adf]
    • ON_DEMAND excluding core.adf/state.adf unless explicitly intended.
  • verify:adf should pass immediately after bootstrap for the generated files.

Workaround used

Manually replaced manifest with canonical ADF section format:

ADF: 0.1

🎯 ROLE: MindSpring context router

📦 DEFAULT_LOAD:
  - core.adf
  - state.adf

📂 ON_DEMAND:
  - backend.adf (Triggers on: backend, api, hono, worker, queue, vectorize, kv, r2, upload, ingestion, telemetry)
  - frontend.adf (Triggers on: frontend, ui, css, vanilla js, app.js, styles, spa)

After this, both passed:

  • npm run charter:doctor
  • npm run verify:adf

Possible fix directions

  • Ensure bootstrap always writes canonical ADF: 0.1 manifest structure.
  • Add a post-bootstrap self-check that fails/repairs if default-load parse result is zero while core.adf exists.
  • Avoid registering core.adf/state.adf as ON_DEMAND when required default wiring is expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions