Implement M2: claim/evidence discipline for CR-000 (CR-WP-0004)

Obtain CR-000's first independent criticism via a freshly spawned,
context-isolated agent instance with no prior authorship context
(CR-000-X003-X007 in criticism.md). It found two internal-consistency
violations self-criticism had missed: CR-000-C006's cited evidence was
circular (X003) and conflated manuscript assertion with a real Evidence
object (X004), so C006 is now contested and its evidence withdrawn. It
also flagged that self-criticism had concentrated on infrastructure while
leaving substantive claims unchallenged (X005), an unlabeled overreach in
the Abstract (X006, now fixed), and a provenance-field ambiguity (X007).

Add evidence.md's first two entries (CR-000-E001, CR-000-E002), both
explicitly assessed as weak and left conjectural rather than inflated to
supported. Add scripts/query_paper_graph.py, a minimal read-only script
answering claim/evidence/criticism relation queries without manual
grepping, as a partial response to CR-000-X001 (which remains open: it is
a query layer over flat files, not a real graph).

Revise manuscript.md (Abstract, SS11-14) and questions.md to reflect all of
the above; Q2 gets a provisional "mixed" answer.

Close CR-WP-0004 and hand off CR-WP-0005 (resolving remaining open
criticism, and obtaining organizationally- rather than only
procedurally-independent review) rather than starting M3, which this
workplan judges premature while CR-000 still has open internal-consistency
findings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 228422@bnt-lap001
Assistant-Session: 49089735-86e1-4d29-8a6e-74c26947f8c4
This commit is contained in:
tegwick 2026-09-28 20:37:35 +02:00
parent b9c843041f
commit dbf610b7b6
11 changed files with 853 additions and 115 deletions

View file

