Skip to content

feat(system-builder): the STATS & RULES page as logic (4b2c) - #185

Merged
over2take merged 1 commit into
feature/system-builderfrom
sb/4b2c-stats-rules-logic
Oct 7, 2026
Merged

over2take merged 1 commit into
feature/system-builderfrom
sb/4b2c-stats-rules-logic

Conversation

@over2take

Copy link
Copy Markdown
Owner

sheets/statsRules.ts: stat groups and stats (withNewGroup / withGroupLabel / withoutGroup, withNewStat / withStat / withoutStat, with ranges and ties), the sample character (sampleOf / withSample), formulas (withNewFormula / withFormula / withoutFormula, usedBy, problemsByFormula, insertToken), tables (withNewTable / withTableLabel / withoutTable, withBands, lookupIn). Ids come from first names via setup.idFor and never take one already used (takenIds: the starter sheet's and health section's fields, groups, stats, formulas, tables, the engine's functions). Removing a stat takes its sample and ties to it; empty sections are removed.

systemsApi gains previewValues (POST /api/systems/preview-values).

Held to the server: every step passes definition.js's check, the built system works out through derived.previewDerived, FUNCTIONS matches expression.js BUILTINS. Approved mockup builder-stats-rules, 2026-10-06.

Summary

Test plan

  • Tested locally
  • Tests pass

Pre-merge checklist

Code quality:

  • Code follows project style
  • No breaking changes (or clearly documented)
  • No console errors or warnings

Version & Release:

  • Version bumped? If releasing to users, update:
    • frontend/package.json version
    • docker-compose.yml APP_VERSION
    • CHANGELOG.md with release notes
  • GitHub Actions will auto-tag Docker images with the new version

Before merging to main:

  • All tests passing
  • PR reviewed and approved
  • Branch is up to date with main
  • No merge conflicts

Related issues

sheets/statsRules.ts: stat groups and stats (withNewGroup / withGroupLabel / withoutGroup,
withNewStat / withStat / withoutStat, with ranges and ties), the sample character (sampleOf /
withSample), formulas (withNewFormula / withFormula / withoutFormula, usedBy,
problemsByFormula, insertToken), tables (withNewTable / withTableLabel / withoutTable,
withBands, lookupIn). Ids come from first names via setup.idFor and never take one already
used (takenIds: the starter sheet's and health section's fields, groups, stats, formulas,
tables, the engine's functions). Removing a stat takes its sample and ties to it; empty
sections are removed.

systemsApi gains previewValues (POST /api/systems/preview-values).

Held to the server: every step passes definition.js's check, the built system works out
through derived.previewDerived, FUNCTIONS matches expression.js BUILTINS. Approved mockup
builder-stats-rules, 2026-10-06.
@over2take
over2take merged commit 2cf5647 into feature/system-builder Oct 7, 2026
4 checks 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