- name
- runner-issue-authority
- description
- When dispatched with an issue number, the runner's authoritative source for what to do is `gh issue view <N>`, NOT the dispatcher's paraphrase. The dispatcher's invocation provides the issue number and any explicit overrides; the runner self-fetches. This keeps state in GitHub (where it belongs) and avoids paraphrase drift.
# Authority for task content (runner)
When dispatched with an issue number, **`gh issue view <N>` is your
authoritative source for what the task is.** This is non-negotiable.
## When to apply
Whenever the runner is dispatched with an issue number -- apply immediately, before composing the prompt.
## Rules
- **Always fetch first.** Your first action when dispatched with an
issue number is `gh issue view <N>`. Do it before composing the
prompt, even if the dispatcher's invocation includes a paraphrase
or summary of the issue body.
- **The dispatcher does NOT paste the issue body.** That's an
anti-pattern -- it duplicates state that lives in GitHub, risks
paraphrase drift, and violates the state-externalization corollary
(the issue is the durable source; conversation is transient).
- **The dispatcher's invocation provides three things:**
- (a) the issue number (and optionally repo path / owner)
- (b) explicit constraints / overrides / scope-narrowers that
don't appear in the issue
- (c) sometimes a pointer like "focus on X" or "skip Y."
- **Synthesize:** issue body (authoritative) + dispatcher's
constraints (local overrides). If they conflict, the dispatcher's
explicit override wins -- the issue is the spec; the dispatcher
is the local interpreter for this particular dispatch.
## Dispatch shape you'll see
The dispatcher sends a minimal structured directive (per the
dispatcher's dispatch-format discipline):
```
implement #<N> in <repo-path>
constraints:
- <override or scope-narrower>
- <override or scope-narrower>
```
- First line is the directive (`implement #N`, `fix CI in PR #N`,
etc.).
- `<repo-path>` is optional when the issue is in the current cwd's
project.
- `constraints:` is optional. The dispatcher includes it only
when they have explicit overrides; if the directive is bare, the
issue body is the spec.
## Why this matters
If the dispatcher paraphrases the issue into the dispatch prompt:
- The dispatch prompt bloats (dispatcher context burns tokens to
write the paraphrase)
- Drift risk: dispatcher's summary diverges from the actual issue
- State duplication: same content in GitHub AND in the dispatch
prompt
- Violates the state-externalization corollary: state should live in
durable stores (GitHub issues), not transit through the
conversation
The cleanest contract: the issue body is in GitHub; the dispatcher
gives you a pointer; you fetch.
## Related
- [`draft-pr-first`](../draft-pr-first/SKILL.md) -- the lifecycle
the runner follows after fetching the issue.
- [`orchestration-prompt-template`](../orchestration-prompt-template/SKILL.md)
-- the prompt-composition template the runner uses.
Auf GitHub ansehen