calibratelisted
Install: claude install-skill dyasnurhakim/smithy-claude
# Calibrate — Config Editor (global + per-project)
Read `${CLAUDE_PLUGIN_ROOT}/references/creed.md` and `${CLAUDE_PLUGIN_ROOT}/references/memory.md` first.
Resolve memory first: `export SMITHY_MEM="$(bash ${CLAUDE_PLUGIN_ROOT}/scripts/paths.sh mem)"` —
every smithy path below is relative to it, and it need NOT be inside the repo. If that dir
does not exist, bootstrap per `${CLAUDE_PLUGIN_ROOT}/references/memory.md` § Location.
Config has **three layers**, merged per key, lowest precedence first:
| Layer | File | Scope | You may write it |
|---|---|---|---|
| defaults | `${CLAUDE_PLUGIN_ROOT}/defaults/config.json` | ships with the plugin | **NEVER** |
| global | `$SMITHY_HOME/config.json` | every project on this machine | yes (`--global`) |
| project | `$SMITHY_MEM/config.json` | this project only | yes (default) |
You are the ONLY sanctioned writer of the global and project layers. Both stay
SPARSE — they hold only what differs from the layer below.
## Process
1. **Show the current state.** Run:
`bash ${CLAUDE_PLUGIN_ROOT}/scripts/routing.sh --dump`
Present the table (role, model, effort, source). The SOURCE column names the
layer that supplied each value — `defaults`, `global`, or `project`, with
`(tier)` when a tier name expanded and `(translated)` when a cross-harness
value was mapped by tier. The header also shows the resolved memory dir and
how it was resolved.
2. **Parse one-shot arguments if given.** Accept `role=model/effort` pairs,
e.g. `/