Interrogation Page Archetype — Stage Zero Spec
Alignment status: review. Report-only design spec for moving research-skill interrogation out of the terminal and into a dedicated, looping HTML interrogation/ page that runs as stage zero before the existing framework/scope page and the alignment review page. No conventions or skills are modified by this page — it exists to align on the design before any implementation.
scoped (1–3 question cap)Table Of Contents
- The Problem (Evidence Recap)
- Decisions Already Made
- Proposed: Interrogation Page Archetype
- Stage Model: 0 / 1 / 2
- The Round Loop & Confidence Gate
- Round 1 = Assumptions Manifest
- File Naming, Location & Answer Capture
- Convention Integration Map
- Open Tradeoffs
- Evidence Matrix
- Assumptions, Alternatives & Gaps
- Glossary Additions
- Review Gates
- Compile Feedback And Answers
The Problem (Evidence Recap)
Audited Claude + Codex history confirmed the felt regression. In Codex research-skill sessions, mean agent questions fell from a peak of ~28/session (early May) to ~0.3/session (June). The drop is precisely datable to the 2026-05-21 "require alignment pages for all skills" commit.
The root cause is not the alignment page absorbing questions. It is two compounding structural facts:
- Tier classification. ~25+ research/analysis skills are
context_intake: scoped, which caps user interrogation at 1–3 questions by design (docs/interview-convention.md:41), and per-skill instructions often make even those optional ("only if unclear",competitive-analysis/SKILL.md:430). - Cold-start routing. 3 of 4 flagship research orchestrators (
competitive-analysis,positioning,journey-map) route a cold start "directly to state E" — the framework-selection page — with no deep interview at all (docs/research-session-loop-convention.md:234–239).
The produced pages then make it feel like rubber-stamping: across all 77 alignment pages, the only controls are approve / thumbs-down / clarification triads plus multiple-choice routing gates whose options the agent pre-authored. There is not a single open free-text field that shapes the research before it is produced.
Agent Questions Per Research Session Over Time
| Period | Mean agent questions / research session |
|---|---|
| 2026-04 | 6.3 |
| 2026-05-01 to 05-18 | 28.0 |
| 2026-05-19 to 05-31 | 3.2 |
| 2026-06 | 0.3 |
Decisions Already Made
These were settled in conversation before this page. They frame the spec below; the gates let you reopen any of them.
| # | Decision | Rationale |
|---|---|---|
| D1 | Interrogation moves out of the terminal into its own HTML page. | User preference: the terminal interview is no longer the desired surface; interaction should be HTML, like alignment review. |
| D2 | It is a stage zero, not a replacement of the existing framework/scope page (stage one). | Elicitation must precede selection so framework options are informed by answers, not pre-authored blind. |
| D3 | It repeats over and over as an iterative loop until the agent's confidence gate passes. | Restores adaptivity — each round's follow-ups depend on the prior round's answers, recreating "relentless interrogation". |
| D4 | The assumptions manifest is incorporated as round 1, not replaced. | The manifest forces evidence-grounded, non-lazy questioning; it is the ideal seed for the loop. |
| D5 | Each round is a separate per-round file (proposed default, see open tradeoff). | Provenance: each round's questions and answers become a durable, diffable artifact, matching the Research Session Loop's artifact-per-phase model. |
Proposed: Interrogation Page Archetype
A new HTML page archetype, distinct from the alignment page, governed by its own convention doc (docs/interrogation-page-convention.md, to be authored) and its own audit. Its purpose is elicitation before research, the inverse of the alignment page's approval after research.
Defining contrasts vs. the alignment page
| Dimension | Interrogation page (new) | Alignment page (existing) |
|---|---|---|
| Purpose | Elicit unknowns the agent cannot infer | Review/approve produced deliverables |
| Timing | Before research (stage zero) | After research (stage two) |
| Primary control | Open free-text answers + recommend-by-default choices | Approve / thumbs-down / clarification + routing radios |
| Lifecycle | Loops: round N spawns round N+1 until confidence gate passes | Single page, review → confirmed |
| Directory | interrogation/ | alignment/ |
| Audit | New audit-interrogation-pages.mjs (must require real open questions) | audit-alignment-pages.mjs |
What it must NOT become
The audit for this archetype must enforce that it does not collapse back into approve-only UX. Minimum: each round page must contain at least one genuinely open input (free-text or recommend-and-override) that shapes downstream research, not only accept/reject on pre-generated content. This is the structural guard against re-introducing the rubber-stamp problem in a new wrapper.
Stage Model: 0 / 1 / 2
Interrogation is inserted as a new state before the existing first interaction. It does not replace stage one; for scoped skills it will feel like the new first screen because framework selection used to be first.
stage 0 → interrogation/{skill}-r1..rN.html [ELICITATION: open input drives research]
loop until confidence gate passes
stage 1 → alignment framework/scope page [SELECTION: options informed by stage 0]
research runs
stage 2 → alignment/{skill}-{topic}.html [REVIEW/APPROVAL of deliverables]
This preserves the convention's firewall semantically — intake → selection → review — and only changes where intake happens (HTML, not terminal). It generalizes across tiers: deep skills get a rich stage-zero loop; scoped skills get a lighter one. No tier needs terminal interrogation anymore.
The Round Loop & Confidence Gate
Each round is one heavy phase of the Research Session Loop: the agent builds an interrogation page, stops, the user answers, the agent reads the answers and runs its confidence gate.
round = 1
build interrogation/{skill}-r{round}-{branch}.html (manifest if round==1, else follow-ups)
STOP → user answers → compiled answers YAML
agent reads answers, runs CONFIDENCE GATE:
confident enough to produce useful research?
NO → round += 1; build next round of deeper/follow-up questions; repeat
YES → write coverage checkpoint; advance to stage 1
Confidence gate (loop exit)
The gate is a contract, not a fixed round count. It restores the "relentless until confident" feeling. Proposed enforcement: the agent may not advance to stage one until (a) at least one interrogation round is completed, and (b) every interview area defined by the skill is covered or explicitly waived by the user. The coverage checkpoint (today's deep-tier Phase 4, interview-convention.md:31) becomes the loop's exit gate — the agent's "here is everything we established, confirm completeness or flag gaps" page.
Volume expectation
Fewer artifacts than it sounds. A 30–40-question terminal interview was ~12 chunked turns; rounds of 6–8 questions each land at ~3–6 rounds for a deep skill, 1–2 for a scoped one.
Round 1 = Assumptions Manifest
The assumptions manifest (interview-convention.md:27) is not a separate concern from interrogation — it is the ideal first round of it. It bans lazy "tell me about..." questions by forcing the agent to do its homework first and ask only where it has no basis to assume. Incorporating it beats replacing it: delete it and round 1 regresses to open filler prompts.
| Round 1 element | Source today | Rendered as |
|---|---|---|
3–7 source-tagged assumptions ([from prompt], [from repo], [inferred]) | Assumptions manifest, Phase 2 | Interactive confirm / correct / flag controls (the approve/edit/reject/flag gate the alignment convention already has) |
| First batch of genuine open questions | Phase 3 interview loop, opening turn | Free-text answer fields + recommend-and-override choices, only where no assumption is derivable |
Every correction you make to an assumption seeds round 2's follow-ups — that is the mechanism that makes the loop adaptive. So the manifest bookends the loop: assumptions manifest = entry (round 1), coverage checkpoint = exit.
File Naming, Location & Answer Capture
Location and naming
- Directory:
interrogation/, a sibling ofalignment/. Keeping these out ofalignment/matters concretely —scripts/audit-alignment-pages.mjsauditsalignment/*.htmlagainst the alignment-page contract, which elicitation pages won't and shouldn't satisfy. - Filename:
interrogation/{skill}-r{N}-{branch}.html. The{branch}stub handles research forks (multiple product paths → parallel question threads); in the flat common case{branch}== the topic slug, matching today's{skill}-{topic}naming.
Answer capture (what drives "repeat over and over")
Each round page needs a captured-answers sidecar — the same "Compile YAML" mechanism the alignment page already uses — so the agent reads round N's answers back, runs the confidence gate, and only then decides whether to emit round N+1 or write the coverage checkpoint. Proposed sidecar path: research/_working/interrogation-{skill}-r{N}.yaml (or the product-path equivalent), preserving the round-by-round audit trail.
Convention Integration Map
Where the change lands if approved (report-only — none of these are edited yet).
| Surface | Change |
|---|---|
docs/interrogation-page-convention.md (new) | Author the archetype: page structure, round loop, confidence gate, manifest-as-round-1, answer sidecar, file naming. |
docs/interview-convention.md | Replace "happens before alignment-page review" terminal-intake language (line 11) and the per-tier phase prose so intake is delivered via interrogation pages, not terminal turns. Map Phase 2 manifest → round 1; Phase 4 coverage checkpoint → loop exit gate. |
docs/research-session-loop-convention.md | Add a stage-zero interrogation state before state E for the scoped orchestrators (lines 234–239); model each round as one loop session. |
docs/alignment-page-convention.md | Add a cross-reference clarifying alignment pages are stage two only; elicitation lives in the interrogation page. |
scripts/audit-interrogation-pages.mjs (new) | Audit the new archetype; enforce ≥1 open input per round and presence of the confidence/coverage exit gate. |
| Contract test (new) | Assert a skill cannot reach stage one until the confidence gate passes with ≥1 completed interrogation round — mirroring customer-discovery's existing "zero questions = contract violation" enforcement. |
Per-skill SKILL.md (scoped strategy skills) | Reclassify judgment-heavy skills (positioning, value-prop-canvas, lean-canvas, pmf-assessment, journey-map) so they get a real stage-zero loop, not a 1–3-question cap. |
Open Tradeoffs
| Open question | Option A (recommended) | Option B | Decided by gate |
|---|---|---|---|
| Per-round files vs. single evolving page | Per-round files — clean provenance, clear "round done", matches archive-before-replace ethos | One evolving {skill}-interrogation-{topic}.html — fewer files but mutates in place, loses round audit, awkward to re-open | Round-File Model gate |
| Does HTML interrogation fully replace terminal questioning? | Replace for research/analysis skills; keep terminal AskUserQuestion only as a degraded fallback when HTML can't be opened | Allow both surfaces interchangeably | Scope & Non-Goals gate |
| Scope of first implementation | Pilot on 1–2 skills (e.g. positioning, customer-discovery) before repo-wide rollout | Roll out to all research skills at once | Post-Approval Route gate |
Evidence Matrix
| Claim | Evidence | Inference | Confidence | Assumption status | Decision impact |
|---|---|---|---|---|---|
| Question volume collapsed at alignment-page rollout | Codex transcripts: mean 13.1 (before May 19) → 0.4 (after); monthly 6.3 / 28.0 / 3.2 / 0.3; commit a839142e dated 2026-05-21 | The mandatory alignment page coincides exactly with the drop | High | "?" is a proxy for questions, validated by spot-reading numbered interview turns; ratio too large to be noise | Justifies a structural intake change, not a per-skill tweak |
| Root cause is tier classification, not the page | interview-convention.md:41 caps scoped intake at 1–3 questions; competitive-analysis/SKILL.md:430 "only if unclear"; research-session-loop-convention.md:234–239 cold start → state E | Skills that should interrogate deeply are classified scoped with an optional question budget | High | Tier assignments and routing are explicit in cited lines; causal link to the felt drop is well-supported inference | Stage-zero interrogation + reclassification both required |
| Produced pages are approve-only | Across 77 alignment pages: only approve/down/clarification triads + canned routing radios; zero open type="text" fields driving research | The page surface makes intake feel like rubber-stamping even where questions exist | High | Counts from grep + deep reads of ~14 pages; remainder inferred from shared template | New archetype must enforce ≥1 open input per round |
| Deep tier still works when assigned | customer-discovery/SKILL.md: "if you asked the user zero questions, the interview did not happen... contract violation" | The enforcement pattern exists and can be generalized to the confidence gate | High | Quoted directly from the skill | Model the new contract test on this |
| "30–40 questions, 3-question chunks" was never a literal spec | No git match for fixed counts or "3 at a time"; deep tier always said "1–3 per turn... until covered" | The felt loss is real but the old behavior was emergent, not a deleted script | Medium-high | Based on absence-of-evidence in git history | Spec a confidence/coverage gate rather than a hardcoded question count |
Research Completeness
Is the evidence behind this spec sufficient, or should more be gathered before committing to the design?
Assumptions, Alternatives & Gaps
Confidence Register
| Assumption | Meaning | Confidence | What would change it |
|---|---|---|---|
| HTML elicitation can carry adaptive interrogation | A loop of per-round pages reproduces the adaptivity of a terminal interview | Medium | A pilot showing users tolerate multi-round page-opening without fatigue |
| The confidence gate is enforceable | A contract test can block stage one until coverage is met | Medium-high | Whether "coverage" can be checked mechanically vs. needing agent judgment |
| Per-round files are the right provenance unit | Round-by-round artifacts beat one evolving page | Medium | Open tradeoff — decided by the Round-File Model gate |
Alternatives Considered
| Alternative | Reason not chosen |
|---|---|
Keep interrogation in the terminal, just reclassify skills to deep | Rejected by user (D1): the terminal is no longer the desired surface |
| Replace stage one with the interrogation page | Rejected (D2): merging elicitation and selection makes framework options uninformed |
| Single static interrogation page | Rejected (D3): a static form can't branch; loses the adaptivity that is the whole point |
| Replace the assumptions manifest | Rejected (D4): the manifest is the discipline that prevents lazy open questions |
Gaps
| Gap | Effect |
|---|---|
| Claude agent questions not directly countable | The before/after numbers come from Codex transcripts; Claude's AskUserQuestion usage couldn't be quantified from logs |
| No prototype of the round loop yet | Page-fatigue risk is estimated, not measured; a pilot would de-risk it |
| Mechanical "coverage" definition undefined | The confidence gate's enforceability depends on resolving this during implementation |
Glossary Additions
Proposed terms introduced by this spec. Only approved terms are appended to research/glossary.md during the confirmed-page write step.
| Term | Definition | Source | Category | Decision |
|---|---|---|---|---|
| Interrogation page | HTML page archetype for eliciting user input before research (stage zero), distinct from the alignment page which reviews output after research | analyze-sessions | workflow | |
| Stage zero | The elicitation phase inserted before the framework/scope page (stage one) and the alignment review page (stage two) | analyze-sessions | workflow | |
| Confidence gate | The loop-exit contract that blocks advance to stage one until the agent has run ≥1 interrogation round and covered all defined interview areas or had them waived | analyze-sessions | workflow | |
| Interrogation round | One iteration of the stage-zero loop: a single interrogation page plus its captured-answers sidecar | analyze-sessions | workflow |
Review Gates
Spec Direction
Approve the interrogation-page archetype as specified — stage zero, looping rounds, round 1 = assumptions manifest, confidence-gate exit?
Round-File Model
How should rounds be stored?
Scope & Non-Goals
Should the HTML interrogation page fully replace terminal questioning for research/analysis skills?
Artifact Destination
Where should this spec live?
Proposed File Changes
This is report-only. Confirm that no conventions, skills, scripts, or tests are edited until implementation is separately approved.
Post-Approval Route
After approval, how should this route next work?
Compile Feedback And Answers
Use section feedback (emphasize / thumbs-down / clarification) for concerns on any single section before answering all gates. Use Compile Responses for gate answers and/or selected section feedback; it enables as soon as one gate is answered or one section feedback is selected.