Repository navigation
Closed
Labels
effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/debtTechnical debt worth paying down deliberatelyTechnical debt worth paying down deliberatelymeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitiveImportant and time-sensitivetask/small-fixQueue packet kind: bounded fix with reproduction and targeted testsQueue packet kind: bounded fix with reproduction and targeted tests
Description
Finding
Family prompts disagree about delegation itself, and selection is per-model — so the same route behaves differently depending on which leaf serves a step:
gpt.txt/gpt-astra.txt: "Do not spawn subagents unless the user or applicable AGENTS.md/skill instructions explicitly ask for subagents, delegation, or parallel agent work."meta.txt: proactively encourages thesubagenttool.kimi.txt: mentions it neutrally.- DeepSeek matches no family in
packages/core/src/plugin/optimize.tsselection (gpt/claude/kimi/muse/trinity) and gets no delegation guidance at all — and DeepSeek is the fleet's documented workhorse head.
Workshop evidence
Evidence: the 2026-11-06 subsession workshop test, filed as #1881 (production server, 8 test sessions, plan pools only; every behavior claim production-measured and re-verified against the session store + route_attempt).
#1881 Q3 + Q7: a single workhorse session was served step-by-step by different leaves under different policies (openai.main/gpt-6-luna#xhigh for tool steps, vibe-direct/mistral-small-latest#high for the closing step, all under route_id=workhorse). Delegation behavior currently varies by leaf luck, not by design.
Desired
- One consistent subsession policy across all family prompts (aligned with the base-prompt delegation block, filed separately) — no leaf-level veto on spawning when the task/AGENTS.md calls for delegation.
- An explicit prompt entry (or a defined fallback) for DeepSeek-family models, and a defined default for any future unmatched model: unmatched must mean "gets the base policy", never "gets nothing".
Acceptance sketch
- Every family file carries the same delegation stance; optimize.ts selection has a DeepSeek entry or a documented fallback.
- A workhorse session's delegation behavior no longer depends on which leaf serves a step.
Acceptance criteria
- All model-family prompts give consistent delegation guidance, or the differences are deliberate and documented in one place.
- DeepSeek — the fleet's default workhorse — resolves to a family/prompt that includes delegation guidance (today it matches no family in
packages/core/src/plugin/optimize.tsselection and gets none). - The gpt family's 'do not spawn subagents unless explicitly asked' no longer silently contradicts the meta family's proactive encouragement for the same route.
Metadata
Metadata
Assignees
Labels
effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/debtTechnical debt worth paying down deliberatelyTechnical debt worth paying down deliberatelymeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitiveImportant and time-sensitivetask/small-fixQueue packet kind: bounded fix with reproduction and targeted testsQueue packet kind: bounded fix with reproduction and targeted tests
Activity
dezren39 commentedon Nov 6, 2026
Intake review
Part of the workshop cluster from opencode issue #1881 (full prompt audit, Q7). Related: issue #1887 (base prompt is silent on the machinery — the two overlap; coordinate so the fix lands in one layer, not both divergently). Priority high because the affected default head (DeepSeek) is the fleet workhorse. Suggested approach: decide the single delegation stance first, then align family prompts and add the DeepSeek mapping.
— fleet monitor intake (Duty 2), 2026-11-06 run. Acceptance criteria appended to the issue body; labels normalized.
dezren39 commentedon Nov 7, 2026
Feeder triage — gap confirmed on current main
Agent: issue sweep (issue-sweep-rotating, Make feeder)
Checked: 2026-11-07T01:36Z, fresh
ghcalls verified twice. Repo main2d11e0f649436d6c4d20a64ce13fd7e0501bdd96(verified x3); this issue OPEN with noqueue/*,work/*,user/*or safety labels — its only prior comment is the fleet-monitor intake note (2026-11-06T20:26Z). No live queue task indicated; queue backend is in the PostgREST outage (developing-today/code#6619), so dedupe was on gh labels/comments.What I checked (reads only,
gh apiraw — no builds/tests), all verbatim on current main:packages/core/src/plugin/system-prompt/gpt.txt:31— "Do not spawn subagents unless the user or applicable AGENTS.md/skill instructions explicitly ask for subagents, delegation, or parallel agent work."packages/core/src/plugin/system-prompt/meta.txt:36-39— "You should proactively use thesubagenttool to launch specialized subagents…" (the opposite stance).packages/core/src/plugin/system-prompt/kimi.txt:11— neutral mention only.packages/core/src/plugin/optimize.ts:16-62— prompt selection matches onlygpt,claude,kimi,trinity, andmuse(meta). No DeepSeek match and no fallback: an unmatched model gets no family prompt and no delegation guidance at all — and DeepSeek is the fleet's documented workhorse head.Done looks like: every family file carries the same delegation stance, aligned with the #1887 base-prompt block (one coordinated change, per the intake note);
optimize.tsselection has a DeepSeek entry or a documented fallback so an unmatched model gets the base policy, never nothing; prompt tests pin the stance per family and the unmatched fallback. A workhorse session's delegation behavior must not vary by serving leaf.dezren39 commentedon Nov 7, 2026
🤖 Agent note · triage packet prepared, enqueue outboxed
repo-task/v1triage packet (kindtriage, priority 60, deduperepo-health:v1:triage:developing-today/opencode:issue:1888) into queuerepo-health-opencode-pilot. Packet:hidden_files/packet-opencode-1888.json.queue/queuedlabel is applied with this note.dezren39 commentedon Nov 7, 2026
Picked up by
repo-worker-opencode-a— working this now. (Fleet queue fallback mode: the queue backend is down, so this issue's comments carry the claim. The claim stays live whilerepo-worker-opencode-aposts progress markers; after 30 minutes of silence any other worker may pick this up.)dezren39 commentedon Nov 7, 2026
Progress from
repo-worker-opencode-a: triaged-confirmed at main 10f3058: gpt.txt:31 + gpt-astra.txt:45 veto vs meta.txt:36-39 proactive encouragement vs kimi.txt:11 neutral; optimize.ts has no deepseek match and no unmatched fallback; routing task/small-fixdezren39 commentedon Nov 7, 2026
Triage — CONFIRMED (lane opencode-a, fallback mode)
Verified fresh against
origin/main@10f305865fe8(laptop primary~/git/opencode, clean, on main); family prompts live inpackages/core/src/plugin/system-prompt/:gpt.txt:31andgpt-astra.txt:45carry the filed sentence verbatim: "Do not spawn subagents unless the user or applicable AGENTS.md/skill instructions explicitly ask for subagents, delegation, or parallel agent work."meta.txt:36–39proactively encourages the opposite — "You should proactively use thesubagenttool…", "Use thesubagenttool to minimize context token usage… This is CRITICAL…".kimi.txt:11is neutral ("If thesubagenttool is available, you can use it to delegate a focused subtask…"). Three different delegation policies depending on which leaf serves a step, as filed.packages/core/src/plugin/optimize.tsselection covers gpt / claude / kimi / trinity / muse (→meta.txt); a grep fordeepseekin that file returns nothing, and every selector returnsundefinedfor an unmatched model — there is no DeepSeek entry and no defined fallback, so an unmatched model gets no family delegation guidance at all. The base prompt does not rescue it either (docs/prompts: base system prompt is silent on the entire subsession machinery #1887, confirmed this shift:system.txthas zero subsession content).Routing:
task/triage→task/small-fix, back toqueue/queuedwithstatus/needs-triage. Sequencing: land with or after #1887 — the base-prompt delegation block is the canonical stance the family files should align to, and the unmatched-model fallback should resolve to that base policy ("unmatched = base policy, never nothing"). No Drew decision needed; the desired end state is stated in the issue.agent-note:v1 · agent: repo-queue-opencode-worker-a · lane: opencode-a · mode: fallback (queue backend down, code#6619)
dezren39 commentedon Nov 7, 2026
Released by
repo-worker-opencode-a(outcome: free). TRIAGED CONFIRMED at origin/main 10f3058: gpt.txt:31/gpt-astra.txt:45 spawn veto vs meta.txt:36-39 proactive encouragement vs kimi.txt:11 neutral; optimize.ts selection has no deepseek entry and no unmatched fallback. Routed task/small-fix + status/needs-triage + queue/queued; triage note comment 6702695811 (align family files to the #1887 base block; unmatched = base policy). Implementation remains.dezren39 commentedon Nov 7, 2026
🤖 Agent note · queued
dezren39 commentedon Nov 8, 2026
🤖 Agent note · picked up
ses_e5e42778335ffev6v7y7eSxQDx; queue task11024repo-health-opencode-pilot, lane3fe37e8a-c61b-419c-9e97-769ecd264d5ddezren39 commentedon Nov 8, 2026
🤖 Agent note · done
ses_e5e42778335ffev6v7y7eSxQDx; queue task11024repo-health-opencode-pilot, lane3fe37e8a-c61b-419c-9e97-769ecd264d5d14138.developing-today commentedon Nov 9, 2026
🤖 Agent note · completed — queue task 14138