orchestrate-ticket
Skill2 starsChanged 46 days agoMITView on GitHub
Drive one ticket or change end-to-end through the full multi-agent orchestration pipeline (isolated implementation, independent code review, security review when warranted, optional verification, and merge on green). Use when the user asks in natural language to "orchestrate" a ticket, "run it through the pipeline", "take it end to end", or otherwise wants the gated implement-review-merge flow rather than a plain one-off edit. This is the natural-language entry to the same flow as the Claude /orchestrate command and Codex orchestration skill. Do NOT trigger for an ordinary implementation request ("just fix this", "make this change") where the user did not ask for the full gated pipeline.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- omerchn/skillstheir own version, first seen Nov 1, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- omerchn/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository7 other files it gives its agents.
- gate-prSkill
- orchestrate-sprintSkill
- orchestration-initSkill
- orchestration-reportSkill
- recover-agent-workSkill
- release-integrationSkill
- scope-ticketSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 2 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
Before every design-reviewer, implementer, code-reviewer, security-reviewer, or visual-qa launch, resolve the role with …
- Very specific: line 50
Grep targets, not line numbers: Never put a file:line in a brief.
- Distinctive: line 55
Never hand over code you did not run: No selector, snippet, or query written from memory.
- Very specific: line 103
Scope check: If the ticket system is a real tracker, confirm the ticket is Ready: a description you could write a failing test from.
- Distinctive: line 112
Pre-implementation gates: Before cutting a branch or editing production code, build an adversarial test matrix from the acceptance criteria …
- Very specific: line 125
If the planned change touches security-sensitive infrastructure or crosses one of those external boundaries, run a fresh pre-code design …
- Very specific: line 139
Implement: Run the implementer role from orchestration-implementer.md, passing the ticket body and the click-path.
- Very specific: line 148
Gate: Run the review gates on the PR concurrently against one exact head: first run version_policy.py --plugin-root <resolved-plugin-root> …
- Very specific: line 182
If a non-findings commit moves the PR head after a complete generation, run review-ledger.py rebind-generation <pr> --head …
- Very specific: line 216
Merge on green: Only after every gate PASSES, every required verification is GREEN, and the configured target CI checks are green: record …
- Very specific: line 227
Read worktree_cleanup (default manual).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Orchestrate a ticket end to end
Drive ONE unit of work through the full pipeline. This is the same flow as the
Claude Code /orchestrate command, reached by natural language. If the user
named a ticket, that is the target; otherwise treat their description as the
spec.
First read .orchestration/config.yaml and validate it with
orchestration-engine.py validate-config. For schema_version: 2, branch roles,
transition guards, CI categories, approvals, ticket adapters, and target branches
come from the configured workflow; use orchestration-engine.py adapter-plan
--host codex <transition> when the repo declares the ticket flow as explicit
transitions. For legacy configs, keep the existing implement -> review ->
security -> verify -> merge-on-green flow below.
Before every design-reviewer, implementer, code-reviewer,
security-reviewer, or visual-qa launch, resolve the role with
scripts/context_pipeline.py route --config .orchestration/config.yaml --role
<role>. A desktop route uses the existing native agent. An api route builds
its provider request with context_pipeline.py payload --config ... --role
<role> and pipes it to scripts/api_agent.py run --request - --config
.orchestration/config.yaml --role <role>, including ticket, sprint, and stable
run identifiers when available. Before each API reviewer run, issue a phase
permit with review-ledger.py permit-review <pr-or-design-id>
--role <role> --head <full-exact-head> and pass it to run --review-pr
<pr-or-design-id> --review-authorization <token>. The runner enforces role tools and USD/token
ceilings. Use desktop fallback
only after proving the API request failed before any provider/run id existed.
Submitted, timed-out, or uncertain API work remains reserved for reconciliation
and must never be duplicated.
For a model-less OpenAI desktop route, use Codex's ChatGPT subscription login and configured default model; do not add an API credential, base URL, or model override. These turns have no API usage receipt, but every non-spend workflow gate remains mandatory. Model-less Claude routes are unsupported because their subscription authentication cannot be proven mechanically.
Relaying information (do not hand down stale facts)
You are a lossy relay. Every hop -- an agent's report into your brief, a brief into a durable doc -- can drop the uncertainty marker and turn a "maybe" into an asserted fact. These rules keep drift out of what you hand down. Each costs one grep; skipping one costs review rounds.
- Grep targets, not line numbers. Never put a
file:linein a brief. Give the symbol name or the exact string to grep for. Line numbers drift the moment a branch moves; a grep target is self-verifying. (A testfile:linea reviewer produced in its own fresh checkout is fine for that reviewer; do not copy it forward into a brief or a doc.) - Never hand over code you did not run. No selector, snippet, or query written from memory. Describe the intent and the constraint and let the implementer write the code and confirm it resolves to what you meant. An unexecuted snippet is a guess in the costume of a fact -- and a wrong selector manufactures a false green.
- Label provenance on every claim you pass down. Mark each as
verified by me just now,reported by <agent>, unverified, orfrom the ticket, unverified, and tell the receiver to verify every claim and report what they had to drop. Where you label, receivers catch your errors; where you assert, they propagate. - Agreement is not verification. Two agents concurring is independent confirmation only if the second names the evidence it actually looked at. A reviewer who read the implementer's report and agreed has verified nothing -- that is transitive trust, not a second opinion.
- Re-derive before any durable write. A brief is cheap to correct mid-flight; CLAUDE.md, a ticket, a PR body are read months later by someone who cannot tell which sentences you checked. The bar for a durable artifact is: I opened the file, just now, on this branch, and re-read the fact -- not "an agent told me hours ago."
- A merge invalidates everything before it. Any fact you learned before a merge you performed (migration maxes, "current" state, line ranges) is stale by default. Re-derive after every merge.
Plugin paths
The role briefs and scripts below live in this plugin, not necessarily in the target repository. Resolve these paths from this skill file before executing or reading them:
../../agents/orchestration-implementer.md../../agents/orchestration-design-reviewer.md../../agents/orchestration-code-reviewer.md../../agents/orchestration-security-reviewer.md../../agents/orchestration-visual-qa.md../../scripts/merge-guard.sh../../scripts/merge-on-green.sh../../scripts/cleanup-worktree.sh../../scripts/context_pipeline.py../../scripts/api_agent.py../../scripts/orchestration-engine.py../../scripts/review-ledger.py../../scripts/run-verification.sh../../scripts/run-visual-qa.sh
Execute scripts by absolute path while keeping the target repository as the working directory.
Steps
Scope check. If the ticket system is a real tracker, confirm the ticket is Ready: a description you could write a failing test from. If it is too thin, scope it (see the
scope-ticketskill) or push back BEFORE cutting a branch. With no tracker, treat the request as the spec.Resolve
worker_trust_profilenow. It applies only to orchestration workers versus the host; it never narrows the application threat model. Do not let a later reviewer silently substitute a stronger profile.- Pre-implementation gates. Before cutting a branch or editing production
code, build an adversarial test matrix from the acceptance criteria and the
existing system. Each row names the attack/failure mode, setup/input, expected
invariant, test layer, and the assertion that would fail. Include relevant
parser/interpreter forms (shell wrappers, quoting, substitutions, heredocs,
redirections and pipelines), ignored/untracked files, failed Git or other
inspection commands, partial execution, cleanup/recovery, permissions,
concurrency, retries, and hostile inputs; mark a category N/A only with a
reason. Perform an architecture-feasibility check before implementation:
name which repository or operating boundary can enforce every promised
invariant. If success requires a root-owned installation, distinct UID,
daemon, container, cloud resource, or rollout outside the authorized scope,
split or defer that work instead of approving an in-repository approximation.
If the planned change touches security-sensitive infrastructure or crosses
one of those external boundaries, run
a fresh pre-code design review with
orchestration-design-reviewer.md. Open its durable counter withreview-ledger.py design-open <ticket-or-change>and record FAIL withdesign-record --verdict FAIL --evidence <artifact>. A PASS must usedesign-record --result <json>with schema version 1, gatedesign-review, verdict, full exactsource_sha, named repository artifact, its SHA-256 digest, the consumedphase_permit, and non-empty pass/fail checks. A generic completed message cannot authorize code. It must define the trust boundary and impossible guarantees, reject fragile designs, audit the matrix, and endVERDICT: PASS. A FAIL returns to design untilmax_design_rounds; then stop withdesign-handoff. Pass the approved artifacts to the implementer. - Implement. Run the implementer role from
orchestration-implementer.md, passing the ticket body and the click-path. If the host supports subagents, launch a fresh implementer withisolation: "worktree"; otherwise perform that role as a distinct pass in an isolated git worktree. Use configured branch roles. In legacy configs, this remains one agent-role, one ticket, one worktree, one branch off the legacy configured source branch, one PR to the legacy configured target branch. Wait for its structured report (PR number, branch, worktree, SELF_CHECK). Gate. Run the review gates on the PR concurrently against one exact head: first run
version_policy.py --plugin-root <resolved-plugin-root> --config .orchestration/config.yamland stop unless it reportsstatus: compatible. The permit and merge scripts repeat this minimum-version check mechanically. a fresh code-review role usingorchestration-code-reviewer.md(no implementer context), and a fresh security-review role usingorchestration-security-reviewer.mdwhen the sharedorchestration-engine.py security-gatedecision requires it from the raw diff or authoritative PR source/target branches. Bind every decision to the review generation withreview-ledger.py record-security-gate <pr> --head <full-exact-head> --decision <security-gate-output.json>; without it the ledger keeps a configured security review required. A failed decision is a fail-closed stop, never permission to skip security. Both must return validated structured PASS results with no blocking findings. On each pass, supply the raw unified base-to-head git diff as the default code input, never a full-codebase index; expand only for a named verification or regression check. On any structured FAIL result, require the reviewer to finish its full checklist and adversarial sweep and return all findings together. A blocking finding must identify a concrete failing input/precondition, production path, wrong outcome/impact, and reproduction or exact falsifying assertion under the configured threat profile. Hypothetical stronger-profile concerns are advisory and must not expand the ticket into infrastructure.The durable failure ledger owns this loop; do not track it in your own context, which compacts. Open it once with the immutable ticket binding (
review-ledger.py open <pr> --work-kind jira --work-id <ticket>), pastereview-ledger.py brief <pr>into every reviewer brief, and record every completed gate withreview-ledger.py record <pr> --gate <gate> --result .orchestration/.review-results/<gate>.json --head <exact-sha> --phase-permit <token>. Native reviewers first callcomplete-reviewon that permit after writing the structured result. It normalizes each finding's bare<path>:<symbol>component key so a repeated defect actually accumulates strikes, freezes blocking scope after round 1, and returnsnext_action:If a non-findings commit moves the PR head after a complete generation, run
review-ledger.py rebind-generation <pr> --head <full-exact-head> --reason "<auditable reason>"before requesting new review permits. It preserves the prior history, findings, strikes, and repair-cycle count and is refused while blockers or permits remain open. A findings repair must still userecord-repair.review-- after all gates record, generate onerepair-brief; return its deduplicated stable IDs to a fresh implementer on the same branch. Require root cause, change, affected boundaries, closure condition, and verification for every ID. Record the strict report withrecord-repair, concurrently re-run code and required security review on that exact head, then callrecord ... --head <exact-sha>for each result andcomplete-repair-review. Advisory findings never enter the repair brief.redesign-- a component survived a completed repair. Return to the design gate for a root-cause redesign scoped to that component with a revised adversarial matrix before any more code is changed; do not authorize another narrow patch. Record its PASS withreview-ledger.py redesign <pr> --key <key> --verdict PASS.escalate-human-- the configured round cap is spent with blocking findings still open. STOP: do not merge and do not run another round. Hand the userreview-ledger.py handoff <pr>with the PR link.gates-clear-- necessary, not sufficient; confirm the security gate ran if the diff triggers it.
On later rounds, code review covers the repair delta and affected boundaries; security still audits every relevant trust boundary. Never merge on a FAIL.
- Verify (when configured). For each
verification:entry whosewhen:matches the configured target, run the resolvedrun-verification.sh <name>on the rebased branch (GREEN writes a sha-stamped result file; RED = no merge). If the change has a user-visible surface, run the visual-QA role fromorchestration-visual-qa.mdagainst the click-path; it must endVERDICT: PASS. - Merge on green. Only after every gate PASSES, every required verification
is GREEN, and the configured target CI checks are green: record the marker
(
merge-guard.sh --record-green <pr> [result_file]), then merge withmerge-on-green.sh <pr> <branch> all-green <verify_path>. That script validates the marker, plugin version, PR head/branch, target base/sha, and freshness itself, so correctness never depends on either host registering a hook. A trusted Claude Code or Codex hook is defense in depth; branch protection remains the out-of-band enforcement layer. - Close the loop. Transition the ticket if there is a configured tracker or
ticket adapter. Confirm the work landed on the configured target branch.
Read
worktree_cleanup(defaultmanual). When it isauto, runcleanup-worktree.sh <WORKTREE>explicitly after the verified merge; this is the host-neutral cleanup path and still refuses dirty worktrees. When it ismanual, preserve the worktree and report its path. Report what merged and the click path. Do not assume a lifecycle hook ran.
Respect concurrency_max for ticket lanes and max_heavy_processes for local
build/test/browser chains. When the API ledger shows sustained rate-limit wait,
stop admitting work to that provider until it recovers; preserve reservations and
let safe work routed elsewhere continue. Dual gates on ONE PR run concurrently
against one immutable head. CI-green alone
is NOT the gate; the independent VERDICTs are mandatory.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

