verify
Voice
Read ../../persona.md; it is canonical for this skill's user-facing output, and its scope
ends at the final report.
Outcome
Verify the current change through moon's affected graph and report the real result. Execute
the checks directly: do not delegate, run an additional code-review pass, write a ledger, or
present commit/PR menus.
Workflow
Walk upward to the nearest real workspace config. It is a
workspace.{json,jsonc,hcl,pkl,toml,yml,yaml} file under .moon/ or .config/moon/.
A bare .moon/ directory is not a workspace. If none exists, say the skill does not
apply and stop; repository-native verification belongs to the repository's normal
workflow.
Run moon --version and git status --porcelain from the workspace root. Build the
affected project set by piping changed-file JSON into Moon's project query:
moon query changed-files | moon query projects --affected --downstream deep
This compares the configured default branch with HEAD, so it also works on the clean
worktree required before a PR. When the worktree is dirty, additionally run the same
pipeline with moon query changed-files --local and union both project sets. Honor an
explicit revision request with --base <base> --head <head> on the first query. If moon
is unavailable or the combined set is empty, report that no verification ran; do not
claim success.
From the project-query JSON, collect every project id, including downstream projects,
and the typecheck, lint, and test tasks each project actually defines. Unless the
user requested narrower checks, run the applicable targets explicitly for every project,
for example:
moon run app-a:typecheck app-a:lint app-a:test app-b:typecheck app-b:test
Never rely on :<task> --affected --downstream deep to cover downstream projects: moon
may omit their tasks unless task dependencies connect them. Trust moon's cache. Do not
replace moon tasks with raw package-manager, compiler, linter, or test-runner commands.
Report the exact targets and a per-project pass/fail summary. Name affected projects with
no applicable task. Include the relevant failing output verbatim. Verification succeeds
only when every applicable target ran after the last edit and exited successfully;
otherwise state what remains unverified.
Verification is read-only apart from build and test outputs created by moon. Never edit
source files, commit, push, or rebase from this skill.
1---2name: verify3description: Run moon typecheck, lint, and test tasks for affected projects after edits. Use only in a configured moon workspace; report fresh command evidence without adding review or handoff ceremony.4---56# verify78## Voice910Read `../../persona.md`; it is canonical for this skill's user-facing output, and its scope11ends at the final report.1213## Outcome1415Verify the current change through moon's affected graph and report the real result. Execute16the checks directly: do not delegate, run an additional code-review pass, write a ledger, or17present commit/PR menus.1819## Workflow20211. Walk upward to the nearest real workspace config. It is a22 `workspace.{json,jsonc,hcl,pkl,toml,yml,yaml}` file under `.moon/` or `.config/moon/`.23 A bare `.moon/` directory is not a workspace. If none exists, say the skill does not24 apply and stop; repository-native verification belongs to the repository's normal25 workflow.262. Run `moon --version` and `git status --porcelain` from the workspace root. Build the27 affected project set by piping changed-file JSON into Moon's project query:2829 ```sh30 moon query changed-files | moon query projects --affected --downstream deep31 ```3233 This compares the configured default branch with `HEAD`, so it also works on the clean34 worktree required before a PR. When the worktree is dirty, additionally run the same35 pipeline with `moon query changed-files --local` and union both project sets. Honor an36 explicit revision request with `--base <base> --head <head>` on the first query. If moon37 is unavailable or the combined set is empty, report that no verification ran; do not38 claim success.39403. From the project-query JSON, collect every project id, including downstream projects,41 and the `typecheck`, `lint`, and `test` tasks each project actually defines. Unless the42 user requested narrower checks, run the applicable targets explicitly for every project,43 for example:4445 ```sh46 moon run app-a:typecheck app-a:lint app-a:test app-b:typecheck app-b:test47 ```4849 Never rely on `:<task> --affected --downstream deep` to cover downstream projects: moon50 may omit their tasks unless task dependencies connect them. Trust moon's cache. Do not51 replace moon tasks with raw package-manager, compiler, linter, or test-runner commands.52534. Report the exact targets and a per-project pass/fail summary. Name affected projects with54 no applicable task. Include the relevant failing output verbatim. Verification succeeds55 only when every applicable target ran after the last edit and exited successfully;56 otherwise state what remains unverified.5758Verification is read-only apart from build and test outputs created by moon. Never edit59source files, commit, push, or rebase from this skill.