praxis CLAUDE.md

praxis CLAUDE.md is an instructions file for coding agents from Ohswedd/praxis. It costs 1,254 tokens per session, scanned A, original, MIT.

A set of Claude Code instructions for the Praxis project, a plugin that guides work through specification, investigation, planning, implementation, review, documentation, and release. It also defines project commands, architecture, and conventions.

In plain words
What is it for?
Use it when working on Praxis to run its tests and checks, compile scripts, understand its layers, follow its workflow, and work with its hooks, skills, agents, and shared helpers.
Why use it?
It gives Claude Code consistent project-specific rules and deterministic checks for development work.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/ohswedd/praxis/claude-md
Clone the repo
git clone --depth 1 https://github.com/Ohswedd/praxis

Wrote 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.

agentmods badge for praxis CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/ohswedd/praxis/claude-md.svg)](https://agentmods.dev/instructions/ohswedd/praxis/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/ohswedd/praxis/claude-md"><img src="https://agentmods.dev/badge/instructions/ohswedd/praxis/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 1,254 This file is loaded in full into every session.
When invoked 1,254 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.01254 $0.01254
Opus 5 $0.00627 $0.00627
Sonnet 5 $0.00251 $0.00251
Haiku 4.5 $0.00125 $0.00125

Measured 4d ago against content hash a2627562e85e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

praxis CLAUDE.md 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 4d 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.

CLAUDE.md · 94 lines

How it starts

The opening of the file, as written. The whole thing — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Project: praxis

A Claude Code plugin that turns any prompt into a full engineering pipeline (spec, investigate, plan, implement, audit, document, ship) and enforces the result with deterministic hooks. It is distributed through the ohswedd-praxis marketplace and runs entirely inside the interactive session.

Commands

  • Test: make test (python3 -m unittest discover -s tests)
  • Check: make check (selfcheck, drift, tests, compile: this is what CI runs)
  • Lint: make compile (byte-compiles every script; there is no external linter)
  • Run: there is nothing to run. Exercise a script directly, e.g. python3 plugins/praxis/scripts/doctor.py, or feed a hook its JSON on stdin.

Architecture

Four layers, only one of which can refuse:

  • plugins/praxis/output-styles/praxis-quality.md: the always-on doctrine.
  • plugins/praxis/skills/*/SKILL.md: the reasoning workflows, routed per prompt.
  • plugins/praxis/agents/*.md: read-only auditor subagents (Read, Grep, Glob).
  • plugins/praxis/scripts/*.py: the hooks, wired in hooks/hooks.json. These are the only deterministic gates.

scripts/lib/common.py holds every shared helper: the review scope (the branch's base, its commits, what is still uncommitted, and what it removed), workspace mode and artifact paths, repo state, the change signature, config resolution, UI-surface and runtime-harness detection, secret and house-style patterns. Put shared logic there rather than in a second script. docs/ARCHITECTURE.md is the long form.

One rule the whole design turns on: praxis measures a claim rather than accepting it. report.py runs the tests, the three scanners and the end-to-end harness itself, and refuses an audit citation that does not resolve; the Stop gate re-derives its verdict from that recorded evidence rather than reading the report's status. Before adding a check that trusts its caller, look at ADR-0010, ADR-0026 and ADR-0027, which are the same lesson three times.

Read the full file on GitHub · 94 lines

Changes

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.

  1. 4d ago First seen · 94 lines · 1,254 tokens per session scan A a2627562e85e

Subscribe to this mod's changes

praxis CLAUDE.md is an instructions file published in the GitHub repository Ohswedd/praxis (1 stars, last pushed 1mo ago), licensed MIT. It adds 1,254 tokens to every session, about $0.0063 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.