Complete the bounded language 0.1 research preview

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e241-8285-7a63-8c0c-51c9cb824dc3
This commit is contained in:
tegwick 2026-09-27 11:49:48 +02:00
parent 8cc7016e1f
commit 53bb65e7a6
26 changed files with 2497 additions and 33 deletions

View file

@ -26,3 +26,13 @@ classification-report:
classification-check: classification-check:
python3 scripts/classification_coverage.py --check python3 scripts/classification_coverage.py --check
.PHONY: reference-generate reference-check reference-test
reference-generate:
python3 scripts/reference_preview.py
reference-check:
python3 scripts/reference_preview.py --check
reference-test:
PYTHONDONTWRITEBYTECODE=1 "$(BENCH_PY)" -m pytest -q -p no:cacheprovider tests/test_reference_preview.py

View file

@ -1,6 +1,10 @@
# frontend-patterns # frontend-patterns
A coherent, generative pattern language for frontend architecture and design. An evolving research language for frontend architecture and design.
Start with the [0.1 research preview](START.md): two decision paths, seventeen
draft hypotheses and evidence-qualified implementation mappings. Canonical admission,
independent usefulness and the M1/M2/M3 gates remain open.
The project treats frontend architecture not as a choice among frameworks or named styles, but as the progressive resolution of recurring forces concerning: The project treats frontend architecture not as a choice among frameworks or named styles, but as the progressive resolution of recurring forces concerning:

View file

@ -56,7 +56,8 @@ Static source mechanisms and authored runtime fixtures do not establish complete
pattern recurrence, production fitness or independent human confirmation. pattern recurrence, production fitness or independent human confirmation.
Canonical admission, M1/M2 acceptance, demonstrated generativity, full graph export, Canonical admission, M1/M2 acceptance, demonstrated generativity, full graph export,
held-out retrieval evaluation and developed technology mappings remain open. held-out retrieval evaluation remain open. Scoped mechanism mappings are available
in the 0.1 preview; full implementation contracts remain unverified.
There is research runtime code, but no maintained frontend application or framework There is research runtime code, but no maintained frontend application or framework
is offered as the product. See the [evolution report](research/evolution/EvolutionReport.md) is offered as the product. See the [evolution report](research/evolution/EvolutionReport.md)
for current counts and evidence limits; [REVIEW.md](REVIEW.md) preserves the initial for current counts and evidence limits; [REVIEW.md](REVIEW.md) preserves the initial
@ -86,9 +87,9 @@ held-out retrieval and real-repository applicability, subject to its recorded ga
review dates and comparable-cycle measurement. Actionable work stays in workplans; review dates and comparable-cycle measurement. Actionable work stays in workplans;
this file describes boundaries, not a second backlog. this file describes boundaries, not a second backlog.
[WP-0007](workplans/FEP-WP-0007-language-v01-preview.md) proposes a finite 0.1 research [WP-0007](workplans/FEP-WP-0007-language-v01-preview.md) packages a finite 0.1 research
preview: curated candidate reference paths, two core sequences, scoped mappings and preview: curated candidate reference paths, two core sequences, scoped mappings and
a candidate export. This is not a declared release or a replacement for M1/M2/M3. a candidate export. This is a bounded research preview, not a replacement for M1/M2/M3.
The [2026-09-27 scope–intent assessment](history/2026-09-27T010237+0200-scope-vs-intent.md) The [2026-09-27 scope–intent assessment](history/2026-09-27T010237+0200-scope-vs-intent.md)
records the current gaps and recommended priorities. Future assessments should records the current gaps and recommended priorities. Future assessments should

66
START.md Normal file
View file

