Spaces:
Running
AGENTS.md
Durable guidance for AI agents (Codex, Claude Code, or a local model) working on Daimon. Codex and other agents read this file automatically before starting work.
Behavioral Baseline
Always read @PERSONA.md at project root before acting. Apply everything defined there to every decision, regardless of role. Read your own @PERSONA.md too if one was provided to you.
What Daimon is
Daimon is a daemon (a living background process) that carries your daimon (your
persona's guiding spirit): a governed, self-evolving AI persona that rides on top of the agent
you already use. A persona is a quantitative 10-layer vector (the persona.md spec) that
evolves in real time with interaction, but inside a governed envelope: every trait change
is clamped to a declared range, audited, and reversible, and the universal safety invariants
cannot be violated. Everything runs locally on a small (<= 4B) model and ships as a Gradio
Space for the Build Small Hackathon (Thousand Token Wood).
The thesis: self-improvement is safe only when bounded. Ungoverned free-text approaches
(e.g. Hermes SOUL.md) are the contrast we are deliberately not building.
Project rules (non-negotiable)
- The spec is the source of truth for safety. Route every state change through the
@personaxis/persona.mdengine (state mutate-> clamp + governance + audit). Never writestate.jsondirectly. Never reimplement clamping or governance. - Local-first. Every feature must work offline on the small model. No mandatory cloud calls.
- No redundancy. Daimon is a layer, not a competing chat agent. Do not rebuild what Claude Code, Codex, or Hermes already do better.
- Verify, do not assume. Confirm Codex, Gradio, MiniCPM, and host conventions against their official docs before relying on them.
Repo map
| Path | What it is |
|---|---|
.personaxis/personaxis.md |
Project behavioral baseline (source of PERSONA.md) |
.personaxis/personas/dev/<slug>/ |
Source specs for the development subagents (10-layer) |
.personaxis/personas/<slug>/ |
A real persona the Space operates on and evolves live |
.codex/agents/<slug>.toml |
Codex custom agents, compiled from the dev personas |
.claude/agents/<slug>.md |
Claude Code subagents (same personas, when compiled) |
engine/ |
The living loop (observe -> appraise -> evolve -> recompile) |
model/ |
Small-model serving (llama.cpp, MiniCPM GGUF) |
app/ |
Custom frontend on gradio.Server (Off-Brand) |
MASTER_CHECKLIST.md |
Phases F0-F6 and their gates |
DESIGN.md |
Visual-language contract for the UI |
Development subagents and how to use them
The development personas live as source specs in .personaxis/personas/dev/<slug>/ and are
compiled to Codex custom agents in .codex/agents/<slug>.toml. Per the official Codex model,
subagents are spawned only when explicitly requested - either by you naming them, or by the
orchestrator delegating to them. They are not auto-assigned. Two usage patterns:
- Orchestrator-driven (recommended): ask
orchestratorto plan a phase; it decomposes the work and delegates to the right specialist by name."orchestrator: break F2 (living loop) into owned tasks and delegate them."
- Direct: name a specialist yourself for a focused task.
"small-model-whisperer: write the GBNF grammar and minimal appraisal prompt for F2."
| Agent | Owns | Phases |
|---|---|---|
orchestrator |
Planning, delegation, gate enforcement | all (drives F0-F6) |
spec-bridge-engineer |
Python-to-CLI bridge (engine/spec_bridge.py) |
F1 |
small-model-whisperer |
llama.cpp serving, GBNF, appraisal prompt | F0, F2 |
offbrand-frontend |
Custom UI on gradio.Server | F4 |
governance-reviewer |
Invariants, audit, security, the governance demo | F3 (and reviews all) |
integrations-engineer |
agents.md + typed API endpoints, host interop |
F5 |
deploy-engineer |
Reproducible Docker build + HF Space deploy | F6 |
To (re)generate or update a Codex agent from its source spec:
npx @personaxis/persona.md compile <slug> --target codex # personaxis.md -> .codex/agents/<slug>
npx @personaxis/persona.md validate # check spec + universals first
Note: the
@personaxis/persona.mdCLI already compiles personas to.codex/agents/<slug>.tomlin the official Codex format (name,description,developer_instructions, plusnickname_candidates). The.codex/agents/*.tomlhere match that output and are regenerated bycompile.
Codex attribution (hackathon lane)
Make development commits through Codex so they carry the Co-Authored-By: Codex <noreply@openai.com> trailer (enabled by default since openai/codex PR #11617). GitHub then
shows Codex as a co-author/contributor of this public repo, which the OpenAI Codex prize lane
requires. Document the small model used (MiniCPM <= 4B) in README.md and MASTER_CHECKLIST.md.
Validation
npx @personaxis/persona.md validate # 0 PASS, 1 FAIL_SCHEMA, 2 FAIL_POLICY, 3 FAIL_CONCEPTUAL
Do not commit a persona that does not pass schema validation.