---

title: COMPASS

tagline: A Claude Code skill where the human writes the code and the LLM is barred from it.

status: active

highlight: 7

tags: [claude-code, shell, llm]

links:

repo: https://github.com/hvpaiva/compass

github: hvpaiva/compass

---

## The problem

Every AI coding tool is built so that you write less code. That is the

right goal when shipping is the point. It is the wrong goal when the

project is how you were going to learn the thing, because the tool takes

exactly the part you wanted.

## Constraints

Asking a model not to write code does not work; it has to be unable to.

The output has to survive the session, so a conversation that produced a

good decision is worth nothing if the decision lives in scrollback. And

the human has to stay the one who decides, which means the tool never

advances on its own.

## What I built

A Claude Code skill whose sub-agents cannot produce production code. It

is enforced twice, in the tools each sub-agent is granted and in its

system prompt, rather than requested once in an instruction the model may

weigh against being helpful.

Six phases, each with a gate the human opens. Frame settles mission,

scope and non-goals by interrogation, not by proposal. Research produces

dossiers with real citations. Architect takes an architecture the human

proposes and argues with it, listing the trade-offs it accepted without

saying so. Decide writes the result as an ADR in MADR format. Spec works

through edge cases and invariants until the behavior is written down.

Build decomposes the spec into work units with acceptance criteria, and

then supervises: a rubber duck that returns questions instead of answers,

an idiom check that names the anti-pattern without writing the fix, a

scope guard that compares recent changes against the spec and the

decisions, a test audit that finds what the human's tests do not cover,

and a review against the ADRs and the module boundaries.

Everything lands in `.compass/` as files in the repository, so the

artifacts outlive the session and the next one starts from them.

The inversion is the whole product. The human implements; the model

orients, researches, challenges and tracks drift. What it optimizes for

is not how fast the code appears but whether the person who ships it

understands it.

git clone github.com/hvpaiva/compass

← projects/