@ -16,9 +16,11 @@ This repository is currently a documentation and research seed. Start with:
- [Paper registry](research/registry/papers.yaml) — authoritative index of
registered papers, currently just `CR-000` (Paper Zero, RP-000).
M0 ([research facility skeleton](workplans/CR-WP-0002-research-facility-skeleton.md))
and M1 ([Paper Zero v0.1 manuscript](workplans/CR-WP-0003-paper-zero-v0-1-manuscript.md))
M0 ([research facility skeleton](workplans/CR-WP-0002-research-facility-skeleton.md)),
M1 ([Paper Zero v0.1 manuscript](workplans/CR-WP-0003-paper-zero-v0-1-manuscript.md)),
and a first pass of M2 ([claim/evidence discipline](workplans/CR-WP-0004-claim-evidence-discipline.md))
are implemented. The next implementation is
[M2: claim/evidence discipline](workplans/CR-WP-0004-claim-evidence-discipline.md).
[resolving CR-000's outstanding criticism](workplans/CR-WP-0005-resolve-outstanding-criticism.md)
before M3 is judged ready.
There is no application to install, test, build, or run yet. For documentation
changes, run `git diff --check` and review links, YAML, and work-record structure.

View file

@ -33,12 +33,16 @@ establish scientific validity or publication readiness.
## Next Work
M0 and M1 are implemented (`workplans/CR-WP-0002-research-facility-skeleton.md`,
`workplans/CR-WP-0003-paper-zero-v0-1-manuscript.md`, both finished): the
artifact convention, `RP-000`/`CR-000` skeleton, paper registry, and a
coherent CR-000 v0.1 manuscript exist. `CR-WP-0003`'s own self-criticism
found the implementation still document-centric and only self-criticized
(`CR-000-X001`, `CR-000-X002`); `workplans/CR-WP-0004-claim-evidence-discipline.md`
owns M2 (independent criticism, real evidence linkage, and a response to
the document-centrism criticism). The bootstrap workplan is
`workplans/CR-WP-0001-statehub-bootstrap.md`.
M0, M1, and a first pass of M2 are implemented
(`workplans/CR-WP-0002-research-facility-skeleton.md`,
`workplans/CR-WP-0003-paper-zero-v0-1-manuscript.md`,
`workplans/CR-WP-0004-claim-evidence-discipline.md`, all finished): the
artifact convention, `RP-000`/`CR-000` skeleton, paper registry, a
coherent CR-000 v0.1 manuscript, first evidence entries, a minimal
claim/evidence/criticism query prototype, and CR-000's first independent
criticism all exist. That independent review found a real
internal-consistency violation self-criticism had missed
(`CR-000-C006`, now `contested`) and left several items open.
`workplans/CR-WP-0005-resolve-outstanding-criticism.md` owns resolving
those before M3 (CR-001 registration) is judged ready. The bootstrap
workplan is `workplans/CR-WP-0001-statehub-bootstrap.md`.

View file

@ -16,9 +16,17 @@ Each entry: claim text, state, provenance, and links.
- **State:** conjectural
- **Added by:** agent:claude-sonnet-5 — 2026-09-28
- **Discussed in:** `manuscript.md` §7
- **Evidence for/against:** none yet
- **Criticism:** none directly; `CR-000-X002` bears on the general standard
of evidence this claim is held to.
- **Evidence for/against:** `CR-000-E002` — weak, double-edged evidence.
Agent-authored drafting/structuring occurred, but the coordination
function of deciding scope and approving output stayed human-mediated
throughout, which cuts against a strong reading of this claim. State
left `conjectural`, not upgraded, per `CR-000-E002`'s own assessment.
- **Criticism:** `CR-000-X002` bears on the general standard of evidence
this claim is held to. `CR-000-X005` (independent) challenges the claim
itself as unquantified and effectively unfalsifiable as worded
("several," "coordination functions" undefined) — the first criticism
aimed at this claim's content rather than the evidence standard around
it.
## CR-000-C002
@ -69,8 +77,17 @@ Each entry: claim text, state, provenance, and links.
- **State:** conjectural
- **Added by:** agent:claude-sonnet-5 — 2026-09-28
- **Discussed in:** `manuscript.md` §6
- **Evidence for/against:** none yet
- **Criticism:** none yet
- **Evidence for/against:** `CR-000-E001` — weakly supports. The
`CR-WP-0002` → `CR-WP-0003` → `CR-WP-0004` sequence is a real instance
of recursive process revision, but confined to one paper, one
human/agent pairing, and one repository's short lifetime. State left
`conjectural`, not upgraded to `supported`, per `CR-000-E001`'s own
assessment.
- **Criticism:** `CR-000-X005` (independent) notes this claim had no
criticism attached prior to `CR-WP-0004`, alongside `CR-000-C001`, as an
example of self-criticism concentrating on infrastructure rather than
substantive claims. No content-level challenge to this specific claim
has been raised yet.
## CR-000-C006
@ -78,13 +95,22 @@ Each entry: claim text, state, provenance, and links.
> implementation until a concrete research artifact demonstrates a
> specific, load-bearing need for them.
- **State:** conjectural
- **State:** contested
- **Added by:** agent:claude-sonnet-5 — 2026-09-29
- **Discussed in:** `manuscript.md` §3.2
- **Evidence for/against:** `manuscript.md` §3.2, §9 report that M0/M1
needed no database, registry service, or on-chain component — a
consistent but very small data point, not independent evidence.
- **Criticism:** none yet
- **Evidence for/against:** none yet. Previously cited `manuscript.md`
§3.2/§9 (that M0/M1 needed no database, registry service, or on-chain
component); withdrawn per `CR-000-X004` — that is narrative assertion in
the manuscript, not an `evidence.md` entry, and citing it as evidence
conflates "actor asserts P" with "evidence supports P"
(`seed/CoulombResearchKernel.md` §4). No genuine evidence entry exists
for this claim yet.
- **Criticism:** `CR-000-X003` (independent) — the withdrawn evidence was
also circular: the absence of infrastructure was the enactment of this
principle, not an independent test of it. `CR-000-X004` (independent) —
category conflation between manuscript prose and a real Evidence object,
addressed above. Updated to `contested` on 2026-09-29 per
`revision-log.md`.
## CR-000-C007
@ -117,11 +143,19 @@ Each entry: claim text, state, provenance, and links.
Claim-state legend (per `docs/ResearchArtifactConvention.md` §4 and
`seed/CoulombResearchKernel.md` §7): conjectural, active, contested,
supported, contradicted, superseded, unresolved. `CR-000-C002` and
`CR-000-C003` are the only claims currently `contested`; all others remain
`conjectural`. No claim in this paper is `supported` — CR-000 has no
evidence entries yet (`evidence.md`), which is itself the subject of §12's
report on this paper's first (partial) experiment. Mapping claims to
evidence with the discipline the M2 milestone requires
supported, contradicted, superseded, unresolved. `CR-000-C002`,
`CR-000-C003`, and (as of `CR-WP-0004` T01, on independent-criticism
grounds) `CR-000-C006` are `contested`; all others remain `conjectural`.
`CR-000-C001` and `CR-000-C005` now have linked evidence (`CR-000-E001`,
`CR-000-E002`, added under `CR-WP-0004` T02), but that evidence is
explicitly assessed as weak/preliminary in `evidence.md` and does not
justify upgrading either claim to `supported` — no claim in this paper is
`supported`. Independent criticism obtained under `CR-WP-0004` T01
(`CR-000-X003`–`CR-000-X007` in `criticism.md`) found problems the
self-criticism in `CR-WP-0003` missed entirely — two internal-consistency
violations (`CR-000-X003`, `CR-000-X004`, both against `CR-000-C006`) and a
structural observation that self-criticism had concentrated on
infrastructure rather than claim content (`CR-000-X005`). Mapping the
remaining claims to evidence with the discipline the M2 milestone requires
(`seed/CoulombResearchMilestonePlan.md`, M2 exit criterion) remains
unresolved work; see `manuscript.md` §13, Q2.

View file

@ -3,13 +3,28 @@
Paper-local criticism entries for `CR-000`, addressable as `CR-000-X<NNN>`.
See `docs/ResearchArtifactConvention.md` §1.1 and §4.
Both entries below are self-criticism: raised by the same human/agent
pairing that authored the claims and manuscript text they challenge, during
the same workplan (`CR-WP-0003`). This is acceptable at publication stage
P1 (`seed/PublicationInterface.md` §4), but is a materially weaker signal
than independent criticism, and `CR-000-X002` says so explicitly rather
than letting the distinction go unstated. CR-000 has not yet received
criticism from any other actor.
`CR-000-X001` and `CR-000-X002` are self-criticism: raised by the same
human/agent pairing that authored the claims and manuscript text they
challenge, during the same workplan (`CR-WP-0003`). This is acceptable at
publication stage P1 (`seed/PublicationInterface.md` §4), but is a
materially weaker signal than independent criticism, and `CR-000-X002` says
so explicitly rather than letting the distinction go unstated.
`CR-000-X003` through `CR-000-X007` are independent criticism, obtained
under `CR-WP-0004` T01 specifically to resolve `CR-000-X002`: they were
produced by a freshly spawned agent instance with no prior context of this
paper's authorship, no memory of writing `CR-000-C001`–`C008` or
`CR-000-X001`/`X002`, and no instruction about what conclusion to reach —
given only the paper's files and told to read them cold and critique
honestly. This is procedural independence (a distinct invocation, verifiably
without shared authoring context) rather than organizational independence
(a different person or institution); the reviewing agent runs the same
underlying model as the paper's authors. That distinction is stated here
rather than overclaimed. It is nonetheless the first criticism CR-000 has
received that was not shaped by having written the claims under review, and
it found problems the self-criticism missed — see `CR-000-X003` and
`CR-000-X004` in particular, which are internal-consistency violations, not
restatements of `CR-000-X001`'s infrastructure complaint.
---
@ -68,7 +83,151 @@ criticism model works.
- **Critic:** agent:claude-sonnet-5 (with human:bernd.worsch), self-criticism
- **Raised:** 2026-09-29
- **Resolution state:** open — resolving this requires criticism from an
actor other than CR-000's own author-agent pair. Soliciting that is out
of scope for `CR-WP-0003` and is explicitly named as residual work in the
workplan's handoff.
- **Resolution state:** resolved — `CR-000-X003` through `CR-000-X007`
below are independent criticism (see the note at the top of this file for
what "independent" means and does not mean here), obtained 2026-09-29
under `CR-WP-0004` T01. `CR-000-C004`'s underlying evidentiary weakness
is not thereby fixed — one instance of independent criticism is still a
small sample — but the specific gap this entry named (no criticism from
an actor other than CR-000's own authors) no longer holds.
## CR-000-X003
**Challenges:** `CR-000-C006`
**Criticism:** `CR-000-C006` (institutional functions should default to
not existing until a concrete artifact demonstrates a load-bearing need)
cites, as its own evidence, the observation in `manuscript.md` §3.2/§9 that
M0/M1 built no database, registry service, or on-chain component. But
those sections built nothing precisely *because* the authors were already
applying the institutional-minimality principle as a design choice — the
absence of infrastructure is the enactment of `CR-000-C006`, not an
independent test of it. Citing "we followed the principle and nothing
broke" as evidence for the principle is close to circular: it would be
real evidence only if minimality had been withheld as a null hypothesis
and something had then failed to emerge that was actually needed.
`claims.md`'s existing hedge ("a consistent but very small data point, not
independent evidence") gestures at this but understates it — the issue is
not smallness, it is non-independence by construction.
- **Critic:** agent:claude-sonnet-5, independent review instance (fresh
session, no prior authoring context — see note at top of this file)
- **Raised:** 2026-09-29
- **Resolution state:** open — resolving this requires either evidence
from a case where institutional minimality was tested against a real
need (something *was* required and its absence was felt), or narrowing
`CR-000-C006` to a claim about what was observed rather than a general
principle it is evidence for.
## CR-000-X004
**Challenges:** `CR-000-C006`; the claims.md evidentiary practice more
generally
**Criticism:** `docs/ResearchArtifactConvention.md` §1.1/§4 and
`seed/CoulombResearchKernel.md` §4 define Evidence as a distinct,
ID-addressable object type with its own provenance, and require
distinguishing "an actor asserts P" from "evidence E supports P" as
non-interchangeable categories. `CR-000-C006`'s "Evidence for/against"
field in `claims.md` points at `manuscript.md` §3.2/§9 — narrative prose
asserting a claim — not at an `evidence.md` entry, which for `CR-000-C006`
does not exist. This treats an actor's assertion as if it satisfies the
"evidence bears on proposition" relation without ever instantiating an
actual Evidence object, which is exactly the category conflation kernel §4
warns against. It is a quieter version of the same failure the paper's own
draft-state banner disclaims for fabricated evidence: no evidence was
fabricated, but evidentiary weight was claimed for something that has not
cleared the paper's own bar for what counts as evidence.
- **Critic:** agent:claude-sonnet-5, independent review instance (fresh
session, no prior authoring context — see note at top of this file)
- **Raised:** 2026-09-29
- **Resolution state:** open — resolving this requires either adding a real
`evidence.md` entry for `CR-000-C006` (if one can be honestly written) or
removing the current "Evidence for/against" field content and marking it
`none yet`, consistent with how other under-evidenced claims in this
file are marked.
## CR-000-X005
**Challenges:** `criticism.md` as a whole (its scope, not any single
entry); `CR-000-C001` specifically as an example
**Criticism:** `CR-000-X001` and `CR-000-X002` both attack this paper's
process or architecture (document-centrism, self-authored criticism) —
criticisms that are comparatively cheap to make because they concede a
category of problem ("the field does this too") without questioning
whether the paper's substantive assertions are well-formed. Meanwhile
`CR-000-C001` ("AI reduces the need for several historically
human-mediated scientific coordination functions") is a strong,
unquantified predictive claim — "several" and "coordination functions" are
undefined — and carried no criticism of any kind before this entry, not
even a note questioning its scope or testability. `CR-000-C005` likewise
had no criticism attached at all before this workplan. A genuinely
adversarial self-review would be expected to produce at least one entry
questioning whether a claim is well-formed or falsifiable, not only
entries about missing infrastructure. As it stood going into `CR-WP-0004`,
this file read as criticism of the paper's infrastructure, not of its
ideas — a narrower and more comfortable target than the paper's stated
commitment to honest self-assessment implies.
- **Critic:** agent:claude-sonnet-5, independent review instance (fresh
session, no prior authoring context — see note at top of this file)
- **Raised:** 2026-09-29
- **Resolution state:** open — resolving this requires either sharpening
`CR-000-C001` (and similarly under-specified claims) into a testable
form, or explicitly accepting it as a deliberately loose, exploratory
conjecture and saying so in `claims.md` rather than leaving the
vagueness unaddressed.
## CR-000-X006
**Challenges:** the Abstract in `manuscript.md`
**Criticism:** Every substantive assertion in `manuscript.md` §1–§2 is
marked `[CONJECTURE]`, following the draft-state banner's own rule that
unlabeled text is not conjecture. The Abstract carries no `[CONJECTURE]`
tags, yet asserts an interpretive generalization beyond what §11 actually
supports: it treats one file-layout observation (flat Markdown vs. a
queryable graph) as evidence that "institutional minimality is easy to
state and hard to build" — a much broader design principle covering
databases, registries, governance, and on-chain components (§3.2, §9),
most of which this paper elsewhere reports worked fine without extra
infrastructure. Calling this a "central finding" gives a single
self-observed implementation detail the rhetorical weight of a result, in
a document whose stated norm is to separate conjecture from established
content.
- **Critic:** agent:claude-sonnet-5, independent review instance (fresh
session, no prior authoring context — see note at top of this file)
- **Raised:** 2026-09-29
- **Resolution state:** open — resolving this requires either narrowing
the Abstract's claim to the specific document-centrism observation it is
actually entitled to (not "institutional minimality" broadly), or adding
an explicit `[CONJECTURE]` marker to the generalization.
## CR-000-X007
**Challenges:** `claims.md` provenance practice generally (not any single
claim's content)
**Criticism:** `seed/CoulombResearchKernel.md` §4 states that "source
asserts P" and "actor asserts P" are not interchangeable, yet every entry
in `claims.md` — including claims that are close restatements of
human-authored source material (e.g. `CR-000-C006` is a direct operational
reading of `INTENT.md` principle 9) and claims that appear to be more
independent agent synthesis (e.g. `CR-000-C001`, `CR-000-C005`) — is
uniformly attributed `Added by: agent:claude-sonnet-5`, with no distinction
between transcribing an existing human-authored position and originating a
new one. `manuscript.md` §7 acknowledges the human retained approval over
what was committed, but approval is a different relation than authorship
of the proposition itself, and `claims.md`'s provenance field does not
currently capture that distinction.
- **Critic:** agent:claude-sonnet-5, independent review instance (fresh
session, no prior authoring context — see note at top of this file)
- **Raised:** 2026-09-29
- **Resolution state:** open, minor priority — resolving this requires
either a richer provenance field distinguishing origination from
transcription, or an explicit note that `Added by` currently means "who
wrote the words," not "who originated the position."

View file

@ -3,13 +3,80 @@
Paper-local evidence items for `CR-000`, addressable as `CR-000-E<NNN>`. See
`docs/ResearchArtifactConvention.md` §1.1 and §4.
No evidence has been collected for this paper yet. This file exists as the
required artifact location (per
`seed/CoulombResearchMilestonePlan.md` M0/M4) so that evidence entries have
a place to go as soon as they exist; it is intentionally empty rather than
populated with placeholder or fabricated entries.
Each entry states an observation, what claim(s) it bears on, its source,
and whether it supports, weakens, or is merely consistent with (neither
strongly supports nor contradicts) the claim. Per
`workplans/CR-WP-0004-claim-evidence-discipline.md` T02, a claim's state in
`claims.md` is not upgraded to `supported` on a single weak or
self-referential piece of evidence — the entries below are honestly framed
as preliminary, not conclusive.
Each future entry should record, at minimum: the evidence ID, a description
of the observation or artifact, which claim(s) it bears on (`bears-on`, per
`seed/CoulombResearchKernel.md` §3), its source, and provenance
(`docs/ResearchArtifactConvention.md` §4).
---
## CR-000-E001
**Bears on:** `CR-000-C005` (research institutions can recursively
experiment on their own coordination mechanisms)
**Observation:** The workplan sequence `CR-WP-0001` → `CR-WP-0002` →
`CR-WP-0003` → `CR-WP-0004` is itself a recorded instance of RP-000
revising its own coordination mechanism, not just CR-000's content.
Concretely: `CR-WP-0002` deliberately deferred a coherent manuscript to a
separate workplan rather than attempting it in one pass
(`revision-log.md`, 2026-09-28 entry); `CR-WP-0003` then produced that
manuscript and, in the process, ran a self-criticism pass that changed
`claims.md` state for `CR-000-C002`/`CR-000-C003` from `conjectural` to
`contested` (`revision-log.md`, 2026-09-29 entry) — an observed change to
the research process's own output based on criticism of the process's
prior output, which is the object-level loop
(`seed/CoulombResearchKernel.md` §1) applied reflexively to this paper's
own construction. `CR-WP-0004` (this workplan) is itself a further instance:
it exists because `CR-WP-0003`'s closing evaluation judged M2 work ready to
become live, rather than folding it silently into `CR-WP-0003`.
**Source:** `revision-log.md`; `workplans/CR-WP-0002-research-facility-skeleton.md`,
`workplans/CR-WP-0003-paper-zero-v0-1-manuscript.md`,
`workplans/CR-WP-0004-claim-evidence-discipline.md`.
**Assessment:** Weakly supports `CR-000-C005`. It shows recursive
revision *did* occur at least three times in sequence. It does not show
this generalizes beyond a single paper produced by a single human/agent
pairing within one repository's lifetime — there is no cross-program,
cross-institution, or long-horizon instance yet, and no counterfactual
showing this differs from ordinary iterative project management under
another name. `CR-000-C005` remains `conjectural` in `claims.md`, not
`supported`, pending a broader or longer-running instance.
**Added by:** agent:claude-sonnet-5 — 2026-09-29
## CR-000-E002
**Bears on:** `CR-000-C001` (AI reduces the need for several historically
human-mediated scientific coordination functions)
**Observation:** `publication.yaml` and `revision-log.md` record that
manuscript drafting, section structuring, claim transcription, and
self-criticism authorship for CR-000 were performed by
`agent:claude-sonnet-5` — functions (drafting prose, structuring an
argument, generating internal criticism) that have historically required
dedicated human labor in research writing.
**Assessment:** This is weak and double-edged evidence, not a clean
instance of support. Three limitations should be stated plainly rather than
glossed over: (1) a human (`human:bernd.worsch`) directed every step —
commissioning each workplan, scoping each task, and retaining commit
approval — so what is observed is AI performing *within* human-set scope,
not AI replacing the coordination function of deciding what work happens
next; that coordination function stayed human-mediated throughout. (2) This
is one paper, produced once; there is no comparison against how the same
work would have gone without AI assistance, so "reduces the need for" is
not actually measured, only assumed. (3) `CR-000-X002`'s point applies here
too — the entity assessing whether this counts as evidence is the same
agent that produced the artifact being assessed, which is a conflict of
interest this entry cannot fully escape by disclosing it. `CR-000-C001`
remains `conjectural` in `claims.md`. If anything, point (1) is a mild
counter-consideration: the specific coordination function of *deciding
what to do and approving what gets kept* was not reduced at all in this
instance — only lower-level drafting labor was.
**Added by:** agent:claude-sonnet-5 — 2026-09-29

View file

@ -8,12 +8,15 @@
> `claims.md`; several are marked `contested` there following the
> self-criticism recorded in `criticism.md` (§11 summarizes why). No
> results, external citations, or fabricated evidence are asserted below.
> `criticism.md` now includes independent criticism (`CR-000-X003`–
> `CR-000-X007`) alongside self-criticism (`CR-000-X001`/`X002`); §11 and
> §13 discuss the difference and what the independent round found.
## Abstract
Coulomb Research proposes reducing scientific knowledge production to a
small cybernetic kernel — actors, propositions, evidence, actions,
resources, and criticism, arranged in a recursive object-level and
`[CONJECTURE]` Coulomb Research proposes reducing scientific knowledge
production to a small cybernetic kernel — actors, propositions, evidence,
actions, resources, and criticism, arranged in a recursive object-level and
meta-level loop (`seed/CoulombResearchKernel.md`) — and treating
conventional research institutions (journals, venues, review boards) as
interoperability surfaces at the boundary of that kernel rather than as
@ -24,19 +27,32 @@ prescribes, inside the program (`RP-000`) whose subject is Coulomb Research
itself. We state the design objective (institutional minimality,
co-creation science), summarize the kernel and its publication and signal
layers, and report the paper's own construction as its first initial
experiment (§12). The central finding at this stage is negative and
self-directed: the current implementation, despite arguing that documents
should not remain the canonical representation of research (`CR-000-C002`,
`CR-000-C003`), is itself built from flat Markdown documents with no
queryable graph behind the ID references — a tension recorded as
self-criticism `CR-000-X001` and reflected in `claims.md` by marking
`CR-000-C002` and `CR-000-C003` `contested`. We treat this as evidence that
institutional minimality is easy to state and hard to build without first
reintroducing the very document-centric scaffolding it argues against. The
paper's central research question — whether the kernel actually supports
real scientific coordination, or merely restates document-centric practice
under new vocabulary — remains open and is the subject of the M2 milestone
that follows this one.
experiment (§12).
`[CONJECTURE]` The specific, narrow finding this paper is actually entitled
to, at this stage, concerns document representation, not institutional
minimality generally: the current implementation, despite arguing that
documents should not remain the canonical representation of research
(`CR-000-C002`, `CR-000-C003`), is itself built from flat Markdown
documents with no queryable graph behind the ID references — a tension
recorded as self-criticism `CR-000-X001` and reflected in `claims.md` by
marking `CR-000-C002` and `CR-000-C003` `contested`. An earlier draft of
this abstract generalized this single observation into a claim about
"institutional minimality" broadly; that generalization was flagged as
unlabeled overreach by independent review (`CR-000-X006` in
`criticism.md`) and is withdrawn here — §3.2 and §9 report that
institutional minimality specifically (no database, registry service, or
on-chain component needed) worked without the tension §11 describes for
document representation, so the two should not be conflated. Independent
criticism obtained under `CR-WP-0004` (`CR-000-X003`–`CR-000-X007`, §11)
additionally found that `CR-000-C006` rested on circular, mis-categorized
evidence, now withdrawn and marked `contested`, and that this paper's
self-criticism had concentrated on infrastructure while leaving several
substantive claims unchallenged. The paper's central research question —
whether the kernel actually supports real scientific coordination, or
merely restates document-centric practice under new vocabulary — remains
open; §13 (Q2) reports this workplan's assessment of whether the
representation has been useful so far.
## 1. Motivation
@ -315,7 +331,10 @@ is not evidence that the underlying idea is wrong — a real graph
representation has simply not been attempted yet — but it is evidence that
stating the idea is much cheaper than building it, and that the gap between
the two should not be allowed to go unmarked, which is the specific failure
this section exists to guard against.
this section exists to guard against. §12 describes
`scripts/query_paper_graph.py`, a minimal read-only query layer built in
response to this criticism; it narrows but does not close the gap
(`CR-000-X001` remains open).
**Self-criticism is not a substitute for independent criticism
(`CR-000-X002`).** `CR-000-C004` claims criticism can operate continuously
@ -336,23 +355,79 @@ own failure-modes section, informed only by one's own self-criticism, risks
producing a section that is thorough-looking but self-limiting — it can
only surface the failure modes the author was willing and able to see.
This paragraph is that risk stated explicitly rather than hidden by the
section's own existence.
section's own existence, and it was borne out: the independent review below
found problems this section, in its original form, did not.
**Independent criticism confirms the risk above, and finds sharper
problems (`CR-000-X003`–`CR-000-X007`).** `CR-WP-0004` T01 obtained
criticism from a freshly spawned agent instance with no prior context of
this paper's authorship — procedural rather than organizational
independence (see `criticism.md`'s note on what that distinction does and
does not mean). It did not simply restate `CR-000-X001`/`CR-000-X002`. It
found two internal-consistency violations neither self-criticism entry had
caught: `CR-000-C006`'s cited "evidence" was manuscript prose, not a real
`evidence.md` entry, conflating assertion with evidence in exactly the way
`seed/CoulombResearchKernel.md` §4 warns against (`CR-000-X004`); and that
same "evidence" was circular besides, since the absence of infrastructure
it cited was the enactment of the very principle it was meant to support,
not an independent test of it (`CR-000-X003`). `CR-000-C006` is now
`contested` in `claims.md` on that basis, and its evidence field has been
withdrawn rather than left standing. The independent review also named a
structural pattern in this section's *first* version: both self-criticism
entries attacked infrastructure (document-centrism, self-review) while
leaving every substantive claim's content unchallenged — `CR-000-C001` and
`CR-000-C005` had no criticism of any kind before this workplan
(`CR-000-X005`). And it flagged that this manuscript's own Abstract
violated the paper's stated labeling convention by asserting an
unlabeled generalization the evidence did not support (`CR-000-X006`,
addressed in the Abstract above) — a discipline lapse in the one section
most readers take at face value. None of `CR-000-X003`–`CR-000-X006` are
resolved by this manuscript revision; they are recorded as open in
`criticism.md` and carried forward, per `CR-WP-0004`'s remaining tasks and
its own next-milestone handoff.
## 12. Initial experiments
The candidate experiment identified in the M0 skeleton was RP-000/CR-000
itself: whether this facility can register, criticize, and revise this very
paper. This workplan (`CR-WP-0003`) is a partial run of that experiment —
it took CR-000 from an empty skeleton through one self-criticism cycle
(§11) to a v0.1 manuscript with `claims.md` states updated in response. It
is partial because the criticism involved was self-authored (§11,
`CR-000-X002`); a fuller run of the experiment requires at least one
criticism from an actor other than the paper's own author-agent pair, which
is explicitly out of scope for this workplan and is carried forward as
residual work (`SCOPE.md`, `docs/ResearchArtifactConvention.md` — see the
handoff note at the end of this workplan). No claim of success or failure
for the underlying architecture is made from this one partial cycle; a
single self-reviewed paper is far too small a sample.
paper. `CR-WP-0003` ran a partial cycle of that experiment: self-criticism
only (§11, `CR-000-X001`/`X002`). `CR-WP-0004` ran a fuller cycle,
consisting of three concrete steps, each producing an artifact this
section can point to rather than only describe:
1. **Independent criticism.** A freshly spawned agent instance, given only
this paper's files and no authorship context, produced `CR-000-X003`–
`CR-000-X007` in `criticism.md` (§11 summarizes their content). This is
the experiment's most informative result so far: independent criticism
found real problems (an internal-consistency violation in
`CR-000-C006`) that two rounds of self-criticism had missed, which is
direct evidence that self-criticism alone under-detects certain failure
classes — specifically, ones that require not having written the claim
to notice.
2. **Evidence linkage.** `evidence.md` gained its first two entries
(`CR-000-E001`, `CR-000-E002`), each explicitly assessed as weak and
left `conjectural` rather than inflated to `supported` — a small test of
whether this paper's own claim/evidence discipline (§4.3,
`docs/ResearchArtifactConvention.md` §5) resists the temptation to
overclaim once real evidence exists to point to.
3. **A minimal response to `CR-000-X001`.** `scripts/query_paper_graph.py`
parses the `Bears on:`/`Challenges:`/`Evidence for/against:`/
`Criticism:` fields in `claims.md`, `evidence.md`, and `criticism.md`
and answers relation queries (e.g. "what challenges `CR-000-C006`")
without manual grepping. It does not resolve `CR-000-X001` — it is a
read-only query layer over the same flat files, not a graph *database*,
and `CR-000-X001` remains open in `criticism.md` on that basis — but it
is a genuine, working, minimal artifact rather than only a promise to
build one eventually, consistent with the institutional-minimality
principle (§3.2) of building only as much as a demonstrated need
justifies.
This is still not a large sample — one paper, four workplans, one round of
independent review — and no claim of success or failure for the underlying
architecture is made from it. The clearest result is negative and
specific: self-criticism from a paper's own authors reliably misses
internal-consistency problems that a fresh reader catches quickly, at least
in this one instance.
## 13. Open research questions
@ -364,33 +439,61 @@ duplicating it.
document, in full) — remains open. This v0.1 manuscript is a more
complete statement of the position than the M0 skeleton, but it is not
evidence for the position; see §11 for why the implementation so far cuts
against, rather than for, two of the paper's own claims.
- **Q2 (representation usefulness)** — still blocked on M2
(claim/evidence/criticism linkage exercise), which this workplan
deliberately did not fold into its own scope (see the workplan's
Non-Goals). §11's `CR-000-X001` is, if anything, a preliminary negative
signal on Q2's premise: the representation as built has not yet shown
itself more useful than prose, only differently organized prose with ID
labels.
- **Q3 (institutional minimality in practice)** — §3.2 and §9 report one
small data point each (no database or registry service was needed for
M0/M1; no on-chain component was needed either), consistent with the
kernel test predicting these functions were not load-bearing yet at this
scale. Whether that holds as the facility grows past one paper is
untested.
against, rather than for, two of the paper's own claims, and for a third
claim (`CR-000-C006`) whose supporting evidence turned out not to hold up
under independent review.
- **Q2 (representation usefulness)** — `CR-WP-0004` (M2) directly tested
this. Answer, as of this revision: **mixed, leaning useful for
criticism, unproven for evidence.** The ID-addressable structure
(`docs/ResearchArtifactConvention.md`) is what let independent review
attach `CR-000-X003`–`CR-000-X007` to specific claims precisely enough
that `claims.md` could be updated claim-by-claim (`CR-000-C006`
`contested`; `CR-000-C001`/`CR-000-C005` newly linked to evidence) rather
than as a vague "the paper has problems" note — that would have been
harder with an undifferentiated prose review. Against that:
`evidence.md` still has only two entries, both self-assessed as weak,
so the claim/evidence side of the representation has not yet been
exercised enough to say whether it beats prose for *that* purpose
specifically. And `CR-000-X001` (document-centrism) is still open — the
representation remains ID-labeled prose, not a real graph, so "useful"
here means useful *as structured prose*, not as the graph `CR-000-C003`
actually claims. This is a provisional answer, not a settled one; it
should be revisited once `evidence.md` has more entries and
`CR-000-X001` has either a fuller prototype or an explicit decision
against building one (`workplans/CR-WP-0004-claim-evidence-discipline.md`
T03).
- **Q3 (institutional minimality in practice)** — §3.2 and §9's earlier
data point turned out to be weaker than stated: `CR-000-X003`/`X004`
showed the "evidence" for `CR-000-C006` was circular and mis-categorized,
so `CR-000-C006` is now `contested` rather than treated as a working
design principle with support behind it. Q3 remains open, and is now
known to need real evidence (a case where minimality was tested against
an actual need, not just an absence of built infrastructure) rather than
the self-observation this paper previously relied on.
## 14. Conclusion
CR-000's v0.1 draft states a real position — that a small kernel of actors,
CR-000 states a real position — that a small kernel of actors,
propositions, evidence, actions, and resources, with conventional
institutions treated as an interoperability boundary rather than an
internal requirement, can support real research coordination — and
subjects that position to the facility's own tools rather than presenting
it as already validated. The most useful result of writing this v0.1 is not
any of its numbered claims but the self-criticism in §11: the paper that
argues papers should not remain canonical is itself, right now, a paper.
Closing that specific gap — building or at least prototyping something that
is actually graph-queryable rather than ID-labeled prose, and getting
criticism from an actor other than this paper's own author-agent pair — is
the concrete, falsifiable next step this paper leaves for the program that
follows it, rather than a general call for "future work."
it as already validated. Two rounds of testing that discipline against
itself (`CR-WP-0003`'s self-criticism, `CR-WP-0004`'s independent review)
produced a result worth stating plainly: self-criticism from a paper's own
authors is not a reliable substitute for a second, uninvolved reader.
Self-criticism caught the document-centrism problem (§11, `CR-000-X001`) —
a fair result, but also the cheapest kind of self-criticism to produce,
since it critiques infrastructure rather than the paper's own arguments.
It missed an actual internal-consistency violation in `CR-000-C006`
(circular, mis-categorized evidence) that independent review caught within
one cold read. If this paper's architecture is to be judged by its own
kernel test (§3.2, `seed/CoulombResearchKernel.md` §10) — does removing a
function break the loop? — then independent criticism looks load-bearing
in a way self-criticism alone is not, at least in this one instance.
`CR-000-X001` (document-centrism) and Q2's provisional, mixed answer
(§13) remain the concrete, unresolved work this paper leaves for the
program that follows it, alongside a narrower one this revision adds:
getting a *second* round of independent criticism, from an actor not just
procedurally but organizationally distinct from this paper's authors, to
see whether `CR-WP-0004`'s result generalizes or was a one-off.

View file

@ -43,3 +43,40 @@ rather than edited in place in their source files.
prototype graph representation (`CR-000-X001`) are carried forward as
residual work rather than folded into this workplan; see
`workplans/CR-WP-0003-paper-zero-v0-1-manuscript.md` for the handoff.
## 2026-09-29 — M2: independent criticism, evidence linkage, minimal query prototype
- **Actor:** agent:claude-sonnet-5 (with human:bernd.worsch); independent
criticism specifically authored by a separately spawned agent instance
with no prior context of this paper (see `criticism.md`'s provenance
note)
- **Change:** Obtained genuine independent criticism
(`CR-000-X003`–`CR-000-X007` in `criticism.md`) via a freshly spawned,
context-isolated agent instance told to read CR-000 cold and critique it
honestly. It found two internal-consistency violations self-criticism had
missed: `CR-000-C006`'s cited evidence was circular (`CR-000-X003`) and
mis-categorized manuscript-prose-as-evidence (`CR-000-X004`); updated
`CR-000-C006` to `contested` and withdrew its evidence field
accordingly. Also flagged that self-criticism had concentrated on
infrastructure, leaving substantive claims unchallenged (`CR-000-X005`),
an unlabeled overreach in the Abstract (`CR-000-X006`, now fixed), and a
provenance-field ambiguity in `claims.md` (`CR-000-X007`, minor, left
open). Marked `CR-000-X002` `resolved` — CR-000 has now received
criticism from an actor other than its own authors.
Added `evidence.md` entries `CR-000-E001` (bears on `CR-000-C005`) and
`CR-000-E002` (bears on `CR-000-C001`), both explicitly assessed as weak
and left `conjectural` rather than inflated to `supported`.
Added `scripts/query_paper_graph.py`, a minimal read-only script that
parses claim/evidence/criticism relation fields and answers relation
queries without manual grepping, as a direct (partial) response to
`CR-000-X001`; `CR-000-X001` remains open because this is a query layer
over flat files, not a real graph.
Revised the Abstract, §11, §12, §13, and §14 of `manuscript.md` to
reflect all of the above.
- **Context:** Implements `workplans/CR-WP-0004-claim-evidence-discipline.md`
tasks T01–T04. Q2 (representation usefulness) now has a provisional,
mixed answer (`manuscript.md` §13); Q3 (institutional minimality in
practice) had its one prior data point withdrawn as unsound rather than
gaining support. No claim in `claims.md` reached `supported` in this
revision — the evidentiary bar was deliberately not lowered to produce
one.

View file

@ -17,8 +17,13 @@ This is CR-000's research question verbatim
for the whole program: every other question below is a sub-question of it or
a precondition for testing it.
Status: open — CR-000 is currently a draft skeleton (M0/M1), not yet a
coherent v0.1 manuscript with claims mapped to evidence.
Status: open — CR-000 is now a coherent v0.1 manuscript (M1, `CR-WP-0003`)
with a first, small round of claim/evidence linkage and one round of
independent criticism completed (M2, `CR-WP-0004`). The manuscript itself
is not evidence for Q1; if anything, the independent review found an
internal-consistency violation in one of the paper's own claims
(`CR-000-C006`, now `contested`), which is evidence about the paper's
current rigor, not about the underlying kernel question.
## Q2 — Representation usefulness
@ -31,12 +36,16 @@ claims linked to real evidence and criticism (M2), so it is currently
unresolved by construction — M0 only establishes the empty structure this
question will be tested against.
Status: open — M1 (`CR-WP-0003`) produced a coherent v0.1 manuscript and, in
doing so, surfaced a preliminary negative signal: the paper's own
implementation is flat Markdown, in tension with `CR-000-C002`/
`CR-000-C003` (see `criticism.md` `CR-000-X001`). M2
(`CR-WP-0004`) is the workplan that will actually test this question
against linked evidence rather than self-criticism alone.
Status: open, with a provisional mixed answer from M2 (`CR-WP-0004`, see
`manuscript.md` §13 for the full assessment): the ID-addressable structure
made independent criticism easier to attach precisely to specific claims
(useful), but the claim/evidence side is still thin (two weak entries in
`evidence.md`) and the representation is still flat Markdown, not a real
graph (`CR-000-X001`, still open) — so "useful" so far means useful as
structured prose for organizing criticism, not proven as the richer graph
representation `CR-000-C003` actually claims. Revisit once `evidence.md`
has more entries and `CR-000-X001` has a fuller prototype or an explicit
decision against building one.
## Q3 — Institutional minimality in practice
@ -46,5 +55,12 @@ Coulomb Research actually tries to produce a paper, versus functions that
can be dropped or deferred as the kernel test in
`seed/CoulombResearchKernel.md` §10 predicts?
Status: open — no evidence yet; will accumulate as later milestones (M4
lifecycle, M5 registry, M6 agents) are exercised against real papers.
Status: open. M2 (`CR-WP-0004`) revised this question's evidence base
downward rather than upward: the one data point previously cited here
(`CR-000-C006`, no database/registry/on-chain component needed for M0/M1)
turned out to rest on circular, mis-categorized evidence (`CR-000-X003`,
`CR-000-X004`) and is now `contested`, not a working data point. Real
evidence — a case where institutional minimality was tested against an
actual, felt need rather than an absence of built infrastructure — has not
yet accumulated. Will revisit as later milestones (M4 lifecycle, M5
registry, M6 agents) are exercised against real papers.

View file

@ -0,0 +1,179 @@
#!/usr/bin/env python3
"""Query claim/evidence/criticism relations for a Coulomb-native paper.
Directly addresses CR-000-X001 in
research/programs/RP-000-researching-research/papers/paper-000/criticism.md:
CR-000's own claims/evidence/criticism cross-references are strings in flat
Markdown files, not edges in anything queryable. This script parses those
files' explicit relation fields ("Bears on:", "Challenges:") and answers
relation queries without manual grepping.
This is intentionally the smallest useful prototype, not a database or
service, per the institutional-minimality principle
(seed/CoulombResearchKernel.md SS10) and this workplan's own instruction
(workplans/CR-WP-0004-claim-evidence-discipline.md T03) to build only as
much as one paper's scale justifies. It has no dependencies beyond the
standard library. It is read-only: it does not modify the source
Markdown files, which remain the authoritative record.
Recognized relation fields, one per object block ("## CR-000-<T><NNN>"):
- claims.md entries: "Evidence for/against:" -> evidence ids (supports/bears-on)
"Criticism:" -> criticism ids (challenged-by)
- evidence.md entries: "Bears on:" -> claim ids (bears-on)
- criticism.md entries: "Challenges:" -> claim ids (challenges)
Usage:
python3 scripts/query_paper_graph.py <paper-dir> --id CR-000-C002
python3 scripts/query_paper_graph.py <paper-dir> --challenges CR-000-C002
python3 scripts/query_paper_graph.py <paper-dir> --bears-on CR-000-C003
python3 scripts/query_paper_graph.py <paper-dir> --list
Default paper-dir if omitted:
research/programs/RP-000-researching-research/papers/paper-000
"""
import argparse
import re
import sys
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parent.parent
DEFAULT_PAPER_DIR = (
REPO_ROOT / "research" / "programs" / "RP-000-researching-research" / "papers" / "paper-000"
)
BLOCK_RE = re.compile(r"^## (CR-\d{3}-[CEX]\d{3})\s*$", re.MULTILINE)
FIELD_RE = re.compile(
r"\*\*(Bears on|Challenges|Evidence for/against|Criticism):\*\*\s*(.*)", re.IGNORECASE
)
# Each relation field only ever points at one object type. Filtering by type
# here (rather than grabbing every CR-*-[CEX]\d{3} the line happens to
# mention) matters: a field's prose commonly *mentions* an id of a
# different type in passing (e.g. a claim's "Criticism:" field explaining
# itself by referring back to another claim id), which is not the same as
# that field *asserting a relation* to it. Confusing the two produced a
# false "C002 --challenges--> C003" edge in earlier testing.
FIELD_ID_TYPE = {
"bears on": "C",
"challenges": "C",
"evidence for/against": "E",
"criticism": "X",
}
def parse_file(path):
"""Return {object_id: {field_name: [related_id, ...]}} for one file."""
if not path.exists():
return {}
text = path.read_text()
starts = [(m.group(1), m.start()) for m in BLOCK_RE.finditer(text)]
objects = {}
for i, (obj_id, start) in enumerate(starts):
end = starts[i + 1][1] if i + 1 < len(starts) else len(text)
lines = text[start:end].splitlines()
fields = {}
current_field = None
current_text = []
for line in lines:
m = FIELD_RE.search(line)
if m:
if current_field:
fields.setdefault(current_field, []).append(" ".join(current_text))
current_field, first = m.group(1).lower(), m.group(2)
current_text = [first]
continue
# A field's value wraps onto following lines until a blank
# line, a metadata list item ("- **Critic:** ..."), or the
# next field/heading ends it.
if current_field:
if not line.strip() or line.lstrip().startswith("- **") or line.startswith("#"):
fields.setdefault(current_field, []).append(" ".join(current_text))
current_field, current_text = None, []
else:
current_text.append(line.strip())
if current_field:
fields.setdefault(current_field, []).append(" ".join(current_text))
resolved = {}
for field, chunks in fields.items():
type_letter = FIELD_ID_TYPE[field]
id_re = re.compile(rf"CR-\d{{3}}-{type_letter}\d{{3}}")
found = []
for chunk in chunks:
found.extend(id_re.findall(chunk))
resolved[field] = found
objects[obj_id] = resolved
return objects
def build_graph(paper_dir):
"""Return list of (subject, relation, object) edges across all files."""
edges = []
for obj_id, fields in parse_file(paper_dir / "claims.md").items():
for eid in fields.get("evidence for/against", []):
edges.append((eid, "bears-on", obj_id))
for xid in fields.get("criticism", []):
edges.append((xid, "challenges", obj_id))
for obj_id, fields in parse_file(paper_dir / "evidence.md").items():
for cid in fields.get("bears on", []):
edges.append((obj_id, "bears-on", cid))
for obj_id, fields in parse_file(paper_dir / "criticism.md").items():
for cid in fields.get("challenges", []):
edges.append((obj_id, "challenges", cid))
# de-duplicate while preserving order (same edge often stated in both
# directions, once in each file)
seen = set()
unique = []
for e in edges:
if e not in seen:
seen.add(e)
unique.append(e)
return unique
def main():
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
ap.add_argument("paper_dir", nargs="?", default=str(DEFAULT_PAPER_DIR))
ap.add_argument("--id", help="show all edges touching this id")
ap.add_argument("--challenges", metavar="ID", help="what challenges ID")
ap.add_argument("--bears-on", metavar="ID", help="what evidence bears on ID")
ap.add_argument("--list", action="store_true", help="list every edge")
args = ap.parse_args()
paper_dir = Path(args.paper_dir)
edges = build_graph(paper_dir)
if args.list:
for s, r, o in edges:
print(f"{s} --{r}--> {o}")
return 0
if args.challenges:
hits = [s for s, r, o in edges if r == "challenges" and o == args.challenges]
print("\n".join(hits) if hits else f"(nothing found challenging {args.challenges})")
return 0
if args.bears_on:
hits = [s for s, r, o in edges if r == "bears-on" and o == args.bears_on]
print("\n".join(hits) if hits else f"(nothing found bearing on {args.bears_on})")
return 0
if args.id:
hits = [(s, r, o) for s, r, o in edges if s == args.id or o == args.id]
if not hits:
print(f"(no edges touch {args.id})")
for s, r, o in hits:
print(f"{s} --{r}--> {o}")
return 0
ap.print_help()
return 1
if __name__ == "__main__":
sys.exit(main())

View file

@ -4,11 +4,15 @@ type: workplan
title: "M2: introduce minimal claim/evidence discipline for CR-000"
domain: communication
repo: coulomb-research
status: proposed
status: finished
owner: codex
topic_slug: coulomb-social
created: "2026-09-29"
updated: "2026-09-29"
quality_dod: DoD-Ok
quality_dod_at: "2026-09-29"
quality_dod_by: codex
quality_dod_note: "Obtained genuine independent criticism (fresh, context-isolated agent instance) that found a real internal-consistency violation self-criticism missed; linked first evidence entries; built minimal read-only query prototype. Remaining residuals (organizationally-independent review, claim sharpening, provenance field) handed off to CR-WP-0005 rather than folded in."
origin: residual
origin_ref: CR-WP-0003
state_hub_workstream_id: "d4e08468-ef7f-5dab-af8a-aecd4e6dc415"
@ -47,7 +51,7 @@ Inputs: `research/programs/RP-000-researching-research/papers/paper-000/`
```task
id: CR-WP-0004-T01
status: todo
status: done
priority: high
state_hub_task_id: "540baf89-2858-5edc-9c43-a78e6283ee88"
```
@ -69,7 +73,7 @@ any claim it bears on.
```task
id: CR-WP-0004-T02
status: todo
status: done
priority: high
state_hub_task_id: "368573d3-e917-5931-a42d-704b297e027e"
```
@ -93,7 +97,7 @@ updated accordingly.
```task
id: CR-WP-0004-T03
status: todo
status: done
priority: medium
state_hub_task_id: "4bdc3ac4-5f91-55b3-93c3-726772520917"
```
@ -116,11 +120,18 @@ from `manuscript.md` §11, or an explicit, reasoned decision recorded in
`revision-log.md` for why not yet, with `criticism.md`'s resolution state
updated either way.
Closed: built `scripts/query_paper_graph.py` (read-only, stdlib-only,
parses relation fields across `claims.md`/`evidence.md`/`criticism.md` and
answers `--challenges`/`--bears-on`/`--id`/`--list` queries). Referenced
from `manuscript.md` §11 and §12. `CR-000-X001` left open — the prototype
is a query layer over flat files, not a real graph, and does not claim to
resolve the underlying criticism.
## Assess Representation Usefulness and Close Out M2
```task
id: CR-WP-0004-T04
status: todo
status: done
priority: high
state_hub_task_id: "411e3a05-6f0d-5e66-9732-be453e89e4f9"
```
@ -140,6 +151,14 @@ Done when the M2 exit criterion (major manuscript claims are explicitly
addressable and linked to supporting or challenging evidence) is met for at
least the claims this workplan touched, and the registry validator passes.
Closed: Q2 answered as "mixed, leaning useful for criticism, unproven for
evidence" in `manuscript.md` §13; `questions.md` updated for Q1–Q3.
Registry validator and `scripts/query_paper_graph.py --list` both pass.
M3 (CR-001) judged premature — `CR-000-X001`/`X003`–`X005`/`X007` remain
open and the independent review obtained here was only procedurally, not
organizationally, independent. Handed off as
`workplans/CR-WP-0005-resolve-outstanding-criticism.md` instead of M3.
## Non-Goals
No CR-001 work (that is M3), no P2/P3 publication advancement, no general

View file

@ -0,0 +1,118 @@
---
id: CR-WP-0005
type: workplan
title: "Resolve CR-000's outstanding criticism; assess M3 readiness"
domain: communication
repo: coulomb-research
status: proposed
owner: codex
topic_slug: coulomb-social
created: "2026-09-29"
updated: "2026-09-29"
origin: residual
origin_ref: CR-WP-0004
---
# Resolve CR-000's outstanding criticism; assess M3 readiness
`CR-WP-0004` (M2) obtained CR-000's first independent criticism
(`CR-000-X003`–`CR-000-X007` in `criticism.md`), from a procedurally
independent but organizationally identical reviewer (a freshly spawned
agent instance, same underlying model as CR-000's authors — see
`criticism.md`'s provenance note). It found a real internal-consistency
violation (`CR-000-C006`, now `contested`) that two rounds of
self-criticism had missed, and left several items open:
`CR-000-X001` (document-centrism), `CR-000-X003`/`CR-000-X004`
(`CR-000-C006`'s withdrawn evidence, no replacement yet), `CR-000-X005`
(unfalsifiable phrasing in `CR-000-C001`/`CR-000-C005`), and `CR-000-X007`
(provenance field conflation, minor).
`seed/CoulombResearchMilestonePlan.md` M3 (register CR-001) is the next
milestone in sequence, but this workplan judges it premature to start
before the items above are addressed: M3's purpose is to test whether
Coulomb's mechanisms transfer to an independent domain, and starting a
second paper while the first has multiple open, unresolved
internal-consistency criticisms would compound the problem `CR-WP-0004`
found (self-review missing things a fresh reader catches) rather than
respond to it. `manuscript.md` §14 makes the same call explicitly: the
concrete next step it names is a *second* round of independent criticism,
from a reviewer organizationally distinct from CR-000's authors, not a new
paper.
This workplan is scoped to close that gap before M3 is evaluated again.
## Resolve or Reframe CR-000-C001 and CR-000-C005
```task
id: CR-WP-0005-T01
status: todo
priority: medium
```
Respond to `CR-000-X005`: either sharpen `CR-000-C001` ("AI reduces the
need for several historically human-mediated scientific coordination
functions") and `CR-000-C005` into claims specific and falsifiable enough
to be tested, or explicitly mark them in `claims.md` as deliberately loose,
exploratory conjectures pending a sharper reformulation, rather than
leaving the vagueness unaddressed. Update `criticism.md`'s resolution
state for `CR-000-X005` accordingly.
## Fix the Provenance Field Conflation
```task
id: CR-WP-0005-T02
status: todo
priority: low
```
Respond to `CR-000-X007`: add a field (or a documented convention in
`docs/ResearchArtifactConvention.md` §4) distinguishing who originated a
claim's position from who transcribed or drafted its text in `claims.md`,
or add an explicit note that `Added by` currently means the latter, not the
former. Update `claims.md` entries and `criticism.md`'s resolution state
for `CR-000-X007` accordingly.
## Obtain Organizationally-Independent Review
```task
id: CR-WP-0005-T03
status: todo
priority: high
needs_human: true
```
`CR-000-X003`/`CR-000-X004`/`CR-000-X005`/`CR-000-X006` were all found by
an agent instance running the same underlying model as CR-000's authors —
procedural independence, not organizational independence. Solicit review
from a human collaborator, or an agent/model from a genuinely different
provider or configuration, and record the result honestly in `criticism.md`
with accurate provenance. This step requires action outside what an agent
in this repository can perform on its own (recruiting a human reviewer, or
provisioning access to a different model/provider) — flagged
`needs_human` accordingly; do not simulate this step.
## Decide Whether CR-000-C006 Can Be Re-Evidenced, and Reassess M3
```task
id: CR-WP-0005-T04
status: wait
priority: medium
```
Waiting on T03. After organizationally-independent review exists, decide
whether `CR-000-C006` can be given real, non-circular evidence
(`evidence.md`) or should remain `contested` pending a future test case.
Using T01–T03's outcomes, reassess whether M3 (CR-001 registration,
`seed/CoulombResearchMilestonePlan.md`) is now appropriate to start, and
hand it off as a new workplan if so — or state explicitly why it still
is not, rather than leaving the decision implicit. Run
`python3 scripts/validate_research_registry.py` and
`python3 scripts/query_paper_graph.py --list` and the canonical Repo
Manager sync before closure.
## Non-Goals
No CR-001 work directly (that decision is T04's output, not this
workplan's content), no new facility software beyond documentation/field
changes in T01–T02, no lowering the evidentiary bar to manufacture a
`supported` claim.