agentleFS
SethGammonSethGammon/Citadel/skills/autopilot/SKILL.md

autopilot

Skill927 starsChanged 16 days agoMITView on GitHub

Intake-to-delivery pipeline. Processes pending items from .planning/intake/: briefs new ideas, executes approved work through research → plan → build → verify. Drop a file in .planning/intake/ and invoke this skill.

We split this skill into the rules it gives an agent

19 rules. 0 are common, 15 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 56 edited versions we read keep these.

  • 15

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do NOT use Autopilot for:

    line 26
  2. Distinctive:

    When the user names a specific intake file or asks for "intake to PR", prefer the deterministic delivery preflight before freeform build …

    line 35
  3. Distinctive:

    If no specific intake file is named, use:

    line 42
  4. Distinctive:

    After build and verification, package the delivery before marking the campaign complete:

    line 55
  5. Distinctive:

    If a PR exists, record the PR as the review target:

    line 62
  6. Very specific:

    Read all files in .planning/intake/ and identify:

    line 70
  7. Distinctive:

    Read the intake file

    line 80
  8. Distinctive:

    Read related files mentioned in the description

    line 81
  9. Very specific:

    Update the item's status to briefed

    line 89
  10. Distinctive:

    Create or modify the listed files

    line 97
  11. Distinctive:

    Follow the project's conventions (CLAUDE.md)

    line 98
  12. Distinctive:

    Run typecheck after each change

    line 99
  13. Distinctive:

    All quality gates pass

    line 101
  14. Very specific:

    Update status to completed

    line 104
  15. Distinctive:

    Intake item has no clear action: If the description is too vague to execute, ask the user one clarifying question or skip the item with a …

    line 133
  16. Very specific:

    Item status is unrecognized: Treat unknown statuses as pending and proceed through the brief → build flow.

    line 134
  17. Distinctive:

    Never build without reading the project guidance (AGENTS.md, then CLAUDE.md) first

    line 148
  18. Distinctive:

    Run typecheck after every file change

    line 149
  19. Distinctive:

    If an item is blocked, record the reason and move on

    line 151

“Common” is measured: kept by at least 6 in 10 of the 56 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/autopilot — Intake Pipeline

Orientation

Use Autopilot when:

  • There are pending items in .planning/intake/
  • You want to process intake items without manual orchestration
  • The work is scoped and well-defined (Small or Medium complexity)

Do NOT use Autopilot for:

  • Large, multi-session campaigns (use Archon)
  • Parallel execution (use Fleet)
  • Exploratory or open-ended work (use Marshal)

Protocol

Step 0: DELIVERY PREFLIGHT

When the user names a specific intake file or asks for "intake to PR", prefer the deterministic delivery preflight before freeform build work:

node scripts/deliver.js --intake .planning/intake/{item}.md

If no specific intake file is named, use:

node scripts/deliver.js --next

This selects the highest-priority pending item in .planning/intake/ and keeps the golden path deterministic.

This creates an active campaign with claimed scope, acceptance criteria, map context, and exit evidence rows, then marks the intake item in-progress. Continue from the created campaign with /do continue.

After build and verification, package the delivery before marking the campaign complete:

node scripts/package-delivery.js {campaign-slug}

If a PR exists, record the PR as the review target:

node scripts/package-delivery.js {campaign-slug} --pr https://github.com/{owner}/{repo}/pull/{number}

Step 1: SCAN

Read all files in .planning/intake/ and identify:

  • status: pending → needs briefing
  • status: briefed → ready to build
  • status: approved → ready to build
  • status: in-progress → check if stuck

Step 2: BRIEF (for pending items)

For each pending item:

  1. Read the intake file
  2. Read related files mentioned in the description
  3. Research the scope: what files exist, what patterns are established
  4. Write the brief:
    • Scope: Small / Medium / Large
    • Approach: How to implement (2-3 sentences)
    • Files: Which files to create or modify
    • Quality gates: What must be true when done
    • Risks: What could go wrong
  5. Update the item's status to briefed

Step 3: BUILD (for briefed/approved items)

For each briefed item (smallest first):

  1. Read the brief
  2. Execute the approach:
    • Create or modify the listed files
    • Follow the project's conventions (CLAUDE.md)
    • Run typecheck after each change
  3. Verify:
    • All quality gates pass
    • Typecheck clean
    • Tests pass (if applicable)
  4. Update status to completed

Step 4: REPORT

Output a summary of what was processed:

Autopilot processed {N} items:
  ✓ {item-1}: briefed → built → verified
  ✓ {item-2}: briefed
  ✗ {item-3}: blocked — {reason}

Intake Item Format

---
title: "Feature Name"
status: pending | briefed | approved | in-progress | completed
priority: normal | high
target: src/path/to/affected/area/
---

Description of what needs to be done...

Fringe Cases

  • .planning/intake/ is empty or does not exist: Output "Nothing to process — .planning/intake/ is empty. Drop a file there or run /do setup to initialize." Do not error.
  • Intake item has no clear action: If the description is too vague to execute, ask the user one clarifying question or skip the item with a note: "Skipped — direction unclear. Update the intake file and re-run."
  • Item status is unrecognized: Treat unknown statuses as pending and proceed through the brief → build flow.
  • Typecheck fails during build: Record the failure in the item's status, move on to the next item, and report the blocker in the exit summary.
  • .planning/ does not exist: Output a setup hint and exit cleanly. Autopilot requires .planning/intake/ to operate — if the directory is absent, treat as empty intake and suggest running /do setup.

Contextual Gates

Disclosure: "Processing intake queue: N items pending. Will dispatch skills per item." Reversibility: amber — processes intake items by dispatching other skills that may modify files; undo depends on dispatched skills Trust gates:

  • Any: review intake and briefing.
  • Familiar (5+ sessions): autopilot runs autonomously on queued items; novices should review intake before running.

Quality Gates

  • Never build without reading the project guidance (AGENTS.md, then CLAUDE.md) first
  • Run typecheck after every file change
  • Mark items as completed only when verification passes
  • If an item is blocked, record the reason and move on

Exit Protocol

---HANDOFF---
- Processed {N} intake items
- Built: {list of completed items}
- Blocked: {list with reasons}
- Remaining: {count of items still pending}
---

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

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.