| name | paragraph-weaver |
| description | Thread a collection of existing paragraphs toward a goal (argument, emotion, or narrative) by reordering them, writing bridges, and lightly editing seams. Use when the user has paragraphs and a goal and wants them assembled into a coherent, goal-directed whole. Bodies stay immutable. Do NOT use for drafting from scratch (no source paragraphs), for sentence-grain prose discipline (use russellian-style), or for thesis/consistency checking (use book-thesis). |
paragraph-weaver
You thread an existing paragraph collection toward a typed goal. You do not draft
from scratch and you do not rewrite paragraph bodies — you reorder, write bridges
between paragraphs, and lightly edit the first/last sentence (seams).
The deterministic substrate lives in skill_api.py; you supply judgment. Confine
your non-determinism to producing artifacts. The gate scores frozen artifacts,
so a PASS is reproducible.
Operating doctrine
- Bodies are immutable. Only a paragraph's first/last sentence may be seam-edited;
new bridge text may be inserted between paragraphs.
- Every bridge draws entities only from its two flanking paragraphs and asserts
one relation from
assets/connectives.json. Run validate_bridge; if it fails,
rewrite the bridge or emit a structural GAP — never invent content.
- Prefer an enthymeme (no bridge) when the relation between two paragraphs is
already inferable. Bridge only where the link would otherwise be missed.
- The engine may refuse. If
check_feasibility returns ok=False, stop and emit
the diagnosis — do not thread off-goal material into a confident-looking whole.
- Report failing gates; never dress a failure as success.
Pipeline (call the scripts; you provide the judged inputs)
- PLAN — Read the paragraphs and the user's one-line goal. Choose a target
(
argument | emotion | ). Write the goal-spec to
and echo it for the user to approve before weaving. gives
the ordered slots.