Repository navigation
AGENTIC.a2ml instructs agents to 'Never use AGPL' — contradicts Rules 3, 4 and 5 #646
Description
An agent instruction that contradicts three licence rules
Every generated .machine_readable/6a2/AGENTIC.a2ml carries this line in its
"never do this" list:
# - Never use AGPL license (use MPL-2.0)
AGENTIC.a2ml is read by AI agents as a behavioural constraint. This one is now wrong
three times over.
What it contradicts
| Rule | Says | The instruction says |
|---|---|---|
| Rule 3 | Projects co-developed with the owner's son are AGPL-3.0-or-later |
never use AGPL |
| Rule 4 | 007 — the Agent Meta-Language — is AGPL-3.0-or-later |
never use AGPL |
| Rule 5 (added 2026-08-26) | Games are AGPL-3.0-or-later as a class |
never use AGPL |
The sharpest case
007-lang's LICENSE is the GNU Affero General Public License. Its own agent
instructions say - Never use AGPL-3.0.
So the single repo that Rule 4 names as AGPL instructs every agent reading it to never
use AGPL. An agent doing as it is told would "correct" the licence the policy requires.
Scale
- 899 local
AGENTIC.a2mlfiles carry the line - GitHub code search returns 100+ hits across 82 repos (capped, so the live figure is
higher) - It appears alongside
ECOSYSTEM.a2ml,META.a2ml,NEUROSYM.a2ml,PLAYBOOK.a2ml,
STATE.a2ml— a generated6a2manifest set, not hand-written
Why this is filed rather than swept
Same reasoning the pmpl-to-mpl-sweep-runbook §7a gives, and it was right there:
Fix at the source, not 236 times. Doing manual edits invites immediate re-drift on
the next scaffold run.
899 edits would be undone by the next 6a2 regeneration. The generator must be found and
fixed first. It is not in rsr-template-repo, scaffoldia, or
rsr-julia-library-template-repo — all three return 404 for that path — so the emitter is
somewhere else and needs locating.
Suggested wording once the source is found
# - Never change an existing file's licence (owner-only, manual — see LICENCE-POLICY A2)
# - New code defaults to MPL-2.0; AGPL-3.0-or-later is CORRECT under Rules 3, 4 and 5
That preserves the intent — MPL is the default — without instructing agents to undo
deliberate policy.
Related
This is the third instance today of the same failure mode: an automated artefact whose
self-description has drifted from what the estate actually wants.
scaffoldia's rhodibot ran asedsweep rewriting AGPL headers — fixed, fix(ci): rhodibot must never relicense AGPL — warn only scaffoldia#36hyperpolymath/.githubcarried a funding file pointing at the wrong org — fixed, fix: remove shadowed CODEOWNERS + stray funding file, repair dependabot stub .github#9- and this
Horizon: 899 is a count of local checkouts under hyper-repos/ and meta-repos/, which
include vendored sub-copies; the number of distinct estate-authored files is lower. The
GitHub figure of 82 repos is capped at 100 results and is a floor, not a total.
Activity
fix(licence): clear PMPL residue from the files that stay in canon (#648
hyperpolymath commentedon Aug 26, 2026
Investigated 2026-08-26 — there is no generator, and this issue's remediation premise is inverted
1. Where the files come from
hyperpolymath/rsr-template-repoships.machine_readable/descriptiles/AGENTIC.a2mlverbatim. It is not written by code; it is copied by GitHub's "Use this template", andjust repo-init's token-substitution pass does not touch the[agent-constraints]comment. Repois_template: true, pushed today.6a2→descriptileson 2026-06-29 (3b5b5de, PR #128). A 404 on the old path was read as repo-wide absence. Re-verified live:.machine_readable/6a2/AGENTIC.a2ml→ 404,.machine_readable/descriptiles/AGENTIC.a2ml→ 1,772 bytes, offending line at line 24.The only code that actually writes the file is
gitbot-fleet/robot-repo-automaton/src/skeleton.rs:59-76— and it is dormant:grep -rn 'skeleton' gitbot-fleet/.github/workflows/*.ymlreturns zero hits, and no workflow inrsr-template-reporeferences it either, despiteskeleton.rs's own doc comment claiming "rsr-template-repo's drift-CI runsrobot-repo-automaton skeleton check .". That CI does not exist.The bulk of the population came from a chain of one-off estate sweeps, not an emitter — 101 of the files were added by a single 2026-03-16 commit (
chore: restructure 6a2ml files into .machine_readable/6a2/).2.⚠️ The remediation premise here is backwards
This issue argues that manual fixes "would be undone by the next
6a2regeneration". There is no regeneration. The population is static. A sweep would hold.What must be fixed at source — to stop new repos inheriting — is three files, and only three:
rsr-template-repo/.machine_readable/descriptiles/AGENTIC.a2mlgitbot-fleet/robot-repo-automaton/templates/skeleton/.machine_readable/6a2/AGENTIC.a2mlstandards/agentic-a2ml/examples/comprehensive.a2ml3. The real problem is not staleness, it is contradiction
The line reads
# - Never use AGPL license (use MPL-2.0).LICENCE-POLICY.adocnow defines five rules and three of them mandateAGPL-3.0-or-later: Rule 3 (co-developed), Rule 4 (network-deployed services), Rule 5 (games).An agent obeying this line inside a games repo would "correct" a deliberately AGPL work to MPL-2.0 — the exact regression a bot in
scaffoldiawas caught scheduled to perform and had removed.4. Corrected count
The figure of 899 is wrong. Measured by enumerate-then-filter over both accounts:
AGENTIC.a2mljulia-ecosystem) returnedtruncated: true.Files actually carrying the line: 646, not 899. The 899 appears to be a count of files at the
6a2path, not of files containing the line.Wording variants across all 646:
The 253 PMPL copies are a second defect this issue does not mention — they instruct agents toward a licence that no longer exists.
5. Homogeneity, and the good news
141 distinct byte-contents across 1,018 local files — a small number of template vintages plus a long tail of hand-edits. Top classes: 125 × 34-line MPL, 115 × 34-line PMPL, 86 × 24-line MPL, 61 × 51-line (= template HEAD).
Unfilled placeholders are essentially absent. All 1,018 scanned for
{{…}},${…},PROJECT_NAME,REPLACE_ME,PENDING,TODO,FIXMEand others: the only{{andTODOhits are prose about placeholders.rsr-template-repo/scripts/check-no-placeholders.shis doing its job.One real residue:
hyperpolymath/proof-burrowerstill carriesproject = "rsr-template-repo"at line 8 — the sole unsubstituted self-name in the population.Not checked
Non-default branches;
julia-ecosystem's full tree (truncated); local dirs outsidehyper-repos/+meta-repos/; the sibling descriptiles (ANCHOR.a2ml,CLADE.a2ml,VARIANT.a2ml), which were neither counted nor hashed.hyperpolymath commentedon Aug 31, 2026
Re-measured 2026-08-31. Numbers stale — the fix is half-shipped and stalled.
Sources: all fixed. rsr-template-repo (note: the file moved to
machine-readable/descriptiles/AGENTIC.a2ml, no leading dot), the gitbot-fleet skeleton, standards' ownagentic-a2ml/examples/comprehensive.a2ml, and 007-lang (which now states its AGPL ruling explicitly — the sharpest contradiction is cured). Population is static: nothing regenerates the old wording any more.Deployed copies: a direct-push sweep ran 2026-08-28 00:03–05:33Z, alphabetical ("fix: AGENTIC licence line + a2ml-validate-action repin" commits, referencing this issue), and stopped after
launch-scaffolder, beforelithoglyph— never resumed. Remote sampling brackets the boundary exactly: 20/20 repos in the swept range carry the new wording; 24/24 in the unswept range still carry "Never use AGPL", including every metadatastician repo checked. Of 158 remotely-verifiable canonical paths, 95 remain; extrapolated against the sweep's 309-repo scope, roughly 170–185 repos (~55–60%) still carry the contradictory line (extrapolation, labelled as such — the local disk is too stale to trust on this issue; remote is the only honest plane).This issue is now the tracker for the stalled remainder. Next step: resume the direct-push sweep at
lithoglyph, alphabetical to the end, then all of metadatastician, using the same commit wording. The 08-26 census figures (646 files / 350 repos) are obsolete and should not be re-quoted.