SIGN IN SIGN UP

chore(governance): adopt orly-materialised rules

The operating model resolved out of `~/Projects/dotfiles` — a checkout on one
developer's machine that every agent session, both `make harness-verify` lanes,
and the route-registration gate depended on. `orly init` materialises it here
instead: `AGENTS.orly.md`, the `dispatch/` rule pages, the `audits/` gate
scripts, and the per-repository skills, with `.oracle/orly.json` recording the
engine version and all 53 managed files. A clone now carries its own rules and
runs its own gates with nothing else checked out.

Packs: `language.rust` (the Rust port under `src/agentsfleetd` can cite
`dispatch/write_rust.md` before the first `.rs` file lands), `persona.indy`,
`product.agentsfleet` (which ships `design-tokens.sh`, `error-codes.sh`, and
`cross-tier-rates.sh` — three of the eight scripts `make/harness.mk` runs).
Hooks were left alone with `--no-hooks`: this repository hand-wrote
`.githooks/` and orly refuses to overwrite hooks it did not write.

Functional dependencies repointed:

- `make/harness.mk` defaulted `ORLY_ROOT` at `$(HOME)/Projects/dotfiles`,
  feeding 16 call sites and the CONFORM gate itself. It now defaults to the
  repository root, where all eight shared scripts live.
- `scripts/check_route_registration_doc.py` resolved
  `docs/REST_API_DESIGN_GUIDELINES.md` through the same fallback. The guide is
  materialised locally, so the fallback is gone rather than left as dead code.
  Its test skipped the real assertion whenever the guide dangled as an
  unresolved symlink; that condition can no longer occur, so the skip is a
  hard assertion now.

`orly gate work` runs in `.githooks/pre-commit` and `orly gate pr` in
`.githooks/pre-push`, ahead of every check those hooks already ran — rules with
no enforcement are prose. `.oracle/orly.json` declares all five `verify.*`
commands plus the user and docs surfaces.

Declaring the full `verify.*` set turned on the spec gate's declared-command
parity check, so the three live specs gained the rubric rows it demands
(`make harness-verify` in all three, `make test-unit-all` in `M136_001`).

Prose corrected where it described the old topology: `AGENTS.md`'s opening
claim, the `README.md` ORLY_ROOT section, three `docs/architecture/` pages, and
the three live specs (`M136_001`, `M173_001`, `M174_001`) whose rule citations
now resolve in-tree. Everything under `docs/v2/done/` is history and was left
untouched.

`sweep.ts` — the one-off script that replays `user.deleted` webhooks for users
Clerk has already dropped — was untracked; it lands here as
`ui/packages/app/tests/e2e/acceptance/sweep.ts`. It reads its fixtures from
that directory, and the app's lint config already exempts `tests/**` from the
`no-console` and non-null-assertion rules a command-line script trips. Moving
it beats weakening a rule for the whole package.

Session notes
-------------

- Blocked on an orly bug first: `docs/EXECUTE_DOC_READS.md` cited
  `dispatch/edit_rules.md` without gating the row on `workflow.governance`, so
  every install that skipped that pack was refused. Fixed upstream and released
  as `0.5.2` (agentsfleet/orly#9); this repository installs from it.
- `workflow.governance` is deliberately not selected — it governs the orly
  repository, not a consumer of it.
- Verification: `make harness-verify` green; `make harness-verify-all` green
  across 2,189 files with every gate running from `audits/`; `orly doctor`
  reports the installed ruleset matches the lock;
  `python3 scripts/check_route_registration_doc.py` and its test suite pass.
- Not addressed: `AGENTS.md` still points at `provision-env-1password` as a
  dotfiles tool. That is a personal dev tool, not a rules dependency, so it is
  session 2's call rather than this migration's.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
K
Kishore Kumar committed
77421fdff943a502a4a06bf51ddd755af9d47ad8
Parent: 2e4bbdf