headron-software 3.60.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 HLIntel LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,224 @@
1
+ Metadata-Version: 2.4
2
+ Name: headron-software
3
+ Version: 3.60.1
4
+ Summary: AI coding-agent verification: tells agents which commands prove a change and fails the build when one was skipped. Polyglot; CLI, MCP server, git hooks, CI.
5
+ License-Expression: MIT
6
+ Project-URL: Homepage, https://github.com/HLIntel/Headron
7
+ Project-URL: Documentation, https://github.com/HLIntel/Headron/blob/main/llms.txt
8
+ Project-URL: Issues, https://github.com/HLIntel/Headron/issues
9
+ Project-URL: Source, https://github.com/HLIntel/Headron
10
+ Project-URL: Agent entry, https://raw.githubusercontent.com/HLIntel/Headron/main/.agent/bootstrap.json
11
+ Project-URL: LLM instructions, https://raw.githubusercontent.com/HLIntel/Headron/main/llms.txt
12
+ Project-URL: Changelog, https://github.com/HLIntel/Headron/blob/main/docs/VERSIONING.md
13
+ Keywords: headron,headron-software,headron-layer-intelligence,hlintel,engineering-atlas,polyglot,contract-verification,policy-as-code,ai-agents,ai-coding-agents,mcp,llm,agent-harness,code-verification,developer-tools,static-analysis,supply-chain-security,claude-code,codex,github-copilot,agents-md
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Topic :: Software Development :: Quality Assurance
18
+ Classifier: Topic :: Software Development :: Testing
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Requires-Dist: pyyaml<7,>=6.0.3
24
+ Requires-Dist: defusedxml<0.8,>=0.7.1
25
+ Provides-Extra: quality
26
+ Requires-Dist: ruff>=0.6; extra == "quality"
27
+ Provides-Extra: crosscheck
28
+ Requires-Dist: jsonschema>=4; extra == "crosscheck"
29
+ Dynamic: license-file
30
+
31
+ <!-- AGENTS: do not read this page breadth-first. Plug in: `python scripts/atlas.py port <file>`,
32
+ or parse .agent/bootstrap.json — one record back. -->
33
+ <!-- mcp-name: io.github.HLIntel/headron -->
34
+ <div align="center">
35
+ <h1>Headron Software</h1>
36
+ <img src="docs/media/headron-banner.png"
37
+ alt="Headron Software Development AI Agents."
38
+ width="992">
39
+ </div>
40
+
41
+ <p align="center">
42
+ <a href="https://github.com/HLIntel/Headron/actions/workflows/atlas-ci.yml"><img
43
+ src="https://github.com/HLIntel/Headron/actions/workflows/atlas-ci.yml/badge.svg?branch=main"
44
+ alt="Atlas CI"></a>
45
+ <a href="https://github.com/HLIntel/Headron/releases/latest"><img
46
+ src="https://img.shields.io/github/v/tag/HLIntel/Headron?label=contract"
47
+ alt="contract version"></a>
48
+ <a href="https://scorecard.dev/viewer/?uri=github.com/HLIntel/Headron"><img
49
+ src="https://api.securityscorecards.dev/projects/github.com/HLIntel/Headron/badge"
50
+ alt="OpenSSF Scorecard"></a>
51
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
52
+ </p>
53
+
54
+ <!-- BEGIN generated: headline (python scripts/atlas.py index --write) -->
55
+
56
+ **Protocol:** a change maps to proof; Headron selects evidence and the build enforces the verdict ([evidence](#what-it-measurably-buys)). Agents: [llms.txt](llms.txt); chats: [CHAT.md](CHAT.md).
57
+
58
+ <!-- END generated: headline -->
59
+
60
+ **Start:** [install/use](#quickstart) · [architecture](#where-it-fits) · [enterprise](#enterprise-and-companion-runtimes) · [agents](llms.txt) · [chat](CHAT.md) · [adapters](models/README.md)
61
+
62
+ ## Why this exists
63
+
64
+ An agent can report a change as done without running a single check. A check that never ran looks
65
+ the same as a check that passed. Headron Software closes that gap:
66
+
67
+ - **Every change maps to proof.** [`atlas.yaml`](atlas.yaml) lists the checks each kind of file owes,
68
+ and the gate runs them before the change is called finished.
69
+ - **Refusal happens at commit, for any agent.** A git hook runs the same check-only command whether
70
+ an autonomous agent, an IDE extension, a chat assistant, or a developer made the commit.
71
+ - **A skipped check is never a pass.** A missing tool is reported as `SKIP` and kept out
72
+ of the pass count. Gates report `PASS`, `FAIL` or `NOT RUN`.
73
+
74
+ <!-- BEGIN generated: proof-flow (python scripts/atlas.py index --write) -->
75
+
76
+ <p align="center">
77
+ <img src="docs/media/headron-proof-flow.svg" width="900"
78
+ alt="Headron Architecture: contract, targeted evidence, integrity audit, unified verdict.">
79
+ </p>
80
+
81
+ <!-- END generated: proof-flow -->
82
+
83
+ <!-- BEGIN generated: gate-example (python scripts/atlas.py index --write) -->
84
+
85
+ ```console
86
+ $ headron gate scripts/doctor.py
87
+ 1. formatter: ruff format --check scripts/doctor.py
88
+ 2. compiler_or_typechecker: python3 -c 'import ast,sys; [ast.parse(open(f, encoding="utf-8").read(), f) for f in sys.argv[1:]]' scripts/doctor.py
89
+ 3. unit_tests: pytest
90
+ ```
91
+
92
+ <!-- END generated: gate-example -->
93
+
94
+ ## Quickstart
95
+
96
+ <!-- BEGIN generated: install (python scripts/atlas.py index --write) -->
97
+
98
+ ```bash
99
+ # editable
100
+ git clone --depth 1 --branch v3.60.1 https://github.com/HLIntel/Headron ~/headron && uv tool install --editable ~/headron && headron doctor
101
+ ```
102
+
103
+ <!-- END generated: install -->
104
+
105
+ In your repository:
106
+
107
+ ```bash
108
+ cd path/to/your-repo && headron init # checks, universal multi-agent wiring, first run
109
+ headron verify && headron report # after a change: verdicts, then what is unverified
110
+ ```
111
+
112
+ With an impact map, `headron verify --changed` runs planted groups with moved dependencies or no record.
113
+ It speeds feedback; `headron verify` remains the final verdict.
114
+
115
+ Agents reach Headron Software through Headron MCP; the current `headron-mcp` command is read-only.
116
+ Enterprise execution gates and host approval hooks live in the companion runtime (HeadronOS).
117
+ No-shell chat: [CHAT.md](CHAT.md). Add Headron Software to another repository:
118
+ [CONSUMING](docs/CONSUMING.md).
119
+
120
+ ## Where it fits
121
+
122
+ - **Any agent or runtime.** One sovereign contract across all agent architectures (Google Antigravity,
123
+ Claude Code, Cursor, OpenAI Codex, OpenHands, Windsurf, Hermes, or bare CLI). The adapters in
124
+ [models/README.md](models/README.md) keep native tools intact while enforcing identical deterministic boundaries.
125
+ - **Any repository.** `headron init` wires a repository in one step. Consumers add the reusable CI
126
+ workflow from [CONSUMING](docs/CONSUMING.md) so the verdict on a laptop and in CI is the same command.
127
+ - **Any language we route.** Each language × check pair is either answered by a command or declared
128
+ as having no tool, so an unanswered pair cannot hide.
129
+
130
+ ## Enterprise and companion runtimes
131
+
132
+ Headron Software is the core product of HLIntel (Headron Layer Intelligence):
133
+
134
+ - **HeadronOS:** desktop workspace and local runtime.
135
+ - **Headron Web:** browser interface.
136
+ - **Headron Enterprise:** organizational offering across desktop and web.
137
+ - **Headron MCP:** integration connecting agents and developer tools.
138
+ - **HL.Verify:** shared verification capability.
139
+ - *Rules & Gates:* File-targeted proof obligations and pre-commit enforcers.
140
+ - *Failure Ledger:* Past agent failure catalog and regression seeds.
141
+ - **Mind API:** shared orchestration interface.
142
+
143
+ [Companion details](docs/CONSUMING.md#optional-hlintel-services). Product integration remains unproven.
144
+
145
+ <!-- BEGIN generated: port-example (python scripts/atlas.py index --write) -->
146
+
147
+ ```console
148
+ $ headron port scripts/doctor.py --line
149
+ ◉ scripts/doctor.py │ ⠟backend │ python │ ⌂scripts │ ✓3 │ ⚠1 │ → headron gate scripts/doctor.py
150
+ $ headron port scripts --line
151
+ ◎ scripts │ ⠟158 │ ⌂scripts │ → headron brainstorm
152
+ $ headron port . --line
153
+ ○ . │ ⠟187 ⠁4 ⠿4 │ → headron check
154
+ ```
155
+
156
+ <!-- END generated: port-example -->
157
+
158
+ ## What it measurably buys
159
+
160
+ What the recorded instruments have caught in real runs. They prove routing and refusals, not end-to-end task success
161
+ ([limits](docs/CERTIFICATION.md#what-the-numbers-do-not-prove)).
162
+
163
+ <!-- BEGIN generated: measured-benefits (python scripts/atlas.py index --write) -->
164
+
165
+ **Failures caught**
166
+
167
+ - **31/31** planted breaks refused at commit, across 20 of 40 languages. 20 more have an example its toolchain has not run; 0 have none yet (`enforce.py` v3.60.0).
168
+ - **694** mistake kinds planted in the tests, each refused.
169
+ - **122** failure shapes recorded from real runs: 209 sightings, 47 recurred, 99 now guarded, 23 host-only (3 of them recurred).
170
+ - **1076** refusals in daily use (37 shapes, 654 re-fired). Verify: 39 passed and 187 failed, of 485 runs. 112 of 115 lands armed; 701 lessons shown (`agents.py --field` v3.59.0).
171
+ - **24/24** solo commits clean with or without the hook; a planted broken commit is refused.
172
+ - **6** agent controls block, never warn: narrow_tools, sandbox, budget, approval, effects, audit.
173
+
174
+ **Cost**
175
+
176
+ - **1,729** tokens read before routing; 196 more documents (668 KiB) load only when a route names one.
177
+ - **89%** fewer tokens than pasting every tool list; 50% fewer than blind.
178
+ - **10 KiB** install: 1 module, 2 dependency — 8 in total with its own dependencies.
179
+
180
+ **Coverage**
181
+
182
+ - **360** language × check pairs (40 × 9), all answered: 144 by a command, 216 by a declared _no tool_, 0 silent.
183
+
184
+ <!-- END generated: measured-benefits -->
185
+
186
+ ## Agent contract
187
+
188
+ - **Discover:** `headron find <query>` for instant search (symbols, prefix, acronym, pointers); `headron sweep` for tier and shard topology.
189
+ - **Route:** `headron port <file>`, or parse [.agent/bootstrap.json](.agent/bootstrap.json); load only its names.
190
+ - **Orchestrate:** `headron mind --route <file>` for System 1 reflex vs System 2 deliberate execution; `headron mind --receipts` for verified audit trails.
191
+ - **Automate:** add `--json`; records follow [the output schema](tools/atlas-output.schema.json).
192
+ - **Before shell:** `headron shell --json "<cmd>"`; exit 3 means its verdict would be misread.
193
+ - **Land:** `python scripts/branchstate.py --land`; check `headron landed <branch>` before deletion.
194
+ - **Judge and report:** use the [judgment rungs](docs/systems/AGENT-HARNESS.md#judgment-rungs); file breaks with the [`headron` skill](skills/headron/SKILL.md).
195
+
196
+ ## Counts, computed
197
+
198
+ Generated on every build; `check` refuses drift. Machine-readable: [.agent/facts.json](.agent/facts.json).
199
+
200
+ <!-- BEGIN generated: repository-facts (python scripts/atlas.py index --write) -->
201
+
202
+ - **388** tool entries — across 40 manifests and 5 kinds, validated against `tools/tools.schema.json`
203
+ - **352** agreement edges — each a file tied to the declaration it answers for
204
+ - **94** instruments — each stating what it proves, what it does not, and what closes the gap
205
+ - **7** change classes — and 13 task profiles, in `atlas.yaml`
206
+ - **156** harness Python files — every one held by `lint` · `format` · `typecheck`
207
+ - **3.60.1** contract version — `VERSION`, asserted in 8 other files
208
+
209
+ <!-- END generated: repository-facts -->
210
+
211
+ ## Find your way
212
+
213
+ - **Every document:** [docs index](docs/INDEX.md) · [wiki](docs/wiki/README.md)
214
+ - **Languages:** [atlas](languages/ATLAS.md) · [routing](docs/wiki/CODE-ROUTING.md) · [verification](docs/VERIFY.md)
215
+ - **Agents:** [harness](docs/systems/AGENT-HARNESS.md) · [`.headron`](docs/HEADRON-LANGUAGE.md) · [runtimes](models/README.md)
216
+ - **Why a rule:** `headron why` · `headron failures` · [instruments](docs/INSTRUMENTS.md)
217
+ - **Security:** [policy](SECURITY.md) · [OpenSSF](docs/OPENSSF.md) · [contributing](CONTRIBUTING.md)
218
+
219
+ ## Project
220
+
221
+ Version tracks the **contract**, not content ([versioning](docs/VERSIONING.md)).
222
+ Built by **HLIntel LLC**, public on purpose ([about](ABOUT.md)). Contributions pass `headron verify`. [MIT License](LICENSE).
223
+
224
+ Updated: contract v3.60.1
@@ -0,0 +1,194 @@
1
+ <!-- AGENTS: do not read this page breadth-first. Plug in: `python scripts/atlas.py port <file>`,
2
+ or parse .agent/bootstrap.json — one record back. -->
3
+ <!-- mcp-name: io.github.HLIntel/headron -->
4
+ <div align="center">
5
+ <h1>Headron Software</h1>
6
+ <img src="docs/media/headron-banner.png"
7
+ alt="Headron Software Development AI Agents."
8
+ width="992">
9
+ </div>
10
+
11
+ <p align="center">
12
+ <a href="https://github.com/HLIntel/Headron/actions/workflows/atlas-ci.yml"><img
13
+ src="https://github.com/HLIntel/Headron/actions/workflows/atlas-ci.yml/badge.svg?branch=main"
14
+ alt="Atlas CI"></a>
15
+ <a href="https://github.com/HLIntel/Headron/releases/latest"><img
16
+ src="https://img.shields.io/github/v/tag/HLIntel/Headron?label=contract"
17
+ alt="contract version"></a>
18
+ <a href="https://scorecard.dev/viewer/?uri=github.com/HLIntel/Headron"><img
19
+ src="https://api.securityscorecards.dev/projects/github.com/HLIntel/Headron/badge"
20
+ alt="OpenSSF Scorecard"></a>
21
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
22
+ </p>
23
+
24
+ <!-- BEGIN generated: headline (python scripts/atlas.py index --write) -->
25
+
26
+ **Protocol:** a change maps to proof; Headron selects evidence and the build enforces the verdict ([evidence](#what-it-measurably-buys)). Agents: [llms.txt](llms.txt); chats: [CHAT.md](CHAT.md).
27
+
28
+ <!-- END generated: headline -->
29
+
30
+ **Start:** [install/use](#quickstart) · [architecture](#where-it-fits) · [enterprise](#enterprise-and-companion-runtimes) · [agents](llms.txt) · [chat](CHAT.md) · [adapters](models/README.md)
31
+
32
+ ## Why this exists
33
+
34
+ An agent can report a change as done without running a single check. A check that never ran looks
35
+ the same as a check that passed. Headron Software closes that gap:
36
+
37
+ - **Every change maps to proof.** [`atlas.yaml`](atlas.yaml) lists the checks each kind of file owes,
38
+ and the gate runs them before the change is called finished.
39
+ - **Refusal happens at commit, for any agent.** A git hook runs the same check-only command whether
40
+ an autonomous agent, an IDE extension, a chat assistant, or a developer made the commit.
41
+ - **A skipped check is never a pass.** A missing tool is reported as `SKIP` and kept out
42
+ of the pass count. Gates report `PASS`, `FAIL` or `NOT RUN`.
43
+
44
+ <!-- BEGIN generated: proof-flow (python scripts/atlas.py index --write) -->
45
+
46
+ <p align="center">
47
+ <img src="docs/media/headron-proof-flow.svg" width="900"
48
+ alt="Headron Architecture: contract, targeted evidence, integrity audit, unified verdict.">
49
+ </p>
50
+
51
+ <!-- END generated: proof-flow -->
52
+
53
+ <!-- BEGIN generated: gate-example (python scripts/atlas.py index --write) -->
54
+
55
+ ```console
56
+ $ headron gate scripts/doctor.py
57
+ 1. formatter: ruff format --check scripts/doctor.py
58
+ 2. compiler_or_typechecker: python3 -c 'import ast,sys; [ast.parse(open(f, encoding="utf-8").read(), f) for f in sys.argv[1:]]' scripts/doctor.py
59
+ 3. unit_tests: pytest
60
+ ```
61
+
62
+ <!-- END generated: gate-example -->
63
+
64
+ ## Quickstart
65
+
66
+ <!-- BEGIN generated: install (python scripts/atlas.py index --write) -->
67
+
68
+ ```bash
69
+ # editable
70
+ git clone --depth 1 --branch v3.60.1 https://github.com/HLIntel/Headron ~/headron && uv tool install --editable ~/headron && headron doctor
71
+ ```
72
+
73
+ <!-- END generated: install -->
74
+
75
+ In your repository:
76
+
77
+ ```bash
78
+ cd path/to/your-repo && headron init # checks, universal multi-agent wiring, first run
79
+ headron verify && headron report # after a change: verdicts, then what is unverified
80
+ ```
81
+
82
+ With an impact map, `headron verify --changed` runs planted groups with moved dependencies or no record.
83
+ It speeds feedback; `headron verify` remains the final verdict.
84
+
85
+ Agents reach Headron Software through Headron MCP; the current `headron-mcp` command is read-only.
86
+ Enterprise execution gates and host approval hooks live in the companion runtime (HeadronOS).
87
+ No-shell chat: [CHAT.md](CHAT.md). Add Headron Software to another repository:
88
+ [CONSUMING](docs/CONSUMING.md).
89
+
90
+ ## Where it fits
91
+
92
+ - **Any agent or runtime.** One sovereign contract across all agent architectures (Google Antigravity,
93
+ Claude Code, Cursor, OpenAI Codex, OpenHands, Windsurf, Hermes, or bare CLI). The adapters in
94
+ [models/README.md](models/README.md) keep native tools intact while enforcing identical deterministic boundaries.
95
+ - **Any repository.** `headron init` wires a repository in one step. Consumers add the reusable CI
96
+ workflow from [CONSUMING](docs/CONSUMING.md) so the verdict on a laptop and in CI is the same command.
97
+ - **Any language we route.** Each language × check pair is either answered by a command or declared
98
+ as having no tool, so an unanswered pair cannot hide.
99
+
100
+ ## Enterprise and companion runtimes
101
+
102
+ Headron Software is the core product of HLIntel (Headron Layer Intelligence):
103
+
104
+ - **HeadronOS:** desktop workspace and local runtime.
105
+ - **Headron Web:** browser interface.
106
+ - **Headron Enterprise:** organizational offering across desktop and web.
107
+ - **Headron MCP:** integration connecting agents and developer tools.
108
+ - **HL.Verify:** shared verification capability.
109
+ - *Rules & Gates:* File-targeted proof obligations and pre-commit enforcers.
110
+ - *Failure Ledger:* Past agent failure catalog and regression seeds.
111
+ - **Mind API:** shared orchestration interface.
112
+
113
+ [Companion details](docs/CONSUMING.md#optional-hlintel-services). Product integration remains unproven.
114
+
115
+ <!-- BEGIN generated: port-example (python scripts/atlas.py index --write) -->
116
+
117
+ ```console
118
+ $ headron port scripts/doctor.py --line
119
+ ◉ scripts/doctor.py │ ⠟backend │ python │ ⌂scripts │ ✓3 │ ⚠1 │ → headron gate scripts/doctor.py
120
+ $ headron port scripts --line
121
+ ◎ scripts │ ⠟158 │ ⌂scripts │ → headron brainstorm
122
+ $ headron port . --line
123
+ ○ . │ ⠟187 ⠁4 ⠿4 │ → headron check
124
+ ```
125
+
126
+ <!-- END generated: port-example -->
127
+
128
+ ## What it measurably buys
129
+
130
+ What the recorded instruments have caught in real runs. They prove routing and refusals, not end-to-end task success
131
+ ([limits](docs/CERTIFICATION.md#what-the-numbers-do-not-prove)).
132
+
133
+ <!-- BEGIN generated: measured-benefits (python scripts/atlas.py index --write) -->
134
+
135
+ **Failures caught**
136
+
137
+ - **31/31** planted breaks refused at commit, across 20 of 40 languages. 20 more have an example its toolchain has not run; 0 have none yet (`enforce.py` v3.60.0).
138
+ - **694** mistake kinds planted in the tests, each refused.
139
+ - **122** failure shapes recorded from real runs: 209 sightings, 47 recurred, 99 now guarded, 23 host-only (3 of them recurred).
140
+ - **1076** refusals in daily use (37 shapes, 654 re-fired). Verify: 39 passed and 187 failed, of 485 runs. 112 of 115 lands armed; 701 lessons shown (`agents.py --field` v3.59.0).
141
+ - **24/24** solo commits clean with or without the hook; a planted broken commit is refused.
142
+ - **6** agent controls block, never warn: narrow_tools, sandbox, budget, approval, effects, audit.
143
+
144
+ **Cost**
145
+
146
+ - **1,729** tokens read before routing; 196 more documents (668 KiB) load only when a route names one.
147
+ - **89%** fewer tokens than pasting every tool list; 50% fewer than blind.
148
+ - **10 KiB** install: 1 module, 2 dependency — 8 in total with its own dependencies.
149
+
150
+ **Coverage**
151
+
152
+ - **360** language × check pairs (40 × 9), all answered: 144 by a command, 216 by a declared _no tool_, 0 silent.
153
+
154
+ <!-- END generated: measured-benefits -->
155
+
156
+ ## Agent contract
157
+
158
+ - **Discover:** `headron find <query>` for instant search (symbols, prefix, acronym, pointers); `headron sweep` for tier and shard topology.
159
+ - **Route:** `headron port <file>`, or parse [.agent/bootstrap.json](.agent/bootstrap.json); load only its names.
160
+ - **Orchestrate:** `headron mind --route <file>` for System 1 reflex vs System 2 deliberate execution; `headron mind --receipts` for verified audit trails.
161
+ - **Automate:** add `--json`; records follow [the output schema](tools/atlas-output.schema.json).
162
+ - **Before shell:** `headron shell --json "<cmd>"`; exit 3 means its verdict would be misread.
163
+ - **Land:** `python scripts/branchstate.py --land`; check `headron landed <branch>` before deletion.
164
+ - **Judge and report:** use the [judgment rungs](docs/systems/AGENT-HARNESS.md#judgment-rungs); file breaks with the [`headron` skill](skills/headron/SKILL.md).
165
+
166
+ ## Counts, computed
167
+
168
+ Generated on every build; `check` refuses drift. Machine-readable: [.agent/facts.json](.agent/facts.json).
169
+
170
+ <!-- BEGIN generated: repository-facts (python scripts/atlas.py index --write) -->
171
+
172
+ - **388** tool entries — across 40 manifests and 5 kinds, validated against `tools/tools.schema.json`
173
+ - **352** agreement edges — each a file tied to the declaration it answers for
174
+ - **94** instruments — each stating what it proves, what it does not, and what closes the gap
175
+ - **7** change classes — and 13 task profiles, in `atlas.yaml`
176
+ - **156** harness Python files — every one held by `lint` · `format` · `typecheck`
177
+ - **3.60.1** contract version — `VERSION`, asserted in 8 other files
178
+
179
+ <!-- END generated: repository-facts -->
180
+
181
+ ## Find your way
182
+
183
+ - **Every document:** [docs index](docs/INDEX.md) · [wiki](docs/wiki/README.md)
184
+ - **Languages:** [atlas](languages/ATLAS.md) · [routing](docs/wiki/CODE-ROUTING.md) · [verification](docs/VERIFY.md)
185
+ - **Agents:** [harness](docs/systems/AGENT-HARNESS.md) · [`.headron`](docs/HEADRON-LANGUAGE.md) · [runtimes](models/README.md)
186
+ - **Why a rule:** `headron why` · `headron failures` · [instruments](docs/INSTRUMENTS.md)
187
+ - **Security:** [policy](SECURITY.md) · [OpenSSF](docs/OPENSSF.md) · [contributing](CONTRIBUTING.md)
188
+
189
+ ## Project
190
+
191
+ Version tracks the **contract**, not content ([versioning](docs/VERSIONING.md)).
192
+ Built by **HLIntel LLC**, public on purpose ([about](ABOUT.md)). Contributions pass `headron verify`. [MIT License](LICENSE).
193
+
194
+ Updated: contract v3.60.1
@@ -0,0 +1 @@
1
+ 3.60.1
@@ -0,0 +1,171 @@
1
+ # Headron — Python project declaration.
2
+ #
3
+ # WHY THIS FILE EXISTS (added at contract v1.2.0). `.ruff_cache/` and `.pytest_cache/` were already at the repo
4
+ # root: ruff and pytest have been RUN here for some time while nothing declared them, nothing
5
+ # configured them, and no gate enforced them. That is an undeclared habit, and an undeclared habit
6
+ # is the thing that silently changes. This file declares exactly what is true and REFUSES to
7
+ # declare what is not — because a config that names a gate nobody runs is the same skeleton this
8
+ # repo exists to prevent.
9
+ #
10
+ # MEASURED BEFORE WRITING ANY OF IT (instrument: `ruff check . --show-files`, `ruff format --check`,
11
+ # `python3 -m pytest -q`, all run at v1.2.0):
12
+ # - ruff saw exactly SIX Python files then; re-measured at v1.3.0 after the harness was
13
+ # split into modules, it sees 8. The count is not typed into a document: README's
14
+ # generated facts block computes it from scripts/*.py on every run.
15
+ # - `ruff check .` -> All checks passed, exit 0. Safe to enforce at that version, and enforced since.
16
+ # - `ruff format --check` -> enforced at 3.50.0, after one reviewed reformat; see [tool.ruff.format].
17
+ # - `python3 -m pytest -q` -> "no tests ran". Not adopted; see [tool.pytest] below.
18
+
19
+ # THIS FILE DESCRIBES THE HARNESS, NOT THE REPOSITORY.
20
+ # The atlas is polyglot and is not a Python project; Python is simply what the contract
21
+ # harness happens to be written in. A `pyproject.toml` at the root of a polyglot repository reads
22
+ # as "this is a Python package" to both humans and tooling, so the name says otherwise explicitly.
23
+ # The languages themselves declare their own authority in languages/<lang>/tools.yaml — that is
24
+ # the roster, and it is not Python-shaped. Only the harness CLI installs (see [project.scripts]); the atlas is pointed at.
25
+
26
+ [project]
27
+ name = "headron-software" # 3.53.0: the index name a stranger types; formerly headron-harness
28
+ dynamic = ["version"] # READ FROM VERSION, never typed here: a second declaration goes
29
+ # stale first. The installed version is the release tag the CLI
30
+ # fetches its atlas from when no root is declared.
31
+ description = "AI coding-agent verification: tells agents which commands prove a change and fails the build when one was skipped. Polyglot; CLI, MCP server, git hooks, CI."
32
+ readme = "README.md" # the PyPI page; carries the registry ownership marker (server.json)
33
+ license = "MIT"
34
+ requires-python = ">=3.11"
35
+ dependencies = ["pyyaml>=6.0.3,<7", "defusedxml>=0.7.1,<0.8"] # runtime deps, mirrored from scripts/requirements.txt
36
+ keywords = ["headron", "headron-software", "headron-layer-intelligence", "hlintel",
37
+ "engineering-atlas", "polyglot", "contract-verification", "policy-as-code", "ai-agents",
38
+ "ai-coding-agents", "mcp", "llm", "agent-harness", "code-verification", "developer-tools",
39
+ "static-analysis", "supply-chain-security", "claude-code", "codex", "github-copilot", "agents-md"]
40
+ classifiers = ["Development Status :: 4 - Beta", "Intended Audience :: Developers",
41
+ "Programming Language :: Python :: 3", "Topic :: Software Development :: Quality Assurance",
42
+ "Topic :: Software Development :: Testing", "Topic :: Scientific/Engineering :: Artificial Intelligence"]
43
+
44
+ # FOUND FROM AN INSTALL. Before 2.28.0 an installed package named no link at all, so an agent
45
+ # handed only `pip show` had no route back to the atlas, its entry or its instructions.
46
+ [project.urls]
47
+ Homepage = "https://github.com/HLIntel/Headron"
48
+ Documentation = "https://github.com/HLIntel/Headron/blob/main/llms.txt"
49
+ Issues = "https://github.com/HLIntel/Headron/issues"
50
+ Source = "https://github.com/HLIntel/Headron"
51
+ "Agent entry" = "https://raw.githubusercontent.com/HLIntel/Headron/main/.agent/bootstrap.json"
52
+ "LLM instructions" = "https://raw.githubusercontent.com/HLIntel/Headron/main/llms.txt"
53
+ Changelog = "https://github.com/HLIntel/Headron/blob/main/docs/VERSIONING.md"
54
+
55
+ [project.optional-dependencies]
56
+ quality = ["ruff>=0.6"]
57
+ crosscheck = ["jsonschema>=4"] # optional: the reference validator atlas_test and doctor use when present
58
+
59
+ # THE HARNESS IS INSTALLABLE; THE ATLAS IS POINTED AT. This is the whole external interface, and
60
+ # the split is deliberate. Shipping the policy content inside the wheel would create a second copy
61
+ # that ages exactly like a vendored tree — so the CLI resolves WHICH atlas it is running against
62
+ # (--atlas-root, HEADRON_ROOT, or a pinned `atlas: root:` in a consumer's .atlas.yaml) and PRINTS
63
+ # the rule that decided it. An explicit pin and a lucky fall-through are the same answer with very
64
+ # different trust, and `atlas --where` is how a consumer tells them apart.
65
+ [project.scripts]
66
+ headron = "atlas_cli:main"
67
+ headron-mcp = "atlas_cli:mcp_main" # Headron's commands as MCP tools on stdio, read-only
68
+ atlas = "atlas_cli:main" # the pre-3.7 name, still answered
69
+
70
+ [build-system]
71
+ requires = ["setuptools>=77"]
72
+ build-backend = "setuptools.build_meta"
73
+
74
+ [tool.setuptools.dynamic]
75
+ version = {file = "VERSION"}
76
+
77
+ [tool.setuptools]
78
+ package-dir = {"" = "scripts"}
79
+ # WHAT SHIPS: THE LAUNCHER, AND NOTHING THE ATLAS ALREADY HOLDS (3.7.0). Eleven harness modules used
80
+ # to ship, and `atlas check` then died in an install with "No module named 'identity'": the wheel
81
+ # carried a SECOND COPY of the harness, one version old or new against the pinned atlas it ran on,
82
+ # and missing whatever the check needed next. The launcher now resolves the atlas and runs THAT
83
+ # atlas's own scripts/, so a consumer's pinned ref governs the code as well as the data, and there
84
+ # is no roster of shipped modules left to drift. `atlas.py check` refuses any module added here.
85
+ py-modules = ["atlas_cli"]
86
+
87
+ [tool.ruff]
88
+ # benchmarks/agent holds DELIBERATELY broken task fixtures (a planted bug, a planted format fault): an agent
89
+ # is scored on fixing them, so linting them would fail the tree for doing its job.
90
+ extend-exclude = ["benchmarks/agent"]
91
+ # AN EXPLICIT PATH STILL OBEYS THE EXCLUDES (3.50.0): `ruff format scripts/atlasgen.py` reflowed an
92
+ # excluded file past the line cap, because ruff only applies excludes to paths it discovers.
93
+ force-exclude = true
94
+ # The harness and the Python examples. `languages/` holds prose and manifests, not a package.
95
+ include = ["scripts/*.py", "examples/**/*.py"]
96
+ line-length = 120 # matches .editorconfig; column width is a rule of thumb, never a
97
+ # gate — see docs/ENGINEERING-CONCEPTS.md
98
+
99
+ [tool.ruff.lint]
100
+ # ENFORCED, because it passed clean on the real tree at the version it was added (exit 0, zero
101
+ # findings), and the sweep is re-run on every change. A guard that
102
+ # fires on correct code gets disabled, so nothing is enabled here that this repo does not already
103
+ # satisfy. Widen deliberately, one rule family at a time, each with a clean sweep before it lands.
104
+ select = ["E", "F", "I", # pycodestyle errors, pyflakes, import sorting
105
+ # 2.28.0, each measured at ZERO findings first: comprehension idioms, a collapsed nested
106
+ # if, a returned condition, an any/all loop, a ternary over an if-block, and no else
107
+ # after return/raise/continue — guard clauses. PERF401 was measured too and REJECTED:
108
+ # 31 error-collecting loops with no safe fix, whose messages would hide in generators.
109
+ "C4", "SIM102", "SIM103", "SIM108", "SIM110", "RET505", "RET506", "RET508"]
110
+ ignore = ["E501"] # line length is governed by line-length above, not by a lint error
111
+
112
+ [tool.ruff.lint.isort]
113
+ split-on-trailing-comma = false # agrees with format.skip-magic-trailing-comma
114
+
115
+ [tool.ruff.lint.per-file-ignores]
116
+ # E402 is WRONG here, and the exemption carries its reason inline rather than being a snooze button.
117
+ # atlas_test.py must `sys.path.insert(0, ROOT/"scripts")` BEFORE `import atlas`, because the module
118
+ # it tests is not installed — you cannot import from a directory that is not yet on the path. Moving
119
+ # that import to the top, as the rule asks, breaks the harness. Scoped to the one file so the rule
120
+ # keeps protecting every other file.
121
+ "scripts/atlas_test.py" = ["E402"]
122
+ # Same reason, same shape: agent_test.py imports the three agent modules after putting
123
+ # scripts/ on the path, because they are not installed either. Two files, one reason,
124
+ # both scoped — never a repository-wide disable of a rule that is right everywhere else.
125
+ "scripts/agent_test.py" = ["E402"]
126
+
127
+ [tool.ruff.format]
128
+ # ENFORCED: CI runs `ruff format --check .`; the reformat landed as ONE commit, listed in
129
+ # .git-blame-ignore-revs so blame skips it. The exclusions below are files that formatting
130
+ # would push past the code_shape line cap; the cap is never raised, so each leaves this list
131
+ # only when a split brings it back under. The list only shrinks.
132
+ exclude = [
133
+ "scripts/agent_test.py",
134
+ "scripts/agentpolicy.py",
135
+ "scripts/atlas.py",
136
+ "scripts/atlas_guards_test.py",
137
+ "scripts/atlas_rules_test.py",
138
+ "scripts/atlas_test.py",
139
+ "scripts/atlasgen.py",
140
+ "scripts/atlasinv.py",
141
+ "scripts/knowledge.py",
142
+ ]
143
+ quote-style = "double"
144
+ skip-magic-trailing-comma = true
145
+
146
+ # [tool.pytest.ini_options] IS DELIBERATELY ABSENT.
147
+ # A bare `python3 -m pytest -q` here would collect only the planted failing tests under
148
+ # benchmarks/agent/ and read as broken code; the root conftest.py refuses it (exit 4) and names the
149
+ # real commands. A path on the command line still runs that fixture. The contract's mutation tests
150
+ # are a custom harness run directly:
151
+ #
152
+ # python3 scripts/atlas_test.py -> "atlas tests: N/N pass" with N asserted, exit 0
153
+ #
154
+ # declared in that file's own docblock and wired into .github/workflows/atlas-ci.yml. Declaring a
155
+ # pytest section now would add a second, empty test surface whose green exit means nothing. When a
156
+ # real pytest suite exists, configure it here and give it a failing case first.
157
+
158
+ [tool.basedpyright]
159
+ # THE PACK'S DECLARED TYPE CHECKER, RUN ON ITS OWN TREE (3.54.0): gate `typecheck`. Standard mode, the
160
+ # same files the lint gate reads plus fuzz/. Zero errors, no baseline: fix the type, never silence it.
161
+ include = ["scripts", "examples", "fuzz", "benchmarks"]
162
+ pythonVersion = "3.12"
163
+ typeCheckingMode = "standard"
164
+ reportMissingModuleSource = false
165
+ executionEnvironments = [
166
+ { root = "examples/python", extraPaths = ["examples/python", "scripts"] },
167
+ { root = "examples/webhooks", extraPaths = ["examples/webhooks", "scripts"] },
168
+ { root = "fuzz", extraPaths = ["fuzz", "scripts"] },
169
+ { root = "scripts", extraPaths = ["scripts"] },
170
+ { root = "benchmarks/agent/ratelimit", extraPaths = ["benchmarks/agent/ratelimit", "scripts"] },
171
+ ]
@@ -0,0 +1,240 @@
1
+ #!/usr/bin/env python3
2
+ """Resolve WHICH atlas, then run the contract's CLI against it.
3
+
4
+ A SEPARATE MODULE (2.11.0) because `atlascore` fixes the root at IMPORT time: this resolves it first,
5
+ exports it, then imports the harness. IT PRINTS THE RULE THAT DECIDED THE ROOT: a flag and a lucky
6
+ fall-through give one answer, trusted unequally. A CONSUMER PINS A REF, NEVER
7
+ `main`, in `.atlas.yaml`: its own diff reviews the pin.
8
+ WITH NO ROOT AND NO CHECKOUT (3.53.0) it fetches its own version's release, sha256-checked; else refuses.
9
+ THAT TREE IS LOCKED (3.54.0): read-only, re-hashed on every run; an edit refuses.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import hashlib
15
+ import io
16
+ import os
17
+ import re
18
+ import shutil
19
+ import sys
20
+ import tarfile
21
+ import tempfile
22
+ from pathlib import Path
23
+
24
+ import yaml
25
+
26
+ CONSUMER_CONFIG = ".atlas.yaml"
27
+ FLAG = "--atlas-root"
28
+ RELEASES = "https://github.com/HLIntel/Headron/releases/download"
29
+ INSTALLED_FROM = "the checkout this entry point was installed from"
30
+ MARKER = ".headron-release.sha256" # written last: an unmarked cache is never used
31
+ # REFUSE RATHER THAN INVENT (3.47.0): a key not known by name is refused at its file:line.
32
+ SECTIONS, PIN = ("atlas", "stack_tiers", "markdown_policy"), ("ref", "root", "task", "change_class", "process")
33
+
34
+
35
+ class ConfigError(ValueError):
36
+ """A root flag or consumer config this entry point refuses to guess about."""
37
+
38
+
39
+ def _keys(path: Path, node, what: str, allowed=()) -> dict:
40
+ if not isinstance(node, yaml.MappingNode):
41
+ raise ConfigError(f"{path}:{node.start_mark.line + 1}: {what} must be a mapping")
42
+ out = {}
43
+ for key, value in node.value:
44
+ name, line = key.value, key.start_mark.line + 1
45
+ if not isinstance(name, str) or name in out or allowed and name not in allowed:
46
+ raise ConfigError(f"{path}:{line}: bad or repeated key {name!r} in {what}; allowed: {allowed}")
47
+ out[name] = value
48
+ return out
49
+
50
+
51
+ def _pin(path: Path) -> dict[str, str]:
52
+ """The `atlas:` mapping of one config file, every key checked by name."""
53
+ try:
54
+ doc = yaml.compose(path.read_text(encoding="utf-8"))
55
+ except yaml.YAMLError as exc:
56
+ mark = getattr(exc, "problem_mark", None)
57
+ raise ConfigError(f"{path}:{mark.line + 1 if mark else 1}: not parseable YAML") from None
58
+ sections = _keys(path, doc, CONSUMER_CONFIG, SECTIONS) if doc else {}
59
+ pins = {name: _keys(path, node, name) for name, node in sections.items()}.get("atlas", {})
60
+ for name, value in pins.items():
61
+ if name not in PIN or value.tag != "tag:yaml.org,2002:str" or not value.value.strip():
62
+ raise ConfigError(f"{path}:{value.start_mark.line + 1}: atlas.{name}: want a string in {PIN}")
63
+ return {name: value.value for name, value in pins.items()}
64
+
65
+
66
+ def _config(start: Path) -> tuple[dict, Path | None]:
67
+ """The pin of the nearest .atlas.yaml at or above `start`; ConfigError on any doubt."""
68
+ for path in (d / CONSUMER_CONFIG for d in [start, *start.parents]):
69
+ if path.exists():
70
+ return _pin(path), path
71
+ return {}, None
72
+
73
+
74
+ def root_flag(argv: list[str]) -> tuple[str | None, int, int]:
75
+ """(value, index, width) of the root flag, or (None, -1, 0); refused with no value (3.47.0)."""
76
+ hits = [i for i, arg in enumerate(argv) if arg == FLAG or arg.startswith(FLAG + "=")]
77
+ if not hits:
78
+ return None, -1, 0
79
+ i, eq = hits[0], argv[hits[0]] != FLAG
80
+ value = argv[i].partition("=")[2] if eq else (argv[i + 1 :] or [""])[0]
81
+ if len(hits) > 1 or not value.strip() or value.startswith("-") and not eq:
82
+ raise ConfigError(f"{FLAG} needs one directory, given once; got {value!r}")
83
+ return value, i, 1 if eq else 2
84
+
85
+
86
+ CALLER_ENV = dict(os.environ)
87
+
88
+
89
+ def resolve_root(argv: list[str], cwd: Path) -> tuple[Path, str]:
90
+ """The atlas this invocation runs against, and the rule that decided it. In declared order."""
91
+ value = root_flag(argv)[0]
92
+ if value is not None:
93
+ return Path(value).expanduser().resolve(), f"explicit {FLAG}"
94
+ for var in ("HEADRON_ROOT", "CODE_DEVELOPMENT_ROOT"): # the second is the pre-3.0 name
95
+ if os.environ.get(var):
96
+ return Path(os.environ[var]).resolve(), f"{var} in the environment"
97
+ config, where = _config(cwd)
98
+ if where and config.get("root"):
99
+ base = (where.parent / config["root"]).resolve()
100
+ return base, f"root declared in {where.name} (ref {config.get('ref', 'unpinned')})"
101
+ return Path(__file__).resolve().parents[1], INSTALLED_FROM
102
+
103
+
104
+ class FetchError(RuntimeError):
105
+ """A release atlas refused: unreachable, unverified, or another version."""
106
+
107
+
108
+ def _get(url: str) -> bytes:
109
+ import urllib.request # noqa: PLC0415
110
+
111
+ try:
112
+ with urllib.request.urlopen(url, timeout=60) as r: # noqa: S310 — a fixed https base
113
+ return r.read()
114
+ except (OSError, ValueError) as exc:
115
+ raise FetchError(f"cannot download {url}: {exc}") from None
116
+
117
+
118
+ def _manifest(tree: Path) -> list[str]:
119
+ """`sha256sum` lines for every file under `tree` but the marker: `sha256sum -c` re-checks it by hand."""
120
+ files = sorted(p for p in tree.rglob("*") if p.is_file() and p.name != MARKER)
121
+ return [f"{hashlib.sha256(p.read_bytes()).hexdigest()} {p.relative_to(tree).as_posix()}" for p in files]
122
+
123
+
124
+ KEPT_RELEASES = 3 # a pruned release re-fetches
125
+
126
+
127
+ def _prune_releases(cache: Path) -> None:
128
+ for mark in sorted(cache.glob(f"atlas-*/{MARKER}"), key=os.path.getmtime)[:-KEPT_RELEASES]:
129
+ shutil.rmtree(mark.parent, ignore_errors=True)
130
+ shutil.rmtree(cache / "pycache", ignore_errors=True) # bytecode: rebuilt on import
131
+
132
+
133
+ def release_cache() -> Path:
134
+ return Path(os.environ.get("XDG_CACHE_HOME") or Path.home() / ".cache", "headron")
135
+
136
+
137
+ def fetch_atlas(version: str) -> Path:
138
+ """Release v<version>'s tree, cached or downloaded and sha256-checked; else FetchError."""
139
+ dest = release_cache() / f"atlas-{version}"
140
+ if (dest / MARKER).is_file():
141
+ changed = set((dest / MARKER).read_text().splitlines()[1:]) ^ set(_manifest(dest))
142
+ if changed:
143
+ path = min(changed).partition(" ")[2]
144
+ raise FetchError(f"{dest}: {path} changed after download; remove {dest} to fetch v{version} again")
145
+ return dest
146
+ name = f"headron-v{version}.tar.gz"
147
+ url = f"{RELEASES}/v{version}/{name}"
148
+ want = re.findall(
149
+ rf"^([0-9a-f]{{64}}) [ *]{re.escape(name)}$", _get(url + ".sha256").decode(errors="replace"), re.M
150
+ )
151
+ blob = _get(url)
152
+ if len(want) != 1 or hashlib.sha256(blob).hexdigest() != want[0]:
153
+ raise FetchError(f"{name}: sha256 is not its release's one digest {want}")
154
+ dest.parent.mkdir(parents=True, exist_ok=True)
155
+ work = Path(tempfile.mkdtemp(dir=dest.parent))
156
+ try:
157
+ with tarfile.open(fileobj=io.BytesIO(blob)) as tar:
158
+ tops = {m.name.split("/")[0] for m in tar}
159
+ tar.extractall(work, filter="data") # refuses absolute, climbing and escaping links
160
+ tree = work / tops.pop()
161
+ if tops or (tree / "VERSION").read_text().strip() != version:
162
+ raise FetchError(f"{name} is not one tree of contract {version}")
163
+ (tree / MARKER).write_text("".join(f"{line}\n" for line in [f"{want[0]} {name}", *_manifest(tree)]))
164
+ for path in tree.rglob("*"):
165
+ if path.is_file():
166
+ path.chmod(path.stat().st_mode & ~0o222) # read-only, marker too: an edit fails where it is made
167
+ shutil.rmtree(dest, ignore_errors=True) # an unmarked, interrupted unpack
168
+ os.replace(tree, dest)
169
+ _prune_releases(dest.parent)
170
+ except (tarfile.TarError, OSError, TypeError) as exc: # TypeError: no data filter before 3.11.4
171
+ raise FetchError(f"{name} could not be unpacked: {exc}") from None
172
+ finally:
173
+ shutil.rmtree(work, ignore_errors=True)
174
+ return dest
175
+
176
+
177
+ def _resolved(argv: list[str]) -> tuple:
178
+ try:
179
+ root, rule = resolve_root(argv, Path.cwd())
180
+ if rule != INSTALLED_FROM or (root / "atlas.yaml").exists():
181
+ return root, rule
182
+ if os.environ.get("HEADRON_NO_FETCH") == "1":
183
+ return root, rule + "; HEADRON_NO_FETCH=1"
184
+ from importlib.metadata import version # noqa: PLC0415
185
+
186
+ root = fetch_atlas(version("headron-software"))
187
+ # Bytecode goes beside the locked tree, never into it, here and in every child process.
188
+ os.environ["PYTHONPYCACHEPREFIX"] = sys.pycache_prefix = str(root.parent / "pycache")
189
+ return root, "its own release, sha256-checked and locked"
190
+ except (ConfigError, FetchError, ImportError) as exc:
191
+ print(f"refused: {exc}", file=sys.stderr)
192
+ return None, None
193
+
194
+
195
+ def _enter(argv: list[str], script: str) -> tuple:
196
+ """Resolve, export, put scripts/ first on the path; (None, None) if refused."""
197
+ root, rule = _resolved(argv)
198
+ if root is None:
199
+ return None, None
200
+ # THE HARNESS COMES FROM THE ATLAS, NEVER THE WHEEL (3.7.0): a bundled copy is a second implementation.
201
+ if not (root / "atlas.yaml").exists() or not (root / "scripts" / script).exists():
202
+ hint = f"point at a checkout with {FLAG}, HEADRON_ROOT, or `atlas: root:` in {CONSUMER_CONFIG}"
203
+ print(f"no atlas with scripts/{script} at {root} (resolved by: {rule})\n{hint}", file=sys.stderr)
204
+ return None, None
205
+ os.environ["HEADRON_ROOT"] = os.environ["CODE_DEVELOPMENT_ROOT"] = str(root)
206
+ sys.path.insert(0, str(root / "scripts"))
207
+ return root, rule
208
+
209
+
210
+ def main(argv: list[str] | None = None) -> int:
211
+ argv = list(sys.argv[1:] if argv is None else argv)
212
+ root, rule = _enter(argv, "atlas.py")
213
+ if root is None:
214
+ return 2
215
+ _, index, width = root_flag(argv)
216
+ del argv[index : index + width]
217
+ if "--where" in argv:
218
+ print(f"atlas root: {root}\nresolved by: {rule}")
219
+ # an agent handed only an install still finds where to start
220
+ print(f"agent entry: {root / '.agent' / 'bootstrap.json'} (then: headron gate <file>)")
221
+ return 0
222
+ import atlas # noqa: PLC0415 — deliberate: the root must be exported before this import
223
+
224
+ return atlas.main(argv or ["check"])
225
+
226
+
227
+ def mcp_main() -> int:
228
+ """`headron-mcp`: the same root resolution, then serve the resolved atlas's MCP route on stdio."""
229
+ argv = sys.argv[1:]
230
+ if "--where" in argv:
231
+ return main(argv)
232
+ if _enter(argv, "headron_mcp.py")[0] is None:
233
+ return 2
234
+ import headron_mcp # noqa: PLC0415 — as in main
235
+
236
+ return headron_mcp.serve()
237
+
238
+
239
+ if __name__ == "__main__":
240
+ sys.exit(main())
@@ -0,0 +1,224 @@
1
+ Metadata-Version: 2.4
2
+ Name: headron-software
3
+ Version: 3.60.1
4
+ Summary: AI coding-agent verification: tells agents which commands prove a change and fails the build when one was skipped. Polyglot; CLI, MCP server, git hooks, CI.
5
+ License-Expression: MIT
6
+ Project-URL: Homepage, https://github.com/HLIntel/Headron
7
+ Project-URL: Documentation, https://github.com/HLIntel/Headron/blob/main/llms.txt
8
+ Project-URL: Issues, https://github.com/HLIntel/Headron/issues
9
+ Project-URL: Source, https://github.com/HLIntel/Headron
10
+ Project-URL: Agent entry, https://raw.githubusercontent.com/HLIntel/Headron/main/.agent/bootstrap.json
11
+ Project-URL: LLM instructions, https://raw.githubusercontent.com/HLIntel/Headron/main/llms.txt
12
+ Project-URL: Changelog, https://github.com/HLIntel/Headron/blob/main/docs/VERSIONING.md
13
+ Keywords: headron,headron-software,headron-layer-intelligence,hlintel,engineering-atlas,polyglot,contract-verification,policy-as-code,ai-agents,ai-coding-agents,mcp,llm,agent-harness,code-verification,developer-tools,static-analysis,supply-chain-security,claude-code,codex,github-copilot,agents-md
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Topic :: Software Development :: Quality Assurance
18
+ Classifier: Topic :: Software Development :: Testing
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Requires-Dist: pyyaml<7,>=6.0.3
24
+ Requires-Dist: defusedxml<0.8,>=0.7.1
25
+ Provides-Extra: quality
26
+ Requires-Dist: ruff>=0.6; extra == "quality"
27
+ Provides-Extra: crosscheck
28
+ Requires-Dist: jsonschema>=4; extra == "crosscheck"
29
+ Dynamic: license-file
30
+
31
+ <!-- AGENTS: do not read this page breadth-first. Plug in: `python scripts/atlas.py port <file>`,
32
+ or parse .agent/bootstrap.json — one record back. -->
33
+ <!-- mcp-name: io.github.HLIntel/headron -->
34
+ <div align="center">
35
+ <h1>Headron Software</h1>
36
+ <img src="docs/media/headron-banner.png"
37
+ alt="Headron Software Development AI Agents."
38
+ width="992">
39
+ </div>
40
+
41
+ <p align="center">
42
+ <a href="https://github.com/HLIntel/Headron/actions/workflows/atlas-ci.yml"><img
43
+ src="https://github.com/HLIntel/Headron/actions/workflows/atlas-ci.yml/badge.svg?branch=main"
44
+ alt="Atlas CI"></a>
45
+ <a href="https://github.com/HLIntel/Headron/releases/latest"><img
46
+ src="https://img.shields.io/github/v/tag/HLIntel/Headron?label=contract"
47
+ alt="contract version"></a>
48
+ <a href="https://scorecard.dev/viewer/?uri=github.com/HLIntel/Headron"><img
49
+ src="https://api.securityscorecards.dev/projects/github.com/HLIntel/Headron/badge"
50
+ alt="OpenSSF Scorecard"></a>
51
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
52
+ </p>
53
+
54
+ <!-- BEGIN generated: headline (python scripts/atlas.py index --write) -->
55
+
56
+ **Protocol:** a change maps to proof; Headron selects evidence and the build enforces the verdict ([evidence](#what-it-measurably-buys)). Agents: [llms.txt](llms.txt); chats: [CHAT.md](CHAT.md).
57
+
58
+ <!-- END generated: headline -->
59
+
60
+ **Start:** [install/use](#quickstart) · [architecture](#where-it-fits) · [enterprise](#enterprise-and-companion-runtimes) · [agents](llms.txt) · [chat](CHAT.md) · [adapters](models/README.md)
61
+
62
+ ## Why this exists
63
+
64
+ An agent can report a change as done without running a single check. A check that never ran looks
65
+ the same as a check that passed. Headron Software closes that gap:
66
+
67
+ - **Every change maps to proof.** [`atlas.yaml`](atlas.yaml) lists the checks each kind of file owes,
68
+ and the gate runs them before the change is called finished.
69
+ - **Refusal happens at commit, for any agent.** A git hook runs the same check-only command whether
70
+ an autonomous agent, an IDE extension, a chat assistant, or a developer made the commit.
71
+ - **A skipped check is never a pass.** A missing tool is reported as `SKIP` and kept out
72
+ of the pass count. Gates report `PASS`, `FAIL` or `NOT RUN`.
73
+
74
+ <!-- BEGIN generated: proof-flow (python scripts/atlas.py index --write) -->
75
+
76
+ <p align="center">
77
+ <img src="docs/media/headron-proof-flow.svg" width="900"
78
+ alt="Headron Architecture: contract, targeted evidence, integrity audit, unified verdict.">
79
+ </p>
80
+
81
+ <!-- END generated: proof-flow -->
82
+
83
+ <!-- BEGIN generated: gate-example (python scripts/atlas.py index --write) -->
84
+
85
+ ```console
86
+ $ headron gate scripts/doctor.py
87
+ 1. formatter: ruff format --check scripts/doctor.py
88
+ 2. compiler_or_typechecker: python3 -c 'import ast,sys; [ast.parse(open(f, encoding="utf-8").read(), f) for f in sys.argv[1:]]' scripts/doctor.py
89
+ 3. unit_tests: pytest
90
+ ```
91
+
92
+ <!-- END generated: gate-example -->
93
+
94
+ ## Quickstart
95
+
96
+ <!-- BEGIN generated: install (python scripts/atlas.py index --write) -->
97
+
98
+ ```bash
99
+ # editable
100
+ git clone --depth 1 --branch v3.60.1 https://github.com/HLIntel/Headron ~/headron && uv tool install --editable ~/headron && headron doctor
101
+ ```
102
+
103
+ <!-- END generated: install -->
104
+
105
+ In your repository:
106
+
107
+ ```bash
108
+ cd path/to/your-repo && headron init # checks, universal multi-agent wiring, first run
109
+ headron verify && headron report # after a change: verdicts, then what is unverified
110
+ ```
111
+
112
+ With an impact map, `headron verify --changed` runs planted groups with moved dependencies or no record.
113
+ It speeds feedback; `headron verify` remains the final verdict.
114
+
115
+ Agents reach Headron Software through Headron MCP; the current `headron-mcp` command is read-only.
116
+ Enterprise execution gates and host approval hooks live in the companion runtime (HeadronOS).
117
+ No-shell chat: [CHAT.md](CHAT.md). Add Headron Software to another repository:
118
+ [CONSUMING](docs/CONSUMING.md).
119
+
120
+ ## Where it fits
121
+
122
+ - **Any agent or runtime.** One sovereign contract across all agent architectures (Google Antigravity,
123
+ Claude Code, Cursor, OpenAI Codex, OpenHands, Windsurf, Hermes, or bare CLI). The adapters in
124
+ [models/README.md](models/README.md) keep native tools intact while enforcing identical deterministic boundaries.
125
+ - **Any repository.** `headron init` wires a repository in one step. Consumers add the reusable CI
126
+ workflow from [CONSUMING](docs/CONSUMING.md) so the verdict on a laptop and in CI is the same command.
127
+ - **Any language we route.** Each language × check pair is either answered by a command or declared
128
+ as having no tool, so an unanswered pair cannot hide.
129
+
130
+ ## Enterprise and companion runtimes
131
+
132
+ Headron Software is the core product of HLIntel (Headron Layer Intelligence):
133
+
134
+ - **HeadronOS:** desktop workspace and local runtime.
135
+ - **Headron Web:** browser interface.
136
+ - **Headron Enterprise:** organizational offering across desktop and web.
137
+ - **Headron MCP:** integration connecting agents and developer tools.
138
+ - **HL.Verify:** shared verification capability.
139
+ - *Rules & Gates:* File-targeted proof obligations and pre-commit enforcers.
140
+ - *Failure Ledger:* Past agent failure catalog and regression seeds.
141
+ - **Mind API:** shared orchestration interface.
142
+
143
+ [Companion details](docs/CONSUMING.md#optional-hlintel-services). Product integration remains unproven.
144
+
145
+ <!-- BEGIN generated: port-example (python scripts/atlas.py index --write) -->
146
+
147
+ ```console
148
+ $ headron port scripts/doctor.py --line
149
+ ◉ scripts/doctor.py │ ⠟backend │ python │ ⌂scripts │ ✓3 │ ⚠1 │ → headron gate scripts/doctor.py
150
+ $ headron port scripts --line
151
+ ◎ scripts │ ⠟158 │ ⌂scripts │ → headron brainstorm
152
+ $ headron port . --line
153
+ ○ . │ ⠟187 ⠁4 ⠿4 │ → headron check
154
+ ```
155
+
156
+ <!-- END generated: port-example -->
157
+
158
+ ## What it measurably buys
159
+
160
+ What the recorded instruments have caught in real runs. They prove routing and refusals, not end-to-end task success
161
+ ([limits](docs/CERTIFICATION.md#what-the-numbers-do-not-prove)).
162
+
163
+ <!-- BEGIN generated: measured-benefits (python scripts/atlas.py index --write) -->
164
+
165
+ **Failures caught**
166
+
167
+ - **31/31** planted breaks refused at commit, across 20 of 40 languages. 20 more have an example its toolchain has not run; 0 have none yet (`enforce.py` v3.60.0).
168
+ - **694** mistake kinds planted in the tests, each refused.
169
+ - **122** failure shapes recorded from real runs: 209 sightings, 47 recurred, 99 now guarded, 23 host-only (3 of them recurred).
170
+ - **1076** refusals in daily use (37 shapes, 654 re-fired). Verify: 39 passed and 187 failed, of 485 runs. 112 of 115 lands armed; 701 lessons shown (`agents.py --field` v3.59.0).
171
+ - **24/24** solo commits clean with or without the hook; a planted broken commit is refused.
172
+ - **6** agent controls block, never warn: narrow_tools, sandbox, budget, approval, effects, audit.
173
+
174
+ **Cost**
175
+
176
+ - **1,729** tokens read before routing; 196 more documents (668 KiB) load only when a route names one.
177
+ - **89%** fewer tokens than pasting every tool list; 50% fewer than blind.
178
+ - **10 KiB** install: 1 module, 2 dependency — 8 in total with its own dependencies.
179
+
180
+ **Coverage**
181
+
182
+ - **360** language × check pairs (40 × 9), all answered: 144 by a command, 216 by a declared _no tool_, 0 silent.
183
+
184
+ <!-- END generated: measured-benefits -->
185
+
186
+ ## Agent contract
187
+
188
+ - **Discover:** `headron find <query>` for instant search (symbols, prefix, acronym, pointers); `headron sweep` for tier and shard topology.
189
+ - **Route:** `headron port <file>`, or parse [.agent/bootstrap.json](.agent/bootstrap.json); load only its names.
190
+ - **Orchestrate:** `headron mind --route <file>` for System 1 reflex vs System 2 deliberate execution; `headron mind --receipts` for verified audit trails.
191
+ - **Automate:** add `--json`; records follow [the output schema](tools/atlas-output.schema.json).
192
+ - **Before shell:** `headron shell --json "<cmd>"`; exit 3 means its verdict would be misread.
193
+ - **Land:** `python scripts/branchstate.py --land`; check `headron landed <branch>` before deletion.
194
+ - **Judge and report:** use the [judgment rungs](docs/systems/AGENT-HARNESS.md#judgment-rungs); file breaks with the [`headron` skill](skills/headron/SKILL.md).
195
+
196
+ ## Counts, computed
197
+
198
+ Generated on every build; `check` refuses drift. Machine-readable: [.agent/facts.json](.agent/facts.json).
199
+
200
+ <!-- BEGIN generated: repository-facts (python scripts/atlas.py index --write) -->
201
+
202
+ - **388** tool entries — across 40 manifests and 5 kinds, validated against `tools/tools.schema.json`
203
+ - **352** agreement edges — each a file tied to the declaration it answers for
204
+ - **94** instruments — each stating what it proves, what it does not, and what closes the gap
205
+ - **7** change classes — and 13 task profiles, in `atlas.yaml`
206
+ - **156** harness Python files — every one held by `lint` · `format` · `typecheck`
207
+ - **3.60.1** contract version — `VERSION`, asserted in 8 other files
208
+
209
+ <!-- END generated: repository-facts -->
210
+
211
+ ## Find your way
212
+
213
+ - **Every document:** [docs index](docs/INDEX.md) · [wiki](docs/wiki/README.md)
214
+ - **Languages:** [atlas](languages/ATLAS.md) · [routing](docs/wiki/CODE-ROUTING.md) · [verification](docs/VERIFY.md)
215
+ - **Agents:** [harness](docs/systems/AGENT-HARNESS.md) · [`.headron`](docs/HEADRON-LANGUAGE.md) · [runtimes](models/README.md)
216
+ - **Why a rule:** `headron why` · `headron failures` · [instruments](docs/INSTRUMENTS.md)
217
+ - **Security:** [policy](SECURITY.md) · [OpenSSF](docs/OPENSSF.md) · [contributing](CONTRIBUTING.md)
218
+
219
+ ## Project
220
+
221
+ Version tracks the **contract**, not content ([versioning](docs/VERSIONING.md)).
222
+ Built by **HLIntel LLC**, public on purpose ([about](ABOUT.md)). Contributions pass `headron verify`. [MIT License](LICENSE).
223
+
224
+ Updated: contract v3.60.1
@@ -0,0 +1,11 @@
1
+ LICENSE
2
+ README.md
3
+ VERSION
4
+ pyproject.toml
5
+ scripts/atlas_cli.py
6
+ scripts/headron_software.egg-info/PKG-INFO
7
+ scripts/headron_software.egg-info/SOURCES.txt
8
+ scripts/headron_software.egg-info/dependency_links.txt
9
+ scripts/headron_software.egg-info/entry_points.txt
10
+ scripts/headron_software.egg-info/requires.txt
11
+ scripts/headron_software.egg-info/top_level.txt
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ atlas = atlas_cli:main
3
+ headron = atlas_cli:main
4
+ headron-mcp = atlas_cli:mcp_main
@@ -0,0 +1,8 @@
1
+ pyyaml<7,>=6.0.3
2
+ defusedxml<0.8,>=0.7.1
3
+
4
+ [crosscheck]
5
+ jsonschema>=4
6
+
7
+ [quality]
8
+ ruff>=0.6
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+