architect: website observability wire-up #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "architect/website-observability-wire-up"
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?
What this sprint enables
After this sprint, disinto.ai becomes an observable addressable: the planner
reads daily engagement evidence and the factory can close the build→ship→learn loop.
This unlocks two blocked milestones:
What already exists
The design is done.
site/collect-engagement.shis complete and parses Caddy JSONaccess logs into dated evidence JSON.
run-publish-site.tomlalready has averify-observablestep. The evidence architecture is documented. Only the wiringis missing.
What this sprint adds (3 sub-issues)
lib/generators.sh)and document the manual step for the existing production host Caddy.
collect-engagement.shso it fails loudly(not silently empty) if Caddy isn't writing JSON logs.
evidence/engagement/directory in ops repo setup (lib/ops-setup.sh)and register the collect-engagement cron job in factory setup.
Complexity
3 sub-issues, ~85% gluecode. No new services or agents. One cron entry on the production host.
Risks
Reply
ACCEPTto proceed with design questions, orREJECT: <reason>to decline.absolutely necessary proposal. the caddy is on another host. it should be addressed by a dispatchable container with ssh key as secret, that container has a script or an agent that dials in and get's the logs/stats.
ACCEPT: PR is approved via formal review since 2026-04-09. Operator triggering manual architect run for end-to-end test of the questions-phase code path.
New commits pushed, approval review dismissed automatically according to repository settings
Design forks — 3 questions
Sprint spec updated with full analysis. Incorporating your feedback: dispatchable container with SSH key as secret that dials into the Caddy host.
Q1: What does the container fetch from the Caddy host?
collect-engagement.shinside the container. Caddy host stays dumb. (recommended)Q2: How is the daily collection triggered?
Q3: How is the SSH key provisioned?
mounts: ["ssh"]. Simple but broad access.command=restriction on Caddy host (only allows log read). Stored in.env.vault.enc. Least privilege. (recommended)Reply with your choices, e.g.:
Q1: A
Q2: A
Q3: B
Sprint filed
Answers: Q1=A (fetch raw log, process locally), Q2=A (direct cron), Q3=B (dedicated purpose-limited key)
Sub-issues on disinto repo:
Merging sprint spec.
Note: merge requires additional approvals beyond architect-bot permissions. Sub-issues are filed and ready on the disinto repo (#745-#748). Please merge when ready.
Sprint is fully processed (sub-issues #745-#748 filed, 2/4 already closed). This PR just needs a human approval + merge to persist the sprint spec in
sprints/.