praxis-agents-os
AGENTS.md4 starsChanged 11 days agoApache-2.0View on GitHub
Praxis Agents OS is the open source platform behind Praxis Agents for creating, operating, and governing AI agents. Optimise for a small, maintainable foundation and a non-technical operator. Put complexity behind defaults and progressive disclosure. Prefer removing bespoke internals over preserving compatibility. Read the instructions and references that apply to the task: - For all writing, read and follow the technical language guide, including comments and docstrings. - For backend changes, read backend guidelines. - For frontend changes, read frontend…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,439 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository2 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- dependency-security-auditSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
21 rules. About 2 are common, 17 are distinctive, and 2 are very specific to this project.
≈2
Common · estimate
Many files like this have a rule of this kind.
≈17
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Read the instructions and references that apply to the task:
- Distinctive: line 20
Read the relevant domain and provider references before editing that area.
- Distinctive: line 22
Read app instructions explicitly even when starting from the repository root.
- Distinctive: line 31
Do not create Git commits without explicit human approval.
- Distinctive: line 33
Read nearby code before editing.
- Distinctive: line 36
Keep functions easy to follow.
- Very specific: line 38
Use GitHub issues for public tracking and docs/architecture/ for durable design decisions.
- Distinctive: line 40
Before proposing broad capabilities, check architecture notes and recent history for prior decisions and rejected approaches.
- Distinctive: line 42
When behaviour, routes, settings, or setup changes, update the owning docs in the same change.
- Very specific: line 45
When a change alters a flow that an internal skill describes, update the file under apps/api/services/agents/runtime/internal_skills/ too.
- Common: line 49
Keep secrets, generated caches, virtual environments, local databases, and build outputs out of Git.
- Common: line 61
Treat workspace isolation, approvals, delegation, credentials, audit, and sessions as high-risk areas.
- Distinctive: line 63
Keep CORS, cookies, CSRF, rate limits, and provider validation strict.
- Distinctive: line 65
Keep console email and local filesystem storage local-only, with settings validation rejecting them elsewhere.
- Distinctive: line 67
Keep agent actions on external systems permissioned, observable, and reversible where practical.
- Distinctive: line 76
Write tests that catch real regressions, and keep the suites fast.
- Distinctive: line 79
Test these thoroughly, with one focused case per distinct rule:
- Distinctive: line 92
Don't add these:
- Distinctive: line 110
When you change code, update or remove the tests it affects instead of adding new ones beside them.
- Distinctive: line 122
Use the relevant checks and report anything you could not run:
- Distinctive: line 131
Run the most relevant checks for changed files before finishing.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md 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
Repository guidelines
Praxis Agents OS is the open source platform behind Praxis Agents for creating, operating, and governing AI agents. Optimise for a small, maintainable foundation and a non-technical operator. Put complexity behind defaults and progressive disclosure. Prefer removing bespoke internals over preserving compatibility.
Read before changing files
Read the instructions and references that apply to the task:
- For all writing, read and follow the technical language guide, including comments and docstrings.
- For backend changes, read backend guidelines.
- For frontend changes, read frontend guidelines.
- For reviews and final self-review, use the review checklist.
- For implementation details, use the documentation index. Read the relevant domain and provider references before editing that area.
Read app instructions explicitly even when starting from the repository root. Linked implementation documents are task-specific references, not startup imports. For the instruction layout and its rationale, see the agent instruction guide.
Working rules
Apply these rules throughout the task:
- Do not create Git commits without explicit human approval. A request to
implement, fix, or change code does not authorise
git commit. - Read nearby code before editing. Complete the requested scope, make routine implementation choices, and keep changes focused. Report unrelated findings instead of adding refactors, abstractions, or features to the change.
- Keep functions easy to follow. Use cyclomatic complexity as design feedback and extract focused helpers when that makes control flow clearer.
- Use GitHub issues for public tracking and
docs/architecture/for durable design decisions. Keep scratch plans and private implementation notes local. - Before proposing broad capabilities, check architecture notes and recent history for prior decisions and rejected approaches.
- When behaviour, routes, settings, or setup changes, update the owning docs in
the same change. Update AGENTS.md when guidelines or navigation change; keep
provider inventories and implementation details in focused references.
When a change alters a flow that an internal skill describes, update the
file under
apps/api/services/agents/runtime/internal_skills/too. - Describe public capabilities as implemented only when wired end to end. Mark incomplete capabilities as pending.
- Keep secrets, generated caches, virtual environments, local databases, and build outputs out of Git.
- You are working as a swarm of agents collaborating to reach the same goals.
There is a private message board available to you and all other agents at
docs/message-board/. You may create or update any files in this dir to help communicate your progress with other agents and ensure you are collaborating in the best way to reach the goals without clashing or competing.
Security and product boundaries
Preserve these boundaries in every change:
- Treat workspace isolation, approvals, delegation, credentials, audit, and sessions as high-risk areas. Add tests in proportion to risk.
- Keep CORS, cookies, CSRF, rate limits, and provider validation strict. Use explicit local configuration instead of weakening production behaviour.
- Keep console email and local filesystem storage local-only, with settings validation rejecting them elsewhere.
- Keep agent actions on external systems permissioned, observable, and reversible where practical.
- For Docker changes, keep local services bound to
127.0.0.1, production images small and non-root, and runtime secrets outside images. - For GCP bootstrap and deployment, use an explicit
ENV_FILEand preserve the bootstrap's typed approval gate. Readdeploy/gcp/README.mdfirst.
Tests
Write tests that catch real regressions, and keep the suites fast. Every test must fail for a plausible bug that no other test already catches.
Test these thoroughly, with one focused case per distinct rule:
- Security boundaries: workspace isolation and row-level security, auth, sessions, CSRF, rate limits, credentials, approvals, delegation, audit records, and handling of untrusted content. Include the denial path, not only the allowed path.
- Logic that can break silently, such as parsers, reducers, formatting of money and numbers, scope rewriting, idempotency, and resume or retry without duplicate effects.
- Provider boundaries: what we send to and accept from external APIs, with one representative case per operation family.
- Runtime behaviour, with one deterministic scenario per distinct behaviour.
Don't add these:
- Assertions on copy, labels, headings, or long lists of
toContainchecks over rendered HTML. One smoke render per presenter family is enough. - Tests of constants, enums, registry listings, settings defaults, schema shapes, or framework behaviour such as FastAPI routing, Pydantic validation, or React rendering.
- Tests that assert mock call sequences instead of outcomes.
- The same rule proved again at another layer. Test it once, as close to the behaviour as you can, usually in a service test or scenario.
- Parametrize or
it.eachmatrices that exercise the same code path. Pick one to three representative cases, favouring the security-relevant ones. - Copies of a generic contract test for each provider, tool, or storage backend.
- Tests for legacy data or backfill paths. No production deployment exists yet.
- Real sleeps or retry backoff. Patch the clock, shorten the setting, or use a status that doesn't retry.
When you change code, update or remove the tests it affects instead of adding new ones beside them. Before you add a test, check whether an existing test already covers the rule.
Repository and verification
apps/api contains the FastAPI backend and separate Python worker.
apps/web contains the Vite and React frontend. apps/renderer contains the
isolated media renderer (ffmpeg behind a shared driver); see
video tools. The root Makefile wraps local
development; Docker Compose provides Postgres and optional application services.
Use the relevant checks and report anything you could not run:
make bootstrapprepares local configuration and dependencies;make devstarts the local development stack. See local development for details.make checkruns backend lint and format checks, Alembic drift checks, database-backed pytest, and the complete frontendpnpm check.make media-renderer-checkruns the renderer's isolation and ffmpeg tests on Linux in Docker. Run it whenapps/rendererchanges.- Run the most relevant checks for changed files before finishing. Keep test scope proportional to the change and use each app's documented commands.
- Production dependency audits match CI and require registry access:
python3 .github/scripts/dependency_audit.py apiandpython3 .github/scripts/dependency_audit.py web. For a full sweep that also checks Cloudflare Radar Zero-Wire and new CVEs, use the dependency security audit skill. - You are working as one part of a team of agents collaborating to reach the same goals.
There is a private message board available to you and all other agents at
docs/message-board/. You may create or update any files in this dir to help communicate your progress with other agents and ensure you are collaborating in the best way to reach the goals without clashing or competing.
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.

