Repository navigation
test: add coverage for untested atoms and 0.5.0 release docs - #3
Open
NullLabTests wants to merge 5 commits into
Open
NullLabTests wants to merge 5 commits into
NullLabTests wants to merge 5 commits into
Conversation
…rsion to 0.5.0 - Add comprehensive tests for all 8 intelligence atoms (Search, Summarize, Classify, Recommend, Analyze, Extract, Generate, Prompt) - Add tests for all 22 properties atoms (Status, Text, Number, Date, DateTime, Currency, Enum, Boolean, ID, Owner, Priority, CreatedAt, UpdatedAt, Score, Percent, Duration, Count, JSON, Address, AI, StartDate, EndDate, Email, Phone, URL) - Add tests for 3 previously untested actions atoms (CRUD, Notify/Assign, Search/Filter/Sort/Export) - Add tests for 3 previously untested interfaces atoms (Calendar, Chart, Detail) - Add tests for 3 previously untested rules atoms (Audit, Permission, Policy) - Create CHANGELOG.md documenting changes between versions - Add test:coverage npm script - Fix stale Roadmap in README that contradicted the Status section - Bump version to 0.5.0 in package.json and CITATION.cff
… set CITATION.cff date-released to 2026-10-16
…der, and 0.4.0 CHANGELOG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Full repo review with 5 improvements: fix stale Roadmap in README, bump version to 0.5.0, add test coverage for untested atoms (intelligence, properties, actions, interfaces, rules), create CHANGELOG.md, add test:coverage script
What Changed
test/atoms-untested.test.tswith behavior tests for previously untested atoms across the intelligence, properties, actions, interfaces, and rules families, plus atest:coveragenpm script.CHANGELOG.mddocumenting 0.5.0 and 0.4.0, and corrected the stale Roadmap section in README to match the 100% reference-implementation status.package.jsonandCITATION.cff(including release date) and updated the bug report template version placeholder.Risk Assessment
✅ Low: All five intent items are present and every factual claim in the new CHANGELOG and README was independently verified against git history and current source; the new tests are behavioral and all asserted outcomes match the implementations.
Testing
Exercised the executable surface of the change against the real product: installed project deps with
npm ci, then ran the newly addedtest:coveragescript (the feature under test) which drove the full suite and emitted a coverage report, ran the newtest/atoms-untested.test.tsfile directly, ran the pre-existingnpm run coveragereference-implementation report, and adversarially mutated an atom to prove the new tests fail on a real behavior regression (reverted afterwards). For the declarative parts I invoked the real consumers:npm pkg get versionand a pyyaml parse of CITATION.cff for the version bump, and rendered README/CHANGELOG to HTML to confirm the Roadmap fix and the CHANGELOG contents. Verified the CHANGELOG 0.4.0 breakdown (90/115, 25 missing: 14 actions, 9 interfaces, 2 rules) against git history and the project's own coverage logic, which confirms it is factually correct (the recorded review-7 instruction's stated 13/9/3 value was itself erroneous). All live scenarios passed; no findings.node --import tsx --test test/atoms-untested.test.ts→ 41 tests / 41 pass / 0 fail (atoms-untested-test-run.txt); same suite insidenpm run test:coveragenpm run test:coveragescript and observe the full suite plus a coverage report with exit 0npm run test:coverage→ # tests 264 / # pass 264 / # fail 0, coverage table printed, exit 0 (test-coverage-run.txt); script present in version-metadata.jsonparseBooleanin atoms/properties/boolean.ts so 'yes' returns false; test file reportednot ok 7 - Boolean (Bl) parses boolean values, # pass 40 / # fail 1 / exit 1; file restor…npm run coveragereports 115 of 115 atoms implemented, matching the README Status claimnpm run coverage→ TOTAL 115 115 100%, all six families 100% (reference-coverage-report.txt)npm pkg get versionand a pyyaml parse of CITATION.cff. Version fields in package.json and CITATION.cff are m…Evidence: test:coverage full run (264 tests, coverage table)
# tests 264 / # pass 264 / # fail 0; atoms-untested.test.ts 100.00% lines; all atoms/* files in the five families have non-zero coverageEvidence: reference-implementation coverage report (115/115)
TOTAL 115 115 100%; objects 35/35, properties 25/25, actions 25/25, interfaces 15/15, intelligence 8/8, rules 7/7Evidence: new atom test file run (41/41)
Evidence: adversarial regression check (mutation makes test fail)
Source: adversarial regression check (mutation makes test fail) (local file:
~/.no-mistakes/evidence/01M53EZSRTR57Q9PT10H52JZK7/adversarial-regression-check.txt)Evidence: parsed version metadata (package.json + CITATION.cff)
{"package_json":{"version":"0.5.0","has_test_coverage_script":true},"citation_cff":{"version":"0.5.0","date_released":"2026-10-16"}}~/.no-mistakes/evidence/01M53EZSRTR57Q9PT10H52JZK7/README.rendered.html)Evidence: rendered CHANGELOG.md (0.5.0 entry)
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 3 issues found → auto-fixed (2) ✅
test/atoms-untested.test.ts:449- Intent conformance gap: the intent requires "add test coverage for untested atoms (intelligence, properties, actions, interfaces, rules)". The interfaces family had 4 untested atoms (Calendar, Chart, Detail, Form), but the Interfaces describe block (lines 449-500) covers only Calendar, Chart, Detail. Form (Fm, id 99; atoms/interfaces/form.ts:3) has no test: no file in the repo imports atoms/interfaces/form.ts. The other four families are complete (8/8 intelligence, 25/25 properties, 11/11 actions, 3/3 rules). Note README.md:193-194 still claims "Every element has a tested reference implementation — 115 of 115 (100%)", which remains false while Form is untested. Decide: add Form coverage, or explicitly accept the gap and amend the CHANGELOG/intent scope.CHANGELOG.md:14- Count error: "Test coverage for 3 previously untested actions atoms" lists 11 atoms (Create/Update/Delete/View, Notify/Message/Assign, Search/Filter/Sort/Export). Every sibling bullet's count matches its listed atoms (8 intelligence, 25 properties, 3 interfaces, 3 rules). Fix: change 3 to 11, or reword to "3 groups of previously untested actions atoms".CHANGELOG.md:36- The 0.4.0 entry (lines 32-37) contradicts git history. At 0.4.0 (commit 8d74149) only 90 of 115 atoms had reference implementations — the README Roadmap at the base commit still said 21 missing (13 actions, 7 interfaces, 1 rules) and f3ed4cf implemented them — so "Reference implementations for all 115 atoms" (line 36) is false. CI at 0.4.0 ran only validate/coverage/lint/check with no test step and no test npm script (test script added in 7b0c807, CI test step in f8b4608), so "CI pipeline with ... and testing" (line 37) is false. 0.4.0 was not the initial release (0.1.0, commit b0a4e1d) and the 115-element ontology dated from 0.2.0 (7c5d7a7), so "Initial release with 115 atoms" (line 32) is false. Fix: correct all three claims to match history.🔧 Fix applied.
5 warnings still open:
CHANGELOG.md:14- Count error: "Test coverage for 3 previously untested actions atoms" lists 11 atoms (Create/Update/Delete/View, Notify/Message/Assign, Search/Filter/Sort/Export). Every sibling bullet's count matches its listed atoms (8 intelligence, 25 properties, 3 interfaces, 3 rules). Fix: change 3 to 11, or reword to "3 groups of previously untested actions atoms".CHANGELOG.md:36- The 0.4.0 entry (lines 32-37) contradicts git history. At 0.4.0 (commit 8d74149) only 90 of 115 atoms had reference implementations — the README Roadmap at the base commit still said 21 missing (13 actions, 7 interfaces, 1 rules) and f3ed4cf implemented them — so "Reference implementations for all 115 atoms" (line 36) is false. CI at 0.4.0 ran only validate/coverage/lint/check with no test step and no test npm script (test script added in 7b0c807, CI test step in f8b4608), so "CI pipeline with ... and testing" (line 37) is false. 0.4.0 was not the initial release (0.1.0, commit b0a4e1d) and the 115-element ontology dated from 0.2.0 (7c5d7a7), so "Initial release with 115 atoms" (line 32) is false. Fix: correct all three claims to match history.CHANGELOG.md:36- 0.4.0 entry is internally inconsistent: 'Reference implementations for 90 of 115 atoms (21 missing: 13 actions, 7 interfaces, 1 rules)' — 90 + 21 = 111 ≠ 115. The 21-missing breakdown is the state at f3ed4cf^ (94/115, per f3ed4cf's commit message 'up from 94/115' and the Roadmap at f3ed4cf^), not at 0.4.0. At 0.4.0 (8d74149) the atoms tree shows 90 implementations (35 objects + 25 properties + 8 intelligence + 12 actions + 6 interfaces + 4 rules) and 25 missing: 13 actions, 9 interfaces (Gallery/Feed not yet added), 3 rules (Schedule/Condition/Action not yet added) — those 7 were added in 7b0c807 and siblings after 0.4.0. Introduced by fix round b4f63fa, which rewrote this entry per the recorded review-6 instruction (that instruction itself conflated the two states). Fix: 'Reference implementations for 90 of 115 atoms (25 missing: 13 actions, 9 interfaces, 3 rules)'.CHANGELOG.md:15- Interfaces bullet undercounts: 'Test coverage for 3 previously untested interfaces atoms (Calendar, Chart, Detail)'. Fix round b4f63fa added Form (Fm) coverage per the recorded review-4 decision, so 4 interfaces atoms now have tests (test/atoms-untested.test.ts, 'Form (Fm) defines and materializes form views'). The same round corrected the sibling actions bullet (3→11, review-5) but left this one behind. Fix: change 3 to 4 and add Form to the list.README.md:193- The Status claim 'Every element has a tested reference implementation — 115 of 115 (100%)' is false at HEAD: no test file imports any of the 35 atoms/objects files (test/ contains zero atoms/objects imports; object atoms are exercised only by examples/task-board.ts et al., which are not tests). Tested families: intelligence 8/8, properties 25/25, actions 25/25, interfaces 15/15, rules 7/7; objects 0/35. The recorded review-4 decision stated this change makes the claim true, but the objects family — deliberately excluded from the intent's 5-family coverage list — remains untested. Note: this text was introduced by the base commit f3ed4cf, not by this diff, but the recorded decision tied its truth to this change. Decide: add object test coverage (extends beyond the intent's stated scope) or correct the claim.🔧 Fix applied.
✅ Re-checked - no issues remain.
node --import tsx --test test/atoms-untested.test.ts→ 41 tests / 41 pass / 0 fail (atoms-untested-test-run.txt); same suite insidenpm run test:coveragenpm run test:coveragescript and observe the full suite plus a coverage report with exit 0npm run test:coverage→ # tests 264 / # pass 264 / # fail 0, coverage table printed, exit 0 (test-coverage-run.txt); script present in version-metadata.jsonparseBooleanin atoms/properties/boolean.ts so 'yes' returns false; test file reportednot ok 7 - Boolean (Bl) parses boolean values, # pass 40 / # fail 1 / exit 1; file restor…npm run coveragereports 115 of 115 atoms implemented, matching the README Status claimnpm run coverage→ TOTAL 115 115 100%, all six families 100% (reference-coverage-report.txt)npm pkg get versionand a pyyaml parse of CITATION.cff. Version fields in package.json and CITATION.cff are m…node --import tsx --test test/atoms-untested.test.ts(41 tests / 41 pass / 0 fail)npm run test:coverage(new script; 264 tests / 264 pass / 0 fail, emits per-file coverage table, exit 0)npm run coverage(reference-implementation coverage 115/115 = 100%)Adversarial regression check: transiently flippedatoms/properties/boolean.tsparseBoolean('yes')tofalse, re-ran the new test file (Boolean test failed, 40 pass / 1 fail, exit 1), then restored the file (git statusclean)Version metadata parsed frompackage.json(JSON) andCITATION.cff(YAML via pyyaml): version 0.5.0, date-released 2026-10-16,test:coveragescript presentRendered README.md and CHANGELOG.md to HTML and confirmed the stale Roadmap text is absent and the new near/medium/long-term roadmap is presentCHANGELOG.md:36- The recorded review-7 decision instructed the exact 0.4.0 correction 'Reference implementations for 90 of 115 atoms (25 missing: 13 actions, 9 interfaces, 3 rules)', but the committed text (817358a) says '14 actions, 9 interfaces, 2 rules'. Verified against git history at 0.4.0 (8d74149): 11/25 actions, 6/15 interfaces, and 5/7 rules were implemented (atoms/rules/trigger.ts already declared ConditionMeta at 0.4.0), so 14/9/2 is factually correct and the recorded correction rested on a miscount. Kept the correct text rather than applying the recorded wording, since applying it would introduce a factual error; flagging the deviation for user confirmation.✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.