Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,30 @@ Protocol versions are recorded here with the changed rule, the observation that

- Research references checked against publisher and index records, with unconfirmed fields marked; review record, change-proposal disposition, hypothesis register and analogy records published (see `docs/review/`, `research/`).

## v0.2.1 — consolidation of accepted change proposals (not yet tagged)

v0.2.1 applies the listed accepted change proposals to the protocol text. It adds no proposal of its own; each change traces to one proposal, and [`docs/review/disposition.md`](docs/review/disposition.md) records where each landed. File names are unchanged; headings and status lines read v0.2.1.

| Proposal | Changed rule | Observation that motivated it | Still hypothesis |
|---|---|---|---|
| CP-01 | `01` §13: convergence requires the model to have survived one deliberate attempt to break it, by a party or context independent of the pair that built it; a review typology (exploration, adversarial, verification, spike); §15 is the release instance of the same mechanism | review finding F-02; Case 01's broad-review-then-narrow-verification sequence | whether findings are material rather than cosmetic (`CAP-10`) |
| CP-02 | `01` §5, `02` §1: a mode names the dominant learning objective of the moment, never a phase (option b; names unchanged) | finding F-01: the mode names separated problem and solution, which `01` §7 forbids | — |
| CP-04 | `01` §3: Progressive Commitment is the one tentativeness ladder, with one presentation rule; §6 becomes guidance; two dimensions of `02` §7 are its state encoding | finding F-07: four overlapping tentativeness devices | — |
| CP-08 | `05` §12: one evidence-strength scale, split into observation clarity and evidential weight | finding F-11: two incompatible evidence-strength vocabularies | the scale values are a first definition |
| CP-13 | `05` §2, §3, §9, §11: pre-registered predictions (at most five per case) are the primary instrument; three always-on measures; the other signals are optional diagnostics; Keep/Investigate/Revert over predictions | findings F-09 (evaluation cannot run at the available sample size), F-13 | whether the three always-on measures predict rework |
| CP-14 | `01` §1: declared scope (one human, one AI, single-threaded, ending in a handoff) and known untested extensions | findings F-14, F-16, F-21 | everything outside the declared scope |
| CP-16 | `01` §13: the review's return leg — fix named blockers, resolution log, narrow verification, ready/not-ready verdict | Case 01's convergence record | whether the return leg shortens convergence |
| CP-17 | `01` §13: an in-session stop signal with five symptoms | Case 01's premature "we're done" moments | whether the symptoms are noticed in time |
| CP-18 | `01` §9: record what is discarded, and the cost of reconstructing it, before any irreversible normalization; `CAP-16`; extended event kind `normalization.recorded` | Case 01: the terminology rule's general form | whether recorded losses are ever needed again (`CAP-16`) |
| CP-19 | `01` §11: reuse check for borrowed components before architecture | Case 01 G1, EV-1: nothing covered borrowed components, only borrowed ideas | — |
| CP-20 | `01` §13: review when the model is coherent, attackable and still cheap to change; the timing question reinstated as `07` P-15 | v0.2 moved the trigger to release without a stated reason | P-15 itself |
| CP-21 | `01` §12: counterexamples classified local or structural; counterexample work saturated when new ones cause mostly local changes | Case 01's counterexample method, dropped in v0.2 | whether saturation predicts a stable model |
| CP-22 | `07` section B (deferred technical decisions `T-01`–`T-10`) moved to [`docs/technical-decisions.md`](docs/technical-decisions.md); `T-01` marked decided | known finding KF-2: project decisions in the normative layer, and the only reason it named a harness | — |

**Observation model.** One extended event kind, `normalization.recorded`, is added. The event vocabulary treats a new kind as a version bump, but the observation model is not yet versioned separately from the protocol, so v0.2.1 is that bump and this line is its migration note. No run has been recorded yet, so no comparability is lost.

**What did not happen.** The adversarial review's own plan for v0.2.1 (its §7, W1) set a test: if v0.2.1 is longer than v0.2, the phase has failed. By that test this consolidation fails, because it is longer: CP-16 to CP-21 add mechanisms that Case 01 had and v0.2 dropped, and none of them is tested yet. CP-15 remains deferred. KF-1 and KF-3 remain open. The Core/Extended split (CP-11) is still a proposal in the catalogue, not a protocol decision. CP-03, CP-05 and CP-06 are accepted and drafted as capabilities (`CAP-14`, `CAP-06`, `CAP-04`), but their protocol-text edits are not part of v0.2.1.

---

