Close local review loose ends and record blocked workplan gates
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0e241-8285-7a63-8c0c-51c9cb824dc3
This commit is contained in:
parent
bcdb02323c
commit
7295172f1e
20 changed files with 510 additions and 95 deletions
6
SCOPE.md
6
SCOPE.md
|
|
@ -81,7 +81,7 @@ for current counts and evidence limits; [REVIEW.md](REVIEW.md) preserves the ini
|
|||
[WP-0002](workplans/FEP-WP-0002-seed-language-validation.md) owns seed evidence,
|
||||
connected-corpus validation and M1. [WP-0003](workplans/FEP-WP-0003-contrasting-schools.md)
|
||||
owns contrasting streams, broader walkthroughs, ontology decisions and M2.
|
||||
[WP-0004](workplans/FEP-WP-0004-reference-surface.md) is proposed follow-up for graph,
|
||||
[WP-0004](workplans/FEP-WP-0004-reference-surface.md) is blocked follow-up for graph,
|
||||
held-out retrieval and real-repository applicability, subject to its recorded gates.
|
||||
[WP-0006](workplans/FEP-WP-0006-language-evolution.md) owns ongoing learning visibility,
|
||||
review dates and comparable-cycle measurement. Actionable work stays in workplans;
|
||||
|
|
@ -101,7 +101,9 @@ The user-directed [WP-0008](workplans/FEP-WP-0008-use-driven-improvement.md) con
|
|||
qualified reference use to evidence-bearing consumer receipts and bounded autonomous
|
||||
improvement. It owns discovery, instrumentation and execution integration; monthly
|
||||
human review owns operating-policy decisions. The capability entry is prepared;
|
||||
hosted registration, automatic collection and unattended execution remain unverified.
|
||||
automatic collection and three activity-core reporting schedules are operational.
|
||||
Hosted consumer integration and admitted pattern-editing execution remain blocked;
|
||||
there are no enrolled consumers yet.
|
||||
This operational loop can improve draft guidance without claiming M1/M2/M3 or
|
||||
independent-human validation. See the [operating design](docs/ReuseAndImprovementLoop.md).
|
||||
|
||||
|
|
|
|||
42
history/2026-09-27-workplan-closeout.md
Normal file
42
history/2026-09-27-workplan-closeout.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Workplan closeout audit — 2026-09-27
|
||||
|
||||
User requested implementation of finishable local loose ends, no unnecessary new
|
||||
work records, blocked states for blocked plans, then commit and sync. All eight
|
||||
repository workplans were assessed; no new task or workplan was created. Historical
|
||||
progress sections remain historical; the final closeout section gives current state.
|
||||
|
||||
| Workplan | Result | Completed here / remaining acceptance |
|
||||
| --- | --- | --- |
|
||||
| FEP-WP-0001 | finished, unchanged | All bootstrap tasks already done |
|
||||
| FEP-WP-0002 | blocked | T03 waits for independent usefulness and validated seed-case evidence; existing M1 review is revise/defer |
|
||||
| FEP-WP-0003 | blocked | T03 complete: full M2 editorial/ontology review, all seventeen candidates and ten cases. T02 waits on M1; T01 source/reproduction work and T04 real storage/receiver investigation remain unfinished |
|
||||
| FEP-WP-0004 | blocked | T01 waits on M1; T02/T03 wait on M2. Preview output cannot replace canonical/held-out/empirical acceptance |
|
||||
| FEP-WP-0005 | finished, unchanged | Bench setup already delivered; adapter regression checks passed |
|
||||
| FEP-WP-0006 | active | T03 review-date reconciliation complete; comparable-window assessment still needs useful prospective cycles under a shared protocol |
|
||||
| FEP-WP-0007 | finished, unchanged | Published 0.1 preview preserved byte-for-byte |
|
||||
| FEP-WP-0008 | blocked | T01 frozen-release isolation complete; hosted consumer integration, producer hook, real linked outcomes and admitted executor remain required |
|
||||
|
||||
Local implementation adds a version/current registry and validates old publications
|
||||
from their pinned Git objects, separately from live research validation. Regression
|
||||
checks cover legitimate new research, stale live profiles and tampered publication
|
||||
inputs. Fourteen unknown substantive-review dates now have original-artifact
|
||||
provenance; the three existing dates are corroborated. Validation requires scoped
|
||||
provenance and rejects dates later than their metadata assessment. Historical
|
||||
baseline and published version are unchanged.
|
||||
|
||||
The [M2 review](../research/reviews/M2-CoverageReview.md) closes delivery of the
|
||||
editorial assessment with an explicit revise/defer result; it does not close M2.
|
||||
The [date reconciliation](../research/reviews/ReviewDateReconciliation.md) adds no
|
||||
learning cycle or fabricated effort. Six incomparable prospective groups cannot
|
||||
satisfy the three-comparable-cycle trigger.
|
||||
|
||||
Activity-core reporting and collection are operational with three enabled schedules;
|
||||
no consumer is enrolled and no pattern-edit executor is admitted. Existing external
|
||||
owners remain ACTIVITY-WP-0041 T03, GLAS-WP-0012 and HFACT-WP-0001. The October 1
|
||||
monthly reporting obligation remains, including empty/blocked evidence if unchanged.
|
||||
No schedule, external deployment or sibling repository was changed by this audit.
|
||||
|
||||
Verification: schema tests, bench adapter tests and synthetic bench plan; reference
|
||||
and evolution tests; reference/evolution/classification consistency checks; changed
|
||||
Markdown links and whitespace. The plan command makes no provider calls. These
|
||||
checks validate repository contracts, not independent usefulness or live execution.
|
||||
24
reference/README.md
Normal file
24
reference/README.md
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# Published reference versions
|
||||
|
||||
[releases.json](releases.json) selects the current qualified preview (`0.1`) and pins
|
||||
its packaging commit and manifest digest. Consumers record that version, commit and
|
||||
digest in their use receipt. Candidate prose and other corpus inputs are resolved at
|
||||
the manifest's `corpus_revision`; packaging documents and evidence locators are
|
||||
resolved at the packaging revision. Relative links viewed on a moving branch can
|
||||
show newer research: use a checkout or commit-specific source URL for a pinned read.
|
||||
|
||||
Run `python3 scripts/reference_preview.py --check --version 0.1` to validate a
|
||||
published version, or `make reference-check` for the current pointer. The local Git
|
||||
object database must contain both pinned revisions; a shallow clone must fetch that
|
||||
history first. Missing objects fail validation rather than substituting live files.
|
||||
|
||||
`make evolution-check classification-check` separately validates current research.
|
||||
A legitimate candidate/profile revision must pass those checks but must neither
|
||||
rewrite nor invalidate the older export. Published manifest, development cases and
|
||||
release documents are checked against their original packaging commit. Generated
|
||||
outputs must match the pinned inputs. The registry is a reviewed publication index,
|
||||
not a signature or an independent trust root; changing a release pin requires review.
|
||||
|
||||
A future publication gets a new directory and registry entry. Move `current` only
|
||||
once that publication is verified. The frozen preview remains a research hypothesis
|
||||
catalog, not canonical admission or a held-out retrieval evaluation.
|
||||
10
reference/releases.json
Normal file
10
reference/releases.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"schema_version": 1,
|
||||
"current": "0.1",
|
||||
"releases": {
|
||||
"0.1": {
|
||||
"packaging_revision": "53bb65e7a6eb1a2fa933e5b41dfa5a0e7409d14d",
|
||||
"manifest_sha256": "d7f60ac04817820b805265d1d747cfbb8d2269b7bd6244cd9d3e8d2fd44ef0b8"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -22,7 +22,7 @@ Independent human profile reviews: 0/17. Full-contract independent-use counts un
|
|||
|
||||
## Change since baseline
|
||||
|
||||
Baseline baseline-2026-09-26; source revision `f273a190f0e08b8cfe0bb7260d0e7d889f1c090a`. Added: 0; removed: 0; shared candidates with changed content: 3; changed evidence/review assessments: 3; maturity transitions: 0.
|
||||
Baseline baseline-2026-09-26; source revision `f273a190f0e08b8cfe0bb7260d0e7d889f1c090a`. Added: 0; removed: 0; shared candidates with changed content: 3; changed evidence/review assessments: 17; maturity transitions: 0.
|
||||
|
||||
The shared cohort is compared separately from additions. Changed text or evidence counts are not learning gains.
|
||||
|
||||
|
|
@ -111,7 +111,7 @@ One bounded question counts at most one consequential outcome. Corroboration and
|
|||
|
||||
Profile hashes and local references passed validation when this report was generated. That checks traceability, not source truth or external URL freshness.
|
||||
|
||||
Profiles with unknown last substantive review date: 14. Assessment dates record this metadata review, not a new substantive validation. No age-based freshness claim is available for those profiles.
|
||||
Profiles with unknown last substantive review date: 0. Assessment dates record this metadata review, not a new substantive validation. Recorded substantive dates identify scoped author-model reviews, not renewed empirical or external-source freshness.
|
||||
|
||||
Coherence metrics (ambiguous selections, unjustified relations and overlap resolved): not measured. Conflict Copy / Explicit Reconciliation overlap remains an explicit open question.
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,10 @@ The baseline is an author-model metadata assessment; no independent human review
|
|||
implied. `assessed_at` does not reset `last_substantive_review_date`: the latter is
|
||||
unknown until the evidence review's date and scope have been reconciled. Open limits
|
||||
include counterexamples and contexts still untested. Supersession is explicit.
|
||||
Current profiles require `substantive_review_ref` and `substantive_review_scope` for
|
||||
a known substantive date. The [reconciliation](../reviews/ReviewDateReconciliation.md)
|
||||
records original evidence-review dates; a synthesis or metadata refresh does not
|
||||
renew them. Historical snapshots retain their original schema-v1 assessments.
|
||||
|
||||
## Closing a bounded cycle
|
||||
|
||||
|
|
@ -73,7 +77,7 @@ Snapshot creation pins committed candidate content and refuses to overwrite a fi
|
|||
| Dimension | Observation to collect | Current limit |
|
||||
| --- | --- | --- |
|
||||
| Applicability | Reviewed decisions and failure contexts across the ten validation cases | Four synthetic/provisional walkthroughs; six planned |
|
||||
| Trustworthiness | Scoped evidence, independent full-contract uses, unresolved contradictions, provenance and review age | Independent recurrence and substantive-review ages unassessed |
|
||||
| Trustworthiness | Scoped evidence, independent full-contract uses, unresolved contradictions, provenance and review age | Independent recurrence unassessed; dated evidence-review provenance reconciled |
|
||||
| Usefulness | Constraint misses, unsupported recommendations, decision quality and time against equivalent prose | Frozen small model-reviewed pilot; human gate open |
|
||||
| Coherence | Ambiguous selections, redundant candidates and unjustified relations found/resolved in reviews | No measured baseline; reconciliation/copy overlap remains open |
|
||||
| Maintainability | Reference checks, overdue review obligations, remaining gaps and effort per revision | Local links/hash checks automated; age/backlog estimates not yet measured |
|
||||
|
|
|
|||
|
|
@ -26,11 +26,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/M1-SeedReview.md",
|
||||
"substantive_review_scope": "Editorial review of the connected core; M1 revise/defer."
|
||||
},
|
||||
"gaps": [
|
||||
"Authorized retention and export are separate decisions.",
|
||||
|
|
@ -62,11 +64,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/M1-SeedReview.md",
|
||||
"substantive_review_scope": "Editorial review of the connected core; M1 revise/defer."
|
||||
},
|
||||
"gaps": [
|
||||
"No executed storage crash or backup test.",
|
||||
|
|
@ -92,11 +96,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/M1-SeedReview.md",
|
||||
"substantive_review_scope": "Editorial review of the connected core; M1 revise/defer."
|
||||
},
|
||||
"gaps": [
|
||||
"Atomic supersession and retry contract proposed, not storage-tested."
|
||||
|
|
@ -127,11 +133,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/M1-SeedReview.md",
|
||||
"substantive_review_scope": "Editorial review of the connected core; M1 revise/defer."
|
||||
},
|
||||
"gaps": [
|
||||
"Atomic resolution/provenance UI not executed.",
|
||||
|
|
@ -175,11 +183,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/M1-SeedReview.md",
|
||||
"substantive_review_scope": "Editorial review of the connected core; M1 revise/defer."
|
||||
},
|
||||
"gaps": [
|
||||
"No native-unload, crash, multiple-tab or access-revocation guarantee.",
|
||||
|
|
@ -217,11 +227,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/M1-SeedReview.md",
|
||||
"substantive_review_scope": "Editorial review of the connected core; M1 revise/defer."
|
||||
},
|
||||
"gaps": [
|
||||
"Distributed atomicity and complete frontend recurrence remain unverified.",
|
||||
|
|
@ -271,11 +283,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/M1-SeedReview.md",
|
||||
"substantive_review_scope": "Editorial review of the connected core; M1 revise/defer."
|
||||
},
|
||||
"gaps": [
|
||||
"No production server deduplication or complete retention-window guarantee.",
|
||||
|
|
@ -301,11 +315,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/M1-SeedReview.md",
|
||||
"substantive_review_scope": "Editorial review of the connected core; M1 revise/defer."
|
||||
},
|
||||
"gaps": [
|
||||
"Read-your-write and acceptance/refresh distinction still proposed.",
|
||||
|
|
@ -338,19 +354,19 @@
|
|||
"kind": "runtime",
|
||||
"family": "htmx in authored public-catalog fixture",
|
||||
"ref": "research/reviews/NavigationHistoryExperiment.md",
|
||||
"scope": "NH01–NH06: native/enhanced routes, history hit/miss, actual browser cache ordering and missing-Vary negative control; explicit Node validator checks separate."
|
||||
"scope": "NH01\u2013NH06: native/enhanced routes, history hit/miss, actual browser cache ordering and missing-Vary negative control; explicit Node validator checks separate."
|
||||
},
|
||||
{
|
||||
"kind": "runtime",
|
||||
"family": "htmx in authored public-catalog fixture",
|
||||
"ref": "research/reviews/NavigationOwnershipExperiment.md",
|
||||
"scope": "NO01–NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
|
||||
"scope": "NO01\u2013NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
|
||||
},
|
||||
{
|
||||
"kind": "static-code",
|
||||
"family": "Zulip",
|
||||
"ref": "research/reviews/ZulipNavigationSourceStudy.md",
|
||||
"scope": "ZN01–ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
|
||||
"scope": "ZN01\u2013ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
|
||||
}
|
||||
],
|
||||
"independent_full_contract_uses": null,
|
||||
|
|
@ -359,7 +375,9 @@
|
|||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": "2026-09-27"
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/ZulipNavigationSourceStudy.md",
|
||||
"substantive_review_scope": "Static navigation contrast; partial mechanisms, not independent full-contract use."
|
||||
},
|
||||
"gaps": [
|
||||
"Independent application recurrence and human/AT validation remain unverified.",
|
||||
|
|
@ -393,25 +411,25 @@
|
|||
"kind": "runtime",
|
||||
"family": "htmx in authored public-catalog fixture",
|
||||
"ref": "research/reviews/NavigationHistoryExperiment.md",
|
||||
"scope": "NH01–NH06: native/enhanced routes, history hit/miss, actual browser cache ordering and missing-Vary negative control; explicit Node validator checks separate."
|
||||
"scope": "NH01\u2013NH06: native/enhanced routes, history hit/miss, actual browser cache ordering and missing-Vary negative control; explicit Node validator checks separate."
|
||||
},
|
||||
{
|
||||
"kind": "runtime",
|
||||
"family": "htmx in authored public-catalog fixture",
|
||||
"ref": "research/reviews/NavigationFocusExperiment.md",
|
||||
"scope": "NF01–NF06: Tab/Enter navigation, raw versus authored focus/status policy, held-response ownership and background update; DOM evidence only, not AT speech."
|
||||
"scope": "NF01\u2013NF06: Tab/Enter navigation, raw versus authored focus/status policy, held-response ownership and background update; DOM evidence only, not AT speech."
|
||||
},
|
||||
{
|
||||
"kind": "runtime",
|
||||
"family": "htmx in authored public-catalog fixture",
|
||||
"ref": "research/reviews/NavigationOwnershipExperiment.md",
|
||||
"scope": "NO01–NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
|
||||
"scope": "NO01\u2013NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
|
||||
},
|
||||
{
|
||||
"kind": "static-code",
|
||||
"family": "Zulip",
|
||||
"ref": "research/reviews/ZulipNavigationSourceStudy.md",
|
||||
"scope": "ZN01–ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
|
||||
"scope": "ZN01\u2013ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
|
||||
}
|
||||
],
|
||||
"independent_full_contract_uses": null,
|
||||
|
|
@ -420,7 +438,9 @@
|
|||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": "2026-09-27"
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/ZulipNavigationSourceStudy.md",
|
||||
"substantive_review_scope": "Static navigation contrast; partial mechanisms, not independent full-contract use."
|
||||
},
|
||||
"gaps": [
|
||||
"Independent application recurrence and human/AT validation remain unverified.",
|
||||
|
|
@ -447,11 +467,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-26",
|
||||
"substantive_review_ref": "research/reviews/PatternBreadthExpansion.md",
|
||||
"substantive_review_scope": "Source normalization, decision probes and counterexamples."
|
||||
},
|
||||
"gaps": [
|
||||
"No executed model/view integration or independently reviewed full-contract use."
|
||||
|
|
@ -476,11 +498,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-26",
|
||||
"substantive_review_ref": "research/reviews/PatternBreadthExpansion.md",
|
||||
"substantive_review_scope": "Source normalization, decision probes and counterexamples."
|
||||
},
|
||||
"gaps": [
|
||||
"Snapshot coherence and changed-locale cache test still planned."
|
||||
|
|
@ -511,11 +535,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-26",
|
||||
"substantive_review_ref": "research/reviews/FeatureDeploymentBoundaries.md",
|
||||
"substantive_review_scope": "Static feature/import versus release-boundary assessment."
|
||||
},
|
||||
"gaps": [
|
||||
"Build/import enforcement not executed.",
|
||||
|
|
@ -541,11 +567,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-26",
|
||||
"substantive_review_ref": "research/reviews/PatternBreadthExpansion.md",
|
||||
"substantive_review_scope": "Source normalization, decision probes and counterexamples."
|
||||
},
|
||||
"gaps": [
|
||||
"No executed island fixture, performance comparison or complete recurrence study."
|
||||
|
|
@ -576,11 +604,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-26",
|
||||
"substantive_review_ref": "research/reviews/BoundaryRecoveryExperiment.md",
|
||||
"substantive_review_scope": "Authored runtime fixture and failure-class interpretation."
|
||||
},
|
||||
"gaps": [
|
||||
"Synthetic host, not full application recurrence.",
|
||||
|
|
@ -619,19 +649,19 @@
|
|||
"kind": "runtime",
|
||||
"family": "htmx in authored public-catalog fixture",
|
||||
"ref": "research/reviews/NavigationFocusExperiment.md",
|
||||
"scope": "NF01–NF06: Tab/Enter navigation, raw versus authored focus/status policy, held-response ownership and background update; DOM evidence only, not AT speech."
|
||||
"scope": "NF01\u2013NF06: Tab/Enter navigation, raw versus authored focus/status policy, held-response ownership and background update; DOM evidence only, not AT speech."
|
||||
},
|
||||
{
|
||||
"kind": "runtime",
|
||||
"family": "htmx in authored public-catalog fixture",
|
||||
"ref": "research/reviews/NavigationOwnershipExperiment.md",
|
||||
"scope": "NO01–NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
|
||||
"scope": "NO01\u2013NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
|
||||
},
|
||||
{
|
||||
"kind": "static-code",
|
||||
"family": "Zulip",
|
||||
"ref": "research/reviews/ZulipNavigationSourceStudy.md",
|
||||
"scope": "ZN01–ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
|
||||
"scope": "ZN01\u2013ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
|
||||
}
|
||||
],
|
||||
"independent_full_contract_uses": null,
|
||||
|
|
@ -640,7 +670,9 @@
|
|||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": "2026-09-27"
|
||||
"last_substantive_review_date": "2026-09-27",
|
||||
"substantive_review_ref": "research/reviews/ZulipNavigationSourceStudy.md",
|
||||
"substantive_review_scope": "Static navigation contrast; partial mechanisms, not independent full-contract use."
|
||||
},
|
||||
"gaps": [
|
||||
"One implementation family; repeated trials are not independent uses.",
|
||||
|
|
@ -686,11 +718,13 @@
|
|||
],
|
||||
"independent_full_contract_uses": null,
|
||||
"review": {
|
||||
"assessed_at": "2026-09-26",
|
||||
"assessed_at": "2026-09-27",
|
||||
"reviewer": "Codex",
|
||||
"role": "author-model",
|
||||
"independent_human": false,
|
||||
"last_substantive_review_date": null
|
||||
"last_substantive_review_date": "2026-09-26",
|
||||
"substantive_review_ref": "research/reviews/ActivationConflictsAndReload.md",
|
||||
"substantive_review_scope": "Authored activation/reload experiment and guarantee limits."
|
||||
},
|
||||
"gaps": [
|
||||
"No upstream deployment or real team/release-independence validation.",
|
||||
|
|
|
|||
|
|
@ -332,9 +332,9 @@ Workplan files own execution status. This table defines intended outcomes.
|
|||
| Phase | Work record | Deliverable and exit criterion |
|
||||
| --- | --- | --- |
|
||||
| M0 — Scaffold | FEP-WP-0001, finished | Intent, repository structure and State Hub integration exist. |
|
||||
| M1 — Seed investigation | [FEP-WP-0002](../../workplans/FEP-WP-0002-seed-language-validation.md), active | Reconciled schema; first source case and local-first contrast; 6–10 connected draft patterns; two completed case walkthroughs with evidence and counterexamples. |
|
||||
| M2 — Broaden and challenge | [FEP-WP-0003](../../workplans/FEP-WP-0003-contrasting-schools.md), active (bounded exploration; M1 open) | Evidence from all six streams; coverage matrix for all ten application types; revise, merge or reject candidates; complete at least four further contrasting cases. |
|
||||
| M3 — Retrieval and empirical use | [FEP-WP-0004](../../workplans/FEP-WP-0004-reference-surface.md), proposed | Validated metadata and graph export; held-out retrieval cases; at least two real repository studies tied to revisions; publish limitations. |
|
||||
| M1 — Seed investigation | [FEP-WP-0002](../../workplans/FEP-WP-0002-seed-language-validation.md), blocked (independent evidence) | Reconciled schema; first source case and local-first contrast; 6–10 connected draft patterns; two completed case walkthroughs with evidence and counterexamples. |
|
||||
| M2 — Broaden and challenge | [FEP-WP-0003](../../workplans/FEP-WP-0003-contrasting-schools.md), blocked (M1 open; bounded exploration permitted) | Evidence from all six streams; coverage matrix for all ten application types; revise, merge or reject candidates; complete at least four further contrasting cases. |
|
||||
| M3 — Retrieval and empirical use | [FEP-WP-0004](../../workplans/FEP-WP-0004-reference-surface.md), blocked (M1/M2 prerequisites) | Validated metadata and graph export; held-out retrieval cases; at least two real repository studies tied to revisions; publish limitations. |
|
||||
|
||||
M1 does not require a large catalog. Six to ten patterns is a working scope cap,
|
||||
not a maturity score. Expand toward the original 20–30 candidate ambition only
|
||||
|
|
|
|||
118
research/reviews/M2-CoverageReview.md
Normal file
118
research/reviews/M2-CoverageReview.md
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
# M2 coverage and ontology review
|
||||
|
||||
Reviewed 2026-09-27 by Codex, author-model, under FEP-WP-0003 T03.
|
||||
**M2 result: revise/defer; not passed.** This completes the current editorial review,
|
||||
not the evidence gate. It assesses all seventeen candidates and all ten case briefs
|
||||
against the [research program](../plan/ResearchProgram.md). No new application tests,
|
||||
independent review, source retrieval or prospective learning cycle was performed.
|
||||
|
||||
## Gate assessment
|
||||
|
||||
| M2 criterion | Assessment | Basis and remaining owner |
|
||||
| --- | --- | --- |
|
||||
| M1 prerequisite | blocked | [M1 review](M1-SeedReview.md) is revise/defer; WP-0002 T03 retains independent usefulness, validated seed cases and quality limits |
|
||||
| Evidence from all six streams | partial | Documentary coverage exists in A–F; mechanism tests and source inspections have unequal scope. Full-contract independent uses remain unassessed; WP-0003 T01 |
|
||||
| Coverage matrix for ten application types | delivered, with gaps | Matrix below distinguishes prepared reasoning from validated coverage; planned cases have no completion credit |
|
||||
| Candidate and relation dispositions | delivered, provisional | Seventeen dispositions below; conditional relations remain proposals, no canonical admission |
|
||||
| Four further completed contrasting cases | unmet | VC-03/06 provisional; VC-04/05 planned. WP-0003 T02 retains completion after M1 |
|
||||
|
||||
## Six-stream evidence assessment
|
||||
|
||||
The [coverage inventory](NavigationCoverage.md), [breadth review](PatternBreadthExpansion.md)
|
||||
and [current profiles](../evolution/profiles.json) provide the detailed locators.
|
||||
Counts of files, documents, browser rows or repeated trials do not count independent uses.
|
||||
|
||||
| Stream | Available evidence | Missing coverage / decision |
|
||||
| --- | --- | --- |
|
||||
| A — historical GUI architecture | Fowler documentary contrast, Presentation Model normalization and synthetic probes | Retain view/model separation as a hypothesis; no executed independent whole-contract presentation use |
|
||||
| B — web navigation and hypermedia | htmx history/cache, focus and completion-ownership fixtures; pinned Zulip navigation source contrast | Authored fixture and static application paths are distinct; offline availability, auxiliary continuations, lifecycle and independent accessible use remain unresolved |
|
||||
| C — rendering and execution | Astro/SvelteKit documentary mechanisms; authority/projection comparison separates placement from acceptance | Selective activation is plausible; no island performance comparison or broad streaming/resumability validation |
|
||||
| D — state authority and synchronization | Transactional/local-first sources, Zulip acceptance/projection source study, Matrix SDK with synthetic receiver | Client mechanisms do not establish real receiver deduplication, durable commit/restart or backup. WP-0003 T04 retains those tests |
|
||||
| E — composition and organization | Pinned feature-sliced and microfrontend example inspection; native-module activation/rollback and conflict/reload fixtures | Source organization, artifact publication and session transition differ; no independent team/deployment or distributed-store guarantee |
|
||||
| F — quality patterns | React failure-class fixture, Radix dismissal/focus experiments, navigation focus contrast | DOM observations do not validate assistive-technology speech, human usability, privacy/security boundaries or general performance |
|
||||
|
||||
The latest [acceptance/projection study](ZulipAcceptanceProjection.md) retains
|
||||
response/event ordering and reopened-edit ownership as unknown. Its proposed next
|
||||
reproduction remains WP-0003 T01; this review does not infer a defect from callbacks.
|
||||
|
||||
## Application coverage matrix
|
||||
|
||||
States agree with [context.json](../evolution/context.json). “Partial” below means
|
||||
relevant reasoning exists, not that the case has passed the required walkthrough.
|
||||
|
||||
| Case | State / evidence | Unresolved coverage |
|
||||
| --- | --- | --- |
|
||||
| VC-01 transactional administration | Partial: [synthetic draft](../walkthroughs/VC01-TransactionalAdministration.md), core recovery candidates | Independent decision usefulness, actual write/receipt semantics, keyboard recovery |
|
||||
| VC-02 offline field notes | Partial: [synthetic draft](../walkthroughs/VC02-OfflineFieldNotes.md), local commit/propagation/conflict sequence | Real storage restart/commit, receiver identity lifetime, device-loss backup and retention scope |
|
||||
| VC-03 content publication | Partial: [provisional walkthrough](../walkthroughs/VC03-ContentPublication.md), navigation/history/focus fixtures | Offline-reading branch, interrupted enhancement, independent human/AT review |
|
||||
| VC-04 collaborative editor | Unresolved: [brief](../plan/ValidationCases.md) only | Durable changes versus presence, reconnect/undo and authorization changes; no completed trace |
|
||||
| VC-05 real-time dashboard | Unresolved: [brief](../plan/ValidationCases.md) only | Subscription lifetime, staleness and bounded overload; no completed trace |
|
||||
| VC-06 microfrontend estate | Partial: [provisional walkthrough](../walkthroughs/VC06-MicrofrontendEstate.md), feature release fixtures | Real operational independence, retention/support policy and independent case review |
|
||||
| VC-07 storefront | Unresolved: [brief](../plan/ValidationCases.md); catalog navigation and transactional hypotheses are leads | No integrated cart/price/authoritative-checkout decision trace |
|
||||
| VC-08 SaaS workspace | Unresolved: [brief](../plan/ValidationCases.md); presentation/derived-state hypotheses are leads | No integrated dense-interaction/long-session case or coherence test |
|
||||
| VC-09 local-first personal tool | Partial conceptual overlap with VC-02; [brief](../plan/ValidationCases.md) remains planned | Privacy, optional synchronization and backup/restore have no dedicated completed case |
|
||||
| VC-10 mobile web | Unresolved: [brief](../plan/ValidationCases.md); persistence/reload hypotheses are leads | Constrained-memory startup, interrupted sessions and mobile recovery lack a dedicated completed case |
|
||||
|
||||
## Candidate dispositions and counterexamples
|
||||
|
||||
“Retain” means retain a qualified draft hypothesis. No candidate has sufficient new
|
||||
evidence here for promotion, merge or deletion. Rejecting a universal claim is not
|
||||
rejecting the useful conditional pattern. No relation is made mandatory merely to
|
||||
connect the graph. The [preview ontology review](PreviewOntology-0.1.md) supplies the
|
||||
core separation rationale; the breadth and runtime reviews above supply extensions.
|
||||
|
||||
| Candidate | Disposition | Distinction / counterexample that constrains the language |
|
||||
| --- | --- | --- |
|
||||
| CAND-0001 Conflict Copy | Retain separately from reconciliation | Preserving divergent intent need not include a user resolution workflow; authorized retention and privacy still constrain preservation |
|
||||
| CAND-0002 Local Commit Boundary | Retain | Locally accepted durable intent differs from editable draft and remote acceptance; memory-only feedback is a counterexample to durability |
|
||||
| CAND-0003 Pending Synchronization | Retain | Locally accepted work awaiting replication differs from a remote write of unknown outcome; network retry alone does not make the record durable |
|
||||
| CAND-0004 Explicit Reconciliation | Retain separately from copy | A bounded conflict can be resolved without keeping a permanent copy; automatic convergence can remove the need for explicit user reconciliation |
|
||||
| CAND-0005 Local Draft State | Retain | Mutable user intent differs from accepted records and presentation state; a refresh must not silently erase newer edits |
|
||||
| CAND-0006 Version-Checked Mutation | Retain | Base-version preconditions prevent stale intent application; an idempotency key alone does not prove valid ancestry |
|
||||
| CAND-0007 Mutation Outcome Tracking | Retain | Lost acknowledgement leaves outcome unknown; cancelling UI or creating a fresh operation identity can duplicate accepted work |
|
||||
| CAND-0008 Invalidate and Reproject | Retain | Read refresh is distinct from mutation acceptance; failed refresh does not prove rejected write or authorize draft rollback |
|
||||
| CAND-0009 URL-addressable State | Retain | Address reconstruction differs from content availability and authorization; client fragments do not imply server dereferenceability |
|
||||
| CAND-0010 Progressive Enhancement | Retain | Essential task continuity differs from URL changes or selective hydration; a no-script link that loses the essential action does not satisfy the contract |
|
||||
| CAND-0011 Presentation Model | Retain | Presentation decisions differ from domain authority and editable intent; a wrapper with no independent decisions does not justify an extra model |
|
||||
| CAND-0012 Derived State | Retain | Computed results differ from independently editable state; incomplete inputs or stale memoization invalidate a derived result |
|
||||
| CAND-0013 Vertical Feature Slice | Retain separately from independent release | Capability-oriented modules can share one build; import grouping is not evidence of autonomous deployment |
|
||||
| CAND-0014 Islands of Interactivity | Retain | Selective execution differs from task fallback, fault containment and security isolation; islands alone guarantee none of those |
|
||||
| CAND-0015 Failure Boundary | Retain | Specified render containment differs from request/handler failures and remote compensation; a failed fallback may itself escape |
|
||||
| CAND-0016 Focus Return | Retain narrow scope | Temporary interaction return differs from non-modal route continuation; removed invokers and nested ownership need explicit targets/policy |
|
||||
| CAND-0017 Independent Feature Boundary | Retain separately from source organization | Artifact release, activation binding and session lifetime differ; changing an import map does not update an already-bound session |
|
||||
|
||||
## Relations and quality constraints
|
||||
|
||||
Retain the conditional relations in the frozen 0.1 manifest as historical proposals;
|
||||
no inverse or transitive inference is authorized. The current language must preserve
|
||||
these decisions when a later export is considered:
|
||||
|
||||
- Reject unconditional `requires` between Conflict Copy and Explicit Reconciliation.
|
||||
Preservation and resolution answer different questions; neither universally requires
|
||||
the other's particular mechanism.
|
||||
- Keep local acceptance, remote outcome and read projection separate. Pending
|
||||
Propagation and Mutation Outcome Tracking may compose, but neither establishes the
|
||||
other's preconditions. Version-Checked Mutation and operation identity solve different risks.
|
||||
- Keep feature organization, activation and session transition separate. Do not merge
|
||||
Vertical Feature Slice with Independent Feature Boundary or infer release autonomy.
|
||||
- Keep modal return separate from route completion ownership. Reuse shared concerns
|
||||
without broadening Focus Return into every navigation policy.
|
||||
- Preserve cross-cutting obligations: authorized retention, explicit backup scope,
|
||||
receipt/deduplication windows, stale-ancestry handling, newer-draft preservation,
|
||||
keyboard recovery and fallback ownership. Existing tests qualify mechanisms only;
|
||||
they do not confer security, accessibility, crash-safety or performance certification.
|
||||
|
||||
These are editorial dispositions of existing distinctions, not new empirical findings.
|
||||
The canonical responsibility vocabulary stays provisional; classification coverage
|
||||
must not be presented as maturity or proof that the seed inventory is complete.
|
||||
|
||||
## Existing work retains the gaps
|
||||
|
||||
No new task or workplan is opened. [WP-0003 T01/T02/T04](../../workplans/FEP-WP-0003-contrasting-schools.md)
|
||||
retain stream evidence, contrasting case completion and real storage/receiver validation.
|
||||
[WP-0002 T03](../../workplans/FEP-WP-0002-seed-language-validation.md) retains the M1
|
||||
independent-usefulness gate. [WP-0004](../../workplans/FEP-WP-0004-reference-surface.md)
|
||||
retains gated canonical export and held-out/real-repository evaluation. T03's review
|
||||
artifact is complete with an explicit defer result; M2 may be reassessed only when
|
||||
those existing evidence obligations change. No prospective trend or human validation
|
||||
is inferred from completing this editorial review.
|
||||
38
research/reviews/ReviewDateReconciliation.md
Normal file
38
research/reviews/ReviewDateReconciliation.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# Substantive review date reconciliation
|
||||
|
||||
Reconciled 2026-09-27 by Codex under FEP-WP-0006 T03. Dates below come from
|
||||
original dated review artifacts, not the date of this metadata edit. An editorial
|
||||
contract review is substantive but does not renew runtime evidence, external source
|
||||
freshness, independent recurrence or human usefulness. All roles remain author-model,
|
||||
all candidates hypotheses, and independent full-contract use counts unknown.
|
||||
|
||||
| Candidate | Recorded review date | Original artifact | Scope |
|
||||
| --- | --- | --- | --- |
|
||||
| CAND-0001 — Conflict Copy | 2026-09-27 | [M1-SeedReview](M1-SeedReview.md) | Editorial review of the connected core; M1 revise/defer. |
|
||||
| CAND-0002 — Local Commit Boundary | 2026-09-27 | [M1-SeedReview](M1-SeedReview.md) | Editorial review of the connected core; M1 revise/defer. |
|
||||
| CAND-0003 — Pending Synchronization | 2026-09-27 | [M1-SeedReview](M1-SeedReview.md) | Editorial review of the connected core; M1 revise/defer. |
|
||||
| CAND-0004 — Explicit Reconciliation | 2026-09-27 | [M1-SeedReview](M1-SeedReview.md) | Editorial review of the connected core; M1 revise/defer. |
|
||||
| CAND-0005 — Local Draft State | 2026-09-27 | [M1-SeedReview](M1-SeedReview.md) | Editorial review of the connected core; M1 revise/defer. |
|
||||
| CAND-0006 — Version-Checked Mutation | 2026-09-27 | [M1-SeedReview](M1-SeedReview.md) | Editorial review of the connected core; M1 revise/defer. |
|
||||
| CAND-0007 — Mutation Outcome Tracking | 2026-09-27 | [M1-SeedReview](M1-SeedReview.md) | Editorial review of the connected core; M1 revise/defer. |
|
||||
| CAND-0008 — Invalidate and Reproject | 2026-09-27 | [M1-SeedReview](M1-SeedReview.md) | Editorial review of the connected core; M1 revise/defer. |
|
||||
| CAND-0009 — URL-addressable State | 2026-09-27 | [ZulipNavigationSourceStudy](ZulipNavigationSourceStudy.md) | Static navigation contrast; partial mechanisms, not independent full-contract use. |
|
||||
| CAND-0010 — Progressive Enhancement | 2026-09-27 | [ZulipNavigationSourceStudy](ZulipNavigationSourceStudy.md) | Static navigation contrast; partial mechanisms, not independent full-contract use. |
|
||||
| CAND-0011 — Presentation Model | 2026-09-26 | [PatternBreadthExpansion](PatternBreadthExpansion.md) | Source normalization, decision probes and counterexamples. |
|
||||
| CAND-0012 — Derived State | 2026-09-26 | [PatternBreadthExpansion](PatternBreadthExpansion.md) | Source normalization, decision probes and counterexamples. |
|
||||
| CAND-0013 — Vertical Feature Slice | 2026-09-26 | [FeatureDeploymentBoundaries](FeatureDeploymentBoundaries.md) | Static feature/import versus release-boundary assessment. |
|
||||
| CAND-0014 — Islands of Interactivity | 2026-09-26 | [PatternBreadthExpansion](PatternBreadthExpansion.md) | Source normalization, decision probes and counterexamples. |
|
||||
| CAND-0015 — Failure Boundary | 2026-09-26 | [BoundaryRecoveryExperiment](BoundaryRecoveryExperiment.md) | Authored runtime fixture and failure-class interpretation. |
|
||||
| CAND-0016 — Focus Return | 2026-09-27 | [ZulipNavigationSourceStudy](ZulipNavigationSourceStudy.md) | Static navigation contrast; partial mechanisms, not independent full-contract use. |
|
||||
| CAND-0017 — Independent Feature Boundary | 2026-09-26 | [ActivationConflictsAndReload](ActivationConflictsAndReload.md) | Authored activation/reload experiment and guarantee limits. |
|
||||
|
||||
Fourteen formerly unknown dates now have traceable provenance; the three existing
|
||||
September 27 dates are corroborated. The September 26 baseline and 0.1 release
|
||||
remain unchanged historical records. Current profiles carry a separate metadata
|
||||
assessment date, substantive review reference and scope. Missing references or dates
|
||||
later than their metadata assessment are rejected by the current-profile validator.
|
||||
|
||||
This reconciliation is not a prospective investigation, adds no learning cycle and
|
||||
estimates no historical effort. LEARN-0011–0016 remain six distinct comparison groups;
|
||||
none supplies three comparable cycles. The remaining comparable-window review stays
|
||||
in [FEP-WP-0006 T03](../../workplans/FEP-WP-0006-language-evolution.md).
|
||||
|
|
@ -3,14 +3,13 @@
|
|||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
from pathlib import Path, PurePosixPath
|
||||
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):
|
||||
|
|
@ -18,21 +17,46 @@ def require(condition, message):
|
|||
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 git_blob(root, revision, path):
|
||||
require(isinstance(revision, str) and re.fullmatch(r'[0-9a-f]{40}', revision), 'Full pinned revision required')
|
||||
require(isinstance(path, str) and path and not PurePosixPath(path).is_absolute()
|
||||
and all(part not in {'.', '..', ''} for part in path.split('/'))
|
||||
and '\\' not in path and ':' not in path, 'Invalid reference: ' + str(path))
|
||||
try:
|
||||
return subprocess.check_output(['git', 'show', revision + ':' + path], cwd=root, stderr=subprocess.DEVNULL)
|
||||
except subprocess.CalledProcessError as exc:
|
||||
raise ValueError('Missing pinned reference: ' + path) from exc
|
||||
|
||||
|
||||
def build(root=ROOT):
|
||||
manifest = json.loads((root / BASE / 'manifest.json').read_text())
|
||||
def release(root, version=None):
|
||||
registry = json.loads((root / 'reference/releases.json').read_text())
|
||||
require(registry.get('schema_version') == 1, 'Unsupported release registry')
|
||||
version = version or registry['current']
|
||||
require(isinstance(version, str) and re.fullmatch(r'[0-9]+\.[0-9]+', version), 'Invalid reference version')
|
||||
require(version in registry['releases'], 'Unknown reference version')
|
||||
pin = registry['releases'][version]
|
||||
base = 'reference/' + version + '/'
|
||||
manifest_bytes = git_blob(root, pin['packaging_revision'], base + 'manifest.json')
|
||||
require(hashlib.sha256(manifest_bytes).hexdigest() == pin['manifest_sha256'], 'Release manifest digest mismatch')
|
||||
require((root / base / 'manifest.json').read_bytes() == manifest_bytes, 'Published manifest changed')
|
||||
for name in ('development-cases.json', 'README.md', 'ReleaseNotes.md', 'ReleaseReview.md'):
|
||||
require((root / base / name).read_bytes() == git_blob(root, pin['packaging_revision'], base + name), 'Published artifact changed: ' + name)
|
||||
manifest = json.loads(manifest_bytes)
|
||||
require(manifest['version'] == version, 'Release version mismatch')
|
||||
return base, pin, manifest
|
||||
|
||||
|
||||
def build(root=ROOT, version=None):
|
||||
base, pin, manifest = release(root, version)
|
||||
corpus = manifest['corpus_revision']
|
||||
read_corpus = lambda path: git_blob(root, corpus, path)
|
||||
read_package = lambda path: git_blob(root, pin['packaging_revision'], path)
|
||||
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']
|
||||
require(hashlib.sha256(read_corpus(path)).hexdigest() == digest, 'Stale pinned input: ' + path)
|
||||
profiles = json.loads(read_corpus('research/evolution/profiles.json'))['profiles']
|
||||
classifications = json.loads(read_corpus('research/catalog/ClassificationCoverage.json'))['candidates']
|
||||
classes = {r['path']: r for r in classifications}
|
||||
vocab = (root / 'canon/vocabulary.yaml').read_text()
|
||||
vocab = read_corpus('canon/vocabulary.yaml').decode()
|
||||
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')
|
||||
|
|
@ -40,10 +64,8 @@ def build(root=ROOT):
|
|||
require(len(classes) == len(classifications) == len(profiles), 'Invalid classification coverage')
|
||||
records = []
|
||||
for p in profiles:
|
||||
raw = locator(root, p['path']).read_bytes()
|
||||
raw = read_corpus(p['path'])
|
||||
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')
|
||||
|
|
@ -61,7 +83,7 @@ def build(root=ROOT):
|
|||
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'])
|
||||
read_package(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)
|
||||
|
|
@ -71,20 +93,20 @@ def build(root=ROOT):
|
|||
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)
|
||||
read_package(ref)
|
||||
for ref in manifest['entrypoints'].values():
|
||||
locator(root, ref)
|
||||
read_package(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(task['id'] in read_package(task['path']).decode(), 'Missing residual task')
|
||||
cases = json.loads(read_package(base + 'development-cases.json'))['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'],
|
||||
index = dict(schema_version=1, version=manifest['version'], 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.', '']
|
||||
catalog = ['# Candidate reference — ' + manifest['version'], '', '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:
|
||||
|
|
@ -102,9 +124,11 @@ def build(root=ROOT):
|
|||
def main():
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument('--check', action='store_true')
|
||||
parser.add_argument('--version', help='Immutable published version; default is reference/releases.json current')
|
||||
args = parser.parse_args()
|
||||
for name, content in build().items():
|
||||
path = ROOT / BASE / name
|
||||
base, _, _ = release(ROOT, args.version)
|
||||
for name, content in build(version=args.version).items():
|
||||
path = ROOT / base / name
|
||||
if args.check:
|
||||
require(path.is_file() and path.read_text() == content, 'Stale export: ' + name)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -53,7 +53,10 @@ def validate(data, root=ROOT):
|
|||
require(not p['review']['independent_human'] or p['review']['role'] == 'human', 'Model review cannot be human validation')
|
||||
date.fromisoformat(p['review']['assessed_at'])
|
||||
if p['review']['last_substantive_review_date'] is not None:
|
||||
date.fromisoformat(p['review']['last_substantive_review_date'])
|
||||
review = p['review']
|
||||
require(date.fromisoformat(review['last_substantive_review_date']) <= date.fromisoformat(review['assessed_at']), 'Review date exceeds assessment')
|
||||
require(review.get('substantive_review_ref') and review.get('substantive_review_scope', '').strip(), 'Substantive review needs provenance and scope')
|
||||
ref_check(root, review['substantive_review_ref'])
|
||||
require(p['independent_full_contract_uses'] is None or type(p['independent_full_contract_uses']) is int and p['independent_full_contract_uses'] >= 0, 'Invalid independent-use count')
|
||||
require(set(p['superseded_by']) <= set(ids) - {p['id']}, 'Unknown/self successor')
|
||||
for e in p['evidence']:
|
||||
|
|
@ -164,7 +167,7 @@ def render(data, baseline=None):
|
|||
lines += ['## Coherence and maintainability', '',
|
||||
'Profile hashes and local references passed validation when this report was generated. That checks traceability, not source truth or external URL freshness.', '',
|
||||
f'Profiles with unknown last substantive review date: {sum(p["review"]["last_substantive_review_date"] is None for p in profiles)}. '
|
||||
'Assessment dates record this metadata review, not a new substantive validation. No age-based freshness claim is available for those profiles.', '',
|
||||
'Assessment dates record this metadata review, not a new substantive validation. Recorded substantive dates identify scoped author-model reviews, not renewed empirical or external-source freshness.', '',
|
||||
'Coherence metrics (ambiguous selections, unjustified relations and overlap resolved): not measured. Conflict Copy / Explicit Reconciliation overlap remains an explicit open question.', '',
|
||||
'Review backlog and evidence gaps remain in ' + ', '.join(link(r) for r in context['open_work']) + '.', '',
|
||||
'## Pattern profiles', '']
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
# Draft contract for FEP-WP-0008-T02; not an enabled collector or real-use evidence.
|
||||
# The implementation must turn this into a strict versioned schema and validate it.
|
||||
# Producer template for FEP-WP-0008-T02; placeholders are not valid use evidence.
|
||||
# Executable schema-v1 event validation/collection: activity-core
|
||||
# src/activity_core/context_resolvers/frontend_patterns.py (validate_event).
|
||||
# Consumer closeout integration and real-use acceptance remain open in T02.
|
||||
# Consumer produces immutable events; collector supplies independently verified origin.
|
||||
schema_version: 1
|
||||
use_id: "<consumer-repo>:<task-id>:<decision-id>"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
"""Reject broken preview contracts before publishing generated references."""
|
||||
import hashlib
|
||||
import importlib.util
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
|
@ -48,16 +49,18 @@ def test_duplicate_identity(copy):
|
|||
preview.build(copy)
|
||||
|
||||
|
||||
def test_stale_candidate(copy):
|
||||
def test_live_candidate_change_does_not_break_frozen_preview(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)
|
||||
assert preview.build(copy) == preview.build(ROOT)
|
||||
import research_evolution as evolution
|
||||
with pytest.raises(ValueError, match='Stale profile'):
|
||||
evolution.validate(evolution.load(copy), copy)
|
||||
|
||||
|
||||
def test_escaping_reference(copy):
|
||||
mutate(copy, lambda m: m['entrypoints'].update(start='/etc/passwd'))
|
||||
with pytest.raises(ValueError, match='Invalid reference'):
|
||||
with pytest.raises(ValueError, match='Published manifest changed'):
|
||||
preview.build(copy)
|
||||
|
||||
|
||||
|
|
@ -68,3 +71,44 @@ def test_missing_metadata(copy):
|
|||
path.write_text(json.dumps(data))
|
||||
with pytest.raises((ValueError, KeyError)):
|
||||
preview.build(copy)
|
||||
|
||||
|
||||
def test_legitimate_new_research_remains_separate_from_old_release(copy):
|
||||
import research_evolution as evolution
|
||||
candidate = copy / 'research/candidates/ConflictCopy.md'
|
||||
candidate.write_text(candidate.read_text() + '\nNew research clarification.\n')
|
||||
digest = hashlib.sha256(candidate.read_bytes()).hexdigest()
|
||||
profiles = copy / 'research/evolution/profiles.json'
|
||||
data = json.loads(profiles.read_text())
|
||||
data['profiles'][0]['sha256'] = digest
|
||||
profiles.write_text(json.dumps(data))
|
||||
classes = copy / 'research/catalog/ClassificationCoverage.json'
|
||||
data = json.loads(classes.read_text())
|
||||
next(c for c in data['candidates'] if c['path'] == 'research/candidates/ConflictCopy.md')['sha256'] = digest
|
||||
classes.write_text(json.dumps(data))
|
||||
evolution.validate(evolution.load(copy), copy)
|
||||
assert preview.build(copy, '0.1') == preview.build(ROOT, '0.1')
|
||||
|
||||
|
||||
def test_unknown_version_and_forged_release_pin(copy):
|
||||
with pytest.raises(ValueError, match='Unknown'):
|
||||
preview.build(copy, '9.9')
|
||||
path = copy / 'reference/releases.json'
|
||||
data = json.loads(path.read_text())
|
||||
data['releases']['0.1']['manifest_sha256'] = '0' * 64
|
||||
path.write_text(json.dumps(data))
|
||||
with pytest.raises(ValueError, match='digest mismatch'):
|
||||
preview.build(copy)
|
||||
|
||||
|
||||
def test_published_cases_cannot_be_rewritten(copy):
|
||||
path = copy / 'reference/0.1/development-cases.json'
|
||||
path.write_text('{}')
|
||||
with pytest.raises(ValueError, match='Published artifact changed'):
|
||||
preview.build(copy)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('path', ['/etc/passwd', '../README.md', 'research/../README.md', 'research//README.md'])
|
||||
def test_git_blob_rejects_escaping_paths(path):
|
||||
with pytest.raises(ValueError, match='Invalid reference'):
|
||||
preview.git_blob(ROOT, '0' * 40, path)
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ def test_current_records_and_report_are_consistent(data):
|
|||
|
||||
|
||||
@pytest.mark.parametrize('mutation,match', [
|
||||
(lambda d: d['profiles']['profiles'][0]['review'].update(last_substantive_review_date='2099-01-01'), 'Review date exceeds'),
|
||||
(lambda d: d['profiles']['profiles'][0]['review'].update(substantive_review_ref=None), 'needs provenance'),
|
||||
(lambda d: d['profiles']['profiles'][0]['review'].update(substantive_review_scope=''), 'needs provenance'),
|
||||
(lambda d: d['profiles']['profiles'][0].update(sha256='0'*64), 'Stale profile'),
|
||||
(lambda d: d['profiles']['profiles'].pop(), 'inventory mismatch'),
|
||||
(lambda d: d['profiles']['profiles'][1].update(id='CAND-0001'), 'Duplicate candidate'),
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Validate the seed frontend pattern language"
|
||||
domain: infotech
|
||||
repo: frontend-patterns
|
||||
status: active
|
||||
status: blocked
|
||||
quality_dor: DoR-Ok
|
||||
quality_dor_at: "2026-09-24"
|
||||
quality_dor_by: codex
|
||||
|
|
@ -61,7 +61,7 @@ counterexamples. Reconcile README maturity claims with the evidence.
|
|||
|
||||
```task
|
||||
id: FEP-WP-0002-T03
|
||||
status: progress
|
||||
status: wait
|
||||
priority: medium
|
||||
state_hub_task_id: "54940b04-1d0f-5bff-98d4-be290eca8048"
|
||||
```
|
||||
|
|
@ -347,3 +347,12 @@ obligation is declared satisfied merely by transfer. Workplan remains active.
|
|||
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.
|
||||
|
||||
## Closeout audit — 2026-09-27
|
||||
|
||||
Workplan blocked; T03 waits on the independent usefulness/validated-case evidence
|
||||
identified in [M1-SeedReview](../research/reviews/M1-SeedReview.md). The connected
|
||||
core, two synthetic walkthroughs and review are delivered, but the gate is revise/defer.
|
||||
Reopen when independent evidence and the outstanding quality/recovery assumptions
|
||||
can be assessed; a metadata edit or another author-model review cannot supply it.
|
||||
Storage/receiver mechanism work already belongs to WP-0003 T04. No new task.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Challenge the language across architectural schools"
|
||||
domain: infotech
|
||||
repo: frontend-patterns
|
||||
status: active
|
||||
status: blocked
|
||||
owner: codex
|
||||
topic_slug: canon
|
||||
created: "2026-09-24"
|
||||
|
|
@ -34,7 +34,7 @@ Build a source coverage matrix for streams A–F in ResearchProgram.md. Complete
|
|||
|
||||
```task
|
||||
id: FEP-WP-0003-T02
|
||||
status: todo
|
||||
status: wait
|
||||
priority: high
|
||||
state_hub_task_id: "05de53b6-1771-5137-9602-bf614cb1bf0a"
|
||||
```
|
||||
|
|
@ -45,7 +45,7 @@ After the M1 review, complete VC-03 through VC-06 using the walkthrough template
|
|||
|
||||
```task
|
||||
id: FEP-WP-0003-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "2b7252c1-c453-5050-96fb-d86a3f3df0f0"
|
||||
```
|
||||
|
|
@ -330,3 +330,17 @@ infrastructure if feasible within a new budget. Existing auxiliary-navigation re
|
|||
stays open, local navigation fixture stays paused, and WP-0003 T04 retains storage/
|
||||
receiver validation. WP-0006 T03 retains review dates/comparable-window work; this sixth
|
||||
prospective group supplies no learning trend. Human validation and M1/M2/M3 stay open.
|
||||
|
||||
## Closeout audit — 2026-09-27
|
||||
|
||||
T03 done: [M2-CoverageReview](../research/reviews/M2-CoverageReview.md) records all
|
||||
seventeen dispositions, conditional relations, quality limits, six-stream evidence
|
||||
and ten-case coverage. Result: revise/defer, not M2 acceptance. All unresolved work
|
||||
stays in existing T01/T02/T04, WP-0002 T03 and WP-0004; no new task or workplan.
|
||||
|
||||
Workplan blocked because T02's M1 prerequisite remains unmet. T02 is wait until
|
||||
WP-0002's evidence gate is satisfied; then complete VC-03–06 and review VC-07–10.
|
||||
T01 remains progress for useful bounded source/reproduction questions; T04 remains
|
||||
todo for a preregistered concrete storage/real-receiver investigation. These are
|
||||
unfinished research, not falsely declared external blockers or completed by this
|
||||
editorial review. Bounded exploratory work retains its existing authorization.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Evaluate retrieval and real repository applicability"
|
||||
domain: infotech
|
||||
repo: frontend-patterns
|
||||
status: proposed
|
||||
status: blocked
|
||||
owner: codex
|
||||
topic_slug: canon
|
||||
created: "2026-09-24"
|
||||
|
|
@ -22,7 +22,7 @@ Individual task descriptions identify any work that can start earlier.
|
|||
|
||||
```task
|
||||
id: FEP-WP-0004-T01
|
||||
status: todo
|
||||
status: wait
|
||||
priority: high
|
||||
state_hub_task_id: "4fec98f6-fee2-52fc-a01c-f490c79ee0f8"
|
||||
```
|
||||
|
|
@ -33,7 +33,7 @@ After the schema and seed examples pass M1, implement the smallest validator/exp
|
|||
|
||||
```task
|
||||
id: FEP-WP-0004-T02
|
||||
status: todo
|
||||
status: wait
|
||||
priority: medium
|
||||
state_hub_task_id: "4bdd4c53-fcdb-5dfd-9a37-ebc3fee4d445"
|
||||
```
|
||||
|
|
@ -44,7 +44,7 @@ After M2, freeze a corpus revision and evaluate at least six unseen prompts foll
|
|||
|
||||
```task
|
||||
id: FEP-WP-0004-T03
|
||||
status: todo
|
||||
status: wait
|
||||
priority: medium
|
||||
state_hub_task_id: "ab66848b-1045-54dd-9711-52c5560faafa"
|
||||
```
|
||||
|
|
@ -59,3 +59,11 @@ before M1/M2. It is distinct from this workplan's canonical export and held-out
|
|||
claims; it does not rename consumed feedback into unseen evaluation cases. This plan
|
||||
remains proposed with its original task gates. Routine reuse must not await those
|
||||
claims or require a human survey; preserve evidence provenance and honest unknowns.
|
||||
|
||||
## Closeout audit — 2026-09-27
|
||||
|
||||
Workplan blocked. T01 waits for the schema/seed M1 acceptance; T02 and T03 wait for
|
||||
M2 under the phase prerequisite. The M1 and M2 reviews both say revise/defer. Reopen
|
||||
each task only on the recorded prerequisite evidence. Existing preview validation
|
||||
and development cases are useful outputs of WP-0007/WP-0008, not canonical export,
|
||||
held-out evaluation or two complete real-repository applicability studies.
|
||||
|
|
|
|||
|
|
@ -176,3 +176,16 @@ infrastructure if feasible within a new budget. Existing auxiliary-navigation re
|
|||
stays open, local navigation fixture stays paused, and WP-0003 T04 retains storage/
|
||||
receiver validation. WP-0006 T03 retains review dates/comparable-window work; this sixth
|
||||
prospective group supplies no learning trend. Human validation and M1/M2/M3 stay open.
|
||||
|
||||
## Closeout audit — 2026-09-27
|
||||
|
||||
T03 review-date reconciliation is complete: [dated provenance report](../research/reviews/ReviewDateReconciliation.md)
|
||||
resolves fourteen unknown dates and corroborates the three known dates from original
|
||||
artifacts. Current-profile validation requires review provenance/scope and prevents
|
||||
a date later than its assessment. Historical baseline and 0.1 release are unchanged.
|
||||
|
||||
T03 remains progress, workplan active: LEARN-0011–0016 belong to six different
|
||||
comparison groups, none with three comparable cycles. The returns review needs useful
|
||||
further prospective research under the existing task; do not manufacture repetitions
|
||||
or pool incompatible protocols to close it. There is no external blocker on that
|
||||
research and no claim that a metadata reconciliation is a new learning cycle.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Close the ecosystem reuse and improvement loop"
|
||||
domain: infotech
|
||||
repo: frontend-patterns
|
||||
status: active
|
||||
status: blocked
|
||||
lane: blue
|
||||
owner: codex
|
||||
topic_slug: canon
|
||||
|
|
@ -30,7 +30,7 @@ the user's instruction. This is not a request for another up-front approval roun
|
|||
|
||||
```task
|
||||
id: FEP-WP-0008-T01
|
||||
status: progress
|
||||
status: wait
|
||||
priority: high
|
||||
lane: blue
|
||||
state_hub_task_id: "453fc06b-be70-5913-a816-161cabe9a0a1"
|
||||
|
|
@ -61,7 +61,7 @@ in this design session; hosted registration and consumer integration remain open
|
|||
|
||||
```task
|
||||
id: FEP-WP-0008-T02
|
||||
status: progress
|
||||
status: wait
|
||||
priority: high
|
||||
lane: blue
|
||||
state_hub_task_id: "49be8a8e-eaaf-5f1c-b4cd-f0c4dbac9823"
|
||||
|
|
@ -88,7 +88,7 @@ refresh after 14 days and remain unknown after 30; no manual survey dependency.
|
|||
|
||||
```task
|
||||
id: FEP-WP-0008-T03
|
||||
status: progress
|
||||
status: wait
|
||||
priority: high
|
||||
lane: blue
|
||||
state_hub_task_id: "f823587c-727d-515a-974d-401719420ce5"
|
||||
|
|
@ -179,3 +179,26 @@ sync remains off; authenticated receipt/identity and failed-health rollback proo
|
|||
remain in ACTIVITY-WP-0041-T03. Digest-aware registry retention is tracked by
|
||||
RPF-WP-0048-T03; current baseline tags are protected. Reporting is operational;
|
||||
consumer enrollment and admitted pattern-editing execution remain unfinished.
|
||||
|
||||
## Closeout audit — 2026-09-27
|
||||
|
||||
Local frozen-publication prerequisite in T01 is complete: [release registry](../reference/releases.json),
|
||||
explicit version selection and Git-pinned corpus/package reads isolate old exports
|
||||
from legitimate current-research edits. Regression tests exercise current research
|
||||
changing independently, stale live profiles and altered published artifacts.
|
||||
|
||||
Workplan blocked; T01/T02/T03 wait on their end-to-end dependencies. T01 needs hosted
|
||||
discovery and common-template-owner integration into an actual eligible frontend task,
|
||||
including its first pinned decision note. T02 needs the producer closeout hook and
|
||||
real use plus linked outcome; activity-core owns the existing executable event validator
|
||||
and deterministic collector. The roster is still empty. Do not invent a demo consumer
|
||||
or copy its fixtures into the real stream. Reopen these tasks when an eligible actual
|
||||
consumer and the template integration are available.
|
||||
|
||||
T03 needs an admitted, budget-enforced pattern-edit executor (GLAS-WP-0012 /
|
||||
HFACT-WP-0001), authenticated standing release/rollback proof (ACTIVITY-WP-0041 T03),
|
||||
and a real unassisted cycle with monthly packet. Reporting and collection are already
|
||||
operational; their three schedules remain enabled. The first monthly packet remains
|
||||
due October 1; missing consumer/executor evidence must be reported as such. This audit
|
||||
does not disable schedules or conflate the reporting worker with mutation authority.
|
||||
Existing owner work records retain all dependencies; no replacement workplan is opened.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue