Ask Skills
Owns: routing. It does not implement ticket parsing, restate stage policy, schedule runs,
implement work, finalize runs, or manufacture approvals.
Before routing or composing skills, read the operating defaults for security and delegation scope.
Routing map
- Unambiguous affirmative instruction to “merge all”, “merge everything”, or “mergia tutto”
in one known repository:
ticket-autopilot. Treat it as an operational repository-wide
authority transaction, not a delivery request. Inspect
repository-autonomous-merge-status: if authority is absent, use the human actor and
durable affirmative message to invoke grant-repository-autonomous-merge --scope current-and-future-runs; preserve an exact active grant instead of replacing its
provenance; fail closed on revoked, legacy, malformed, or contradictory state. Then invoke
merge-all. Never ask for a caller-supplied PR head
SHA or narrow the instruction to one displayed PR; the runner discovers and revalidates
every live exact head. If repository identity is ambiguous, ask only for that identity.
- Quoted text, examples, questions, negations, revocations, policy requests, and regression
reports about merge-all are not merge authority. Route their actual discussion or change
intent normally and perform no provider mutation.
- Explicit request to hold, cancel, reopen, or set the administrative disposition of one
exact ticket to
open, on-hold, or canceled: change-status-ticket. This route has
precedence over implementation only for that explicit disposition intent. “Open” means
reopen/set disposition here, never open a file, issue, or PR.
- Loose feature, decision, diagnosis, architecture, or bug-analysis request:
to-spec; add to-tickets only when executable slices are wanted.
- Existing spec needing executable slices:
to-tickets.
- One canonical ticket Markdown file: resolve
TICKET_AUTOPILOT_ROOT as the absolute
skill root from the catalog and run
python3 -B "$TICKET_AUTOPILOT_ROOT/scripts/ticket-autopilot.py" ticket-parse <ticket.md>. Hand its normalized Ticket Envelope, source artifact reference, and the
runner CandidateRef to execute-ticket; do not send this single-ticket route through
the folder scheduler.
- One already-normalized Ticket Envelope plus runner CandidateRef:
execute-ticket
directly.
- Legacy ticket Markdown: only the explicit
migrate command may convert it; then use the
canonical route above.
- Ticket folder requiring AFK orchestration:
ticket-autopilot.
- Huge, foggy, multi-session effort or unclear frontier:
wayfinder; use research,
prototype, or grilling for its investigation tickets as appropriate.
- Hard bug needing independent cross-checks:
triangulate-diagnosis; use diagnose for a
single evidence-backed pass.
- Runner candidate or standalone PR, commit, local diff review, or user-requested review
scope:
code-review.
- Runner candidate or standalone PR, commit, local diff QA planning, or user-requested QA
scope:
qa-test-plan.
- Runtime/release claim audit:
verification-audit.
- PR explanation from a validated bundle:
explain-pr.
- Focused cleanup of a GREEN candidate:
code-simplification.
Use the smallest flow that reaches the requested outcome. Do not route a single ticket
through the folder scheduler or recreate its orchestration in prose.
Bare ticket paths and requests to work on, implement, finish, or complete a ticket remain
ordinary delivery requests. Blocked, pause/unpause, stop, waiting, gated, readiness, and
lifecycle questions are not administrative dispositions: route runtime controls to Ticket
Autopilot and read-only questions to research or diagnosis. Never use
change-status-ticket as a generic docs-only or small-change bypass.
Execution defaults
After routing non-trivial work:
- If
update_plan (Pi Plan) is available, initialize it after route selection, keep exactly
one step in_progress, refresh the complete plan at meaningful status changes, then finish
or clear it at handoff.
- For research with a compatible project-bound
llm-wiki, query it first as an index. Apply
its RAG availability contract, state the selected query mode or fallback, and verify
material claims against canonical pages and primary sources. Never scaffold a wiki by inference.
- When the
code tool supplied by pi-code-tool is available, prefer it for loops,
filtering, aggregation, repeated inspection, derived transformations, and programmatic
checks; keep one small judgment-driven authored edit in direct edit/write when clearer.
Trivial work may omit Pi Plan and code mode. Missing tools require an explicit fallback, not
fabricated evidence. Tool availability or auto-approval grants no repository/provider authority.
Response
State the chosen skill or short composition, why it fits, and the input needed next. If the
user already supplied sufficient input, invoke the route instead of asking again.
1---2name: ask-skills3description: Route a request to the smallest composable local skill flow without duplicating orchestration or removed super-autopilot behavior.4---56# Ask Skills78Owns: routing. It does not implement ticket parsing, restate stage policy, schedule runs,9implement work, finalize runs, or manufacture approvals.1011Before routing or composing skills, read the [operating defaults](OPERATING-DEFAULTS.md) for security and delegation scope.1213## Routing map1415- Unambiguous affirmative instruction to “merge all”, “merge everything”, or “mergia tutto”16 in one known repository: `ticket-autopilot`. Treat it as an operational repository-wide17 authority transaction, not a delivery request. Inspect18 `repository-autonomous-merge-status`: if authority is absent, use the human actor and19 durable affirmative message to invoke `grant-repository-autonomous-merge --scope20 current-and-future-runs`; preserve an exact active grant instead of replacing its21 provenance; fail closed on revoked, legacy, malformed, or contradictory state. Then invoke22 `merge-all`. Never ask for a caller-supplied PR head23 SHA or narrow the instruction to one displayed PR; the runner discovers and revalidates24 every live exact head. If repository identity is ambiguous, ask only for that identity.25- Quoted text, examples, questions, negations, revocations, policy requests, and regression26 reports about merge-all are not merge authority. Route their actual discussion or change27 intent normally and perform no provider mutation.28- Explicit request to hold, cancel, reopen, or set the administrative disposition of one29 exact ticket to `open`, `on-hold`, or `canceled`: `change-status-ticket`. This route has30 precedence over implementation only for that explicit disposition intent. “Open” means31 reopen/set disposition here, never open a file, issue, or PR.32- Loose feature, decision, diagnosis, architecture, or bug-analysis request:33 `to-spec`; add `to-tickets` only when executable slices are wanted.34- Existing spec needing executable slices: `to-tickets`.35- One canonical ticket Markdown file: resolve `TICKET_AUTOPILOT_ROOT` as the absolute36 skill root from the catalog and run37 `python3 -B "$TICKET_AUTOPILOT_ROOT/scripts/ticket-autopilot.py" ticket-parse38 <ticket.md>`. Hand its normalized Ticket Envelope, source artifact reference, and the39 runner CandidateRef to `execute-ticket`; do not send this single-ticket route through40 the folder scheduler.41- One already-normalized Ticket Envelope plus runner CandidateRef: `execute-ticket`42 directly.43- Legacy ticket Markdown: only the explicit `migrate` command may convert it; then use the44 canonical route above.45- Ticket folder requiring AFK orchestration: `ticket-autopilot`.46- Huge, foggy, multi-session effort or unclear frontier: `wayfinder`; use `research`,47 `prototype`, or `grilling` for its investigation tickets as appropriate.48- Hard bug needing independent cross-checks: `triangulate-diagnosis`; use `diagnose` for a49 single evidence-backed pass.50- Runner candidate or standalone PR, commit, local diff review, or user-requested review51 scope: `code-review`.52- Runner candidate or standalone PR, commit, local diff QA planning, or user-requested QA53 scope: `qa-test-plan`.54- Runtime/release claim audit: `verification-audit`.55- PR explanation from a validated bundle: `explain-pr`.56- Focused cleanup of a GREEN candidate: `code-simplification`.5758Use the smallest flow that reaches the requested outcome. Do not route a single ticket59through the folder scheduler or recreate its orchestration in prose.6061Bare ticket paths and requests to work on, implement, finish, or complete a ticket remain62ordinary delivery requests. Blocked, pause/unpause, stop, waiting, gated, readiness, and63lifecycle questions are not administrative dispositions: route runtime controls to Ticket64Autopilot and read-only questions to research or diagnosis. Never use65`change-status-ticket` as a generic docs-only or small-change bypass.6667## Execution defaults6869After routing non-trivial work:7071- If `update_plan` (Pi Plan) is available, initialize it after route selection, keep exactly72 one step `in_progress`, refresh the complete plan at meaningful status changes, then finish73 or clear it at handoff.74- For research with a compatible project-bound `llm-wiki`, query it first as an index. Apply75 its RAG availability contract, state the selected query mode or fallback, and verify76 material claims against canonical pages and primary sources. Never scaffold a wiki by inference.77- When the `code` tool supplied by `pi-code-tool` is available, prefer it for loops,78 filtering, aggregation, repeated inspection, derived transformations, and programmatic79 checks; keep one small judgment-driven authored edit in direct `edit`/`write` when clearer.8081Trivial work may omit Pi Plan and code mode. Missing tools require an explicit fallback, not82fabricated evidence. Tool availability or auto-approval grants no repository/provider authority.8384## Response8586State the chosen skill or short composition, why it fits, and the input needed next. If the87user already supplied sufficient input, invoke the route instead of asking again.