Parent
Ponytail audit 2026-10-05 (weekly-ponytail-audit, job ad3283353401). Report: ~/.hermes/cron/output/ad3283353401/2026-10-05_08-34-11.md.
Audited read-only at sprout 56f0168 (checkout clean, on main). Re-verify each path before deleting — this batch is the cleanest of the week.
What to build
packages/preview-env/src/health.ts:28 vs governance.ts:7 — two parseDurationMs under one name with different grammars. Consolidate. ~15-20 LOC.
apps/cli/src/yaml.ts:109-119 — healthIssueMessage is the last *IssueMessage living in the CLI while its siblings moved into the package. ~12 LOC.
apps/cli/src/yaml.ts:156-172 + apps/server/src/http/deploy.ts:236-241 — duplicated preview.env.<key> issue string. ~15-25 LOC.
apps/server/src/preview/naming.ts:8-9 vs e2e/harness/docker.ts:6-8 — identical container-name builder. ~5-10 LOC.
e2e/lifecycle.test.ts:106,149 — inline database name instead of the canonical previewDbName.
restricted-role.ts:33-35 vs app-deployment/pg-env.ts:38-40 — identical companion-role error. ~3-8 LOC.
README.md:40 — points at docs/site/index.html, which is generated output and not checked in. 1 line.
packages/preview-db/src/names.ts:17-24 — validateSlug and validateServiceName duplicate one regex. ~4 LOC.
packages/preview-env/src/index.ts:111 — PreviewVolumeIssue barrel export consumed only by a test. 1 line.
Not in scope
Human-routed this run: the un-export batch (deploy.ts:429/475/490, forge/gitlab.ts:12, telemetry/destination.ts:14 + CLI helpers) and the duplicated escapeHtml (docs/site/html.ts:2-7 vs server/src/http/dashboard.ts:53-58).
Acceptance
rg proof per removed symbol or duplicated helper; bun run lint, typecheck and bun test green; the e2e harness still provisions previews.
Parent
Ponytail audit 2026-10-05 (
weekly-ponytail-audit, job ad3283353401). Report:~/.hermes/cron/output/ad3283353401/2026-10-05_08-34-11.md.Audited read-only at sprout
56f0168(checkout clean, on main). Re-verify each path before deleting — this batch is the cleanest of the week.What to build
packages/preview-env/src/health.ts:28vsgovernance.ts:7— twoparseDurationMsunder one name with different grammars. Consolidate. ~15-20 LOC.apps/cli/src/yaml.ts:109-119—healthIssueMessageis the last*IssueMessageliving in the CLI while its siblings moved into the package. ~12 LOC.apps/cli/src/yaml.ts:156-172+apps/server/src/http/deploy.ts:236-241— duplicatedpreview.env.<key>issue string. ~15-25 LOC.apps/server/src/preview/naming.ts:8-9vse2e/harness/docker.ts:6-8— identical container-name builder. ~5-10 LOC.e2e/lifecycle.test.ts:106,149— inline database name instead of the canonicalpreviewDbName.restricted-role.ts:33-35vsapp-deployment/pg-env.ts:38-40— identical companion-role error. ~3-8 LOC.README.md:40— points atdocs/site/index.html, which is generated output and not checked in. 1 line.packages/preview-db/src/names.ts:17-24—validateSlugandvalidateServiceNameduplicate one regex. ~4 LOC.packages/preview-env/src/index.ts:111—PreviewVolumeIssuebarrel export consumed only by a test. 1 line.Not in scope
Human-routed this run: the un-export batch (
deploy.ts:429/475/490,forge/gitlab.ts:12,telemetry/destination.ts:14+ CLI helpers) and the duplicatedescapeHtml(docs/site/html.ts:2-7vsserver/src/http/dashboard.ts:53-58).Acceptance
rgproof per removed symbol or duplicated helper;bun run lint, typecheck andbun testgreen; the e2e harness still provisions previews.