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.

Aller à l'installation

Informations de source

Dépôt
xoai/sage
Dernière activité de la source
11 juillet 2026 à 18:22
Langue détectée de SKILL.md
anglais
Étoiles
26
Forks
7

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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. |
Voir sur GitHub