01 / Router files
Select skills before loading their full context
The skill workflow asks the agent to inspect descriptions first and read complete instructions only for relevant tasks. An explicit exclusion keeps unrelated domain guidance out of the working context.
Source excerpt starting at line 60.60Domain-specific context and conventions live in `.agents/skills/`. Before61starting any task:62 631. List `.agents/skills/*/SKILL.md`642. Read only each skill's frontmatter description to identify relevant skills653. Read only the full `SKILL.md` files relevant to your task66 67Do not load skills that are not relevant to the task.
02 / Pointing at the source of truth
Point tool versions at their authority
The guide names the file that pins the toolchain and the manager that installs it. This avoids maintaining a second list of current versions inside the instructions.
Source excerpt starting at line 22.22- Tool versions (bun, pnpm, node, moon, gh) are pinned in `.prototools` and23 managed by [proto](https://moonrepo.dev/docs/proto); run `proto use` if a tool24 is missing or a pin changed. Never install toolchain versions globally; bump25 pins only in `.prototools`.
03 / Pointing at the source of truth
Keep dependency versions in the shared catalog
Package manifests normally consume the workspace catalog instead of introducing their own version declarations. The rule includes an exception for a published package that intentionally needs its own range.
Source excerpt starting at line 34.34- Dependencies use the `catalog` in `pnpm-workspace.yaml`. Never add dependency35 versions directly to package-level `package.json` files unless a published36 package intentionally needs its own range.
04
Account for CI-marked agent shells
CI-marked shells can run some tasks while skipping dev servers and build-graph work. The guide provides an explicit override instead of treating a failed launch as proof the task is unavailable.
Source excerpt starting at line 12.12Most local moon tasks (formatters, benchmarks, worktree management) are13configured with `runInCI: 'always'` so they keep working in CI-marked shells14like agent harnesses. Tasks connected to the build graph (dev servers, prod15serves, e2e variants, publish guards) stay CI-skipped — run those with16`moonx <target> --ignore-ci-checks`, e.g.17`moonx docs:dev-diffs --ignore-ci-checks`. For non-moon commands that CI-gate18themselves, unset the var: `CI= pnpm publish --dry-run`.
05 / Verification by change type
Separate the verification baseline from affected checks
Formatting and linting are the baseline. Type checks and focused tests depend on the changed area; docs and instruction edits stop at the baseline unless they touch code or package config.
Source excerpt starting at line 89.89Also run the affected typecheck and focused tests for the changed area, e.g.90`moonx <project>:typecheck` and `moonx <project>:test` (or91`moonx :typecheck --affected`). For docs-only or AGENTS/skill-only changes,92formatting and linting are sufficient unless the edit touches executable code or93package config.