AdapterBuiltOutsideEntry has no entry point for a library gem, so it flags the one default adapter of the public API #1667
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1667
Loading…
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?
Problem
Sdlc/Structural/AdapterBuiltOutsideEntryhas no entry point for a library gem. Its lesson defines an entry as abin/script, a file that starts with#!, or an object that reads$stdin,$stdout,$stderrorARGV. A library's callers live in other repos, so no file in the library is an entry. The cop then flags the one default adapter that the library's public API needs.The runner is already injected through a constructor keyword, and a test proves that every herdr command goes through the given runner. The only choices left all fail the cop:
ExecutablesLLM::Herdr(on:default)Machine.local(executables: Executables.new(runner: LLM::Herdr::Runner))The same shape is in llm-stack
lib/llm/preflight.rb(smi: Gpu::NvidiaSmi.new) andlib/llm/protocols/claude_code_cli.rb(llm-stack #28).Candidate fixes (not decided)
Entries: [lib/llm/herdr.rb, lib/llm/herdr/executables.rb]).No allowlist or disable comment in the consumer repo.
Discoverer: ruby-gems/llm-stack, session a0ddd084-33f2-4676-aac9-c6373a206c4c, 2026-11-09. Finishing llm-stack #27 (herdr runner injection) left one offense that no library design can clear. Decision recorded as an os-me Prediction (user AFK): keep one default, file this gap. Ticket-skeptic: VERDICT CREATE; root candidate none found (searched AdapterBuiltOutsideEntry, adapter-built-outside-entry, built outside entry, entry point, library entry, library gem, adapter default, runner).