Files
deepseek-harness/CONTEXT.md
Tianyi Cui e890a3373e test(review): pin the tool-subagent plugin fiber's lifecycle ownership; doc nits
Codex round-2 findings:

- A committed test now proves the REAL plugin fiber (not a direct apply)
  owns the provider-lifecycle listeners: disposing a mounted tool's fiber
  unmounts the tool and leaves the provider intact, and a fiber disposed
  while WAITING never zombie-mounts when its provider arrives later.
- TODO(subagent-dup-toolname) records the invalid-config blast radius of
  two waiting fibers sharing a toolName (the duplicate throw propagates
  through subagent/provider-added and rolls back the provider).
- CONTEXT.md drops its creation-history sentence; the RFC's acceptance
  checklist becomes present-tense shipped invariants (docs/AGENTS.md
  writing rules).
2026-07-05 03:40:22 +08:00

1.7 KiB
Raw Blame History

DeepSeek Harness

Ubiquitous language for the harness; grows as terms crystallize. Decisions live in docs/rfc/ (this repo's decision log), not here.

Language — prompt assembly

Section: One named, ordered fragment of the system prompt, contributed by a plugin through ctx.systemPrompt.section(). Avoid: block, snippet

Assembly: The collated output of assemble() — sections, tool schemas, and resolved prompt variables — before rendering.

Full system prompt: The rendered text the model actually receives: all sections interpolated and joined. There is no other composition path. Avoid: using "system prompt" for any single fragment

Persona: The per-agent, deployment-authored prompt fragment (config key systemPrompt on an agent). A template, not final text; rendered as the order-0 section. It is one section of the full system prompt, never the whole. Avoid: calling it "the system prompt"

Prompt variable: A named per-assembly value contributed by a plugin (e.g. model) and referenced from section or persona text as {{name}}. Avoid: placeholder, macro

Assemble context: The per-agent input to one assemble() call, carrying which agent the prompt is for. Merge-extensible; variable providers and section text providers are functions of it.

Tool guidance: The model-facing usage prose for one tool, owned by the tool's package as a section (order band 100199) — never hand-written in leaf config. Avoid: tool prompt, tool docs

Language — subagents

Context contract: Whether a subagent provider's child sees the parent conversation (inheritsParentContext): fork inherits the log, spawn and ACP start fresh. Declared by the provider, consumed by tool wording.