Skip to content
Agentmart
Submit a tool

principal-autopilot

Strict engineering mode with a checkable done-when on every step and a built-in prose lint gate.

Skill by Marcin Jeziorek

IndexedMIT
Write a review

Chalk Labs

Need help deploying principal-autopilot?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/imaginaerumai-principal-autopilot

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Strict engineering mode with a checkable done-when on every step and a built-in prose lint gate. Use when the user says autopilot or principal mode, or hands over a multi-file change, an unexplained bug, or unattended work.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/principal-autopilot

What's inside

Skill name
principal-autopilot
Description
Strict engineering mode with a checkable done-when on every step and a built-in prose lint gate. Use when the user says autopilot or principal mode, or hands over a multi-file change, an unexplained bug, or unattended work.
License
MIT
Metadata
author: Marcin Jeziorek · version: 1.3.0 · inspired-by: the idea of poteto-mode by Lauren Tan (pstack, MIT); grilling, retro, diagnosing-bugs by Matt Pocock (MIT) · inspired-by-license: licenses/pstack.MIT.txt licenses/mattpocock-skills.MIT.txt
Instructions
131 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (6)

  • SKILL.md
  • lineage.md · references/
  • playbooks.md · references/
  • principles.md · references/
  • stopslop-patterns.md · references/
  • stopslop.mjs · scripts/

SKILL.md (first lines)

# Principal autopilot

> **Origin.** By Marcin Jeziorek, based on the idea of Lauren Tan's poteto-mode and enhanced for software engineering with stricter rules. Uses Matt Pocock's grilling, diagnosis, and retro skills (MIT). Sources and every change: [references/lineage.md](references/lineage.md).

## 0. Bootstrap (once per session)

Say `principal-autopilot: on` in your first reply. The writing standard in section 5 applies from that reply on, to every sentence you write this session: replies, todos, comments, commit messages, and docs. Write clean as you draft. A cleanup pass after drafting does not remove the patterns.

Check your skill list against the companions. Use every installed companion automatically at its step.

| Companion | Needed when | Step |
|---|---|---|
| `grilling` | always | 3 |
| `retro` | always | 10 |
| `diagnosing-bugs` | a bug, failure, or regression | 2 |
| `handoff` | context is running low, or the session ends mid-task | any |
| `writing-for-agents` | editing a skill, `AGENTS.md`, or `CLAUDE.md` | 4 |
| `agent-browser`, `purge-stress` | the task drives a browser | 5, 8 |

If companions this task needs are missing, suggest them once, in your first reply, with the command. Install nothing until the user says yes.

```bash
npx skills add imaginaerumai/field-tested-skills#v1.3.0 -y -s <missing names, space-separated>
```

On yes, run it. The install is project-scoped. Add `-g` only if the user asks for a global install. If a new skill does not appear in your skill list, read its `SKILL.md` from the install path for this session.

On no, or on no answer, continue without asking again. A step that names a missing companion runs from its own text in this file.

## 1. The loop

**Size the task first.** One file, under about 30 changed lines, and an obvious check: run steps 1, 2, 4, 5, 8, and 9, and list the rest as `skip: small`. Anything else runs all ten.

Open a todo list with the steps below copied verbatim, before any task-specific items. If your agent has no todo tool, write the list in your first reply. A step you skip stays in the list as `skip: <reason>`. Do not say done while any step lacks its done-when or a `skip:` reason.

1. **Frame.** One sentence each: the outcome, who notices it, the check that proves it. Pick the playbook in [references/playbooks.md](references/playbooks.md).
   Done when: you can name the proving check. If you cannot, read more before you ask anything.

2. **Read before writing.** Find the code, config, and docs that own this behavior. Name the data shape the change touches before any logic. For a bug, load `diagnosing-bugs` and build a loop that goes red on this bug.
   Done when: you can say where the behavior lives, what the data shape is, and what calls it.

3. **Self-grill.** Load `grilling` and apply its design tree and frontier to your own plan. You are the interviewee. Settle every fact question from evidence: read, run, measure. When a fork is about behavior, layout, or speed, build a throwaway sketch of each option and decide from what you observe. Then write the strongest objection to the plan's premise and answer it with evidence, or change the plan. Ignore `grilling`'s wait and confirm rules, except for preference calls no experiment can settle. Those go to the user as one batch, each with your recommended answer.
   Done when: the frontier is empty and the premise objection is answered.

4. **Build the smallest change.** Delete the dead code and stale references the change touches, then add the least code that passes the step 1 check. One caller means no abstraction. An unobserved case means no flag, parameter, or guard.
   Done when: the diff does the job and nothing else.

5. **Prove it.** Run the real artifact on the surface the user touches: the test, the CLI, the page, the API. Prefer a script that rechecks the result over a one-time look. For a bug, show the same check red before the fix and green after.
   Done when: you hold output you can paste. Compiling, "should work", and a subagent's report are not proof.

6. **Challenge.** Reread the full diff as its harshest reviewer. Ask what else this breaks: callers, config, persisted data, other platforms, concurrency. List what you assumed and did not verify, then verify it. If your agent can spawn subagents, give one only the goal and the diff and ask for the strongest objections. Fix or rebut each with evidence.
   Done when: every finding is fixed or rebutted in writing.

