I'm compiling a checklist to guide an LLM for first-pass code review.

If there are specific things you have constantly had to point out, or if you have ever received feedback and said inwardly, "things that could have been brought to my attention *yesterday*!" please take 60 seconds to register them now.

Just blurt them out and I'll organize them.

What I have so far follows.
--
Dan

- Communication
  - [ ] commit stack separates clean-up, fixing, enhancements
  - [ ] commit messages are terse without misleading by omission
  - [ ] doc strings are accurate and informative
  - [ ] diagnosics are accurate, informative, and well-placed
- For a translator (engraver, performer)
  - [ ] `\consists` by default in all relevant contexts
        - layout contexts in `$REPO/ly/engraver-init.ly`
        - midi contexts in `$REPO/ly/performer-init.ly`
  - [ ] what if the user rearranges translators, e.g.,
        - `\consists` it in another context
        - `\remove`s an expected collaborating translator
  - [ ] clarity and caution about timing assumptions, e.g.,
        - processing order of other translators in the same context
        - mid-score initialization (e.g., in an ossia staff)
        - unconventional source expressions the user might try
        - simultaneous music
          - output order is not constrained to source order
          - best not to assume iteration in source order either
        - grace timing (especially issue 34)
  - [ ] interesting cases involving span events, e.g.,
        - one spanner stops as the next one starts
        - missing start event
        - missing stop event
  - [ ] interactions with `skipTypesetting`
- For an engraver
  - [ ] respect user tweaks when setting grob properties
  - [ ] what if grobs are acknowledged and later killed
- For changed syntax/properties/functions (incl. public Scheme)
  - [ ] `convert-ly` rules (`$REPO/python/convertrules.py`)
  - [ ] updates to existing docs and tests (incl. `\version` value)
  - [ ] updates to scripts
        - `$REPO/scripts/`
        - `$REPO/python/`
  - [ ] announcement in Changes doc
- For a new context or grob property
  - [ ] correctly defined among "user" or "internal" properties
- For new user-facing syntax/properties/functions (incl. public Scheme)
  - [ ] automated regression tests
  - [ ] `\displayLilyMusic` support
  - [ ] announcement in Changes doc
- For changed internals (e.g., music expressions)
  - beware: some features are poorly covered in regression tests




Reply via email to