## v0.2 — from v0.1
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ repository-code: "https://github.com/kschlt/earnedshape"
license:
- MIT
- CC-BY-4.0
version: "0.2"
version: "0.2.1"
keywords:
- human-ai-collaboration
- human-in-the-loop
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ A protocol that forces the two apart:
- **The commitment act** — a commitment exists only with its rejected alternative, its rationale, and the condition under which it should be reopened. Anything else is a draft, however confident it sounds.
- **Decision rights** — what the AI may do alone, what it may draft, what it may only advise on, and what stays with the human.
- **Meaning before commitment** — a term the AI coins starts as a candidate. Fluent vocabulary is not shared understanding until it has been tested against cases.
- **Challenge before convergence** — a model is not ready to commit to until it has survived a deliberate attempt to break it. (Accepted after review; the protocol text follows in v0.2.1.)
- **Challenge before convergence** — a model is not ready to commit to until it has survived a deliberate attempt to break it.

The governing rule is inverted from most AI tooling: it optimises for the **next valuable human contribution**, not for the completeness of the AI's answer.

Expand Down Expand Up @@ -74,10 +74,10 @@ The study closest to this protocol's target task — LLM support for problem fra

> earnedshape is a bet that the **design of the interaction** — not the presence of the AI — decides the outcome. The bet is plausible, unproven, and the project is built so that it can lose.

Every source the research synthesis relies on is listed and checked in [`research/REFERENCES.md`](research/REFERENCES.md), including where the support is thinner than the wording. Open findings against this baseline, including two reported by the project's own lint against its own protocol, are in [`docs/known-findings.md`](docs/known-findings.md).
Every source the research synthesis relies on is listed and checked in [`research/REFERENCES.md`](research/REFERENCES.md), including where the support is thinner than the wording. Open findings against this baseline, including one reported by the project's own lint against its own protocol, are in [`docs/known-findings.md`](docs/known-findings.md).

## Contributing

The scarcest contribution is evidence, not features — especially a discovery where the protocol cost more than it returned. See [`CONTRIBUTING.md`](CONTRIBUTING.md).

Prose is CC BY 4.0, code is MIT ([`docs/licensing.md`](docs/licensing.md)). Protocol `v0.2`; protocol and adapter maturity are versioned separately. "Human–AI Discovery Protocol", still the heading of [`protocol/01_PROTOCOL_V0.2.md`](protocol/01_PROTOCOL_V0.2.md), is the earlier working title; the protocol is now called earnedshape.
Prose is CC BY 4.0, code is MIT ([`docs/licensing.md`](docs/licensing.md)). Protocol `v0.2.1`; protocol and adapter maturity are versioned separately. "Human–AI Discovery Protocol", still the heading of [`protocol/01_PROTOCOL_V0.2.md`](protocol/01_PROTOCOL_V0.2.md), is the earlier working title; the protocol is now called earnedshape.
1 change: 1 addition & 0 deletions capabilities/CONFORMANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Three separate questions per cell, never collapsed:
| CAP-13 probe + debrief | ext | enf | ? | ? | ? | ? | ? | ? |
| CAP-14 independent position | ext | enf | ? | ? | ? | ? | ? | ? |
| CAP-15 analogy record | ext | enf | ? | ? | ? | ? | ? | ? |
| CAP-16 information-loss gate | ext | enf | ? | ? | ? | ? | ? | ? |

`CC` = Claude Code · `GPT` = a ChatGPT surface, which one to be decided.

Expand Down
22 changes: 13 additions & 9 deletions capabilities/catalogue.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@

### CAP-05 · Deferred decision register
**class** enforcement · **depends on** CAP-01
**derives from** protocol §14, `07_DECISIONS_AND_OPEN_QUESTIONS` §B
**derives from** protocol §14, the deferred-decision register (`07_DECISIONS_AND_OPEN_QUESTIONS` §B up to v0.2, now [`docs/technical-decisions.md`](../docs/technical-decisions.md))
**required** A deliberately deferred question is recorded with its reason and the point at which it should be decided, and remains retrievable until resolved.
**must emit** `deferral.recorded`, `deferral.resolved`
**eval L1** Deferrals visible in the transcript but absent from the register; resolved questions never closed.
Expand Down Expand Up @@ -99,7 +99,7 @@

