Repository navigation
spec(igla): own_model_board.t27 -- the own-model map as an IGLA board event (Closes #10037) - #10048
Merged
Merged
Conversation
… event (Closes #10037) Projects specs/igla/own_model.t27 into the event the IGLA board already renders: job and stage "own_model", progress = overall percent / 100, msg = "1 published, 11 verified, 8 drafts, 7 gaps; 39%", metrics = the three lens percentages and 27 {status, pct} pairs (621 bytes, limit 4096). Every field is a literal so a declaration backend can print it; the tests hold each one to own_model: the arrays match cell by cell, a gap cell is never above 0 percent, the tally sums to 27, the msg numbers are read back and compared to count_status, and the metrics size is computed from the keys. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #10037
What
specs/igla/own_model_board.t27, a pure-t27 spec that states the own-model map(
specs/igla/own_model.t27, epic #10024) as the event the IGLA board already renders(
{job, stage, msg <= 500, progress 0..1, metrics <= 4 KB}, gHashTag/igla-coder-gpuboard/server.py):job,stage"own_model"progress0.39mean_pct(0, 27) / 100, inside 0..1msg"1 published, 11 verified, 8 drafts, 7 gaps; 39%"count_status(own_model::STATUS, ...)and the overall mean; the words between them are checkedmetrics{"lens_pct":[45,45,28],"cells":[{"status":4,"pct":60},...]}CELL_STATUS/CELL_PCTequalown_model::STATUS/PCTcell by cell;LENS_PCT[l] == mean_pct(9l, 9); size 621 bytes, computed from the keys and values (worst case, every pct 100, also under 4096)Every field is a literal so a declaration backend can print it. The tests tie each literal to
own_model, so ifown_model.t27changes and this file is not updated, this spec fails. Thenegative control below shows that happening.
Tests:
the_metrics_are_own_models_arrays,a_gap_cell_is_never_above_zero_percent,the_tally_sums_to_twenty_seven,the_message_is_the_tally,progress_is_the_overall_percent_over_a_hundred,the_metrics_fit_the_board. Each one alsocarries a wrong fixture that must be refused: a gap drawn at 10 percent, a copy one cell off, a msg
with one number or one word wrong, a progress one point off or outside 0..1.
Lab output (Railway t27c lab, not the Mac)
Tree: gHashTag/t27
c92f453(master) + this file, sha256d26d5128...6fae.t27c 0.5.2 built from
9a7d54aaf, zig 0.16.0.Negative control: on the lab copy only,
own_model.t27PCT[0]was changed from 60 to 61, then restored:Can
t27c gen-jsemit this as a generated file undergen/? No.t27c gen-js specs/igla/own_model_board.t27succeeds (rc 0,__NOT_EMITTED__ = []) and printsevery field as a value:
It cannot produce the event itself, though. The output is an ES module of
export constlines,not the JSON object that
POST /eventtakes. The 27{status, pct}pairs exist only as twoparallel arrays, and
gen-jsdoes not evaluate functions. Turning this module into a JSON bodyneeds a step that imports it and serializes it, which would be new hand-written JS or Python.
So nothing is committed under
gen/, and no JSON is written by hand.The route that stays inside the rules is a JSON target for the existing value layer,
t27c gen-json. It would emit the same values asgen-js, with JSON spelling and with the event keysthis spec declares (
KEY_LENS,KEY_CELLS,KEY_STATUS,KEY_PCT). That is Rust underbootstrap/, so it needs the owner'sowner-approved-foreignlabel first. It is not part of this PR.Not in this PR
board.railway.internal:8081/event. It waits on a JSON artifact.🤖 Generated with Claude Code