desk-research-project-synthesize · git:20260819.8428185 · 2026-08-19 · sha256 eccaaa1847cd3af1

desk-research-project-synthesize git:20260819.8428185A

Immutable. This exact content is served forever at /api/v1/blob/eccaaa1847cd3af1.

---
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.