orbit
Skill20 starsChanged 2 months agoApache-2.0View on GitHub
State-persisted autonomous pipeline: spec → go → audit → eval → ship → evolve in one command. Auto-detects direct/council/interactive mode. Crash-recoverable via PIPELINE-*.json. Hands-off until PR.
- Commits and pushes
5 other projects use a version of this.
Adopted by
Most recently taken up by
- simota/agent-skillstheir own version, first seen Oct 23, 2026
- me2resh/apexyardtheir own version, first seen Oct 8, 2026
- orbcli/orbittheir own version, first seen Aug 23, 2026
- Abdulaziz-almoshen/orbittheir own version, first seen Jul 3, 2026
- mbwsims/claude-universetheir own version, first seen Apr 14, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- me2resh/apexyard★ 542same name
- simota/agent-skills★ 96same name
- mbwsims/claude-universe★ 71same name
- orbcli/orbit★ 9same name
- Abdulaziz-almoshen/orbit★ 4same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- benchmarkSkill
- agent-introspectionSkill
- auditSkill
- commitSkill
- contextSkill
- councilSkill
- _criticSkill
- debugSkill
- discoverSkill
- _dispatchSkill
- documentSkill
- evalSkill
- evolveSkill
- goSkill
- orchestrateSkill
- perfSkill
- reflectSkill
- secureSkill
- shipSkill
- simplifySkill
- specSkill
- tddSkill
- teamSkill
- threat-modelSkill
- triageSkill
- verifySkill
- vuln-scanSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 7 are distinctive, and 13 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
CRITICAL: Run HARNESS_DIR=$(epic path) first.
- Very specific: line 18
Read it. Verify phase matches where you left off
- Very specific: line 20
Conflict resolution (crash-mid-update): If phase_history contains an entry for the current phase with a completed timestamp, treat that …
- Very specific: line 22
Worktree recovery: If worktree_name is set in pipeline state:
- Very specific: line 23
Check if worktree still exists: git worktree list | grep "{worktree_name}"
- Very specific: line 24
If exists: cd into the worktree path to continue work
- Very specific: line 25
If not found: worktree was cleaned up externally — abort orbit with warning, set "status": "aborted"
- Very specific: line 27
If no file with "status": "running" exists, orbit was not started or has completed.
- Very specific: line 29
Crash recovery: If updated_at is older than 45 minutes and the pipeline is in status: running, assume a crash occurred.
- Very specific: line 81
Check for PRD/requirements docs: ls {project}/PRD*.md {project}/docs/PRD*.md {project}/requirements*.md 2>/dev/null
- Distinctive: line 93
Read the user's request + any existing docs (PRD, README, AGENTS.md)
- Distinctive: line 121
Git preflight: verify clean working tree and not on detached HEAD:
- Distinctive: line 126
Worktree isolation: Create an isolated git worktree:
- Distinctive: line 157
Check for eval config — eval is active if ANY of these exist:
- Very specific: line 161
If eval is active, run epic eval --json via the eval skill
- Distinctive: line 166
If no eval config and no benchmarks detected, skip this step entirely
- Distinctive: line 170
Gate: verify PASS audit report exists
- Distinctive: line 193
Run the evolution engine to analyze this session and generate/improve skills.
- Very specific: line 201
If $HARNESS_DIR/projects/{slug}/pending_synth.jsonl has records with status: "pending", synthesize each — launch one subagent per manifest …
- Very specific: line 222
Update pipeline state: "phase": "evolve", "status": "complete", then run epic orbit unlock.
“Common” is measured: kept by at least 6 in 10 of the 5 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.
Files
/orbit — Complete Orbit
CRITICAL: Run HARNESS_DIR=$(epic path) first. NEVER use .harness/ in the project directory.
You are entering Orbit mode — the full autonomous pipeline from spec to PR in one shot.
Phase Recovery Protocol
At the start of every response during an active orbit:
- Run
ls $HARNESS_DIR/orbit/PIPELINE-*.json 2>/dev/null - Find the file with
"status": "running" - Read it. Verify
phasematches where you left off - If
phaseis ahead of where you think you are, trust the file — you may have compacted - Conflict resolution (crash-mid-update): If
phase_historycontains an entry for the currentphasewith a completed timestamp, treat that phase as done and advance to the next phase —phase_historywins over thephasefield when they disagree. - Resume from the resolved phase. Do NOT re-ask mode selection, re-run spec, or re-discover
- Worktree recovery: If
worktree_nameis set in pipeline state:- Check if worktree still exists:
git worktree list | grep "{worktree_name}" - If exists:
cdinto the worktree path to continue work - If not found: worktree was cleaned up externally — abort orbit with warning, set
"status": "aborted"
- Check if worktree still exists:
If no file with "status": "running" exists, orbit was not started or has completed. Do not invent one.
Crash recovery: If updated_at is older than 45 minutes and the pipeline is in status: running, assume a crash occurred. Read the state, determine the last completed phase from phase_history (rule 5 above applies), and resume from there. Report the recovery to the user.
Step 0: Preflight
Concurrent-orbit guard — before starting, run:
epic orbit lock # exit 1 + "another orbit is running" if one is active → STOPOn success you own the guard; run epic orbit unlock when the pipeline reaches
a terminal state (complete/aborted). If a crashed orbit left the lock behind,
lock reclaims it automatically once no PIPELINE-*.json is running.
Initialize pipeline state at $HARNESS_DIR/orbit/PIPELINE-{timestamp}.json:
{
"id": "{timestamp}",
"mode": null,
"phase": "auto_detect",
"status": "running",
"spec_file": null,
"goal_slug": null,
"branch": null,
"worktree_name": null,
"original_cwd": null,
"audit_fail_count": 0,
"max_retries": 3,
"audit_report": null,
"pr_url": null,
"deadline": "{ISO-8601, now + 30 minutes}",
"started_at": "{ISO-8601}",
"updated_at": "{ISO-8601}",
"phase_history": []
}Step 1: Auto-Detect Mode
DO NOT ask the user for mode selection. Auto-detect the best path:
Detection Logic
| Signal | Mode | Reason |
| PRD / detailed requirements doc exists in project | council | Rich input → council synthesizes best approach |
| User request is specific and actionable (clear goal, defined scope) | direct | No need for discovery — spec directly |
| User request is vague, unfocused, or "I want to..." without specifics | council | Council frames the problem better than guessing |
| User explicitly says "interactive" or "let me discover first" | interactive | Respect explicit preference |
Detection Process
- Check for PRD/requirements docs:
ls {project}/PRD*.md {project}/docs/PRD*.md {project}/requirements*.md 2>/dev/null - Evaluate user request clarity:
- Specific: contains concrete feature descriptions, acceptance criteria, or technical constraints →
direct - Vague: "build X", "improve Y", "add Z" without details →
council
- Specific: contains concrete feature descriptions, acceptance criteria, or technical constraints →
- Record detected mode in pipeline state (
"mode": "direct|council|interactive") - Report mode choice to user as a notification, not a question:
"Orbit mode: {mode} (auto-detected)" - Proceed immediately to the matching step below — do not wait for confirmation
Step 2A: Direct Mode (clear request → auto-spec)
Use when: Request is specific and actionable.
- Read the user's request + any existing docs (PRD, README, AGENTS.md)
- Generate spec directly at
$HARNESS_DIR/specs/SPEC-{timestamp}.md, run the Readiness gate fromskills/spec/SKILL.md(step 3) on it, settle everyGAP:from the request and codebase yourself, record each asGAP: … → settled: … (assumption)under the spec's## Readiness Gate, then writestatus: approved. If a gap cannot be settled without the user, downgrade tocouncilmode instead of guessing. - Record via
epic mem add --title "Orbit: {mode} mode decision" --type decision --importance 0.9 --body "CONTEXT" - Proceed immediately to Step 3 — no approval gate
Step 2B: Council Auto-Spec (complex/vague request → council)
Use when: PRD exists or request needs framing.
- Gather the user's request from conversation context
- Launch 4 parallel sub-agents (Architect, Skeptic, Pragmatist, Critic) — each receives ONLY the request + codebase context, NOT the full conversation (anti-anchoring)
- Synthesize: list agreement/disagreement, produce recommended approach
- Generate spec at
$HARNESS_DIR/specs/SPEC-{timestamp}.md, run the Readiness gate (spec skill step 3), settle everyGAP:from the council output and record each under## Readiness Gate, then writestatus: approved - Record via
epic mem add --title "Orbit: council decision" --type decision --importance 0.9 --body "CONTEXT" - Proceed immediately to Step 3 — no approval gate, no "orbit go"
Step 2C: Interactive Mode (explicit user choice only)
Use when: User explicitly requested interactive mode.
- Tell user to run
/discover→/spec, then say "orbit go". STOP and wait. - On resume: load latest
SPEC-*.mdwithstatus: approved. Proceed to Step 3.
This mode is never auto-selected. It requires explicit user opt-in.
Step 3: Build (Go)
- Load spec, extract
goal_slug - Git preflight: verify clean working tree and not on detached HEAD:
[ -z "$(git status --porcelain)" ] || (echo "ERROR: Dirty working tree or untracked files. Commit or stash first." && exit 1) git symbolic-ref -q HEAD || (echo "ERROR: Detached HEAD. Checkout a branch first." && exit 1) - Worktree isolation: Create an isolated git worktree:
git worktree add .harness/worktrees/orbit-{goal_slug} -b orbit-{goal_slug} origin/{default-branch} cd .harness/worktrees/orbit-{goal_slug}.harness/worktrees/is host-neutral. Do NOT use.claude/worktrees/— it is meaningless on Codex and Antigravity.- Record
worktree_nameandoriginal_cwdin pipeline state
- Plan tasks from Requirements (R1, R2...)
- Execute with sub-agents — TDD, debug on failure, verify before done
- Handle states: DONE / DONE_WITH_CONCERNS / NEEDS_CONTEXT / BLOCKED
- Integrate: full test suite, verify ACs
Step 4: Audit
- Gather scope via
git diff --stat - Classify changed files (API, Frontend, DB, Backend, Tests, Infra)
- Launch parallel sub-agents: Reviewer, Auditor, Test runner (+ scope-specific)
- Synthesize Audit Report: Quality/Security/Performance PASS/WARN/FAIL + Spec Coverage
- PRESERVE audit report in pipeline state
audit_reportfield
Step 5: Verdict
- All PASS + all AC verified → proceed to Eval (if eval.yaml exists) or Ship
- WARN → log, auto-proceed
- FAIL → increment
audit_fail_count:< 3: plan fixes from action items, execute, return to Step 4≥ 3: PAUSE — ask user "continue or abort?"
Step 5.5: Eval (optional — only if eval.yaml or benchmarks exist)
- Check for eval config — eval is active if ANY of these exist:
$HARNESS_DIR/eval/eval.yamlbenchmarks/baselines/latest.jsonin CWD (in-repo baseline)benchmarks/eval_runner.pyin CWD (auto-detected benchmark)
- If eval is active, run
epic eval --jsonvia the eval skill - Eval PASS → proceed to Ship
- Eval FAIL (regression detected) → increment
audit_fail_count:< 3: plan fixes, execute, return to Step 4≥ 3: PAUSE — ask user "continue or abort?"
- If no eval config and no benchmarks detected, skip this step entirely
Step 6: Ship
- Gate: verify PASS audit report exists
- Integration verification — run directly in worktree:
- Clean build artifacts first:
cargo clean/npm run clean/ equivalent - Full build from scratch · complete test suite · linter + formatter
- Fail → STOP. Do NOT create PR.
- Clean build artifacts first:
- Git hygiene: conventional commits, rebase, squash fixups
- Create PR via
gh pr createwith spec + audit report in body- Record the URL in pipeline state as
pr_url.epic orbit unlockwarns when a pipeline reachescompletewithout it.
- Record the URL in pipeline state as
- CI watch — probe first, then watch:
gh pr checks <PR_NUMBER> --json name,state- Checks exist → run
gh pr checks <PR_NUMBER> --watch, auto-fix failures. - Empty result (no CI configured on the repo) → skip the watch. Log
"No CI configured, skipping CI watch", append a
phase_historyentry recording"ci_watch": "skipped", and proceed to Step 7 (evolve runs regardless of CI outcome, so the pipeline must never wait on checks that will never appear).
- Checks exist → run
- Exit worktree: Return to original directory and keep the worktree
Step 7: Evolve
Run the evolution engine to analyze this session and generate/improve skills.
Always run — regardless of CI outcome:
epic-harness reflectThis triggers the Ring 3 loop: observe → analyze → seed evolved skills → update metrics.
If
$HARNESS_DIR/projects/{slug}/pending_synth.jsonlhas records withstatus: "pending", synthesize each — launch one subagent per manifest (use your host's subagent mechanism; do NOT name a model or CLI), then apply the body it produced:epic-harness evolve accept-synth --skill <name> --file <body.md>Unconsumed manifests leave the template skill body in place.
- If CI green (all checks passed): additionally run
and record the successful orbit pattern into memory:epic-harness reflect --context --days 1epic mem add --title "Orbit: {goal_slug} succeeded" \ --type pattern --importance 0.7 \ --body "Orbit completed. Mode: {mode}. AC: all verified. PR: {url}. Stack: {stack}." - Report the evolution outcome in the final summary (evolved skills generated, score trend).
- Update pipeline state:
"phase": "evolve","status": "complete", then runepic orbit unlock.
Step 8: Report
## Orbit Complete
- Pipeline: PIPELINE-{id}
- Mode: {direct|council|interactive} (auto-detected)
- Spec: SPEC-{timestamp} ({goal_slug})
- Branch: orbit-{goal_slug}
- Worktree: orbit-{goal_slug} (preserved for PR)
- PR: {URL}
- Audit retries: {count}
### Phase Summary
| Phase | Status | Retries |
|-------|--------|---------|
| Spec | approved | 0 |
| Go | complete | 0 |
| Audit | PASS | {count} |
| Eval | {PASS|SKIPPED} | 0 |
| Ship | complete | 0 |
| Evolve | complete | 0 |
### Evolution
- Skills evolved: {count}
- Score trend: {improving|stable|declining}Red Flags
- Interactive mode proceeding without spec approval (direct and council modes auto-approve)
- Continuing after 3 audit failures without user consent
- Skipping isolated integration test
- Shipping with FAIL in security audits
- Losing audit report between phases
- Creating branch with dirty working tree
- Losing worktree reference between phases
- Skipping evolve step after ship (evolve must always run, even if CI fails)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

