Skip to content

docs(release): APR-RELEASE-001 spec + PMAT-1098 receipt for session 1 — the 0.67.0 train - #3164

Merged
noahgift merged 17 commits into
mainfrom
PMAT-1098-apr-release-001
Sep 13, 2026
Merged

docs(release): APR-RELEASE-001 spec + PMAT-1098 receipt for session 1 — the 0.67.0 train#3164
noahgift merged 17 commits into
mainfrom
PMAT-1098-apr-release-001

Conversation

@noahgift

Copy link
Copy Markdown
Contributor

Draft until the train reaches its terminal step. Carries the operator's spec (untracked until now), the PMAT-1098 receipt-so-far (andon: K crossed at k=312), the R-17 routing row, and the two agy lane receipts under evidence/release/0.67.0/agy/. The §7 report and the docs/build-ledger train record are added when v0.67.0 is tagged or SKIPPED.

Refs #3078, PMAT-1098.

🤖 Generated with Claude Code

…c, and the R-17 model-movement row for PMAT-1098

The spec was dropped by the operator on 2026-09-12 and is untracked until this commit; the routing row records the orchestrator model moving opus->fable-5-1 at phase 4 (phase-boundary.sh).

Pmat-Ticket: PMAT-1098
…(the 0.67.0 train) + the two agy lane receipts

Andon obligation: K=240 was crossed at k_measured=312 when the operator issued the spec run; WIP committed and this draft PR carries the receipt-so-far. Amended at phase 5.

Pmat-Ticket: PMAT-1098
@noahgift noahgift added this to the 0.68.0 milestone Sep 12, 2026
@github-actions

github-actions Bot commented Sep 12, 2026

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3164 head=246efe069680d511ce26cf91150ecee1452bdf13 verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

…s the bottleneck, gx10 is 2.3x faster and half idle

One append-only JSON per (sha, host, job) from the Actions REST API: queue_wait_s
(created->started), exec_s, total_s, host, conclusion. peak_rss_mb and
free_disk_gb are null with an explicit "[U]" in unmeasured[]: the REST API does
not expose them, and an absent measurement must never read as a zero.

What the 182 records say (p50 / p95 exec_s, this repo, 2026-09-12):

  workspace-test   intel 1790 / 4148 s   gx10  790 / 790 s   yoga  259 / 3167 s
  guard-cargo      intel 1201 / 1820 s   gx10  422 / 516 s   yoga  830 / 1046 s
  guard-tree       intel  604 /  879 s   gx10  192 / 213 s   yoga  379 /  379 s

  queue wait p95   intel 2995 s          gx10  233 s         yoga 1654 s

Per-run required-check wall clock, grouped by which boxes the run touched:

  gx10 only          n=4    mean  9.4 min
  gx10 + yoga        n=4    mean 11.3 min
  gx10 + intel       n=10   mean 42.6 min
  gx10 + intel + yoga n=11  mean 31.6 min

Every run that touched intel cost 32-43 min; no run that avoided it cost more
than 11.3. intel took 15 of the 22 workspace-test records because that job is
pinned to X64 -- and it is the job whose p95 is 69 minutes. #3139 unpins it.

§1 coupling, no longer [U]: p95 gate = 72.3 min, so max PRs per train = 72h /
72.3 min = 59.7. §8's "stop cutting trains below 10" does not fire.

Pmat-Ticket: PMAT-1098
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Contributor Author

Build-server packing + build-time kaizen — 0.67.0 train, 12:35Z

Packing right now (org runners, all repos; the aprender queue is what they are draining)

box busy / total operator target verdict
gx10 4/6 80% UNDER target (66%)
yoga 3/5 50% at or over target (60%)
intel 15/16 80% at or over target (93%)

The finding: the packing target is being met on the wrong box. intel is at 94%
and it is the slowest box; gx10 is at 67% and is 2.3x faster. Filling intel is
not throughput, it is queueing.

182 ledger records written this train (docs/build-ledger/2026-09-12/, one JSON
per sha+host+job, from the Actions REST API). p50 / p95 exec_s:

job intel gx10 yoga
workspace-test 1790 / 4148 s 790 / 790 s 259 / 3167 s
guard-cargo 1201 / 1820 s 422 / 516 s 830 / 1046 s
guard-tree 604 / 879 s 192 / 213 s 379 / 379 s
queue wait (p95) 2995 s 233 s 1654 s

Per-run required-check wall clock, grouped by which boxes a run touched:

host mix runs mean wall clock
gx10 only 4 9.4 min
gx10 + yoga 4 11.3 min
gx10 + intel 10 42.6 min
gx10 + intel + yoga 11 31.6 min

Every run that touched intel cost 32-43 min. No run that avoided intel cost more
than 11.3 min. intel holds 15 of the 22 workspace-test records because that job
is pinned to X64 — and it is the job with a 69-minute p95.