@ -0,0 +1,66 @@
# Start with a frontend decision
**0.1 research preview.** Seventeen candidate patterns, all hypotheses. Use them to
make assumptions and trade-offs explicit; confirm the required contracts in your
implementation. This language has not yet demonstrated improved decision quality.
## Choose your starting problem
| Your problem | Start here | What the sequence helps decide |
| --- | --- | --- |
| Users edit shared records; writes can conflict or lose their responses | [Transactional editing](sequences/TransactionalApplication.md) | Preserve intent, reject stale proposals, resolve uncertain outcomes, refresh views |
| Users edit notes offline and must resume after restarting | [Offline local work](sequences/LocalFirstApplication.md) | Acknowledge local save, retain pending propagation, handle divergence, plan recovery |
| You need navigation, rendering, feature or interaction guidance | [Extension candidates](reference/0.1/Catalog.md#extensions) | Explore individual hypotheses with their current evidence limits |
| You need an overview of coverage | [Classification inventory](research/catalog/ClassificationCoverage.md) | Compare families, scales, responsibilities and selected forces |
Before choosing, state who can accept the relevant change, which state must survive
restart, and what the user is allowed to retain. A locally displayed result is not
necessarily accepted. Where a view is computed is a separate decision from authority.
If you cannot answer those questions, clarify them first. If you require globally
exclusive approval while fully disconnected, neither sequence supplies that guarantee.
A collaborative editor, hard real-time system or complete security architecture needs
additional domain work; an unfilled catalog cell is not permission to improvise a
validated solution.
## Read the language as decisions
A candidate explains a problem and forces, a proposed solution, its resulting context,
alternatives and failure modes. Follow conditional links only when their assumptions
hold. The eight [core candidates](reference/0.1/Catalog.md#core) connect into the two
sequences; the other nine are extensions, not mandatory additions.
[Transactional mappings](technologies/TransactionalRecovery.md) and
[offline mappings](technologies/OfflineRecovery.md) locate implementation mechanisms.
No listed product is certified to implement the whole proposed configuration.
A short example: if an edit succeeds remotely but its response disappears, preserve
its operation identity and treat the outcome as unknown. Find the result or use a
verified bounded replay contract before creating another attempt. After acceptance,
refresh observations separately; a refresh failure does not undo acceptance. Follow
the [transactional sequence](sequences/TransactionalApplication.md) for assumptions
and alternatives.
## Evidence and future versions
The [0.1 release record](reference/0.1/README.md) pins the corpus and lists supported
contexts. [Evidence profiles](research/evolution/EvolutionReport.md) separate documents,
code inspection and runtime observations. No candidate is canonically admitted; a
source locator or passing fixture does not prove its full contract.
For a counterexample, record the candidate ID, the context, expected versus observed
behavior, implementation revision and any reproducible evidence. Explain whether a
precondition was absent or the proposed solution failed despite it. Use the source or
learning-cycle templates under `templates/`; proposed corrections require a named
review with retained prior claims. Never paste private data or credentials into evidence.
Later versions may revise, merge, split or retire candidates. Preserve identities and
supersession records; do not silently reinterpret an older release. The language is
intended to keep learning.
## Agent reference
Read [index.json](reference/0.1/index.json) for stable research identities, proposed
relations, classification, evidence and gaps. It is a candidate reference export, not
an admitted canonical graph. Read the linked contracts before making a recommendation;
do not infer inverse edges, unconditional dependencies or transitive guarantees.

32
reference/0.1/Catalog.md Normal file
View file

@ -0,0 +1,32 @@
# Candidate reference — 0.1
All records are draft hypotheses. Classification is provisional; linked candidate prose contains context, alternatives and consequences. Evidence locators describe partial support, not full-contract recurrence.
## Core
| Candidate / decision | Families; scales | Evidence limits |
| --- | --- | --- |
| [CAND-0001 — Conflict Copy](../../research/candidates/ConflictCopy.md) — Preserve competing versions instead of silently losing one. | synchronization; L2, L6 | Authorized retention and export are separate decisions. Complete contract recurrence and fault-tested deployed behavior remain unverified. |
| [CAND-0002 — Local Commit Boundary](../../research/candidates/LocalCommitBoundary.md) — Define when a local change is durably accepted. | mutation, authority; L2, L6 | No executed storage crash or backup test. Local acceptance is not off-device recovery. |
| [CAND-0003 — Pending Synchronization](../../research/candidates/PendingSynchronization.md) — Keep accepted local intent visible until synchronization resolves. | synchronization; L2, L6 | Atomic supersession and retry contract proposed, not storage-tested. |
| [CAND-0004 — Explicit Reconciliation](../../research/candidates/ExplicitReconciliation.md) — Resolve divergent content while retaining provenance. | synchronization, affordance; L2, L6 | Atomic resolution/provenance UI not executed. Overlap with Conflict Copy remains an open merge question. |
| [CAND-0005 — Local Draft State](../../research/candidates/LocalDraftState.md) — Separate unfinished intent from refreshed authoritative data. | affordance, mutation; L6 | No native-unload, crash, multiple-tab or access-revocation guarantee. Full base/draft/current merge contract is not verified in deployed frontends. |
| [CAND-0006 — Version-Checked Mutation](../../research/candidates/VersionCheckedMutation.md) — Reject an operation whose observed base is stale. | mutation, authority; L2, L6 | Distributed atomicity and complete frontend recurrence remain unverified. Refetch does not authorize overwriting conflicting intent. |
| [CAND-0007 — Mutation Outcome Tracking](../../research/candidates/MutationOutcomeTracking.md) — Retain operation identity when transport outcome is uncertain. | mutation, synchronization; L2, L6 | No production server deduplication or complete retention-window guarantee. Cancelling local UI is not remote compensation. |
| [CAND-0008 — Invalidate and Reproject](../../research/candidates/InvalidateAndReproject.md) — Refresh a projection after mutation without equating acceptance and visibility. | projection, synchronization; L3, L6 | Read-your-write and acceptance/refresh distinction still proposed. No independent deployed full-contract observation. |
## Extensions
| Candidate / decision | Families; scales | Evidence limits |
| --- | --- | --- |
| [CAND-0009 — URL-addressable State](../../research/candidates/URLAddressableState.md) — Make a navigable state reconstructible from its URL. | address, projection; L3 | Independent application recurrence and human/AT validation remain unverified. Pending history disclosure, multiple history misses, redirects, nonzero swap delays, bfcache, lifecycle cleanup, interrupted/late enhancement and offline availability remain open. Zulip auxiliary target/anchor callbacks, deferred editing focus and search callback wiring remain unverified; static guards do not prove whole-application ownership. |
| [CAND-0010 — Progressive Enhancement](../../research/candidates/ProgressiveEnhancement.md) — Keep essential actions usable when enhancement is unavailable. | quality, execution, affordance; L3, L6 | Independent application recurrence and human/AT validation remain unverified. Pending history disclosure, multiple history misses, redirects, nonzero swap delays, bfcache, lifecycle cleanup, interrupted/late enhancement and offline availability remain open. Zulip auxiliary target/anchor callbacks, deferred editing focus and search callback wiring remain unverified; static guards do not prove whole-application ownership. |
| [CAND-0011 — Presentation Model](../../research/candidates/PresentationModel.md) — Separate presentation decisions from view mechanisms. | composition, affordance; L4, L6 | No executed model/view integration or independently reviewed full-contract use. |
| [CAND-0012 — Derived State](../../research/candidates/DerivedState.md) — Compute a result from explicit authoritative inputs. | projection, affordance; L3, L6 | Snapshot coherence and changed-locale cache test still planned. |
| [CAND-0013 — Vertical Feature Slice](../../research/candidates/VerticalFeatureSlice.md) — Group a capability across UI, state and behavior with explicit interfaces. | composition; L4 | Build/import enforcement not executed. Feature organization does not establish independent activation. |
| [CAND-0014 — Islands of Interactivity](../../research/candidates/IslandsOfInteractivity.md) — Activate selected interactive regions within a document. | projection, execution; L3, L5 | No executed island fixture, performance comparison or complete recurrence study. |
| [CAND-0015 — Failure Boundary](../../research/candidates/FailureBoundary.md) — Contain specified failure classes while preserving useful neighboring work. | quality, composition; L5, L6 | Synthetic host, not full application recurrence. Boundary cannot imply containment for all asynchronous failures. |
| [CAND-0016 — Focus Return](../../research/candidates/FocusReturn.md) — Restore meaningful focus after a temporary interaction ends. | quality, affordance; L6 | One implementation family; repeated trials are not independent uses. Animated exits and competing owners remain untested; no production repair claim. Route ownership is a contrast, not independent modal recurrence; AT speech and broader history/lifecycle cases remain unverified. Zulip auxiliary target/anchor callbacks, deferred editing focus and search callback wiring remain unverified; static guards do not prove whole-application ownership. |
| [CAND-0017 — Independent Feature Boundary](../../research/candidates/IndependentFeatureBoundary.md) — Separate feature release, activation and session transition contracts. | composition, execution; L1, L4 | No upstream deployment or real team/release-independence validation. Distributed atomicity, retention authorization and native-unload/crash behavior remain open. |
Extensions are optional research leads. VC-03/06 remain provisional; other planned cases are unsupported. Follow the [starting guide](../../START.md) for the two core contexts.

View file

@ -0,0 +1,99 @@
# Disclosed development navigation checks
Author-model review; scenarios and answers were authored together. These checks validate navigation and stated boundaries, not measured retrieval or independent usefulness.
## D01 — My shared record changed while I was editing.
[transactional](../../sequences/TransactionalApplication.md) → CAND-0005, CAND-0006.
Preserve the proposal, inspect the current record and reconsider after a stale-base rejection.
Boundary: The endpoint must atomically enforce the expected-version contract.
Reject: Blind retry against a new version or overwriting input.
Editorial disposition: pass-with-stated-limits.
## D02 — The write timed out. Can I retry with a new ID?
[transactional](../../sequences/TransactionalApplication.md) → CAND-0007.
Keep outcome unknown; look up the original operation or replay only within its verified identity/retention contract.
Boundary: Without lookup/deduplication evidence, stop automatic retry and reconcile.
Reject: Inferring rejection from timeout or declaring a fresh identity safe.
Editorial disposition: pass-with-stated-limits.
## D03 — The write was accepted but refreshing the list failed.
[transactional](../../sequences/TransactionalApplication.md) → CAND-0007, CAND-0008.
Keep acceptance established and show stale-view recovery separately.
Boundary: The receipt must refer to this operation, and obsolete observations cannot erase newer work.
Reject: Retrying the mutation because the refresh failed.
Editorial disposition: pass-with-stated-limits.
## D04 — I need notes to survive an offline restart and synchronize later.
[offline](../../sequences/LocalFirstApplication.md) → CAND-0002, CAND-0003.
Define a recoverable local commit and persistent pending propagation; verify storage and receiver semantics.
Boundary: This preview supplies a proposed contract, not tested storage guarantees.
Reject: Equating a cache or visible typing with a durable save.
Editorial disposition: pass-with-stated-limits.
## D05 — Two offline versions disagree, but our revision store already retains both.
[offline](../../sequences/LocalFirstApplication.md) → CAND-0004.
Consider explicit comparison using the existing revision store; a separate conflict file is optional.
Boundary: The store must provide authorized, recoverable alternatives and provenance.
Reject: Making Conflict Copy an unconditional dependency of reconciliation.
Editorial disposition: pass-with-stated-limits.
## D06 — Can I approve a globally exclusive reservation while disconnected from every authority?
[start](../../START.md) → clarify / abstain.
Identify the incompatible acceptance requirement; neither supported sequence provides that guarantee.
Boundary: Clarify/change the domain contract or require connectivity; no pattern recommendation establishes it.
Reject: Treating locally saved data or replica convergence as global exclusivity.
Editorial disposition: pass-with-stated-limits.
## D07 — Which state-management pattern should I use?
[start](../../START.md) → clarify / abstain.
Ask who accepts changes, what must survive restart, whether writers can conflict and what may be retained.
Boundary: Underspecified; do not infer that either core sequence applies.
Reject: Picking a universal state architecture without context.
Editorial disposition: pass-with-stated-limits.
## D08 — Give me a complete secure collaborative editor with guaranteed real-time latency.
[start](../../START.md) → clarify / abstain.
State that full collaborative/security/latency design is outside the supported core and identify the missing domain evidence.
Boundary: Unsupported need; request a narrower brief and additional evidence.
Reject: Assembling extension names into a certified complete architecture.
Editorial disposition: pass-with-stated-limits.

31
reference/0.1/README.md Normal file
View file

@ -0,0 +1,31 @@
# Frontend pattern language 0.1 — research preview
Start with the [decision guide](../../START.md), then choose
[transactional editing](../../sequences/TransactionalApplication.md) or
[offline local work](../../sequences/LocalFirstApplication.md).
This version packages **17 draft hypotheses**, with **8 connected core candidates**
and **9 extensions**. Publication version 0.1 does not mean canonical maturity,
PatternSchema compliance, completed M1/M2/M3 or demonstrated usefulness.
- [Candidate catalog](Catalog.md): decisions, context, evidence and extension limits.
- [Machine-readable reference](index.json): stable CAND identities, proposed edges
and qualified evidence. Conditions are part of each edge; do not infer transitivity.
- [Manifest](manifest.json): selected corpus, input digests, reference paths and scope.
- [Release review](ReleaseReview.md) and [release notes](ReleaseNotes.md): acceptance
evidence, reviewer role, remaining work and update policy.
- [Development navigation checks](DevelopmentChecks.md): disclosed scenarios and
manual reasoning review, not independent human or held-out evaluation.
- [Evidence evolution](../../research/evolution/EvolutionReport.md): transparent
learning and evidence profiles, with immutable historical snapshots.
Candidate bodies and evidence are pinned by the manifest to a recorded Git revision.
Relative links in a later checkout may show newer files; use that revision for the
recorded corpus. The index includes the pinned hashes and profile/classification
information for this preview. Future incompatible changes require a new version;
errata must explain the correction and preserve prior records in Git.
Unsupported promises include offline global exclusivity, universal crash-safe storage,
permanent deduplication, accessibility conformance, automatic merge correctness and
production release independence. The extension list is a research surface, not a
complete guide to every frontend architecture.

View file

@ -0,0 +1,26 @@
# 0.1 research preview notes
2026-09-27. This is a versioned research reference, with no canonical admission or
production certification. Candidate corpus revision:
`8cc7016e1fbcb08b670091a174672fcdd8d07640`.
The preview provides a starting guide, transactional and offline decision sequences,
eight connected core candidates, nine optional extensions, scoped mechanism mappings,
a candidate JSON export and eight disclosed development navigation checks. Existing
candidate contracts and evidence maturity are unchanged by packaging.
Source traceability passes its bounded documentary review. M1 remains revise/defer;
M2/M3 and independent human usefulness remain open. Conflict Copy and Explicit
Reconciliation retain separate identities with a conditional relationship. No new
external source verification or live inference was performed for this packaging.
Storage/receiver validation transferred from WP-0002 T02 to WP-0003 T04. Existing
research owners are listed in the manifest. No additional release-blocking residual
was identified in the bounded review.
Later corrections must retain prior claims in Git, name the affected identities and
context, and explain the evidence and changed decision. An incompatible corpus or
classification change requires a new version and reviewed manifest; never refresh
hashes as a substitute for review. Preserve supersession links when splitting,
merging or retiring candidates. Documentation errata must identify the corrected
preview and remain distinguishable from new empirical evidence.

View file

@ -0,0 +1,32 @@
# 0.1 preview acceptance review
2026-09-27 · Reviewer: Codex, author-model editorial and deterministic review.
No independent human reviewer participated. **Disposition: ready as a bounded
research preview.** This does not pass M1/M2/M3 or canonical admission.
| Requirement | Evidence and disposition |
| --- | --- |
| Core selection and source readiness | [Source readiness](../../research/reviews/SourceReadiness-0.1.md) and [M1 review](../../research/reviews/M1-SeedReview.md); eight core contracts qualified, empirical gates deferred |
| Ontology disposition | [Ontology review](../../research/reviews/PreviewOntology-0.1.md); conditional proposals, separate preservation and resolution |
| Human reference paths | [Start](../../START.md), two sequences, two scoped mappings and catalog; alternatives and unsupported needs explicit |
| Machine reference | Export checks candidate digests against the pinned Git corpus, input hashes, identities, vocabulary, endpoints, evidence paths and live residual references |
| Development navigation | Eight disclosed [cases](DevelopmentChecks.md), including incompatible, underspecified and unsupported requests; editorial review only |
| Failure checks | Tests reject bad endpoints/types, missing evidence, empty conditions, duplicate selection, modified candidates, escaping paths and missing relation fields |
| Claim boundary | All seventeen records remain hypotheses; no empirical benefit, full-contract recurrence, accessibility conformance or production guarantees claimed |
Validation commands: `make reference-test reference-check schema-test bench-test
bench-plan evolution-check classification-check` and `git diff --check`. The review
also checks relative file links in the changed and new Markdown reference surface.
The development cases are authored answers with deterministic reference checks;
there is no search engine, live model retrieval result or held-out score.
The manifest pins existing candidate contracts to `8cc7016` and hashes profile,
classification and vocabulary inputs. Packaging files are versioned by the commit
containing this review; the baseline revision does not contain this new guide.
Relative links resolve against the checkout, so use the corpus revision to recover
original candidate content after future changes.
Research residuals remain live under WP-0002 T03; WP-0003 T01–T04; WP-0004
T01–T03; and WP-0006 T03, with paths in the manifest. WP-0003 T04 explicitly
records the source-review handoff origin. Finishing packaging closes none of those
gates. No tag or external release publication is part of this review.

View file

@ -0,0 +1,115 @@
{
"kind": "disclosed-development-checks",
"method": "Author-model editorial navigation and reasoning review plus deterministic reference checks. Cases and answers are authored together; not a retrieval engine result, held-out comparison or independent human validation.",
"cases": [
{
"id": "D01",
"query": "My shared record changed while I was editing.",
"entrypoint": "transactional",
"expected_candidates": [
"CAND-0005",
"CAND-0006"
],
"reviewed_answer": "Preserve the proposal, inspect the current record and reconsider after a stale-base rejection.",
"prohibited_claim": "Blind retry against a new version or overwriting input.",
"boundary": "The endpoint must atomically enforce the expected-version contract.",
"review_result": "pass-with-stated-limits",
"reviewer": "Codex author-model",
"independent_human": false
},
{
"id": "D02",
"query": "The write timed out. Can I retry with a new ID?",
"entrypoint": "transactional",
"expected_candidates": [
"CAND-0007"
],
"reviewed_answer": "Keep outcome unknown; look up the original operation or replay only within its verified identity/retention contract.",
"prohibited_claim": "Inferring rejection from timeout or declaring a fresh identity safe.",
"boundary": "Without lookup/deduplication evidence, stop automatic retry and reconcile.",
"review_result": "pass-with-stated-limits",
"reviewer": "Codex author-model",
"independent_human": false
},
{
"id": "D03",
"query": "The write was accepted but refreshing the list failed.",
"entrypoint": "transactional",
"expected_candidates": [
"CAND-0007",
"CAND-0008"
],
"reviewed_answer": "Keep acceptance established and show stale-view recovery separately.",
"prohibited_claim": "Retrying the mutation because the refresh failed.",
"boundary": "The receipt must refer to this operation, and obsolete observations cannot erase newer work.",
"review_result": "pass-with-stated-limits",
"reviewer": "Codex author-model",
"independent_human": false
},
{
"id": "D04",
"query": "I need notes to survive an offline restart and synchronize later.",
"entrypoint": "offline",
"expected_candidates": [
"CAND-0002",
"CAND-0003"
],
"reviewed_answer": "Define a recoverable local commit and persistent pending propagation; verify storage and receiver semantics.",
"prohibited_claim": "Equating a cache or visible typing with a durable save.",
"boundary": "This preview supplies a proposed contract, not tested storage guarantees.",
"review_result": "pass-with-stated-limits",
"reviewer": "Codex author-model",
"independent_human": false
},
{
"id": "D05",
"query": "Two offline versions disagree, but our revision store already retains both.",
"entrypoint": "offline",
"expected_candidates": [
"CAND-0004"
],
"reviewed_answer": "Consider explicit comparison using the existing revision store; a separate conflict file is optional.",
"prohibited_claim": "Making Conflict Copy an unconditional dependency of reconciliation.",
"boundary": "The store must provide authorized, recoverable alternatives and provenance.",
"review_result": "pass-with-stated-limits",
"reviewer": "Codex author-model",
"independent_human": false
},
{
"id": "D06",
"query": "Can I approve a globally exclusive reservation while disconnected from every authority?",
"entrypoint": "start",
"expected_candidates": [],
"reviewed_answer": "Identify the incompatible acceptance requirement; neither supported sequence provides that guarantee.",
"prohibited_claim": "Treating locally saved data or replica convergence as global exclusivity.",
"boundary": "Clarify/change the domain contract or require connectivity; no pattern recommendation establishes it.",
"review_result": "pass-with-stated-limits",
"reviewer": "Codex author-model",
"independent_human": false
},
{
"id": "D07",
"query": "Which state-management pattern should I use?",
"entrypoint": "start",
"expected_candidates": [],
"reviewed_answer": "Ask who accepts changes, what must survive restart, whether writers can conflict and what may be retained.",
"prohibited_claim": "Picking a universal state architecture without context.",
"boundary": "Underspecified; do not infer that either core sequence applies.",
"review_result": "pass-with-stated-limits",
"reviewer": "Codex author-model",
"independent_human": false
},
{
"id": "D08",
"query": "Give me a complete secure collaborative editor with guaranteed real-time latency.",
"entrypoint": "start",
"expected_candidates": [],
"reviewed_answer": "State that full collaborative/security/latency design is outside the supported core and identify the missing domain evidence.",
"prohibited_claim": "Assembling extension names into a certified complete architecture.",
"boundary": "Unsupported need; request a narrower brief and additional evidence.",
"review_result": "pass-with-stated-limits",
"reviewer": "Codex author-model",
"independent_human": false
}
]
}

1324
reference/0.1/index.json Normal file

File diff suppressed because it is too large Load diff

210
reference/0.1/manifest.json Normal file
View file

@ -0,0 +1,210 @@
{
"schema_version": 1,
"version": "0.1",
"status": "research-preview",
"corpus_revision": "8cc7016e1fbcb08b670091a174672fcdd8d07640",
"reviewer": {
"name": "Codex",
"role": "author-model",
"independent_human": false
},
"core": [
"CAND-0001",
"CAND-0002",
"CAND-0003",
"CAND-0004",
"CAND-0005",
"CAND-0006",
"CAND-0007",
"CAND-0008"
],
"extensions": [
"CAND-0009",
"CAND-0010",
"CAND-0011",
"CAND-0012",
"CAND-0013",
"CAND-0014",
"CAND-0015",
"CAND-0016",
"CAND-0017"
],
"inputs": {
"research/evolution/profiles.json": "46de3b9b2d3958aff00c339741a4418fb4b5110352975b6a2fe82400d1224ee1",
"research/catalog/ClassificationCoverage.json": "8abf11676fd67fc1e726795ebf4c424d5d6fe0a3ed1fa21ea747214306b8d879",
"canon/vocabulary.yaml": "527be0a9ee774a2c795c8c883a01b6721f16667b70a4c3c9c63746d0bfd8c0aa"
},
"entrypoints": {
"start": "START.md",
"transactional": "sequences/TransactionalApplication.md",
"offline": "sequences/LocalFirstApplication.md",
"transactional_mapping": "technologies/TransactionalRecovery.md",
"offline_mapping": "technologies/OfflineRecovery.md"
},
"relations": [
{
"source": "CAND-0002",
"type": "enables",
"target": "CAND-0003",
"status": "proposed",
"condition": "The local transaction records a revision and its pending propagation atomically.",
"rationale": "A recoverable origin allows pending work to resume after restart.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/LocalCommitBoundary.md",
"research/candidates/PendingSynchronization.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0003",
"type": "creates-context-for",
"target": "CAND-0001",
"status": "proposed",
"condition": "Detected divergence requires retained alternatives and policy permits retention.",
"rationale": "Pending propagation can expose competing versions; not every synchronization needs a copy.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/PendingSynchronization.md",
"research/candidates/ConflictCopy.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0001",
"type": "creates-context-for",
"target": "CAND-0004",
"status": "proposed",
"condition": "Preserved content remains semantically unresolved and a person must decide.",
"rationale": "Preservation supplies comparison material, not the resolution itself.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/ConflictCopy.md",
"research/candidates/ExplicitReconciliation.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0004",
"type": "enables",
"target": "CAND-0002",
"status": "proposed",
"condition": "The resolution becomes a new locally accepted revision.",
"rationale": "A chosen result still needs the local commit and pending-work contract.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/ExplicitReconciliation.md",
"research/candidates/LocalCommitBoundary.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0005",
"type": "complements",
"target": "CAND-0006",
"status": "proposed",
"condition": "An editable proposal uses a stale-base precondition.",
"rationale": "Keeping the proposal separate supports recovery from a rejected conditional write.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/LocalDraftState.md",
"research/candidates/VersionCheckedMutation.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0006",
"type": "complements",
"target": "CAND-0007",
"status": "proposed",
"condition": "A conditional write may have an uncertain transport outcome.",
"rationale": "A version precondition and an operation identity answer different questions.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/VersionCheckedMutation.md",
"research/candidates/MutationOutcomeTracking.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0007",
"type": "enables",
"target": "CAND-0008",
"status": "proposed",
"condition": "Acceptance is established and affected observations need refreshing.",
"rationale": "Domain acceptance can trigger refresh without treating its failure as rejected mutation.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/MutationOutcomeTracking.md",
"research/candidates/InvalidateAndReproject.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0008",
"type": "complements",
"target": "CAND-0005",
"status": "proposed",
"condition": "Refreshing observations can arrive while newer input exists.",
"rationale": "Separate draft ownership prevents reprojected data from replacing unfinished intent.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/InvalidateAndReproject.md",
"research/candidates/LocalDraftState.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0003",
"type": "complements",
"target": "CAND-0007",
"status": "proposed",
"condition": "Remote propagation acknowledgement may be lost.",
"rationale": "Locally accepted work and unknown remote receipt need separately scoped outcome evidence.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/PendingSynchronization.md",
"research/candidates/MutationOutcomeTracking.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
}
],
"open_work": [
{
"id": "FEP-WP-0002-T03",
"path": "workplans/FEP-WP-0002-seed-language-validation.md"
},
{
"id": "FEP-WP-0003-T01",
"path": "workplans/FEP-WP-0003-contrasting-schools.md"
},
{
"id": "FEP-WP-0003-T02",
"path": "workplans/FEP-WP-0003-contrasting-schools.md"
},
{
"id": "FEP-WP-0003-T03",
"path": "workplans/FEP-WP-0003-contrasting-schools.md"
},
{
"id": "FEP-WP-0003-T04",
"path": "workplans/FEP-WP-0003-contrasting-schools.md"
},
{
"id": "FEP-WP-0004-T01",
"path": "workplans/FEP-WP-0004-reference-surface.md"
},
{
"id": "FEP-WP-0004-T02",
"path": "workplans/FEP-WP-0004-reference-surface.md"
},
{
"id": "FEP-WP-0004-T03",
"path": "workplans/FEP-WP-0004-reference-surface.md"
},
{
"id": "FEP-WP-0006-T03",
"path": "workplans/FEP-WP-0006-language-evolution.md"
}
]
}

View file

@ -23,3 +23,10 @@ responsibilities. Framework implementation claims and examples were not executed
Retain Server Authority and Immediate Feedback as candidates. Do not infer a Retain Server Authority and Immediate Feedback as candidates. Do not infer a
requires edge between them. Recurrence and failure behavior need further evidence. requires edge between them. Recurrence and failure behavior need further evidence.
Broader architecture comparisons remain open under FEP-WP-0002-T02/T03. Broader architecture comparisons remain open under FEP-WP-0002-T02/T03.
## Preview source assessment — 2026-09-27
The [bounded source-readiness review](../reviews/SourceReadiness-0.1.md) completes
editorial traceability assessment for WP-0002 T02. The original extraction above is
preserved; external claims were not re-fetched. Implementation/recurrence and human
validation remain open in the named successor tasks; no maturity promotion.

View file

@ -42,3 +42,10 @@ uses. It supports a separate Conflict Copy candidate and distinguishes local-pri
storage from globally winning every merge. Earlier fragment-only negative findings storage from globally winning every merge. Earlier fragment-only negative findings
remain valid for their limited packets. Crash durability and runtime recovery remain remain valid for their limited packets. Crash durability and runtime recovery remain
untested; this source review is still extracted rather than fully reviewed. untested; this source review is still extracted rather than fully reviewed.
## Preview source assessment — 2026-09-27
The [bounded source-readiness review](../reviews/SourceReadiness-0.1.md) completes
editorial traceability assessment for WP-0002 T02. The original extraction above is
preserved; external claims were not re-fetched. Implementation/recurrence and human
validation remain open in the named successor tasks; no maturity promotion.

View file

@ -0,0 +1,66 @@
# M1 seed review — 0.1 packaging boundary
Reviewed 2026-09-27 by Codex, author-model. Candidate baseline `8cc7016`.
**M1 result: revise/defer; not passed.** The connected subset is suitable for a
qualified research reference preview, not canonical admission or proven usefulness.
Publication 0.1 and PatternSchema 0.1 are different version axes.
## Gate assessment
| M1 criterion | Outcome | Basis |
| --- | --- | --- |
| Reconciled metadata contract | pass | WP-0002 T01, vocabulary and worked contract fixtures; candidates are not full canonical-schema records |
| First source and local-first contrast | pass, scoped | [Source readiness](SourceReadiness-0.1.md); source identity and uncertainty explicit |
| 6–10 connected drafts | pass for editorial subset | CAND-0001–0008 cover local persistence/propagation/divergence and shared-record editing/recovery; selection is not a global catalog cap |
| Two completed validated walkthroughs | revise | VC-01/02 include decisions, baselines, changed constraints and failure traces, but remain synthetic with unverified implementation assumptions |
| Evidence/counterexamples | pass for traceability; defer for recurrence | Documentation, pinned code and bounded runtime mechanisms are separate evidence kinds; full-contract independence unassessed |
| Independent human validation and usefulness | defer | Frozen pilot 18/24 in each condition after model-review adjudication; no naming benefit, equivalence or decision-time result established |
| Quality and recovery guarantees | revise | Requirements for retention, keyboard recovery, receipt windows and crash boundaries are stated; complete validation absent |
## Core editorial inspection
All eight records were read in full. Each has context, competing forces, a proposed
solution, consequences, alternatives, evidence and explicit gaps. “Pass” below means
usable as qualified hypothesis prose; it does not mean empirical correctness or
compliance with every canonical template field. [Reference manifest](../../reference/0.1/manifest.json)
selects identities; candidate prose remains the contract source.
| Candidate | Context and solution / resulting decision | Trade-off and alternative checked | Evidence limit / preview disposition |
| --- | --- | --- | --- |
| CAND-0001 Conflict Copy | Preserve detected divergent content separately; resolution remains pending | Recoverability versus clutter/review; immediate review or domain-aware merge instead | Joplin and optional Obsidian mechanisms, not atomic preservation proof; pass as hypothesis |
| CAND-0002 Local Commit Boundary | Acknowledge a revision and pending intent after a recoverable local commit | Offline recovery versus transaction/feedback cost; memory-only or server-required saving cannot satisfy the fixed brief | Storage motivation, no verified crash/flush contract; pass as hypothesis |
| CAND-0003 Pending Synchronization | Retain queued work and distinguish sent from acknowledged | Offline usability versus freshness/retry complexity; online-only writes are a different requirement | Joplin progress metadata, not proposed retry/supersession proof; pass as hypothesis |
| CAND-0004 Explicit Reconciliation | Compare preserved alternatives and commit a new decision | Information completeness versus interruption; justified automatic merge is an alternative | Manual comparison evidence, not provenance/atomicity/AT validation; pass, retain separately provisionally |
| CAND-0005 Local Draft State | Keep base, editable proposal and refreshed observation distinct | Recovery versus state complexity/privacy; direct binding only when no unfinished intent | Partial Zulip/Element and authored reload mechanisms, not whole lifecycle; pass as hypothesis |
| CAND-0006 Version-Checked Mutation | Check the proposal's expected version at the authority | Consistency versus repeated review; unconditional/commutative operations need their own contract | Conditional API mechanism, not complete frontend implementation; pass as hypothesis |
| CAND-0007 Mutation Outcome Tracking | Track operation-specific evidence rather than infer rejection from transport failure | Recoverability versus retention/backend cost; lookup or reconciliation when replay cannot be justified | Bounded API/SDK/source mechanisms, not universal deduplication; pass as hypothesis |
| CAND-0008 Invalidate and Reproject | Refresh affected observations after acceptance without losing drafts | Freshness versus network/invalidation work; complete authoritative response or subscription may avoid refetch | Framework documentation, no full frontend recurrence; pass as hypothesis |
The preview links provisional relations with conditions and rationales, not mandatory
architecture dependencies. A request for globally exclusive offline approval cannot
be satisfied by combining these names. Backup, authorization and crash guarantees
remain explicit implementation obligations.
## Retain / merge / defer
[Preview ontology review](PreviewOntology-0.1.md) retains Conflict Copy and Explicit
Reconciliation as distinct retrieval decisions, conditionally connected. Their ultimate
split/merge remains testable. Mutation Outcome Tracking is retained as a shared review
model/hypothesis; no new claim of standalone recurrence. The nine extension candidates
remain available with their existing limitations and are not needed for core closure.
No candidate promotion, ID rename or evidence-profile upgrade occurs.
## Residual owners
- WP-0002 T03: independent human review, usefulness and fresh-scenario replication;
this task stays progress and the M1 gate stays open.
- WP-0003 T04: storage atomicity, receiver replay/ancestry and recovery validation
transferred from the completed source-review deliverable.
- WP-0003 T01/T02/T03: independent application contrasts, quality/AT and wider cases,
and later ontology/M2 judgment.
- WP-0004 T01/T02/T03: canonical graph, held-out retrieval and empirical applicability
retain their prerequisites. Preview candidate export is not M3 completion.
These are explicit work records, not a claim that the remaining work was completed
by packaging the reference. The frozen pilot and original investigation receipts are
unchanged. Review this gate again when those tasks deliver new evidence.

View file

@ -0,0 +1,38 @@
# Ontology review for the 0.1 reference subset
2026-09-27, Codex author-model editorial review. Owner WP-0003 T03.
**Bounded result: retain with qualifications. M2 remains open.** No general proof
of minimal responsibilities, independent dimensions or complete pattern recurrence.
## Conflict Copy versus Explicit Reconciliation
Retain two research identities for preview retrieval:
- Conflict Copy answers “how do we keep detected competing content available while
continuing work?” Its result is preserved divergence, not resolved meaning.
- Explicit Reconciliation answers “how do we decide intended content and record the
decision?” It can use a version store without making a separate conflict file.
Preservation may precede manual review, but may also be followed by a justified
automatic merge or a deferred decision. Manual comparison can receive alternatives
from a revision store. Therefore neither unconditional requires edge is justified.
Export one conditional creates-context-for edge from CAND-0001 to CAND-0004 and
state the conditions. This is conceptual reasoning, not an observed independent
implementation of both complete contracts. Test whether readers can select one
without being forced into the other; merge later if that distinction proves unhelpful.
## Other decisions
| Question | Preview disposition | Limit |
| --- | --- | --- |
| Pending Synchronization versus Mutation Outcome Tracking | Retain both: local work may already be accepted while remote propagation is pending; remote write acceptance may instead be unknown | Shared operation-state model may motivate later refactoring; no full recurrence claim |
| Version precondition versus operation identity | Distinct obligations: stale-base rejection versus recovery of a particular attempt | One does not establish the other; receiver semantics must be checked |
| Local draft versus locally accepted record | Retain separate; editable intent need not be durable or locally authoritative | Add persistence only under explicit policy/storage requirements |
| Authority, projection and delivery | Apply the [six-question aid](AuthorityProjectionComparison.md); retain the six seeds without new drafts | Separate decisions with compatibility constraints, not universally independent axes |
| Families versus responsibilities | Keep separate classification fields; quality is a family, reconciliation a responsibility | Provisional direct-mechanism assignments and selected forces are not exhaustive ontology proof |
| Relations and prerequisites | Export only scoped proposals with rationale; no inverse, symmetric or transitive inference | Proposed links are not canonical graph edges; contextual conditions are not pattern IDs |
| Scale coverage | Preserve current labels and gaps, including L0/L7 | No automatic relabeling to fill empty cells |
No M2-CoverageReview pass is claimed: VC-04/05 are absent and VC-03/06 remain provisional.
This closes the preview's bounded ontology inspection, not WP-0003 T03. Independent
retrieval/usefulness and broader case outcomes may overturn these provisional choices.

View file

@ -0,0 +1,27 @@
# Source readiness for the 0.1 research preview
Reviewed 2026-09-27 by Codex, author-model editorial review. Inputs: source reviews
and receipts committed through `8cc7016`; no new external verification. Owner:
WP-0002 T02. Review scope is traceability and qualified interpretation, not full
implementation validation or currency of living documentation.
| Criterion | Disposition | Evidence / remaining boundary |
| --- | --- | --- |
| Identifiable first source and claim locators | pass | [Carniato review](../cases/CarniatoGrandUnifyingArchitecture.md), SRC-0001/C01–C03; edition/date uncertainty remains explicit |
| Independently sourced local-first contrast | pass | [Local-first review](../cases/LocalFirstAuthority.md), SRC-0002/C01–C03; primary local record is distinct from globally valid transaction |
| Source claims versus our interpretations | pass | Both claim tables separate these; [AuthorityPilot](AuthorityPilot.md) records conditional authority and acknowledgement decisions |
| Extensions with traceable limits and counterexamples | pass | [E01–E12](LocalFirstEvidenceExpansion.md), [T01–T05](TransactionalEvidenceExpansion.md), [R01–R06](FrontendRecoveryImplementations.md); living docs and partial source uses are qualified |
| Generated output screened and failures retained | pass | Failed/truncated runs and invalid edges remain in receipts/reviews; extracted model text is not automatically admitted |
| Current public maturity claims | pass for preview scope | README and release entry describe seventeen hypotheses, partial evidence and unproved usefulness |
| Actual storage atomicity, receiver semantics and full-contract independent uses | defer | These exceed the original two-source review deliverable; explicit residual ownership below |
| Independent human/AT usefulness | defer | WP-0002 T03 / WP-0003 T02 retain these gates; submitted model review does not meet them |
**Disposition:** the original WP-0002 T02 source-review deliverable is complete at
this bounded documentary level. Earlier notes accumulated implementation and fault
validation obligations; completion here does not erase them. Transfer those obligations
to WP-0003 T04 (origin WP-0002 T02), alongside existing T01 source comparison work.
WP-0002 itself stays active and M1 remains revise/defer under T03.
The dated source reviews retain their original extracted status as historical records;
their appended editorial-assessment links identify this later disposition without
rewriting the original source collection or claiming revalidation of external content.

View file

@ -0,0 +1,116 @@
#!/usr/bin/env python3
"""Build or check the pinned 0.1 candidate reference (not a canonical graph)."""
import argparse
import hashlib
import json
from pathlib import Path
import re
import subprocess
from classification_coverage import section_values, RESPONSIBILITIES
ROOT = Path(__file__).resolve().parents[1]
BASE = 'reference/0.1/'
def require(condition, message):
if not condition:
raise ValueError(message)
def locator(root, value):
require(isinstance(value, str) and bool(value), 'Empty reference')
path = (root / value).resolve()
require(path.is_relative_to(root.resolve()) and path.is_file(), 'Invalid reference: ' + value)
return path
def build(root=ROOT):
manifest = json.loads((root / BASE / 'manifest.json').read_text())
for path, digest in manifest['inputs'].items():
require(hashlib.sha256(locator(root, path).read_bytes()).hexdigest() == digest, 'Stale input: ' + path)
profiles = json.loads((root / 'research/evolution/profiles.json').read_text())['profiles']
classifications = json.loads((root / 'research/catalog/ClassificationCoverage.json').read_text())['candidates']
classes = {r['path']: r for r in classifications}
vocab = (root / 'canon/vocabulary.yaml').read_text()
ids = [p['id'] for p in profiles]
selected = manifest['core'] + manifest['extensions']
require(len(ids) == len(set(ids)) and all(re.fullmatch(r'CAND-\d{4}', x) for x in ids), 'Invalid candidate identities')
require(len(selected) == len(set(selected)) and set(selected) == set(ids), 'Invalid manifest selection')
require(len(classes) == len(classifications) == len(profiles), 'Invalid classification coverage')
records = []
for p in profiles:
raw = locator(root, p['path']).read_bytes()
require(hashlib.sha256(raw).hexdigest() == p['sha256'], 'Stale candidate: ' + p['id'])
pinned = subprocess.check_output(['git', 'show', manifest['corpus_revision'] + ':' + p['path']], cwd=root)
require(raw == pinned, 'Candidate differs from pinned revision: ' + p['id'])
front = raw.decode().split('---')[1]
c = classes[p['path']]
require(c['sha256'] == p['sha256'] and c['title'] == p['title'], 'Stale classification')
require(p['status'] == 'draft' and p['maturity'] == 'hypothesis', 'Re-review preview maturity')
require(p['gaps'] and p['decision'].strip() and c['rationale'].strip(), 'Missing qualification')
record = dict(p, subset='core' if p['id'] in manifest['core'] else 'extension', classification=c,
classification_status='provisional author-model interpretation')
for key in ('families', 'scales'):
match = re.search(r'^' + key + r': \[(.+)\]$', front, re.M)
require(match is not None, 'Missing ' + key)
labels = [s.strip() for s in match[1].split(',')]
require(len(set(labels)) == len(labels) and set(labels) <= set(section_values(vocab, key)), 'Invalid ' + key)
record[key] = labels
require(set(c['responsibilities']) <= set(RESPONSIBILITIES), 'Invalid responsibility')
for labels in c['forces'].values():
require(set(labels) <= set(section_values(vocab, 'forces')), 'Invalid force')
for e in p['evidence']:
locator(root, e['ref'])
require(e['kind'] and e['scope'], 'Missing evidence qualification')
require(p['evidence'] or p['independent_full_contract_uses'] is None, 'Missing evidence/unknown')
records.append(record)
for edge in manifest['relations']:
require(edge['source'] in ids and edge['target'] in ids, 'Invalid relation endpoint')
require(edge['type'] in section_values(vocab, 'pattern_relations'), 'Invalid relation type')
require(edge['status'] == 'proposed' and all(edge[k].strip() for k in ('condition', 'rationale', 'unknown', 'evidence_kind')), 'Unqualified relation')
require(edge['evidence_refs'], 'Missing relation evidence')
for ref in edge['evidence_refs']:
locator(root, ref)
for ref in manifest['entrypoints'].values():
locator(root, ref)
for task in manifest['open_work']:
require(task['id'] in locator(root, task['path']).read_text(), 'Missing residual task')
cases = json.loads((root / BASE / 'development-cases.json').read_text())['cases']
require(len(cases) >= 6 and len({c['id'] for c in cases}) == len(cases), 'Invalid development cases')
for case in cases:
require(case['entrypoint'] in manifest['entrypoints'] and set(case['expected_candidates']) <= set(ids), 'Invalid development reference')
require(all(case[k].strip() for k in ('query', 'reviewed_answer', 'prohibited_claim', 'boundary')), 'Incomplete development case')
index = dict(schema_version=1, version='0.1', status='research-preview', corpus_revision=manifest['corpus_revision'],
candidates=records, relations=manifest['relations'], entrypoints=manifest['entrypoints'],
relation_semantics='Conditional proposals only; no inverse or transitive inference.')
catalog = ['# Candidate reference — 0.1', '', 'All records are draft hypotheses. Classification is provisional; linked candidate prose contains context, alternatives and consequences. Evidence locators describe partial support, not full-contract recurrence.', '']
for subset in ('core', 'extensions'):
catalog += ['## ' + subset.title(), '', '| Candidate / decision | Families; scales | Evidence limits |', '| --- | --- | --- |']
for p in records:
if p['id'] not in manifest[subset]:
continue
catalog.append(f"| [{p['id']} — {p['title']}](../../{p['path']}) — {p['decision']} | {', '.join(p['families'])}; {', '.join(p['scales'])} | {' '.join(p['gaps'])} |")
catalog += ['']
catalog += ['Extensions are optional research leads. VC-03/06 remain provisional; other planned cases are unsupported. Follow the [starting guide](../../START.md) for the two core contexts.', '']
checks = ['# Disclosed development navigation checks', '', 'Author-model review; scenarios and answers were authored together. These checks validate navigation and stated boundaries, not measured retrieval or independent usefulness.', '']
for c in cases:
checks += ['## ' + c['id'] + ' — ' + c['query'], '', '[' + c['entrypoint'] + '](../../' + manifest['entrypoints'][c['entrypoint']] + ') → ' + (', '.join(c['expected_candidates']) or 'clarify / abstain') + '.', '', c['reviewed_answer'], '', 'Boundary: ' + c['boundary'], '', 'Reject: ' + c['prohibited_claim'], '', 'Editorial disposition: ' + c['review_result'] + '.', '']
return {'index.json': json.dumps(index, indent=2) + '\n', 'Catalog.md': '\n'.join(catalog), 'DevelopmentChecks.md': '\n'.join(checks)}
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('--check', action='store_true')
args = parser.parse_args()
for name, content in build().items():
path = ROOT / BASE / name
if args.check:
require(path.is_file() and path.read_text() == content, 'Stale export: ' + name)
else:
path.write_text(content)
print('Preview identities, pinned candidates, vocabulary, references and development cases verified.')
if __name__ == '__main__':
main()

View file

@ -1,15 +1,63 @@
# LocalFirstApplication # Offline local-work sequence
Status: research stub 0.1 research preview · synthetic VC-02 guidance · all linked candidates are hypotheses.
[Start](../START.md) · [Core and extensions](../reference/0.1/Catalog.md)
A generative sequence for applications in which local state remains usable and authoritative interaction continues despite network loss. ## Starting context
## Research tasks People create/edit notes without connectivity, restart without losing acknowledged
work, then synchronize. Multiple writers may produce incompatible changes. Notes do
not make globally exclusive reservations or approvals. Access/retention policy and
separate device-loss recovery must be explicit.
- identify dominant forces, Offline usability, recoverability and completeness compete with freshness, storage
- establish authority assumptions, complexity and reconciliation effort. Decide what “saved” means before choosing sync
- determine suitable projection patterns, or rendering tools. An evictable cache is not automatically the required local record.
- determine synchronization model,
- identify failure modes, ## Decisions and resulting contexts
- derive candidate sequence,
- test against known implementations. | Decision | Candidate and resulting context | Alternative / boundary |
| --- | --- | --- |
| Acknowledge only a recoverable local commit | [CAND-0002 Local Commit Boundary](../research/candidates/LocalCommitBoundary.md): accepted local revision and pending propagation survive the specified restart | Memory-only feedback cannot satisfy restart; server-only saving cannot satisfy offline acceptance. Verify transaction and failure boundaries |
| Keep propagation visible and restartable | [CAND-0003 Pending Synchronization](../research/candidates/PendingSynchronization.md): distinguish queued, sent and receiver-acknowledged | Online-only writes change the brief. Untracked upload cannot prove completion; receiver receipt does not mean every device received the change |
| Preserve detected competing content when permitted | [CAND-0001 Conflict Copy](../research/candidates/ConflictCopy.md): working version selected, divergent intent still available | Immediate comparison or justified semantic merge may be preferable; a copy cannot detect all conflicts or guarantee no loss |
| Make semantic resolution an explicit decision | [CAND-0004 Explicit Reconciliation](../research/candidates/ExplicitReconciliation.md): comparison produces a new revision and pending work | A version store can supply alternatives without conflict files; domain-appropriate automatic merge may avoid manual review |
Local projection must reconstruct required offline work from locally available inputs.
Initial online server rendering may coexist with that path; it cannot be the only
way to display new offline edits. Choosing a CRDT or sync transport does not by itself
establish persistence, access or acceptable domain outcomes.
## Follow the failure
A and B edit a common revision while disconnected. A acknowledges local save only
after the specified durable transaction. Restart reconstructs that work and its pending
identity. When divergence is detected, preserve alternatives subject to policy and
block obsolete retry work. Selecting a working version does not settle intended content.
When the user resolves it, atomically record the new revision/pending operation and
supersede the old one. An already transmitted operation still needs receiver-side
ancestry/precondition handling. Late receipts must not clear newer pending work.
A lost acknowledgement remains unresolved propagation, not proof of rejection. Retry
only within the receiver contract; expired identity or access needs explicit handling.
Backup must survive the failure you promise to recover from. Another local copy or
synchronized deletion is not an independent restore path.
## Change a constraint
If only A may edit and that restriction actually holds, omit the concurrent-version
branch. Local commit and pending propagation remain. If another writer, external tool
or restored revision violates the assumption, reassess divergence handling.
If the user instead needs offline globally exclusive checkout or approval, stop:
this note-oriented configuration does not provide global exclusivity. Clarify the
acceptance requirement or choose a separately justified domain protocol.
## Implementation and evidence
[Offline mechanism mappings](../technologies/OfflineRecovery.md) locate local storage,
sync metadata and documented conflict-handling options. They do not establish our
atomic storage or retry contracts. The full [VC-02 trace](../research/walkthroughs/VC02-OfflineFieldNotes.md)
records its baseline and assumptions. [M1 review](../research/reviews/M1-SeedReview.md)
remains revise/defer; crash recovery, receiver semantics, human/AT and independent
usefulness evidence are still open.

View file

@ -1,15 +1,58 @@
# TransactionalApplication # Transactional editing sequence
Status: research stub 0.1 research preview · synthetic VC-01 guidance · all linked candidates are hypotheses.
[Start](../START.md) · [Core and extensions](../reference/0.1/Catalog.md)
A generative sequence for applications dominated by forms, workflows, commands, validation and authoritative transactions. ## Starting context
## Research tasks People edit shared records. A designated service must validate and accept writes;
other people or in-flight operations can change a record. Preserve unfinished intent
while the page remains open. Restart persistence is an additional policy/storage choice.
- identify dominant forces, The main forces are consistency, recoverability and continuity versus complexity,
- establish authority assumptions, latency and user review effort. First verify the endpoint's version, authorization,
- determine suitable projection patterns, business-rule and receipt contracts; the names below cannot supply missing guarantees.
- determine synchronization model,
- identify failure modes, ## Decisions and resulting contexts
- derive candidate sequence,
- test against known implementations. | Decision | Candidate and resulting context | Alternative / boundary |
| --- | --- | --- |
| Keep typing separate from the last received record | [CAND-0005 Local Draft State](../research/candidates/LocalDraftState.md): base, proposal and current observation can be compared | Directly bind a cache only where there is no unfinished work; retention/export still follow access policy |
| Reject proposals based on stale assumptions | [CAND-0006 Version-Checked Mutation](../research/candidates/VersionCheckedMutation.md): authority checks expected version with the write; rejection creates a review decision | Commutative or unconditional operations need their own domain contract; do not blindly resend against a newer version |
| Distinguish transport failure from the result of the operation | [CAND-0007 Mutation Outcome Tracking](../research/candidates/MutationOutcomeTracking.md): keep pending, accepted, rejected or unknown evidence for that attempt | Without result lookup or valid deduplication scope/window, stop automatic replay and reconcile; a fresh ID is not a recovery guarantee |
| Refresh affected views after acceptance | [CAND-0008 Invalidate and Reproject](../research/candidates/InvalidateAndReproject.md): acceptance and view freshness remain separate | A complete authoritative result or suitable subscription may avoid refetch; obsolete responses must not replace newer observations or drafts |
These decisions are conditional, not a mandatory dependency chain. Keep shared
acceptance separate from local display. Server and client projection are alternatives
only after their input availability, performance and recovery needs are understood.
## Follow the failure
A reads a record and edits it; B changes that record. A's stale write is rejected:
keep A's draft and compare it with the current record. After the user reconsiders,
a new proposal may be sent. If its response disappears, retain its identity and show
unknown outcome. Resolve that attempt through its verified receipt/replay contract.
Once acceptance is established, refresh affected observations without erasing newer
input. If refreshing fails, show accepted with a stale view, not failed mutation.
Opaque versions are not sortable numbers without an ordering contract. Stopping a
local wait does not reverse a remote effect; compensation is a separate authorized
operation. Invalid access may prohibit retaining the draft. Keyboard/error recovery
must be implemented and checked; this sequence is not accessibility certification.
## Change a constraint
With one authorized writer, cross-user contention disappears, but that writer's
in-flight operations can still race. Outcome uncertainty and refresh remain; version
checks do not automatically become unnecessary. With required offline final approval,
this fixed server-acceptance brief is incompatible: change the domain acceptance
contract or require connectivity. Do not substitute the offline-note sequence silently.
## Implementation and evidence
Use [transactional mechanism mappings](../technologies/TransactionalRecovery.md) to
find API and frontend examples, then verify your actual contracts. The full
[VC-01 trace](../research/walkthroughs/VC01-TransactionalAdministration.md) includes the
plain-language baseline, assumptions and counterfactual. It is development reasoning,
not empirical validation. [M1 review](../research/reviews/M1-SeedReview.md) remains
revise/defer. Independent human usefulness and complete application recurrence are open.

View file

@ -0,0 +1,21 @@
# Offline recovery: mechanism mappings
0.1 research preview. Previously reviewed documentation locates partial mechanisms,
not verified whole-pattern guarantees. Review dates/access limits are retained in
[LocalFirstEvidenceExpansion](../research/reviews/LocalFirstEvidenceExpansion.md).
[Offline sequence](../sequences/LocalFirstApplication.md).
| Decision | Located mechanism | Boundary |
| --- | --- | --- |
| CAND-0002 — local acceptance | Joplin local SQLite storage, E04; local-first motivation E01 | Does not specify our revision-plus-pending atomic commit, acknowledgement/flush or crash contract |
| CAND-0003 — pending propagation | Joplin distinct sync process and per-item progress metadata E05/E06 | Does not verify deduplication, bounded completion or atomic supersession proposed by this candidate |
| CAND-0001 — preserve competing content | Joplin detected-note conflicts E07; Obsidian optional conflict-file mode E08 | Configuration and file-type scope differ; not a universal detection or no-loss guarantee |
| CAND-0004 — decide intended content | Documented manual comparison/recovery E07/E08 | Provenance, accessible interaction and recoverable resolution transaction remain proposed |
| Separate device-loss recovery | Obsidian backup distinction E11/E12 | No restore drill or recovery-point guarantee was executed in this research |
These are separate products and modes, not a prescription to combine them. An
automatic merge may be preferable when domain semantics justify it. The
[authority/projection comparison](../research/reviews/AuthorityProjectionComparison.md)
explains why local availability, replica convergence and accepted domain meaning
must remain distinct. Choose and fault-test a specific storage/receiver pair before
promising the sequence's durability and retry behavior.

View file

@ -0,0 +1,18 @@
# Transactional recovery: mechanism mappings
0.1 research preview. These map previously reviewed mechanisms to candidate decisions,
not complete, interchangeable product implementations. No new source verification was
performed for this mapping; dates and revisions are those in the linked reviews.
[Transactional sequence](../sequences/TransactionalApplication.md).
| Decision | Located mechanism and provenance | What still needs verification |
| --- | --- | --- |
| CAND-0005 — retain unfinished intent | Zulip and Element composer draft paths, pinned source R01/R03 in [FrontendRecoveryImplementations](../research/reviews/FrontendRecoveryImplementations.md) | Complete base/draft/current merge, retention policy, restart and composer-to-operation handoff |
| CAND-0006 — reject a stale proposal | Kubernetes conditional PUT, T01 in [TransactionalEvidenceExpansion](../research/reviews/TransactionalEvidenceExpansion.md); GitLab optional file precondition T02 has different failure semantics | Actual endpoint atomicity and domain checks; do not treat every GitLab 400 as version rejection |
| CAND-0007 — resolve uncertain outcome | Stripe bounded replay identity T03; Element/Matrix echo/retry source R04–R06; [Matrix SDK observation](../research/reviews/MatrixRecoveryExperiment.md) uses synthetic transport | Receiver retention/identity scope, lookup, true server deduplication, cancellation/compensation; these mechanisms are not one assembled stack |
| CAND-0008 — refresh after acceptance | React Router revalidation and concurrency guidance T04/T05 in the transactional review | Read-after-write, obsolescence and preserved drafts in the actual application; client cancellation does not stop server effects |
Select a mechanism only after the application's acceptance and failure contracts are
known. These examples do not require Kubernetes, Stripe or a particular UI framework;
they illustrate different obligations. Combining them is a proposed design, not a
known deployed use. Full-contract recurrence remains unassessed.

View file

@ -0,0 +1,70 @@
"""Reject broken preview contracts before publishing generated references."""
import importlib.util
import json
from pathlib import Path
import shutil
import sys
import pytest
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / 'scripts'))
spec = importlib.util.spec_from_file_location('reference_preview', ROOT / 'scripts/reference_preview.py')
preview = importlib.util.module_from_spec(spec)
spec.loader.exec_module(preview)
@pytest.fixture
def copy(tmp_path):
for name in ('research', 'canon', 'workplans', 'sequences', 'technologies', 'reference'):
shutil.copytree(ROOT / name, tmp_path / name)
shutil.copy(ROOT / 'START.md', tmp_path / 'START.md')
(tmp_path / '.git').symlink_to(ROOT / '.git', target_is_directory=True)
return tmp_path
def mutate(root, edit):
path = root / 'reference/0.1/manifest.json'
data = json.loads(path.read_text())
edit(data)
path.write_text(json.dumps(data))
def test_current_export():
for name, content in preview.build().items():
assert (ROOT / 'reference/0.1' / name).read_text() == content
@pytest.mark.parametrize('field,value', [('target', 'CAND-9999'), ('type', 'magically-guarantees'), ('condition', ''), ('evidence_refs', ['missing.md'])])
def test_bad_relation(copy, field, value):
mutate(copy, lambda m: m['relations'][0].update({field: value}))
with pytest.raises(ValueError):
preview.build(copy)
def test_duplicate_identity(copy):
mutate(copy, lambda m: m['core'].append(m['core'][0]))
with pytest.raises(ValueError):
preview.build(copy)
def test_stale_candidate(copy):
with (copy / 'research/candidates/ConflictCopy.md').open('a') as f:
f.write('\nChanged contract.\n')
with pytest.raises(ValueError, match='Stale candidate'):
preview.build(copy)
def test_escaping_reference(copy):
mutate(copy, lambda m: m['entrypoints'].update(start='/etc/passwd'))
with pytest.raises(ValueError, match='Invalid reference'):
preview.build(copy)
def test_missing_metadata(copy):
path = copy / 'reference/0.1/manifest.json'
data = json.loads(path.read_text())
del data['relations'][0]['rationale']
path.write_text(json.dumps(data))
with pytest.raises((ValueError, KeyError)):
preview.build(copy)

