# Critique protocol

How a fresh-context critique of a repo or the ecology is instantiated, and how the advisor surface that produces one is bootstrapped. This doc governs *instantiation mechanics*; the critique prompts themselves (`prompts/repo-critique-*`, `prompts/ecology-critique-*`) govern *what to read and assess*.

## Two kinds of entry prompt

There are two distinct kinds of prompt, and conflating them is a launch misfire:

- **Read-reliably prompts** set up *how a surface reads* before it does anything — the advisor bootstrap (advisor role + fail-closed connector read-path discipline) and the working-session bootstrap ([`prompts/claude-code-initial-prompt.md`](../prompts/claude-code-initial-prompt.md)).
- **Read-and-assess prompts** set up *what to read and what to judge* — the critique prompts.

A critique takes a read-and-assess prompt **directly**. The read-reliably setup either is already true by construction (a filesystem executor) or is installed **once at the project level** (a connector advisor) — never re-pasted per invocation ahead of the critique prompt.

## Advisor bootstrap lives at the Project level

A GPT advisor surface is bootstrapped through two Project-level carriers: the **mounted surface bootstrap**, which carries the complete advisor contract, and the **thin Project Instructions floor**, which carries only the authority, wall, exact-source, and bootstrap-failure rules that must bind before any retrieval succeeds. Neither is pasted per thread. [`templates/advisor-project-bootstrap.template.md`](../templates/advisor-project-bootstrap.template.md) is the copyable master for the contract; [`templates/advisor-project-instructions.template.md`](../templates/advisor-project-instructions.template.md) for the floor.

What the Project's **Sources** mount is the surface **bootstrap** — one standing Markdown file carrying the advisor contract and the exact locator for the live source index. The index itself ([`templates/_INDEX-project.template.md`](../templates/_INDEX-project.template.md)) is **fetched at that locator, not mounted**, and the canonicals are fetched at the locators the index declares. Deployment contract: [`advisor-project-surface-architecture.md`](advisor-project-surface-architecture.md).

**Why once at the project level, not per thread:** re-pasting the advisor prompt into a Project that already holds a prior version in its thread history makes the model *review the revision* instead of *adopt the role* — a launch misfire the **bootstrap + floor pair** sidesteps, because both are installed at the Project level rather than carried into a thread. The advisor discipline (role + fail-closed connector read-path) is the durable asset; this is a relocation of *where* it lives, not a change to *what* it says.

The former per-thread `advisor-initial-prompt` is deprecated. Its current operative requirements are owned by the advisor-surface registry and the bootstrap template; the Project-Instructions template is only the pre-retrieval floor.

## Fresh-context critique: two instantiation mechanics, one per executor type

"Fresh context" is achieved differently on each side, and **both skip any per-invocation bootstrap paste and take the critique prompt directly**:

- **Claude executor side** — the critique runs as a **subagent** (fresh context via the Agent tool) spawned from the persistent main control-surface Claude thread. The main thread is *compacted over time* to manage its context window — not replaced by a fresh thread. The subagent has filesystem access, so it reads reliably by construction and takes the critique prompt directly. It does **not** stack the working-session bootstrap.
- **GPT advisor side** — the critique runs as a **fresh thread inside a separate, empty mirror GPT project** holding no other threads. The mirror carries the **same mounted surface bootstrap** and the **same thin Project Instructions floor** as the working project, and — like the working project — **no mounted index**: the index is fetched live at the bootstrap's locator. The empty mirror project is what guarantees a genuinely fresh advisor thread: a fresh thread inside the working project would still inherit that project's conversation history ambiently. Because the mounted bootstrap carries the contract, the fresh thread takes the critique prompt directly too.

**The unifying rule:** a **filesystem executor** (Claude subagent) reads reliably by construction → straight to the critique prompt; a **connector advisor** (GPT) needs read-path calibration → installed once at the Project level as the mounted bootstrap plus the thin Instructions floor, not re-pasted per thread → then straight to the critique prompt. "Fresh context" = a spawned subagent on the Claude side, an empty-mirror-project fresh thread on the GPT side.

## The session-start prompt is not critique instantiation

