name: speedrift description: Workgraph-first drift-control autopilot (driftdriver + coredrift + optional specdrift/datadrift/depsdrift/uxdrift/therapydrift/yagnidrift/redrift) with optional Amplifier runtime integration. Use for start/resume, dependency-aware execution, and keeping code/spec/intent synced without hard blocks.
Speedrift (Workgraph Autopilot + Amplifier Runtime)
Speedrift is the operating model for agentic delivery:
- Workgraph is the execution spine (tasks, dependencies, loops, workers).
driftdriverroutes checks in policy order.coredriftis the baseline lane and always runs.- Optional lanes activate per task fence blocks:
specdriftdatadriftarchdriftdepsdriftuxdrifttherapydriftfixdriftyagnidriftredrift
The default posture is advisory + redirect follow-ups, not hard-stop blocking.
Planning Handoff (Mandatory)
planforgeis the standalone planning skill for speedrift repos.- If the user needs discovery, decomposition, debate, spec anchoring, or a seeded Workgraph graph, invoke
planforgefirst. - Return to
speedriftafterplanforgehas written the spec anchor and seeded the graph;speedriftowns execution, drift checks, and runtime supervision from that point forward. - Do not reimplement the full PlanForge phase-gated planning flow inside
speedrift. - PlanForge handoffs must include Agency usage and fallback, unit tests, integration tests, UX tests or explicit waivers, roborev/review obligations, bounded adversarial review, and small-model-ready per-task implementation detail.
Operating Invariants (Mandatory)
- Workgraph is the only task/state source of truth.
- Do not use Beads for task-state unless user explicitly asks for Beads.
- Run drifts checks at task start and before task completion.
- Driftdriver auto-refreshes existing managed repo guidance when a Speedrift
check sees repo changes. Disable only for emergencies with
DRIFTDRIVER_DISABLE_SPEEDRIFT_AUTO_UPDATE=1. - Convert uncertainty/risk into explicit follow-up tasks, not silent workaround code.
Execution Layer
Workgraph and Agency form the execution layer:
- Workgraph (
wg) is the task spine: dependencies, dispatch, readiness. - Agency (
agency serve, port 8000) is the agent composition engine: who runs a task, with what role and capability primitives.
At dispatch time Agency composes an agent configuration. Planforge/speedrift wrap it with a protocol envelope (wg-contract block, drift check obligations, executor guidance). If Agency is unreachable, dispatch continues with generic prompts — Agency enriches but is never required.
Check Agency health: curl -s http://localhost:8000/health
Bootstrap Or Resume A Repo
Run from repo root:
# Install wrappers + drift policy + executor guidance (idempotent)
<workspace-root>/driftdriver/bin/driftdriver install --with-uxdrift --with-therapydrift --with-fixdrift --with-yagnidrift --with-redrift
# Ensure open/in-progress tasks have a wg-contract fence (idempotent)
./.workgraph/coredrift ensure-contracts --apply
# Run drift checks for current task (at start + before completion)
./.workgraph/drifts check --task <task_id> --write-log --create-followups
If packaging an app from <workspace-root>:
cd <workspace-root>/driftdriver
./scripts/package_app.sh --app /path/to/repo --seed-redrift-task
Optional Amplifier Integration (Recommended If Installed)
If amplifier is installed, use the Speedrift Amplifier bundle:
amplifier bundle add git+https://github.com/dbmcco/amplifier-bundle-speedrift@main
amplifier bundle use speedrift
Start/resume with Amplifier:
amplifier run "execute speedrift-start.yaml"
Execute one task loop pass:
amplifier run "execute speedrift-task-loop.yaml"
Brownfield v2 lane:
amplifier run "execute speedrift-redrift.yaml with root_task_id='<task_id>'"
Fallback rule:
- If Amplifier recipe execution fails or is unavailable, run the direct
./.workgraph/*commands from this skill.
Kickoff Contexts (Mandatory Behavior)
When user intent is "speedrift/redrift this app to a new version", support both entry contexts.
Context A: started inside the v1 app repo
Assume current directory is the source app.
<workspace-root>/driftdriver/scripts/package_app.sh --app "$PWD" --seed-redrift-task --skip-contracts
./.workgraph/redrift wg execute --task redrift-$(basename "$PWD")-v2 --v2-repo --write-log
Context B: started one level above (or elsewhere)
Resolve source app path explicitly, then run against that path.
<workspace-root>/driftdriver/scripts/package_app.sh --app /path/to/app-v1 --seed-redrift-task --skip-contracts
<workspace-root>/redrift/bin/redrift --dir /path/to/app-v1 wg execute --task redrift-app-v1-v2 --v2-repo /path/to/app-v2 --write-log
Rules:
- Prefer net-new v2 repo lanes for redrift (
--v2-repo). - After lane creation, switch working directory to v2 repo and continue from
wg ready. - Keep source repo for reference and parity checks; do not rewrite source in place unless explicitly requested.
- For phase completion in v2, checkpoint with:
./.workgraph/redrift wg commit --task <phase_task_id> --phase <phase>
Start Continuous Execution
# Workgraph worker loop
wg service start
# Optional pit-wall drift telemetry loop
./.workgraph/drifts orchestrate --write-log --create-followups
Planning Protocol (After PlanForge)
When planforge has already seeded the graph, continue in speedrift by:
- Claiming or selecting the ready task from Workgraph.
- Running drifts checks before edits.
- Executing the scoped task while honoring its
wg-contractand fence blocks. - Converting new uncertainty or scope growth into explicit follow-up tasks.
- Running drifts checks again before marking the task done.
Per-Task Protocol (Mandatory)
Run this twice per task:
- Once before edits.
- Once before marking done.
./.workgraph/drifts check --task <task_id> --write-log --create-followups
Exit codes:
0clean3findings exist (advisory; handle with follow-ups/contract updates)
Drift Response Rules
- If scope changed, update the contract touch set. Do not silently expand.
- If hardening appears in a core task, split into
harden:follow-up tasks. - Prefer follow-up tasks over in-place patch-on-patch fixes.
- Keep contracts small and explicit so multiple agents stay aligned.
Standalone Module Runs (When Needed)
Use these when you only need one lane:
coredrift --dir . check --task <id> --write-log --create-followups
specdrift --dir . wg check --task <id> --write-log --create-followups
datadrift --dir . wg check --task <id> --write-log --create-followups
archdrift --dir . wg check --task <id> --write-log --create-followups
depsdrift --dir . wg check --task <id> --write-log --create-followups
uxdrift wg --dir . check --task <id> --write-log --create-followups
# POV-guided UX reasoning
uxdrift wg --dir . check --task <id> --llm --pov doet-norman-v1 --write-log --create-followups
therapydrift --dir . wg check --task <id> --write-log --create-followups
fixdrift --dir . wg check --task <id> --write-log --create-followups
yagnidrift --dir . wg check --task <id> --write-log --create-followups
redrift --dir . wg check --task <id> --write-log --create-followups