Written for autonomous and semi-autonomous agents working on AURA Harness. Human operators should read this before supervising agent work.
- Read CONTRIBUTING.md — especially Ways to contribute, Ripple effects, and What to avoid.
- Open or claim a GitHub issue — use the matching issue template. Do not start large work without an issue reference.
- Plan in the issue or PR — list files you will touch and ripple updates (tests, CHANGELOG, docs).
- Wait for maintainer feedback on non-trivial or breaking changes before large diffs.
- Link related work with full GitHub URLs:
https://github.com/ARPAHLS/aura/issues/<N>. - Do not reference internal planning file prefixes (
issues/12-…) or target release versions (v0.x) in GitHub issue bodies. - Use Phase C / D / E or plain shipped vs planned language. Semver bumps are maintainer-only (CHANGELOG).
| Path | Purpose |
|---|---|
aura/agents/ |
Registry, profiles, agent_ref, ULID ids |
aura/core/ |
Session, spine, constraints, conformance, audit report, compare, spectrum enforcement |
aura/membrane/ |
Ingress context, egress guarded tool calls |
aura/sequencer/ |
Prescriptive step pipelines |
aura/hosts/ |
SkillwareHost (reference adapter), mock skills |
aura/observers/ |
Parallel audit subscribers |
aura/exporters/ |
JSONL summary, OTel JSONL |
aura/cli/ |
aura CLI (interactive menu, agent set, config/paths, export, compare) |
aura/api.py |
Public SDK (agent(), session(), emit()) |
aura/runtime/ |
Script wrap helpers |
tests/ |
pytest suite (see below) |
examples/ |
Runnable numbered demos (01-* … 13-*, each with main.py) |
docs/ |
User and contributor documentation |
spec/ |
JSON schemas (contracts) |
.github/ |
Issue templates, labels, workflows |
- Identity:
agent_ref, ULIDaura_id,policy_version, hash chain on spine events - Session export:
.jsonl,.summary.json(withaudit_report),.otel.jsonl - CLI:
aura agent create/set(incl.--spectrum-level),config show(spectrum_levels),paths,run,logs,export,export-otel,compare - Spectrum:
aura/core/spectrum_enforcement.pymerges rules at session open; debug flows viascripts/aura_coat_flow_report.py - SDK helpers:
AuditSpine.from_jsonl()for disk verify;compare_sessions()includesagent_refandhash_chain_validdiffs - CI: Python 3.10–3.13 matrix on every PR; gate job
lint-test(ci.yml→reusable-test.yml)
| File | Focus |
|---|---|
tests/test_core.py |
Registry, spine, constraints, session export |
tests/test_core_gaps.py |
Config merge, tamper, compare edge cases, session modes |
tests/test_v02.py |
Sequencer, membrane, Skillware host |
tests/test_v03.py |
Identity, audit report, hash chain, compare |
tests/test_cli.py |
CLI commands and exit codes |
tests/test_goal_slo_observers.py |
Goal drift + schedule SLO presets, audit findings |
tests/test_examples_smoke.py |
Example script smoke runs |
Run the full suite before opening a PR (pytest — currently 140 tests).
- GitHub issue linked (
Fixes #NorRefs #N) - Scope matches issue — no unrelated refactors
-
pytestpasses -
black aura tests— no diff -
flake8 aura tests— clean - CI green —
lint-testjob on the PR - Tests added/updated for behavior changes
- CHANGELOG.md updated under
[Unreleased]when user-visible - Docs/examples updated per ripple table
- No secrets,
.env, or local paths committed - No version bump in
pyproject.toml/CITATION.cffunless explicitly requested - No emojis in code, commits, or PR title
- No
Co-authored-by:trailers for AI tools
pip install -e ".[dev]"
pytest
black aura tests
flake8 aura testsOptional Skillware integration tests:
pip install -e ".[dev,skillware]"
pytest- Bypass the membrane for tool calls in examples/tests meant to demonstrate policy (use
SkillwareHostoremit()). - Delete or gut vision/roadmap content without maintainer direction.
- Commit
AURA_PLAN.mdorissues/(gitignored local planning). - Invent features not in the issue — if scope grows, comment on the issue first.
- Mark PR checklist items you did not verify.
- Put internal backlog numbers or v0.x release targets in GitHub issue text.
If you are a human operator directing an agent:
- Approve the file list and ripple plan before implementation.
- Run tests locally or confirm CI green before merge.
- Own the fork, commit authorship, and PR — you are accountable for the diff.