一键导入
autopilot
Autonomous spec execution with subagents (planner, coder, tester, reviewer).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Autonomous spec execution with subagents (planner, coder, tester, reviewer).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Upgrade DLD framework files from latest template on GitHub.
Autonomous spec execution with subagents (planner, coder, tester, reviewer).
Feature specification and research agent. Multi-agent with 4 scouts. Creates specs in ai/features/.
Feature specification and research agent. Multi-agent with 4 scouts. Creates specs in ai/features/.
Manual QA tester — tests product behavior like a real user, not code. Triggers on keywords: test, QA, check behavior, verify feature, manual testing, протестируй, потыкай, проверь как работает
Systematic code analysis (READ-ONLY). Light mode for focused checks, Deep mode for full forensics with 6 parallel personas.
| name | autopilot |
| description | Autonomous spec execution with subagents (planner, coder, tester, reviewer). |
| model | opus |
Autonomous execution: Plan → Fresh subagent per task → commit → next.
Activation:
autopilot — process all queued specs (interactive)autopilot SPEC_ID — process single spec only (loop mode)autopilot --no-worktree — skip worktree (for tiny fixes only)When called with autopilot TECH-069 (specific SPEC_ID):
This enables autopilot-loop.sh to run overnight with fresh context per spec.
Detection: If first argument matches pattern (TECH|FTR|BUG|ARCH)-\d+, enter loop mode.
PHASE 0: Worktree Setup → worktree-setup.md
└─ CI check → worktree → env copy → baseline
PHASE 1: Plan (ALWAYS) → subagent-dispatch.md
└─ [Plan Agent] opus → re-reads codebase → tasks in spec
PHASE 2: Execute (per task) → task-loop.md
└─ [Coder] sonnet → files
└─ [Tester] sonnet → pass?
└─ fail? → [Debugger] opus (max 3) → escalation.md
└─ PRE-CHECK (deterministic)
└─ [Spec Reviewer] sonnet → approved?
└─ [Code Quality] opus → approved?
└─ COMMIT (no push)
└─ LOCAL VERIFY (if AV section) → warn only
PHASE 3: Finish → finishing.md
└─ Final test → Exa verification → status done → push feature → POST-DEPLOY VERIFY → merge develop → push develop → cleanup
Limits & Escalation: See escalation.md
Safety Rules: See safety-rules.md
| Module | Content |
|---|---|
worktree-setup.md | Git worktree creation, env setup, cleanup |
subagent-dispatch.md | Subagent types, dispatch templates, model routing |
task-loop.md | PHASE 2 execution flow, decision trees after each step |
finishing.md | Pre-done checklist, status sync, merge flow |
escalation.md | Limits, debug/refactor loops, Spark/Council |
safety-rules.md | Forbidden actions, file/test/git safety |
PHASE 0: WORKTREE SETUP
See: worktree-setup.md
PHASE 1: PLAN (ALWAYS — even if spec has plan)
[Plan Subagent] → re-reads codebase → writes/overwrites plan
WHY: specs queued earlier have stale line numbers after prior specs execute
See: subagent-dispatch.md#plan-subagent
PHASE 2: FOR EACH TASK (fresh subagent per task!)
[CODER] → code → files_changed
[TESTER] → Smart Testing
PRE-CHECK → deterministic validation
[SPEC REVIEWER] → Stage 1
[CODE QUALITY] → Stage 2
COMMIT (NO PUSH yet!)
See: task-loop.md (SSOT for execution flow)
PHASE 3: FINISHING
Push feature branch → merge develop → push develop
See: finishing.md
Plan defines WHAT:
Autopilot defines HOW:
For EACH task from plan:
┌─────────────────────────────────────────────────────┐
│ 1. CODER → files_changed │
│ 2. TESTER → Smart Testing │
│ 3. PRE-CHECK → deterministic validation │
│ 4. SPEC REVIEWER (Stage 1) → matches spec? │
│ 5. CODE QUALITY (Stage 2) → architecture ok? │
│ 6. COMMIT (NO PUSH yet!) │
│ 7. LOCAL VERIFY → smoke + functional (warn only) │
└─────────────────────────────────────────────────────┘
SSOT: See task-loop.md for detailed decision trees after each step.
⛔ Skipping any step = VIOLATION
Every PHASE 2 task commit MUST use Conventional Commits with the spec_id in scope:
<type>(SPEC_ID): <imperative description>
type ∈ {feat, fix, chore, docs, refactor, test}; SPEC_ID UPPERCASE inside (), NOT in trailing text.
✅ feat(FTR-1076): add WB API key schemas ✅ fix(BUG-439): restore constraint
❌ feat(billing): ... (FTR-1076 Task 3) ❌ fix(db): ... (BUG-439)
Why: callback gate parses ONLY the scope. Non-compliant subjects cause false demote and burn compute on re-dispatch.
PHASE 3 merge commits: Merge feature/SPEC_ID: … (or autopilot/, fix/) is accepted by gate.
Full rules: .claude/agents/coder.md § Commit Format.
while (queued/resumed tasks in ai/backlog.md):
1. Read backlog → find first queued/resumed (P0 first)
2. (Status written by callback only — do NOT edit spec/backlog Status field)
3. PHASE 0: Worktree Setup
See: worktree-setup.md
4. PHASE 1: Plan (ALWAYS runs)
ALWAYS dispatch Plan Subagent — even if spec has plan
Planner re-reads codebase, validates/regenerates plan
WHY: prior specs changed code → old plans have stale refs
After PHASE 1: plan MUST exist → else blocked
5. PHASE 2: Execute (see task-loop.md for SSOT)
FOR EACH TASK:
a. CODER → files_changed
b. TESTER → pass? (debug loop if fail)
c. PRE-CHECK → deterministic validation
d. SPEC REVIEWER → matches spec?
e. CODE QUALITY → architecture ok?
f. COMMIT (no push)
6. PHASE 3: Finishing
See: finishing.md
7. Continue to next spec
1. Validate SPEC_ID exists in backlog
2. Verify status is queued or resumed (not in_progress!)
3. (Status written by callback only — do NOT edit spec/backlog Status field)
4. PHASE 0-3: Same as interactive (including push in Phase 3!)
5. EXIT (do NOT continue to next spec)
└─ External orchestrator provides fresh context
Why loop mode? Prevents context accumulation. Each spec = fresh Claude session.
Before taking a spec from backlog:
Status: Must be queued or resumed → skip otherwise
Already-implemented detection (BUG-188): Before invoking the Plan Agent,
check whether the spec's ## Allowed Files already have implementation commits.
Algorithm (LLM-driven, run in current session via Bash tool):
a. Read ## Allowed Files from the spec body. Extract every backticked
path under a <!-- callback-allowlist v1 --> marker (canonical) or any
backticked path inside the section (legacy fallback). Mirrors
callback._parse_allowed_files.
b. Get spec file creation time:
SPEC_CREATED=$(git log --reverse --format=%ai -- "ai/features/${SPEC_ID}"*.md | head -1)
c. Check whether any commit since SPEC_CREATED (on any branch) both:
${SPEC_ID} in its subject line (first line) — canonical form,
e.g. feat(BUG-188): ... or BUG-188 ...git log --all --since="$SPEC_CREATED" --pretty="%h %s" -- $ALLOWED_FILES \
| grep -E "^[a-f0-9]+ (feat|fix|chore|docs|refactor|test)?\(?${SPEC_ID}\)?[: ]" \
| head -5
d. If 1+ qualifying commits found → early-exit immediately:
{
"task_status": "complete",
"result_preview": "BUG-188 early-exit: spec already implemented in commits {short_hashes}. No re-execution needed."
}
Why: This mirrors callback._spec_has_merged_implementation (TECH-176)
on the front side so autopilot does not burn 30+ turns re-doing work that
callback would auto-close anyway. Saves ~$5/run × every false-fail retry.
False-skip protection: the subject-line regex requires canonical
<type>(SPEC-ID): or SPEC-ID prefix. Bare mentions in commit body /
cross-references in Refs:/See also: lines do NOT count (TECH-177 lesson).
After PHASE 1 (planner always runs):
## Implementation Planblocked, skip specSkip if status check fails, with warning to user:
SKIP: {TASK_ID}
Status: {current_status} (expected: queued or resumed)
Fix the issue and re-run autopilot.
⛔ Skipping planner = VIOLATION. Planner runs before EVERY spec, no exceptions.
## Problem/Solution ← context
## Scope ← what to do
## Allowed Files ← ONLY these can be modified!
## Implementation Plan ← YOUR TASKS!
### Task 1 ← execute in order
## Definition of Done ← check AFTER all tasks!
Flow: draft → queued → in_progress → done
Recovery: in_progress → blocked → resumed → in_progress
Context accumulates. AUTO-COMPACT after each spec (legacy).
Each spec = fresh Claude session via external orchestrator.
autopilot-loop.sh:
└─ claude "autopilot TECH-065" → fresh context
└─ claude "autopilot TECH-066" → fresh context
└─ claude "autopilot TECH-067" → fresh context
└─ ...
Memory persists via files:
ai/backlog.md — task statusai/diary/autopilot-progress.md — learningsSee: ./scripts/autopilot-loop.sh
.claude/agents/*.md/skill-creator create skill.claude/agents/tester.mdYour final JSON result_preview is sent to the user via Telegram. Keep it concise and actionable:
Что сделано: {1-2 sentence summary of actual changes}
Файлы: {N} изменено
Spec: {SPEC_ID} → done
BAD: "Все функциональные чекбоксы в Definition of Done отмечены как выполненные..." GOOD: "Добавлены кнопки отменить/пауза для кампаний. Файлы: 3 изменено. FTR-0063 → done
The final JSON output MUST include task_status:
{
"task_status": "complete" | "blocked" | "needs_review",
"result_preview": "..."
}
Status field is written by callback only (TECH-172). Autopilot emits task_status in final JSON; never Edits **Status:** in spec or backlog."