fix(misc): docs weekly audit 2026-08-03 - #3687
Draft
cursor[bot] wants to merge 1 commit into
Draft
Conversation
Co-authored-by: kyzooghost <kyzooghost@users.noreply.github.com>
alainncls
approved these changes
Aug 3, 2026
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.
Weekly Docs Audit - 2026-08-03
Automated audit of all Markdown files. Issues requiring human review are listed below.
Fixed Issues
Stale Version Claims Auto-Fixed (1)
CONTRIBUTING.mdJDK 21JDK 25buildSrc/src/main/groovy/net.consensys.zkevm.kotlin-common-minimal-conventions.gradle(JavaLanguageVersion.of(25))Stale Terminology Auto-Fixed (3)
docs/architecture-description.mdL1 LineaServiceL1 LineaRollupcontracts/src/rollup/LineaRollup.sol(contract name)docs/architecture-description.mdL1 LineaService smart contractL1 LineaRollup smart contractcontracts/src/rollup/LineaRollup.soldocs/architecture-description.md`LineaService.finalizeBlocks``LineaRollup.finalizeBlocks`contracts/src/rollup/LineaRollupBase.sol:359(function finalizeBlocks)Stale Command Names Auto-Fixed (7)
Renamed script names (
test:e2e:local,test:e2e:fleet:local,test:e2e:liveness:local) to match the canonical scripts defined ine2e/package.json(test:local,test:fleet:local,test:liveness:local).docs/tech/development/README.mdpnpm run test:e2e:localpnpm run test:localdocs/tech/development/README.mdpnpm run test:e2e:localpnpm run test:localdocs/tech/development/README.mdpnpm run test:e2e:local -- messaging.spec.tspnpm run test:local -- messaging.spec.tsdocs/tech/development/README.mdpnpm run test:e2e:fleet:localpnpm run test:fleet:localdocs/tech/development/README.mdpnpm run test:e2e:liveness:localpnpm run test:liveness:localdocs/tech/components/e2e.mdpnpm run test:e2e:local(2x)pnpm run test:localdocs/tech/components/e2e.mdpnpm run test:e2e:{fleet,liveness}:localpnpm run test:{fleet,liveness}:localCanonical source for all command renames:
e2e/package.jsonscripts block.Stale Cross-References Auto-Fixed (0)
None.
Remaining Issues (Requires Human Review)
[HIGH] Terminology conflict:
shnarfdefined with incompatible formulascontracts/docs/workflows/operations/blobSubmissionAndFinalization.md:21- describesnewShnarf = H(oldShnarf || appendedValue)as a stack/append model.docs/features/rollup.md:117- definesshnarf = keccak256(parentShnarf, snarkHash, finalStateRootHash, dataEvaluationPoint, dataEvaluationClaim)as a fixed 5-field tuple._computeShnarfimplementation.[HIGH] Permission inconsistency:
OPERATOR_ROLEabsent from LineaRollup role catalogdocs/features/rollup.md:64- listsOPERATOR_ROLEwith capabilities "Submit blobs, finalize blocks".docs/tech/components/contracts.md:180- showssubmitBlobs(...) ... onlyRole(OPERATOR_ROLE).contracts/docs/workflows/administration/roleManagement.md:64-81- LineaRollup role list omitsOPERATOR_ROLEentirely.[HIGH] Permission inconsistency:
SECURITY_COUNCIL_ROLEon-chain vs multisig charterdocs/features/pause-and-security.md:40,127-130- attributes indefinite pausing, unpausing, and cooldown reset to on-chainSECURITY_COUNCIL_ROLE.contracts/docs/workflows/administration/roleManagement.md:64-107- exhaustive role lists for LineaRollup, L2MessageService, TokenBridge;SECURITY_COUNCIL_ROLEnot listed.contracts/docs/security-council-charter.md:11-17- describes Security Council as Gnosis Safe multisigs.SECURITY_COUNCIL_ROLEis a real on-chain role or shorthand for multisig-held admin roles. Requires SME review.[HIGH] Enumerated value mismatch: pause role name vs pause-type enum for blob submission
contracts/docs/workflows/administration/roleManagement.md:79-80- usesPAUSE_L2_BLOB_SUBMISSION_ROLE/UNPAUSE_L2_BLOB_SUBMISSION_ROLE.contracts/docs/workflows/administration/pausing.md:61- usesSTATE_DATA_SUBMISSION_PAUSE_TYPE.docs/features/pause-and-security.md:34- usesSTATE_DATA_SUBMISSIONfor the same operation class.[MEDIUM] Lifecycle mismatch: E2E local-stack prerequisite differs across docs
AGENTS.md:233- "Protocol E2E tests require a running local stack (make start-env)".docs/get-started.md:23- documentsmake start-env-with-tracing-v2.e2e/README.md:20- documentsmake start-env-with-tracing-v2-ci.[MEDIUM] Lifecycle mismatch: who anchors L2->L1 Merkle roots on L1
docs/features/messaging.md:59-60- shows Prover -> L1 anchoring in the sequence diagram.contracts/docs/workflows/messaging/canonicalL2ToL1Messaging.md:17-18- Coordinator anchors messaging Merkle root(s) on L1 during finalization.docs/architecture-description.md:941-949- Prover computes; anchoring happens during finalization without naming the submitter.[MEDIUM] Terminology drift:
ADMIN_ROLEvsDEFAULT_ADMIN_ROLEcontracts/integrity-verifier/README.md:360- example:hasRole(ADMIN_ROLE, addr).docs/features/integrity-verifier.md:53- example:hasRole(ADMIN_ROLE, addr).contracts/integrity-verifier/verifier-core/src/constants.ts:133- canonical role hash keccak256("DEFAULT_ADMIN_ROLE").ADMIN_ROLEappears as an illustrative role name in examples; different verified contracts may legitimately expose different role names. Choosing betweenADMIN_ROLE(illustrative) andDEFAULT_ADMIN_ROLE(OpenZeppelin canonical) requires editorial judgement.[MEDIUM] Completion criteria drift: E2E success vs stack boot
docs/getting-started/lineth-stack/AGENTS.md:92-93- success requires observedfinalizeBlocksand advancingcurrentL2BlockNumber; explicitly notesSubmit Blobsis not finalization.docs/get-started.md:20-24- implies success frommake start-env-with-tracing-v2+pnpm -F e2e run test:localwithout a finalization criterion.[LOW] Stale cross-reference: broken anchor in
contracts/README.mdcontracts/README.md:45- links to../docs/audits.md#linea-rollup-l2messageservice-and-tokenbridge-smart-contract-audits.## Rollup, message service, and token bridge(slug:rollup-message-service-and-token-bridge). Per audit rules, broken anchors are always AMBIGUOUS (not auto-fixed).Audit Coverage
Checked 246 files (259 total, minus 12 CHANGELOG.md files and 1 generated artifact) across all 7 categories:
Canonical version sources cross-referenced:
.nvmrc(Node 24.18.0),package.json(pnpm 11.9.0),buildSrc/.../kotlin-common-minimal-conventions.gradle(JDK 25),prover/go.mod(Go 1.25.7),contracts/hardhat.config.ts(Solidity 0.8.33),contracts/package.json(OpenZeppelin 4.9.6),gradle/wrapper/gradle-wrapper.properties(Gradle 9.6.1).