Skip to content

Validate the data on every pull request, and fix everything it found - #95

Merged
je-can-code merged 1 commit into
mainfrom
feat/data-validation
Sep 23, 2026
Merged

je-can-code merged 1 commit into
mainfrom
feat/data-validation

Conversation

@je-can-code

Copy link
Copy Markdown
Owner

Takes the rmmz-plugins build from je-can-code/rmmz-plugins#121, and gives the data a validator that runs on every pull request.

Validation

  • bun run validate checks the seams between the three things that write chef-adventure/data: every data file parses, no backup is committed, js/plugins/j/ is exactly one rmmz-plugins build with nothing stale beside it, every id a notetag or a plugin config names is a real row, and every notetag matches a pattern some plugin declares. What each tag means comes from the manifest.json the build now writes beside the plugins.
  • .github/workflows/validate.yml runs it on every pull request and every push to main, after bun run validate:selftest, which plants each kind of bug in memory and fails unless every one is caught.
  • package.json is new, as the home of those two scripts, and CLAUDE.md documents both.
  • The first run found 63 problems. Everything below fixes them.

Fixes it found

  • Deleted four orphaned plugins from js/plugins/j/, a stale source map, and Classes.old.json. .gitignore ignores *.old.json, *.backup* and *.bak*.
  • Six enemy combos pointed at skills blanked on Jul 25, and point at live ones again. Ka-peck chains through Ka-peck-peck to Ka-peck-peck-peck.
  • Removed the Wolftrap's test passive and the +Shielding extension, from the skill list and from the five enemies that carried it.
  • The richpoor quests fetch Wilted Greens and What the Ground Gave, dishes that exist, and name them with \item codes.
  • Twelve misspelled tags: hrc to hcr on the Life Cost states, jabsRole to aiRole on the Guardian and Sentinel maps, and dergrees, tpPerc and switchChoiceCondition.
  • Renamed juiceRepeatMotion to juiceRepeatCount, animationOnSelf to selfAnimationId, and targeting to targeted.
  • Removed <damagePerc:5> from 18 maps. It went with J-CAMods' floor damage, and regions replace it.
  • Accelerant speeds up burn ticks with <tickSpeedTypePercent:[burn, 100]>. Untouchable grants 1000% evasion and magic evasion. Smother drains through mpFormula and tpFormula. Careless lowers crit reduction, which the plugins now allow. Skeletor and Kapn Kappa are careful. Equilibrium's growth tag names sar.
  • docs/database-decode-cheatsheet.md calls ex-parameter 1 Phys Evade, not Parry Extend.

Growth

  • Every natural growth tag is written in status-screen numbers now, and these tags already were, so they behave as authored. Every ex- and sp-parameter class growth is a hundred times what it delivered before, and Trickster's Gambit goes from multiplying drops by level to adding a percent per level.
  • Lavos' cdmGrowthPlus reads 1.5, Blind lowers hit with <hitBuffRate:[-10]>, and Deathless Fury's pdr and mdr buffs read -50, all three having been written as fractions.
  • Growth accumulated in older saves does not carry over.

Plugins

  • J-Base 3.19.0, J-NaturalGrowth 3.0.0, J-CriticalFactors 1.4.0, J-DropsControl 2.6.0, J-ABS-Shield 1.2.0, J-ABS-Speed 1.2.0, J-Aptitude 1.5.0, J-Proficiency 2.5.0, J-Resources 1.2.0, J-Resources-ABS 1.2.0 and J-SDP 4.8.0.

Unrelated, from a sibling thread

  • The regen gear (armors 103 to 114) restores a flat amount per tick, from 5 on a band to 250 on a crown, with descriptions to match.
  • The armor table ends at 550. The hundred rows removed from its end were blank.
  • MapInfos.json and System.json carry editor-save noise.

@je-can-code
je-can-code merged commit 2f59a82 into main Sep 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant