Using Praxis
You have Praxis.
Triage
One line before every response:
praxis: scope=<x>, loading=<skills>
| scope |
signal |
load |
| vague |
problem space undefined — can't yet say what to build, for whom, or whether it's worth building |
design |
| trivial |
typo, rename, docs-only, <=1-line, pure Q |
none |
| small |
one function, single file, <=50 LOC, or test-only change |
tdd (intent unclear? clarify first) |
| standard |
feature or source-code change |
design, plan, tdd, review |
| complex |
new system, >=5 tasks, or parallel edits |
design, plan, worktree, subagents, review, ship |
| debug |
broken, regression, failing test |
debug |
| onboard |
existing project, no docs/tech-spec.md |
onboard |
If multiple scopes fit, choose the smaller one. vague is a last resort — if you can name a rough deliverable, use a lower scope instead. feature change = user-visible/public-contract change. source code = code/schema/config that changes shipped behavior; docs, tests, examples, CI, and tooling excluded.
Rule
- Unfamiliar with this project? Read
docs/tech-spec.md first.
- Classify inline using the table above — no Skill call needed for triage.
- Announce:
praxis: scope=<x>, loading=<skills>
- Load all required skills in parallel (single response, multiple Skill tool calls):
praxis:<name>, or in file-read harnesses from skills/<name>/SKILL.md.
- Follow loaded skills literally; respect
<gate> markers.
1---2name: using-praxis3description: Use at session start to learn how Praxis skills are invoked and why triage runs before every task.4---5# Using Praxis67You have Praxis.89<EXTREMELY_IMPORTANT>10Before any response or action on every user message, classify scope using the triage table below, announce it, then load required skills in parallel.11</EXTREMELY_IMPORTANT>1213## Triage1415One line before every response:16```17praxis: scope=<x>, loading=<skills>18```1920| scope | signal | load |21|---|---|---|22| vague | problem space undefined — can't yet say what to build, for whom, or whether it's worth building | `design` |23| trivial | typo, rename, docs-only, <=1-line, pure Q | none |24| small | one function, single file, <=50 LOC, or test-only change | `tdd` (intent unclear? clarify first) |25| standard | feature or source-code change | `design`, `plan`, `tdd`, `review` |26| complex | new system, >=5 tasks, or parallel edits | `design`, `plan`, `worktree`, `subagents`, `review`, `ship` |27| debug | broken, regression, failing test | `debug` |28| onboard | existing project, no docs/tech-spec.md | `onboard` |2930If multiple scopes fit, choose the smaller one. `vague` is a last resort — if you can name a rough deliverable, use a lower scope instead. `feature change` = user-visible/public-contract change. `source code` = code/schema/config that changes shipped behavior; docs, tests, examples, CI, and tooling excluded.3132## Rule33340. Unfamiliar with this project? Read `docs/tech-spec.md` first.351. Classify inline using the table above — no Skill call needed for triage.362. Announce: `praxis: scope=<x>, loading=<skills>`373. Load all required skills **in parallel** (single response, multiple Skill tool calls): `praxis:<name>`, or in file-read harnesses from `skills/<name>/SKILL.md`.384. Follow loaded skills literally; respect `<gate>` markers.