§1 coupling, no longer [U]: p95 gate = 72.3 min ⟹ max PRs per train =
72 h / 72.3 min = 59.7. §8's "stop cutting trains below 10 PRs/train" does not fire.

Acted on this train

  1. ci(fleet): workspace-test runs on any clean-room box — gx10 measured 3–4× faster than intel; four aarch64-only reds fixed; tree-reader step builds 20 packages, not 686 binaries (PMAT-3138) #3139 (workspace-test on any clean-room box) is in the merge queue. It is the
    single change that moves the 69-minute job off the 94%-full box. It lands in 0.67.0.
  2. Cancelled my own two 0.68.0 PRs' CI (dogfood(examples): G3.EX learns needs-data — 173 examples that need a model or tokenizer the repo does not ship were reading as defects #3163, docs(release): APR-RELEASE-001 spec + PMAT-1098 receipt for session 1 — the 0.67.0 train #3164) — six aprender workspace-tests
    were running on intel at once against §3.4's one-PR-in-CI rule, and two of them
    were mine and not on the train.
  3. Dequeued perf(ci): pr-review-receipt is dispatch-only — 96 h of fleet runner-time for a job that gates nothing (PMAT-1078) #3046 (guard-tree RED on its group: check_roadmap_diff_additive.sh).
    It was holding a merge-queue build slot it could not use. Moved to 0.68.0 and cut
    from the 0.67.0 CHANGELOG.
  4. Local sweep work (981-example dogfood) runs on lambda-vector, never on a CI
    runner, so it takes nothing from the queue.

Still owed, and why it is not being done in this session: the P2 infra PR that
declares runner units for yoga and gx10 in forjar.yaml. §3.5 forbids the ad-hoc
SSH that would fix it faster, and §0's selector allows exactly one thing per
session — this session is the train.

noahgift and others added 12 commits September 12, 2026 14:33
… ledger answered §1

Three things the receipt did not yet carry:

1. orch_model. The harness moved this session from claude-fable-5-1 to
   claude-opus-5 in the middle of phase 4. A model change mid-session is a
   recorded event, never a silent one: route.sh record-event wrote the row to
   docs/audits/impl-routing.jsonl and the frontmatter now names the live model.
   fable_binding drops to false with the reason, rather than asserting a binding
   that no longer holds.

2. The build ledger, 182 records, and what they say about which box to fill.

3. §1's max-PRs-per-train, measured at 59.7 from 29 runs, so it stops being [U]
   and §8's stop condition can be evaluated instead of guessed.

Pmat-Ticket: PMAT-1098
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…real defects, 38 classifier gaps

The gate #3121/#3122 added during this cycle had never been executed against a
tag. Its first run says 23 fail + 21 timeout, and that number is wrong in the
interesting direction: re-running all 44 with each target's own required-features
and keeping the logs leaves SIX genuine defects.

  9 rows pass once the feature they name at runtime is enabled (cuda,
    compression, embeddings, tensor, shell-autocomplete). They declare no
    required-features and gate themselves in code, so the sweep ran them wrong.
 20 rows are servers, TUIs and unbounded benchmarks. Killing them at 120 s and
    calling it `timeout` -- a class the skill defines as a defect -- is wrong on
    all twenty.
  6 rows are a missing model or a missing argument worded outside the regexes.
  1 is a TTY, 1 is this box's glibc against a prebuilt ort artifact, 1 is a
    wall-clock perf assertion failing under load.

Verdict GO. Every one of the six defects is byte-identical at v0.66.0: the
expect() on weight.rs:356, the five PinnedBuffer imports, the three
cwd-relative config literals in llama2/train.rs. §3.1 skips a train whose CUT
cannot go green; this cut did not cause any of them, the previous tag shipped
them all, and a new instrument finding a backlog is not the same event as a
regression. They are #3178 #3179 #3180 #3181, and the classifier gaps are #3182.

Not claimed: that the 20 timeouts are healthy. They were not individually
verified and the gate cannot yet tell a serving server from a wedged one.

Pmat-Ticket: PMAT-1098
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…, #3068/#3139/#3175 dequeues, the T-0 correction table, G3.EX GO, and the model return (opus -> fable) recorded

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… 34693750243..34700216664 incl. the discarded #3145 workspace-test (4958 s) and the two cancelled docs-PR runs [skip ci]

Pushes to this docs branch were starting full CI runs on intel next to the train (34694025825, 34700216664, 34701097504 — all cancelled by hand); until v0.67.0 is tagged every push here carries [skip ci]. The final push before merge does not.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e checkout paths — the shipped-tier machine-specific-path ratchet went RED on #3164 (+2 vs 81da9bc) [skip ci]

