Repository navigation
M0.P1: Repository hygiene and CI - #67
Conversation
…ader, Fabric holder constructor, config defaults from code Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… rules for logs, data runs and caches Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pi stub it needed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and-in runner Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t of the source tree Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…uctures move to common resources Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…plate with the definition of done Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e reference machine Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… D285 for the dedicated-server method Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…test; D285 asks for their method Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…request Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… is found Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sing jar Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…est times and known failures Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…es F3 cannot test; D285 names them Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ames, comment fixes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Graphify reviewed this change.
Code graph out of date: Health delta baseline: last indexed commit 67bf1b5 (diverged from this PR's base — delta is approximate). Impact and hotspot numbers below may be wrong.
No verdict: the code graph is out of date. Static checks found no blocking issues, but they compared against an outdated graph. The next push after the repository re-indexes gets a full review.
Not checked: tests were not run; no formal proof of the changed code.
Graphify review — findings
Adds a contributor on-ramp for the Beta: a PR template carrying the definition-of-done checklist, a CI workflow that builds both loaders, runs :common:test and uploads the Forge and Fabric jars (the Gradle cache is saved only from integration/1.20.1), and a README rewritten around build, run, test and contribute steps. The README's GameTest section has contributors run one test with /test run <name> using the lower-cased method name, and it lists the known Forge and Fabric herd-test failures so nobody chases them. Also lands the engineering backlog and codebase-analysis docs, broadens the .gitignore patterns, and drops the unused mergetool-api and toml4j dependencies from common.
Review partial — this diff was larger than one review pass covers, so later files were not reviewed; some findings may be missing.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 991 functions depend on the 939 functions this change touches.
Health — this change adds coupling hotspots:
- new:
write()— 4 callers, 5 callees - new:
natural_forest()— 1 callers, 6 callees
Verification — 991 functions in the blast radius were not formally verified this run (proofs are advisory here).
Health delta baseline: last indexed commit 67bf1b5 (diverged from this PR's base — delta is approximate).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 991 function(s) in the blast radius were not formally verified this run
· 2 more finding(s) on lines outside this diff (see the check run).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ce via pull_request Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… against vanilla; tick time from F3 (lead answers D284 and D285) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efault branch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
This pull request cleans the repository and adds CI. It changes no gameplay.
./gradlew :common:test. The stand-in runner is gone. Each run prints the test count and fails if it finds no test.common. A Forge holder and a Fabric holder register them. The structures are in common resources.docs/config-reference.mdlists every TOML key.docs/performance-baseline.mdsets the target player PCs and how every fps and tick-time gate is checked.toml4j,@OnlyInin common and themergetool-apistub are gone. The ignore rules keepgit statusclean after a build.Work package
M0.P1: task plan. Spec: engineering backlog, M0.P1.Acceptance
integration/1.20.1after the merge is the acceptance run.git statusis clean after a build../gradlew build :common:test,git status --shortshows only the lead's localCLAUDE.mdand.claude/../gradlew tasks --all../gradlew :common:testruns every moved test and they pass. It is the only unit test runner.docs/performance-baseline.mdexists.Unit tests: 390 run, 390 passed, 0 failed, 0 skipped.tools/junit-standin/is deleted. The baseline page exists, with Mojang's two Java tiers as the target PCs.toml4j.grep -rn toml4j --include=*.gradleoutside.claude/finds 0 lines.commonand run on each loader through its holder.Runs performed
a7da2f7): a new creative world loads, and the mod's creative tab is present./test run sequencercorereceivesenergyreportspassed! (2046ms). The game saves and stops cleanly. The startup log has the four asset errors that earlier playtests showed (GeckoLib cannot parse theswimandgetupanimations, and thecarnivore_feeder_oneitem model fails to load). This pull request changes no assets../gradlew :forge:runServerstarts and stops at the EULA, as vanilla does. The README says how to accept it.Findings
CommonForgeEvents(gene, behaviour, diet, fossil). All 13 herd GameTests fail on Fabric with a null behaviour entry. M0.P2 owns the fix (reload listeners in common through a platform service).stackedmembersseparatepasses in some Forge runs and fails in others. Its body and template did not change.setup-java@v5turns them into 10 GitHub annotations per run. A backlog item could clear them.integration/1.20.1. The first push after this merge saves it. Later runs restore it, becauseintegration/1.20.1is now the default branch. Until then every run is cold (8 to 16 minutes).Decisions
Nothing in this section blocks the merge.
Your answers in this review (2026-10-25)
Integrated server @ N ms ticks, as the median of three readings. A gate that F3 cannot show gets its method in the plan of the package that owns it.Choices this pull request made
These are made. Change one only if it is wrong.
mod_author=Dumb-Code, a one-line description, the credits list, the GitHub URLs andpack_format15. No logo exists, so the logo lines are gone.package-info.javagives the rule for adding a test.graphify-out/is ignored.CLAUDE.mdand.claude/at the root stay yours, not ignored and not committed.HerdSpacingTestusesVec3andQualityTestloadsChatFormatting. Neither needs a running game, so both stay in:common:test, although the backlog calls the set "pure Java".Notes
tools/junit-standin/run.sh…" now says "Run all of them with./gradlew :common:test". The acceptance line "run.shis gone" now says "It is the only unit test runner".integration/1.20.1since 2026-10-25. New clones and new pull requests start there.minecraft_version_rangeis[1.20.1,1.22)on Forge, while Fabric pins 1.20.1 exactly.Definition of done
In scopeitem is implemented, or the PR names the cut item and the reason. (Balm is not declared, see Dependencies.)Acceptanceitem passes. The PR lists each one with "pass" or "fail" and the evidence../gradlew :common:test.docs/config-reference.mdwith defaults and the section 11 reference.en_us.jsonhas every new key. Datagen ran again if a provider changed. (No new key, no provider change.)🤖 Generated with Claude Code