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).
38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
# 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 100–199) — 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.
|
||
|