- configs package embeds agents/ + shared/ prompt assets; templates package
embeds xlsx/ (cdo_quote.xlsx)
- template.GetAgentInstructionFile: disk-first with embedded fallback for
instructions and writing.md (dev behavior unchanged)
- quote.CalculateAndFill: embedded xlsx fallback when the on-disk template
walk misses (single-binary deployments)
- presence test guards the embedded asset set
- verified: vet + template/quote/bizdev/squad/arch green
- deploy/postgres (package dbassets) embeds the full goose chain;
RunMigrations prefers the on-disk dir (dev behavior unchanged) and falls
back to the embedded FS when the source tree is absent (single-binary
deployments per plan U10/KTD16)
- goose SetBaseFS global state reset after use
- TestRunMigrationsEmbeddedFallback verified against a throwaway isolated
pgvector container: nonexistent dir -> embedded chain -> version 78,
migration gate count agrees
KTD1 fifth step (behavior preserved):
- squad.AssetProvider{DocTemplate,RenderDoc,AgentInstruction,
AgentInstructionFile} injected via Options.Assets into Service,
WorkspaceEngine and AdaptivePlanner
- bizdev templateAssetProvider maps port to internal/template (assembly side)
- nil-provider paths degrade to the same fallbacks the old error branches
used (placeholder template, role header) — fail-visible, no guessing
- squad -> template import eliminated; arch edge moved bizdev->template
- verified: build/vet/arch green, squad+bizdev short tests pass
KTD1 second step (behavior preserved):
- squad defines ProgressSink (EmitPhase/Detail/Deliverable/Summary/Briefing)
with its own DetailEvent/ToolEvent types; zero internal/stream imports left
- bizdev assembly maps port to SSE streamer (squad_progress_adapter) and
injects via ctx at the four squad entry points
- process_bridge tests rewritten as port-contract tests (captureSink)
- verified: build+vet clean, squad/bizdev/archtest green
- delete herdr start/dispatch scripts, herdr_agents.py and its test
- drop Herdr section from PROJECT.md and row from .doc/README.md taxonomy
- roster and handoff docs migrated to .doc/archive (history preserved,
not deleted); test-reports mentioning herdr kept as dated evidence
bizdev is the composition point injecting the backend factory into
squad.Options (KTD1: assembly stays in the product app); the new import is
intentional and now owned by the machine contract, same PR as the code.
- split go-vet-and-short-test: go-vet (vet+migration gate+arch-check) required;
short tests moved to short-tests-report with continue-on-error (known env-
dependent failures, tracked in issue #2, never green in CI history)
- backup-restore-drill: pg_dump/psql use service host 'postgres' not localhost
(job containers reach services by DNS name, not host-published ports)
Host port 5432 is occupied by a live deployment since ~2026-09-24; CI service
containers failed with 'Bind for 127.0.0.1:5432 failed: port is already allocated'.
Services are reachable inside the job network as 'postgres:5432' without publishing.