opencode-bioresearcher 1.12.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/bioresearcher-dr-worker.md +1 -1
- package/connector-meta.json +1 -1
- package/package.json +1 -1
- package/skills/bioresearcher-deep-research/SKILL.md +49 -3
- package/skills/bioresearcher-deep-research/references/analysis-methods.md +15 -0
- package/skills/bioresearcher-deep-research/references/cartography.md +190 -0
- package/skills/bioresearcher-deep-research/references/report-template.md +17 -0
- package/skills/bioresearcher-deep-research/references/worker-protocol.md +16 -1
|
@@ -5,7 +5,7 @@ permissions:
|
|
|
5
5
|
- {action: shell, resource: "*", effect: deny}
|
|
6
6
|
- {action: subagent, resource: "*", effect: deny}
|
|
7
7
|
---
|
|
8
|
-
<!-- bioresearcher-stamp v1.
|
|
8
|
+
<!-- bioresearcher-stamp v1.13.0 -->
|
|
9
9
|
|
|
10
10
|
You are a bioresearcher deep-research aspect worker. The orchestrator assigned
|
|
11
11
|
you exactly ONE research aspect of a TOPIC. You call the biomcp MCP server's
|
package/connector-meta.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"description_en": "Biomedical research plugin for OpenCode v2: delivers the bioresearcher skills and the deep-research subagent via the v2 plugin API; the biomcp MCP server (literature, clinical trials, genes, variants, drugs, diseases, patents) is wired through mcp.servers config.",
|
|
8
8
|
"source": "bioresearcher",
|
|
9
9
|
"type": "plugin",
|
|
10
|
-
"version": "1.
|
|
10
|
+
"version": "1.13.0",
|
|
11
11
|
"harness": "opencode",
|
|
12
12
|
"examples_zh": [
|
|
13
13
|
"帮我做一个关于肿瘤免疫治疗的多方面文献综述并附引用",
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bioresearcher-deep-research
|
|
3
|
-
description: "Deep biomedical research orchestrator powered by the biomcp MCP server: clarifies the question, aligns research area plan with user, decomposes into 2-5 aspects, researches each aspect via subagents (sequential fallback), and synthesizes a fully cited report. Use for deep research, literature review, clinical trials, drugs, genes, variants, diseases, patents, PubMed, functional genomics, biomcp."
|
|
3
|
+
description: "Deep biomedical research orchestrator powered by the biomcp MCP server: clarifies the question, aligns research area plan with user, decomposes into 2-5 aspects, researches each aspect via subagents (sequential fallback), and synthesizes a fully cited report; optional map-first empirical cartography for category/landscape questions. Use for deep research, literature review, clinical trials, drugs, genes, variants, diseases, patents, PubMed, functional genomics, biomcp."
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
compatibility: "Any Agent Skills harness (opencode, Claude Code, Codex, Cursor, Gemini CLI) with the biomcp MCP server connected; the Claude Code plugin bundles the server and the bioresearcher-dr-worker subagent; a subagent/Task tool is optional - a sequential fallback is provided. The allowed-tools mcp__ entries apply on Claude Code only"
|
|
6
6
|
metadata:
|
|
7
|
-
version: "1.
|
|
7
|
+
version: "1.9.0"
|
|
8
8
|
source: "opencode-bioresearcher-plugin@1.7.2"
|
|
9
9
|
allowed-tools: Read Write Bash Task mcp__plugin_bioresearcher_biomcp mcp__biomcp
|
|
10
10
|
---
|
|
@@ -31,6 +31,10 @@ Harness-agnostic: works with or without a subagent/Task tool.
|
|
|
31
31
|
generates the bibliography from the merged ledger, and `vet-references.py`
|
|
32
32
|
audits the result (structural + NCBI) - producing `final_report.md` and, by
|
|
33
33
|
default, `final_report.html` (the `no-html` prefix skips rendering).
|
|
34
|
+
- Optionally (map-first mode, for category-discovery questions) maps the
|
|
35
|
+
field's method/category landscape empirically BEFORE plan review via
|
|
36
|
+
scoped + anti-pinned cartography workers - see
|
|
37
|
+
`references/cartography.md`.
|
|
34
38
|
|
|
35
39
|
## When to use (triggers)
|
|
36
40
|
|
|
@@ -41,6 +45,8 @@ Harness-agnostic: works with or without a subagent/Task tool.
|
|
|
41
45
|
- Gene / variant / disease questions (annotations, associations, evidence).
|
|
42
46
|
- Patent landscape or prior-art questions.
|
|
43
47
|
- Multi-entity questions spanning several of the above.
|
|
48
|
+
- Category/landscape discovery ("what methods/approaches/classes exist for
|
|
49
|
+
X", "landscape of X") - offer the map-first mode (Step 1).
|
|
44
50
|
|
|
45
51
|
Single-fact lookups (e.g. "what is the HGNC symbol for HER2") do not need the
|
|
46
52
|
full workflow - answer directly with the matching biomcp tool using
|
|
@@ -82,6 +88,7 @@ mid-query never trigger.
|
|
|
82
88
|
| `no-interview` | Skip the interview workflow entirely (both Step 1 questions and Step 2 plan review) |
|
|
83
89
|
| `light-research` | Combine and/or pick only the top TWO aspects (Step 2) |
|
|
84
90
|
| `no-html` | Skip the Step 6 HTML rendering (markdown-only output) |
|
|
91
|
+
| `map-first` | Run empirical field cartography (Step 1.5) before plan review, for category-discovery questions - see `references/cartography.md` |
|
|
85
92
|
|
|
86
93
|
## Workflow
|
|
87
94
|
|
|
@@ -103,6 +110,29 @@ answer your own questions. If the query carries `no-interview`, skip to Step 2.
|
|
|
103
110
|
unattended session: write questions and chosen defaults to
|
|
104
111
|
`reports/<TOPIC>/assumptions.md` and cite that file in Limitations.
|
|
105
112
|
|
|
113
|
+
**Map-first offer (conditional):** if the query is category-discovery shaped
|
|
114
|
+
(the deliverable is a taxonomy/landscape: "what methods/approaches/classes/
|
|
115
|
+
evidence types exist", "landscape of", "how is X done across ..."), include
|
|
116
|
+
ONE additional interview question offering empirical cartography (recommend
|
|
117
|
+
ON); if accepted, confirm the PRIMARY SCOPE in the same message per
|
|
118
|
+
`references/cartography.md`. Entity-anchored queries: never ask. The
|
|
119
|
+
`map-first` prefix forces the mode on without the question. When the mode is
|
|
120
|
+
off (not offered or declined), Steps 1-6 run exactly as if this feature did
|
|
121
|
+
not exist.
|
|
122
|
+
|
|
123
|
+
### Step 1.5: Cartography (map-first mode only)
|
|
124
|
+
|
|
125
|
+
Skipped entirely when map-first is off. Dispatch cartographers per
|
|
126
|
+
`references/cartography.md`: 2 focus-tier axes scoped to the confirmed
|
|
127
|
+
primary scope (synthesis-mining, boundary-vocabulary) plus 1-2 anti-pinned
|
|
128
|
+
context axes, using the same tier dispatch, ledger discipline, and
|
|
129
|
+
completion gates as Step 4 (cartographer template and anti-pinning contract
|
|
130
|
+
live in the reference). Then merge the axis maps into
|
|
131
|
+
`reports/<TOPIC>/category_taxonomy.md` (tiered categories, coverage audit
|
|
132
|
+
against >= 2 scope-internal syntheses, unanchored leads); the venue-sweep
|
|
133
|
+
remediation axis fires only when syntheses are scarce. Cartography ledgers
|
|
134
|
+
land in `evidence/` and merge in Step 5a like any aspect ledger.
|
|
135
|
+
|
|
106
136
|
### Step 2: Decompose & Review Plan
|
|
107
137
|
|
|
108
138
|
Comprehend the inquiry and identify 2-5 critical research aspects (top 2 under
|
|
@@ -126,6 +156,14 @@ focus, primary tools); never paste raw ABSTRACTs into the question UI.
|
|
|
126
156
|
4. **Waiver / Degrade:** Skip plan review turn if query has `no-interview`, or
|
|
127
157
|
degrade per Step 1 rules if unattended (record plan in `assumptions.md`).
|
|
128
158
|
|
|
159
|
+
**Map-first variant:** the plan review operates on the category taxonomy
|
|
160
|
+
(`references/cartography.md`): present tiers, coverage-audit results, and a
|
|
161
|
+
recommended selection; iterate until confirmed - this taxonomy walk-through
|
|
162
|
+
IS the plan review, non-waivable except by `no-interview` (autonomous
|
|
163
|
+
conversion records its rationale in `assumptions.md`). Selected categories
|
|
164
|
+
become the aspects; each still gets a full deep-dive ABSTRACT with binding
|
|
165
|
+
inclusion/exclusion criteria.
|
|
166
|
+
|
|
129
167
|
Track finalized aspects in the harness's todo tool (TodoWrite or equivalent).
|
|
130
168
|
|
|
131
169
|
### Step 3: Create the output directory
|
|
@@ -226,7 +264,9 @@ Read all per-aspect reports. Summarize findings into a succinct, accurate
|
|
|
226
264
|
final report addressing the user's inquiry, following the mandatory 6-section
|
|
227
265
|
structure in `references/report-template.md` (Executive Summary, Data Sources,
|
|
228
266
|
Analysis Methodology, Findings, Limitations, References - the References
|
|
229
|
-
section itself is generated later by `render`).
|
|
267
|
+
section itself is generated later by `render`). Under map-first, also apply
|
|
268
|
+
that reference's optional landscape and decision-guide sections (decision
|
|
269
|
+
guide default-on). Reconcile conflicting findings
|
|
230
270
|
across aspects explicitly rather than silently dropping one side.
|
|
231
271
|
|
|
232
272
|
Write the synthesized draft to `reports/<TOPIC>/final_report.draft.md` citing
|
|
@@ -336,9 +376,14 @@ python3 <skill_dir>/scripts/vet-references.py reports/<TOPIC>/final_report.md --
|
|
|
336
376
|
```
|
|
337
377
|
reports/<TOPIC>/
|
|
338
378
|
├── plan.md # durable research plan (Step 3; boundaries live here)
|
|
379
|
+
├── category_map_<axis>.md # per-axis cartography maps (map-first only)
|
|
380
|
+
├── category_taxonomy.md # merged tiered taxonomy + coverage audit
|
|
381
|
+
│ # (map-first only)
|
|
339
382
|
├── evidence/
|
|
340
383
|
│ ├── <aspect_1>.jsonl # per-aspect evidence ledger (worker-written)
|
|
341
384
|
│ ├── <aspect_2>.jsonl
|
|
385
|
+
│ ├── cartography_<axis>.jsonl # cartography ledgers (map-first only;
|
|
386
|
+
│ │ # merge like aspect ledgers)
|
|
342
387
|
│ ├── ...
|
|
343
388
|
│ ├── _invalid.jsonl # merge quarantine (only when malformed lines occur)
|
|
344
389
|
│ └── sources.jsonl # merged + verified ledger (Step 5a output)
|
|
@@ -395,6 +440,7 @@ reports/<TOPIC>/
|
|
|
395
440
|
| File | Contents |
|
|
396
441
|
|------|----------|
|
|
397
442
|
| `references/worker-protocol.md` | Worker prompt template, file protocol, no re-delegation, retry/degrade rules |
|
|
443
|
+
| `references/cartography.md` | map-first mode: scopes, axis archetypes, anti-pinning contract, taxonomy + coverage audit, interaction matrix |
|
|
398
444
|
| `references/tool-selection.md` | Question-type to tool decision tree; sections/limit/pagination patterns; biomcp_ prefix note |
|
|
399
445
|
| `references/article-literature.md` | article_search / article_get: sources, dateRange, citations |
|
|
400
446
|
| `references/clinical-trials.md` | trial_search / trial_get: filters, cursor paging, sections |
|
|
@@ -31,6 +31,7 @@ An aspect is DONE when ALL of these hold:
|
|
|
31
31
|
| Variant evidence | Variant annotation + (if token) OncoKB + trials | variant_search, variant_get, variant_oncokb |
|
|
32
32
|
| Patent landscape | 10-30 patents incl. seminal prior art | patent_search, patent_get |
|
|
33
33
|
| Dataset hunt | Candidate accessions + linked publication | geo_search, sra_search, genbank_search |
|
|
34
|
+
| Category cartography (map-first) | 15-30 anchored categories per axis; every category >= 1 synthesis structure or >= 2 primaries | article_search, article_get |
|
|
34
35
|
|
|
35
36
|
## Source-quality rules
|
|
36
37
|
|
|
@@ -118,6 +119,20 @@ ABSTRACT; these rules govern how workers apply any such criteria.
|
|
|
118
119
|
improvised categories); re-check rules 1-2 whenever synthesis rewords a
|
|
119
120
|
claim or transcribes a number from an aspect report.
|
|
120
121
|
|
|
122
|
+
## Cartography discipline (map-first mode)
|
|
123
|
+
|
|
124
|
+
- Category anchoring bar: a listed category needs >= 1 retrieved synthesis
|
|
125
|
+
whose structure demonstrably contains it, or >= 2 primary records -
|
|
126
|
+
keyword overlap is not coverage (anti-pinning contract:
|
|
127
|
+
`references/cartography.md`).
|
|
128
|
+
- Scope-relative tiers: adoption tiers (1/2/3) are relative to the primary
|
|
129
|
+
scope's own practice; state the reference frame, never present a tier as
|
|
130
|
+
absolute.
|
|
131
|
+
- Coverage audit: the merged taxonomy is reconciled against >= 2
|
|
132
|
+
scope-internal syntheses; synthesis-enumerated categories missing from
|
|
133
|
+
the map are added or declared as gaps - silent omission is the failure
|
|
134
|
+
mode this audit exists to catch.
|
|
135
|
+
|
|
121
136
|
## Failure modes
|
|
122
137
|
|
|
123
138
|
| Symptom | Fix |
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Empirical Cartography (map-first mode)
|
|
2
|
+
|
|
3
|
+
Optional Stage-1 field mapping for the deep-research skill: discover the
|
|
4
|
+
method/category landscape empirically BEFORE proposing the research plan,
|
|
5
|
+
then run the standard aspect workflow on user-selected categories. This mode
|
|
6
|
+
is field-, community-, and question-agnostic: it applies to any
|
|
7
|
+
category-discovery question in the biomedical realm (methods, approaches,
|
|
8
|
+
evidence classes, taxonomies, landscapes), in any discipline.
|
|
9
|
+
|
|
10
|
+
## When map-first applies
|
|
11
|
+
|
|
12
|
+
- OFFER it (inside the Step 1 interview, one extra question, only when the
|
|
13
|
+
query is category-discovery shaped): the deliverable is a taxonomy or
|
|
14
|
+
landscape - "what methods/approaches/classes/evidence types exist for X",
|
|
15
|
+
"landscape of X", "how is X done across ...", "categories of X".
|
|
16
|
+
- Do NOT offer for entity-anchored queries (one drug, variant, trial, gene,
|
|
17
|
+
disease) - the default workflow is already right.
|
|
18
|
+
- The `map-first` prefix forces the mode on without the offer question.
|
|
19
|
+
- Default OFF: with map-first off, every workflow step, file, gate, and
|
|
20
|
+
report section is identical to the non-cartography skill. The only
|
|
21
|
+
default-mode addition is the conditional offer question itself.
|
|
22
|
+
|
|
23
|
+
## Primary scope vs context scope
|
|
24
|
+
|
|
25
|
+
The user designates a PRIMARY SCOPE - the literature segment where category
|
|
26
|
+
recall is the success criterion - defined by any combination of community,
|
|
27
|
+
discipline, disease/therapeutic area, modality, technique family, organism,
|
|
28
|
+
data type, or question type. Everything else is CONTEXT SCOPE: mapped for
|
|
29
|
+
awareness, never exhaustively. The orchestrator infers a candidate primary
|
|
30
|
+
scope from query vocabulary (e.g. "industry-ready", "clinical practice",
|
|
31
|
+
"food science", "diagnostic assay development") and asks for confirmation
|
|
32
|
+
in the same interview message - the recall target depends on it, and users
|
|
33
|
+
rarely name it spontaneously. If the user declines to specify, run with the
|
|
34
|
+
scope implied by the query terms and record the assumption in plan.md.
|
|
35
|
+
|
|
36
|
+
## Two-tier dispatch
|
|
37
|
+
|
|
38
|
+
Focus tier (2 workers, scoped to the primary scope, method-unpinned):
|
|
39
|
+
|
|
40
|
+
- `cartography_synthesis_mining` - transcribe the scope's OWN synthesis
|
|
41
|
+
ecosystem (reviews, guidelines, consensus statements, position papers,
|
|
42
|
+
protocol series): harvest their section structures as candidate
|
|
43
|
+
categories and expand via backward citations (article_get
|
|
44
|
+
sections=["citation"]) to founding anchors. The scope's own taxonomies
|
|
45
|
+
are the recall target.
|
|
46
|
+
- `cartography_boundary_vocabulary` - hunt categories that answer the
|
|
47
|
+
question's underlying information need but self-describe under different
|
|
48
|
+
terms: adjacent vocabulary, hypernyms, enabling/auxiliary measurements,
|
|
49
|
+
neighboring endpoints. Ask, per formulation of the information need:
|
|
50
|
+
"what does this scope call the things that do X?"
|
|
51
|
+
|
|
52
|
+
Context tier (1-2 workers, fully anti-pinned, breadth across the rest of
|
|
53
|
+
the field) - pick archetypes by question shape:
|
|
54
|
+
|
|
55
|
+
- `cartography_context_principle` - enumerate the distinct
|
|
56
|
+
experimental/analytical principles by which the question is answered;
|
|
57
|
+
let the categories emerge from retrieved records.
|
|
58
|
+
- `cartography_context_casespace` - partition the question's object space
|
|
59
|
+
(barriers, diseases, organisms, tissues, modalities - whatever partitions
|
|
60
|
+
it) and map category coverage per stratum.
|
|
61
|
+
- `cartography_context_segment` - sweep how OTHER communities/disciplines
|
|
62
|
+
frame and categorize the same question; vocabulary differences are
|
|
63
|
+
themselves findings.
|
|
64
|
+
|
|
65
|
+
Budget: ~15-25 biomcp calls per cartographer (hard cap 30); parallel
|
|
66
|
+
batches of up to 5; Tier A/B dispatch and the Tier C sequential fallback
|
|
67
|
+
follow SKILL.md Step 4, using the cartographer template below.
|
|
68
|
+
|
|
69
|
+
Conditional remediation axis (orchestrator-dispatched after the focus tier
|
|
70
|
+
returns, only when needed):
|
|
71
|
+
|
|
72
|
+
- `cartography_venue_sweep` - fires IFF the focus tier found fewer than two
|
|
73
|
+
field-spanning syntheses OR the interview flagged an emerging area: sweep
|
|
74
|
+
the primary scope's primary-literature venues for categories its thin
|
|
75
|
+
synthesis ecosystem under-covers.
|
|
76
|
+
|
|
77
|
+
## Anti-pinning contract (binding on every cartographer)
|
|
78
|
+
|
|
79
|
+
1. No method names, assay names, or category lists enter a cartographer
|
|
80
|
+
prompt. Focus-tier prompts pin the PRIMARY SCOPE and the question's
|
|
81
|
+
information need - never methods. Context-tier prompts pin nothing but
|
|
82
|
+
the question.
|
|
83
|
+
2. A category may be listed ONLY if anchored in retrieved records: either
|
|
84
|
+
>= 1 retrieved synthesis whose structure demonstrably contains it, OR
|
|
85
|
+
>= 2 primary records found via search.
|
|
86
|
+
3. Never assert a category from model memory; memory shapes query design
|
|
87
|
+
only. A failed query line is logged under Evidence Gaps - never turned
|
|
88
|
+
into a category.
|
|
89
|
+
4. Probe deliberately across the assigned axis before concluding; do not
|
|
90
|
+
stop at the first handful of categories.
|
|
91
|
+
|
|
92
|
+
## Cartographer prompt template
|
|
93
|
+
|
|
94
|
+
```md
|
|
95
|
+
TOPIC: <TOPIC>
|
|
96
|
+
YOUR RESEARCH FOCUS: cartography_<axis>
|
|
97
|
+
AXIS: <archetype name + one-line instantiation, e.g. "case-space partition:
|
|
98
|
+
the variable that partitions this question's object space is <variable>">
|
|
99
|
+
PRIMARY SCOPE: <primary scope - focus tier only; context tier: "none -
|
|
100
|
+
stay anti-pinned">
|
|
101
|
+
MISSION: Produce an empirically anchored, high-level map of the major
|
|
102
|
+
method/category families for <question>, entering the field from your
|
|
103
|
+
axis. 15-30 categories maximum (merge near-duplicates and say so).
|
|
104
|
+
OUTPUT: reports/<TOPIC>/category_map_<axis>.md (title; one-paragraph scope
|
|
105
|
+
summary; ONE subsection per category: name, one-line description, 1-3
|
|
106
|
+
anchor papers as cite-key markers, maturity signals - synthesis existence,
|
|
107
|
+
approximate hit volume, founding era - and which queries surfaced it; then
|
|
108
|
+
"## Query Log" and "## Evidence Gaps" with failed query lines) plus
|
|
109
|
+
reports/<TOPIC>/evidence/cartography_<axis>.jsonl.
|
|
110
|
+
SKILL_DIR: <absolute skill dir> # Tier B only; resolve before dispatch
|
|
111
|
+
EXECUTION RULE: Do NOT read or inspect evidence-ledger.py or other skill
|
|
112
|
+
scripts; all schemas and commands are fully specified here.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Tier B orchestrators additionally inline the anti-pinning contract, the
|
|
116
|
+
anchoring rule, the ledger discipline (worker-protocol.md rules 5-8), and
|
|
117
|
+
the completion-gate command. Cartographers follow every Worker rule in
|
|
118
|
+
`references/worker-protocol.md` (sequential calls, retry ladder, verbatim
|
|
119
|
+
ledger records, no bibliography) with the category map replacing the
|
|
120
|
+
aspect report and `check --markers category_map_<axis>.md` as the gate.
|
|
121
|
+
|
|
122
|
+
## Taxonomy merge + coverage audit (orchestrator)
|
|
123
|
+
|
|
124
|
+
Merge all axis maps into `reports/<TOPIC>/category_taxonomy.md`:
|
|
125
|
+
|
|
126
|
+
- Deduplicated category list; per category: name, one-line description,
|
|
127
|
+
anchors, maturity signals, surfaced-by axes (cross-axis confirmation is
|
|
128
|
+
a robustness signal), and an adoption tier (1 = established /
|
|
129
|
+
industry-grade, 2 = discovery-grade, 3 = emerging/niche) - tiers are
|
|
130
|
+
scope-relative and the taxonomy must say so explicitly.
|
|
131
|
+
- "## Coverage Audit" section: reconcile the merged map against the
|
|
132
|
+
enumerated method/category lists of >= 2 scope-internal syntheses. Any
|
|
133
|
+
category a synthesis enumerates that the map lacks must be added (with
|
|
134
|
+
anchors) or explained as a declared gap. If the scope yielded fewer than
|
|
135
|
+
2 syntheses, anchor the audit on cross-axis overlap instead and flag
|
|
136
|
+
synthesis scarcity (this also triggers the venue-sweep remediation).
|
|
137
|
+
- "## Unanchored Leads" section: suspected-but-unanchored territories,
|
|
138
|
+
listed as the query lines tried - never as categories.
|
|
139
|
+
|
|
140
|
+
## Interaction matrix
|
|
141
|
+
|
|
142
|
+
| Mode | Behavior |
|
|
143
|
+
|------|----------|
|
|
144
|
+
| Default, heuristic fired | Step 1 interview includes ONE offer question ("empirical field mapping first?" - recommend ON) and, if accepted, primary-scope confirmation in the same message; nothing else changes |
|
|
145
|
+
| Default, heuristic not fired | Identical to the non-cartography skill: no question, no cartography files |
|
|
146
|
+
| `map-first` | Cartography on without the offer question; the interview still runs (scope + clarifiers) unless `no-interview` is also present |
|
|
147
|
+
| `map-first` + `no-interview` | Cartography on; taxonomy -> plan conversion is autonomous: record the category-selection rationale and coverage-audit outcome in plan.md + assumptions.md, and state in the report Limitations that scope selection was not user-reviewed |
|
|
148
|
+
| `no-interview` alone | Identical to the non-cartography skill (Step 1 is skipped, so no offer fires) |
|
|
149
|
+
|
|
150
|
+
Cartography does NOT waive the Step 2 plan review: with map-first on (and
|
|
151
|
+
no `no-interview`), the taxonomy walk-through IS the plan review - present
|
|
152
|
+
the taxonomy with tiers, coverage-audit results, and a recommended category
|
|
153
|
+
selection, then iterate with the user until the plan is confirmed (same
|
|
154
|
+
rounding rules as Step 2). Selected categories become the Step 3 aspects
|
|
155
|
+
(standard deep-dive ABSTRACTs; the taxonomy's inclusion signals seed the
|
|
156
|
+
ABSTRACT boundaries; the set may exceed 5 when the user insists - batch
|
|
157
|
+
dispatches accordingly). Categories discovered but not selected stay
|
|
158
|
+
citable: their cartography ledgers merge into sources.jsonl in Step 5a
|
|
159
|
+
like any aspect ledger, and the report carries them in the optional
|
|
160
|
+
landscape section (`references/report-template.md`).
|
|
161
|
+
|
|
162
|
+
## Report integration
|
|
163
|
+
|
|
164
|
+
- Landscape section (map-first only): one line per discovered-but-
|
|
165
|
+
unselected category, citing its cartography anchors - acknowledged, not
|
|
166
|
+
researched; the report must say so.
|
|
167
|
+
- Decision guide by question scenario (map-first default-on): one compact
|
|
168
|
+
"scenario -> recommended method sequence -> tier -> caveat" table per
|
|
169
|
+
user-confirmed question scenario, built only from ledger-verified
|
|
170
|
+
sources, tiers labeled scope-relative.
|
|
171
|
+
- The field's own taxonomy disagreements (syntheses classifying the same
|
|
172
|
+
subject differently) are reported in Analysis Methodology or Findings,
|
|
173
|
+
never silently resolved.
|
|
174
|
+
|
|
175
|
+
## Degradation + consistency
|
|
176
|
+
|
|
177
|
+
- No subagent tool: run axes sequentially in the main conversation (same
|
|
178
|
+
contract, leaner budgets).
|
|
179
|
+
- Server unavailable: cartography cannot run - proceed with the default
|
|
180
|
+
workflow and say so explicitly.
|
|
181
|
+
- map-first OFF: behavior is identical to the non-cartography skill
|
|
182
|
+
(steps, files, gates, report structure). The existing agent-test
|
|
183
|
+
deep-research suite (q01-q07) is the regression guarantee and stays
|
|
184
|
+
unchanged.
|
|
185
|
+
|
|
186
|
+
## Out of scope / future work
|
|
187
|
+
|
|
188
|
+
- Report update mode (re-running an existing report): a verify-and-refresh
|
|
189
|
+
worker tier for previously covered core areas - deliberately NOT part of
|
|
190
|
+
map-first, which always researches from scratch.
|
|
@@ -67,6 +67,23 @@ the source of truth for citations]
|
|
|
67
67
|
[queries that failed after retries, with reasons]
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
+
## Map-first optional sections
|
|
71
|
+
|
|
72
|
+
When the run used empirical cartography (SKILL.md Step 1.5), two OPTIONAL
|
|
73
|
+
sections extend the mandatory structure. Both cite through the normal
|
|
74
|
+
merged-ledger markers - cartography anchors are ordinary ledger records.
|
|
75
|
+
|
|
76
|
+
- **Landscape** (inside Findings, after the selected aspects): one line per
|
|
77
|
+
discovered-but-unselected category, citing its cartography anchors -
|
|
78
|
+
acknowledged, not researched; the report must say so explicitly.
|
|
79
|
+
- **Decision guide by question scenario** (after the findings/evidence
|
|
80
|
+
tables; DEFAULT-ON in map-first mode, skippable only if the user
|
|
81
|
+
declines): one compact table per user-confirmed question scenario -
|
|
82
|
+
scenario | recommended method sequence | tier | caveat - built only from
|
|
83
|
+
ledger-verified sources, with tiers labeled scope-relative.
|
|
84
|
+
- Taxonomy disagreements between the field's own syntheses are reported in
|
|
85
|
+
Analysis Methodology or Findings - never silently resolved.
|
|
86
|
+
|
|
70
87
|
## Citation placement rules
|
|
71
88
|
|
|
72
89
|
- Authored text uses semantic cite-key markers `[@pmid:...]`, groups
|
|
@@ -38,6 +38,18 @@ EXECUTION RULE: Do NOT read or inspect evidence-ledger.py or other skill scripts
|
|
|
38
38
|
startup (via `${CLAUDE_PLUGIN_ROOT}`); the orchestrator sends ONLY the
|
|
39
39
|
filled-in template below.
|
|
40
40
|
|
|
41
|
+
## Cartographer workers (map-first mode)
|
|
42
|
+
|
|
43
|
+
Cartography axes use the SAME worker contract (rules 1-9, file protocol,
|
|
44
|
+
completion gate) with two substitutions: the deliverable is a CATEGORY MAP
|
|
45
|
+
(`reports/<TOPIC>/category_map_<axis>.md`: one subsection per anchored
|
|
46
|
+
category - name, one-line description, 1-3 anchor markers, maturity signals,
|
|
47
|
+
surfacing queries - plus a Query Log and Evidence Gaps) instead of an aspect
|
|
48
|
+
report, and the focus name is `cartography_<axis>`. The dispatch prompt
|
|
49
|
+
template, axis archetypes, anti-pinning contract, and anchoring rule live in
|
|
50
|
+
`references/cartography.md`. Tier A workers read that file too when the
|
|
51
|
+
assigned focus starts with `cartography_`.
|
|
52
|
+
|
|
41
53
|
## File protocol
|
|
42
54
|
|
|
43
55
|
- Output files (exactly TWO - together they are the self-contained
|
|
@@ -132,7 +144,10 @@ EXECUTION RULE: Do NOT read or inspect evidence-ledger.py or other skill scripts
|
|
|
132
144
|
`python3 <SKILL_DIR>/scripts/evidence-ledger.py add <file> --stdin`,
|
|
133
145
|
substituting the SKILL_DIR value from your prompt LITERALLY - it is a
|
|
134
146
|
path string, NOT an environment variable (`$SKILL_DIR` in a shell
|
|
135
|
-
resolves to nothing and breaks the call).
|
|
147
|
+
resolves to nothing and breaks the call). Anchor every shell command
|
|
148
|
+
to the workspace root (`cd <workspace root> && python3 <SKILL_DIR>/...`)
|
|
149
|
+
so relative report paths resolve regardless of the shell's starting
|
|
150
|
+
directory. Pass records via a shell heredoc
|
|
136
151
|
or with an array/JSONL file (`add <file> @<batch.json>`):
|
|
137
152
|
```bash
|
|
138
153
|
python3 <SKILL_DIR>/scripts/evidence-ledger.py add reports/<TOPIC>/evidence/<YOUR-FOCUS>.jsonl --stdin << 'EOF'
|