Skip to content

blog: next_skeleton -- the form of entry N+1, computed in .t27 (Refs #12660, #12800) - #12803

Merged
gHashTag merged 1 commit into
masterfrom
blog/skeleton-gen
Oct 27, 2026
Merged

gHashTag merged 1 commit into
masterfrom
blog/skeleton-gen

Conversation

@gHashTag

Copy link
Copy Markdown
Collaborator

Refs #12660, #12800 (the how-to whose copy-block this computes).

next_skeleton emits the form of entry N+1 from the current arrays: every column re-declared one element longer, its stored values verbatim, and a MEASURE mark in the new slot -- the fill-in target of EPIC_ENTRY_HOWTO.md's three measuring commands. The copy block in the how-to is now the computed thing's printout, not a hand-maintained twin.

The test pins the FORM, never the values

count-based asserts: 7 columns, 7 MEASURE marks, 7 ]u32 = [, 7 , MEASURE];, 7 pub const , and the stored date verbatim once. Nothing in the test names a value that a future entry would change -- it survives every landing after it, which the previous version of this test (pinning entry-2's 13) demonstrated by failing.

Verification (measured on this tree)

  • test-report: 4 tests, pass 4, FAIL 0; the card's own entry-2 asserts still classify 2 CT-VERIFIED + 1 CHECKED, vacuous 0 of 3
  • pure .t27, zero foreign lines

Refs the how-to: filling the MEASURE marks is three gh commands away; a placeholder that reaches master is a lie, and this card's own asserts are the gate that stops it.

@gHashTag
gHashTag enabled auto-merge (squash) October 27, 2026 07:06
@tri-claw

tri-claw Bot commented Oct 27, 2026

Copy link
Copy Markdown

Summary by t27-bees

Checked by the t27 compiler

t27c parse, parse-complete and typecheck on each changed .t27 file at 25e8be4. Nothing was generated, built or run. A pass means the file is well formed, not that it is right.

  • specs/blog/epic_progress.t27: parses and typechecks.

Read by the model

This change adds a next_skeleton function that generates the source form of the next blog entry (entry N+1) by re-declaring all seven column arrays one element longer, copying stored values verbatim, and placing a MEASURE placeholder in the new slot. A test verifies the skeleton's shape via count-based assertions (7 columns, 7 MEASURE marks, etc.) rather than pinning values, so it survives future entries.

Worth a look

  • specs/blog/epic_progress.t27:124 (put_col) — writes to out without bounds checking; the cap parameter passed to next_skeleton is never used, so a too-small buffer will overflow.
  • specs/blog/epic_progress.t27:107 (put_num) — same lack of bounds checking; digits array is correctly sized for u32 (10 digits).
  • specs/blog/epic_progress.t27:100 (put_str) — no bounds checking on the destination buffer.
  • specs/blog/epic_progress.t27:147 (count_needle) — increments i by 1, counting overlapping occurrences; harmless for "MEASURE" but a subtle semantic difference from non-overlapping search.
  • specs/blog/epic_progress.t27:165 (test) — only asserts counts and one date ("20261026"); does not verify column order, that each column's stored values appear in the right column, or that the generated syntax is otherwise well-formed.

Read: 1 files, +87 -0, the whole diff. Head 25e8be4. Model: openai-compatible/nvidia/nemotron-3-ultra-550b-a55b. Commands: @t27-bees review | summary | help | pause | resume. Free for every repository.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-27 07:23:19 UTC

Summary

Status Count
Total Open PRs 14
PRs with Failing Checks 13
PRs with All Checks Green 1
READY 0
FAILING 13
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 13 + 0 + 0 = 13, and there are 14 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=67adcf31aff7 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

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