workflow: add results-driven literature-positioning step (post-results related-work sweep)
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Overview / Motivation
The workflow does a thorough literature review before experiments (planner §11 hyperparameter grounding via the arXiv MCP; the CLAUDE.md "before any new research project / direction" rule; the clarifier) — but that review is keyed on the question and the training/eval recipe, not on what the experiment actually found.
After results land, no agent runs a fresh, results-driven literature sweep — i.e. "we measured X; who else has reported X, and does their result agree, contradict, or extend ours?". The post-hoc related-work positioning currently rests on exactly three weak legs:
- the two hard-coded spiritual-sibling papers (Persona Vectors, arXiv 2507.21509; Persona Features Control EM, arXiv 2506.19823);
- whatever already lives in
docs/papers.md; - the author remembering.
The arXiv MCP machinery to do a findings-driven search is already wired
(.claude/rules/arxiv-mcp.md: mcp__arxiv__search_papers,
mcp__arxiv__semantic_search, mcp__arxiv__read_paper, plus
arxiv-latex) — it is simply never invoked at results time.
Goal
Add a results-driven literature-positioning step to the post-results
/issue workflow: after the analyzer produces the interpretation /
clean-result, an agent searches the literature (arXiv MCP + web) keyed on
the experiment's measured findings and produces a short, verified
"Related findings" note positioning our result against existing published
work (replicates / contradicts / extends / no prior report found).
Workflow gap
- Bug observed: there is no step that searches the literature for work matching our results; related-work positioning is front-loaded (question/recipe-driven at plan time) and never repeated against the actual finding.
- Why it is a workflow gap: the capability (arXiv MCP) is wired and
every clean-result has a
## Goal→**Broader narrative:**slot that is the natural home for results-positioning, but nothing populates it from a fresh findings-keyed search — so the project's positioning is systematically blind to any prior work outside the two pinned papers. - Confidence (emitter): medium (the gap is real and confirmed; the best implementation shape is a genuine design call — see below).
Design options (planner picks; do NOT pre-commit in this body)
The planner + adversarial-critic ensemble should weigh at least these and choose, grounding the choice:
- New dedicated post-analysis agent (e.g.
related-work-finder): fresh-context agent spawned at the Step 10 post-completion batch (alongsidefollow-up-proposer/living-docs-updater), reads the landed clean-result findings, runs a bounded arXiv/web search, and proposes (never auto-applies) an addition to the clean-result## Goal→**Broader narrative:**and/or adocs/papers.mdupdate. NOTE: adding a brand-new agent is the more architectural option (per.claude/rules/workflow-fix-on-bug.md§ Architectural greenlight) — if chosen, flagarchitectural: trueand park atplan_pendingfor the user; the user has pre-authorized running this task but the agent-vs-lens shape is theirs to confirm. - New lens in
interpretation-critic(and its codex twin): a "results-positioning" lens that requires a findings-keyed literature check and flags REVISE if the writeup makes a novelty/agreement claim with no literature search behind it. Lighter-weight, non-architectural, auto-mergeable — but couples a generative search to a critic role, which may be a mis-cast per.claude/rules/agents-vs-skills.md. - Extend
living-docs-updater: it already touchesdocs/papers.mdwhen a result "replicates / contradicts / extends a sibling-paper finding" — but today it only reads the existingdocs/papers.md. Add a fresh arXiv search so it can discover new related papers, not just reconcile against ones already logged.
A hybrid is fine (e.g. a generator agent + a critic lens that checks it ran). Decide based on agents-vs-skills casting and the cost/benefit.
Constraints / invariants
- Findings-driven, not question-driven — this is the distinguishing property vs the planner's front-loaded review. Key the search on the actual measured result, not the Goal or the recipe.
- Verified citations only — zero fabrication. Every cited paper must
be a real, resolvable arXiv id / DOI confirmed via the MCP in the same
turn it is written (mirror the analyzer's verbatim-fidelity rule and
feedback_never_fabricate_shadiscipline). No invented titles, no hallucinated "as shown in [X]". If no prior report is found, say so explicitly — "no prior report located" is a valid, useful output. - Propose, never auto-apply to living docs — same contract as
living-docs-updater(writes a diff/note for the user gate, never edits live docs, never runs git). The clean-result## Goaladdition routes through the analyzer/clean-result-critic loop like any other body edit. - Advisory, not a hard promotion gate — a thin or empty literature
result must not block
awaiting_promotion. (Planner may argue for a soft WARN; do not make it a blocking gate without explicit rationale.) - Integrate with the v4 clean-result spec — the natural home is
## Goal→**Broader narrative:**(SPEC.md §§ 390-475). Must not breakverify_task_body.py/audit_clean_results_body_discipline.pycaps (Broader narrative is part of the prose budget). If a new subsection is proposed, update SPEC.md + the verifier together (SPEC.md is source of truth — read it first). - Bounded cost — 0 GPU-h; cap the arXiv/web search breadth so it is a few MCP calls, not an unbounded crawl. State the cap.
- Workflow-surface only —
.claude/agents/*.md,.claude/skills/issue/SKILL.md(+markers.mdif a marker is added),.claude/rules/*.md,.claude/workflow.yaml,CLAUDE.md, and the clean-result SPEC + verifier if the body shape changes. Never experiment code,configs/, ortasks/. - If a new agent is added, also update the ontology table in
.claude/rules/agents-vs-skills.mdand the/issuecomposition diagram.
Scope / surfaces
- Likely primary targets: a new
.claude/agents/related-work-finder.mdOR.claude/agents/interpretation-critic.md(+codex-interpretation-critic.md) OR.claude/agents/living-docs-updater.md;.claude/skills/issue/SKILL.md(wire the spawn into Step 9/10);.claude/skills/clean-results/SPEC.mdscripts/verify_task_body.pyif the body shape changes;.claude/workflow.yaml(marker, if any);CLAUDE.md(document the step).
grep -rn 'Broader narrative' .claude/and the post-results Step 9/10 flow in SKILL.md before editing, to find every integration point.
Acceptance criteria
- After an experiment's results land, the workflow runs a findings-keyed literature search and surfaces a "Related findings" positioning result (replicates / contradicts / extends / none-found) for the user.
- The positioning lands in (or proposes a diff to) the clean-result
## Goal→**Broader narrative:**and/ordocs/papers.md, gated for user review where a living-doc edit is involved. - Citations are MCP-verified; the "none found" path is explicit.
- The step is non-blocking for promotion and 0 GPU-h.
scripts/workflow_lint.py --check-askspasses; ruff on touched files passes; CLAUDE.md / workflow.yaml / the rule file stay consistent; if the v4 body shape changes, SPEC.md + verifier + critic lenses move together.