task build has been broken since cmd/supervisor was deleted in c117634, and CI stayed green the whole time.
check ran lint, test and vet. All three walk ./..., which enumerates the packages that exist. A build target naming a deleted package is invisible to every one of them — go vet ./... cannot complain about a directory it never visits.
The gate was complete with respect to the code present, and blind to the code referenced.
build is now part of check, with that reasoning written above it.
Removed — all pointing at binaries that no longer exist
Target
Pointed at
supervisor:dev, supervisor:build
./cmd/supervisor
supervisor:test:smoke
curls a server nothing can start
smoke:routing + scripts/smoke-routing.sh
./cmd/routing
supervisor: line in Procfile
also still set SUPERVISOR_MODELS_FILE at the file deleted in #116
build now aggregates hyperguild:build + ingestion:build — the two binaries that actually exist.
A false lead, recorded so nobody re-investigates it
My first sweep flagged ./cmd/server and ./cmd/frontmatterlint as missing too. They are not. Their tasks set dir: ingestion, and both exist under ingestion/cmd/.
Any checker for this class has to resolve a task's working directory before judging its paths, or it reports two false positives for every true one. I ran that sweep across the whole estate expecting a systemic hole and found only this repo and dma-cli — so this is a local defect, not an estate-wide one.
task: [build] go build -o /dev/null ./cmd/supervisor
stat .../cmd/supervisor: directory not found
check_exit=201
bin/ is already in .gitignore, so adding build to the gate leaves no artifacts in git status.
Not addressed
#120's third item — internal/config has zero non-test callers, the same defect class as #116 itself. RoutingConfig is the only written record of the routing pod's configuration contract, so deleting it is a judgement call rather than a correction. Left open on #120.
Closes #120 — items 2 and the suggested gate fix.
## The finding is the gate, not the path
`task build` has been broken since `cmd/supervisor` was deleted in c117634, and **CI stayed green the whole time.**
`check` ran `lint`, `test` and `vet`. All three walk `./...`, which enumerates the packages that **exist**. A build target naming a **deleted** package is invisible to every one of them — `go vet ./...` cannot complain about a directory it never visits.
The gate was complete with respect to the code present, and blind to the code *referenced*.
`build` is now part of `check`, with that reasoning written above it.
## Removed — all pointing at binaries that no longer exist
| Target | Pointed at |
|---|---|
| `supervisor:dev`, `supervisor:build` | `./cmd/supervisor` |
| `supervisor:test:smoke` | curls a server nothing can start |
| `smoke:routing` + `scripts/smoke-routing.sh` | `./cmd/routing` |
| `supervisor:` line in `Procfile` | also still set `SUPERVISOR_MODELS_FILE` at the file deleted in #116 |
`build` now aggregates `hyperguild:build` + `ingestion:build` — the two binaries that actually exist.
## A false lead, recorded so nobody re-investigates it
My first sweep flagged `./cmd/server` and `./cmd/frontmatterlint` as missing too. **They are not.** Their tasks set `dir: ingestion`, and both exist under `ingestion/cmd/`.
Any checker for this class has to resolve a task's working directory before judging its paths, or it reports two false positives for every true one. I ran that sweep across the whole estate expecting a systemic hole and found only this repo and `dma-cli` — so this is a local defect, not an estate-wide one.
## Verification
```
task build exit 0 (bin/hyperguild, bin/ingestion-server)
task check exit 0 0 FAIL
```
Flip-tested — reintroducing a dead build target:
```
task: [build] go build -o /dev/null ./cmd/supervisor
stat .../cmd/supervisor: directory not found
check_exit=201
```
`bin/` is already in `.gitignore`, so adding `build` to the gate leaves no artifacts in `git status`.
## Not addressed
#120's third item — `internal/config` has zero non-test callers, the same defect class as #116 itself. `RoutingConfig` is the only written record of the routing pod's configuration contract, so deleting it is a judgement call rather than a correction. Left open on #120.
---
_Created via git-mcp on behalf of @mathias_
Closes#120 (items 2 and the suggested gate fix).
`task build` has been broken since `cmd/supervisor` was deleted in c117634, and
CI stayed green the entire time. That combination is the finding: not that a
path went stale, but that nothing could notice.
`check` ran lint, test and vet. All three walk `./...`, which enumerates the
packages that EXIST. A build target naming a DELETED package is invisible to
every one of them — `go vet ./...` cannot complain about a directory it never
visits. The gate was complete with respect to the code present and blind to the
code referenced.
`build` is now part of `check`, with that reasoning written above it.
Flip-tested: reintroducing `go build ./cmd/supervisor` takes `task check` to
exit 201, naming the missing directory.
Removed, all pointing at binaries that no longer exist:
- `supervisor:dev` and `supervisor:build` -> ./cmd/supervisor
- `supervisor:test:smoke` -> curls a server nothing can start
- `smoke:routing` + scripts/smoke-routing.sh -> ./cmd/routing
- the `supervisor:` line in Procfile, which also still pointed
SUPERVISOR_MODELS_FILE at the file deleted in #116
`build` now aggregates `hyperguild:build` + `ingestion:build`, the two binaries
that actually exist.
A false lead worth recording so it is not re-investigated: a first sweep flagged
`./cmd/server` and `./cmd/frontmatterlint` as missing too. They are not — their
tasks set `dir: ingestion`, and both exist under `ingestion/cmd/`. Any checker
for this class has to resolve a task's working directory before judging its
paths, or it reports two false positives for every true one.
Not addressed here: #120's third item, that `internal/config` has zero non-test
callers. `RoutingConfig` is the only written record of the routing pod's
configuration contract, so deleting it is a judgement call rather than a
correction.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
mathias
merged commit 6e449b464c into main2026-09-16 22:36:49 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #120 — items 2 and the suggested gate fix.
The finding is the gate, not the path
task buildhas been broken sincecmd/supervisorwas deleted inc117634, and CI stayed green the whole time.checkranlint,testandvet. All three walk./..., which enumerates the packages that exist. A build target naming a deleted package is invisible to every one of them —go vet ./...cannot complain about a directory it never visits.The gate was complete with respect to the code present, and blind to the code referenced.
buildis now part ofcheck, with that reasoning written above it.Removed — all pointing at binaries that no longer exist
supervisor:dev,supervisor:build./cmd/supervisorsupervisor:test:smokesmoke:routing+scripts/smoke-routing.sh./cmd/routingsupervisor:line inProcfileSUPERVISOR_MODELS_FILEat the file deleted in #116buildnow aggregateshyperguild:build+ingestion:build— the two binaries that actually exist.A false lead, recorded so nobody re-investigates it
My first sweep flagged
./cmd/serverand./cmd/frontmatterlintas missing too. They are not. Their tasks setdir: ingestion, and both exist underingestion/cmd/.Any checker for this class has to resolve a task's working directory before judging its paths, or it reports two false positives for every true one. I ran that sweep across the whole estate expecting a systemic hole and found only this repo and
dma-cli— so this is a local defect, not an estate-wide one.Verification
Flip-tested — reintroducing a dead build target:
bin/is already in.gitignore, so addingbuildto the gate leaves no artifacts ingit status.Not addressed
#120's third item —
internal/confighas zero non-test callers, the same defect class as #116 itself.RoutingConfigis the only written record of the routing pod's configuration contract, so deleting it is a judgement call rather than a correction. Left open on #120.Created via git-mcp on behalf of @mathias