ECO_HOOK_SKIPS lists typos, but that skip cannot reach the third-party typos hook #1155

Closed
opened 2026-08-20 08:19:45 +00:00 by coilyco-ops · 0 comments
Member

scripts/apply-agentic-os-hooks.py declares:

# Per-repo hook opt-outs. eco-* repos vendor the Strange Loop Games Unity SDK,
# whose comments and prose are not ours to lint. lore is a docs-only slice.
ECO_HOOK_SKIPS = {"code-comments", "typos"}

hook_ids_for() filters DEFAULT_HOOK_IDS, and typos is not in that list. It is the crate-ci/typos block, emitted unconditionally by managed_block(). So the code-comments half of the skip works and the typos half is dead: every eco-* repo gets the typos hook regardless of the declared intent.

Found while working coilyco-gaming/eco-app#316. eco-app now carries a _typos.toml and 13 in-source typo fixes, which is only reachable work because the skip never fired.

The decision this needs

Two coherent outcomes, and they point opposite ways:

Honor the skip. Omit the typos repo block when hook_ids_for(repo) drops typos. Consistent with the stated intent, but eco-app loses a check that just caught real typos in its own Python (Overrideable, mis-label, a thr local), and eco-app does not actually vendor the Unity SDK. The stated rationale names a tree that lives in eco-mods' unity-embedded/, not in every eco-* repo.

Drop typos from the set. Keep the hook fleet-wide and let each repo declare its own exclusions in _typos.toml, which is what eco-app now does and eco-mods already did. Removes the misleading dead entry and matches how the two eco repos with a working config already behave.

The second reads better to me: the skip is repo-prefix-shaped while the actual concern is tree-shaped, and _typos.toml targets the tree directly. But it is your call, and either way the current state (declared skip, no effect) should not stand.

Related: #1152 restores --force-exclude on the same generated hook, without which _typos.toml [files] extend-exclude is inert under pre-commit.

`scripts/apply-agentic-os-hooks.py` declares: ```python # Per-repo hook opt-outs. eco-* repos vendor the Strange Loop Games Unity SDK, # whose comments and prose are not ours to lint. lore is a docs-only slice. ECO_HOOK_SKIPS = {"code-comments", "typos"} ``` `hook_ids_for()` filters `DEFAULT_HOOK_IDS`, and `typos` is not in that list. It is the `crate-ci/typos` block, emitted unconditionally by `managed_block()`. So the `code-comments` half of the skip works and the `typos` half is dead: every eco-* repo gets the typos hook regardless of the declared intent. Found while working coilyco-gaming/eco-app#316. eco-app now carries a `_typos.toml` and 13 in-source typo fixes, which is only reachable work because the skip never fired. ## The decision this needs Two coherent outcomes, and they point opposite ways: **Honor the skip.** Omit the typos repo block when `hook_ids_for(repo)` drops `typos`. Consistent with the stated intent, but eco-app loses a check that just caught real typos in its own Python (`Overrideable`, `mis-label`, a `thr` local), and eco-app does not actually vendor the Unity SDK. The stated rationale names a tree that lives in eco-mods' `unity-embedded/`, not in every eco-* repo. **Drop `typos` from the set.** Keep the hook fleet-wide and let each repo declare its own exclusions in `_typos.toml`, which is what eco-app now does and eco-mods already did. Removes the misleading dead entry and matches how the two eco repos with a working config already behave. The second reads better to me: the skip is repo-prefix-shaped while the actual concern is tree-shaped, and `_typos.toml` targets the tree directly. But it is your call, and either way the current state (declared skip, no effect) should not stand. Related: #1152 restores `--force-exclude` on the same generated hook, without which `_typos.toml` `[files] extend-exclude` is inert under pre-commit.
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#1155
No description provided.