View file

@ -14,7 +14,7 @@ reviewed_against_commit: "c161369ad58782ff0a13429c61cc7c8efc36e33d"
owner: codex owner: codex
topic_slug: canon topic_slug: canon
created: "2026-09-23" created: "2026-09-23"
updated: "2026-09-26" updated: "2026-09-27"
state_hub_workstream_id: "3350b7f2-375a-54e8-8f7c-3bf7c7c3af71" state_hub_workstream_id: "3350b7f2-375a-54e8-8f7c-3bf7c7c3af71"
--- ---
@ -48,7 +48,7 @@ Done when schema and template agree and a worked example resolves every referenc
```task ```task
id: FEP-WP-0002-T02 id: FEP-WP-0002-T02
status: progress status: done
priority: high priority: high
state_hub_task_id: "0eb32b3e-07d6-5e16-a735-7d75d9dace83" state_hub_task_id: "0eb32b3e-07d6-5e16-a735-7d75d9dace83"
``` ```
@ -334,3 +334,16 @@ See research/reviews/SharedGuidanceRevision.md. Frozen pilot files and scores re
unchanged; historical corpus hashes remain reproducible. No new evaluation or M1 unchanged; historical corpus hashes remain reproducible. No new evaluation or M1
completion. WP-0003 T01 now owns a bounded exploratory navigation/rendering expansion; completion. WP-0003 T01 now owns a bounded exploratory navigation/rendering expansion;
independent-human validation and a fresh-scenario replication remain open here. independent-human validation and a fresh-scenario replication remain open here.
## Consolidated source and seed review — 2026-09-27
[SourceReadiness-0.1](../research/reviews/SourceReadiness-0.1.md) completes T02's
original documentary traceability deliverable. Later storage/receiver fault-validation
obligations are transferred to explicit WP-0003 T04, origin WP-0002 T02; independent
uses continue under WP-0003 T01 and human/usefulness under this T03. No evidence
obligation is declared satisfied merely by transfer. Workplan remains active.
[M1-SeedReview](../research/reviews/M1-SeedReview.md) records pass/revise/defer criteria.
The eight-record editorial core is suitable for a qualified research preview; M1
remains revise/defer and T03 progress. WP-0007 packages it without canonical admission,
independent-human claims or fresh held-out evaluation.

View file

@ -285,3 +285,28 @@ questions. Select the application by the needed evidence; retain contrary/unknow
paths. Existing Zulip auxiliary continuation residual stays open; local navigation paths. Existing Zulip auxiliary continuation residual stays open; local navigation
fixture remains paused. WP-0002 T03 retains independent usefulness review; WP-0003 fixture remains paused. WP-0002 T03 retains independent usefulness review; WP-0003
T02/T03 gates and WP-0006 T03 review dates/comparable measurement remain open. T02/T03 gates and WP-0006 T03 review dates/comparable measurement remain open.
## Validate recovery storage and receiver assumptions
```task
id: FEP-WP-0003-T04
status: todo
priority: medium
```
Residual origin: FEP-WP-0002-T02, handed off by WP-0007's source-readiness review.
Before stronger guarantees, select/pin a concrete storage and receiver pair; verify
acknowledgement/transaction semantics, interrupted commit/restart and pending-operation
supersession, plus receiver identity retention, replay deduplication and stale ancestry
rejection under lost acknowledgement. Preregister bounded tests; retain failures.
Record which full-contract uses remain unknown rather than infer them from mechanism
success. Existing Matrix synthetic receiver is not real-server proof; device-loss
restoration needs its own explicit backup scope. No new execution is implied by this
handoff. Human/AT/usability stay under WP-0002 T03 / WP-0003 T02.
## Preview ontology review — 2026-09-27
[PreviewOntology-0.1](../research/reviews/PreviewOntology-0.1.md) retains the eight-record
core and separate conditional Conflict Copy / Explicit Reconciliation retrieval.
No mandatory requires edge, general recurrence or M2 closure. T03 remains todo for
the full M2 review; this bounded preview assessment is preparation only.

View file

@ -4,7 +4,7 @@ type: workplan
title: "Package a useful language 0.1 research preview" title: "Package a useful language 0.1 research preview"
domain: infotech domain: infotech
repo: frontend-patterns repo: frontend-patterns
status: proposed status: finished
owner: codex owner: codex
topic_slug: canon topic_slug: canon
created: "2026-09-27" created: "2026-09-27"
@ -24,7 +24,7 @@ publication version 0.1 is separate from PatternSchema 0.1 and evidence maturity
```task ```task
id: FEP-WP-0007-T01 id: FEP-WP-0007-T01
status: todo status: done
priority: high priority: high
state_hub_task_id: "3417824a-1416-58d0-841b-7ec0ccbb7021" state_hub_task_id: "3417824a-1416-58d0-841b-7ec0ccbb7021"
``` ```
@ -45,7 +45,7 @@ model review. Keep source assessment ownership in WP-0002, ontology in WP-0003.
```task ```task
id: FEP-WP-0007-T02 id: FEP-WP-0007-T02
status: todo status: done
priority: high priority: high
state_hub_task_id: "e71c2f74-dbea-5ab0-ae8c-4b247ec0f38f" state_hub_task_id: "e71c2f74-dbea-5ab0-ae8c-4b247ec0f38f"
``` ```
@ -65,7 +65,7 @@ claim for the remaining cases. No standalone frontend application required.
```task ```task
id: FEP-WP-0007-T03 id: FEP-WP-0007-T03
status: todo status: done
priority: medium priority: medium
state_hub_task_id: "94010e3e-eddf-56c7-996a-fc70d7c56e38" state_hub_task_id: "94010e3e-eddf-56c7-996a-fc70d7c56e38"
``` ```
@ -87,7 +87,7 @@ execution is optional if deterministic/manual checks answer the reference questi
```task ```task
id: FEP-WP-0007-T04 id: FEP-WP-0007-T04
status: todo status: done
priority: high priority: high
state_hub_task_id: "a554e327-972b-580b-8dec-151d7a38bda6" state_hub_task_id: "a554e327-972b-580b-8dec-151d7a38bda6"
``` ```
@ -103,3 +103,18 @@ release claim from this proposed plan alone. Existing research work stays open u
its own criteria are met; before finishing this workplan, hand residual release issues its own criteria are met; before finishing this workplan, hand residual release issues
to explicit live tasks with origin references. The empirical owners remain WP-0002 to explicit live tasks with origin references. The empirical owners remain WP-0002
T03, WP-0003 T01/T02/T03, WP-0004 T01/T02/T03 and WP-0006 T03. T03, WP-0003 T01/T02/T03, WP-0004 T01/T02/T03 and WP-0006 T03.
## Completion — 2026-09-27
The [release review](../reference/0.1/ReleaseReview.md) passes the bounded preview
contract. START.md, both core sequences, mechanism mappings, the seventeen-record
catalog and pinned candidate export are complete. Eight disclosed development cases
include incompatible constraints, missing context and unsupported needs. No live
inference, independent human review, canonical admission or M1/M2/M3 pass is claimed.
Validation: 44 tests passed (9 preview, 2 schema, 33 bench/admission); synthetic
bench plan, export freshness, evolution and classification checks passed. Changed
Markdown relative file links and whitespace checked. Existing empirical obligations
remain in the manifest's live task references. WP-0003 T04 receives storage/receiver
validation with explicit origin FEP-WP-0002-T02. No additional packaging residual
was identified; ongoing research ownership remains unchanged.