### CAP-10 · Adversarial challenge before convergence
**class** enforcement · **depends on** CAP-06
**derives from** change proposal CP-01; Case 01 Phase 9, G6, L4, M-03; Case 02 E-02-20
**derives from** change proposals CP-01, CP-16, CP-20; protocol §13; Case 01 Phase 9, G6, L4, M-03; Case 02 E-02-20
**required** Before a high-impact commitment, the current model has survived one deliberate attempt to break it, by a party or context independent of the pair that built it. Findings are recorded as challenges; a narrow verification pass confirms the named blockers are closed.
**must emit** `adversarial_review.completed`, plus `challenge.raised` per finding
**eval L1** Commitments made with no preceding review event; reviews with no recorded findings (a review that finds nothing is usually a review that did not happen).
Expand Down Expand Up @@ -167,21 +167,25 @@
**falsified by** Records are produced and no import error is ever caught by one.
**note** The protocol does not currently apply this to its own imports (finding F-18). The capability should be exercised on those four first — the cheapest possible test, on material already at hand. Done by hand as change proposal CP-09: [`research/analogy-records.md`](../research/analogy-records.md) — each of the four records produced a finding, none of them cosmetic.

### CAP-16 · Information-loss gate
**class** enforcement · **depends on** CAP-01
**derives from** protocol §9 (information-loss check before normalization), change proposal CP-18; `04_SHARED_LANGUAGE_POLICY` §4; Case 01 G3, AP-05, L3, L7, M-05
**required** Before source-grounded information is irreversibly normalized — merged, summarised, mapped onto a schema, renamed or discarded — a record states what is being discarded and what reconstructing it would cost.
**must emit** `normalization.recorded`
**eval L1** Irreversible normalizations of source material with no record.
**eval L2** Whether information later found missing had been recorded as discarded, and whether its recorded reconstruction cost was realistic.
**falsified by** Records are produced and no discarded information is ever needed again, while the recording cost is visible.

---

## Reserved

An identifier is allocated the moment a proposal depends on it, so that it cannot be reused while the proposal is open. A reservation is not a specification.

### CAP-16 · Information-loss gate
**status** reserved, not specified · **class** enforcement · **from** change proposal CP-18
Before an irreversible normalization, record what source-grounded information is being discarded and what reconstructing it would cost. v0.2 has this only for terminology; Case 01 identified the general form as transferable to any system that ingests and transforms external information.
**would emit** `normalization.recorded {discarded, reconstruction_cost}`
An identifier is allocated the moment a proposal depends on it, so that it cannot be reused while the proposal is open. A reservation is not a specification. No identifier is currently reserved.

---

## What is deliberately absent

- **Adaptive routing / the five-factor router.** Untested as a router, and there is no event that would show it fired. Adding a capability for it now would manufacture the appearance of a mechanism.
- **Mode tracking.** The mode taxonomy is under an open change proposal (CP-02); building a capability on a taxonomy that may be renamed is premature.
- **Mode tracking.** CP-02 was applied in v0.2.1 without renaming: a mode names the dominant learning objective of the moment, not a phase. Nothing in the catalogue depends on tracking it, so no capability is defined.
- **Turn economics.** Depends entirely on whether `turn.recorded` is reachable. Phase 1 decides whether this is a capability or a demoted hypothesis.
9 changes: 1 addition & 8 deletions docs/known-findings.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,11 @@ The rule is about citation provenance, not about one product. A technology-indep

**Status:** open. The protocol is not edited without an accepted change proposal, and this one has not been through that process.

## KF-2 · `protocol/07` section B does not belong in the protocol

`T-03` names a specific harness as a candidate for the first binding. Taken alone this is a naming issue; the real finding is a layering one. Section B of `07` is a register of **deferred technical decisions** — repository topology, state serialisation, skill architecture, release workflow. Those are project decisions, not protocol semantics, and their presence is the only reason the normative layer names a harness at all.

**Proposed fix:** move section B out of `protocol/` into project documentation, leaving `07` with protocol decisions and open protocol questions.
**Status:** open, and the more consequential of the two.

## KF-3 · `research/` states some claims more strongly than their sources support

The citation check of September 2026 ([`research/REFERENCES.md`](../research/REFERENCES.md)) found every cited work (a few bibliographic fields remain unconfirmed and are marked there), and found that several items under "strongly supported" in `research/01` §2, and a few statements in `research/02`, rest on practitioner literature, a single study, or the project's own inference. The clearest cases: *language and model can co-evolve* (method literature only), *AI is valuable for articulation, search, synthesis and critique* (articulation and drafting are supported, synthesis rests on one preprint, search and critique are not covered), and *human situated input is epistemically special* (a normative reading of requirements research).

