Skip to main content

sage-constitution

The project's engineering principles and non-negotiable process rules. Use when asking whether something is allowed, what the project's principles or conventions are, why a rule exists, or when a decision seems to conflict with the constitution.

Ir a la instalación

Datos de origen

Repositorio
xoai/sage
Última actividad en el origen
11 de julio de 2026 a las 18:22
Idioma detectado de SKILL.md
inglés
Estrellas
26
Forks
7

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
sage-constitution
description
The project's engineering principles and non-negotiable process rules. Use when asking whether something is allowed, what the project's principles or conventions are, why a rule exists, or when a decision seems to conflict with the constitution.
version
1.0.0
type
system
# The constitution The eager layer carries each principle as one line naming the mechanism that enforces it. This carries the reasoning, and the rules that have no mechanism behind them. ## Engineering principles The base set, present in every project: | # | Principle | Enforced by | |---|---|---| | 1 | **Tests before code** — every behavior has a test before implementation | `sage-tdd-gate.sh` (PreToolUse — blocks the edit) | | 2 | **No silent failures** — errors handled, logged, or propagated | Gate 3 (judgment) | | 3 | **Secrets never in code** — env vars or a secret manager | Gate 3 (judgment) | | 4 | **Dependencies explicit** — declared, pinned | Gate 4 (`sage-hallucination-check.sh`) | | 5 | **Changes reversible** — migrations reversible, deploys rollbackable | Gate 3 (judgment) | Principles 6+ come from the project's preset and its own `.sage/constitution.md`. They are appended by the generator, numbered continuously, and they carry exactly the same weight as the base five. A project addition is not a suggestion. **Read the project's own additions before assuming the base five are the whole story.** They are in `.sage/constitution.md`, and they are where the rules that actually bite in *this* codebase live. ## The distinction that matters Three of the five principles above are enforced by a *judgment* gate — which means they are enforced by a reviewer noticing, and reviewers are exactly as reliable as their attention. Two are enforced by a script that blocks the tool call, and those two hold whether or not anyone is paying attention. That is not a criticism of the three. Some rules genuinely cannot be checked mechanically ("no silent failures" requires knowing what a silent failure looks like *here*). But it is worth being honest about which rules are load-bearing and which are aspirational, because the eval that produced this version of Sage found that the mechanically-enforced rules moved behavior and the prose ones, on their own, did not. If a principle matters and has no mechanism, that is a gap in the mechanism — not a reason to write the prose more forcefully. ## Process rules with no script behind them These are enforced by the model reading them, which is a real but weaker thing. **Rule 2 — Skills before assumptions.** If a Sage skill exists for the task at hand, read it and follow it. Do not fall back on general training when a skill provides a specific methodology. (This is the dispatcher rule, and it is in the eager layer for a reason: if it fails to fire, nothing else here loads.) **Rule 3 — Document decisions.** Decisions that affect the project get recorded — for agents *and* for the humans who arrive later. Specs, plans, ADRs, and briefs go to `.sage/work/` or `.sage/docs/`. Even a Tier 2 task leaves a record of what was decided and why. Partially mechanical: the spec-gate hook blocks source edits while a cycle is `pre-spec`, so the *spec* half has teeth. The rest is on you. ## Rationalizations | The thought | Why it fails | |---|---| | "This principle does not apply to test code" | Test code is code. It is also the code you will trust the most and read the least. | | "The project preset does not mention it, so it is optional" | The base five apply everywhere. Presets add; they do not subtract. | | "I will follow the principle, just not right now" | The commit is the artifact. "Later" does not appear in it. | | "It is a prototype" | Prototypes ship. That is what makes them prototypes rather than sketches. |
Ver en GitHub