- name
- sage-tiers
- description
- Sizing a task before doing it. Use when the user asks which tier a task is, how big or small a change is, whether something needs a spec or a plan, whether to just do it or slow down, or when deciding how much process a piece of work deserves.
- version
- 1.0.0
- type
- system
# Tiers
Tier is the answer to one question: **how much process does this deserve?**
Too much process on a trivial change is bureaucracy, and users learn to route
around it. Too little on a consequential one is how a "quick fix" becomes an
outage. Tier is where that judgment is made explicit instead of being made
silently, differently, every time.
## The three tiers
| Tier | Response | What it looks like |
|---|---|---|
| **Tier 1** | Just do it. | Single file, no design decisions, a quick answer. No manifest, no spec, no confirmation. |
| **Tier 2** | Announce and proceed. | Multiple steps, creates artifacts. Say what you are doing, then do it. |
| **Tier 3** | Card and choose. | Major effort, genuine ambiguity. Present options and let the user pick. |
## The bias
**Bias toward Standard scope.** When a task sits on a boundary, take the
higher tier.
Any of these puts a task at **Tier 2 minimum**, regardless of how small the
diff looks:
- a behavior change
- an API change
- a decision the team would want to see
The asymmetry is deliberate. The cost of over-tiering is a few minutes of
ceremony. The cost of under-tiering is a change nobody reviewed, in a place
nobody expected, discovered later by someone who did not know it happened.
## Tier 1 is a real escape hatch, not a trap
Tier 1 exists so the process does not tax trivial work, and it is genuinely
free: no manifest is created, so the spec-gate hook has nothing to block on
(the hook reads `gate_state` from a manifest; no manifest means no active
cycle means edits are unrestricted).
That is the escape hatch working as designed. It is not a loophole — "I will
call it Tier 1 so I do not have to write a spec" is a rationalization, and the
list above is what it collides with.
## Rationalizations that do not survive contact
| The thought | Why it is wrong |
|---|---|
| "It is literally one line" | One line that changes behavior is a behavior change. The diff size is not the blast radius. |
| "The design is obvious" | Obvious to you, now, with your context. Write it down and find out. |
| "I will note it in the commit message" | A commit message is not a decision record and nobody reads it before the fact. |
| "The user just wants it done" | The user wants it *right*. They will not thank you for speed on the change that broke checkout. |
Voir sur GitHub