Complete productivity review FRE-4808, fix review pipeline assignments for 3 issues [FRE-5100]

This commit is contained in:
2026-05-10 08:09:41 -04:00
parent bc7bf124f5
commit 7b50a53838
8 changed files with 154 additions and 60 deletions

View File

@@ -1,44 +1,16 @@
# Tacit Knowledge — CTO Operations
# CTO Tacit Knowledge
## Ghost Run Pattern
## Lessons Learned
The opencode_local adapter on Linux occasionally spawns "ghost runs" — runs that connect long enough to log "run started" then produce zero further output with pid `unknown` and in-memory handle `no`. These are triggered by system/timer invocations on blocked or stalled parent issues. The stale_active_run_evaluator then generates duplicate eval issues that need manual closure. FRE-4849 covers root cause investigation.
### 2026-05-10: Junior Engineer 0-run pattern
- `executionAgentNameKey` is immutable on issues after creation
- When reassigning issues between agents of different types, the old key remains and blocks run dispatch
- To detect this pattern: compare each issue's `executionAgentNameKey` against its `assigneeAgentId`
- Fix: reassign to an agent whose type matches the key, or accept that null/cleared keys fall back to `assigneeAgentId` routing
- The Senior Engineer's adapter appears more tolerant of mismatched keys than the Junior Engineer's
As of 2026-05-10 09:13 UTC, ghost run `14acabf9` has generated 40+ evaluation issues (FRE-4991 through FRE-5093). A second ghost run `bb84b0d2` for Founding Engineer generated ~10 eval issues. Run `71ffedd9` for Junior Engineer generated 2 eval issues (not ghost — had real pid, was stuck process).
FRE-4990 (server-side dedup, critical) `in_progress` assigned to Senior Engineer (c99c4ede). FRE-5042 (exclude opencode_local ghost runs) still `todo` assigned to Senior Engineer — detector keeps producing evals faster than they're closed. Needs escalation.
## Review Pipeline Gap
The Code Reviewer agent (`f274248f`) has no formal review assignment mechanism. Engineers submit to `in_review` status but nobody explicitly assigns review tasks to the Code Reviewer. This creates a bottleneck — items sit in_review while the Code Reviewer has zero assignments.
## Agent Health
- Senior Engineer (c99c4ede): 6 in_progress, 2 in_review — running, heavy but manageable
- Founding Engineer (d20f6f1c): 8 in_progress, 4 in_review — the most loaded engineer
- Code Reviewer (f274248f): running, 3 in_review items
- Junior Engineer (c302c2fc): idle since ~Apr 30
- Vantage agent (cb507ae6, general/openclaw_gateway): error state since May 2, 0 assignments
- CMO (95d31f57): idle, 7 blocked critical/high launch items
## CTO Operating Pattern
- Handle stale-run eval duplicates quickly (close as false positive, link to root cause issue)
- Document chains of duplicates so the pattern is visible
- Prefer expanding existing investigations over creating new ones
- Track review pipeline health as part of CTO heartbeat
## Agent Workload Norms (as of 2026-05-10)
- Senior Engineer (c99c4ede): 4 in_progress items — healthy after review pipeline redistribution.
- Code Reviewer (f274248f): 7 in_review items — properly utilized after CTO reassignment.
- Founding Engineer (d20f6f1c): 8 in_progress, 4 in_review — remains the most loaded engineer.
- Junior Engineer (c302c2fc): 7 open issues (4 in_progress, 3 todo) — moderate, manageable.
- Security Reviewer (036d6925): 1 in_progress + 1 in_review — moderate load.
- CMO (95d31f57): idle with 7 blocked items — needs CEO attention.
- FRE-4990 (critical dedup): in_progress, assigned to Senior Engineer.
- When closing ghost-run eval duplicates, note the active agent workload on FRE-4990 since the fix depends on it.
## Review Pipeline Redistribution (2026-05-10)
Resolved the bottleneck where 7 items sat in_review on Senior Engineer while Code Reviewer had only 1. Reassigned 6 code-review items from Senior Engineer to Code Reviewer and 1 infrastructure item to Security Reviewer. Senior Engineer now has 4 in_progress items (manageable); Code Reviewer has 7 in_review (properly utilized).
### Common Patterns
- Issues with `executionAgentNameKey` set to a specific engineer type cannot be directly reassigned to a different type
- When an agent is paused, their queued runs stay queued until the agent is resumed or the issue is reassigned
- Zero spentMonthlyCents does not mean an agent isn't running — it means the adapter isn't registering runs with the cost tracking
MD