Problem
goldilocks-data currently has reusable Python modules, campaign scripts, notebooks, and processed results split across top-level directories. A visitor cannot yet enter the repository through a DFT code and task, then follow one self-contained path from plugin installation to submission, monitoring, collection, analysis, and data access.
The repository needs a simple campaign-first structure suitable for both contributors and a GitHub Pages data portal.
Goals
- Organize user-facing campaign material as
code → task.
- Make every task directory independently reproducible through its own
README.md.
- Keep submission, monitoring, collection, cleanup, and analysis responsibilities explicit.
- Document the AiiDA plugin required by each DFT code.
- Migrate the existing Quantum ESPRESSO k-point campaign as the first real implementation.
- Use the same code/task structure to drive the GitHub Pages navigation and dataset catalog.
Non-goals
- Do not create empty VASP, CASTEP, or other code/task directories before real campaigns exist.
- Do not introduce a speculative cross-code adapter framework in this phase.
- Do not commit large calculation archives directly to Git without an explicit storage decision.
- Do not redesign the scientific k-index schedule or convergence thresholds during the directory migration.
Architecture
goldilocks-data/
├── README.md
├── codes/
│ └── qe/
│ ├── README.md
│ └── kpoints/
│ ├── README.md
│ ├── campaign.yaml
│ ├── scripts/
│ │ ├── submit.py
│ │ ├── monitor.py
│ │ ├── collect.py
│ │ └── cleanup.py
│ ├── notebooks/
│ │ └── analysis.ipynb
│ └── results/
│ ├── README.md
│ ├── manifest.json
│ ├── snapshot-metadata.json
│ └── source-summary.csv
├── src/goldilocks_data/
├── tests/
└── docs/
├── index.html
├── codes/
└── tasks/
src/goldilocks_data/ continues to hold genuinely reusable mechanics. codes/<code>/<task>/ owns the concrete campaign configuration, operational scripts, reproducible notebook, and result manifest.
Required task README content
Every codes/<code>/<task>/README.md must explain:
- Scientific objective and calculation scope.
- Required DFT executable and version.
- Required AiiDA plugin and installation command.
- AiiDA profile, computer, code, and pseudopotential setup.
- Input structure source and selection rules.
- Dry-run and real submission commands.
- Monitoring and safe stopping instructions.
- Result collection and snapshot generation.
- Analysis/notebook execution.
- Data locations, versions, provenance, and known limitations.
For QE k-points, the README will document aiida-quantumespresso and aiida-pseudo explicitly.
QE k-points campaign contract
The first campaign is:
code: qe
task: kpoints
calculation: scf
pseudopotential family: PseudoDojo/0.4/PBEsol/SR/standard/upf
k-point convention: Gamma-inclusive, unshifted
extension size: 3 consecutive k-index values per structure
active WorkChain limit: 50
monitor interval: 15 minutes
convergence window: at least 3 remaining points
medium: 5 meV/atom
well: 3 meV/atom
ultra: 1 meV/atom
The operational loop is:
submit next 3 k-index points
→ wait for completion
→ collect fresh AiiDA results
→ recompute convergence labels
→ stop at ultra or submit the next 3 points
Failed, missing-energy, or partially submitted sources must be separated from the normal extension queue and reported explicitly.
Campaign metadata
campaign.yaml is the machine-readable source for code/task identity, plugin versions, AiiDA process, pseudopotential family, k-point convention, convergence thresholds, resource defaults, batching limits, and output schema/version.
The GitHub Pages catalog should read or mirror this metadata rather than maintaining an unrelated hand-written set of scientific parameters.
Phases
Phase 1: establish the convention
Verification: a new contributor can identify the correct task directory and understand all prerequisites without inspecting unrelated notebooks.
Phase 2: migrate the current QE k-points workflow
Verification: dry-run, unit tests, Ruff, and one read-only AiiDA collection check pass from the documented commands.
Phase 3: define result publication
Verification: every downloadable artifact has a version, provenance description, and integrity metadata.
Phase 4: connect GitHub Pages
Verification: the deployed site supports the path “code → task → how it was generated → where to find it → what the analysis shows.”
Acceptance criteria
Written by an agent on behalf of Junwen Yin.
Problem
goldilocks-datacurrently has reusable Python modules, campaign scripts, notebooks, and processed results split across top-level directories. A visitor cannot yet enter the repository through a DFT code and task, then follow one self-contained path from plugin installation to submission, monitoring, collection, analysis, and data access.The repository needs a simple campaign-first structure suitable for both contributors and a GitHub Pages data portal.
Goals
code → task.README.md.Non-goals
Architecture
src/goldilocks_data/continues to hold genuinely reusable mechanics.codes/<code>/<task>/owns the concrete campaign configuration, operational scripts, reproducible notebook, and result manifest.Required task README content
Every
codes/<code>/<task>/README.mdmust explain:For QE k-points, the README will document
aiida-quantumespressoandaiida-pseudoexplicitly.QE k-points campaign contract
The first campaign is:
The operational loop is:
Failed, missing-energy, or partially submitted sources must be separated from the normal extension queue and reported explicitly.
Campaign metadata
campaign.yamlis the machine-readable source for code/task identity, plugin versions, AiiDA process, pseudopotential family, k-point convention, convergence thresholds, resource defaults, batching limits, and output schema/version.The GitHub Pages catalog should read or mirror this metadata rather than maintaining an unrelated hand-written set of scientific parameters.
Phases
Phase 1: establish the convention
codes/README.mddescribing the code/task convention.codes/qe/README.mddescribing QE and its AiiDA plugin requirements.codes/qe/kpoints/campaign.yamlwith the current campaign contract.codes/qe/kpoints/README.mdreproduction guide.Verification: a new contributor can identify the correct task directory and understand all prerequisites without inspecting unrelated notebooks.
Phase 2: migrate the current QE k-points workflow
codes/qe/kpoints/scripts/submit.py.codes/qe/kpoints/scripts/monitor.py.collect.pyfor AiiDA → Parquet/CSV snapshot generation.cleanup.pyfor finished remote folders.codes/qe/kpoints/notebooks/analysis.ipynb.Verification: dry-run, unit tests, Ruff, and one read-only AiiDA collection check pass from the documented commands.
Phase 3: define result publication
manifest.jsonwith dataset identity, version, row counts, generation date, checksums, and download locations.Verification: every downloadable artifact has a version, provenance description, and integrity metadata.
Phase 4: connect GitHub Pages
Verification: the deployed site supports the path “code → task → how it was generated → where to find it → what the analysis shows.”
Acceptance criteria
codes/qe/kpoints/.Written by an agent on behalf of Junwen Yin.