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