Literature Review domain vertical (v0.3.1)#41
Open
FuZhiyu wants to merge 67 commits into
Open
Conversation
New top-level vertical to build skills/literature-review/ — the search → screen → synthesize discipline for econ/finance reviews, shipping an interactive-setup + fan-out (screen/summarize/classify) loop-until-dry workflow over a subtree/folder paper ledger. Five children: citation-metadata-client (S2 + Crossref + arXiv, no OpenAlex, no Docker) → skill-core + zotero-add (local-connector-default add) → skill-references → discovery-wiring-and-tests. Metadata is always the published version of record, queried verbatim; PDF best-effort with a WP-vs-published divergence flag. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Discovery now leads with web search (site-scoped SSRN/NBER/RePEc/arXiv + author pages) because S2/citation-graph indexes lag the newest working papers; S2's role narrows to the citation graph + indexed semantic search. Un-indexed papers get verbatim metadata from page citation_* / Dublin Core meta tags (client gains a metadata --url fallback), never agent-authored. Zotero add: library/collection targeting is a setup-survey question the main agent asks before the loop; Web API targets any library/group + collection cleanly, local connector follows the desktop UI selection, and the requested target selects the add path. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
No API keys required — S2/Crossref/arXiv are keyless and S2 is optional (web search + Crossref carry the loop; S2 only accelerates citation snowballing). Local-connector save has no target param, so the agent must report the currently-selected library/collection and let the user switch it in the Zotero UI before saving. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
… citation/metadata client + reference doc + offline tests New skills/literature-review/ directory (no SKILL.md yet — skill-core's deliverable): - scripts/citation_client.py: stdlib-only PEP 723 client. Six JSON subcommands (search, references, citations, metadata, dedup, health) over keyless S2 / Crossref / arXiv, modeled on zotero_tool.py. Injectable transport; S2 optional with graceful degradation; keys read from env/Notes/.env, never printed. - references/citation-client.md: pins the command surface + normalized record shape that skill-core and zotero-add depend on. - scripts/test_citation_client.py: 42 offline tests (FakeTransport, no network, no keys) — dedup cascade bands, mappers, handlers, S2-outage, secret hygiene. Abstract policy prefers S2->arXiv then retains a Crossref abstract as last resort rather than blanking it (guidance deviation noted in Results). Parent task.md status is the hook's ancestor cascade. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
… suite/no-key path, dedup flag-for-review, secret hygiene verified; abstract-retention deviation accepted Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…orkflow, ledger schema, loop-until-dry executor Author skills/literature-review/SKILL.md: pushy discovery trigger frontmatter with a single-paper negative boundary; concise procedural body routing depth to the four skill-references files (by name) plus the bundled citation-client surface. Body owns the execution shape — two-part interactive-setup + fan-out workflow, dual-mode ledger schema with the version-divergence flag, and the loop-until-dry executor template with the superimplement-style dispatch loop as the alternative. Composes zotero-paper-reader / mistral-pdf-to-markdown / writing by pointer, not restatement. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…es trigger, reference contract, ledger schema, and loop-until-dry executor Verified frontmatter trigger + negative boundary to zotero-paper-reader; the four skill-references filenames form a clean downstream contract; composed skills pointed to not restated; ledger captures metadata-is-published + PDF-version-divergence; executor cites real client subcommands. Markdown self-check clean, frontmatter matches domain-skill convention. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…ge/domain references Author the four references under skills/literature-review/references/ at the filenames and load conditions fixed by the approved SKILL.md References table: search-and-screening, econ-corpus, grounding-and-extraction, synthesis-and- classification. Each states its load condition, a principle, the mechanism, and a line-by-line identification protocol (tells to flag), one level deep and standalone. Prose self-contained: no repo-internal or cross-skill pattern citations, no AI-flavored prose. All four pass the markdown renderer check. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…te path Extend skills/zotero-paper-reader with a write path defaulting to the local, no-key connector, cloud Web API as fallback. - add / attach / selected subcommands + Crossref->Zotero mapper covering journalArticle / preprint / report (report DOI -> extra; crossref JATS abstract dropped; single vs two-field creators verbatim). - stdlib direct-HTTP connector helper (uuid+urllib): non-Mozilla UA + allowed-request header, API-version 3, fresh sessionID, 409-retry; getSelectedCollection/updateSession targeting; auto path selection; DOI dedup. - 21 offline tests (fake connector + fake pyzotero); 63 passed with the existing citation-client suite. Live local smoke test landed a placeholder item with verbatim metadata and confirmed live dedup. - SKILL.md + access-modes.md document the read-only local /api vs connector/ Web-API write paths. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
… verified against SKILL.md table and shipped skill-core interface Load conditions match the References table; each teaches principle + line-by-line identification protocol; standalone, one level deep, no repo-internal or cross-skill pattern citations; ledger fields/dedup thresholds/subcommands consistent with skill-core; all render clean. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…ommitted to public repo CRITICAL: task.md Results caveat quotes a real personal My Library item key; public repo forbids any real library data. All code, tests, and docs otherwise verified — verbatim mapper, connector wire, path selection, dedup, divergence flag, no secret leakage, offline suite green with no keys. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
… item key Resolve the CRITICAL public-repo finding: the Results caveat quoted a real Zotero item key from the user's personal My Library. Refer to the stray smoke-test item by its synthetic title only; keep the manual-delete ask. Review Notes cleared; status -> approved. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…ter vertical + trigger test Register literature-review as a user-invocable Utility skill (not a Domain-manifest skill): confirmed against the current Skill-Load Manifest stage model — its main-agent setup + self-driven fan-out do not auto-load at a workflow stage, matching zotero-paper-reader. - CATEGORIES.md: Utility-table row; drop stale lit-review Domain roadmap bullet. - README.md: drop "literature review on the roadmap"; add to utility-skills line. - tests/skill-triggering: new naive prompt + run-all.sh SKILLS entry. - .agents/skills/literature-review symlink (harness-compat invariant; was the only skill missing one). using-superra inventory table and superplan Phase 2 verticals table (named in the objective) no longer exist in source — consolidated/removed since the slide-design precedent; a Utility skill gets no entry in either regardless. Trigger verified: live claude -p run invoked Skill with "skill":"superRA:literature-review"; run-test.sh pass predicate returns PASS. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…cal registered, categorization/consistency/wiring verified Verified both claimed-absent surfaces (using-superra inventory table, superplan Phase 2 verticals table) genuinely do not exist; Utility categorization matches the stage model and zotero-paper-reader precedent; CATEGORIES/README consistent with no dangling roadmap entry; .agents symlink matches harness invariant and slide-design precedent; trigger prompt exists and wired into run-all.sh SKILLS. run-all.sh env limitation is a pre-existing toolchain gap affecting all trigger tests equally, out of this task's scope. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Harvest the zotero-add implementation (Zotero local-connector save path + Crossref->Zotero mapper) from its isolated worktree branch. Disjoint files (skills/zotero-paper-reader/) from the main-worktree vertical work. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
The skill is registered as a Utility skill (not auto-loaded at a stage via the Skill-Load Manifest Domain table), so labeling its own body 'Domain skill' collided with the superRA taxonomy term. Reword to 'Discipline'. Resolves the MINOR flagged in discovery-wiring review. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Release the literature-review domain vertical (citation/metadata client, skill core + references, Zotero add path, discovery wiring). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…der-partition discipline The literature-review skill is loaded by two roles (main-agent orchestrator and per-paper implementer), but SKILL.md carries the full Workflow + executor, forcing every dispatched implementer to load orchestration it never runs. - CLAUDE.md: add two disciplines under Minimal, Targeted Instructions — "write for the loading agent, not the developer" (sharpens the old skip-design-essays bullet toward audience) and "partition a multi-role skill by loader". - New child task layout-and-coherence-refactor: migrate Workflow -> a main-agent-only references/workflow.md, drop the bespoke synthesis-and-classification reference, shorten the too-long frontmatter description, and apply the design rubric line by line. States the rubric and the post-refactor load surface explicitly. - Vertical objective: deliverable is the screened+extracted+convergence-judged collection; synthesis/classification/gap-analysis are bespoke, out of scope. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
… skill by loader, drop synthesis, apply rubric The skill is loaded by two roles but SKILL.md carried the full orchestration, forcing every per-paper implementer to load the loop-until-dry executor it never runs. - Migrate Workflow + Executor -> new references/workflow.md (main-agent-only). SKILL.md 101 -> 45 lines: shared core only (framing, discovery principle, role-annotated references map, composed skills, ledger schema). - Delete references/synthesis-and-classification.md; synthesis/classification/ gap analysis are bespoke per review. Sweep its cross-ref in grounding; deliverable reframed as screened + extracted + convergence-judged. - Shorten frontmatter description (5 -> 3 sentences), drop the inline comment. - Full rubric trim on surviving references: Principle essays -> instruction leads, justification tails cut; identification protocols kept. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…le CATEGORIES classification line, missing diff self-check, incomplete Loaded-by annotation Partition/synthesis-drop/rubric-trim all verified clean. Blocking: CATEGORIES.md:49 still promises per-paper classification (contradicts reframe + diverges from updated description); Results lacks the [BLOCKING] Final Diff Self-Check trail. Minor: search-and-screening Loaded-by omits the main agent that workflow.md routes to it. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
… resolve 3 review consistency findings Adjudicated the REVISE round inline (all trivial, directly verified): - CATEGORIES.md one-liner: "classification/extraction" -> "quote-grounded extraction", restoring CATEGORIES/description consistency. - SKILL.md references map: search-and-screening.md annotated "(+ main)" — the main agent loads it for the dedup cascade + saturation test via workflow.md. - Results: added the Final Diff Self-Check trail (refactor-and-integrate gate). Task approved; vertical rolls up to approved. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Bring the branch up to date with main before finishing PR #41. Main added: - #40 self-contained OCR conversion outputs (mistral-pdf-to-markdown) - a using-superra docs line on hook-derived non-leaf status No file or semantic overlap with the literature-review vertical (disjoint file sets); literature-review composes mistral-pdf-to-markdown by routing, not by depending on its output layout, so the OCR change needs no follow-up here. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…e + OpenCitations fallback Real-world fan-out rate-limits S2's anonymous pool: each screening agent shells out its own citation_client.py, and the per-process backoff can't see sibling processes, so N agents collide even at low per-agent volume. New subtask under literature-review keeps the fan-out unbounded and instead coordinates the client through shared on-disk state: - filesystem "next-allowed-time" rate gate per backend (fcntl.flock; lock held only to reserve a slot, never during the sleep) — bounds request rate per IP/filesystem, the granularity S2 actually measures; - shared on-disk response cache (snowballing re-hits hub papers); - adaptive 429/503 backoff that widens the shared interval for all procs; - keyless OpenCitations backend as the forward-citation fallback when S2 throttles (DOI->DOI edges from Crossref open references, distinct from the rejected OpenAlex), per-DOI with version-DOI union at the workflow. Reconciled the parent conventions: forward citations are no longer "S2-only", and OpenCitations is called out as distinct from OpenAlex. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…-process rate coordination + OpenCitations fallback
Add a CoordinatedTransport in front of UrllibTransport with three shared-state
layers for safe concurrent fan-out: an atomic on-disk response cache
(CITATION_CLIENT_CACHE_DIR, self-gitignored, TTL by mutability), a cross-process
next-allowed-time rate gate (one fcntl-locked file per backend host, lock never
held during the wait, per-backend intervals), and adaptive 429/503 backoff that
widens the shared interval for the whole fan-out. Degrades to per-process-only
when fcntl is absent.
Add a keyless OpenCitations backend (Index v2 DOI->DOI edges) as the forward
citations fallback: `citations --source {auto,s2,opencitations}` (auto = S2 ->
OpenCitations -> web-sweep note) and `references --source opencitations`. Client
stays per-DOI; version-DOI union documented as a workflow step. Existing JSON
shapes and flags unchanged; TOOL_VERSION 1.0.0 -> 1.1.0.
Extend the offline suite 42 -> 64 tests (injectable FakeClock + tmp coord dir,
no network/keys) and update citation-client.md / workflow.md /
search-and-screening.md. Verified with a real 5-process concurrency smoke:
requests spaced at the interval, not serialized.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…ersal, centralize admission Rebalances the literature-review screen/snowball division of labor along one principle: push per-paper judgment to the agent on the spot, keep global coordination (dedup, frontier admission, stopping) central. Three coupled discipline changes to the shipped skill, composing with the citation-client cache + normalized-record handles: - Screening depth: reframe screen-first from "abstract/intro only" into a default economy with an escalation trigger — the agent reads a central included paper's related-work when it steers frontier priority, recorded as read_depth; narrow the "over-read" tell to flag only real waste. - Retrieval provenance: split the ledger's provenance into discovery lineage (discovered_via/bfs_depth) and a retrieval trace (ids, urls, access, paths, fetched_at); carry the handle across rounds so the next agent starts warm instead of cold-searching. - Local traversal + priority frontier: agents surface ranked, annotated, handle-bearing candidates (plus a bounded read-only, non-recursive metadata peek); the orchestrator keeps the single seen index, admission, dedup, and stop, growing a priority frontier. Reconciled the parent conventions (Screen-first, Snowball + convergence, and a new retrieval-trace provenance line) to this design. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…-process rate coordination + OpenCitations fallback Verified backward compat (health additive, citations/references JSON shapes unchanged, new flags/values only), rate-gate lock-not-held-during-sleep + fcntl-absent degradation, atomic per-pid cache writes, OC token secret hygiene, and the 64-test offline suite (network-free, key-free). One minor non-blocking gap noted in return (--no-cache leaves coord dir without .gitignore). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…trieval provenance pdf_path/md_path now back an idempotent store, not just records: check the store before downloading a PDF and before OCR'ing (Mistral OCR is billed — never re-convert a saved paper). Store location follows the setup survey's Zotero-add policy — a Zotero attachment when saving to Zotero, else a local Notes/papers/<key>/ store. Reconciled the parent PDF-policy convention. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
The RateGate writes gate-<backend>.json into the coordination dir even when --no-cache is set, but the self-ignoring .gitignore was created only inside the cache-enabled branch, so those gate files could enter VCS in a host project. Call _ensure_cache_gitignored(coord_dir) unconditionally in build_default_transport. Resolves the MINOR from the citation-client-resilience review. Offline suite still 64 passing. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…legate depth/traversal, centralize admission, retrieval trace Three coupled discipline changes to the literature-review skill (prose only): - Screen-first reframed as a default economy with a selective, recorded (read_depth) escalation; narrowed the over-read tell. - Ledger provenance split into discovery lineage + a retrieval-trace block; added the navigable trace link cluster (Zotero/Web/PDF/Markdown deeplinks, absolute paths, composing with report-in-markdown); handle carried across rounds; idempotent PDF fetch + OCR. - Executor made ranking-aware (priority-queue frontier, handle-seeded dispatch) with one-writer / global-dedup / global-stop invariants explicit; agents traverse + judge locally with a bounded read-only, non-recursive peek. Cache/handle prose written against citation_client v1.1.0 as shipped. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…task Trace-link cluster must use dashboard-resolved RELATIVE paths, not absolute: the dashboard rewrites a relative link by file type (.pdf -> /files/ browser viewer, .md -> vscode://file/), and would double-rewrite an absolute or file://vscode:// path. Corrected agent-judgment-and-provenance D2 to the relative-path + zotero:// scheme contract and added a validation criterion. Added task-tree/dashboard-link-resolution (sibling of the approved dashboard task, not a child — nesting demotes the completed leaf to a grouping): teach the dashboard's renderMarkdown to pass external schemes (zotero:) through DOMPurify + the relative-link rewriter, and route relative .pdf links to /files/ for direct browser open. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…entions Add the ledger paper-link pecking order, initialize seeds into the global seen index, and record the resolved review finding and validation evidence.
…ink rule Move the paper-link pecking order out of the ledger schema into a Markdown results and summaries section, explicitly composing with report-in-markdown.
… fan-out Approved the final literature-review batch-screen fan-out implementation after confirming the seed pre-admission fix, task-scoped workflow changes, Markdown link-rule placement, and task-tree validation. Included the hook-derived parent rollup status.
Record the researcher-approved redesign: the review root is the live dashboard page, pre-screen candidates live as non-git task-shaped records, included/escalated papers are promoted as paper cards, and ordinary dedup is mechanism-owned. Add a focused implementation task to update stale skill workflow instructions.
Record the researcher-approved refinements: dispatch depth bounds can be citation hops or reading depth, discovery agents return local maps and stop on local dry conditions, screening agents route new leads without launching broad searches, citation provenance includes quoted context, and review gates are batched by packet.
…plit discovery screening workflow Rewrite the literature-review workflow as task-tree-native orchestration, split discovery and screening into role-specific references, add the candidate materializer CLI with tests, clarify paper-link rules, update the skill inventory, and record validation evidence on the task.
…irect review Approve the task-tree-native literature-review orchestration implementation after direct review, focused tests, markdown checks, task-tree diagnostics, and stale-term sweep. Parent status rollup returned literature-review to approved.
Make candidate materialization pipe-first and generate full paper-card placeholders, including Zotero item and attachment links, artifact paths, screening decision, quality, provenance, and extraction fields for agents to supplement in place.
…ible extraction, safe parallel dispatch Researcher-surfaced efficiency critique of the shipped orchestration: multi-lens discovery has no parallel-dispatch path and the materializer isn't concurrency-safe, promotion copies (rather than moves) candidate folders leaving orphaned duplicates and unrepointed links, version-DOI union is manual per-dispatch logic, the screening-lead and Zotero-dedup trigger points are unspecified, a paper's abstract/intro/related-work gets re-read by discovery then screening with no reuse of what was already found, and extraction forces a concept-matrix shape regardless of the review's actual goal. Adds two child tasks: client-and-materializer-mechanisms (concurrency-safe materialize, move-based promote with link repoint, version-DOI union) and progressive-reading-and-orchestration-efficiency (Reading Notes reuse across stages, researcher-elicited matrix+narrative hybrid extraction shape, stated parallel-dispatch/lead-sweep/Zotero-dedup cadence), depended in that order. Removes the stale ## Revision Notes section per validate_plan's approved-task rule.
…es replace the stage pipeline Researcher critique of the shipped design: one paper is visited by three agents (discovery reads abstract/intro, screening reopens the same text, extraction reopens everything again) — three dispatches and three read sessions per paper. The prior revision pair patched the symptom (Reading Notes as cross-stage glue) while keeping the three-visit pipeline, and was committed with status: approved despite never being implemented. Cleared both stale tasks and replanned afresh. Roles now split by cost class, not pipeline stage: survey agents do metadata-only breadth work and write candidate stubs into the shared store; paper agents take disjoint pending batches and complete everything a paper needs in one reading session — screening decision, in-session extraction when included + central + dispatch-authorized (researcher-confirmed default: pre-authorized for seed expansions and high-priority candidates), and lead harvest written as stubs. Reading Notes demote from stage glue to a resume log for deferred extraction and escalations. Dedup that makes this safe is the shared candidate store + concurrency-safe materializer + disjoint batch assignment. New tasks: shared-store-and-client-mechanisms (carries forward the three tool mechanisms unchanged: concurrency-safe materialize, move-based promote with link repoint, version-DOI union) and read-once-paper-processing (depends on it; rewrites workflow/survey/paper-processing/grounding references). Root task conventions and Planner Guidance synced to the new role architecture. Co-Authored-By: Claude Fable 5 <[email protected]>
…tation-graph edges
The task implied edge triage ('relevance judged from the metadata/abstract in
hand') but never said how a survey agent decides which of a paper's hundreds of
cited/citing edges become stubs. Now explicit: hydrate DOI-only edges, judge
scope fit from title/abstract/venue/year against the review criteria, stub the
in-scope-plausible with priority, record the filtered remainder in the local
map; citation-context judgment stays with the paper role's lead harvest.
Co-Authored-By: Claude Fable 5 <[email protected]>
…eview agent Researcher follow-up on the two-role split: judging whether a cited or citing paper is worth pursuing needs the citation context in the text — the survey role would have to open the seed anyway, and once any agent has a paper open, read-once logic says it should finish everything that read enables. The split was protecting against context exhaustion and duplicate reads, and neither needs a role boundary. One review-agent role now does the full per-paper work. A dispatch assigns a frontier (seed expansion, pending cluster, or web lens) plus loose bounds — recommended hops (typically 2), extraction authorization, soft paper budget — and the agent's on-the-ground judgment decides what to open; beyond bounds it stubs and reports. Safety mechanisms replace the role boundary: claim-on-open (atomic, covers papers discovered mid-flight — added as a fourth mechanism to shared-store-and-client-mechanisms) and write-as-you-go (complete each paper's record before opening the next, so an exhausted context loses nothing). Renamed read-once-paper-processing -> read-once-review-agent; discovery.md and screening.md now merge into a single review-agent.md. Root conventions synced. Co-Authored-By: Claude Fable 5 <[email protected]>
… — add shared candidate coordination
Reviewed the shared-store/client mechanisms and read-once review-agent rewrite. Marked both assigned tasks revise with blocking notes for lost materialized handles, overbroad promote link rewriting, missing parallel-dispatch exception, and missing stub-and-report bounds guidance.
Resolve reviewer findings from 7e0f411: merge newly surfaced candidate handles into existing cards, constrain promote rewrites to provable links/fields while reporting ambiguous mentions, state the literature-review parallel-dispatch exception, and require out-of-bounds lead stubs when metadata exists.
Confirmed the four prior MAJOR findings are fixed: materialize merges blank handles/retrieval fields without overwriting, promote rewrites only provable links/path fields and reports bare mentions, workflow documents the parallel Agent exception, and review-agent stubs beyond-bounds leads. Removed resolved review notes and approved both tasks.
…ispatch workflow Rewrite the main-agent literature-review workflow around written state, paper state, and flexible dispatch shapes: recon, claimed-read, mixed, and synthesis passes. Clarify that extraction is the same review-agent claimed-read job when authorized, with grounding-and-extraction as the extraction-depth checklist.
…traction authorization default Marked the task revise after finding that the workflow rewrite no longer states the task-required dispatch-time extraction authorization default. Included hook-driven parent rollup status updates.
…read/extract states Replace the separate extraction-authorization concept with two loose dispatch types: recon and claimed read. Recon may inspect source text for citation context while leaving papers not-started; claimed reads claim the paper and extract included or escalated papers in the same session. Keep grounding-and-extraction as the claimed-read checklist, not a separate role.
…o dispatch types Re-reviewed the clarified read-once contract and found remaining stale workflow/extraction wording: Mixed Dispatch is still presented as a separate shape, and the extraction checklist still says claimed included paper only. Included hook-driven parent rollup status updates.
…wo-type review findings Address reviewer findings by removing Mixed Dispatch as a first-class workflow shape and scoping grounding-and-extraction to claimed included or escalated papers. Keep lead materialization during reading as a claimed-read side effect, preserving the two loose dispatch types: recon and claimed read.
…tch types fixed Confirmed the prior findings are fixed: workflow now exposes only recon and claimed-read dispatch types with lead materialization as a claimed-read side effect, and grounding extraction covers claimed included or escalated papers. Removed resolved review notes and included hook-driven parent rollup approval.
Document connector URL attachment support separately from Web API uploads of local files, and correct the access-mode matrix and recovery guidance.
Merge origin/main into literature-review.\n\nCurrent branch intent: literature-review skill and Zotero workflow refinements. Incoming intent: clarify task objective/guidance roles and improve worktree-data sync. The ranges have no overlapping files or renamed paths reaching literature-review code, so both intents are preserved unchanged.\n\nChecks: diff --check and incoming worktree-data-sync tests follow this merge.
Merge origin/main at 2d4c855 into the literature-review branch, preserving main’s 0.3.2 manifest alignment, legacy-surface retirement, and dashboard hardening architecture. Port the branch’s Zotero-scheme passthrough and relative-PDF browser routing from the former monolithic base.html into dashboard.js, add Node-backed behavioral coverage for both live and standalone resolution, and reconcile task records with the extracted client template and retired model-call trigger suite. Checks: task-tree suite 725 passed, 4 skipped; literature-review/Zotero suites 93 passed; cross-harness compatibility passed; version audit passed at 0.3.2; superra task check passed; changed-task Markdown checks passed; git diff --check passed.
Merge local main at 84d451d into literature-review. Preserve main's 0.3.3 dashboard worktree-state, watcher reconnect, release metadata, and release-workflow safeguards alongside this branch's Zotero URI and relative-PDF routing.\n\nThe overlapping dashboard template and test changes synthesize cleanly: relative image URLs now retain the active worktree selector without changing the branch's external-scheme or PDF behavior.\n\nChecks: dashboard test suite passed (312 collected; 4 skipped); git diff --check passed; no conflict markers or stale route references found in the overlapping dashboard files.
Carry the active worktree selector through live relative-PDF /files URLs, matching the scoped image path. Add collision-safe selected-byte coverage and refresh the durable dashboard task record.\n\nChecks: focused PDF/link dashboard tests 5 passed; complete dashboard suite 313 passed; Markdown and diff checks passed.
Refresh the durable dashboard integration and final-diff summaries to cover the reviewed collision-safe PDF protection alongside images.\n\nChecks: Markdown and diff checks passed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Literature Review Domain Vertical (v0.3.1)
Adds a
literature-reviewskill vertical that teaches the search → screen → snowball → classify discipline for economics/finance literature reviews, composing existing skills rather than restating them. The deliverable a review produces is a curated, provenance-tracked, classified collection — not drafted prose.What's in it
skills/literature-review/scripts/citation_client.py) — keyless, stdlib-only PEP 723 tool with six JSON subcommands (search,references,citations,metadata,dedup,health) over Semantic Scholar / Crossref / arXiv. S2 optional with graceful degradation; keys read from env/Notes/.env, never printed. 42 offline tests (no network, no keys) + a pinned command-surface reference doc.SKILL.md) — discovery trigger + a two-part execution model: a main-agent interactive setup (criteria, schema, seed set, Zotero policy) and a loop-until-dry fan-out that screens/classifies one paper per agent. Dual-mode ledger schema (subtree-as-ledger inside a superRA tree; folder ledger standalone) and aWorkflowexecutor template.skills/zotero-paper-reader) — newadd/attach/selectedsubcommands with a verbatim Crossref→Zotero mapper (journalArticle/preprint/report), a local-connector-default write path (no Docker, no key) with cloud Web-API fallback, DOI dedup-before-save, and the PDF version-divergence flag. 21 offline tests.CATEGORIES.md,README.md, the.agentssymlink invariant, and a skill-triggering test prompt.Design notes
Verification
All tasks implemented and independently reviewed (implementer + adversarial reviewer per task). Test suites green:
citation_client42,zotero_tool21. Public-repo hygiene enforced — a reviewer caught and scrubbed a leaked personal item key before approval; tests use only synthetic/placeholder data.🤖 Generated with Claude Code