chore: planner run 2026-04-14 #28

Closed
planner-bot wants to merge 8 commits from planner/run-2026-04-14 into main
3 changed files with 70 additions and 30 deletions
Showing only changes of commit a575e4a5f1 - Show all commits

View file

@ -1,6 +1,6 @@
<!-- summarized-through-run: 5 --> <!-- summarized-through-run: 5 -->
# Planner Memory # Planner Memory
Last updated: 2026-04-12 Last updated: 2026-04-14
## Run history ## Run history
- Run 1 (2026-04-05): First planning run. Established prerequisite tree from VISION.md. - Run 1 (2026-04-05): First planning run. Established prerequisite tree from VISION.md.
@ -9,26 +9,28 @@ Last updated: 2026-04-12
- Run 4 (2026-04-11): Foundation+ DONE. Adoption architect DONE (#689, #690). Ops migration DONE (#688). Filed #697. - Run 4 (2026-04-11): Foundation+ DONE. Adoption architect DONE (#689, #690). Ops migration DONE (#688). Filed #697.
- Run 5 (2026-04-12): Dev pipeline reliability DONE (#693, #702 closed). Chat 8/10 (#710, #713 closed). Found architect false-completion bug → filed #735. 0 predictions. - Run 5 (2026-04-12): Dev pipeline reliability DONE (#693, #702 closed). Chat 8/10 (#710, #713 closed). Found architect false-completion bug → filed #735. 0 predictions.
- Run 6 (2026-04-12): #735 CLOSED (architect false-completion bug). #737 NEW tech-debt (close_vision_issue error handling). Relabeled #707, #712 blocked→backlog for ci_exhausted retry. Added priority+backlog to #737. 0 predictions. 0 new issues filed. - Run 6 (2026-04-12): #735 CLOSED (architect false-completion bug). #737 NEW tech-debt (close_vision_issue error handling). Relabeled #707, #712 blocked→backlog for ci_exhausted retry. Added priority+backlog to #737. 0 predictions. 0 new issues filed.
- Run 7 (2026-04-14): #737 CLOSED, #741 CLOSED. Architect decomposed #426 into sprint (4 sub-issues #745-#748). Labeled all sub-issues backlog. Created vault pending item for SSH key. #749 new bug (dev-poll post-crash deadlock, in-progress). #742 CI exhaustion investigation in-progress. #707/#712 re-blocked pending #742. 0 predictions. 0 new issues filed.
## Current constraint focus ## Current constraint focus
1. **Architect error handling** (#737) — backlog, priority, tech-debt. close_vision_issue() swallows PATCH errors → vision issues can stay stuck-open. Small fix, one file. Dev-agent should pick up. 1. **Website observability sprint** (#426) — architect decomposed. #747 (evidence dir, priority) → #745 (formula) → #746 (format guard). #748 (SSH docs) parallel. SSH key blocked-on-vault. First factory observable in progress.
2. **Website observability** (#426) — vision, priority. disinto.ai has no analytics. Blocks Adoption landing page AND Ship engagement measurement. Architect should decompose now that #735 is fixed. 2. **Dev-poll post-crash deadlock** (#749) — in-progress, dev-bot. Self-assigned issues not recovered after container crash. Same class as #741 (startup state vs Forgejo state).
3. **Example project** (#697) — vision, priority. Needs architect decomposition. Architect unblocked by #735 fix. 3. **CI exhaustion investigation** (#742) — in-progress, dev-qwen. Blocks #707/#712 (last 2 chat sub-issues for #623).
4. **Chat ci_exhausted** (#707, #712) — relabeled backlog for retry. #712 has stale PR #733. Last 2 of 10 sub-issues for #623. 4. **Example project** (#697) — vision, priority. Awaiting architect decomposition. Architect should pick up next run.
5. **Deploy profiles** — not started. Vision-level. Blocks Ship milestone. 5. **Deploy profiles** — not started. Vision-level. Blocks Ship milestone. Do not file until Adoption shows more progress.
## Patterns observed ## Patterns observed
- Foundation completed in ~10 days, Foundation+ in ~3 days, dev pipeline reliability in ~1 day. Execution velocity increasing. - Foundation completed in ~10 days, Foundation+ in ~3 days, dev pipeline reliability in ~1 day. Execution velocity increasing.
- Chat assistant (#623) rapid progress: 6/10 → 8/10 sub-issues in one day. Final 2 are ci_exhausted — CI reliability is the bottleneck. - **Architect lifecycle fully operational**: decomposed #426 into clean sprint with 4 sub-issues. First successful end-to-end architect cycle since bug fixes (#716-#718, #735, #737).
- Architect lifecycle: 5 bugs found and fixed in one day (#716-#718, #735). #737 is a follow-on from #735's fix PR review. Architect is now functional — should be decomposing #426 and #697 on next run. - Cold-boot resilience is a recurring theme: #741 (credential race), #749 (self-assigned deadlock). Both are startup-state-vs-Forgejo-state reconciliation bugs.
- No predictor activity (0 predictions in runs 4-6). Either predictor is idle or all patterns are accounted for. - Chat assistant (#623) 8/10 done. Final 2 (#707, #712) blocked on CI investigation (#742). If #742 resolves, chat could complete quickly.
- No observables exist — all addressables still lack measurement. Fundamental gap unchanged. - No predictor activity (0 predictions in runs 4-7). Stable system or quiet predictor.
- Graph healthy: 206 nodes, 271 edges, no cycles, no bottlenecks. - Graph grew: 206→213 nodes, 271→289 edges. No cycles, no bottlenecks.
- **First observable in progress**#426 decomposition is the first concrete step toward measurement. Fundamental gap being addressed.
## Strategic direction ## Strategic direction
- Adoption is the active milestone. 5 of 8 Adoption objectives DONE. - Adoption is the active milestone. 6 of 8 Adoption objectives DONE (Architect lifecycle now DONE with #737 closed).
- **Critical path**: architect decomposes #426 and #697 (now unblocked by #735 fix) → Adoption objectives unblock. - **Critical path**: #747#745#746 (website observability chain) + vault SSH key provisioning. This is the path to the factory's first observable.
- #737 is a small reliability fix — should be quick for dev-agent. - #697 needs architect decomposition — should happen on next architect run.
- Chat (#623) is 80% done. #707/#712 relabeled for retry — if they fail again, need CI investigation. - #749 and #742 are active reliability work — let them complete.
- Do NOT file Ship/Learn issues until Adoption objectives show progress. - Do NOT file Ship/Learn issues until website observability is wired (#426 chain completes).
- RESOURCES.md and portfolio.md remain empty — populate when addressables materialize. - RESOURCES.md and portfolio.md remain empty — populate when first observable materializes.

View file

@ -1,5 +1,5 @@
# Prerequisite Tree # Prerequisite Tree
<!-- Last updated: 2026-04-12 --> <!-- Last updated: 2026-04-14 -->
## Objective: Foundation — Core agent loop (dev → CI → review → merge) ## Objective: Foundation — Core agent loop (dev → CI → review → merge)
- [x] dev-agent picks up backlog issues (dev/dev-agent.sh exists) - [x] dev-agent picks up backlog issues (dev/dev-agent.sh exists)
@ -18,7 +18,7 @@ Status: DONE
## Objective: Foundation — Planner gap analysis against vision ## Objective: Foundation — Planner gap analysis against vision
- [x] Planner formula exists (run-planner.toml v4) - [x] Planner formula exists (run-planner.toml v4)
- [x] planner-run.sh cron wrapper exists - [x] planner-run.sh cron wrapper exists
- [x] Planning runs established (runs 16) - [x] Planning runs established (runs 17)
Status: DONE Status: DONE
## Objective: Foundation — Multi-project support ## Objective: Foundation — Multi-project support
@ -29,7 +29,7 @@ Status: DONE
## Objective: Foundation — Knowledge graph for structural defect detection ## Objective: Foundation — Knowledge graph for structural defect detection
- [x] networkx package installed in agents container (#220 — closed) - [x] networkx package installed in agents container (#220 — closed)
- [x] build-graph.py exists in lib/ - [x] build-graph.py exists in lib/
- [x] Graph report generating successfully (206 nodes, 271 edges as of 2026-04-12) - [x] Graph report generating successfully (213 nodes, 289 edges as of 2026-04-14)
Status: DONE Status: DONE
## Objective: Foundation — Predictor-planner adversarial feedback loop ## Objective: Foundation — Predictor-planner adversarial feedback loop
@ -47,6 +47,7 @@ Status: DONE
- [x] Agent profile/journal fixes (#651, #652, #663 — closed) - [x] Agent profile/journal fixes (#651, #652, #663 — closed)
- [x] Cron intervals configured (#682 — closed) - [x] Cron intervals configured (#682 — closed)
- [x] Remove external flock (#647 — closed) - [x] Remove external flock (#647 — closed)
- [x] Credential helper race on cold boot (#741 — closed)
Status: DONE Status: DONE
## --- FOUNDATION+ MILESTONE: DONE --- ## --- FOUNDATION+ MILESTONE: DONE ---
@ -68,13 +69,19 @@ Status: DONE
## Objective: Adoption — Landing page communicating value proposition ## Objective: Adoption — Landing page communicating value proposition
- [x] Website addressable exists (disinto.ai) - [x] Website addressable exists (disinto.ai)
- [ ] Website observability — no engagement measurement (#426 — vision, priority) - [ ] Website observability (#426 — vision, priority, architect-decomposed into sprint)
Status: BLOCKED — no evidence process connected to website - [x] Architect decomposition complete (sprint: website-observability-wire-up, ops PR #10)
- [ ] Evidence/engagement directory setup + ops-setup wiring (#747 — backlog, priority)
- [ ] Collect-engagement formula + container script (#745 — backlog, depends on #747)
- [ ] Format-detection guard in collect-engagement.sh (#746 — backlog, depends on #745)
- [ ] Rent-a-human SSH key setup docs (#748 — backlog)
- [ ] SSH key provisioned on Caddy host — blocked-on-vault ($OPS_REPO_ROOT/vault/pending/disinto-caddy-ssh-key.md)
Status: IN PROGRESS — architect decomposed, sub-issues labeled, SSH key needs human provisioning
## Objective: Adoption — Example project demonstrating full lifecycle ## Objective: Adoption — Example project demonstrating full lifecycle
- [x] Bootstrap path unblocked (#688 — closed) - [x] Bootstrap path unblocked (#688 — closed)
- [ ] Example project design and implementation (#697 — vision, priority) - [ ] Example project design and implementation (#697 — vision, priority, awaiting architect decomposition)
Status: BLOCKED — #697 awaiting architect decomposition (unblocked now that #735 is fixed) Status: BLOCKED — #697 awaiting architect decomposition
## Objective: Adoption — Architect lifecycle completeness ## Objective: Adoption — Architect lifecycle completeness
- [x] Architect closes parent vision issues when sprint sub-issues complete (#689 — closed) - [x] Architect closes parent vision issues when sprint sub-issues complete (#689 — closed)
@ -83,13 +90,14 @@ Status: BLOCKED — #697 awaiting architect decomposition (unblocked now that #7
- [x] Architect URL construction fixed (#717 — closed) - [x] Architect URL construction fixed (#717 — closed)
- [x] Architect pitch output fixed (#716 — closed) - [x] Architect pitch output fixed (#716 — closed)
- [x] Architect false-completion bug fixed (#735 — closed) - [x] Architect false-completion bug fixed (#735 — closed)
- [ ] close_vision_issue error handling (#737 — backlog, priority, tech-debt) - [x] close_vision_issue error handling (#737 — closed)
Status: IN PROGRESS — #737 is a follow-on reliability fix, architect otherwise functional Status: DONE
## Objective: Adoption — Dev agent pipeline reliability ## Objective: Adoption — Dev agent pipeline reliability
- [x] Dev-poll deadlock in same-container case (#693 — closed) - [x] Dev-poll deadlock in same-container case (#693 — closed)
- [x] Profile journal digestion hang (#702 — closed) - [x] Profile journal digestion hang (#702 — closed)
Status: DONE - [ ] Dev-poll post-crash deadlock — self-assigned issue never recovered (#749 — in-progress, priority)
Status: IN PROGRESS — #749 being worked by dev-bot
## Objective: Adoption — Assistant (disinto-chat) (#623) ## Objective: Adoption — Assistant (disinto-chat) (#623)
- [x] Caddy subpath routing skeleton (#704 — closed) - [x] Caddy subpath routing skeleton (#704 — closed)
@ -100,9 +108,10 @@ Status: DONE
- [x] Cost caps + rate limiting (#711 — closed) - [x] Cost caps + rate limiting (#711 — closed)
- [x] Conversation history persistence (#710 — closed) - [x] Conversation history persistence (#710 — closed)
- [x] Per-project subdomain fallback (#713 — closed) - [x] Per-project subdomain fallback (#713 — closed)
- [ ] Claude identity isolation (#707 — backlog, relabeled for ci_exhausted retry) - [ ] Claude identity isolation (#707 — blocked, pending #742 CI investigation)
- [ ] Escalation tools (#712 — backlog, priority, relabeled for ci_exhausted retry, has PR #733) - [ ] Escalation tools (#712 — blocked, priority, pending #742 CI investigation)
Status: IN PROGRESS — 8/10 sub-issues closed, 2 relabeled for retry - [ ] CI exhaustion investigation (#742 — in-progress, priority, assigned to dev-qwen)
Status: IN PROGRESS — 8/10 sub-issues closed, #742 investigating CI failures blocking #707/#712
## Objective: Ship (Fold 2) — Deploy profiles per artifact type ## Objective: Ship (Fold 2) — Deploy profiles per artifact type
- [ ] No deploy profiles defined - [ ] No deploy profiles defined

View file

@ -0,0 +1,29 @@
# Request: Caddy host SSH key for engagement data collection
## What
Provision a dedicated SSH keypair with `command=` restriction on the Caddy host serving disinto.ai. This key allows the edge container to fetch access logs for engagement measurement.
## Why
Blocks #745 (collect-engagement formula) and #426 (website observability).
The factory cannot make disinto.ai an observable without reading access logs from the Caddy host.
Waiting since 2026-04-14.
## Human action
1. Generate keypair: `ssh-keygen -t ed25519 -f caddy-collect -N '' -C 'disinto-collect-engagement'`
2. Install public key on Caddy host in `~/.ssh/authorized_keys` with restriction:
```
command="cat /var/log/caddy/access.log",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-ed25519 AAAA... disinto-collect-engagement
```
3. Ensure Caddy is configured for JSON structured access log format
4. Add private key as `CADDY_SSH_KEY` to `.env.vault.enc`
5. Add Caddy host address as `CADDY_HOST` to `.env.vault.enc`
6. Test: `ssh -i caddy-collect user@caddy-host` should output the access log and disconnect
## Factory will then
- Run `collect-engagement` formula daily via edge container cron
- Commit evidence JSON to `evidence/engagement/YYYY-MM-DD.json` in ops repo
- Planner uses evidence data to assess landing page effectiveness
## Unblocks
- #745 — collect-engagement formula + container script
- #426 — website observability (parent vision issue)