runtime/plugin-overlay/skills/configure/SKILL.md
Configure Sage preset and project settings. Switch between base, startup, enterprise, or opensource constitution presets. Use when the user says "configure sage", "change preset", or "sage settings".
npx skillsauth add xoai/sage configureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Set up project-level Sage configuration.
Read .sage/config.yaml if it exists. If not, note: "No project
config found. Using base preset (default)."
Sage: Current preset: {current or "base (default)"}
[1] Base — TDD, no silent failures, simple first, document decisions [2] Startup — velocity-focused, lighter process, ship fast [3] Enterprise — compliance, audit trails, security-first [4] Open Source — contributor-friendly, RFC process, public decisions
Pick 1-4, or describe what you need.
Write the choice to .sage/config.yaml:
preset: {chosen-preset}
If .sage/ doesn't exist, create it with:
Sage: Preset updated to {preset}. Start a new session or reload the plugin to apply the new rules.
The {preset} preset adds these principles on top of base: {list key additions from the chosen preset}
Type a command, or describe what you want to do next.
Base (default): TDD first, no silent failures, simplest solution first, document decisions, work in the open. Applied to all projects.
Startup: Bias toward shipping. Reduce ceremony for small changes. Speed > perfection for v1. But: never skip tests, never skip root cause analysis. Fast doesn't mean reckless.
Enterprise: Every change auditable. Security review on auth/data changes. Compliance evidence in artifacts. Approval chains documented. Change management discipline.
Open Source: Changes proposed as RFCs. Public decision log. Contributor-friendly: explain WHY in every decision. Breaking changes get migration guides. Backward compatibility by default.
Top-level .sage/config.yaml keys that trim the resume-session tax the
2026-07-15 profile measured. They apply on a resumed cycle's close-out only
(a session that started from manifest.py resume); a first-session build always
runs full rigor. Each has a safe default and can be restored to the old behavior.
Details: core/workflows/_shared/cycle-protocol.md § "Resume close-out economy".
| Key | Default | Effect | Restore old behavior |
|---|---|---|---|
| gate_review | combined | Judgment gates 1–3 reach an independent verdict via ONE adversarial reviewer instead of a dispatch per gate. | per-gate (a reviewer per gate) or off (self-review) |
| batch_bookkeeping | true | Memory writes and prose checkpoints deferred to the checkpoint, not emitted per task. The manifest bridge is never batched. | false |
| trust_inherited_red | true | On resume, a test the prior session already recorded as written-and-failing is not re-run just to re-witness the failure. Never applies to a test this session writes. | false |
| resume_memory | skip | On resume close-out, skip the memory search/store — the brief already carries the context and L2 measured its value at this horizon as null. | keep (the bet that memory compounds over dozens of sessions) |
| resume_test_cadence | lean | On resume close-out, run the targeted test per step and the full suite ONCE at close-out, not per task. The closing full-suite run is never skipped. | full (whole suite at every step) |
What these never touch: the deterministic script gates (they always run, and are the evidence base), the final full-suite verification, at least one independent whole-change review, and per-task commits. The balance is rigor front-loaded on the session that does the design, not re-purchased by the session that finishes a small delta.
When a user asks to "make Sage cheaper on resume" / "reduce the resume cost", these
are the levers; when they want "maximum rigor regardless of cost", set
gate_review: per-gate, batch_bookkeeping: false, trust_inherited_red: false,
resume_memory: keep, resume_test_cadence: full.
review_loop: blockv2 — the default since the flip criteria were measured (E16–18 N=3,
calibration recall/precision 1.0) — puts the review-revise verdict in code:
reviewer findings land in a machine-owned ledger (runtime/tools/review.py,
at .sage/work/<slug>/review-ledger.json) and sage_flags.py computes every
CONTINUE/ESCALATE/STOP from ledger facts. Findings that cite nothing and
demonstrate nothing are capped at substantive and never block. Projects
initialized before the flip are pinned to mode: v1 by sage update
(nothing changes mid-initiative); delete the pin or set v2 to opt in.
| Key | Default | Effect | Restore v1 behavior |
|---|---|---|---|
| mode | v2 | The ledger loop; the reviewer loses the verdict. | v1 (the whole block below is then inert) |
| major_budget | 0 | Open majors tolerated at stop. | n/a (v1 majors always block) |
| iteration_cap | 5 | Hard round cap; at cap every open entry needs a disposition. | v1 value: 10 |
| escalate_after_stalls | 2 | Consecutive non-improving rounds before ESCALATE. | v1: 3 identical counts |
| witness_capping | true | Uncited + unwitnessed critical/major stored as substantive. | false (severity as reported) |
| scope_check | true | Fix commits checked against the finding's anchor scope. | false |
| review_model | inherit | cheap routes checklist passes down-model — savings unclaimed until measured. | inherit |
While hard_enforcement: true and mode: v2, the config-gate treats
mode and witness_capping as enforcement keys: an agent cannot soften
its own review floor (a human edits the file outside the agent).
testing
Root cause diagnosis with evidence, Reproducing test, Minimal patch
tools
Session resumption with context
development
Brief (medium+ tasks), Spec, Implementation plan
testing
Architecture Decision Records, System spec, Milestone plan