scrub consumer-specific references (coily/coilysiren) so the library is fully generic #49
Labels
No labels
burndown-2026-06
sunday-sprint
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/cli-guard#49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
cli-guard is the generic security-boundary framework: "every package must be importable from a different binary without consumer-specific types or defaults leaking in" (AGENTS.md). The code mostly honors that for types, but comments, test fixtures, and rationale refs are saturated with one consumer's name (
coily) and its issue tracker (coilysiren/coily#N). Scrub all of it so the library reads as company-agnostic and mentions nothing specific to a single consumer.Audit (grep, go + md, excluding the repo's own module path)
coily/coilysiren/coilyco-bridgereferences.coily#144,coilysiren/coily#270,https://github.com/coilysiren/coily/issues/136, etc.coilyword mentions in comments/code ("coily does X", "the way coily ...").coilysiren/coilyas the sample owner/repo (e.g.dispatch/dispatch_test.go).Plan
coily-> "the consumer" / "a consumer"; drop consumer issue-refs, or map to a cli-guard issue where an equivalent exists, else keep the rationale in generic wording.example-org/example-repo,primary/sib-a), so tests assert behavior, not a consumer's repo names.forgejo.coilysiren.me/coilyco-flight-deck/cli-guard(its identity, not a consumer reference).Acceptance
grep -rE 'coilysiren|\bcoily\b|coilyco-bridge'over*.go/*.mdreturns only the self module path.make build/make test/make vetgreen; godoc pin regenerated for any changed exported doc comment.Why
The fleet now spans multiple consumers (coily, ward, o2r, ...). A framework that narrates itself in one consumer's terms is harder for the others to adopt and reads as proprietary. Generic-by-default is the contract this repo already claims.
Finding: the scrub is two distinct parts
Auditing surfaced that "scrub consumer references" splits into a safe cosmetic part and a functional refactor part. Conflating them is dangerous.
Part A - cosmetic (safe, mechanical)
coily#130,coilysiren/coily#145, github/forgejo issue URLs -> drop or generic wording.coilysiren/coilyas sample owner/repo -> neutralexample-org/example-repo.Part B - functional consumer-specific DEFAULTS baked into cli-guard (a real leak, NOT a scrub)
cli-guard hardcodes
.coilyas a functional default in several places:config/paths.go:GlobalDirName = ".coily",LocalDirName = ".coily".stscache/stscache.go,scope/scope.go,ghidcache/ghidcache.go:filepath.Join(home, ".coily", "cache").dispatch/interactive.go:/tmp/coily-dispatch-queue.verb/verb.go: user-facing error string "coily refuses to forward".Implications:
.coilynaively breaks coily (it reads~/.coily).~/.coily/cachetoo - a cross-consumer leak that proves the point: the framework should not own a consumer's dir name.Proposed slicing