hztbuaa/open-fars-template/drive
Claude Code and agent skill by hztbuaa/open-fars-template
- community
Checking that the SKILL.md file is still in the repository.
Perpetual project driver — automatically advances the Open-FARS pipeline until completion or human decision needed. Use /drive to start, /drive off to stop, /drive status to check.
Install
npx vskill@latest install hztbuaa/open-fars-template/driveSKILL.md
Open-FARS Perpetual Driver (/drive)
Overview
The driver keeps Claude working non-stop on the Open-FARS pipeline. Once activated, Claude never stops — it reads pipeline state, determines the next action, executes it, and repeats. The Stop hook blocks session exit so the loop continues.
Driving stops only when:
- User runs
/drive off - All stages complete (S7 done)
- A human decision point is reached (email sent, then pause)
Usage
Activation (/drive or /drive on)
- Create/update
.open-fars/meta/driver-state.yaml:
``yaml active: true awaiting_human: false awaiting_reason: "" last_action: "" last_action_time: "" total_actions: 0 history: [] ``
- Reset block counter:
echo "0" > .open-fars/meta/.driver-block-count - Read
.open-fars/meta/registry.yaml - Execute the first priority action (see Driver Decision Logic below)
- After action completes, update
driver-state.yaml:
- Set
last_actionto a brief description - Set
last_action_timeto current Beijing timestamp - Increment
total_actions - Append to
history(keep last 20 entries)
Deactivation (/drive off)
- Update
driver-state.yaml: setactive: false - Remove block counter file:
.open-fars/meta/.driver-block-count - Run
/statusskill to generate a final progress report - Send email notification via
email-notify:
- Subject:
[Claude Code] Driver deactivated — progress report - Body: status report summary
Status Check (/drive status)
Read and display:
driver-state.yaml— active state, last action, total actions- Recent history entries
- Current block counter value
- Registry pipeline state summary
Driver Decision Logic
After each action, determine the next one. Priority from highest to lowest:
P1: Human Decision Points
Check if any stage requires human input:
- S2 PASS but no idea chosen → send reminder email, set
awaiting_human: true,awaiting_reason: "Waiting for idea selection (S2)" - S3 PASS but no user confirmation → send reminder email, set
awaiting_human: true,awaiting_reason: "Waiting for plan confirmation (S3)" - Any stage with
awaiting_human: truein driver state → do nothing, let Stop hook release
P2: Failed Reviews Needing Re-run
Find stages where the latest review verdict is FAIL and review count < threshold:
- Re-run the corresponding subagent with judge feedback
- After subagent returns, auto-trigger
/review(judge review) - Thresholds: S1/S2/S3 = 3, S4/S5/S6/S7 = 5
If review count >= threshold → send escalation email, set awaiting_human: true
P3: Completed Stage Without Review
Find stages with status completed but no review (or no PASS review):
- Auto-trigger
/reviewfor that stage
P4: PASS Review — Advance to Next Stage
Find the latest stage that has a PASS review and whose next stage is still pending:
- Follow the per-stage rules in AGENTS.md:
- S1 PASS → auto-advance to S2 (spawn ideation)
- S2 PASS → email user for idea selection, set awaiting_human
- S3 PASS → email user for plan confirmation, set awaiting_human
- S4 PASS → auto-advance to S5 (spawn experiment)
- S5 PASS → auto-advance to S6 (spawn writing)
- S6 PASS → send notification email, auto-advance to S7
- S7 done → send final email, set
active: false - Update registry stage status to
in_progress - Spawn the corresponding subagent
P5: Monitor Running Experiments
If S5 is in_progress:
- Check tmux sessions for running experiments
- Check experiment output directories for new results
- If experiments complete, collect results and mark stage
completed
P6: Periodic Maintenance
- If no
/statusreport in last 6 hours → run/status - If no
/catchupdocument in last 24 hours → run/catchup - If degradations exist and no recent audit → run
/review audit
P7: Nothing To Do
If no action matches:
- Generate a brief summary of current state
- Set
active: false - Send email:
[Claude Code] Driver completed — no more actions available
State File Schema
driver-state.yaml:
How the Stop Hook Works
The Stop hook (driver-stop.sh) is the engine:
Three-layer deadloop protection:
stop_hook_activecheck — if already blocked once, let go- External file counter — >10 consecutive blocks, force let go
- Post-compact SessionStart hook resets counter and re-injects driver context
Important Notes
- The driver follows AGENTS.md orchestration protocol for all stage transitions
- All email notifications use the
email-notifyskill - Registry.yaml is the source of truth for pipeline state
- Driver state is separate from registry — it only tracks the driving mechanism
- When
awaiting_humanis true, the Stop hook lets Claude exit normally - User can always
/drive offto stop, or/drive onto resume after providing input
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingtemplate/.claude/skills/drive/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/hztbuaa/open-fars-template/drive)