Repository navigation
Make the repository ready to publish: checked sources, review record, provenance - #1
Conversation
The adversarial review of v0.2, its disposition ledger, the hypothesis register (CP-11) and the analogy records (CP-09) were kept in the private working repository. They are the part of the work an outside reader could not otherwise check: which findings were accepted, deferred or rejected, and what each claim actually rests on. They are reproduced as written, with a note on each saying what its internal references point to. docs/provenance.md is new: the timeline of how the protocol came about, what stays private and why, the numbered working documents, the identifier schemes, and a one-line description of the author's other projects that appear by name. The v0.1 -> v0.2 change record becomes CHANGELOG.md, which docs/known-findings.md already referred to. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kkcu5mQ2JpAcSWUwskrSJw
README gains three short sections -- using it today, how it was developed, what's next -- and two mechanisms that were missing from the summary: meaning before commitment, and challenge before convergence (marked as accepted but not yet in the protocol text). docs/phase-1-feasibility.md makes the Phase 1 plan public: observe before steering, the spikes S-0 to S-9 with their status, and what building the S-1 instrument already found. The spike code itself stays private, because spike code is throwaway by rule. examples/naming-decision.md shows the commitment act and a recorded, overruled challenge on a real decision, and says plainly that it is not a discovery run. References to private working documents in the catalogue, the conformance matrix, the lint and research/01 now point to their public counterparts or to docs/provenance.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kkcu5mQ2JpAcSWUwskrSJw
research/ made claims with no traceable source. Every study the synthesis relies on was looked up again: the work exists, and authors, title, year, venue and DOI match; stated numbers were checked against abstracts where they appear. research/REFERENCES.md lists 33 sources, tagged peer-reviewed, preprint or practitioner, with a table of which claim rests on which. The check found one wrong author list in the unpublished reports (Bansal et al. 2021, corrected), no mismatched numbers, and a set of claims whose support is narrower than their wording -- several of them under "strongly supported". Those are marked in place, listed in REFERENCES.md, and recorded as known finding KF-3 rather than silently reworded; narrowing them is left to a v0.2.1 pass. Shin et al.'s sample size is still taken from the report and is flagged as not yet checked against the paper. research/01 sections 2 and 2A now cite their sources inline, section 9 states what was done and what remains, and the README links the closest study directly. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kkcu5mQ2JpAcSWUwskrSJw
ac2eb3b to
7a3ac76
Compare
REFERENCES.md still had fields marked as unconfirmed: missing author names, DOIs and pages taken from memory, and study figures that came only from the research reports. Each one has now been looked up at the primary source or an index record (arXiv abstract and full text, the published article, ScienceDirect and ERIC, the ISCA archive, PubMed, the Springer chapter page, a university research portal). A field is now either confirmed or still marked, with the reason it could not be confirmed. - Shin et al. 2025: N=280 confirmed in the abstract. The abstract names three LLM approaches and the full text adds a manual no-LLM baseline, so "four conditions" stays and the entry says how they add up. The closing note of the thin-support section no longer calls these numbers unchecked. - Ferrari et al. 2022: DOI confirmed on the published article. Volume and pages are still unconfirmed, and the entry says so. - REFSQ 2026 paper: authors are now Mircea, Gevrek, Schmid & Schneider, LNCS 16497, 303-319. The abstract confirms 26 participants and 130 requirement statements; the body gives the 43 % / 35 % / 5 % figures. Its citation key changes from StakeholderLLM2026 to Mircea2026 to match the file's author-year convention. The anchor and every use in REFERENCES.md and research/01 are renamed. Keeping the descriptive key was rejected: author-year is the convention and the authors are known. - Branigan et al. 2011: DOI, volume, issue and pages confirmed; the link now uses the DOI instead of PubMed. - Ostrand et al. 2023: full author list, pages and DOI added. - Gervits et al. 2023: full author list, volume, issue and article number added. - de Rooij & Biskjaer 2026: authors confirmed. The DOI still rests on the publisher URL because the article page could not be opened, and the note says so. Tested: tools/boundary_lint.py reports 2 findings, 0 new. A check of every relative link and anchor in all Markdown files finds 0 broken. grep finds no remaining "to be confirmed" marker and no use of the old key. Risk: volume and pages for Ferrari 2022, and volume and issue for de Rooij 2026, are still unconfirmed and are marked as such. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kkcu5mQ2JpAcSWUwskrSJw
The Ferrari et al. 2016 entry in research/REFERENCES.md said its volume and pages were "from memory and should be confirmed". In a public reference list that reads as an unfinished note, and it hides what was actually checked. An attempt to confirm volume 21(3), 333-355 at the publisher page and at an institutional repository failed: neither was reachable from this environment (rate limit, timeout), and search results show the DOI and title but not the pages. The note now states that fact directly: volume and pages could not be checked against the publisher record. The DOI and title were already confirmed and are unchanged. Dropping volume and pages from the entry was considered and rejected. They are very likely correct and useful to a reader, and marking them as unchecked is the file's existing convention. Tested: python3 tools/boundary_lint.py . reports 2 findings, 0 new.
PR Review VerdictResult: BLOCK Deterministic: boundary lint: 2 finding(s), 0 new, exit 0 (CI check Acceptance Criteria
Findings
Not Checked
Routednone Judgment dimensionsNo code smell (the only code change is a docstring in Generated by Claude Code |
Review round 1 on this PR (verdict BLOCK at 83415ef) found that the claims about the source check and the review ledger were stronger than what the files hold, and that several counts and statuses disagreed between files. Ledger overclaim (blocking): docs/review/disposition.md said it records "what happened to every finding". It records the change proposals and the findings they address. The header now says that, names the six findings with no proposal of their own (F-04, F-06, F-12, F-15, F-20, F-24), says F-12 has since been addressed by research/REFERENCES.md and that the other five have no recorded disposition. README now says each proposal, not each finding, was dispositioned. Verification overclaim (blocking): REFERENCES.md opened by saying authors, title, year, venue and DOI match for every source. It now says every cited work exists and that title, year, venue and DOI match, and that fields which could not be confirmed are marked. The same stronger wording in research/01's amendment note, KF-3, the CHANGELOG line, provenance and the file's own first line now says "checked" and points at the marked fields. Unconfirmed fields now carry one marker, "not confirmed: <reason>", so a single grep finds all of them: Raees 2026 authors and article number, Luan 2025 authors, Dhillon 2024 authors after the first two, Jakesch 2023 N=1,506, Hofer & Schwentner year, Ferrari 2016 and 2022 volume and pages. The "published non-replication" of Boutonnet & Lupyan 2015 is now cited: a new NonReplication2021 entry (Collabra: Psychology 7(1), 29763), linked from the BoutonnetLupyan2015 entry and the thin-support table. Its authors and DOI are marked not confirmed. Smaller disagreements: - README said "four focused literature reviews" while research/01 §9 says the reports are not literature reviews; it now says "research reports". - REFERENCES.md's claim table and KF-3 disagreed on "AI valuable for synthesis". Both now say articulation and drafting are supported, synthesis rests on one preprint, search and critique are not covered. - The ledger summary defers five proposals to v0.2.1 while its table defers six. A bracketed note added on publication says four go to v0.2.1 (CP-02, 04, 13, 14) and two carry no target version (CP-08, 15). - The hypothesis register cited T-01..T-13 for protocol/07. A bracketed clarification says T-01..T-10 are in protocol/07 and T-11..T-13 were proposed in the review. Rewriting the ported ledger and register text directly was rejected: they are published records, so corrections are added as marked notes. Dropping the non-replication claim instead of citing it was rejected: the caveat is correct and useful. Tested: python3 tools/boundary_lint.py . reports 2 findings, 0 new. A link and anchor check over all Markdown files finds 0 broken links, including the new #nonreplication2021 anchor. A grep for the employer and notes repository names finds nothing. A grep for "not confirmed" in REFERENCES.md lists every unconfirmed field. Risk: the NonReplication2021 entry's authors and DOI remain unconfirmed; the entry says so. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kkcu5mQ2JpAcSWUwskrSJw
|
Review round 1 (83415ef): all findings fixed in e15ce8b.
Generated by Claude Code |
PR Review VerdictResult: BLOCK Deterministic: boundary lint: 2 finding(s), 0 new, exit 0 (CI check Round 2. The judgment covers the delta since the round-1 verdict at 83415ef (commit e15ce8b and the updated PR body) and whether anything new at blocking severity appeared. The deterministic checks and every criterion's stated verification were run again in full at this head. Acceptance Criteria
Findings
Not Checked
Routednone Judgment dimensionsNo code smell (the delta is Markdown only). No added complexity. Need-to-build: yes, the corrections belong in the files that carried the overstatements, and marking fixes to ported records as publication notes keeps them readable as records. Condensed: net better. The verification and ledger wording now matches what the files hold, apart from the one README table cell above. Generated by Claude Code |
…s hold Review round 2 (BLOCK at e15ce8b) found one leftover from round 1 and three advisory inconsistencies, all places where a sentence still claimed more than the files it describes. - README: the docs/review/ row said the directory records what happened to each of the review's findings, but the ledger header now states that five findings have no recorded disposition. The row now says "each of its change proposals", which the ledger does cover. This was the blocking finding. - research/hypothesis-register.md: the "Executes" note placed T-01..T-13 in protocol/07. A marked on-publication note now says T-11..T-13 were proposed in the adversarial review, matching the clarification added lower in the same file in the previous commit. - docs/provenance.md: "checked against the primary sources" becomes "checked against publisher and index records", the wording used everywhere else. - research/REFERENCES.md: "synthesis rests on one preprint" (claim table and thin-support table) now names the preprint, SalgadoNeto2026, and says the synthesis does not cite it. Each change is a one-line consistency fix, so no alternatives were weighed. Tested: python3 tools/boundary_lint.py . reports 2 findings, 0 new. The new #salgadoneto2026 link targets an existing anchor in the same file. The PR title still says "verified sources"; it is changed separately on GitHub. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kkcu5mQ2JpAcSWUwskrSJw
|
Review round 2 (e15ce8b): fixed in 0974dc1.
Generated by Claude Code |
PR Review VerdictResult: PASS Deterministic: boundary lint: 2 finding(s), 0 new, exit 0 (CI check Round 3. The judgment covers the delta since the round-2 verdict at e15ce8b: commit 0974dc1 (four one-line changes, in Acceptance Criteria
Findings
Not Checked
Routednone Judgment dimensions
Generated by Claude Code |
Review round 3 on this PR (verdict PASS at 0974dc1) raised one advisory finding: the identifier table in docs/provenance.md sent readers to protocol/07 for every T-nn ID. protocol/07 defines only T-01 to T-10. T-11 to T-13 were proposed in the adversarial review, so a reader looking up one of them in protocol/07 would not find it. The "Defined in" cell for the D/T/P/E row now also says that T-11 to T-13 were proposed in the adversarial review, with a link to docs/review/2026-09-adversarial-review-v0.2.md. This matches the note already in research/hypothesis-register.md. Tested: python3 tools/boundary_lint.py . reports 2 findings, 0 new. The new link target exists. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kkcu5mQ2JpAcSWUwskrSJw
|
Review round 3 (0974dc1, PASS): the one advisory is fixed in 4042305. The provenance identifier table now says that T-11 to T-13 were proposed in the adversarial review and are not in Generated by Claude Code |
PR Review VerdictResult: PASS Deterministic: boundary lint: 2 finding(s), 0 new, exit 0 (CI check Round 4. The judgment covers the delta since the round-3 verdict at 0974dc1: commit 4042305, a one-line change to the identifier table in Acceptance Criteria
Findingsnone Not Checked
Routednone Judgment dimensions
Generated by Claude Code |
Requested by kschlt · project thread
Before: the research synthesis made claims without a single citation, and several files pointed to private working documents (
09_…,source-research/,CP-nn, "Phase 1") that an outside reader could not open. The README said what exists but not how to use it today, how it was built, or what comes next. The review and its outcomes were private.After: every source the research relies on is listed and checked in
research/REFERENCES.md, with any field that could not be confirmed marked as such. Claims whose support is narrower than their wording are marked where they stand and recorded as known finding KF-3. The adversarial review of v0.2, the ledger recording what happened to each of its change proposals, the hypothesis register and the analogy records are published.docs/provenance.mdexplains every remaining reference to the private working repository and to the author's other projects. The README gains short sections on using it today, how it was developed, and what's next, plus a worked example.Contents
research/REFERENCES.md: 35 sources tagged peer-reviewed, preprint or practitioner, a table mapping claims to sources, and the list of weakly supported claims.research/01andresearch/02now cite inline.docs/review/: the adversarial review (25 findings, 15 change proposals) and the disposition ledger, which is now the public index ofCP-01toCP-21.research/hypothesis-register.md,research/analogy-records.md: CP-11 and CP-09, as executed.docs/provenance.md: timeline, what stays private and why, the numbered working documents, the ID schemes, and one line on each of the author's own projects named here (Turn, aos, loomwise, CWS, Methodplane, Cookframe).docs/phase-1-feasibility.md: the Phase 1 spike plan with a status per spike. The S-1 instrument is built and self-tested, and its run is pending. The spike code stays private.examples/naming-decision.md: a real commitment and an overruled challenge, recorded in the protocol's format, marked as not being a discovery run.CHANGELOG.md: the v0.1 → v0.2 change record.How
The ported documents are reproduced as written, each with a header note on what its internal references point to, so they remain records; where a ported record contradicts itself, a note marked as added on publication says so. Sources were checked against publisher and index records, and against the paper where the entry says so. Shin et al.'s N=280 and four conditions are confirmed against the paper. Every field that could not be confirmed carries "not confirmed" and the reason.
Not in this PR
Evidence cases (they need a full privacy read first), GitHub description and topics, and the visibility change. The earlier commits were rewritten separately: history emails are noreply only.
Acceptance List
Derived from the acceptance criteria of PUB.
research/REFERENCES.mdflagged "not confirmed" is either confirmed against the primary source or explicitly left flagged with the reason written next to it — proof: eval:references-unconfirmed-audit (grep for "not confirmed" and check each hit carries a confirmation or a reason) — Verify:grep -n -i -E "not confirmed|should be confirmed|to be confirmed|from memory|not checked" research/REFERENCES.md; every entry hit reads "not confirmed: " (nine entries: Raees 2026, Luan 2025, Dhillon 2024, Jakesch 2023, Ferrari 2016, Ferrari 2022, NonReplication2021, Hofer & Schwentner, de Rooij 2026), and no "should be confirmed", "to be confirmed" or "from memory" remainspython3 tools/boundary_lint.py .) — Verify: runpython3 tools/boundary_lint.py .; it reports 2 findings, 0 new, and exits 0 (CI joblintruns the same)](path#anchor)link in every*.mdfile, the target file exists and the anchor exists as an<a id>or a heading slug in it/pr-reviewverdict comment on this PR, at the current head, reads PASS🤖 Generated with Claude Code
https://claude.ai/code/session_01Kkcu5mQ2JpAcSWUwskrSJw