problem definition
Input: research area and in-scope papers
Output: a survey outline
Skills:
create-outline— orchestrates the complete evidence, design, review, and finalization pipelineweb-research— researches the area online and writes a concise, cited field reportselect-outline-lens— develops three organizing-lens variants, compares them, and synthesizes an outline backbonecompare-outline-variants— compares the lenses embodied in complete outline variants and selects a backboneselect-outline-structure— develops structural refinements while holding the selected lens fixed, then promotes one complete candidatecompare-outline-refinements— compares the baseline and three refinements without synthesizing across candidatesreview-outline— runs the validated editorial review-and-revision loop for at most three cyclesreview-outline-counterfactual— tests the candidate against a credible alternative structure without source anchoringreview-outline-ownership— audits explanatory ownership, peer relations, and fidelity to the selected lensreview-outline-decisions— walks the four research decisions the survey should support using field evidencecompare-outline-reviews— verifies the three Review Variants and produces the final critique and dispositionoutline-critique— defines the five-dimension, non-compensatory critique and verdict contractoutline-revision— applies required repairs while preserving accepted structure and contentfinalize-outline— converts accepted Markdown to JSON, adds matching keywords, and reports paper coverage
algorithm
Two-part process: evidence gathering → outline design
evidence gathering
Goal: collect grounded signals about the area’s vocabulary, mechanisms, relationships, tensions, and missing threads.
- Collect paper tags and their frequencies during host-side preprocessing.
- generate tags for each paper
- use agglomerative clustering to condense all paper tags into canonical tags (currently )
- count how frequently each canonical tag occurs across the papers, producing
- Dispatch a
web-researchsubagent.- research online and retain source titles and URLs
- write the concise, cited report to
out/web_research.md
outline design
Goal: shape a coherent survey outline that helps readers understand the field, select appropriate methods, identify open problems, and avoid duplicating existing work.
- Select the organizing lens with
select-outline-lens.- generate three complete outline variants using , , and , each based on a different organizational lens
- spawn an
outline-variant-comparisonsubagent usingcompare-outline-variants - compare how each lens supports understanding the field, choosing methods, finding open problems, and avoiding duplicated work
- choose one organizational lens and synthesize its selected backbone with compatible learnings from the other lenses, producing the initial outline draft
- Select its structural realization with
select-outline-structure, holding fixed.- preserve as the baseline candidate
- generate three complete refinement candidates that explore varying ordering, boundaries, hierarchy, selective depth, and top-level compression
- spawn an
outline-refinement-comparisonsubagent usingcompare-outline-refinements - deterministically choose and promote one complete candidate as ; do not synthesize across refinement candidates
- Review and revise with
review-outlinefor at most three cycles.- for each version :
- concurrently spawn three fresh-context Review Variants:
- counterfactual: read only and test a credible alternative ordering or partition
- ownership: read plus prior lens/refinement comparisons; do not read tags or web research
- research decisions: read , , , and , then walk the four supported reader tasks
- spawn an
outline-review-comparisonsubagent usingcompare-outline-reviews; it independently checks the candidate and evidence, verifies reviewer claims, and writes critique - validate that contains all five rubric dimensions, consistent statuses, the correct target count, and one recognized verdict
- if
ready_for_instrumentation, accept and promote - if
review_unresolved, repeat the review when a cycle remains; otherwise stop without promotion - if
needs_revisionbefore cycle three, spawnoutline-revisionto produce - if changes headings, nesting, or order, return it to the three-review loop
- if it changes only descriptions, verify every requested repair and unchanged heading order directly; accept it without another full review when those checks pass
- concurrently spawn three fresh-context Review Variants:
- for each version :
- Finalize the accepted outline with
finalize-outline.- convert the accepted outline from Markdown into JSON
- preserve the accepted Markdown structure exactly
- add lowercase matching keywords, surface forms, abbreviations, and synonyms to each node
- use
inputs/papers.jsononly now, through the sizing script, to tune keyword coverage and produceout/outline_paper_list.json - validate both JSON artifacts and report top-level sections, total nodes, and matched/other percentages
- return the finalized outline
