Skip to content

Add parser coverage AI - #321

Merged
ndaelman-hu merged 14 commits into
developfrom
add-parser-coverage-ai
Dec 18, 2025
Merged

Add parser coverage AI#321
ndaelman-hu merged 14 commits into
developfrom
add-parser-coverage-ai

Conversation

@ndaelman-hu

Copy link
Copy Markdown
Contributor

This PR adds an instruction set for Github Copilot to the features of each parser. Via triggering a Copilot review, we can insure that any PR modifying the feature set will be reflected in the annotations. It is in principle possible to also have a local model update the feature list, but then it has to be pointed towards the instruction set.

@ndaelman-hu ndaelman-hu self-assigned this Dec 5, 2025
@ndaelman-hu ndaelman-hu added documentation Improvements or additions to documentation feature / enhancement New feature or request labels Dec 5, 2025
@ndaelman-hu
ndaelman-hu requested a review from Copilot December 5, 2025 20:45
@ndaelman-hu

Copy link
Copy Markdown
Contributor Author

YAML file format was chosen as a balance between machine and human-readable.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds parser coverage documentation via AI-assisted FEATURES.yml files and GitHub Copilot instruction sets to help AI tools understand and work with NOMAD's electronic structure parsers. The changes also extend CP2K parser support for newer output formats (2023.1+).

Key Changes:

  • Adds FEATURES.yml documentation files for VASP, Quantum ESPRESSO, FHI-aims, CP2K, and CASTEP parsers using standardized runschema terminology
  • Creates GitHub Copilot instruction files (.github/copilot-instructions.md) to guide AI-assisted development
  • Extends CP2K parser to support new molecular dynamics output format from CP2K 2023.1+
  • Adds test coverage for new CP2K MD format parsing

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
.github/copilot-instructions.md Root-level Copilot instructions for NOMAD parser development with runschema terminology reference
electronicparsers/.github/copilot-instructions.md Parser-specific Copilot instructions with metadata editing guidelines
electronicparsers/vasp/FEATURES.yml VASP parser capabilities documentation including hybrid functionals, GW, DFT+U support
electronicparsers/quantumespresso/FEATURES.yml Quantum ESPRESSO parser capabilities including DFPT phonons and Car-Parrinello MD
electronicparsers/fhiaims/FEATURES.yml FHI-aims parser capabilities highlighting all-electron calculations and NAO basis sets
electronicparsers/cp2k/FEATURES.yml CP2K parser capabilities documenting GPW method and QM/MM support
electronicparsers/castep/FEATURES.yml CASTEP parser capabilities including DFPT, TDDFT, and phonon analysis
electronicparsers/cp2k/parser.py Extended parser to handle CP2K 2023.1+ MD output format with new MD
tests/test_cp2kparser.py New test for CP2K 2023.1+ MD format parsing verification
tests/data/cp2k/molecular_dynamics/H2O-32-2023.1.out Test data file with CP2K 2023.1 MD output (1774 lines)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/test_cp2kparser.py Outdated
Comment thread electronicparsers/cp2k/parser.py Outdated
Comment thread electronicparsers/cp2k/parser.py Outdated
Comment thread electronicparsers/cp2k/parser.py Outdated
Comment thread electronicparsers/cp2k/parser.py Outdated
Comment thread electronicparsers/cp2k/parser.py Outdated
Comment thread electronicparsers/cp2k/parser.py Outdated
Comment thread electronicparsers/cp2k/parser.py Outdated
…ocation

- Add metadata tracking requirements (last_updated, updated_by)
- Specify that model name must be retained in FEATURES.yml metadata
- Clarify to not annotate every line, only metadata section
- Update YAML schema template to include metadata section
- Consolidate copilot instructions to package root .github/ folder
- Remove duplicate file from electronicparsers/.github/
- Update file path references to electronicparsers/{parser_name}/FEATURES.yml

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coveralls

coveralls commented Dec 6, 2025

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build 20176852758

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 345 unchanged lines in 2 files lost coverage.
  • Overall coverage increased (+0.1%) to 92.99%

Files with Coverage Reduction New Missed Lines %
electronicparsers/utils/utils.py 51 19.63%
electronicparsers/exciting/parser.py 294 71.18%
Totals Coverage Status
Change from base Build 19977033519: 0.1%
Covered Lines: 36002
Relevant Lines: 38716

💛 - Coveralls

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ndaelman-hu

Copy link
Copy Markdown
Contributor Author

@copilot apply the feature analysis for Wannier90, Gaussian, orca, abinit, Wien2k

Copilot AI commented Dec 9, 2025

Copy link
Copy Markdown

@ndaelman-hu I've opened a new pull request, #323, to work on those changes. Once the pull request is ready, I'll request review from you.

@ndaelman-hu

Copy link
Copy Markdown
Contributor Author

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@JFRudzinski take a look at this link for more detail on the how GitHub handles AI instruction files.

Also keep an eye out for the following PR, as it will showcase Copilot applying these instructions.

Copilot AI and others added 4 commits December 11, 2025 22:09
… and Wien2k parsers (#323)

* Add FEATURES.yml for Wannier90, Gaussian, ORCA, ABINIT, and Wien2k parsers
---
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ndaelman-hu <107392603+ndaelman-hu@users.noreply.github.com>
@ndaelman-hu

Copy link
Copy Markdown
Contributor Author

@JFRudzinski should these comments in the FEATURES.yml remain? I think those that produce structure (e.g. # Energy components) are fine, but those clarifying each schema quantity (e.g. dft.xc_functional # LDA, GGA, meta-GGA via native or libxc) are a bit much.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 43 out of 43 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread electronicparsers/abacus/FEATURES.yml Outdated
Apply GitHub copilot feedback: correct typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 43 out of 43 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ndaelman-hu

Copy link
Copy Markdown
Contributor Author

@copilot Are all FEATURE.yml files compliant with the latest specs?

Copilot AI commented Dec 12, 2025

Copy link
Copy Markdown

@ndaelman-hu I've opened a new pull request, #324, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 2 commits December 12, 2025 19:13
* Update all remaining FEATURES.yml files with source field compliance

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ndaelman-hu <107392603+ndaelman-hu@users.noreply.github.com>
@JFRudzinski

Copy link
Copy Markdown
Collaborator

ink those that produce structure (e.g. # Energy components) are fine, but those clarifying each schema quantity (e

idk, I feel like in some cases they could be useful, but maybe more to a human than for the LLM. I think you have a better sense of what is useful, so I defer to your opinion

@ndaelman-hu
ndaelman-hu merged commit d823fc8 into develop Dec 18, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation feature / enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants