extend
Skill0 starsChanged 7 months agoMITView on GitHub
Add new goals to a completed, paused, or running Chariot mission. Extends the taskplan with new phases or modifies existing scope without losing progress. As of v0.4 this is also the canonical mid-mission scope-change command (the old /pivot is removed).
2 other projects use a version of this.
Adopted by
Most recently taken up by
- TserenTserenov/FMT-exocortex-templatetheir own version, first seen Nov 2, 2026
- iwesys/IWEtheir own version, first seen Nov 1, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- TserenTserenov/FMT-exocortex-template★ 63same name
- iwesys/IWE★ 0same 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 repository4 other files it gives its agents.
- haltSkill
- resume-missionSkill
- set-missionSkill
- statusSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 10 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
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
- Very specific: line 29
No state / "idle" → "No mission found.
- Distinctive: line 31
If runner_pid exists, check if alive:
- Distinctive: line 35
If ALIVE → "Runner is active.
- Distinctive: line 41
Before asking about new goals, summarize what exists:
- Distinctive: line 43
Read CLAUDE.md CHARIOT block → current mission, scope, tech stack
- Very specific: line 44
Read .chariot/taskplan.md → show completed vs remaining tasks
- Very specific: line 45
Read .chariot/review-log.md (last 5 entries) → recent work quality
- Distinctive: line 82
Keep it shorter than set-mission — the foundation already exists
- Distinctive: line 91
Add new scope items to the Scope section:
- Distinctive: line 99
Add any new out-of-scope items.
- Distinctive: line 101
Update Success Criteria if new goals add new criteria.
- Distinctive: line 125
Do NOT modify completed tasks' status
- Distinctive: line 126
Do NOT renumber existing tasks
- Very specific: line 168
Use the dedicated launcher (bin/chariot-spawn.js).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/extend
Extend an existing mission with new goals, or change mission scope mid-flight. Adds new phases/tasks to the taskplan while preserving all completed work.
As of v0.4, /extend is the only scope-change command. The old /pivot skill was removed because it duplicated extend's functionality without adding value. /extend now handles both:
- Adding new goals to a completed mission ("v0.2 features after v0.1 ships")
- Modifying/extending scope mid-mission (the old /pivot use case)
Phase 0: Validate Mission State
Read .chariot/state.json.
status: "completed"→ Ideal. Reactivate and extend.status: "paused"→ Good. Extend and resume.status: "running"→ A runner is active. Tell the user to run /chariot:halt first, then /chariot:extend. (We can't safely modify taskplan.md while the runner is iterating over it.) STOP.status: "escalated"→ OK. Extend with awareness of the escalated task.- No state /
"idle"→ "No mission found. Run /chariot:set-mission first." STOP.
If runner_pid exists, check if alive:
kill -0 {runner_pid} 2>/dev/null && echo "ALIVE" || echo "DEAD"If ALIVE → "Runner is active. Run /chariot:halt first." STOP.
Phase A: Context Review
Before asking about new goals, summarize what exists:
- Read
CLAUDE.mdCHARIOT block → current mission, scope, tech stack - Read
.chariot/taskplan.md→ show completed vs remaining tasks - Read
.chariot/review-log.md(last 5 entries) → recent work quality
Present to the user:
=== Current Mission ===
{mission overview}
Completed: {N}/{total} tasks
Phase 1: {title} — {status}
Phase 2: {title} — {status}
...
Tech Stack: {list}
Scope: {current scope items}
Out of Scope: {current exclusions}
What would you like to add?Phase B: Extension Q&A
Similar to set-mission Q&A but focused on additions only. Do NOT re-ask about existing scope.
Questions to ask:
- "What new features or goals do you want to add?"
- "Do these new goals require any new tech stack additions?" (e.g., new API, new library)
- "Any new out-of-scope boundaries for the extension?"
- "Should any existing completed work be modified?" (careful — this means rework)
- "Time limit for the extension? (default: inherit from original mission)"
Q&A Rules
- NEVER end Q&A until user explicitly approves ("start", "go", "enough", etc.)
- Keep it shorter than set-mission — the foundation already exists
- Record exchanges to
.chariot/qna_history.md(append, don't overwrite)
Phase C: Generate Extension
1. Update CLAUDE.md CHARIOT block
Add new scope items to the Scope section:
## Scope
{existing items}
- [EXT] {new item 1}
- [EXT] {new item 2}Add any new out-of-scope items. Do NOT remove existing scope or out-of-scope items.
Update Success Criteria if new goals add new criteria.
2. Append to taskplan.md
Find the last phase number and continue from there:
## Phase {N+1}: {Extension title}
### Task {N+1}.1: {title}
- **Work**: {specific items}
- **Verify**: {automatable criteria}
- **Status**: [ ]
### Task {N+1}.2: {title}
- **Work**: {specific items}
- **Verify**: {criteria}
- **Depends**: {N+1}.1
- **Status**: [ ]Rules:
- Same task sizing as set-mission (20-60 min per task)
- New tasks can depend on previously completed tasks
- Do NOT modify completed tasks' status
- Do NOT renumber existing tasks
3. Update state.json
node -e "
const fs = require('fs');
const state = JSON.parse(fs.readFileSync('.chariot/state.json', 'utf-8'));
// Reactivate if completed
state.status = 'running';
state.fail_count = 0;
state.consecutive_fails = 0;
// Update task count
state.total_tasks = {new total};
// Set current task to first new task (or first incomplete task)
state.current_task = '{first new task id}';
state.current_phase = '{new phase id}';
state.current_task_started_at = new Date().toISOString();
state.updated_at = new Date().toISOString();
// Reset circuit breaker
state.circuit_breaker = { state: 'CLOSED', consecutive_no_change: 0, total_trips: 0 };
fs.writeFileSync('.chariot/state.json', JSON.stringify(state, null, 2) + '\n');
console.log('State updated for extension');
"4. Commit extension
git add CLAUDE.md .chariot/taskplan.md .chariot/state.json .chariot/qna_history.md
git commit -m "chore(chariot): extend mission — {extension summary}"Phase D: Launch Runner
Use the dedicated launcher (bin/chariot-spawn.js). It handles the
state transition (status → running, plugin_root refresh, env cleanup)
and the detached spawn in one call. Do NOT inline node -e blobs —
zsh history expansion mangles ! characters and the spawn fails.
PLUGIN_ROOT=$(node -p "JSON.parse(require('fs').readFileSync('.chariot/state.json','utf-8')).plugin_root")
node "$PLUGIN_ROOT/bin/chariot-spawn.js"Display:
══════════════════════════════════════════════════════════
CHARIOT EXTENSION STARTED
══════════════════════════════════════════════════════════
Extended with: {N} new tasks across {M} new phases
Total progress: {completed}/{new total}
Starting from: Task {first new task}
Runner PID: {pid}
Log: .chariot/runner.log
Commands:
/chariot:status — Check progress
/chariot:halt — Pause execution
tail -f .chariot/runner.log — Live log
You can close this session safely.
══════════════════════════════════════════════════════════Step 5: Done
STOP. Do not start any implementation work. The runner handles everything.
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.

