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.

설치로 이동

소스 정보

저장소
xoai/sage
최근 소스 활동
2026년 7월 11일 18:22
감지된 SKILL.md 언어
영어
스타
26
포크
7

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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. |
GitHub에서 보기