To Issues
Turn planned work into implementation tickets that are ready to run and fit the
plan. This is the single front door for creating implementation tickets. Every
implementation ticket the workflow runs should pass through here, including ones
the user created by hand.
To Issues creates and shapes tickets. It does not implement, review, or move
active work. Spec or epic tickets are input containers, not work to ship.
Flows that file tickets outside To Issues, such as review sweeps or eval
sessions, must either run this intake pass or leave readiness labels off so
the gap stays visible. A hand-filed ticket carrying ready-for-agent without
intake metadata is a dispatch hazard.
Inputs
- A spec doc, PRD ticket, epic ticket, plan, or project to turn into issues. A
Grill-managed spec must be
Ready for slicing.
- Repo path and
docs/agents/workflow/config.md.
- Existing tracker tickets under the same parent, project, or route.
- Any hand-created implementation tickets to adopt into the plan.
Context
Read docs/agents/workflow/config.md first. If it is missing, run or request
ziw-setup before creating tickets.
Confirm before creating or editing tickets:
- provider location, project, team, parent, and routing label
- status names, the configured ready state, and intake states
- kind label set and its single-select policy
- readiness, risk, type, and area labels and their policies
- estimate field, scale, and requiredness policy
- agent-ready issue body contract
- dependency and blocker fields
- file footprint convention from config
Read the agent-ready body contract and label rules from
../ziw-setup/references/issue-tracker-contract.md
so the body shape and labels stay defined in one place. See Self-Healing below
when existing tickets are inconsistent.
Planning Handoff
Inspect the source plan before creating or editing tracker tickets.
Status: Ready for slicing, or its configured equivalent, is an explicit
Grill handoff and may proceed.
Status: Draft, or its configured equivalent, is not ready for implementation
slicing. Stop and report its blocking questions.
- When the user explicitly asks to preserve a Draft in the tracker, create or
update only a non-ready
kind-spec or kind-epic container carrying the
gaps. Do not emit implementation slices or apply ready-for-agent.
- A legacy spec, PRD, plan, or epic without lifecycle status may proceed only
when its outcome, scope, non-goals, behavior, acceptance signals, and material
open questions are clear enough to satisfy this skill's ticket contract.
- A contradiction or blocking question that could change slice boundaries,
risk, dependencies, or required proof returns the plan to
ziw-grill; To
Issues does not invent the missing decision.
Do not weaken this gate because a plan already has tickets. Adopt existing
tickets only after the source is ready enough to define their boundaries.
Ticket Kinds
Kind is a single-select axis, separate from type. Skills enforce exclusivity even
when the tracker group does not.
kind-spec: holds spec or PRD prose. Input to To Issues. Never dispatched.
kind-epic: a parent or workstream container grouping slices. Never
dispatched.
kind-slice: one-PR implementation ticket. The only kind a worker runs.
Set exactly one kind on every ticket To Issues touches, and clear any other
kind-* value.
Containers Are Input
Treat a kind-spec or kind-epic ticket as the source you turn into issues, not a
ticket to ship.
- Read its prose, linked docs, and acceptance signals.
- Emit
kind-slice children and link them under it.
- Keep the container as a container. Never put
ready-for-agent on it and never
hand it to a worker.
Adopt Before Creating
To Issues is idempotent. Re-running it over the same plan converges; it does not
duplicate.
Before creating any ticket:
- Inventory existing tickets under the target parent, project, or route,
including hand-created ones.
- Match planned slices to existing tickets by outcome, scope, and touched area.
- Adopt each match: bring it up to the body contract, set
kind-slice, fix
labels and links. Do not create a duplicate.
- Create new
kind-slice tickets only for planned work that has no existing
ticket.
- When two existing tickets cover the same slice, converge on the canonical one
and mark the other a duplicate; do not silently leave both. See Self-Healing.
Adoption fixes mechanics and fills missing contract headings from evidence in the
plan. It never invents scope or acceptance criteria. Where intent is unknowable,
apply needs-info and leave the exact question.
Slice
Cut work into thin, independently shippable, one-PR vertical slices.
- Each slice delivers a verifiable end-to-end behavior, not a layer.
- Each slice is scoped to one PR.
- Each slice has one primary outcome. Do not bundle "while you are there"
cleanup, polish, adjacent bug fixes, future-proofing, or sibling ticket work
into the same
kind-slice.
- Prefer a tracer-bullet first slice that proves the path end to end, then
slices that widen it.
- Do not make a
kind-slice whose Done state requires multiple PRs. Split
scaffold, CI gate, data migration, preview flip, and final wiring into separate
slices or keep them under a kind-epic container so a first linked PR cannot
falsely close the whole scope.
- When adjacent outcomes are useful but not required for this PR, create sibling
slices, link them, and name them in this ticket's out-of-scope section.
- Leave vague ideas un-ticketed until scope is clear; record them as open
questions rather than guessing scope.
Body Contract
Give every kind-slice ticket the agent-ready body from the issue tracker
contract:
- outcome
- context docs, with spec citations when the slice comes from a spec
- likely files, packages, or artifacts
- in scope
- out of scope
- acceptance criteria
- required checks
- security, privacy, data, and operational invariants
- dependencies or blockers
- estimate when config stores estimates in the body
The in scope and out of scope fields are a hard boundary, not placeholders.
Write them so an implementation worker can tell when to stop:
in scope names only the behavior, files, docs, tests, and workflow state this
PR may change.
out of scope names tempting adjacent work, sibling ticket IDs when known,
optional polish, broad refactors, production actions, and follow-up behavior
the worker must not deliver.
- If out-of-scope cannot be written because the slice boundary is unclear, mark
the ticket
needs-info or keep it under a container. Do not mark it
ready-for-agent.
If a required field is unknowable from the plan, add the heading, mark the ticket
needs-info, leave the specific question, and do not mark it ready. Do not
fabricate criteria to make a ticket look ready.
When the slice implements behavior defined in a spec, PRD, or ADR, cite the
exact sections it implements in context docs as resolvable links, such as
docs/specs/<file>.md#<section-anchor>. Use the section anchor as the
traceability unit; do not paraphrase spec behavior into the ticket without the
citation, and do not cite a whole document when specific sections apply. Verify
each cited anchor resolves. A spec-derived slice without resolvable citations is
not ready-for-agent.
Write acceptance criteria as proof obligations the implementer and reviewer can
map one-for-one to evidence. If the requirement is structural, such as "derive,
do not copy", "fail closed", "no production-path assertion", "real driver path",
or "env var reaches the test process", name the exact behavior and regression
test that must prove it.
Record deploy prerequisites, runtime secrets, hosted gates, generated artifact
updates, and CI env passthrough requirements as explicit acceptance criteria or
required checks. Do not bury launch blockers only in background docs.
When a slice depends on exact external config, resource IDs, provider names,
label slugs, secret names, or environment values, put the exact configured
literals or their config lookup location in the body. Do not rely on prior issue
comments as the only source for hard values a worker must use.
Prefer slices that match known strong agent-fit work: docs, tests, build or CI
updates, small refactors with clear checks, scoped bugs with reproduction, and
isolated UI changes with target states. Mark high-risk or ambiguous work for
human planning when the plan does not settle the security, product, data, or
architecture decision.
For auth, bootstrap, claim, invitation, one-use grant, custody, or ownership
slices, make the security invariants concrete before marking the ticket ready.
Name the authenticated actor, tenant or resource binding, replay behavior,
atomic consume or claim requirement, and concurrency checks the worker must
prove.
For custody, persistence, driver-integration, or provider-integration slices,
give acceptance criteria an executable shape that exercises the real boundary.
Prefer checks such as multi-instance readback, concurrent first use, real driver
queries, env passthrough, or provider-shape verification over prose-only
assertions. Do not make a mock of the integrated seam the only proof.
For slices that drop or narrow schema on retained data, put the deploy order in
the acceptance criteria: pre-deploy data cleanup must land before the schema
change deploys when the platform validates the new schema against existing
rows, and bulk migrations must use a resumable batched runner, not a single
transaction. Name the production deploy status that proves the change landed; a
green preview does not prove the production deploy.
Estimates
Follow the Estimate Rules in
../ziw-setup/references/issue-tracker-contract.md:
estimate each kind-slice after splitting to one PR, using only the
configured field and scale, and omit estimates when config defines none. If
estimates are required before ready-for-agent and a value is unknowable from
the plan, leave the exact question, apply needs-info or ready-for-human,
and do not mark the ticket ready.
Labels And Readiness
For each kind-slice:
- apply one type and one risk label from config
- apply routing and area labels from config
- apply the configured estimate when the estimate policy grants To Issues that
authority
- apply the configured worker environment label only when the environment
approval criteria are met; dependency state is not a reason to withhold it
- apply
ready-for-agent only when the slice is scoped to one PR, routed,
type and risk labeled, estimated if required, has a concrete in-scope and
out-of-scope boundary, and is complete enough to verify
- do not apply
ready-for-agent when the body itself says human setup,
credentials, provider decisions, or security judgment are still required
- place ready
kind-slice issues in the configured ready state, usually Todo,
even when they are blocked by other tickets; do not park
implementation-ready slices in Linear Backlog
- otherwise apply
needs-info or ready-for-human with the exact gap
ready-for-agent means no further human refinement is needed before agent
handoff. It does not mean unblocked or startable. Blocked slices can still be
ready-for-agent; encode the blocker separately.
Dependency Graph
Emit a dependency graph so the orchestrator can compute the ready frontier and
run safe work in parallel.
- Encode dependencies with the tracker's relationship or blocker fields when the
provider supports them; otherwise record them in the body in the configured
shape.
- Use the configured relationship direction. By default, if ticket A needs ticket
B first, A is blocked by B and B blocks A.
- Order slices so each depends only on earlier ones. Break cycles and report
them.
- Serialize slices that must not run concurrently even without a direct data
dependency, such as shared schema or migration ordering, using the configured
dependency mechanism.
- When several slices converge on the same core files or regenerate the same
shared artifact, sequence the convergent slice to land first or immediately
adjacent to its siblings, or serialize the cohort. Same-base siblings all
conflict the moment one merges.
- Encoding a dependency never removes
ready-for-agent, the configured ready
state, or a worker environment label.
File Footprint
For each kind-slice, record a predicted file or package footprint in the
configured location and shape, so the orchestrator can avoid dispatching
colliding slices concurrently.
- List the files, directories, or packages the slice is most likely to change.
- Include shared document surfaces the slice is likely to edit, such as dense
markdown list blocks, status ledgers, registries, changelogs, config tables,
and docs sections owned by many slices.
- Keep it a prediction, not a guarantee; the worker may diverge.
- Flag slices with heavy expected overlap so they are serialized or sequenced.
- Compare sibling slices after assigning individual footprints. Record hot files
or packages and the safe fan-out pairs, so Orchestrator does not discover
obvious collisions only after workers are already in flight.
Coverage Matrix
When the input is a spec, PRD, or a container that links one, emit a coverage
matrix so dropped requirements are caught at slicing time instead of surfacing
as drift after merge.
- Map every spec section that states requirements to exactly one of: the slice
IDs that implement it,
deferred with the reason and owning ticket, or an
open question left as needs-info.
- Use the spec's section anchors as rows, the same anchors the slices cite in
context docs. Do not invent a separate requirement numbering.
- Mark sections that state no requirements, such as overviews and narrative
context, as
not-applicable explicitly. An anchor absent from the matrix is
an uncovered gap, not an implied skip.
- Record the matrix on the container ticket body, or in the location repo config
names. Re-runs converge on the one existing matrix: update rows in place,
never emit a second matrix for the same spec.
- The run is incomplete while any requirement-bearing section is unmapped.
Report unmapped sections as gaps; do not mark the container's slices ready
while the matrix has silent holes.
Self-Healing
Use model judgment over current evidence to repair stale or inconsistent ticket
structure, escalate missing intent or authority, never leave a silent dead end,
and record every fix. For To Issues specifically:
- Heal a wrong or duplicate
kind-*, a stale label that resolves to a verified
one, and a re-run duplicate by converging on the canonical ticket.
- Escalate with
needs-info when scope or acceptance criteria are unknowable;
never fabricate them to make a ticket look ready.
- Report every heal and every escalated gap in the run summary.
Guardrails
- Do not implement code, open PRs, merge, deploy, or move active work states.
- Do not ship or mark ready a
kind-spec or kind-epic container.
- Do not duplicate existing tickets; adopt and converge.
- Do not invent scope, acceptance criteria, or product decisions.
- Do not create new label taxonomies or statuses without config or explicit user
approval.
- Keep ticket text metadata-only. Never paste secrets, customer data, signed
URLs, credentials, or private logs.
Done
Report:
- source plan and target location
- slices created, slices adopted, and duplicates converged
- kind labels set and any kind contradictions healed
- estimates set, preserved, omitted by policy, or left with exact questions
- tickets marked
ready-for-agent, needs-info, or ready-for-human
- dependency graph and any cycles or required serializations
- file footprints recorded and overlaps flagged
- coverage matrix location, rows mapped, and any uncovered or deferred sections
- heals applied and intent gaps escalated, with exact questions left
- what the user must answer before the remaining slices can become ready
1---2name: ziw-to-issues3description: Use to turn a spec, PRD, or epic ticket into dependency-ordered one-PR implementation tickets, adopting any hand-created tickets, applying the agent-ready body contract, configured estimates, and kind labels, and emitting a dependency graph and predicted file footprint.4---56# To Issues78Turn planned work into implementation tickets that are ready to run and fit the9plan. This is the single front door for creating implementation tickets. Every10implementation ticket the workflow runs should pass through here, including ones11the user created by hand.1213To Issues creates and shapes tickets. It does not implement, review, or move14active work. Spec or epic tickets are input containers, not work to ship.1516Flows that file tickets outside To Issues, such as review sweeps or eval17sessions, must either run this intake pass or leave readiness labels off so18the gap stays visible. A hand-filed ticket carrying `ready-for-agent` without19intake metadata is a dispatch hazard.2021## Inputs2223- A spec doc, PRD ticket, epic ticket, plan, or project to turn into issues. A24 Grill-managed spec must be `Ready for slicing`.25- Repo path and `docs/agents/workflow/config.md`.26- Existing tracker tickets under the same parent, project, or route.27- Any hand-created implementation tickets to adopt into the plan.2829## Context3031Read `docs/agents/workflow/config.md` first. If it is missing, run or request32`ziw-setup` before creating tickets.3334Confirm before creating or editing tickets:3536- provider location, project, team, parent, and routing label37- status names, the configured ready state, and intake states38- kind label set and its single-select policy39- readiness, risk, type, and area labels and their policies40- estimate field, scale, and requiredness policy41- agent-ready issue body contract42- dependency and blocker fields43- file footprint convention from config4445Read the agent-ready body contract and label rules from46[../ziw-setup/references/issue-tracker-contract.md](../ziw-setup/references/issue-tracker-contract.md)47so the body shape and labels stay defined in one place. See Self-Healing below48when existing tickets are inconsistent.4950## Planning Handoff5152Inspect the source plan before creating or editing tracker tickets.5354- `Status: Ready for slicing`, or its configured equivalent, is an explicit55 Grill handoff and may proceed.56- `Status: Draft`, or its configured equivalent, is not ready for implementation57 slicing. Stop and report its blocking questions.58- When the user explicitly asks to preserve a Draft in the tracker, create or59 update only a non-ready `kind-spec` or `kind-epic` container carrying the60 gaps. Do not emit implementation slices or apply `ready-for-agent`.61- A legacy spec, PRD, plan, or epic without lifecycle status may proceed only62 when its outcome, scope, non-goals, behavior, acceptance signals, and material63 open questions are clear enough to satisfy this skill's ticket contract.64- A contradiction or blocking question that could change slice boundaries,65 risk, dependencies, or required proof returns the plan to `ziw-grill`; To66 Issues does not invent the missing decision.6768Do not weaken this gate because a plan already has tickets. Adopt existing69tickets only after the source is ready enough to define their boundaries.7071## Ticket Kinds7273Kind is a single-select axis, separate from type. Skills enforce exclusivity even74when the tracker group does not.7576- `kind-spec`: holds spec or PRD prose. Input to To Issues. Never dispatched.77- `kind-epic`: a parent or workstream container grouping slices. Never78 dispatched.79- `kind-slice`: one-PR implementation ticket. The only kind a worker runs.8081Set exactly one kind on every ticket To Issues touches, and clear any other82`kind-*` value.8384## Containers Are Input8586Treat a `kind-spec` or `kind-epic` ticket as the source you turn into issues, not a87ticket to ship.8889- Read its prose, linked docs, and acceptance signals.90- Emit `kind-slice` children and link them under it.91- Keep the container as a container. Never put `ready-for-agent` on it and never92 hand it to a worker.9394## Adopt Before Creating9596To Issues is idempotent. Re-running it over the same plan converges; it does not97duplicate.9899Before creating any ticket:1001011. Inventory existing tickets under the target parent, project, or route,102 including hand-created ones.1032. Match planned slices to existing tickets by outcome, scope, and touched area.1043. Adopt each match: bring it up to the body contract, set `kind-slice`, fix105 labels and links. Do not create a duplicate.1064. Create new `kind-slice` tickets only for planned work that has no existing107 ticket.1085. When two existing tickets cover the same slice, converge on the canonical one109 and mark the other a duplicate; do not silently leave both. See Self-Healing.110111Adoption fixes mechanics and fills missing contract headings from evidence in the112plan. It never invents scope or acceptance criteria. Where intent is unknowable,113apply `needs-info` and leave the exact question.114115## Slice116117Cut work into thin, independently shippable, one-PR vertical slices.118119- Each slice delivers a verifiable end-to-end behavior, not a layer.120- Each slice is scoped to one PR.121- Each slice has one primary outcome. Do not bundle "while you are there"122 cleanup, polish, adjacent bug fixes, future-proofing, or sibling ticket work123 into the same `kind-slice`.124- Prefer a tracer-bullet first slice that proves the path end to end, then125 slices that widen it.126- Do not make a `kind-slice` whose Done state requires multiple PRs. Split127 scaffold, CI gate, data migration, preview flip, and final wiring into separate128 slices or keep them under a `kind-epic` container so a first linked PR cannot129 falsely close the whole scope.130- When adjacent outcomes are useful but not required for this PR, create sibling131 slices, link them, and name them in this ticket's out-of-scope section.132- Leave vague ideas un-ticketed until scope is clear; record them as open133 questions rather than guessing scope.134135## Body Contract136137Give every `kind-slice` ticket the agent-ready body from the issue tracker138contract:139140- outcome141- context docs, with spec citations when the slice comes from a spec142- likely files, packages, or artifacts143- in scope144- out of scope145- acceptance criteria146- required checks147- security, privacy, data, and operational invariants148- dependencies or blockers149- estimate when config stores estimates in the body150151The `in scope` and `out of scope` fields are a hard boundary, not placeholders.152Write them so an implementation worker can tell when to stop:153154- `in scope` names only the behavior, files, docs, tests, and workflow state this155 PR may change.156- `out of scope` names tempting adjacent work, sibling ticket IDs when known,157 optional polish, broad refactors, production actions, and follow-up behavior158 the worker must not deliver.159- If out-of-scope cannot be written because the slice boundary is unclear, mark160 the ticket `needs-info` or keep it under a container. Do not mark it161 `ready-for-agent`.162163If a required field is unknowable from the plan, add the heading, mark the ticket164`needs-info`, leave the specific question, and do not mark it ready. Do not165fabricate criteria to make a ticket look ready.166167When the slice implements behavior defined in a spec, PRD, or ADR, cite the168exact sections it implements in context docs as resolvable links, such as169`docs/specs/<file>.md#<section-anchor>`. Use the section anchor as the170traceability unit; do not paraphrase spec behavior into the ticket without the171citation, and do not cite a whole document when specific sections apply. Verify172each cited anchor resolves. A spec-derived slice without resolvable citations is173not `ready-for-agent`.174175Write acceptance criteria as proof obligations the implementer and reviewer can176map one-for-one to evidence. If the requirement is structural, such as "derive,177do not copy", "fail closed", "no production-path assertion", "real driver path",178or "env var reaches the test process", name the exact behavior and regression179test that must prove it.180181Record deploy prerequisites, runtime secrets, hosted gates, generated artifact182updates, and CI env passthrough requirements as explicit acceptance criteria or183required checks. Do not bury launch blockers only in background docs.184185When a slice depends on exact external config, resource IDs, provider names,186label slugs, secret names, or environment values, put the exact configured187literals or their config lookup location in the body. Do not rely on prior issue188comments as the only source for hard values a worker must use.189190Prefer slices that match known strong agent-fit work: docs, tests, build or CI191updates, small refactors with clear checks, scoped bugs with reproduction, and192isolated UI changes with target states. Mark high-risk or ambiguous work for193human planning when the plan does not settle the security, product, data, or194architecture decision.195196For auth, bootstrap, claim, invitation, one-use grant, custody, or ownership197slices, make the security invariants concrete before marking the ticket ready.198Name the authenticated actor, tenant or resource binding, replay behavior,199atomic consume or claim requirement, and concurrency checks the worker must200prove.201202For custody, persistence, driver-integration, or provider-integration slices,203give acceptance criteria an executable shape that exercises the real boundary.204Prefer checks such as multi-instance readback, concurrent first use, real driver205queries, env passthrough, or provider-shape verification over prose-only206assertions. Do not make a mock of the integrated seam the only proof.207208For slices that drop or narrow schema on retained data, put the deploy order in209the acceptance criteria: pre-deploy data cleanup must land before the schema210change deploys when the platform validates the new schema against existing211rows, and bulk migrations must use a resumable batched runner, not a single212transaction. Name the production deploy status that proves the change landed; a213green preview does not prove the production deploy.214215## Estimates216217Follow the Estimate Rules in218[../ziw-setup/references/issue-tracker-contract.md](../ziw-setup/references/issue-tracker-contract.md):219estimate each `kind-slice` after splitting to one PR, using only the220configured field and scale, and omit estimates when config defines none. If221estimates are required before `ready-for-agent` and a value is unknowable from222the plan, leave the exact question, apply `needs-info` or `ready-for-human`,223and do not mark the ticket ready.224225## Labels And Readiness226227For each `kind-slice`:228229- apply one type and one risk label from config230- apply routing and area labels from config231- apply the configured estimate when the estimate policy grants To Issues that232 authority233- apply the configured worker environment label only when the environment234 approval criteria are met; dependency state is not a reason to withhold it235- apply `ready-for-agent` only when the slice is scoped to one PR, routed,236 type and risk labeled, estimated if required, has a concrete in-scope and237 out-of-scope boundary, and is complete enough to verify238- do not apply `ready-for-agent` when the body itself says human setup,239 credentials, provider decisions, or security judgment are still required240- place ready `kind-slice` issues in the configured ready state, usually `Todo`,241 even when they are blocked by other tickets; do not park242 implementation-ready slices in Linear `Backlog`243- otherwise apply `needs-info` or `ready-for-human` with the exact gap244245`ready-for-agent` means no further human refinement is needed before agent246handoff. It does not mean unblocked or startable. Blocked slices can still be247`ready-for-agent`; encode the blocker separately.248249## Dependency Graph250251Emit a dependency graph so the orchestrator can compute the ready frontier and252run safe work in parallel.253254- Encode dependencies with the tracker's relationship or blocker fields when the255 provider supports them; otherwise record them in the body in the configured256 shape.257- Use the configured relationship direction. By default, if ticket A needs ticket258 B first, A is blocked by B and B blocks A.259- Order slices so each depends only on earlier ones. Break cycles and report260 them.261- Serialize slices that must not run concurrently even without a direct data262 dependency, such as shared schema or migration ordering, using the configured263 dependency mechanism.264- When several slices converge on the same core files or regenerate the same265 shared artifact, sequence the convergent slice to land first or immediately266 adjacent to its siblings, or serialize the cohort. Same-base siblings all267 conflict the moment one merges.268- Encoding a dependency never removes `ready-for-agent`, the configured ready269 state, or a worker environment label.270271## File Footprint272273For each `kind-slice`, record a predicted file or package footprint in the274configured location and shape, so the orchestrator can avoid dispatching275colliding slices concurrently.276277- List the files, directories, or packages the slice is most likely to change.278- Include shared document surfaces the slice is likely to edit, such as dense279 markdown list blocks, status ledgers, registries, changelogs, config tables,280 and docs sections owned by many slices.281- Keep it a prediction, not a guarantee; the worker may diverge.282- Flag slices with heavy expected overlap so they are serialized or sequenced.283- Compare sibling slices after assigning individual footprints. Record hot files284 or packages and the safe fan-out pairs, so Orchestrator does not discover285 obvious collisions only after workers are already in flight.286287## Coverage Matrix288289When the input is a spec, PRD, or a container that links one, emit a coverage290matrix so dropped requirements are caught at slicing time instead of surfacing291as drift after merge.292293- Map every spec section that states requirements to exactly one of: the slice294 IDs that implement it, `deferred` with the reason and owning ticket, or an295 open question left as `needs-info`.296- Use the spec's section anchors as rows, the same anchors the slices cite in297 context docs. Do not invent a separate requirement numbering.298- Mark sections that state no requirements, such as overviews and narrative299 context, as `not-applicable` explicitly. An anchor absent from the matrix is300 an uncovered gap, not an implied skip.301- Record the matrix on the container ticket body, or in the location repo config302 names. Re-runs converge on the one existing matrix: update rows in place,303 never emit a second matrix for the same spec.304- The run is incomplete while any requirement-bearing section is unmapped.305 Report unmapped sections as gaps; do not mark the container's slices ready306 while the matrix has silent holes.307308## Self-Healing309310Use model judgment over current evidence to repair stale or inconsistent ticket311structure, escalate missing intent or authority, never leave a silent dead end,312and record every fix. For To Issues specifically:313314- Heal a wrong or duplicate `kind-*`, a stale label that resolves to a verified315 one, and a re-run duplicate by converging on the canonical ticket.316- Escalate with `needs-info` when scope or acceptance criteria are unknowable;317 never fabricate them to make a ticket look ready.318- Report every heal and every escalated gap in the run summary.319320## Guardrails321322- Do not implement code, open PRs, merge, deploy, or move active work states.323- Do not ship or mark ready a `kind-spec` or `kind-epic` container.324- Do not duplicate existing tickets; adopt and converge.325- Do not invent scope, acceptance criteria, or product decisions.326- Do not create new label taxonomies or statuses without config or explicit user327 approval.328- Keep ticket text metadata-only. Never paste secrets, customer data, signed329 URLs, credentials, or private logs.330331## Done332333Report:334335- source plan and target location336- slices created, slices adopted, and duplicates converged337- kind labels set and any kind contradictions healed338- estimates set, preserved, omitted by policy, or left with exact questions339- tickets marked `ready-for-agent`, `needs-info`, or `ready-for-human`340- dependency graph and any cycles or required serializations341- file footprints recorded and overlaps flagged342- coverage matrix location, rows mapped, and any uncovered or deferred sections343- heals applied and intent gaps escalated, with exact questions left344- what the user must answer before the remaining slices can become ready