Skip to content

agnostic guard: compound provider words, source symlinks, and RFC tool names (#417 follow-up) #419

Closed

Description

@apotema

Three P2 findings from Codex's last pass on #417 (01a39b3, the agnosticism guard src/agnostic_guard_test.zig on development), after that PR had used its three review-fix rounds.

  1. Compound and package forms (around line 308). Steamworks and libsdl2-dev tokenize as Steamworks / libsdl2; CamelCase splitting doesn't extract steam, and numeric-root classification reduces the latter only to libsdl. Add the known compound/package forms (steamworks, libsdl, libsdl2, …) or recognise conventional affixes (lib prefix, works/sdk/dev suffixes) before classifying.
  2. Source symlinks (around line 526). Where the walker reports .sym_link, a committed link such as src/cli/steam.zig is skipped, so both its forbidden path and its target's contents bypass the guard. Either follow source-shaped links safely (stat the target, scan it, still path-check the link name) or fail on encountering one.
  3. Provider tool and SDK names from the RFC (around line 42). The RFC assigns butler to the itch provider and UIKit glue to the iOS provider, but neither butler nor uikit is forbidden. Add the tool/SDK identities the RFC enumerates (butler, uikit, steamworks, steamcmd, xcodebuild, adb, emcc, …) and recompute the allowlist.

Each needs a self-test that asserts the mechanism (an ASCII twin passes) in the existing style.

Part of #406 (enforcement).

https://claude.ai/code/session_01R2K5sJDL5Msn1uRTkybiDP

Activity

  1. apotema commented on Sep 26, 2026

    @apotema
    ContributorAuthor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions