Raised during constellation-loop review of PR #304 (issue #298).
The problem
bootstrap --force is a single flag that fans out to several destructive operations at once:
- hook overwrite
- ADF re-scaffold —
writeAdfScaffolds (bootstrap.ts:878) overwrites custom .ai/*.adf modules
- config overwrite
Every other command's --force is narrowly scoped to the one thing that command does. Bootstrap's is not, so a user reaching for it to fix one thing can silently lose hand-authored ADF content — the content Charter exists to protect.
It is advised as a routine remedy
bootstrap.ts:962 and bootstrap.ts:964 (the ADF pointer warnings) both tell the user to "use --force to overwrite". PR #304 fixed one such instance (the stale .mcp.json absolute-path case now names a targeted hand-edit and explicitly says not to use --force), but these two remain.
Worth noting these warnings were effectively invisible in text mode until PR #304 — setup-phase warnings were collected but never printed, surfacing only as a count in "Bootstrap complete. N warnings." That is plausibly why the destructive advice went unnoticed.
Possible directions
- Split bootstrap's
--force into scoped flags (e.g. --force-hooks, --force-adf, --force-config), keeping --force as an explicit all-of-the-above
- Or keep one flag but make the ADF re-scaffold refuse to overwrite a module that differs from its scaffold template unless separately confirmed
- Either way, stop advising bare
--force in warnings where a narrower remedy exists
Follow-up from #304; not changed there to keep that bugfix scoped.
Raised during constellation-loop review of PR #304 (issue #298).
The problem
bootstrap --forceis a single flag that fans out to several destructive operations at once:writeAdfScaffolds(bootstrap.ts:878) overwrites custom.ai/*.adfmodulesEvery other command's
--forceis narrowly scoped to the one thing that command does. Bootstrap's is not, so a user reaching for it to fix one thing can silently lose hand-authored ADF content — the content Charter exists to protect.It is advised as a routine remedy
bootstrap.ts:962andbootstrap.ts:964(the ADF pointer warnings) both tell the user to "use --force to overwrite". PR #304 fixed one such instance (the stale.mcp.jsonabsolute-path case now names a targeted hand-edit and explicitly says not to use--force), but these two remain.Worth noting these warnings were effectively invisible in text mode until PR #304 — setup-phase warnings were collected but never printed, surfacing only as a count in "Bootstrap complete. N warnings." That is plausibly why the destructive advice went unnoticed.
Possible directions
--forceinto scoped flags (e.g.--force-hooks,--force-adf,--force-config), keeping--forceas an explicit all-of-the-above--forcein warnings where a narrower remedy existsFollow-up from #304; not changed there to keep that bugfix scoped.