factory-mission
SkillDev toolsLets your agent run a full coding mission from a spec, writing tests and code step by step with automatic checks.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the factory-mission skill
About this skill
Use when executing a spec-gated mission from the queue, inner loop specify → plan → implement ↔ converge with tracker integration, worktree isolation, and a circuit breaker.
What this skill tells your AI
The instructions your AI receives, as published by tikalk/adlc-team-skills in skills/factory/factory-mission/SKILL.md and read by ahel’s review.
What this skill does
factory-mission is the execution-harness orchestrator of the software factory. It takes a feature description, structures it into a Mission Brief (goal, constraints, non-goals, success criteria), generates an ordered step list, and executes those steps via sequential subagent runs.
It implements the following key factory platform capabilities:
- Universal Skill Routing: Decoupled step dispatching. It scans installed skills and hands the inventory to subagents (the model picks which tool fits the step).
- Tracker-Agnostic Integration (
references/tracker-integration.md): When invoked with--issue <ref>, it pulls ticket context, respects automation/dispatch labels (autonomous/supervised), and writes back status comments + iteration logs. - Inter-Agent Comment Bus (
references/tracker-integration.md§Inter-Agent Comment Bus): When tracker-integrated, each step's terminal output (decisions, findings, artifact references — never drafts) is published as a structured comment on the PR/MR/issue. The next step reads previous markers before starting. This is the durable inter-agent memory that survives session boundaries, runtime switches, and pod crashes. Drafts stay on local disk. - Self-Contained Worker Brief: The Mission Brief is persisted to
.adlc/workflow/brief.mdas a draft. Resumed runs and cross-runtime workers read it from disk — no session-context dependency. - Worktree Isolation: Each run gets its own git worktree. Never touches the user's main checkout. Cleaned up on exit (retained if unsaved work).
- Lease-Based Liveness: The state file carries a renewable lease with heartbeat + TTL. Resume can distinguish live, stale, and completed runs.
- Stall Detection: After dispatching a subagent, observable progress is checked at a configurable window (default 20 min). A hung agent that passes the circuit breaker is detected and killed.
- Lane-Based Dispatch (
references/lanes.md): Steps can run on different lanes —inline(this session),agent(fresh session of same CLI for maker/checker separation), orcli:<runtime>(optional cross-vendor). Theagentlane is the default for unattended stages. - Scratchpad Tools: Subagents share named, run-private scratchpads (
.adlc/workflow/scratchpads/<name>.txt) to compile notes, drafts, and reviews incrementally before publishing. - Workflow Memory & Self-Improvement: Persistent JSONL database (
.adlc/workflow/memory.jsonl) stores learnings across runs.factory-learnperiodically runs retrospectives to prune/weight memories. - Hierarchical Context Parameters: Workflows and agents reference parameters as
{{params.<key>}}, resolved from most specific to least specific:agent < workflow < repository < project < default. - Decoupled Test/Code Separation: In
autonomousorsupervisedmodes, it splitsimplementinto sequentialtest(Test Agent writes failing tests under read-onlysrc/) andcode(Implement Agent writes code under read-onlytests/) runs — each closed by a mandatory mechanical gate (see Phase 5): the RED gate proves the new suite fails before coding starts; the GREEN gate proves it passes before converge is reached.
When to use
- "Build this feature end to end" inside a factory-enabled team.
- You want an execution loop with a circuit breaker, score-regression checking, and a robust resume mechanism (
factory-mission --resume). - You want to run autonomously against a ticket queue.
When NOT to use:
- For non-factory standalone projects (use generic
mission-briefinstead). - Trivial 1-line changes (do them directly).
Process
factory-mission executes in alignment with the shared executor contract (references/executor.md) and the tracker-agnostic layer (references/tracker-integration.md).
Phase 0 to 4: Setup & Compilation
- Read
.adlc/workflow/workflow-config.yml. Resolve execution and supervision. - If
--issue <ref>is specified:- Discover credentials and MCP/CLI tools (
references/tracker-integration.md). - Pull the issue content as the primary Brief description.
- Read the labels. If dispatch is
interactiveor gating ishuman-required-> HALT execution (hand back to interactive session). - The comment bus is active for this run — step outputs will be published as marker comments on the PR/MR/issue.
- Discover credentials and MCP/CLI tools (
- If no issue: read spec description from arguments. The comment bus is inactive — steps communicate through local files only.
- Structure the Mission Brief (Goal, Constraints, Non-Goals, Success Criteria). The Brief is a
draft— not published to the comment bus. - Resolve hierarchical Context Parameters from
agent < workflow < repository < project < defaultand embed the frozen value map in the brief. - Generate the step list based on route classification (
spec,change,quick). Each step declaresoutput_type(draft/decision/findings/artifact-ref) andreads_from(markers or local paths) per the executor contract.
Phase 5: Executing the Converge Loop
Execute steps sequentially. When reaching implement / converge:
Decoupled Test/Code Execution (mandated TDD)
In autonomous and supervised modes, the implement step is split into two sequential subagent dispatches, each closed by a mechanical verification run:
- The Test Agent (
teststep):- Instruction: Write a failing test suite based on
spec.mdintests/. - Enforcement: Mount
src/as hard read-only; onlytests/is writeable. - RED gate (mandatory): the executor runs the suite and asserts at least one test FAILS. A suite that passes immediately means the feature already exists or the tests assert nothing — route to
SPEC_CORRECTION_NEEDEDwith the run output; never proceed to thecodestep. Record the failing count in the run log.
- Instruction: Write a failing test suite based on
- The Implement Agent (
codestep):- Instruction: Write minimum implementation code in
src/to pass the tests. - Enforcement: Mount
tests/,spec.md, andplan.mdas hard read-only; onlysrc/is writeable. - GREEN gate (mandatory): the executor runs the suite again;
convergeis never reached with a red suite. Any failure loops straight back to thecodestep with the failure list attached (this loop-back does not consume the converge circuit breaker; only broken iterations do — use thecode-step retry cap fromworkflow-config.yml).
- Instruction: Write minimum implementation code in
Skipping the split is allowed only when the run declares no test surface: tdd: false in workflow-config.yml, a docs/config-only step, or interactive mode (the attended pair runs its own discipline — e.g. superpowers' test-driven-development). A code-bearing step in autonomous/supervised mode never skips it.
Converge Loop (Implement ↔ Converge)
- Execute implement step (or
test+codesteps — RED→GREEN gates enforced first). - Execute
convergestep (independent judge mode; checks against Brief and Non-Goals). - If
convergereturns:DONE(and quality is abovequality_threshold): Loop exits.CONTINUE: Incrementconsecutive_tasks_appended. Check circuit breaker (default 3) and score-regression counter. Repeat.SPEC_CORRECTION_NEEDED: Stop and route to Phase 6.
Phase 6: Completion & Write-Back
- If tracker-integrated: read all marker comments from the PR/MR/issue to compile the audit trail (converge decisions, test findings, implement artifact references, convergence history).
- Archive state to
.adlc/workflow/runs/<slug>/mission-log.json. - Write per-implement logs to
iterations.md. - If tracker-integrated:
- Post completion summary as a ticket comment (marker:
factory-mission:status=completed:run=<run_id>). - Transition lifecycle label from
executingtovalidation(ordoneif merged). - Stamp
agent-authoredon opened PRs. - Defer PR merge to code-owner approval (never auto-merge without approval).
- Post completion summary as a ticket comment (marker:
- Output the complete audit summary.
Signals
- GitHub stars
- 137
- Forks
- 1
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Key
factory-mission- Source
- github.com/tikalk/adlc-team-skills