git:20260727.7ba66d5 to git:20260819.8428185
78 added, 0 removed. Audit A to A.
---
name: desk-research-project-synthesize
description: "Synthesize a research project into its typed verdict and a self-contained governance brief. Triggers on project-lifecycle phrasing — \"synthesize the project\", \"write up the findings\", \"produce the brief\" — inside an existing project folder. Reads synthesis-matrix.md + memos.md and writes BOTH the project's own typed synthesis (<type>.md, named by the project's shape) AND a single-file <topic-slug>-brief.md that governance can lift whole into an RFC. Applies GRADE confidence + ≥3-source triangulation; warns when the matrix is empty (digest was skipped). The brief is answer-first, self-contained, cited and per-finding confidence-tagged, with a Known unknowns section. Prompt-only: advances no phase on its own."
---
# /desk-research-project-synthesize
The **synthesis** phase of a research project. It reads the digest and emits two
artifacts: the project's own **typed verdict** (for the project's own readers)
and a **single-file governance brief** that can travel out of the folder into an
RFC, ADR, or spec.
## Output rendering
Rationale / narrative — Use short ## headings and 2–3 sentence paragraphs. Don't force narrative into a table.
Key–value / one record — For a single record's fields, use an aligned key: value list, not a two-row table.
## When to invoke
Inside an existing project folder with a populated digest, on phrasing like
*"synthesize the project"*, *"write up the findings"*, *"produce the brief"*.
The project should be in (or moving into) the `synthesize` phase.
## Inputs
- **Reads:** `synthesis-matrix.md` (the constructed-column concept matrix) and
`memos.md` (the analytic memos, where the working hypothesis was formed and
revised). Both from `/desk-research-project-digest`.
**Empty-matrix guard.** If `synthesis-matrix.md` is empty or absent — the digest
phase was skipped — **surface a warning** and recommend running
`/desk-research-project-digest` first. Synthesising with no digest produces an
ungrounded verdict; do not silently proceed.
## Outputs — two files
### 1. The typed synthesis `<type>.md`
The project's own verdict, named by the project's **shape** (from
`overview.md`), using the `/research` type vocabulary (§ Typed, topic-named
artifacts): a `survey` shape writes `survey.md`, a `comparison`/`decision` shape
writes `comparison-matrix.md`, an `adjudication` shape writes `hypotheses.md`,
a `structural` shape writes `blueprint.md`, a `methodology` shape writes
`methodology.md` (authored from
`../research/references/methodology-shape-template.md` — here the shape-name
equals the type-stem, so `methodology → methodology.md` follows the ordinary
`<shape-name>.md` rule, not the `adjudication → hypotheses.md` exception).
**Bare-named inside the folder** (the folder namespaces the topic). Every material claim carries GRADE confidence and
is backed by **≥3-source triangulation** per the `/research` confidence schema;
the optional `reliability`/`credibility` provenance axes inform the rating.
### 2. The governance brief `<topic-slug>-brief.md`
The **one exception to the bare-name rule** — topic-named because it travels out
of the folder. It is the distillation a code repo commits (the *decision*, not
the corpus). It MUST be:
- **Answer-first (BLUF).** The recommendation / answer is the top line, before
any supporting detail — bottom-line-up-front.
- **Self-contained.** **No cross-links to other project files** (`memos.md`,
`synthesis-matrix.md`, `sources/`). The brief is safe to copy whole out of the
folder; a reader needs nothing else. Inline what matters; cite external
sources by URL.
- **Cited and per-finding confidence-tagged.** Every load-bearing claim carries
a citation and a GRADE confidence tag, exactly as a `/research` survey would.
- **Carrying a `## Known unknowns` section** — the questions a complete answer
still needs, split into known-unknowns (answerable in principle; name the
evidence that would close them) and unknowables (no evidence settles them).
This section **maps 1:1 onto an RFC's *Evidence & prior art*** so the brief
drops straight into governance.
```markdown
# <topic> — brief
**Bottom line:** <the answer / recommendation, one or two sentences>.
## What the evidence shows
- <finding> [high] — <citation>
- <finding> [moderate] — <citation>; downgrade: <factor>
## Known unknowns
- **Known-unknown:** <open question>. Would be closed by: <evidence>.
- **Unknowable:** <question no evidence settles>. Why not: <reason>.
```
## Reused skills in this phase
- `/compare-hypotheses` **is** the `hypotheses.md` synthesis for an adjudication
shape — invoke it rather than re-deriving the matrix.
- `/devils-advocate` runs at synthesis against the typed verdict, producing the
per-finding counter-pass that hardens the brief's confidence tags before it
ships.
+ ## Project-knowledge terminal handoff
+
+ Project knowledge is an optional handoff after synthesis has completed its own
+ durable products and challenge method. It cannot participate in source
+ selection, synthesis, citation, claim formation, confidence, counter-evidence,
+ verdict, governance conclusions, or phase ownership.
+
+ ### Exact gate and non-gates
+
+ The sole positive gate is `research-project-synthesis-complete`. It fires once
+ per completed invocation only after `synthesis-matrix.md` and `memos.md` have
+ been consumed; the resolved typed verdict and governance brief exist; citations,
+ per-finding confidence, three-source triangulation, and known unknowns are
+ complete; and linked counterpoints have completed the required per-finding
+ challenge. This skill still never advances `phase`.
+
+ Any missing, empty, partial, refused, abandoned, or interrupted prerequisite or
+ product is a non-gate. Either synthesis product alone, a missing or partial
+ counterpoints artifact, an incomplete challenge, an empty matrix warning, or
+ any phase mutation prevents capture and distillation. A gate with no admissible
+ reusable residue makes no request.
+
+ ### Counter-review enquiry
+
+ For the nested challenge, this outer producer owns one consequential
+ `CQ-REVIEW` query after target and scope resolution and before the first
+ counter-position enumeration. It constructs the privacy-minimized target label
+ defined by `/devils-advocate` and passes the same sanitized envelope to every
+ per-finding pass and unchanged rerun. The nested reviewer never queries again.
+
+ The envelope contains candidate checks only. It does not select sources,
+ provide a citation or claim, strengthen confidence, decide counter-evidence or
+ a verdict, or alter the brief. Project knowledge cannot corroborate itself;
+ every adopted check requires independent direct-source verification. Missing,
+ empty, irrelevant, stale, quarantined, insufficiently authoritative, or
+ unverified results are omitted or produce an explicit caveat or abstention.
+
+ ### Scratch, products, and capture
+
+ At the gate, form only a producer-owned transient handoff scratch containing
+ independently reusable practice or carefully sanitized evidence residue about
+ corpus structure, triangulation, verification, calibration, or handoff. It must
+ not contain a matrix, memo, source corpus, quotation, citation, claim,
+ confidence judgment, counter-evidence, verdict, governance conclusion, or
+ product excerpt. Scratch is never persisted automatically; the producer must
+ not mine transcripts and must not copy raw source corpora.
+
+ Resolve eligibility before provider discovery. With Git relocation variables
+ removed, prove the Git root and every required artifact through native real-path
+ resolution as a confined regular file; reject dot-segment traversal, symlinks,
+ junctions, reparse points, non-files, I/O ambiguity, missing Git, and uncertain
+ containment. A personal or otherwise external output root emits exactly
+ `project-knowledge capture ineligible: non-repository research output`, does
+ not probe the provider, and creates no fallback file.
+
+ The gate uses the resolved typed verdict for `semantic_gate.artifact`; the
+ typed verdict, `<topic-slug>-brief.md`, and linked counterpoints in
+ `provenance.sources`; and the counterpoints for `freshness_anchor.path`. Every
+ listed path must be a confined regular file. These products prove completion
+ but remain normative research artifacts and are never copied into the lesson.
+
+ Discover the public `project-knowledge` skill only after eligibility succeeds.
+ If absent, emit exactly `project-knowledge unavailable`, create no fallback
+ file, and leave both synthesis products unchanged. Construct the published
+ typed request with `contract_version`, `lesson`, `kind`, `project_scope`,
+ `competency_facets`, `destination_hint`, `producer`, `semantic_gate`,
+ `provenance`, `freshness_anchor`, `observed_at`, and `privacy_attestation`.
+ Set `producer.workflow` to `desk-research-project-synthesize` and its version to
+ the current pack version, then invoke only `project-knowledge --capture`.
+
+ The producer must not locate journals, must not import the private writer, must
+ not invent capture IDs, must not select partitions, and must not create storage.
+ Retain only the returned `{capture_id, partition}` pairs. Optional terminal
+ distillation uses
+ `{"selection_mode":"workflow-receipts","receipts":[...]}` with only receipts
+ returned by this synthesis gate. Never use `direct-maintainer-pending`, guess a
+ receipt, drain another workflow, or distil after a failed or skipped capture.
+
## What this skill is not
- Not a corpus dump — the brief is a distillation, self-contained and
answer-first, not a tour of `sources/`.
- Not an engine — it writes Markdown the agent reasons into; nothing computes a
verdict or advances `phase`.
## Next
The typed verdict and the brief are the project's durable output. Promote
`<topic-slug>-brief.md` into governance (an RFC's `NNNN-notes/` companion, an
ADR, or a spec). Phase advance to `feedback` is **human-driven** — this skill
never advances `phase` on its own.