trap-cards check: require every part of a trap card
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 88/100
Research direction
Read the section loop in cmake/check-trap-cards.cmake and the existing trap-cards test controls in CMakeLists.txt. Use plugins/sdl3-porter/skills/sdl3-porter/references/init.md to inspect the bool-returns card, then run cmake -S . -B build and ctest --test-dir build -C Debug -R trap-cards --output-on-failure. Done means missing required parts are reported by trap id, all 17 cards pass, and the new control passes only when its missing Source part is reported.
Written by the indexing model from the issue text.
Description
AGENTS.md and CONTRIBUTING.md say that a trap card has What compiles, What breaks, How to find it, Fix and Source parts, and citing the source is one of AGENTS.md's hard rules. The trap-cards test only looks for **What compiles:**, so a card without **Source:** or **Fix:** still passes CI.
What to do
In cmake/check-trap-cards.cmake, for every section that has **What compiles:**, also require **What breaks:**, **How to find it:**, **Fix:** and **Source:**. Report each missing part by trap id, for example trap card bool-returns has no Source part. Then add a positive control in CMakeLists.txt: a copy of the references with **Source:** removed from one card, and a test that passes only on that message, like trap-cards-orphan-card. Guidance sections, the ones with **What changed:**, are out of scope.
Where to look
cmake/check-trap-cards.cmakelines 16-32: the loop over sectionsCMakeLists.txtlines 204-236: thetrap-cardstest and its controlsplugins/sdl3-porter/skills/sdl3-porter/references/init.md:bool-returns, a complete card
Done when
- The check names each missing part by trap id.
- All 17 current cards pass.
- The new control passes only on its message.
Testing it
cmake -S . -B build
ctest --test-dir build -C Debug -R trap-cards --output-on-failure
- Dominant language
- C
- Stars
- 1
- Forks
- 1
- Avg merge
- 3m
- Merged PRs (30d)
- 1
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from hazeliscoding/sdl3-porter
-
documentation good first issue
Difficulty 1/5 1-3 hours Newbie friendliness 83/100
hazeliscoding/sdl3-porter#19 ·
-
Test find_traps.py's search of the committed SDL2 codePossibly taken @ian0318git claimed this 2 days ago. Opengood first issue
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
hazeliscoding/sdl3-porter#18 ·
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
hazeliscoding/sdl3-porter#17 ·
-
trap-cards check: require a sample and an eval case for every trapPossibly taken A pull request linked to this issue is open or already merged. Openenhancement good first issue
Difficulty 3/5 1-2 days Newbie friendliness 82/100
hazeliscoding/sdl3-porter#21 ·
-
help wanted trap candidate
Difficulty 5/5 Over a week Newbie friendliness 25/100
hazeliscoding/sdl3-porter#16 ·
All issues in hazeliscoding/sdl3-porter
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
MerginMaps/geodiff#272 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
open-quantum-safe/liboqs#2644 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
espressif/esp-adf-libs#89 · 1 comment ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 2 days