Developer · project map

Know what's where

The loop reads project-map.toml so new files land in the right place instead of being guessed — this is the editable default for a project.

live today building
sentigent/ — the repo, one row per area · tree on the left, what it's for on the right
├── sentigent/ │ └── operator/
sentigent/operator/live
The loop engine + delivery harness — the dark-factory core.
Cross-session loop driver (loop_driver.py: start/drive/resume/contract/receipt), push-vs-ask clone (resolver.py), policy wall (guardrails.py), DoD/STOP (goal_dod.py), PR review loop (review_loop.py), runtime evidence (runtime_verify.py). New loop/harness modules go HERE.
│ ├── core/
sentigent/core/live
The judgment engine — evaluates an action before it runs.
Policy engine, briefing, scoring. The brain behind sentigent_evaluate.
│ ├── memory/
sentigent/memory/live
Local, on-device memory (SQLite): episodes, rules, precedents, calibration.
store.py is the MemoryStore. Everything stays on the user's machine.
│ ├── learning/
sentigent/learning/live
The learning pipeline — turns answered escalations into calibrated thresholds.
Feeds the clone's push-vs-ask confidence. Pairs with training/.
│ ├── mcp_server.py
sentigent/mcp_server.pylive
The MCP server — exposes operator_*, loop_*, clone_*, sentigent_* tools to Claude Code.
Wire new agent-facing tools here. sentigent init installs it.
│ └── cli.py
sentigent/cli.pylive
The sentigent command-line entry.
Subcommands (init, loop, steering, …). Keep thin; delegate to modules.
├── tests/
tests/live
Pytest suite — CI-ready. One test file per module.
Name test_<module>.py. Run .venv/bin/python -m pytest tests/ -q. TDD: write the test first.
├── docs/
docs/live
Architecture, roadmap, standards, the diagram + project-map specs.
Markdown. ARCHITECTURE-OVERVIEW.md, ROADMAP-STATEFUL-AGENT-OS.md, DIAGRAM-STYLE.md, PROJECT-MAP-STANDARD.md.
├── skills/
skills/live
Claude-Code skills — reusable procedures the agent follows.
One dir per skill with SKILL.md (frontmatter: name/description). e.g. closed-loop-delivery.
├── site/
site/live
The static marketing + docs site (sentigent.xyz), deployed on Vercel.
index.html, diagrams.html. Self-contained CSS. Deploy: cd site && vercel deploy --prod --yes.
├── scripts/
scripts/live
One-off and ops scripts (export_steering.py, doctor.py, reddit tooling…).
Standalone CLIs. Not imported by the package.
├── training/
training/live
Learning-pipeline packs (principles, tdd, security-first) + generated data.
Edit packs/*.yaml. training/data/ is GITIGNORED (contains captured session data — never publish).
├── eval/
eval/live
Offline evaluation — does learned judgment beat static?
gate.py + eval_card.md. The honest-measurement harness.
├── claude-plugin/
claude-plugin/live
The Claude-Code plugin packaging (hooks, session-start).
PreToolUse/PostToolUse hooks that run the judgment layer passively.
├── guardrails/
guardrails/live
Org guardrail packs (YAML) — the never-auto-clear escalation lists.
force_push · prod_db_write · secret_access · rm_rf · external_send. Opt-in per loop lap.
└── migrations/
migrations/building
Database migrations (for the optional Org/sync layer).
Apply in order. The local-first core does not require them.

Root files — the contracts at the top of the tree

CLAUDE.mdRepo-level operating instructions the agent reads on every session.
AGENTS.mdAuto-written steering file — your Profile layer, re-readable by the loop.
project-map.tomlThis page's source of truth — the editable default for where things live.
pyproject.tomlPackage metadata + the sentigent entry point. Stdlib-first, no new deps.
README.mdThe front door — what Sentigent is and how to install it.
Edit project-map.toml to change the default.
The loop reads it via project_map.where_for(kind) before creating a file — so a new test goes to tests/, a new doc to docs/, a new loop module to sentigent/operator/. Change the paths to match your repo and the loop follows.
docs/PROJECT-MAP-STANDARD.md →