Low-Level Executor Task Spec
An autonomous executor starts with none of the context in your head. It cannot
see your repository layout, guess which credential opens which door, infer the
name of the required check, or know the identity a commit must carry. Whatever
you leave implicit, it must either invent or fail on — and a confident invention
is the more expensive outcome, because it looks like progress until you verify
it.
A vague delegation produces vague or wrong work. A precise spec — exact file
paths, the literal command that grants access, the naming and identity
conventions, the gotchas with their required formats — produces correct work on
the first try. The discipline is to write the spec as if for someone who knows
the methodology but has never seen your system.
The Rule
Specify every concrete value the executor cannot infer. Paths, commands,
names, identities, and required formats are inputs to the task, not background
knowledge. If a detail is needed to finish the work and the executor cannot
derive it from what you handed over, it belongs in the spec.
Why Executors Need This
- They have no view of your layout. "The config file" or "the usual repo"
resolves to nothing without the path. The executor will guess, and a plausible
wrong path is worse than an error.
- Access is not discoverable. Which token, which account, which login —
these are not visible from inside the task. The literal access command must be
in the spec.
- Conventions are invisible. Branch naming, commit identity, title formats,
and directory structure are tribal knowledge until written down.
- Gotchas are unteachable in hindsight. A required PR-title format or a check
that does not re-trigger on edit is cheap to state up front and costly to
discover after a failed run.
- Success is ambiguous without a definition. Without an explicit success
criterion and a way to verify it, the executor self-grades and reports done
too early.
Spec Checklist
Include every item the executor cannot infer on its own:
- Exact paths, not descriptions. Write the full path to each file or
directory to read, create, or change — never "the config" or "the right
folder".
- The literal access command. Paste the exact command that grants access
(the auth prefix, the credential lookup, the clone or fetch invocation), not
"authenticate first".
- Naming conventions, spelled out. The branch name, the directory name, any
required prefix or suffix — give the literal string or the exact rule.
- The commit and authorship identity. The name and email a commit must
carry, and any required trailer or co-author line, verbatim.
- Required formats and their gotchas. Title formats, message conventions,
and any rule that a downstream gate enforces — including ordering gotchas
(for example, a value that must be correct at creation time because editing
it does not re-trigger the check).
- The exact validation step. The literal command or check to run locally
before shipping, so the executor self-verifies against the same gate the
pipeline will apply.
- The success criterion. A concrete, checkable definition of done — what
artifact must exist and in what state — not "make it work".
- The workspace lifecycle. State the managed workspace and build-output
paths, owner, retention boundary, terminal cleanup action, and what must be
preserved if automatic cleanup is unsafe.
- What NOT to assume. Call out the boundaries: which files to leave
untouched, which scope not to widen, which adjacent work is out of bounds.
Before / After
Vague delegation, which forces guessing:
Add the new skill to the skills repo, make a branch, and open a PR. Make sure
CI passes.
Precise delegation, which can succeed first try:
Clone the public skills repo with <auth-prefix> <clone-command> /tmp/work.
Create only skills/example-skill/SKILL.md (do not edit any existing file).
Branch skill/example-skill. Commit as user.name=ci-bot,
user.email=ci-bot@example.invalid, body ending with the required co-author
trailer. Push with <auth-prefix> <push-command>. The PR title must be a
lowercase conventional commit — feat: add example-skill — and must be
correct at create time, because editing the title does not re-trigger the
title check. Validate locally first with <lint-command>. Done = PR open with
all required checks green and auto-merge enabled. Remove the clean disposable
workspace after the PR reaches its declared terminal state; otherwise record
its owner, dirty state, reason for retention, and expiry.
The second version removes every place the executor would otherwise invent a
value.
When To Use
- Dispatching a unit of work to a sub-agent, worker, or any process that does
not share your context.
- Writing a task brief that another party will execute without a chance to ask
follow-up questions.
- Any delegation where a wrong-but-plausible result would be merged or built on.
When Not To Use
- Work you will execute yourself with full context in hand.
- A throwaway exploration where a wrong guess costs nothing and nothing
downstream depends on the result.
Anti-Patterns
- Referring to "the config", "the repo", or "the usual place" instead of a path.
- Saying "authenticate" or "use the right credentials" without the literal
command.
- Leaving branch names, commit identity, or title formats to the executor's
judgment.
- Omitting a known gotcha because it "should be obvious".
- Ending with "make it work" instead of a checkable success criterion.
- Omitting disposal because the executor is expected to "clean up later".
Done Standard
The spec is complete when an executor with the relevant skills but zero
knowledge of your system could finish the task from it alone — every path,
command, name, identity, format, success criterion, and workspace disposition
is on the page, and nothing load-bearing is left to inference.
Pair this with [[dispatch-lane]] for routing the work to the right executor,
and with [[verify-delegated-work]] for checking the result once it comes back —
a precise spec reduces wrong work, but the returned artifact still gets
independently verified.
1---2name: low-level-executor-task-spec3description: Use when dispatching a task to an autonomous executor or sub-agent that does not share your context. Spell out exact paths, the literal access command, naming and identity conventions, and known gotchas — assume zero tribal knowledge.4---56# Low-Level Executor Task Spec78An autonomous executor starts with none of the context in your head. It cannot9see your repository layout, guess which credential opens which door, infer the10name of the required check, or know the identity a commit must carry. Whatever11you leave implicit, it must either invent or fail on — and a confident invention12is the more expensive outcome, because it looks like progress until you verify13it.1415A vague delegation produces vague or wrong work. A precise spec — exact file16paths, the literal command that grants access, the naming and identity17conventions, the gotchas with their required formats — produces correct work on18the first try. The discipline is to write the spec as if for someone who knows19the methodology but has never seen your system.2021## The Rule2223Specify every concrete value the executor cannot infer. Paths, commands,24names, identities, and required formats are inputs to the task, not background25knowledge. If a detail is needed to finish the work and the executor cannot26derive it from what you handed over, it belongs in the spec.2728## Why Executors Need This2930- **They have no view of your layout.** "The config file" or "the usual repo"31 resolves to nothing without the path. The executor will guess, and a plausible32 wrong path is worse than an error.33- **Access is not discoverable.** Which token, which account, which login —34 these are not visible from inside the task. The literal access command must be35 in the spec.36- **Conventions are invisible.** Branch naming, commit identity, title formats,37 and directory structure are tribal knowledge until written down.38- **Gotchas are unteachable in hindsight.** A required PR-title format or a check39 that does not re-trigger on edit is cheap to state up front and costly to40 discover after a failed run.41- **Success is ambiguous without a definition.** Without an explicit success42 criterion and a way to verify it, the executor self-grades and reports done43 too early.4445## Spec Checklist4647Include every item the executor cannot infer on its own:4849- **Exact paths, not descriptions.** Write the full path to each file or50 directory to read, create, or change — never "the config" or "the right51 folder".52- **The literal access command.** Paste the exact command that grants access53 (the auth prefix, the credential lookup, the clone or fetch invocation), not54 "authenticate first".55- **Naming conventions, spelled out.** The branch name, the directory name, any56 required prefix or suffix — give the literal string or the exact rule.57- **The commit and authorship identity.** The name and email a commit must58 carry, and any required trailer or co-author line, verbatim.59- **Required formats and their gotchas.** Title formats, message conventions,60 and any rule that a downstream gate enforces — including ordering gotchas61 (for example, a value that must be correct at creation time because editing62 it does not re-trigger the check).63- **The exact validation step.** The literal command or check to run locally64 before shipping, so the executor self-verifies against the same gate the65 pipeline will apply.66- **The success criterion.** A concrete, checkable definition of done — what67 artifact must exist and in what state — not "make it work".68- **The workspace lifecycle.** State the managed workspace and build-output69 paths, owner, retention boundary, terminal cleanup action, and what must be70 preserved if automatic cleanup is unsafe.71- **What NOT to assume.** Call out the boundaries: which files to leave72 untouched, which scope not to widen, which adjacent work is out of bounds.7374## Before / After7576Vague delegation, which forces guessing:7778> Add the new skill to the skills repo, make a branch, and open a PR. Make sure79> CI passes.8081Precise delegation, which can succeed first try:8283> Clone the public skills repo with `<auth-prefix> <clone-command> /tmp/work`.84> Create only `skills/example-skill/SKILL.md` (do not edit any existing file).85> Branch `skill/example-skill`. Commit as `user.name=ci-bot`,86> `user.email=ci-bot@example.invalid`, body ending with the required co-author87> trailer. Push with `<auth-prefix> <push-command>`. The PR title must be a88> lowercase conventional commit — `feat: add example-skill` — and must be89> correct at create time, because editing the title does not re-trigger the90> title check. Validate locally first with `<lint-command>`. Done = PR open with91> all required checks green and auto-merge enabled. Remove the clean disposable92> workspace after the PR reaches its declared terminal state; otherwise record93> its owner, dirty state, reason for retention, and expiry.9495The second version removes every place the executor would otherwise invent a96value.9798## When To Use99100- Dispatching a unit of work to a sub-agent, worker, or any process that does101 not share your context.102- Writing a task brief that another party will execute without a chance to ask103 follow-up questions.104- Any delegation where a wrong-but-plausible result would be merged or built on.105106## When Not To Use107108- Work you will execute yourself with full context in hand.109- A throwaway exploration where a wrong guess costs nothing and nothing110 downstream depends on the result.111112## Anti-Patterns113114- Referring to "the config", "the repo", or "the usual place" instead of a path.115- Saying "authenticate" or "use the right credentials" without the literal116 command.117- Leaving branch names, commit identity, or title formats to the executor's118 judgment.119- Omitting a known gotcha because it "should be obvious".120- Ending with "make it work" instead of a checkable success criterion.121- Omitting disposal because the executor is expected to "clean up later".122123## Done Standard124125The spec is complete when an executor with the relevant skills but zero126knowledge of your system could finish the task from it alone — every path,127command, name, identity, format, success criterion, and workspace disposition128is on the page, and nothing load-bearing is left to inference.129130Pair this with [[dispatch-lane]] for routing the work to the right executor,131and with [[verify-delegated-work]] for checking the result once it comes back —132a precise spec reduces wrong work, but the returned artifact still gets133independently verified.