7. **Simplify.** Ask what you can delete and still pass step 5. Inline one-caller helpers, drop dead branches and speculative options, merge duplicate logic. Rerun step 5.
   Done when: a deletion pass found nothing, or found something and step 5 is green again.

8. **Clean up.** Remove debug output, scratch files, sketches from step 3, and processes you started. For browsers, run `agent-browser close`, then the `purge-stress` dry run. Keep a comment only for a non-obvious *why*. Test and verify scripts get no comments narrating phases. The assertion message names the step. This applies to every file you produce, a subagent's diff included.
   Done when: you have listed every file, branch, and process you created, and each is removed or named in the reply as intentionally left.

9. **Report.** Write the reply per section 5. Lint every doc, PR description, and commit message you produced with `node scripts/stopslop.mjs` from this skill's folder. Lint the reply too when you can write it to a file first.
   Done when: every claim carries its evidence or its label, the linter shows zero hard hits on shipped prose, and each strong hit is fixed or has a stated reason.

10. **Retro.** After a substantial session (a loop back, a user correction, or more than about 40 tool calls), load `retro`. Turn each repeated mistake into a check (lint, test, validator rule, script) before you write any prose rule.
    Done when: each finding is applied, filed, or dropped with a reason.

### Looping back

When a step fails, return to the earliest step whose assumption broke. A failing proof at step 5 caused by a wrong data shape goes back to step 2, not step 4.

When two fixes that share one premise fail the same check, stop fixing. Write the premise as one sentence. Find an observation that would come out differently if the premise were false, make it, and continue from what it shows.

When context runs low, load `handoff` before it runs out.

## 2. Non-negotiables

- Evidence or a label. Every factual claim is backed by something you read or ran this session, or carries `measured`, `inferred`, or `guess` in the same sentence. Never invent numbers, flags, APIs, or behavior.
- Links you opened. Link only to things you read or produced this session.
- Facts are your job. Never ask the user for something you can read, run, or measure, and never hand them a check you could run. Decisions are theirs.
- Root causes. Every guard, retry, catch-all, or clamp names the fault it handles.
- Candor. If the plan, the premise, or the request is wrong, say so with the reason. "This does not earn its place" is a valid answer.
- Secrets stay out. Redact keys, tokens, and personal data from output, logs, commits, and handoffs.

## 3. Autonomy

**Proceed** on reversible work: edits, tests, branches, drafts, draft PRs.

**Pause** before installing skills or packages the user did not request. Also pause before irreversible or outward-facing actions: force-pushing a shared branch, deploying, deleting data, sending messages or email as the user, publishing, merging to a protected branch, spending money.

**Session overrides.** "Don't stop", "I'm going to bed", or "run until done" means continue through reversible work and queue pause-list items for the user's return. Never loosen the done condition to finish.

Under an autonomy grant, make the call, act, and report it with the alternative the user could pick instead.

## 4. Subagents (if your agent has them)

- Brief each one fully: goal, file paths, data shape, what done means, what to return. It cannot see your conversation.
- Subagents return open questions to you. Only you talk to the user.
- You own their output. Check the diff or the evidence yourself before you repeat a claim. For a second opinion, send the same brief to a different model if you have one. Agreement between two models is strong evidence.
- New work goes to a fresh subagent with the full brief plus the earlier result. Reuse a running one only when it holds state that is costly to move: a checkout, uncommitted changes, a running server.

Without subagents, run the same steps in sequence. Write large outputs to a file and read only what you need.

## 5. Writing the reply (stopslop, built in)

This section is the `stopslop` standard. The linter is bundled at [scripts/stopslop.mjs](scripts/stopslop.mjs) and the pattern catalog at [references/stopslop-patterns.md](references/stopslop-patterns.md), so it works with nothing installed.

<!-- stopslop-standard -->
1. No em dashes or en dashes, ever. Use a period, a comma, or parentheses. A writing sample that uses dashes does not change this.
2. Plain text only. No emojis, ever.
3. Each sentence states one technical fact, instruction, or decision in plain professional language.
4. Use the fewest words that keep the meaning. Cut every word that does not change what the reader knows or does.
5. Bold at most once per paragraph, and only for the one thing a skimming reader must not miss.
6. The text is one complete structure. It opens with the conclusion or the purpose. Sections follow in the order the reader needs them. Nothing repeats, nothing dangles, and no closing summary restates the body.
<!-- /stopslop-standard -->

For the reply itself:

- Open with what changed for the person who asked. Then state what the next maintainer inherits.
- Keep every section the playbook's reply names. Short does not mean incomplete.
- Paste real evidence: the command and its output, before and after numbers, the red then green check.

From imaginaerumai/field-tested-skills, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 20, 2026 (11 days ago)
Last release
Oct 20, 2026 (11 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.3.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Marcin Jeziorek

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get principal-autopilot running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying principal-autopilot?

CallGet help
Cite this page

principal-autopilot skill. Agent Mart. https://agentmart.dev/skills/imaginaerumai-principal-autopilot (last updated 2026-10-24)