# CTO Tacit Knowledge ## Lessons Learned ### 2026-05-10: Productivity review routing lessons - `long_active_duration` with 0 runs/0 comments on Security Reviewer → likely a routing problem, not a productivity problem - Security Reviewer should not be assigned code-fix work post-Code-Reviewer findings — their pipeline stage begins after Code Reviewer sign-off - When Founding Engineer is paused mid-review-cycle, reroute fix-the-findings work to Senior Engineer (tolerates mismatched `executionAgentNameKey`) - Always check: is the assignee the right agent type for the actual work needed, or was the issue misrouted? ### 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 ### 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 - Senior Engineer's streaming adapter (122B Qwen) repeatedly triggers `long_active_duration` false positives. FRE-5109 is the latest. The 6h cooldown mechanism (FRE-4785) is supposed to suppress these but the evaluations still fire. - Recurring pattern: Senior Engineer creates code but doesn't commit it (FRE-4928 k6 files, FRE-4830). This breaks Code Reviewer's ability to verify fixes. Remediation: commit should be required at `in_progress` → `in_review` handoff.