Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
- Give each expensive focused validation command and external wait one owner. The integration owner reviews that evidence and runs the repository-required aggregate or final gate once after convergence. Reuse evidence only for the exact Git tree, command, lockfiles, toolchain, relevant environment, and validity period, and never to skip a required final integration, merge, release, deployment, or production-verification gate.
- On Hraness development machines, use the installed host scheduler for heavyweight top-level commands when available. Keep ordinary work in the compute lane and give Mac-only validation one `mac-native` owner. Headless Chromium with a throwaway profile and a port-0 or per-worktree server runs as `--mode=heavy --lane=compute`; only work that uses the real signed-in browser profile takes the single `browser-auth` owner, and `--mode=exclusive` is only for fixed-port, native-device, performance, or machine-global work.
- Before every push, run `check:fast` when the repository has it (format, lint, typecheck, and unit tests of the changed workspaces; no build, browser, or formal checking). Run the full `check` locally only when it is much faster than the CI round trip or covers a formal, native, or provider-live boundary CI cannot; `Required` on the pull request head is the final aggregate.
- When the host scheduler is saturated or a heavyweight gate would queue behind unrelated work, prefer that final aggregate: finish the focused local validation, open the pull request, and let `Required` run the broad suite on the PR head instead of holding a shared lease. Keep narrow tests, typecheck, and lint local in the edit loop; keep authenticated-browser, fixed-port, native-device, credential, and private-data work on the documented local lanes; and honor any repository rule that requires a local gate before pushing.
- Dev and preview servers listen on `${PORT:-$(hra-port web)}` bound to 127.0.0.1, falling back to port 0 when `hra-port` is unavailable; scripts that own their server listen on port 0 and read the bound port back. Never assume a fixed port is free.
- Keep one primary checkout per repository at `~/Documents/hraness/<repo>`. Put task checkouts at `~/Documents/<repo>-<task>-<date>` with `git -C ~/Documents/hraness/<repo> worktree add`, not a second full clone. Install shared command-line tools only from `main` or a published release, never from a task worktree or an unmerged branch.
- When a task must wait on CI, watch the pull request's required check with `gh pr checks <number> --required --watch --fail-fast`. When you read runs instead, filter by branch and head SHA (`gh run list --branch <branch> --commit <sha>`) and ignore `dynamic` (CodeQL), `pull_request_target`, and `workflow_run` events: they finish on their own schedule and say nothing about the gate.
Expand Down
Loading