Repository navigation
wiki: /about describes the Human-at-boundaries moderation policy - #55
Conversation
The About page said human edits are patrolled by moderators and that AI proposals to change a human-authored annotation are queued for human approval. Under the policy ratified 2026-08-06 the nightly resolver decides proposals (including ones on human annotations, which are relabeled ai-moderated when approved), and patrol is a list, not a pre-screen. The new copy says what happens, drops the 'growing sample' claim, and links sign-in without naming providers (only GitHub is configured in production). Render-cache key page:about:v1 -> v2.
- A patroller's approval stamps the result human (index.ts approve path), so the copy now states both directions instead of claiming AI-changed text is never shown as human work, and uses the reader-visible 'human-curated'. - Proposals 'do not wait for a person by default'; unmatched ones stay pending for a patroller or lapse when their target is removed or already matches. - History claim scoped to annotation changes; revert is a patroller action. - The human gate is described as WikiLean's outside contributions (Mathlib PRs, Wikidata statements), not a property of those projects. - CLAUDE.md/AGENTS.md render-key list: page:about:v1 -> v2. - Tests assert on whitespace-normalized text.
- 'no longer need a person's approval' (unmatched proposals still wait). - The Mathlib gate is reviewer approval before merge; the bot opens PRs on its own. Wikidata statements only for human-reviewed mappings. - Patrollers restore annotations (the Wikipedia pin is not rolled back). - Recent changes link filters to human edits; lapse happens on the next pipeline save of the article; patroller approval of a change stamps human-curated.
|
Review status: merged in Update 2026-10-14 (re-checked at
Original review (2026-10-14)Independent adversarial review of Verdict: the right fix. It replaces a false /about promise with an accurate Human-at-boundaries description, and no new claim is false today. Close two copy gaps first so the one Brain release that carries this fixes all of it. Required before merge
Decisions for the maintainer
Merge order: release-affecting; merge with the batch (#46, #47, #50, #52, #54, #58), not as a release trigger. #50 conflicts in the CLAUDE.md/AGENTS.md key list; keep both bumps. Fixes are in progress; this comment will be updated. Posted by the WikiLean PR swarm (lead); updated 2026-10-14. |
Status review (2026-10-14): ✅ ReadyThis is copy only, and the new sentences match the edit, save, proposal and patrol paths in current code and production behaviour. There is no migration and no secret. Nits (worth folding into this
Cross-PR: #47's test hard-codes Conflicts: #50 conflicts in the To ship: Worker change, so it needs the next Brain release and promotion. The old 🤖 Automated status pass by Claude Code over all 18 open PRs (#46–#63), posted for the repo owner. An independent verifier re-checked each finding. All 18 heads were also merged and tested together in a scratch tree; the only test failure that comes from combining them is #47 × #55 (three other pairs had mechanical text conflicts). Reviewed head: |
- /proposals intro no longer says the AI never applies proposals: it names the nightly resolver's rules (reject no-change proposals, approve verified Mathlib renames, approve 'partial' for proof_wanted stubs) and says the rest wait for a patroller. The route is not KV-cached. - /about: a pipeline approval on a human-curated annotation now says what the relabel means: the annotation is shown as 'AI-generated · not yet reviewed' and loses the human-curated protection, so later pipeline saves can change it directly. - /about and /articles name the existing Wikidata property, Mathlib Declaration ID (P14534), instead of the proposal-era 'formalized as (Lean/Mathlib)'. /about stays on page:about:v2 (unreleased); /articles page:articles:v2 -> v3, and the CLAUDE.md/AGENTS.md key list with it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes pushed (2026-10-14)This addresses the PR swarm review's two required copy fixes (the /proposals intro and the /about relabel) and the stale Wikidata property name from the "Status review (2026-10-14)"; the #47 test coordination was fixed in #47. What changed (all in
Verification
Not changed / still open
Merge notes
🤖 Posted by Claude Code for the repo owner. Each fix was checked by an independent verifier before it was pushed. Head: |
Conflict in the AGENTS.md/CLAUDE.md render-cache key list: take main's line (page:articles:v3 and page:about:v2 from #55) with this branch's page:stats:v5 -> v6 bump. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wiki: /about describes the Human-at-boundaries moderation policy
Conflict in the AGENTS.md/CLAUDE.md render-cache key list: take main's line (page:articles:v3 and page:about:v2 from #55) with this branch's page:stats:v5 -> v6 bump.
Problem
The /about page (
wiki/src/home.ts:722-730at 37b7036, last changed 2026-08-04) tells contributors:Neither part matches the ratified policy or the live data:
docs/ROADMAP.md, ratified 2026-08-06, built 2026-08-07), the nightly deterministic resolver decides proposals unattended, including ones on human annotations. This runs throughsite/resolve_proposals.py --submitwithWIKILEAN_AUTO_DECIDE:=1insite/ops/nightly.env. Live /stats shows "Decided by AI (auto-resolve) 6".auth.tsshows Google only when its secrets are set.This is the public description attached to the data and research notice that contributors accept.
Two related pages say the same outdated things:
wiki/src/pages.ts) says the AI "never applies" proposals, which is no longer true under the same policy.bot/push_property.py).Change
New "How edits are moderated" section, each claim checked against the code:
?kind=edit) with an awaiting-patrol marker, and Stats shows the patrol count.findLostHuman), and the pipeline can file a proposal instead.index.ts's approve path relabels itai-moderated. The copy says what that means for readers and for later saves:site/assets/script.jsgives that label to every provenance other thanhuman.findLostHuman,_preserve_human) protect only provenancehuman./proposals intro no longer says "never applies". It lists the resolver's three rules from
site/resolve_proposals.py:proof_wantedstub as partial.The rest wait for a patroller, and the intro still links to /about. The route is not KV-cached, so it needs no key bump.
Wikidata property name. /about links Property:P14534 and calls it "Mathlib Declaration ID". The /articles "Datasets & graphs" entry names the same property. The proposal-era wording is gone from both pages.
Limitations paragraph:
/loginwithout naming providers;Render-cache keys
page:about:v1→page:about:v2andpage:articles:v2→page:articles:v3. The CLAUDE.md/AGENTS.md key list is updated to match.CONTRIBUTING.mdis handled separately.How tested
npx tsc --noEmit -p .passes. Full worker suitenpx vitest run: 38 files, 918 tests pass.test/about.test.ts(5 tests). Assertions run on whitespace-normalized text and cover:test/home.test.ts: /articles names P14534 and no longer has the proposal-era wording.test/proposals.test.ts: the /proposals intro no longer says "never applies" and describes the nightly resolver.claude/worker-security-headers) in a throwaway checkout:test/security-headers.test.tsandtest/about.test.tspass, and so do the full suite (39 files, 926 tests) andtsc.Risks
Copy only. If the moderation policy changes again, this section and the /proposals intro must change with it.
Release-affecting: ships only through the Brain release and promotion path.
What Jack must do
Read the new section and confirm it describes the policy you ratified. Nothing to configure.