chore: remove 20 dead packages and strip gh/aws vendor knowledge #284
No reviewers
Labels
No labels
burndown-2026-06
sunday-sprint
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/umbra!284
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/remove-dead-packages"
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?
Surface drops 52 packages to 32 across two commits. Refs #282, and splits #283 out of it.
1. Dead packages (17)
coily is deprecated, which retires the packages only it consumed, plus a second tier nothing reaches.
coily-only (9):
cli/{decision,doctor,hook,hookcfg,profile,profiles,shim,sudo},cmd/cli-guard-hookno consumer (8):
cli/{allowlist,catalog},http/{ghidcache,ghratelimit,stscache},pkg/{agentclaim,fleetconfig,workdir}2. Vendor knowledge (3)
umbra is a policy-free engine; knowing a specific vendor's CLI is the consumer's job.
http/ghcache- GitHub response cache, pluspassthrough.WithReadCache/ReadCacheClassifier, its only wiring. ward never used the option.cli/awsgate- thearn:aws:iam::denylist, the aws verb vocabulary (describe-/list-/ls/scan), and theaws-readgate. Contradicted AGENTS.md's "ships no embedded denylist" outright.pkg/agentid- deprecated.Also removed the
only-readswhen-qualifier, whose semantics were defined by aws verb naming. No live guardfile in AOS or ward usedgate,aws-readoronly-reads;gateRegistrynow ships empty and every gate name fails closed until a consumer registers one.globMatchandpositionalswere lifted out of awsgate intocli/execverbas unexported helpers - they are generic and load-bearing for theany-arg/argNselectors AOS guardfiles use.Corrections to the #282 audit
The census was rebuilt from reverse imports rather than taken from the issue, and diverged both ways. Four packages #282 implicated are live and were kept:
http/ghcachecli/passthroughimports it and ward imports thathttp/specgen/embedfilego list, but emitted by the codegen template - all eight generated AOS CLIs import itpkg/stepflowcli/execverbandhttp/specverbboth import itpkg/agentidConversely
cli/allowlistandcli/catalogwere dead and were not on the issue's list at all.One more correction: #282 says AOS "ships zero cli-guard at runtime". True of the AOS repo, but the binaries specgen generates link 8 umbra packages -
cli/execverb,cli/verb,http/guardfile,http/specverb,http/specgen/embedfile,pkg/audit,pkg/config,pkg/valuesource. That matters for the module-path rename: every guardfile needs regenerating when the path changes.Verification
Full gate green -
make build,vet,tidy,test,lint(0 issues). Beyond that, all three consumer contracts were checked directly:replacespecgenoutput is byte-identical to a binary built from pristinemaingo.moddropsgolang.org/x/term(wascli/sudo's tty prompt).Not in this PR
.../cli-guard. The repo is renamed butgo.modis not. That is a breaking change for all three consumers' pins and wants its own PR.HasSSMbranch is live (AOS'sactions.kdlandforgejo.kdlusevalue ssm), so it needs a replacement rather than a deletion. Filed as #283.TODO(#282)incli/execverb/argv.go.positionalsstrips value-taking flags using aws's global-flag list. Dropping it silently weakens a live guard: withaws s3 ls --region us-east-1 s3://my-tfstate, losing the strip makesarg0resolve tous-east-1and AOS'sdeny-when arg0 matches *tfstate*fails open. Fix belongs in the guardfile, covered by #283.Docs
Deleted four orphaned docs (
deny-by-structure.md,profiles.md,fleetconfig.md,agent-claim.md), re-anchoredarchitecture.md's config/permission partition onpkg/config, and rewrote AGENTS.md's Safety section to describe the two guarded surfaces instead of the retired engine.godoc-current.txtregenerated.umbra is a policy-free engine; knowing a specific vendor's CLI is the consumer's job. Surface drops 35 -> 32. Removed: http/ghcache GitHub response cache, plus passthrough.WithReadCache and ReadCacheClassifier, its only wiring. ward never used the option. cli/awsgate AWS sensitive-read denial: the arn:aws:iam:: denylist, the aws verb vocabulary (describe-/list-/ls/scan), and the `aws-read` gate. Contradicted "ships no embedded denylist" outright. pkg/agentid deprecated. AOS's drift test compares its Python module against committed vectors and never invoked the Go port, so AOS CI is unaffected. Also gone: the `only-reads` when-qualifier, whose semantics were defined by aws verb naming. No live guardfile in AOS or ward used `gate`, `aws-read` or `only-reads`; gateRegistry now ships empty and every gate name fails closed until a consumer registers one. Kept as unexported helpers in cli/execverb (generic, and load-bearing for the `any-arg` / `argN` selectors AOS guardfiles use): globMatch and positionals, lifted out of awsgate. Verified: ward and mcp-beaver build against this tree, and specgen renders all eight AOS guardfiles byte-identically to before the removal. Refs #282 Co-authored-by: Kai Siren <coilysiren@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>