Skip to content
This repository was archived by the owner on Oct 10, 2026. It is now read-only.

docs(007): reconcile Hyperlexical product state to morph78 - #102

Merged
scrimshawlife-ctrl merged 7 commits into
mainfrom
astra/reconcile-hyperlexical-product-20260924
Sep 24, 2026
Merged

scrimshawlife-ctrl merged 7 commits into
mainfrom
astra/reconcile-hyperlexical-product-20260924

Conversation

@scrimshawlife-ctrl

@scrimshawlife-ctrl scrimshawlife-ctrl commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Summary

Reconcile Hyperlexical product/documentation state after the 2026-09-24 morph78 promotion. Docs/governance only. No runtime, model, receipt, or gate mutation.

Locks held: name_gate=false · Hub unpublished · T13 not authorized · no new climb · no invented OBSERVED · Brier null · upsample freeze 11+ · no SECOND_SLOT=4 · HYPERLEX-Q1 UNQUALIFIED · Hyperlex → Noesis pairwise BLOCKED.

Current morph78 evidence (verified from receipts on this branch)

Field Value Source (specs/007-hyperlexical-model/receipts/morph78-val-settle-20260924/)
Decision PROMOTE_BEST, soft_ceiling ceiling_escape GATE_LOCK.json, pin-promote-best.json
BEST seed-morph78 (prior seed-morph65) pin-promote-best.json
Broad OBSERVED 0.98828125 n=256 broad-eval-morph78.json
PRIOR broad morph65 0.88671875 n=256 broad-eval-prior-morph65-at-finish.json
E2 PASS, trunk-forward, unbind_exact 1.0, n_unbind_eval 24, model_swap 1.0 ≥ probe_swap_min 0.5 e2-unbind-morph78.json
Train val (force surface) unbind_exact 1.0 n=164 @ ep15 train-receipt.json
Force/hard 236 / 277 (from 232/273) ACQUIRE_SETTLE_SUMMARY.json
Recipe observed upsample 10, second-slot weight 2.0, LAST_TRAINABLE 8, 40 ep train-receipt.json
Brier / name_gate null / false e2-unbind-morph78.json, train-receipt.json

Note: train-receipt.json records e2_pass: false because the train step doesn't run E2. The separate E2 eval and GATE_LOCK.json record the pass. The receipt is left unchanged.

Files changed (vs main)

Product plan: one canonical copy. This PR originally added a root HYPERLEXICAL-PRODUCT-PLAN.md alongside the existing specs/007-hyperlexical-model/HYPERLEXICAL-PRODUCT-PLAN.md. The root duplicate is now removed. Its reconciled content replaces the stale specs copy, which is the path every other doc points at.

  • specs/007-hyperlexical-model/HYPERLEXICAL-PRODUCT-PLAN.md: current state table with a receipt per row, the four independent state machines (TRAIN / NAME / PUBLISH / INTEGRATION), default HOLD, Q1/Noesis tracks.
  • specs/007-hyperlexical-model/NAME-GATE-AND-NAMED-PHRASES.md: keeps the closed-climb boundary. Restores the already-OBSERVED phrase exclusion list (morph77 ×4, morph78 ×2), future-climb sentence shapes vs morph78 PRIOR, and the open "operator product review" checkbox.
  • specs/007-hyperlexical-model/hf-package/README.md: current pin block. Freeze corrected to last 8 layers (was "last 2", contradicted by the receipt). E1 → NOT_COMPUTABLE (was "PARTIAL", no receipt). E0/E4/E5/E6 labelled as stub-harness results not re-run on morph78. Heads-loading snippet and Bias section restored.
  • specs/007-hyperlexical-model/model-card.draft.md: receipt pointer; E1/E3 NOT_COMPUTABLE.
  • Current-state repairs: README.md, docs/CANONICAL.md, docs/index.md, docs/shadow-hyperlexical.md, docs/specs/index.md, specs/README.md, specs/007-hyperlexical-model/{spec,status,tasks,u3-recipe,AARON-SPARK-TRAIN}.md, STATUS.md + docs/status.md mirror.

