Run a repo report
A report is a ready-made agent you run by name, with no prompt to write: it reads the repo, writes a markdown report and attaches it to the ticket. Run one once, or on a schedule so a fresh report lands every week.
Before you begin
Section titled “Before you begin”- A working directory: the repo the report reads.
- For PR triage, a GitHub
originandghsigned in.
The reports
Section titled “The reports”| Report | Skill | Gathers | Suggested schedule |
|---|---|---|---|
| Git health report | git-health | Stale and unmerged branches, large files, commit cadence | Mondays 09:00 |
| Security scan | security-review | Secrets, injection, auth and other risky patterns in the pending changes | Mondays 09:00 |
| PR triage | pr-triage | Open pull requests, review backlog, staleness, a suggested priority order | Every day 09:00 |
| Dependency audit | dependency-audit | Outdated and vulnerable dependencies (uv, pip, npm) | Mondays 09:00 |
| Repo digest | repo-digest | An architecture overview and recent activity | Fridays 16:00 |
Every report is read-only: it writes nothing to the repo, merges nothing and upgrades nothing.
Run a report once
Section titled “Run a report once”- Click Create.
- Under Report library, click Start from a report template… and pick a report.
- Click Run once. It fills in the title and description and sets Type to Command (runs a /skill) with the report’s skill.
- Set the Working directory and click Create.
Result: the agent runs the skill and the report is attached to the ticket under Artifacts.
Run a report on a schedule
Section titled “Run a report on a schedule”- Click Create, then pick a report under Report library.
- Click Schedule. Type becomes Loop (runs on a cron schedule), with the report’s suggested schedule filled in.
- Adjust the schedule, set the Working directory and click Create.
Result: a Loop that runs the report at each scheduled time. Each run is a ticket of its own in the Loop’s history, with a fresh report attached. Change the times in the Loop’s Schedule tab (Run a Loop).
Run any skill as a command
Section titled “Run any skill as a command”A report is one case of a command ticket. To run any other skill:
- Click Create and set Type to Command (runs a /skill).
- Under Skill / command, pick a skill, or Custom skill name… and type its name.
The list holds the skills this machine has: the board’s own, your ~/.claude/skills, the
repo’s .claude/skills and commands, plugin skills and the Claude Code built-ins.
Result: the agent runs that one skill. Command tickets run on Claude Code: Codex and Cursor cannot expand a slash command, so a command ticket on one of their models is refused before it starts.
Add a report
Section titled “Add a report”- In the board’s repo, write the skill as
.claude/skills/<name>/SKILL.md. - Add an entry to
config/report_library.json: anid, atitle, theskill, a one-linesummary, thedescriptionthe ticket gets, and asuggested_schedule.
Result: the report shows in the Report library and its skill in the Skill /
command list. Write the description so it names the skill (“Run the /my-report skill and
save the report as an artifact”): a scheduled run is a plain task and follows the description.
How skills reach every engine
Section titled “How skills reach every engine”A skill lives in a repo’s .claude/skills, which an agent only sees when it runs in that repo.
Most tickets run in a worktree of another repo, so the board installs its skills where every
engine looks, at startup and whenever you ask:
- Each skill is linked into an index,
~/.rev0/skills/<name>. - The index is linked into each engine’s user directory:
~/.claude/skills(Claude Code) and~/.agents/skills(Codex and Gemini). Cursor reads no skills.
They are links, so editing a SKILL.md applies to the next run with no reinstall. A skill you
wrote by hand in one of those directories is never overwritten.
To check and repair it:
-
At the bottom of Settings > Agents, Skills per engine lists every skill with where it came from and a mark per engine it reaches. Refresh reads it again. A warning names any skill the board’s own instructions rely on that an engine cannot reach.
-
From a terminal:
Terminal window rev0 skills sync # install or repair the links; safe to run againrev0 skills reach # one line per skill, and a PROBLEM line for each gaprev0 skills uninstall # remove every link the board made
Result: every engine that reads skills finds the board’s.
If something goes wrong
Section titled “If something goes wrong”This is a command ticket but no command is set
Section titled “This is a command ticket but no command is set”The ticket’s type is Command but it names no skill. Edit it and pick one under Skill / command.
PROBLEM: the skill is unreachable
Section titled “PROBLEM: the skill is unreachable”rev0 skills reach found an engine that cannot see a skill. Run rev0 skills sync, or restart
the board. If a real directory of the same name is in the way, the board leaves it alone:
rename or remove it yourself.
Related
Section titled “Related”- Run a Loop, for the schedule a scheduled report runs on.
- Find and reuse what agents made, for the reports once they are written.
- Command line, for every
rev0command.