carlos / platform Public
Reviewed at fb26eebc; I edited no files. Closed-branch refs were absent, and network restrictions prevented fetching them or reading release bodies/discussion metadata. Those external claims remain unverified.
- P1 — Docs-link derivation generates anchors the website never renders. Spec: lines 176–180. Evidence:
git diff 4235e9fd^ 4235e9fd --unified=0 -- docs/site/cli.mdshows additions at lines 14–16, beneath# The CLI. The proposed rule produces/docs/cli#the-cli.docsite.Loadincludes that heading, but the website’smarkdown-it-anchorconfiguration only anchors levels 2–4; rendering the heading produces<h1>The CLI</h1>without an ID. The platform gate accepts this link and the proposed website gate rejects it. Fix: Derive fragments only for heading levels the renderer anchors; use the page URL for introductory content. Add this actual commit as a regression case.
- P2 — Squashed dependencies remain in a stacked branch’s “own commits.” Spec: lines 145–146. Evidence: Squash
4d13aec3namesfeat/hostclaim-genselectand records reviewed tipd7621a29. Runninggit rev-list --count --no-merges 4d13aec3^..d7621a29returns 22. Seventeen are hostclaim-library commits already delivered by preceding squash99084d7a. Excluding their original tip,47426cc1, returns 5. Squashing made the delivered work reachable under different commit IDs, so subtracting the mainline parent cannot remove it. Fix: Account for previously landed dependencies using their original branch tips or explicit provenance. Test a stacked branch whose dependency was squash-merged first; verify counts, credit weighting, and discussion references.
- P1 — The committed-data gate permits public privacy violations. Spec: lines 227–233. Evidence: The specified checks reject known identity addresses and agent-shaped addresses, but an ordinary address absent from
people.jsoncan remain in a discussion title ornotes.md. Likewise, a Markdown link to the privategithub.com/carlosframework/platformrepository passes: URL restrictions cover branch/discussion links, while the website check covers/docslinks. These are concrete mutations the proposed gates would accept, despite the broader generator promise at lines 113–114. Fix: Apply shared public-output validation in both generation and the committed-file gate. Check all text fields for email addresses and all rendered Markdown/HTML link destinations for prohibited private repositories. Include negative fixtures for both cases.
- P2 — Neither gate verifies release or change completeness. Spec: lines 227–234, with website checks at lines 221–223. Evidence: Remove
v0.1.0from otherwise valid JSON: ordering, uniqueness, links, and bullet mappings still pass—bullet mappings begin atv0.19.0. The website then checks section IDs only for the remaining releases. Similarly, an emptychangesarray for an older release passes. Both violate the fixed requirement to list every release and change. Fix: Validate release membership and per-release commit sets against an independent inventory derived from Git. If CI must remain offline without tags, commit that inventory and add omission tests; checking only entries present in the output cannot establish completeness.
Verdict: accept with fixes.