deepseek-harness/docs
Tianyi Cui 74502fa8c2 Structured output on the subagent seam: schema subset, capture runtime, spawn/fork support
Carved out of #170 per review feedback — the foundation the workflow tool
builds on, now standing alone on master:

- dsh-tools: the structured-output JSON Schema subset (StructuredOutputSchema,
  assertSupportedOutputSchema, validateStructuredValue) — rejects loud outside
  the enforced subset, listing every violation
- dsh-subagent: SubagentStartRequest.outputSchema / SubagentResult.structured
  become a real capability; the service rejects a schema'd request whose
  provider lacks it
- dsh-subagent-inprocess: the shared structured runtime — one global
  structured_output capture tool, a prepend final-assembly listener that
  strips the placeholder for plain agents and swaps in the run's own schema
  (plus the calling instruction as a trailing section) for structured
  children, an agent/turn-continuation veto once captured, and the
  capture/nudge loop in the run driver (structuredNudgeRetries, cancellation
  honored mid-nudge); lifetime refcounted by backends and live runs
- subagent-spawn / subagent-fork flip outputSchema: true

One deliberate divergence from the #170 revision: the backends do NOT add
'tools' to their plugin inject. Doing so deferred their apply past the todo
plugin, and the delegation tool mirrors provider lifecycle — so the
model-visible tool order of every existing prompt changed, invalidating every
recorded snapshot fixture. The runtime now gates its capture-tool registration
on tools availability itself (sync when live, a scoped inject fiber when the
Loader starts the backend first), keeping this PR byte-invisible to existing
transcripts: all 35 snapshot scenarios pass against master's fixtures
unchanged.
2026-07-06 23:29:08 +08:00
..
cookbook docs: the governing principle — every LLM request is reconstructable from the session log 2026-07-06 03:49:35 +08:00
cordis-catalog Structured output on the subagent seam: schema subset, capture runtime, spawn/fork support 2026-07-06 23:29:08 +08:00
core-data-structures Structured output on the subagent seam: schema subset, capture runtime, spawn/fork support 2026-07-06 23:29:08 +08:00
i18n docs: equal-authority pairing with sidecar consistency records 2026-07-03 07:41:24 -07:00
persistence-catalog compact: the summary's provenance records its call envelope 2026-07-06 03:21:29 +08:00
postmortem fix(docs): address Codex review round 3 — last three moved-policy citations 2026-07-04 16:02:39 +08:00
rfc Merge branch 'master' into codex/parallelize-ci 2026-07-06 21:54:07 +08:00
tool-catalog Merge remote-tracking branch 'origin/master' into codex/docs-graph-brainstorm 2026-07-05 02:16:26 +08:00
agent-lifecycle.md docs: address graph review placement 2026-07-05 02:54:01 +08:00
AGENTS.md Clarify condensing in doc budget guidance 2026-07-06 16:31:18 +08:00
architecture.md fix review findings: one frozen seed through the waterfall; stale agent/request docs 2026-07-06 04:17:29 +08:00
capability-seams.md docs: address graph review placement 2026-07-05 02:54:01 +08:00
cordis-primer.md docs: split cordis primer from architecture map 2026-07-05 19:07:34 +08:00
defensive-patterns.md docs(AGENTS): rewrite the root standing orders to the 1,500-word budget 2026-07-04 14:22:47 +08:00
development.i18n.yaml ci: keep measured e2e worker cap 2026-07-06 03:20:08 +08:00
development.md ci: keep measured e2e worker cap 2026-07-06 03:20:08 +08:00
development.zh.md ci: keep measured e2e worker cap 2026-07-06 03:20:08 +08:00
event-producer-consumer.md Structured output on the subagent seam: schema subset, capture runtime, spawn/fork support 2026-07-06 23:29:08 +08:00
graph-atlas.md Move ACP snapshot replay doc into package 2026-07-06 00:52:06 +08:00
module-graph.md Structured output on the subagent seam: schema subset, capture runtime, spawn/fork support 2026-07-06 23:29:08 +08:00
testing.md fix(docs): address ds-review-bot — the e2e tier is not DeepSeek-only 2026-07-04 16:43:23 +08:00
tool-execution-pipeline.md docs: address graph review placement 2026-07-05 02:54:01 +08:00