docs: name OHM as the corpus, "Human" as the first RFC
Reframe the Open Human Model in SPEC.md and PHILOSOPHY.md from "the first RFC the framework will produce" to "the corpus of RFCs the framework produces, of which the first defines *human*." Earlier phrasing collapsed the project (OHM) and the first entry into one name; this teases them apart. Also surface the OpenXML APIs / UX downstream-consumer point: OHM is English-first by design — the markdown bodies are canonical, and the structured artifacts downstream systems need to actually let humans and machines interact are derived from that English source, not authored alongside it. This is part of why markdown round-trip fidelity matters structurally (cf. the Phase 1 CM6 swap). Updates the obvious example renames — slug `open-human-model` → `human`, title "Open Human Model" → "Human", PR-list / breadcrumb / notification examples — so the SPEC's worked-example consistently shows OHM-as-corpus with Human as a member. Test fixtures and the README seed-script invocation still carry the old slug; those are left for a separate pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+20
-15
@@ -14,11 +14,14 @@ The Wiggleverse RFC framework is a standardization process for natural-
|
|||||||
language vocabulary, modeled on the way ISO C, POSIX, and the IETF RFCs
|
language vocabulary, modeled on the way ISO C, POSIX, and the IETF RFCs
|
||||||
produced the standards that underwrite modern computing. Each RFC defines
|
produced the standards that underwrite modern computing. Each RFC defines
|
||||||
one word: its meaning, its relationships to other defined words, and the
|
one word: its meaning, its relationships to other defined words, and the
|
||||||
protocol by which humans and machines interact with it. The Open Human
|
protocol by which humans and machines interact with it. The first RFC
|
||||||
Model is the first specification this process will produce. Together,
|
defines *human*. Together, the corpus of RFCs the process produces is
|
||||||
the graduated RFCs form a stack — a shared vocabulary that digital
|
the **Open Human Model** — a shared English-language vocabulary that
|
||||||
representations of humans, and the systems that interact with them, can
|
digital representations of humans, and the systems that interact with
|
||||||
be built on without re-litigating what every word means.
|
them, can be built on without re-litigating what every word means. The
|
||||||
|
English is canonical; the OpenXML APIs and UX surfaces a downstream
|
||||||
|
system needs to actually let humans and machines interact are derived
|
||||||
|
from it, not authored alongside it.
|
||||||
|
|
||||||
This is public work. Humans and machines are both invited and both
|
This is public work. Humans and machines are both invited and both
|
||||||
required. The shared understanding the framework is reaching for — how
|
required. The shared understanding the framework is reaching for — how
|
||||||
@@ -87,11 +90,12 @@ could agree on. HTTP does not implement any particular web server; it
|
|||||||
specifies the surface every web server has to honor.
|
specifies the surface every web server has to honor.
|
||||||
|
|
||||||
The Wiggleverse RFC framework is the standardization process. The RFCs
|
The Wiggleverse RFC framework is the standardization process. The RFCs
|
||||||
it produces are the specifications. The Open Human Model is the first
|
it produces are the specifications. The corpus of those specifications
|
||||||
of them. Together they form a stack — a shared vocabulary that every
|
is the **Open Human Model** — the shared vocabulary that every digital
|
||||||
digital representation of a human, and every system that interacts with
|
representation of a human, and every system that interacts with one,
|
||||||
one, can be built on without re-litigating what *consent*, *trait*, or
|
can be built on without re-litigating what *consent*, *trait*, or
|
||||||
*agency* means each time.
|
*agency* means each time. The first RFC defines *human* itself; the
|
||||||
|
rest define the constellation around it.
|
||||||
|
|
||||||
The analogy stretches in one important way, and the stretch is worth
|
The analogy stretches in one important way, and the stretch is worth
|
||||||
naming. POSIX worked because it codified convention that already
|
naming. POSIX worked because it codified convention that already
|
||||||
@@ -184,11 +188,12 @@ service of the philosophy above.
|
|||||||
humans reading later, and to machines computing against the current
|
humans reading later, and to machines computing against the current
|
||||||
state.
|
state.
|
||||||
|
|
||||||
The first RFC the framework will produce is the Open Human Model: a
|
The first RFC defines *human*. The constellation around it — *trait*,
|
||||||
shared definition of what we mean by *human*, and the constellation of
|
*preference*, *consent*, *harm*, *agency* — follows. Together, the
|
||||||
words around it — *trait*, *preference*, *consent*, *harm*, *agency*.
|
corpus the process produces is the Open Human Model: the dictionary
|
||||||
This is not a small project. It is, in the most literal sense, the
|
that everything else built here will stand on, and the English source
|
||||||
dictionary that everything else built here will stand on.
|
from which the OpenXML APIs and UX surfaces of downstream systems can
|
||||||
|
be derived. This is not a small project.
|
||||||
|
|
||||||
## An invitation
|
## An invitation
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,14 @@
|
|||||||
# RFC App — Specification
|
# RFC App — Specification
|
||||||
|
|
||||||
|
This app hosts the **Open Human Model (OHM)**, the corpus of RFCs the
|
||||||
|
Wiggleverse framework produces. Each RFC defines one word; the first
|
||||||
|
defines *human*. OHM is English-first by design: the markdown bodies
|
||||||
|
are canonical, and the OpenXML APIs and UX surfaces a downstream
|
||||||
|
system needs to actually let humans and machines interact are derived
|
||||||
|
from that English source, not authored alongside it. The framework's
|
||||||
|
*why* lives in [`PHILOSOPHY.md`](./PHILOSOPHY.md); this document is
|
||||||
|
the binding *what* for the app that hosts OHM.
|
||||||
|
|
||||||
This is the agreed-upon model for the rewrite of the Wiggleverse RFC Contributor app.
|
This is the agreed-upon model for the rewrite of the Wiggleverse RFC Contributor app.
|
||||||
It captures the structural decisions made before any UX work on the main document
|
It captures the structural decisions made before any UX work on the main document
|
||||||
pane, per-RFC conversations, revisions, and PRs. Those areas are deliberately
|
pane, per-RFC conversations, revisions, and PRs. Those areas are deliberately
|
||||||
@@ -39,7 +48,7 @@ delegated ownership, per-user capability overrides) without contorting Gitea.
|
|||||||
The meta repo's `main` branch contains:
|
The meta repo's `main` branch contains:
|
||||||
|
|
||||||
- `rfcs/` — exactly one markdown file per RFC entry, regardless of state.
|
- `rfcs/` — exactly one markdown file per RFC entry, regardless of state.
|
||||||
Filenames are the entry's slug, e.g. `rfcs/open-human-model.md`. Slugs are
|
Filenames are the entry's slug, e.g. `rfcs/human.md`. Slugs are
|
||||||
the stable identifier from the moment an idea is proposed; integer
|
the stable identifier from the moment an idea is proposed; integer
|
||||||
`RFC-NNNN` IDs are only assigned at graduation (see §13).
|
`RFC-NNNN` IDs are only assigned at graduation (see §13).
|
||||||
- `PHILOSOPHY.md` — the framework's mission and rationale. Hand-authored.
|
- `PHILOSOPHY.md` — the framework's mission and rationale. Hand-authored.
|
||||||
@@ -65,11 +74,11 @@ live in the meta repo — they live in the app database (see §5).
|
|||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
---
|
---
|
||||||
slug: open-human-model
|
slug: human
|
||||||
title: Open Human Model
|
title: Human
|
||||||
state: super-draft # super-draft | active | withdrawn
|
state: super-draft # super-draft | active | withdrawn
|
||||||
id: null # null until graduated; then "RFC-0042"
|
id: null # null until graduated; then "RFC-0042"
|
||||||
repo: null # null until graduated; then "wiggleverse/rfc-0042-open-human-model"
|
repo: null # null until graduated; then "wiggleverse/rfc-0042-human"
|
||||||
proposed_by: ben@wiggleverse.org
|
proposed_by: ben@wiggleverse.org
|
||||||
proposed_at: 2026-05-22
|
proposed_at: 2026-05-22
|
||||||
graduated_at: null
|
graduated_at: null
|
||||||
@@ -569,8 +578,8 @@ a hierarchy on the user that gets in the way of finding by title.
|
|||||||
|
|
||||||
### 7.2 The list rows
|
### 7.2 The list rows
|
||||||
|
|
||||||
Active entries render as `RFC-0042 · Open Human Model`. Super-drafts
|
Active entries render as `RFC-0042 · Human`. Super-drafts
|
||||||
render as `super-draft · Open Human Model` (no integer ID, by design).
|
render as `super-draft · Human` (no integer ID, by design).
|
||||||
A small star icon on the row left-edge for any RFC the signed-in
|
A small star icon on the row left-edge for any RFC the signed-in
|
||||||
user has starred — starred RFCs pin to the top of the current sort
|
user has starred — starred RFCs pin to the top of the current sort
|
||||||
order. A small unseen-activity dot — binary, not a count — appears on
|
order. A small unseen-activity dot — binary, not a count — appears on
|
||||||
@@ -633,7 +642,7 @@ The RFC view inherits the three-column shape from the prototype:
|
|||||||
branch, with a change-card panel below it in contexts where editing
|
branch, with a change-card panel below it in contexts where editing
|
||||||
is enabled (see §8.3).
|
is enabled (see §8.3).
|
||||||
|
|
||||||
The center column's breadcrumb reads, for example: `OHM › main ▾ · 3
|
The center column's breadcrumb reads, for example: `Human › main ▾ · 3
|
||||||
branches · 1 PR`. The chevron opens a dropdown listing `main` at the
|
branches · 1 PR`. The chevron opens a dropdown listing `main` at the
|
||||||
top, then open branches sorted by recent activity (with a visibility
|
top, then open branches sorted by recent activity (with a visibility
|
||||||
indicator for any private ones), then open PRs with their status, and
|
indicator for any private ones), then open PRs with their status, and
|
||||||
@@ -1083,8 +1092,8 @@ The modal collects four fields:
|
|||||||
contributor types, inline-editable. Validated for uniqueness
|
contributor types, inline-editable. Validated for uniqueness
|
||||||
against `rfcs/` on the meta-repo main *and* against the slugs of
|
against `rfcs/` on the meta-repo main *and* against the slugs of
|
||||||
any open idea PRs, so concurrent proposers cannot collide. A
|
any open idea PRs, so concurrent proposers cannot collide. A
|
||||||
collision surfaces inline ("`open-human-model` is taken — try
|
collision surfaces inline ("`human` is taken — try `human-2`?"). The
|
||||||
`open-human-model-2`?"). The API re-checks atomically at submit.
|
API re-checks atomically at submit.
|
||||||
- **Pitch** — required textarea. One or two paragraphs answering
|
- **Pitch** — required textarea. One or two paragraphs answering
|
||||||
"why this RFC is needed," contributor-typed. Becomes the entry
|
"why this RFC is needed," contributor-typed. Becomes the entry
|
||||||
file's body per §2.1.
|
file's body per §2.1.
|
||||||
@@ -1123,8 +1132,8 @@ the standard `On-behalf-of:` trailer per §6.5 names the proposer.
|
|||||||
|
|
||||||
The PR title and the file-add commit subject share a fixed pattern:
|
The PR title and the file-add commit subject share a fixed pattern:
|
||||||
**`Propose: <Title>`**. Mechanical, scannable — an owner viewing the
|
**`Propose: <Title>`**. Mechanical, scannable — an owner viewing the
|
||||||
meta-repo's PR list sees "Propose: Open Human Model," "Propose:
|
meta-repo's PR list sees "Propose: Human," "Propose: Trait,"
|
||||||
Trait," "Propose: Consent" and triages at a glance.
|
"Propose: Consent" and triages at a glance.
|
||||||
|
|
||||||
The PR description is AI-drafted from the pitch — two or three
|
The PR description is AI-drafted from the pitch — two or three
|
||||||
sentences in spec voice making the *case for catalog admission*,
|
sentences in spec voice making the *case for catalog admission*,
|
||||||
@@ -1770,7 +1779,7 @@ The dialog renders the sequence in flight as a stack of the five
|
|||||||
named steps with per-step states — `pending`, `running`, `done`,
|
named steps with per-step states — `pending`, `running`, `done`,
|
||||||
`failed`, `not reached` — and a one-line caption beneath the current
|
`failed`, `not reached` — and a one-line caption beneath the current
|
||||||
step naming the concrete operation ("Creating repository
|
step naming the concrete operation ("Creating repository
|
||||||
wiggleverse/rfc-0042-open-human-model…"). The stack streams from
|
wiggleverse/rfc-0042-human…"). The stack streams from
|
||||||
the server via the SSE surface in §17, one event per step
|
the server via the SSE surface in §17, one event per step
|
||||||
transition. On success, a brief "Graduation complete" frame holds
|
transition. On success, a brief "Graduation complete" frame holds
|
||||||
for a moment before the dialog closes and the catalog row
|
for a moment before the dialog closes and the catalog row
|
||||||
@@ -2310,7 +2319,7 @@ per the clarification folded into §6.2 in this section's pass.
|
|||||||
Notifications surface the **underlying user** as actor, not the
|
Notifications surface the **underlying user** as actor, not the
|
||||||
bot. The `notifications.actor_user_id` column holds the underlying
|
bot. The `notifications.actor_user_id` column holds the underlying
|
||||||
user's id for any event produced by a human gesture; the inbox row
|
user's id for any event produced by a human gesture; the inbox row
|
||||||
reads "@alice opened PR #4 on RFC-0042 (Open Human Model)," and
|
reads "@alice opened PR #4 on RFC-0042 (Human)," and
|
||||||
the email subject reads "[Wiggleverse] @alice opened PR #4:
|
the email subject reads "[Wiggleverse] @alice opened PR #4:
|
||||||
<title>." Triage requires the human's name in the noun slot — the
|
<title>." Triage requires the human's name in the noun slot — the
|
||||||
reader's first question is "whose work is this?" and surfacing the
|
reader's first question is "whose work is this?" and surfacing the
|
||||||
|
|||||||
Reference in New Issue
Block a user