Skip to content

PraxisWhat, not how.

A discipline framework for AI coding agents. Tell your agent what you need and what done looks like — not how to do it.

PraxisPraxis

See It In Action

Tiny fix

bash
You: fix the typo "teh" in README

praxis: scope=trivial
# edits the file and stops. No spec, no plan.

Standard feature

bash
You: add OAuth login with GitHub

praxis: scope=standard, loading=design,plan,tdd,review

Generates docs/staging/specs/2025-06-02-github-oauth.md:

contract:  GET /auth/github → redirect; /callback → session
invariant: existing sessions unaffected; logout clears cookie
test:      login flow completes with valid GitHub app creds
deferred:  multi-provider OAuth

Generates docs/staging/plans/2025-06-02-github-oauth.md:

- [ ] T1: scaffold OAuth middleware
  goal:       wire passport-github2 into Express session
  files:      src/auth/github.ts, src/middleware/session.ts
  acceptance: npm test -- --grep "OAuth"

- [ ] T2: callback handler + session persistence
  goal:       parse GitHub callback, persist user session
  files:      src/auth/callback.ts, src/models/user.ts
  acceptance: GET /me returns user info after login

Parallel migration

bash
You: migrate the entire API from REST to tRPC

praxis: scope=complex, loading=design,plan,worktree,subagents,review,ship

Generates docs/staging/plans/2025-06-02-rest-to-trpc.md:

[parallel] T1, T2, T3

- [ ] T1: migrate /users routes
  goal:       replace users CRUD with tRPC procedures
  files:      src/routers/users.ts
  acceptance: npm test -- users

- [ ] T2: migrate /products routes
  goal:       migrate product queries to tRPC
  files:      src/routers/products.ts
  acceptance: npm test -- products

- [ ] T3: migrate /orders routes
  goal:       migrate order flow to tRPC, preserve transaction boundaries
  files:      src/routers/orders.ts
  acceptance: npm test -- orders

Three agents run in parallel; coordinator reviews and merges on completion.

Released under the MIT License.