diff --git a/skills/README.md b/skills/README.md index a610941..68eb438 100644 --- a/skills/README.md +++ b/skills/README.md @@ -48,7 +48,8 @@ them. sweep across skill recipes, wiki API pages, and pinned-source drift after a PyAuto\* upgrade or source refresh. - [`al_ingest_paper.md`](./al_ingest_paper.md) — add a strong-lensing paper (local PDF - or arxiv URL) to `wiki/literature/`: per-paper stub, concept cross-links, log entry. + or arxiv URL): project-local `wiki/project/bibliography.md` by default inside a science + project; shared `wiki/literature/` in the assistant clone or on explicit promotion. ### Project workflow diff --git a/skills/al_ingest_paper.md b/skills/al_ingest_paper.md index d1f8e21..9001992 100644 --- a/skills/al_ingest_paper.md +++ b/skills/al_ingest_paper.md @@ -1,6 +1,6 @@ --- name: al_ingest_paper -description: Add a verified strong-lensing paper to the paired literature wiki and canonical BibTeX layer. Accepts a local PDF or public paper URL, resolves or adds canonical metadata, writes a compact claim-oriented `sources/*.md` entry, updates relevant concept/entity links, validates key consistency, and never records local PDF paths. Use when a user wants a paper added so future assistants can cite its supported claims reliably. +description: Add a verified strong-lensing paper to the literature record — project-local (`wiki/project/bibliography.md`) by default when working inside a science project, or the shared literature wiki + canonical BibTeX layer when in the assistant clone or on explicit promotion. Accepts a local PDF or public paper URL, resolves or adds canonical metadata, writes a compact claim-oriented source entry, updates relevant concept/entity links, validates key consistency, and never records local PDF paths. Use when a user wants a paper added so future assistants can cite its supported claims reliably. --- # Ingesting a paper into the literature wiki @@ -21,6 +21,25 @@ Ingestion makes a paper discoverable from scientific concepts while preserving a citation key. A normal addition changes the canonical `.bib`, one compact source section, relevant concept/entity links, and `log.md`. +## Target — project-local or shared? + +Two destinations; pick before editing anything (the hybrid rule: general concepts stay +shared, analysis-specific papers stay in the project): + +- **Inside a science project** (the working repo has `project.yaml` and a thin refer-back + `AGENTS.md`): the default target is the **project's** `wiki/project/bibliography.md` — one + `##` section per paper, exactly the "record claim support" shape below. Reuse the + assistant's canonical BibTeX key when the paper is already in `autolens_literature.bib` + (read-only lookup via refer-back); otherwise use a stable author-year key, aligned with the + project's own paper `.bib` if one exists. Do **not** edit the assistant clone's + `bibliography/` or `sources/` from a project session — that is promotion, below. The shared + quality gate does not run against a project page; keep it consistent by inspection. +- **In the assistant clone, or on explicit promotion** of a generally-useful paper out of a + project: the shared `wiki/literature/` flow below — canonical `.bib`, `sources/.md`, + concept/entity links, `log.md`, `validate-citations`. Promotion is a deliberate act, never + the default, and is a verbatim copy of the project section into the right + `sources/.md` plus the canonical-metadata steps. + ## Ask Establish only what is not already supplied: diff --git a/skills/start-new-project.md b/skills/start-new-project.md index 841cb0c..e423b1e 100644 --- a/skills/start-new-project.md +++ b/skills/start-new-project.md @@ -82,7 +82,8 @@ reproducible-science subset; generate the thin assistant layer; refer back for e data/ (datasets) results/{manifests,figures,tables}/.gitkeep # manifests/figures/tables TRACKED paper/{figures,tables}/.gitkeep - wiki/project/ # journal — copy _profile_template.md + _template.md + README only + wiki/project/ # journal — copy _profile_template.md + _template.md + README; + # generate bibliography.md (below) environment.yml CITATION.cff .gitignore .gitattributes ``` @@ -119,6 +120,9 @@ harness (Codex, Gemini, chat), self-enforce it: run ## This project - Context / decisions / results: `wiki/project/` (dated journal + `profile.md`). +- Literature: general lensing concepts → the assistant's shared `wiki/literature/` + (refer-back); papers specific to this analysis → `wiki/project/bibliography.md`. + Promotion upstream is deliberate, via `al_ingest_paper` from the assistant clone. - Toolchain provenance: `project.yaml` (`assistant_ref`) + per-run `results/manifests/`. - Reproducibility: every meaningful run writes `results/manifests/.json`. ``` @@ -195,6 +199,20 @@ The validator stays in the assistant — `validate_pyauto_code.py` resolves absolute paths. The cross-tool caveat (hooks are Claude Code-only; other harnesses self-enforce) is stated in the generated `AGENTS.md` "Code gate" section above. +**`wiki/project/bibliography.md`** (generate — the project-local literature home; the hybrid +rule stated once in its header): +```markdown +# Bibliography — papers specific to this analysis + +Papers that belong to this project's reference list live here, one `##` section per paper in +the same shape as the assistant's `wiki/literature/sources/*.md` (canonical BibTeX key, +reference, concepts, supported claims — public arXiv/DOI references only, never local PDF +paths). General lensing concepts are NOT duplicated here: the assistant's shared +`wiki/literature/` (resolved via refer-back) stays the one source of truth. A paper that +proves generally useful can be promoted upstream by running `al_ingest_paper` from the +assistant clone — promotion is deliberate, never the default. +``` + **`.gitattributes`**: `* text=auto eol=lf` (+ `*.fits *.png *.npy *.pkl binary`). **`.gitignore`** (exclude data/output/secrets/cloned-assistant; **keep** manifests/figures/journal):