new-featurelisted
Install: claude install-skill dinstein/agent-hub
# Developing a new feature
**One worktree, one PR open for the whole of it, one commit per subtask, rebase onto `main`, land
fast-forward only.** The rules are in [AGENTS.md](../../../AGENTS.md); this file is the sequence.
The branch and PR go public at step 3 and both stay undoable. The one irreversible step is step 5's
`git push origin main`, which is why the expensive checks sit immediately in front of it.
---
## The short lane: a change that compiles nothing
Ask the tree, not yourself — the answer is a command, because "it's only a doc change" is a judgement
and this must not be one:
```bash
git diff --name-only origin/main... | grep -vE '^(docs/|\.agents/|[A-Z]+\.md$)'
```
Empty output means the branch changes no file any build reads: prose under `docs/`, a skill, or a
capitalised root document such as this repository's `AGENTS.md`. `Makefile`, `.github/`, `.gitmessage`
and anything under `test/` are code by this rule and print, as they should — they decide what the
checks do.
The lane keeps the worktree, the commit convention, the PR and `--ff-only`. It cuts the checks, which
is where the minutes are:
```bash
go test ./test/buildrules/ -count=1 # the only suite that reads prose
```
That is the whole local verdict, before the push **and** after the rebase in step 5. `test/buildrules`
is what fails when a document cites a `docs/conventions.md` section that no longer exists, a path that has
moved, or a fuzz target nothing declares; every other package compil