research-document
B. ROS Research Format Catalog
B. ROS Research Format Catalog
Source corpus: kemiller2002/visual-engineering, 837 Markdown files.
B.0 The corpus has two populations, not one
This is the single most important structural fact, and it is not visible from the publisher's output.
| Population | Files | Character |
|---|---|---|
Authored research under content/** |
117 | hand-written, heterogeneous, 27 artifact-type directories |
Frontier records under research/frontier/** |
626 (520 published) | machine-generated, rigidly uniform, fully linked |
OBSERVED: 520 of the 756 published records (69%) are frontier records
(id prefix RFR-). The published site is majority machine-generated
research-opportunity records, not authored research.
Designing a parser against the authored corpus alone would mis-serve two thirds of the published output; designing against frontier records alone would produce a parser that cannot read the actual research.
B.1 Authored research artifacts (content/**)
Folder and filename convention
OBSERVED: content/projects/<project>/<artifact-type>/<filename>.md,
with 8 projects and 27 distinct artifact-type directory names.
Artifact-type directories, by number of projects using them:
research-execution-package 7 research-journal 5 evidence-registry 5
theory-registry 3 research-report 3 research-note 3
hypothesis-registry 3 experiment-report 3 canonical 3
research-framework 2 audit 2
template, standard, roadmap, research-plan, phase-report, machine-readable,
knowledge-model, experiments, evidence-gallery, evidence-collection,
design-specification, decision-record, crosswalk, comparative-study,
checklist, case-study, architecture (1 each)
Filenames are not uniform: rep-wc-0001-cross-project-web-component-framework.md
(kebab, ID-prefixed) sits beside REP_Visual_Engineering_Johannes_Itten_Modern_Color_Theory.md
(SCREAMING_SNAKE, no ID) and 2026-07-21-semantic-durability-research-execution-package.md
(date-prefixed).
INFERENCE: filename is not a reliable identity source. §28 explicitly warns against assuming filenames are stable IDs; the corpus confirms the warning.
Front matter: measured key frequency (of 117 files)
| Key | Count | Note |
|---|---|---|
purposes |
112 | most universal key — more common than title |
audiences |
112 | |
project |
94 | |
status |
77 | 37 distinct values |
title |
64 | |
llm_ingest |
56 | machine-consumption hint |
machine_readable |
56 | |
authors |
52 | |
id |
49 | only 42% coverage |
document_type |
49 | snake_case; engine expects artifactType |
version |
42 | |
date / created / updated |
38 / 38 / 38 | three competing date keys |
confidence |
36 | |
tags |
35 | |
abstract / summary |
26 / 19 | two competing summary keys |
related_documents |
23 | snake_case |
canonical |
21 | boolean flag, not a link |
concepts |
21 | |
references |
16 | bibliographic citations, not internal links |
entryPoint/entryPointOrder/entryPointLabel |
12 each | camelCase island |
researchArea (8) vs research_area (6) |
both spellings coexist | |
evidence_level |
8 | |
supersedes / superseded_by |
4 / 4 | all null in current corpus |
source_rep |
4 | provenance to a REP; all resolve |
artifactType |
4 | the key the engine actually reads |
One file has no front matter at all
(content/archive/duplicates/composition-science/Composition_Science_Research_Library_v0.2.md).
document_type values (49 files)
experiment_report 10 research-report 7 evidence-registry 4
research-journal 4 research-package 3 research_execution_package 3
hypothesis-registry 2 journal-entry 2
design-specification, research-roadmap, standard, theory-registry,
specification, ontology, governance, research_framework, research_report,
theory_registry, decision-record, experiment-report, audit, index (1 each)
OBSERVED: the same concept appears in both casings —
experiment_report/experiment-report, research-report/research_report,
theory-registry/theory_registry. A vNext parser must normalise separator
and case before matching.
status is free text, not an enum
OBSERVED: 37 distinct values across 77 files, including
verified, active, proposed, complete, working, draft,
canonical-candidate, and full English phrases:
"Applied Analysis — Working Draft"
"Verified Source Register and Applied Evidence Review"
computational-pilot-complete-human-study-pending
model-simulation-complete-gaze-study-pending
power-pilot-complete-field-study-pending
INFERENCE: status cannot be modelled as a closed discriminated union
without data loss. It must be a free-text value with an optional derived
classification. The status phrases encode a research stage
(computational-pilot-complete) plus an outstanding obligation
(human-study-pending) — genuinely useful, but only if parsed as structure
rather than an enum.
Body structure
OBSERVED: heading vocabulary is per-artifact-type and not enforced.
RP-VE-2026-0001 uses Executive Summary, Repository Context,
Current Understanding, Key Discoveries, Open Questions. Other REPs use
different sets. There is no repository-wide required heading.
B.2 Frontier records (research/frontier/records/*.md)
OBSERVED: 626 files, rigidly uniform, machine-generated.
---
id: RFR-B186B831
title: "Create a shared benchmark and decision threshold: …"
document_type: research_frontier_record
status: Open
category: Tooling
frontier_score: 392
generated: 2026-07-29
immutable: true
---
Required sections, in order: Research opportunity, Background,
Evidence trace, Unknowns.
The Evidence trace section is the important part — it carries an explicit,
resolvable provenance chain:
- Origin document: [content/projects/project-atlas/research-report/….md](../../../content/…)
- Section: `The Relational Legibility Model`
- Specific assumption challenged: …
- Supporting evidence excerpt: "…"
OBSERVED: id is a content hash (RFR-<8 hex>), not a sequence.
immutable: true is declared. status is Open for all 520 published.
INFERENCE: frontier records are a derived publication artifact that has been materialised into the canonical tree. They are regenerable from their origin documents, which means vNext may treat them as derived without risking canonical research.
B.3 Pre-existing machine-readable indexes
OBSERVED: the frontier tooling already emits, under research/frontier/:
| File | Size | Content |
|---|---|---|
frontier-index.json |
1.31 MB | 104 documents, 520 records, each with 26 fields including originDocuments, section, dependencies, suggestedRep, evidenceExcerpt, scoreComponents |
frontier-graph.json |
267 KB | 624 nodes, 832 edges, directed: true |
Edge types: originates (520), prerequisite (312).
Node types: frontier (520), document (104).
frontier-index.json also declares an explicit publication policy:
{"included": "publishable source",
"excludedStatuses": ["draft","proposed","candidate","working",
"working-draft","research-draft","applied-analysis-working-draft",
"evidence-review-working-draft"]}
This is the strongest single piece of evidence in the discovery. A second tool in the same repository already derives an 832-edge graph from the same corpus. The publisher's own graph has 6 edges. The relationships are not missing from the research — they are missing from the publisher.
B.4 §6 — Formal vs conventional vs accidental
Formally required (DOCUMENTED ROS RULE)
Enforced by ./ros validate and the ROS schemas in
repository-operating-system/schemas/:
- artifact metadata conforms to
schemas/artifact-metadata.schema.json - canonical roots declared in
ros.json(journals,packages,theories,evidence) - registries under
registries/are regenerated byros registry build - work-item attribution for meaningful changes (
docs/work-protocol.md)
Note: ROS does not enforce the content/projects/** layout at all. The VE
corpus lives outside ROS's declared canonical roots.
Conventional (widely followed, unenforced)
content/projects/<project>/<artifact-type>/<file>.mdpurposes+audienceson nearly every document (112/117)document_typenaming the artifact kind- ID prefix families (
REP-,EVR-/EVREG-,HYR-/HYREG-,THY-,JR-,EX-,DF-,RFR-) related_documentsfor internal links,referencesfor bibliography
Accidental — must NOT enter the parser contract
- Specific casing of
document_typevalues. Both casings exist; matching literally would silently drop one. - The constant
2026-07-22. It is a source default, not data. researchArea: "General Research". Also a default (98.1% of records).- Digit width in IDs (
-001vs-0001) and prefix length (EVR-vsEVREG-for the same concept). related_documentspath base. Both file-relative and repo-root-relative appear; neither is "the" convention.entryPoint*camelCase. Present in only 12 files, all from the research-publisher seed corpus, not the wider research.
B.5 §7 — Versioning
OBSERVED: there is no artifact format version field anywhere in the
corpus. version (42 files) is the research document's own version
("1.0", "v0.1", "0.4"), not a schema version.
Format versions exist only in generated output: research-catalog.json
schemaVersion: "1.1", research-graph.json schemaVersion: "1.0", and
per-record schemaVersion: "1.1" inside the catalog.
PROPOSAL — minimum viable versioning, no file rewrites:
- Treat absence of a format version as format version 0 (the current heterogeneous state). No existing file changes.
- Publish a
rosArtifactFormatfield in the derived indexes, set by the parser, recording which parse profile produced the record. - Only when a genuinely breaking authoring change is needed, introduce an
opt-in
ros_format: 1front-matter key. Files without it stay on profile 0 indefinitely.
This satisfies §1.2 (no forced migration) and §7 (don't automatically require rewriting existing files).
B.6 §8 — Stable IDs and addressable objects
| Object | ID present | Unique | Derived from filename | Safe for a public URL |
|---|---|---|---|---|
| Authored document | 49/117 (42%) | yes — 49/49, zero duplicates | no | yes, where present |
| Frontier record | 626/626 (100%) | yes (content hash) | yes (RFR-x.md) |
yes |
| Project | implicit via project key (94/117) |
yes | no | yes |
| Sub-document object (finding, evidence item, claim) | none | — | — | no |
| Section | none, but frontier records reference sections by heading text | not guaranteed | — | only as a slug, unstable |
OBSERVED: all 49 authored IDs are unique; there are no duplicate IDs in the
corpus. The duplicate-id rule has never had cause to fire.
INFERENCE: document-level deep links are safe today for 100% of frontier
records and 42% of authored documents. Sub-document deep links are not
safe: no sub-document object carries an ID, and the only sub-document handle in
use (frontier records' section: field, matched by heading text) breaks the
moment a heading is reworded.
PROPOSAL: vNext should mint stable URLs only for objects with a declared
id, and fall back to a content-derived, stable slug (hash of the
repository-relative source path, not the title) for the rest — which removes
the retitling hazard identified in A.8 without inventing IDs (§28).