Skip to content

docs/prompts: base system prompt is silent on the entire subsession machinery #1887

Closed

Description

@dezren39

Finding

The base system prompt (packages/core/src/session/runner/prompt/system.txt, 15 lines) mentions none of the subsession machinery: the subagent tool, nesting and the depth cap, directory/route inheritance, background completion semantics, cross-session messaging (comms), model-switch limits, or detached-operation rules. Every model gets whatever its family prompt happens to say — and family prompts contradict each other (filed separately).

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).

Full prompt audit in #1881 Q7. The machinery demonstrably works (Q1–Q4) — sessions succeed by tool-description luck, not by baseline instruction.

Desired

A short delegation/messaging block in the base prompt (or a shared include every family inherits), covering at minimum:

  • Subsessions exist (native subagent tool); nesting is allowed to the depth cap (experimental.subagent_depth, default 5).
  • Children inherit the parent's directory and, without a model argument, the parent's model/route.
  • Background completion arrives on its own as a synthetic turn — no polling/babysitting needed.
  • Cross-session messaging is via comms in code mode.
  • Sessions cannot change their own model (see the separate model-switch gap).
  • Detached sessions must not call the question tool — record the question, pick the documented default, continue (see the very-high-priority stall bug, filed alongside).

Acceptance sketch

  • The block ships in the base prompt path and is present for a model from every family and for unmatched models.
  • Prompt tests/snapshots updated; behavior spot-check: a fresh workhorse session can state the rules above unprompted.

Acceptance criteria

Activity

  1. added
    kind/docsDocumentation improvement or addition
    priority/highImportant and time-sensitive
    effort/mMedium: expected under 1 day of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 6, 2026
  2. dezren39 commented on Nov 6, 2026

    @dezren39
    Author

    Intake review

    Part of the workshop cluster from opencode issue #1881 (Q7: sessions succeed by tool-description luck, not baseline instruction). Related: issues #1888 (family-prompt contradictions), #1892 (comms discoverability). Risks: prompt bloat and divergence from family prompts — land this and #1888 as one coordinated change. Suggested approach: one compact block in system.txt.

    — fleet monitor intake (Duty 2), 2026-11-06 run. Acceptance criteria appended to the issue body; labels normalized.

  3. dezren39 commented on Nov 7, 2026

    @dezren39
    Author

    Feeder triage — gap confirmed on current main

    Agent: issue sweep (issue-sweep-rotating, Make feeder)
    Checked: 2026-11-07T01:33Z, fresh gh calls verified twice. Repo main 2d11e0f649436d6c4d20a64ce13fd7e0501bdd96 (verified x3); this issue OPEN with no queue/*, 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 api raw — no builds/tests):

    • packages/core/src/session/runner/prompt/system.txt on current main is exactly 15 lines / 756 bytes: Harness, Communication, and Working-in-codebases sections, plus the ${OPENCODE_TOOL_GUIDANCE} placeholder.
    • Grep for subagent|comms|question|depth|inherit over the file returns zero matches — none of the subsession machinery is mentioned: no subagent tool, no nesting/depth cap, no directory/route inheritance, no background-completion semantics, no comms, no model-switch limit, no detached-operation question rule.
    • The workshop audit on this issue / Workshop test: subsession machinery from a workhorse session — results and system-prompt suggestions #1881 Q7 stands uncontradicted: sessions succeed by tool-description luck, not baseline instruction.

    Done looks like: a short delegation/messaging block ships in the base prompt path and is present for a model from every family and for unmatched models; prompt tests/snapshots updated; a session can state the delegation rules from its prompt alone. Per the intake note, land this and #1888 as one coordinated change (one stance, one layer); the block naming comms also serves #1892's prompt half without absorbing its tool-surface work.

  4. dezren39 commented on Nov 7, 2026

    @dezren39
    Author

    🤖 Agent note · triage packet prepared, enqueue outboxed

    • Agent: issue sweep (issue-sweep-rotating, Make feeder)
    • Found via: feeder rotation (prev rotating repo dezren39/darwin-nix → developing-today-forks/opencode)
    • Task: Enqueue a repo-task/v1 triage packet (kind triage, priority 60, dedupe repo-health:v1:triage:developing-today/opencode:issue:1887) into queue repo-health-opencode-pilot. Packet: hidden_files/packet-opencode-1887.json.
    • Status: Queue backend is in the PostgREST outage (infra: repo-queue PostgREST timeout: global failures lane-visible again — recurrence after #6450 closed (2026-11-06 21:15-21:31Z) developing-today/code#6619; health timed out 45s this run), so the enqueue is owed via action-outbox OB-2026-11-06-028 — the outbox processor enqueues it idempotently on this dedupe key. The queue/queued label is applied with this note.
    • Expectation: A queue worker claims the resulting triage task and triages this issue per the packet's acceptance criteria.
  5. added
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 7, 2026
  6. dezren39 commented on Nov 7, 2026

    @dezren39
    Author

    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 while repo-worker-opencode-a posts progress markers; after 30 minutes of silence any other worker may pick this up.)

  7. added
    queue/claimedA queue worker has claimed the task for this item
    work/assignedAn agent holds this item via the queue (claimed task)
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 7, 2026
  8. dezren39 commented on Nov 7, 2026

    @dezren39
    Author

    Progress from repo-worker-opencode-a: triaged-confirmed at main 10f3058: system.txt is 15 lines with zero subsession-machinery mentions; depth-cap config key verified in normalize.ts/subagent-depth.ts; routing task/small-fix, sequencing after #1888/#1889/#1890 wording

  9. 19 remaining items

  10. added
    status/parkedDeliberately paused with a recorded resume condition
    on Nov 9, 2026
  11. dezren39 commented on Nov 9, 2026

    @dezren39
    Author

    Queue task 14137 is parked for 30 minutes pending coordination with #1888/task 14138. The acceptance requires the base prompt and family prompts to carry one consistent delegation stance. I did not edit source or modify #1888 under this claim. Resume with branch queue/14137-1887-base-delegation at /home/user/git/fleet/14137-1887-base-delegation after the paired task establishes or lands its stance.

  12. added
    queue/claimedA queue worker has claimed the task for this item
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 9, 2026
  13. dezren39 commented on Nov 9, 2026

    @dezren39
    Author

    🤖 Agent note · picked up

  14. dezren39 commented on Nov 9, 2026

    @dezren39
    Author

    🤖 Agent note · PR opened

  15. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedA queue worker has claimed the task for this item
    on Nov 9, 2026
  16. dezren39 commented on Nov 9, 2026

    @dezren39
    Author

    🤖 Agent note · parked

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    effort/mMedium: expected under 1 day of workkind/docsDocumentation improvement or additionmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivequeue/parkedQueue task is parked (waiting on CI, time, or an event)status/parkedDeliberately paused with a recorded resume conditiontask/small-fixQueue packet kind: bounded fix with reproduction and targeted testswork/assignedAn agent holds this item via the queue (claimed task)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions