M1 — Fix Scout contradictions
@fabrizzio-dotCMS is already working on this.
Since Sep 16, 2026.
- Dominant language
- Java
- Stars
- 970
- Forks
- 486
- Avg merge
- 3d 33m
- Merged PRs (30d)
- 170
Description
Sub-issue of #37124. Scout half of the Rock — mirrors Jose's M1 (#37126). Depends on M0.
Description
Fix the contradictions found in M0 across docs/testing/, the docs/core/ slice, .cursor/rules/ and .claude/commands/. Each fix verified against real source, the same standard M1–M3 held on the backend side: if a doc names a class, method, Maven property or command, it must exist in the codebase.
Acceptance Criteria
- Every contradiction from M0's inventory either fixed or explicitly deferred with a reason
- Each fix verified against real source — no doc left citing a class, annotation, property or command that doesn't exist
-
.cursor/rules/and.claude/commands/cross-checked againstCLAUDE.md's Critical Rules — both directories fully audited:.claude/commands/in #37610,.cursor/rules/in #37590 and #37629 - Three known broken links repaired — #37627:
-
.specify/memory/constitution.md→docs/core/ROLLBACK_UNSAFE_CATEGORIES.md— now../../docs/core/ -
.specify/memory/constitution.md→docs/core/SECURITY_PRINCIPLES.md— now../../docs/core/ -
core-web/CLAUDE.md→docs/frontend/STYLING_STANDARDS.md— now../docs/frontend/, matching line 142 of the same file;#form-fieldsanchor confirmed at STYLING_STANDARDS.md:149
-
Two contradictions already confirmed (found while scoping this issue)
- The Java-version mismatch survives in
.cursor/rules/java-context.mdc. It still statesCore: Java 11 syntax. CLI: Java 21 ok. Runtime: Java 21. RootCLAUDE.md:68no longer pins a version at all — it defers to.sdkmanrcfor the runtime anddotcms.core.compiler.releaseinparent/pom.xmlfor core modules. M1 (#37126) fixed this in the docs; the Cursor rule was outside Falcon's slice and was left behind, so the exact failure mode this Rock exists to stop is still being fed to anyone working from Cursor. - The integration-test registration rule never reached
.cursor/rules/.MainSuite/Junit5Suiteappears nowhere under.cursor/rules/.test-context.mdctells the reader to run./mvnw -pl :dotcms-integration verify -Dcoreit.test.skip=falsewith no mention that an unregistered test compiles, passes, and is silently never run in CI — the rule #37127 added toCLAUDE.md's Critical Rules. Related gate: #37581.
Both fixed in #37590 (merged 496ccc7463, Sep 17). java-context.mdc now points at .sdkmanrc and dotcms.core.compiler.release instead of naming a version, with a line against hardcoding one again. test-context.mdc states the consequence — unregistered means compiles, passes review, silently never runs in CI — and defers the choice of suite to docs/testing/INTEGRATION_TESTS.md, per review feedback from @nollymar and @jcastro-dotcms: #37583 had just established that the suite set isn't fixed and the pick depends on current CI timings.
.claude/commands/ was audited in the same pass and fixed in #37610: /gh-issue-troubleshoot step 6c was telling the model to register new integration tests in the suite with the fewest @SuiteClasses entries — an invented rule. That directory is now done; .cursor/rules/ is not: java-context.mdc and test-context.mdc were read in full, but README.md, doc-updates.mdc, dotcms-guide.mdc, e2e-rules.mdc and frontend-context.mdc have not been, so the cross-check criterion above stays open.
- Monitoring gate opened for each merged change (see Definition of Done in #37124)
Priority
High
Remaining, as of Sep 18
Merged so far: #37590 (both Cursor-rule contradictions), #37610 (.claude/commands/), #37627 (the three broken links).
Still open on this issue:
Done — #37629 (merged Sep 18) covered the remaining five. Findings:.cursor/rules/is 2 of 7 files.dotcms-guide.mdc, the onlyalwaysApply: truerule, had Critical Reminders missing both the integration-test registration rule and any Java-version pointer;doc-updates.mdc's glob was**/*.mdcwhile its own description claims.md/.mdc;README.mdindexed five of six rules and misdocumented that glob;frontend-context.mdcnamed two apps (content-drive-ui,edit-ema-ui) that don't exist.- The two M0-dependent criteria can't be ticked until #37576 produces its inventory. This issue exists to fix what that one finds.
- The monitoring gate opened with #37590 on Sep 17 and runs into early October. Tracked in #37581, baseline 0 of 28.
Out-of-scope finding from the link work: a sweep of all 539 tracked .md files found 77 more broken relative links — 65 in specs/, 9 in .github/ (8 of them written with a leading slash, which doesn't resolve on github.com), 3 elsewhere. None in docs/. Flagged for the backlog in #37580 rather than fixed here.
Contributor 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.
Assessment
This issue has not been assessed yet.