arcane-cli 1.9.2 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -218,8 +218,20 @@ Install everything, or just the slice you want:
218
218
  ```bash
219
219
  spell init --profile full
220
220
  spell add agent-policies # or install any component à la carte
221
+ spell add spells-build compliance-standards # or several, in order
221
222
  ```
222
223
 
224
+ `spell add` takes one or more names. It checks each component's files before writing any of them: if one already exists, it prints one line naming the file and `--force`, exits 1, and writes nothing from that component. With several names it stops at the first failure and says which were added and which were not attempted; a name that is already installed is skipped. A component that keeps your own file (`.mcp.json`) leaves an existing one alone and creates a missing one. `--dry-run` lists each file as identical, differing or missing, or as one that would be kept or refused, and writes nothing.
225
+
226
+ ### What `spell update` installs
227
+
228
+ Beyond refreshing what you have, `spell update` installs two things, and reports each by name ([ARC-052](DECISIONS.md#arc-052--spell-update-installs-the-requires-prerequisites-of-installed-components)):
229
+
230
+ - **Missing prerequisites.** A component that cites another one in `requires` (`spells-build` cites the standards documents) gets it installed when it is missing. It is tracked with hashes like any other component. If a file at its destination already exists, or it is an `initOnly` component, `update` leaves it alone and keeps it in the list with the reason.
231
+ - **Newly available components, only when you ask.** In a terminal, `spell update` offers them as a checklist with nothing ticked. Without one, pass `spell update --add-new`. With neither, nothing is installed and the list prints as before. `--add-new` is for repositories, not the user tier.
232
+
233
+ `spell update` never installs an `initOnly` component (`line-ending-baseline`, `docs-baseline`): adding one changes how Git treats files you already have, so it stays a `spell add` you run yourself. `--dry-run` names exactly the components a real run would install. `spell doctor` installs nothing; it names the command.
234
+
223
235
  ### Setup questions, answered by flags
224
236
 
225
237
  `spell init` asks a few questions about the repository and records the answers in `.arcane.json`; `spell update` asks any that an older install predates. Each question has a flag, on both commands, so a script or an agent harness can answer without a terminal: