Bounded Agent Framework
This repository defines a repo-local, enforceable framework for using AI sub-agents as bounded workers.
This is not an application. This is not an orchestration service. This is not an autonomy experiment.
This is infrastructure.
What this system is
- Agents are roles defined in Markdown
- Agents are instantiated per model call
- Nothing is persistent
- Nothing runs automatically
- Nothing is trusted without artifacts
The framework exists to:
- force correct task decomposition
- prevent scope creep
- require evidence for completion
- make agent behavior reproducible and auditable
Core invariants
-
Repo-local
- All agent rules, schemas, and tools live in the repo
- No systemwide installs
- No hidden dependencies
-
Separation of concerns
- Agent roles (Markdown) change frequently
- Schemas change occasionally
- Tooling changes rarely
-
Artifacts over prose
- Diffs, logs, commands, tests are required
- Narrative text is secondary
-
Orchestrator ≠ implementer
- Orchestrator plans and validates
- Workers produce changes
- Single-writer rule per scope
-
No schema, no run
- Tasks and outputs must validate
- Invalid packets are rejected
Repository layout (expected)
agents/ roles/ contracts/ checklists/ tools/ logs/ reports/ adr/
Usage summary
- Create a task packet (YAML)
- Validate it against schema
- Run the agent with role + task
- Collect output packet + artifacts
- Validate output
- Gate before merge
Tooling baseline: use agent-governance>=1.0.10.
Repo introspection
agentctl init scans the current repo to generate a policy overlay plus an
evidence-backed report. It never edits repo files unless --write is set, and
it never calls an LLM.
Bootstrap policy block
Use agentctl bootstrap to author or update the AGENTS.md policy block from the
canonical role registry. It is preview-only unless --write is provided.
What it never does:
- no network access
- no repo mutation (except writing the three outputs when
--writeis set) - no heuristic guesses without a cited file + line range
Outputs (when --write):
.agents/generated/AGENTS.repo.overlay.yaml.agents/generated/init_report.md.agents/generated/init_facts.json
At runtime, the orchestrator merges the overlay with the base policy to add repo-specific verify commands and risk paths before dispatching work. This lets one global role set adapt to local tooling without changing the core policy.
Deterministic + auditable:
- each detected fact includes a source file and line range
- output ordering is stable for diff-friendly review
- dry-runs show planned writes without touching disk
AGENTS.md managed blocks
agentctl bootstrap --write manages only the contract block and the ## agent init behavior section. Everything else in AGENTS.md is preserved.
The managed region is delimited by markers:
<!-- AGENTCTL:BEGIN -->
...policy YAML...
<!-- AGENTCTL:END -->
Re-running bootstrap is idempotent: a second run should produce no diff.
Schema loading
agentctl validate loads JSON Schemas from the installed package (agent_governance.contracts). This keeps validation repo-agnostic.
For development/testing only, you can override schema loading from the repo by setting:
- AGENT_GOVERNANCE_SCHEMA_OVERRIDE=1
When enabled, schemas are loaded from:
- agents/contracts/*.schema.json
Do not enable the override in CI.
Status
- Governance loop is now closed.
- Policy is machine-safe, idempotent, and enforceable.
- Override path is documented and clearly non-production.
Update checks
The CLI can optionally warn if a newer agent_governance version exists.
Defaults: once per 24h, skipped in CI, and never blocks command execution.
Disable with --update-check=off or AGENT_UPDATE_CHECK=off. Repos may set
update_check: off in agents/repo_profile.yaml to fully disable network use.
This system replaces trust with structure.
Release files for agent-governance 1.0.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agent_governance-1.0.10.tar.gz | 31.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_governance-1.0.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.8 kB
Release files / agent_governance-1.0.10.tar.gz
| Download URL | agent_governance-1.0.10.tar.gz |
|---|---|
| Size | 31.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5332feaa3e439aa799b372e0dd439a17cb6175322ea31ddbf4c4de211bca383f
|
|
BLAKE2b-256 checksum How to use checksums |
d01122d2fb5bcdce0065be5eb5defaaa4c1042931a41c29df9c4fcd48d82c138
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0
|
Release files / agent_governance-1.0.10-py3-none-any.whl
| Download URL | agent_governance-1.0.10-py3-none-any.whl |
|---|---|
| Size | 26.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a34ef6ba9f2e0ce666cdc4d500ef1dff9327e53926362e1fd494974cb72db7f
|
|
BLAKE2b-256 checksum How to use checksums |
913f9d6c47ac9fa7eaefec112b18bf39218240620166327c4784f476cffdf405
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0
|