check_hardcoded_paths.sh --full-if-capable, run 34700216664 step 43: evidence/release/0.67.0/agy/ph4-teamwork/delegate-receipt.json|/home/noah/src/aprender and |/home/noah/src/aprender/.git/config. Replaced with <repo_root>; the receipt is this session's artifact, not a tool output anyone re-reads by path.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… GPU hosts, cuda-nightly standing-RED since the v0.66.0 sha, why gx10 idles (X64 pin, #3139 795 s, ENOSPC), §6 triage to untriaged=0, one-at-a-time drain [skip ci]

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…nder PR work under any intel queue pressure is P0 (selector row 0, §1, §3.4, §3.5 SSH, §5 P0·Pack + P0·Reap, §7 pack: line, §8 stops) [skip ci]

Operator 2026-09-12, verbatim in §1. §3.4 no longer says one PR at a time: the queue builds 3 by design, dequeue only a KNOWN-RED group. §3.5 distinguishes durable config (forjar) from measurement/unclogging over SSH. Ground truth (§2) gains the measured X64 pin and the gx10/yoga disk layout.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…changed (SSH measurement, 146 GB reclaimed, forjar P0·Reap live on gx10+yoga via infra#549, packing rule, spec e874769), the stacked-merge-group resolver defect #3186#3187, 16 ledger records incl. fleet-pack samples [skip ci]

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… on #3186, the GPU-host nightlies on the cut, fleet-pack samples [skip ci]

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…n-room gate that discriminates nothing (#3189), the steward's unreachable live path (#3190), and the packing denominator [skip ci]

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…or ruling 2026-09-13; the train publishes itself after dogfood GO + assets + preflight [skip ci]

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…08 open / 424:124 arrival:closure / 95 fixed-but-open / 847 PR-less branches; five predicates, receipt in the ledger, no DONE without it (operator 2026-09-13, kaizen) [skip ci]

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… (776 branches archived) / R4 1 / closure:arrival 22:61; 2 issues closed, 3 dirty PRs resolved, 1 closed, 10 verdicts pending [skip ci]

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… — 3 bashrs NO-GO(s), then GO + tag at e45eaab

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Contributor Author

APR-RELEASE-001 §7 — session report

APR-RELEASE-001 | did=TRAIN | train=v0.67.0 | verdict=PUBLISHED
train:   step reached T-4 | skip reason none | attended min [U] — T-4 is Noah's, unmeasured until he runs it
build:   row P0·Pack + P0·Instrument (records only) | PR https://github.com/paiml/aprender/pull/3164 (docs+ledger) | records added 1086 gate-job + 5 fleet-pack
gate:    p95 ci/gate 107.5 min | max PRs/train 40.2 | queue p95 intel 1036s yoga 832s gx10 1399s
pack:    occupancy(ledger) 1h intel 32% gx10 22% yoga 23% | 4h intel 38% gx10 28% yoga 25% | CAP 16/6/5 | intel-pressure no | verdict P0-UNDERUTILIZED
triage:  arrival 77 | closure 22 | open PRs 30 (age p95 15d) | untriaged 7
next:    0.68.0 train eligible 48 h after the v0.67.0 crates.io publish — [U] until the operator runs the attended drain (§3.2 spacing)

Tag: https://github.com/paiml/aprender/releases/tag/v0.67.0 · release commit e45eaab4796d02c6140c6cc89e146c07c0ed4c48 · 16 asset(s) on the release · preflight_pass=1 · T-4 automated: published=1, cascade check: 0 crate(s) behind (operator ruling 2026-09-13: the train publishes itself).

🤖 Generated with Claude Code

@noahgift
noahgift marked this pull request as ready for review September 13, 2026 09:17
@noahgift
noahgift enabled auto-merge September 13, 2026 09:17
@noahgift
noahgift added this pull request to the merge queue Sep 13, 2026
@noahgift

Copy link
Copy Markdown
Contributor Author

T-5 R-4 — verdicts applied (2026-09-13T10:40Z)

PR verdict state
#3006 REBASE merged onto main; guard runs bare under guard_tree; fixture builder allowlisted; armed
#3004 REBASE merged; dogfood coverage literals re-derived (144/837); tree-reader registry re-derived; armed
#3060 REBASE merged; ci.yml keeps both step blocks; armed
#2720 REBASE merged; perf-solo selector on the labels runner 16 actually carries; armed
#2838 REBASE merged; ci.yml = main (beat executes in cuda-nightly); undrafted; armed
#3134 SPLIT R2a artifacts + coverage-nightly kept, backward.rs dropped; armed
#3056 SPLIT review + receipts kept, cuda-nightly.yml + runner-label edits dropped; armed
#3041 SPLIT deferred until #3004 lands (R-0b sits on R-0); comment on the PR
#3021 BEHIND→fixed DAG block re-rendered (G-4); cuda-unit cta64_vs_cta32_vs_cublas_fp16 failed on a GpuBuffer expect (yoga, resource) — rerun in flight

Also: mini-m4 re-registered and taking macos-arm64 (#3205); refs/pull/N/head lag fixed in the packer/union (#3200 pushed); main red 34749798339 was an env death (dep-info file vanished) and is green on rerun.

The reconcile receipt file update rides the next docs PR (this one is in the merge queue; a push would dequeue it).

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant