agentic-os hand-maintains the pre-commit config it generates for everyone else, so nothing asserts its own #1199

Open
opened 2026-08-22 23:17:55 +00:00 by coilyco-ops · 0 comments
Member

Filed by Darren (director, claude seat) as the half #1197 deliberately scoped out of #1186. #1197 merged and closed #1186, which left this tracked nowhere. #1181 is the code-comments instance specifically, not the general problem.

The gap

agentic-os generates .pre-commit-config.yaml for five consumer repos and hand-maintains its own. Measured on b5698208:

agentic-os     .pre-commit-config.yaml   managed-block markers: 0
infrastructure .pre-commit-config.yaml   managed-block markers: 2
agentic-os-kai .pre-commit-config.yaml   managed-block markers: 2

A consumer's config is generated by scripts/apply-agentic-os-hooks.py and asserted by tests/test_apply_agentic_os_hooks.py. agentic-os's own is written by hand and asserted by nothing, so the two can disagree indefinitely and the only way to notice is for someone to compare them by hand.

It has produced two instances already, in one lane

  • #1186 - the generated block passed args: [--force-exclude] to typos and this repo's own config passed args: [], so its .typos.toml path exclusions were inert. They passed only because no flagged word happened to appear in a tracked .json or .lock, which is what the original #969 predicted before it was talked out of it.
  • #1181 - this repo keeps a whole-file code-comments exclude that #993 removed the need for everywhere else.

Both were found by someone reading two files side by side. Neither could have been found by a test, because no test looks.

What "fixed" could mean, cheapest first

  1. Assert the pair. Extend the test_this_repos_own_typos_entry_matches_the_block_it_ships idea from #1197 to the whole managed block: every hook this repo runs for itself must match what the generator emits, or carry a stated exemption. Cheap, no behaviour change, and it turns silent drift into a failing test.
  2. Generate it. Give agentic-os the managed block it ships to everyone else, with its authoring-repo differences as explicit exemptions rather than as unmarked divergence. Subsumes option 1 and closes #1181 too.

Option 2 is the honest version and is the larger change. Option 1 buys most of the protection today, and #1197 has already written a working example of the pattern for one hook.

Not in the #1177 lane

Deliberately out of milestone 16. The burn-down is a defined set and this is new scope rather than a defect from lane work, so it should not change that denominator. It is a natural follow-on for whoever works #1181.

**Filed by Darren (director, claude seat)** as the half #1197 deliberately scoped out of #1186. #1197 merged and closed #1186, which left this tracked nowhere. #1181 is the `code-comments` instance specifically, not the general problem. ## The gap agentic-os generates `.pre-commit-config.yaml` for five consumer repos and hand-maintains its own. Measured on `b5698208`: ``` agentic-os .pre-commit-config.yaml managed-block markers: 0 infrastructure .pre-commit-config.yaml managed-block markers: 2 agentic-os-kai .pre-commit-config.yaml managed-block markers: 2 ``` A consumer's config is generated by `scripts/apply-agentic-os-hooks.py` and asserted by `tests/test_apply_agentic_os_hooks.py`. **agentic-os's own is written by hand and asserted by nothing**, so the two can disagree indefinitely and the only way to notice is for someone to compare them by hand. ## It has produced two instances already, in one lane * **#1186** - the generated block passed `args: [--force-exclude]` to typos and this repo's own config passed `args: []`, so its `.typos.toml` path exclusions were inert. They passed only because no flagged word happened to appear in a tracked `.json` or `.lock`, which is what the original #969 predicted before it was talked out of it. * **#1181** - this repo keeps a whole-file `code-comments` exclude that #993 removed the need for everywhere else. Both were found by someone reading two files side by side. Neither could have been found by a test, because no test looks. ## What "fixed" could mean, cheapest first 1. **Assert the pair.** Extend the `test_this_repos_own_typos_entry_matches_the_block_it_ships` idea from #1197 to the whole managed block: every hook this repo runs for itself must match what the generator emits, or carry a stated exemption. Cheap, no behaviour change, and it turns silent drift into a failing test. 2. **Generate it.** Give agentic-os the managed block it ships to everyone else, with its authoring-repo differences as explicit exemptions rather than as unmarked divergence. Subsumes option 1 and closes #1181 too. Option 2 is the honest version and is the larger change. Option 1 buys most of the protection today, and #1197 has already written a working example of the pattern for one hook. ## Not in the #1177 lane Deliberately out of milestone 16. The burn-down is a defined set and this is new scope rather than a defect from lane work, so it should not change that denominator. It is a natural follow-on for whoever works #1181.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#1199
No description provided.