Stale current-state findings repaired

  • README.md + docs/CANONICAL.md: pinned BEST receipt pointed at morph36 → now receipts/20260924-morph78-soft-ceiling-promote-best.md (morph36 kept as history).
  • README.md: "T1 blocked on Spark E2"; anti-rule "Hyperlexical before E2" → "before name_gate".
  • docs/index.md (×3), docs/shadow-hyperlexical.md (×7), docs/specs/index.md (×2), specs/README.md, spec.md status/naming lines, u3-recipe.md (×2), AARON-SPARK-TRAIN.md: "E2 Spark-blocked / E2 fail / E2 has not passed / name until E2" presented as current state.
  • tasks.md: "climb past morph65 (soft_ceiling armed)" → closed with morph78.
  • Spec 007 status.md "next operator sentences": pointed at a named-phrase authorize → default HOLD + name/Hub/T13 decisions.
  • STATUS.md: product-plan path made explicit; default HOLD.

Intentionally preserved as history

  • All of specs/007-hyperlexical-model/receipts/** (0 receipt files changed), including morph36/morph65/morph77 pins and 2026-09-23 soft_ceiling ARMED / empty-gold receipts.
  • ROADMAP.md / docs/ROADMAP.md dated entries (2026-09-24 hygiene "soft_ceiling ARMED; morph65 held"; 2026-09-10 "E2 was Spark-blocked at that snapshot").
  • CHANGELOG.md; clarify.md C40 and locks-a5.md C51 (locked decision records).
  • Spec rules that remain true as necessary conditions: "T0 → T1 after E2", "hyperlex-structure-149m name only after E2", stub E2 FAIL expected, HERMES-SPARK-RUN.md seed-smoke procedure (E2 pass on a seed smoke = defect).
  • Notion Operator Hub (read-only check): 2026-09-24 morph78 block present; 2026-09-23 morph65 block kept as history.

Validation run

  • Local, CI-equivalent: hyperlex.py check / doctor / sources / smoke, diagram --from-golden, run_case_study.py: all PASS.
  • python3 -m pytest -q: 730 passed, 6 skipped, 16 subtests passed.
  • mkdocs build --strict after the CI sync steps: PASS (also passes on main).
  • Mirrors: docs/status.md and docs/ROADMAP.md identical to what CI generates from root.
  • Links/paths: every path added in changed files resolves. 4 unresolved hits predate this PR (README specs/007-… abbreviations, one query-string link).
  • git diff --check: clean except spec.md:5, an intentional Markdown hard break already present on main for that metadata line.
  • Governance greps on added lines: no name_gate=true; no Hub upload / ALLOW_HUB / push_to_hub; no src/hyperlex promotion; only .md files changed; 0 receipts touched.
  • GitHub CI on head 4c788ad: validate 3.10/3.11/3.12 success, docs build success.

NOT_COMPUTABLE

  • E1 classify-vs-fixture and E3 MiniLM control on seed-morph78: no receipts.
  • E0/E4/E5/E6 against seed-morph78 weights: only the stub-harness results exist.
  • Spark-side re-verification of BEST → seed-morph78: not re-run for this docs PR. The pin receipt is the evidence.
  • Classify head width Linear(768, 9) on the card: pre-existing; not re-derived from receipts here.

Operator decisions (not taken here)

Default recommendation: HOLD morph78, then decide name_gate, Hub, and optional T13 as separate sentences before any new climb.

Not merged: repo policy does not authorize auto-merge for this class of change.

@scrimshawlife-ctrl
scrimshawlife-ctrl marked this pull request as ready for review September 24, 2026 17:47
@scrimshawlife-ctrl
scrimshawlife-ctrl merged commit a38ec40 into main Sep 24, 2026
5 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4c788adb15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

T1 / E2 trains from the **local SoT** (`~/.hyperlex/hyperlexical/ingest_candidates.jsonl`) via `--include-live`. Omit `--include-live` only for harness wiring against the tracked seed. Operator `--include-live` (2026-09-10 PT evening): n=6506 · classify 2437 · unbind 1345 · negatives 208 · gaps 0/0/0.

Name-gate is still false (E2 Spark-blocked). The word Hyperlexical stays off the card until E2 beats 004 on shared fixtures **and** civilian unbind rows exist.
Name-gate is still false (trained E2 PASS does not flip it; Danny yes required). The word Hyperlexical stays off the card until E2 beats 004 on shared fixtures **and** civilian unbind rows exist.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep Danny approval in the card-naming condition

This sentence is internally contradictory: it first says Danny's approval is required, but then says the Hyperlexical name stays off the card only until E2 passes and civilian rows exist—conditions the updated documentation says are already satisfied. An operator following the latter condition could conclude that naming is now permitted despite name_gate=false; include explicit name_gate approval in the stated condition.

Useful? React with 👍 / 👎.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant