Living Architecture Control Plane for the AI-Dev Era
Project description
ArchSteer
Living Architecture Control Plane for the AI-Dev Era.
AI agents now write code faster than any architect can review, document, or govern it. Docs rot instantly, the real architecture is invisible, structural decisions get made silently, and intended architecture drifts with every edit. ArchSteer is the always-current architecture system of record + governance plane: it derives the real architecture from code, keeps living docs and ADRs auto-built, surfaces every major decision for the architect to ratify, enforces declared intent as code-level fitness functions, and steers AI agents to conform instead of replicating local slop.
Everything is a projection of one code-derived model — .archsteer/model.json.
.archsteer/model.json (single source of truth)
│
MAP ──── DOCUMENT ──── GOVERN ──── STEER ──── EVOLVE
model living docs fitness agent report.html
from + auto ADRs functions guardrails (drift/
source + diagrams + ratchet + (MCP) decisions)
Install
pip install archsteer # regex engine, zero native deps
pip install "archsteer[treesitter]" # optional native acceleration
Quickstart
archsteer init # scaffold .archsteer/ + seed intent (Express → Next.js + repository)
archsteer map # build model.json from source
archsteer docs # regenerate .archsteer/architecture.md (deterministic, Mermaid)
archsteer govern # conformance + drift score by rule
archsteer adr # draft ADRs for new structural decisions (architect-in-the-loop)
archsteer baseline # accept current debt — the ratchet
archsteer steer -f src/controllers/payment.js -t "add refund endpoint"
archsteer check # CI/pre-commit: fail on NET-NEW violations only
archsteer report # self-contained .archsteer/report.html
The three design guarantees
- Ratchet, not freeze.
archsteer checkblocks only net-new violations against a baseline — teams keep shipping features while debt can only shrink. - Conservative, architect-in-the-loop ADRs. Only external-boundary changes (new dependency, new datastore, new layer) draft an ADR — never internal reshuffles, never auto-committed.
- Sharp agent steering. Guardrails injected into
CLAUDE.md/AGENTS.mdare scoped to the files in play and point at the governing ADR — they don't dump the whole model into the context window.
Declaring intent — .archsteer/architecture.yaml
target: "Migrate Express + raw SQL to Next.js route handlers + the repository pattern"
layers: [route, controller, service, repository, model]
rules:
- id: no-raw-sql-outside-repository
type: required_layer_for_data_access
allowed_layers: [repository]
operations: [RAW]
severity: error
adr: .archsteer/adr/0001-repository-pattern.md
steer: "Wrap all queries in a repository under src/repositories/. No raw SQL elsewhere."
Rule types: required_layer_for_data_access, forbidden_import, forbidden_data_access,
forbidden_layer_edge.
CI / pre-commit
- GitHub Action:
.github/workflows/archsteer.yml(maps, drafts ADRs, runs the net-new gate, uploadsreport.html). - Git hook:
cp hooks/pre-commit .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit.
Try the demo
cd examples/demo-repo
archsteer init && archsteer map && archsteer report # open .archsteer/report.html
Roadmap
- Phase 2 — cloud control plane (Next.js + Supabase): multi-repo situation room with drift/decision time-series.
- Phase 3 —
archsteer mcp: an MCP server so agents query the live model + intent mid-edit. - Phase 4 — auth, org/repo model, billing.
Development
python3.11 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest -q
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file archsteer-0.1.0.tar.gz.
File metadata
- Download URL: archsteer-0.1.0.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30ac44edd99b5034c03ede503b70cd4ecc3e69ae81604edf3021fffa1f8e7dfe
|
|
| MD5 |
cee3c595bb8893cf29d5fe31abda32ec
|
|
| BLAKE2b-256 |
6db09a76a47a9cf2797c7c9c06c0cf3aca598ced6fba67356ac2eb83c63be3cc
|
File details
Details for the file archsteer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: archsteer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 32.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66761464dfb7e80c0eaef15e83842b75205cb3634e747d2d2e24752f603769cc
|
|
| MD5 |
7d6296b0800b0a4016cc1385ee23e2b0
|
|
| BLAKE2b-256 |
e070c2a026d2b4e8ef7f59df5293853d03b72a94817abadcb11a9db5fe0aef18
|