Tutorial: populate one batch end-to-end¶
This walks through the canonical flow: pick papers for R7_B2 — Energy Decomposition & Solution Strategies, push them into a NotebookLM notebook, and produce a plan JSON for the extraction pipeline.
Follow along live
Open akms-pick, then keep this page side-by-side. Each step maps to a
concrete UI action.
0. Boot the picker¶
You should land on the empty right pane with the batch tree on the left.
1. Select the batch¶
Click R7_B2 in the left pane.
The right pane now shows:
- Header with the batch ID, title, round, and node count
- An expandable Batch info & nodes section listing the 7 nodes the batch is supposed to produce
- An empty Assigned papers strip
- A search toolbar
- An empty results table
2. Get a smart shortlist¶
Tick suggest for this batch in the search toolbar, then click Search (or hit Enter in the search box).
The Score column lights up. Top hits are papers whose title / keywords / tags / abstract share the most distinctive tokens with the batch's title + node titles + plan hint. For R7_B2 you'll typically see Wu's comprehensive phase-field implementations and the BFGS monolithic algorithm paper at the top.
How the score is computed
Pure deterministic keyword overlap — no LLM, no embeddings. See Architecture › Suggest scoring for the full algorithm.
3. Narrow with collection filters¶
Cmd-click in the Collections picker to multi-select. For R7_B2 you'll
probably want PFfrac and Computational. The list re-runs on change.
Other handy filters:
- year ≥
2018— drop older surveys - only with PDF — already on by default; flip off only if you want to audit citekeys you'll have to retrieve manually
4. Assign papers¶
Tick the checkbox in the leftmost column of each paper you want. Each tick
fires POST /api/batches/R7_B2/papers/add and refreshes the assigned-pills
strip at the top.
The row tints:
- :material-check: green tint = already assigned to this batch
- :material-alert: orange tint = assigned to another batch (cross-batch reuse — usually fine for foundational papers)
5. (Optional) Bulk-add from a query¶
Need to grab everything in PFfrac newer than 2020? Set those filters,
choose Add all matching in the bulk-mode dropdown, then click
→ Apply to batch. A confirm dialog shows the match count before
committing.
Pick Replace batch with matching instead if you want a clean slate based purely on the current filter.
6. (Optional) Save the query for next time¶
Hit Save current as…, name it (e.g. pf-monolithic-2020+), confirm.
The named filter now lives in Sources_Evals/NLM/saved_queries.json and
appears in the Saved query dropdown across sessions.
7. (Optional) Compare with a sibling batch¶
Pick another batch in the Compare with dropdown — say R7_B1 (the
variational foundations batch). A three-column panel appears below the
assigned-pills:
| Column | What it lists | Useful action |
|---|---|---|
| Only in R7_B2 | Papers unique to the current batch | Move → R7_B1 if they fit better there |
| In both | Papers shared between the two | Audit overlap; remove from one if redundant |
| Only in R7_B1 | Papers in the compared batch but not here | ← Copy to add them; ← Move to take ownership |
Use the per-column all checkbox + a bulk button (Move, Copy, Remove) to shift work between batches.
8. Stage PDFs¶
Click Stage PDFs. The picker symlinks each assigned paper's local PDF
into AKMS_Sources/new/R7_B2_pf_energy_solvers/<citekey>.pdf so the
extraction pipeline (and your manual inspection) can find them in one
place.
A toast reports staged N. If any are skipped, expand the toast — usually
the cause is a missing or moved local file.
9. Write the plan JSON¶
Click Write plan JSON. The output lands at
Sources_Evals/NLM/Inputs/R7_B2_pf_energy_solvers_plan.json and is wired
into the existing node-gen-invoker schema (with extra papers_by_citekey
and nlm blocks for traceability).
10. Create the NLM notebook + upload¶
Click Create NLM notebook…, confirm the dialog. The picker:
- Calls
nlm notebook create "AKMS R7_B2 — Energy Decomposition & Solution Strategies" - Captures the notebook ID into
batch_assignments.json - Calls
nlm source add <id> --file <pdf> --title "<author> et al. (year) — <title>"for each assigned paper - Records each successful upload in
uploaded_papers
If you re-click the button after adding more papers, only the delta is uploaded — already-uploaded citekeys are skipped.
11. Hand off to the extraction pipeline¶
The plan JSON is now consumable by node-gen-invoker:
/node-gen-invoker <NLM_ID> all \
Sources_Evals/NLM/Inputs/R7_B2_pf_energy_solvers_plan.json \
Sources_Evals/NLM/Outputs/R7_B2_pf_energy_solvers/ \
true
(The exact command lives in the AKMS repo's node-gen skill — see
Pipeline integration for how
the picker's output maps onto it.)
You now have one batch fully curated, uploaded, and ready for extraction. Repeat for the remaining 29 — or start mass-prepping with the bulk-add / compare / saved-query features.