Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/jeet129/praxisnpx agentmods add skills/jeet129/praxis/praxis-driveWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jeet129/praxis/praxis-drive)<a href="https://agentmods.dev/skills/jeet129/praxis/praxis-drive"><img src="https://agentmods.dev/badge/skills/jeet129/praxis/praxis-drive/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jeet129/praxis/praxis-drive"><img src="https://agentmods.dev/badge/skills/jeet129/praxis/praxis-drive.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00057 | $0.00994 |
| Opus 5 | $0.00028 | $0.00497 |
| Sonnet 5 | $0.00011 | $0.00199 |
| Haiku 4.5 | $0.00006 | $0.00099 |
Grade A, and why
praxis-drive scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 50 lines — stays where its author put it; the contents beside it link to each section on GitHub.
capability: command
domain: codex-plugin
state: experimental
dependencies: [agentic-harness-orchestration, adaptive-model-routing]
triggers: [praxis drive, keep going autonomously, run this without me, resume drive, autonomous drive]
outputs: [updated_task_ledger, slice_close_summary, stop_flags, model_routing_log]
consumers: [praxis-slice, praxis-review]
references: [../../governance/autonomy.yaml, ../../references/loop-contracts.md]
Praxis Drive
Start or resume autonomous drive. There are two paths and they loop differently:
the unattended runner loops for you (each codex exec it fires is one fresh
delivery-lead iteration, and the runner re-invokes until a stop); the
in-session path is a loop YOU run — you keep issuing iterations within this
session until a stop boundary. Do not conflate the two: "one iteration then
exit, no internal loop" applies to a delivery-lead invoked BY the runner, NOT to
the in-session orchestrator, which must continue.
Steps
-
Check the dial. Read
../../governance/autonomy.yaml. Notestop_after(task | slice | phase | gate),run_budget, andstall.max_iterations_without_ledger_change. This is the OPTIONAL human boundary — three non-negotiable stops (decision points, governance gates, budget/stall/exhaustion) fire regardless of this setting. -
Locate the active ledger. Look for
.project/working/slice-<id>-tasks.yaml. If none exists, route throughpraxis-slicefirst — delivery-lead → lead-developer produce the packet AND the ledger (per../../references/loop-contracts.md§2) before drive can start. Never fabricate a ledger. -
State the budget and stops once. Before iterating, tell the user (once): the
stop_afterdial, therun_budgetcaps, the three non-negotiable stops, and that slice-close summaries post to.project/telemetry/summaries/regardless of the dial. -
Run it. Offer both paths (a long-running / "run without me" request implies unattended):
- Unattended (deterministic loop): point the user at
scripts/praxis-drive.sh --project-dir . --harness codex, which invokes the harness headlessly, loops iteration-to-iteration itself, and enforcesrun_budgetcaps + stall detection outside this session's context. Eachcodex execit fires is exactly one delivery-lead iteration; the runner handles the looping. This is the reliable way to drive a whole slice/workflow. - In-session (you run the loop): iterate the drive protocol yourself, continuously, within this session. Each pass is delivery-lead (
codex-agents/delivery-lead.toml) executing exactly oneautonomous-driveiteration — read ledger + named task context, dispatch/complete, runverify, updatestatus/attempts, apply model routing — then report the outcome and immediately begin the next pass. Do NOT stop after one task and wait: keep going through the slice drain (full-ceremony code review, security review, QA, closure evidence) and on into the next slice's ledger. Perskills/autonomous-drive"stop_after semantics", per-slice review/QA are part of the drain, NOT governance gates — understop_after: gatethey do not end the run. Stop cleanly ONLY when a non-negotiable stop (decision point, governance gate, budget/stall/exhaustion) or the dial'sstop_afterboundary is actually reached.
- Unattended (deterministic loop): point the user at
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 50 lines · 57 tokens per session scan A 0dc9f1f8255d
praxis-drive is a skill published in the GitHub repository jeet129/praxis (7 stars, last pushed 6d ago), licensed MIT. It adds 57 tokens to every session and 994 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…