**Proposed fix:** a v0.2.1 pass over `research/01` §2 that moves these items out of "strongly supported" or narrows their wording, with the change recorded here and in the changelog.
**Proposed fix:** a pass over `research/01` §2 (not part of the v0.2.1 consolidation) that moves these items out of "strongly supported" or narrows their wording, with the change recorded here and in the changelog.
**Status:** open. The claims are marked in place and listed in full in `REFERENCES.md`; the wording itself is unchanged until that pass.

## What this file is not
Expand Down
2 changes: 1 addition & 1 deletion docs/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ Curated synthesis, including a standing section for evidence *against* the premi

## Maturity

Protocol maturity and adapter maturity are tracked separately and move at different speeds. Today: protocol `v0.2`, no adapter, no instrumented run, conformance matrix empty. The honest summary is that the specification layer exists and nothing has been tested.
Protocol maturity and adapter maturity are tracked separately and move at different speeds. Today: protocol `v0.2.1`, no adapter, no instrumented run, conformance matrix empty. The honest summary is that the specification layer exists and nothing has been tested.
6 changes: 4 additions & 2 deletions docs/provenance.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ This repository was derived on 14 September 2026 from a private working reposito
| 10–14 Sep 2026 | **Phase 0**: observation model, capability catalogue, conformance matrix, boundary lint; four change proposals executed | [`protocol/observation-model/`](../protocol/observation-model/), [`capabilities/`](../capabilities/), [`research/hypothesis-register.md`](../research/hypothesis-register.md), [`research/analogy-records.md`](../research/analogy-records.md) |
| 14 Sep 2026 | Name decided, this repository derived | [`examples/naming-decision.md`](../examples/naming-decision.md) |
| from 14 Sep 2026 | **Phase 1** planned: feasibility spikes on what can be observed | [`docs/phase-1-feasibility.md`](phase-1-feasibility.md) |
| 22 Sep 2026 | **Protocol v0.2.1**: the accepted change proposals applied to the protocol text | [`CHANGELOG.md`](../CHANGELOG.md), [`docs/review/disposition.md`](review/disposition.md) |

Cases 01 and 02 and the v0.1/v0.2 baseline were produced with ChatGPT-family models and a deep-research tool; the review and Phase 0 were done with Claude in Claude Code. The same person is practitioner, protocol author, evidence analyst and evaluator throughout — the central threat to validity the review names.

Expand Down Expand Up @@ -46,10 +47,11 @@ Files here sometimes cite these by number, for example "doc 10" or `09`.

| IDs | Meaning | Defined in |
|---|---|---|
| `D-nn`, `T-nn`, `P-nn`, `E-nn` | protocol decisions, deferred technical decisions, open protocol questions, evaluation questions | [`protocol/07`](../protocol/07_DECISIONS_AND_OPEN_QUESTIONS.md); `T-11`–`T-13` were proposed in the [adversarial review](review/2026-09-adversarial-review-v0.2.md) |
| `D-nn`, `P-nn`, `E-nn` | protocol decisions, open protocol questions, evaluation questions | [`protocol/07`](../protocol/07_DECISIONS_AND_OPEN_QUESTIONS.md) |
| `T-nn` | deferred technical decisions (project decisions, not protocol semantics) | [`docs/technical-decisions.md`](technical-decisions.md), section B of `protocol/07` up to v0.2; `T-11`–`T-13` were proposed in the [adversarial review](review/2026-09-adversarial-review-v0.2.md) |
| `CAP-nn` | capabilities | [`capabilities/catalogue.md`](../capabilities/catalogue.md) |
| `F-nn` | findings of the adversarial review | [`docs/review/`](review/2026-09-adversarial-review-v0.2.md) §3 |
| `CP-nn` | change proposals, `CP-01`–`CP-15` from the review, `CP-16`–`CP-21` from executing CP-10 | [`docs/review/disposition.md`](review/disposition.md) |
| `CP-nn` | change proposals, `CP-01`–`CP-15` from the review, `CP-16`–`CP-21` from executing CP-10, `CP-22` from known finding KF-2 | [`docs/review/disposition.md`](review/disposition.md) |
| `HYP-nnn` | unified hypothesis register | [`research/hypothesis-register.md`](../research/hypothesis-register.md) |
| `KF-n` | known findings against the published baseline | [`docs/known-findings.md`](known-findings.md) |
| `M-nn`, `M1`–`M8`, `G1`–`G7`, `L1`–`L10`, `AP-nn`, `SC-n`, `EV-n`, "Phase n" | codes inside the Case 01 retrospective: method hypotheses, method elements, guidelines, lessons, anti-patterns | unpublished |
Expand Down
Loading
Loading