Layered configuration
donenot accepted
Config is a deep merge over the core, global and project levels, and any mapping in it can be a query spec or a template tree.
On this page
- Author
- agent
- Created
- Updated
- Review
- not shown
- Sources
- https://github.com/A/claude-booping/blob/c7e43b43dfe5fc1c0fafe253dd148d7e62ea231e/vault/docs/_specs/features.md
- priority
- P0
As an advanced user, I want to override any config key at the global or project level, so that booping fits my machine and my codebase without touching the plugin.
Scenarios§
- The user sets a key in
~/.config/booping/config.yaml, and it applies to every project on the machine. - The user sets the same key in the Project Vault's
config.yaml, and the project's value wins for that project. - The user reads the merged value back with the CLI to see what a run will use.
- The user declares a query spec or a template tree at a config path, then runs it
with
booping query --configor writes it withbooping create, each write printed as a unified diff.
Edge cases§
- A list is overridden at a later level: it replaces the earlier list wholesale, it is not merged.
booping createmeets an existing target: it skips it unless--force.- A write leaves a file unchanged: nothing is printed.
- A render needs to be reproducible: the macros are stubbed instead of run.
Criteria§
- Any key can be overridden in
~/.config/booping/config.yamlor the Project Vault'sconfig.yaml, later levels winning. - Query specs declared at any config path run with
booping query --configor the| queryfilter; template trees are written withbooping create, skipping an existing target unless--force. booping createandbooping frontmatter-updateprint every write as a unified diff, silent when a file is unchanged.- Argv macros under
core.macroscarry acommand:and acwd: repo|vault, and can be stubbed for reproducible renders. booping config-getreads any merged value andbooping marker-setsets marker keys;core.plans.globandcore.research_agentare ordinary overridable keys.