This document defines the identifier, file-layout, and provenance conventions
for Coulomb-native research artifacts: research programs, papers, and their
paper-local claims, evidence, and criticism. It implements the M0 exit
criterion in `seed/CoulombResearchMilestonePlan.md` ("Coulomb Research can
register and evolve one internal research paper with versioned artifacts and
explicit publication state").
The design rationale for these object types lives in the seed documents; this
file is the concrete, implementation-facing convention, not a restatement of
the kernel. See:
-`seed/CoulombResearchKernel.md` — why Paper, Program, Claim, and Evidence
are derived views over the kernel primitives (Actor, Proposition, Evidence,
Action, Resource), not kernel primitives themselves.
-`seed/PublicationInterface.md` — publication stages (P1/P2/P3) and the
publication adapter.
-`seed/CoulombResearchMilestonePlan.md` — the milestone sequence this
convention supports (M0–M5 in particular).
## 1. Identifier Namespaces
Coulomb Research uses three distinct, non-interchangeable identifier
namespaces. An identifier from one namespace must never be reused as, or
confused with, an identifier from another.
| Namespace | Pattern | Example | Scope | Meaning |
| --- | --- | --- | --- | --- |
| Research program | `RP-NNN` | `RP-000` | facility-wide | A research program: a sustained line of inquiry that hosts one or more papers. |
| Paper | `CR-NNN` | `CR-000` | facility-wide | A single Coulomb-native research paper (manuscript + claims + evidence + criticism + publication state), belonging to exactly one program. |
| Paper-local object | `CR-NNN-<T><NNN>` | `CR-000-C001` | scoped to one paper | A claim, evidence item, or criticism item addressable within one paper. |
| Implementation work | `CR-WP-NNNN` | `CR-WP-0002` | facility-wide | A workplan implementing repository/software infrastructure, tracked in `workplans/`. |
**These namespaces are disjoint by construction:**
-`RP-NNN` and `CR-NNN` both use the `CR`/`RP` prefixes but are never
zero-padded to the same width by coincidence — programs use `RP-`, papers
use `CR-`. A number appearing in both (e.g. `RP-000` and `CR-000`) refers
to *different objects that happen to share a sequence position*, not the
same object. `RP-000` is the "Researching Research" program; `CR-000` is
Paper Zero, its first paper.
-`CR-NNN` (a paper) and `CR-WP-NNNN` (a workplan) are visually similar but
serve different purposes: a paper is a research artifact with epistemic
content (claims, evidence, a publication stage); a workplan is
implementation bookkeeping (tasks, status, a State Hub UUID). `CR-000` is
never itself the subject of a `CR-WP-*` task's *content* — a workplan may
reference a paper ID in its text, but the paper's own claim/evidence/
criticism ledger lives in the paper's own files, not in a workplan.
Numbering is independent: `CR-000` and `CR-WP-0002` do not need to align
and will not stay aligned as each sequence grows.
### 1.1 Paper-local object IDs
Within a single paper, addressable claims, evidence items, and criticisms
use the pattern `<paper-id>-<T><NNN>`, where `<T>` selects the object type:
| Type letter | Object | Example |
| --- | --- | --- |
| `C` | Claim | `CR-000-C001` |
| `E` | Evidence | `CR-000-E001` |
| `X` | Criticism | `CR-000-X001` |
`NNN` is a zero-padded, monotonically increasing sequence, scoped per type
per paper (so `CR-000-C001`...`CR-000-C00N` and `CR-000-E001`...`CR-000-E00M`
number independently). IDs are never renumbered or reused after being
assigned, even if the underlying claim is later withdrawn or superseded —
withdrawal is recorded as a state change (see §4), not a deletion.
Cross-references between paper-local objects and program- or paper-level
objects (e.g. "evidence `CR-000-E003` bears on claim `CR-000-C002`") are
written inline in `evidence.md` and `criticism.md` using the full ID, so a
reference resolves unambiguously even outside the file's own paper context.
## 2. File Layout
```text
research/
├── programs/
│ └── RP-000-researching-research/
│ ├── INTENT.md # why this program exists, its scope
│ ├── questions.md # the open questions the program tracks
│ └── papers/
│ └── paper-000/ # directory name mirrors the paper id (CR-000 → paper-000)
│ ├── README.md # paper summary + links to the other files
│ ├── manuscript.md # the paper text/outline
│ ├── claims.md # CR-000-C001, CR-000-C002, ...
│ ├── evidence.md # CR-000-E001, ...; each entry states what it bears on
│ ├── criticism.md # CR-000-X001, ...; each entry states what it challenges
│ ├── revision-log.md # dated log of substantive manuscript revisions