Gitmoot is a local-first coordination system for AI agents operating across repositories, GitHub PR comments, daemon jobs, and runtime workflows. It manages agent templates, pipelines, memory curation, and routing telemetry. Use it when coordinating Codex, Claude Code, Kimi Code, or omp agents with structured workflows across multiple repositories.
Recursos
14Instal·la
npx skillscat add gitmoot/gitmoot Instal·la des del registre de SkillsCat.
Gitmoot is a local-first coordination system for AI agents operating across repositories, GitHub PR comments, daemon jobs, and runtime workflows. It manages agent templates, pipelines, memory curation, and routing telemetry. Use it when coordinating Codex, Claude Code, Kimi Code, or omp agents with structured workflows across multiple repositories.
Gitmoot Agent Skill
This root SKILL.md is kept as a raw compatibility entrypoint for agents andgitmoot.io/SKILL.md. The canonical Agent Skills package lives atskills/gitmoot/, with deeper reference files under skills/gitmoot/references/.
Gitmoot is a local-first coordinator for AI agents working across repositories,
goals, reviews, PR comments, and runtime workflows. Use this skill when the
user wants PR-comment agent workflows, repo-scoped agent subscriptions,
background daemon checks, Codex, Claude Code, Kimi Code, or omp agent startup,
structured implementation plans, standard goal files, agent template workflows,
template capture, custom prompt agents, job status, branch lock inspection,
declarative pipelines, agent memory,
routing telemetry, or runtime metadata.
Gitmoot's CLI evolves quickly. If the user names a Gitmoot feature or command
that is not covered here, verify the live surface with gitmoot --help and the
relevant gitmoot <command> --help before answering. If this compatibility
entrypoint disagrees with the live binary, trust the live help and treat the
skill text as stale documentation that should be refreshed.
For current-chat prompt import, "use here" means rungitmoot agent prompt <agent> and apply the returned prompt content in this
current chat. This is prompt import, not true system-prompt injection. Do not
route a "here" request through a background gitmoot agent ask unless the user
explicitly asks for background execution, PR-comment routing, or job tracking.
For fast planning, "use the Gitmoot planner here" is the natural-language
shortcut for gitmoot agent prompt planner. If the planner template is not
cached, read and apply the packaged skills/gitmoot/agent-templates/planner.md
instructions directly.
For template capture, phrases like "capture this session as a Gitmoot agent
template", "turn this workflow into a Gitmoot template", or "draft a reusable
agent template from this chat" mean readskills/gitmoot/references/TEMPLATE_CAPTURE.md and distill the visible
current-chat context into a draft template. Gitmoot cannot read hidden model
memory or runtime internals. Do not install, overwrite, or update a permanent
template unless the user explicitly approves that step.
Use gitmoot agent template draft <id> for a blank scaffold,gitmoot agent template validate <file> for a structural check,gitmoot agent template add <id> --file <file> to install a snapshot, andgitmoot agent prompt <id> to reuse the installed template in the current chat.
For background work, keep Gitmoot's resource model explicit: repo checkout
locks protect local checkouts, runtime session locks serialize delivery for the
same Codex, Claude, or Kimi session, and branch locks protect implementation
ownership.
The daemon default is --workers 1; raise it only for independent runtime
sessions or managed agent types with max_background greater than one.
For runtime selection, gitmoot agent start <name> --runtime <runtime> acceptscodex, claude, kimi, or omp. Kimi Code is a first-class runtime adapter alongside Codex and Claude
Code. To use it, run kimi login, then restart the Gitmoot daemon so it inherits
the session. omp is the oh-my-pi CLI, a multi-provider routing harness:
authenticate it once (interactively, via a provider key in the daemon
environment, or through an auth broker) and restart the daemon so it inherits the
credential. omp holds review/implement/ask but not produce, runs a fresh
session per job and never resumes, and its implement jobs get a loud
cross-family-review refusal because an opaque router has no model family.agent subscribe additionally accepts --runtime shell, whose
session is a command (for deterministic tests).
For Gitmoot health or status questions, run the relevant read-only Gitmoot CLI
checks and answer directly from the results. Mention gitmoot dashboard only
after that answer, as a live monitoring follow-up. Do not start daemons, create
agents, change subscriptions, update templates, or release locks unless the user
asks for that action.
Before Acting
- Check whether
gitmootis installed withgitmoot version. - Confirm GitHub CLI access with
gh auth statusbefore using PR workflows. - Detect or ask for the target repo before starting daemons, subscribing agents,
or routing jobs. - Do not start daemons, create agents, update agent templates, change
subscriptions, or release locks unless the user asks or the current task
clearly requires it. - Prefer read-only status commands and answer directly before mutating Gitmoot
state or pointing the user to live monitoring. - Use
gitmoot --helpand subcommand help for version-sensitive features such
aspipeline,memory,router,runtime, dashboard web,
session jobs, and heartbeats.
Install And Update
If gitmoot is not installed, install the latest beta:
curl -fsSL https://gitmoot.io/install.sh | shVerify the install and GitHub access before using Gitmoot:
gitmoot version
gitmoot update --check
gh auth statusInstall runtime plugin guidance when the user wants Codex or Claude Code to
discover Gitmoot from its plugin system:
gitmoot plugin install codex
gitmoot plugin install claude
gitmoot plugin doctorCommon Local Commands
gitmoot status --repo owner/repo
gitmoot events --repo owner/repo
gitmoot daemon start --poll 30s
gitmoot daemon start --session <root-job-id>
gitmoot daemon start
gitmoot daemon status
gitmoot daemon restart
gitmoot daemon stop
gitmoot dashboard --json
gitmoot dashboard --web [--addr 127.0.0.1:8080]
gitmoot plugin doctor
gitmoot runtime list [--json]
gitmoot agent list
gitmoot agent doctor <agent>
gitmoot agent heartbeat list [--agent <agent>]
gitmoot agent prompt <agent-or-template>
gitmoot agent run <agent> --repo owner/repo "question, review, or implementation request"
gitmoot agent review <agent> --repo owner/repo --pr <number> "review request"
gitmoot agent implement <agent> --repo owner/repo --task <task-id> "implementation request"
gitmoot agent ask <agent> --repo owner/repo "question or instructions"
gitmoot job list --repo owner/repo
gitmoot job show <job-id>
gitmoot job events <job-id>
gitmoot job gates <job-id>
gitmoot job gates clear <job-id> --need "<text>"|--all
gitmoot job open --agent <name> --repo owner/repo --type ask|review|implement [--title "..."]
gitmoot job close <job-id> --decision approved|changes_requested|blocked|implemented|failed [--severity P0|P1|P2|P3] [--summary "..."]
gitmoot job record --agent <name> --repo owner/repo --type ask|review|implement --decision implemented [--severity P0|P1|P2|P3] [--summary "..."]
gitmoot report bug --job <job-id> --preview
gitmoot report bug --job <job-id> --create --yes
gitmoot lock list --repo owner/repo
gitmoot lock show owner/repo <branch>
gitmoot memory list [--pending|--confirmed] [--agent NAME] [--repo owner/repo] [--json]
gitmoot memory ingest <path|dir> --agent NAME [--repo owner/repo] [--tier repo|general] [--dry-run] [--json]
gitmoot memory observations [--agent NAME] [--provenance-prefix P] [--json]
gitmoot memory confirm <obs-id>... | --provenance-prefix P [--agent NAME] [--yes] [--json]
gitmoot memory groom --propose [--out PLAN.json] [--json]
gitmoot pipeline add <spec.yaml> [--enable]
gitmoot pipeline list [--json]
gitmoot pipeline run <name>
gitmoot pipeline show <name|run-id> [--json]
gitmoot pipeline resume <run-id> [--from <stage>]
gitmoot pipeline cancel <run-id>
gitmoot pipeline enable|disable <name>
gitmoot pipeline remove <name>
gitmoot job answer <job-id> "<question-id>: answer text" [--json]
gitmoot router summary [--repo owner/repo] [--action ask|review|implement] [--since 30d] [--json]Use gitmoot daemon start for the background daemon. Use gitmoot daemon run
only when the user explicitly wants a foreground process. --repo owner/repo
SCOPES the daemon to a single repo: it polls only that repo's PRs and claims
only that repo's queued jobs. Omit --repo to supervise every enabled
registered repo from one daemon (#581). Both daemon run and daemon start accept --session <root-job-id>
(alias --root) to pin the worker to one orchestration run: it then runs only
jobs whose root_job_id matches that value plus the root coordinator job
itself. Claude auth lives in runtime-auth.env; rotate it with gitmoot auth set claude and clear it with gitmoot auth unset claude. Adapter builds read
the file per delivery, so no daemon restart is needed.
Use gitmoot agent prompt <agent-or-template> when the user wants to reuse a
Gitmoot agent prompt in the current chat. Use gitmoot agent run for
coordinator delegation through a registered Gitmoot agent; Gitmoot will route to
ask, review, or implement and own worktrees, branch locks, commits, pushes, PRs,
and workflow advancement. To orchestrate an orchestra of agents,gitmoot orchestrate <agent> "..." [--repo R] is sugar for gitmoot agent run <agent> --background "...". Use gitmoot agent ask only for analysis, planning,
or questions. Add --background only when the user wants a queued background
job. This is the same agent registry and runtime adapter path used by PR-comment
jobs; the plugin only helps the runtime discover this skill and does not replace
the gitmoot CLI.
Use gitmoot pipeline when the workflow is a fixed, repeatable DAG declared in
YAML rather than a model-driven decomposition. pipeline add validates and
stores the spec, stage commands must emit gitmoot_result, blocked parks the
run, and pipeline resume reruns the halted stage plus dependents.
Use gitmoot job answer <job-id> "<question-id>: text" to resume a job paused atawaiting_human; it routes through the same escalation-resume path the daemon's
PR-comment answer verb uses.
Use gitmoot memory to inspect or curate persistent agent memory. memory ingest stages Markdown as pending observations, memory confirm is the human
promotion gate, and memory groom proposes or applies deterministic retirement
plans. Do not treat ingested Markdown as trusted until it has been confirmed.
Use gitmoot runtime list to inspect runtime metadata andgitmoot router summary for local observed routing telemetry. Router telemetry
is advisory only and not a benchmark.
Use gitmoot workflow list, gitmoot workflow show, and gitmoot workflow note
for external-coordinator workflow groups.
Attach --workflow <label> to agent ask/run/review/implement, orchestrate, orjob open; orchestration descendants inherit the label automatically.
Use gitmoot report bug --job <job-id> --preview when a failed, blocked, or
cancelled Gitmoot job needs a user-shareable bug report. Preview first by
default. Create with --create --yes only when the user explicitly asks or the
active workflow policy permits filing reports, then report the created or
existing GitHub issue URL back to the user.
PR Comment Commands
Use GitHub PR comments as the public audit trail:
/gitmoot help
/gitmoot status
/gitmoot <agent> review [instructions]
/gitmoot <agent> implement [instructions]
/gitmoot ask <agent> [question]
/gitmoot retry <job-id>
/gitmoot cancel <job-id>
/gitmoot merge
/gitmoot resume <job-id> retry|continue|abort|answer [instructions]
@<agent> ask|review|implement [instructions]Template Agents
Install or refresh the built-in thermo review template:
gitmoot agent template update thermo-nuclear-code-quality-review
gitmoot agent start thermo-review \
--runtime codex \
--repo owner/repo \
--template thermo-nuclear-code-quality-review \
--start-daemonCoordinator recipes are built-in templates for the Orchestra pattern: a
coordinator that fans work out to ephemeral workers (no pre-registration) and
reconvenes them in one continuation. review-panel convenes a panel of
diverse-lens reviewers over a PR and synthesizes their verdict;decompose-and-verify splits an implementation task into parallel file-disjoint
legs and runs a verify step that depends on all of them; verifier is the
minimal one-producer + independent-verify pair. Route any coordinator agent
through a recipe with the --recipe flag on gitmoot orchestrate:
gitmoot orchestrate project-planner "Review PR #123 in this repo." --repo owner/repo --recipe review-panel
gitmoot orchestrate project-planner "Implement the export feature described in the task." --repo owner/repo --recipe decompose-and-verifyCreate a local custom prompt template:
mkdir -p agents
gitmoot agent template draft frontend-reviewer --output agents/frontend-reviewer.md
$EDITOR agents/frontend-reviewer.md
gitmoot agent template validate agents/frontend-reviewer.md
gitmoot agent template add frontend-reviewer --file agents/frontend-reviewer.md
gitmoot agent start frontend-reviewer \
--runtime codex \
--repo owner/repo \
--template frontend-reviewer \
--role reviewer \
--capability ask \
--capability reviewAfter editing a local template file, refresh Gitmoot's cached snapshot explicitly:
gitmoot agent template diff frontend-reviewer
gitmoot agent template update frontend-reviewerTemplate updates are versioned locally. gitmoot agent template show <id>
prints the current version, content hash, source commit, and promotion state.
Agents use the current promoted version by default, or a pinned version when
configured with a reference such as --template frontend-reviewer@v1.
Queued jobs keep the exact template content snapshot they were created with.
Discover templates by metadata:
gitmoot agent template list --runtime codex --output goal_file
gitmoot agent template list --tag review --capability ask
gitmoot agent template show frontend-reviewerDraft and validate a captured template before installing it:
gitmoot agent template draft release-planner
gitmoot agent template validate .gitmoot/templates/release-planner.md
gitmoot agent template add release-planner --file .gitmoot/templates/release-planner.md
gitmoot agent prompt release-plannerAgent Job Contract
Every Gitmoot job should return a concise and truthful gitmoot_result JSON
object:
{
"gitmoot_result": {
"decision": "approved|changes_requested|blocked|implemented|failed|skipped",
"summary": "Brief outcome.",
"findings": [],
"changes_made": [],
"tests_run": [],
"needs": [],
"delegations": []
}
}Use blocked when work cannot continue without human input or external state.
Use failed when the attempted action errored. Do not report tests, changes, or
approvals that were not actually verified. Use delegations to request follow-up
work by named Gitmoot agents.
Safety Rules
Preserve existing behavior unless the job explicitly changes it. Keep work
scoped to the target repo. Do not commit generated data, caches, logs, secrets,
session archives, cloned helper repos, or large outputs unless explicitly
requested. Respect Gitmoot branch locks for implementation jobs.
Implementation jobs must not edit or push an implementation branch unless
Gitmoot assigned the job and the branch lock is held by the assigned agent.
Review and ask jobs should inspect and report without mutating branches unless
the task explicitly instructs otherwise.
Redact secrets from GitHub comments, job summaries, raw examples, and copied
command output.
When Unsure
Reread this SKILL.md, then inspect /gitmoot help, gitmoot status, and the
relevant job events before acting. For CLI command questions, prefergitmoot --help and the relevant gitmoot <command> --help over remembered
skill text.