[`prompts/claude-code-initial-prompt.md`](../prompts/claude-code-initial-prompt.md) is a **working-session bootstrap** — "you are about to *operate* on this repo: orient and await direction." It is scoped to one repo and ends by awaiting direction. It is **not** stacked before a critique: doing so mis-scopes a system- or repo-wide critique to a single working repo and stalls it on "await direction." A working session may open with it; a critique subagent does not.

## Coverage band — declare it first

A critique — especially an ecology critique — asks for a large surface area. Without a declared band, successive passes drift toward coverage-theater (implying total coverage while sampling). Every critique **opens by declaring the band it actually covers**, for example:

```
band: core ecology (control-surface · method-ASK · design-system-ASK · ASK front door)
      + publication/propagation drift; downstream deep-state excluded except AP/UO front doors
```

The band is an honesty instrument: it states what was and was not in scope, so a reader never mistakes a scoped pass for an exhaustive one.

## Package availability — non-repo surfaces are conditional on the reader

Some critique inputs are not repo files: the operator-side diagram packages (D03 topology, D04 wall/grant boundary), the live [`A-S-K.studio`](https://a-s-k.studio/) render, the operator-side trackers and source-of-intent masters. Whether these are readable **depends on the surface running the critique**:

- a **filesystem executor** (Claude subagent) reads them directly from disk;
- a **connector advisor** (GPT) reads them through whatever connectors the surface exposes: with a **Dropbox connector**, it can **search/fetch the operator-side source directly** (`VERSION.md`, `*.html`, `*.source.js`, scratch, root-canonicals) from the named `*-EXTERNAL/` path; without one, the source must be **mounted into the advisor Project's Sources** or uploaded.

So the rule is: **the connector advisor fetches the package source directly when a Dropbox connector is available; otherwise mount/upload it — and if neither reaches it, the advisor declares that leg "not reviewed."** A critique never claims to have reviewed a surface it could not read — the same read-path honesty required for repo files and PRs. Connector access is a read path, not a status change (a fetched scratch file stays scratch), and never browses private personal roots unless ASK names the exact path — see the read-path + wall guard in [`templates/advisor-project-bootstrap.template.md`](../templates/advisor-project-bootstrap.template.md).

**Consequence:** do **not** mount operator-side canonicals into the advisor Project's Sources by default. Where the connector exists, Dropbox is the **preferred live read path**. An advisor Project should normally mount **only the surface bootstrap** as a standing Source; the source index / path map is **fetched live** at the locator the bootstrap declares and is **not** a standing Source, and the canonicals are fetched at the locators the index declares.

Mounting or uploading a package source is a **temporary, task-specific fallback** — for a critique whose package the connector cannot reach or whose path is ambiguous. It is not another standing architecture carrier: retire it once live access returns. Deployment contract: [`advisor-project-surface-architecture.md`](advisor-project-surface-architecture.md).

## Related

- [`prompts/repo-critique-initial-prompt.md`](../prompts/repo-critique-initial-prompt.md) · [`prompts/ecology-critique-initial-prompt.md`](../prompts/ecology-critique-initial-prompt.md) — what to read and assess (single repo · whole ecology).
- [`prompts/repo-critique-synthesis-prompt.md`](../prompts/repo-critique-synthesis-prompt.md) · [`prompts/ecology-critique-synthesis-prompt.md`](../prompts/ecology-critique-synthesis-prompt.md) — fold a second independent critique into an advisory plan.
- [`prompts/repo-critique-execution-prompt.md`](../prompts/repo-critique-execution-prompt.md) · [`prompts/ecology-critique-execution-prompt.md`](../prompts/ecology-critique-execution-prompt.md) — hand the plan back to the execution surface for scoped implementation.
- [`templates/advisor-project-bootstrap.template.md`](../templates/advisor-project-bootstrap.template.md) — the full advisor contract, mounted once per advisor Project.
- [`templates/advisor-project-instructions.template.md`](../templates/advisor-project-instructions.template.md) — the thin pre-bootstrap floor installed in the Project Instructions field.
- [`prompts/claude-code-initial-prompt.md`](../prompts/claude-code-initial-prompt.md) — the working-session bootstrap (distinct from critique instantiation).
