docs: catch up SPEC.md, SKILL, README with v0.10.x + v0.11.x surface#262
Merged
Conversation
…n SPEC.md The SPEC.md builtin table had drifted significantly behind shipped surface across the v0.10.x and v0.11.x cycle. ai.txt is regenerated from SPEC.md by build.rs, so this drift was visible to every agent loading the compact spec via 'ilo help ai'. This commit reconciles the spec against the actual language surface and lets build.rs regenerate ai.txt accordingly. Added to the builtin table: - math: sqrt, pow, exp, log, log10, log2, sin, cos, tan, atan2, rou, rndn, clamp - stats: median, quantile, stdev, variance, cumsum, frq - linalg: transpose, matmul, dot, solve, inv, det, fft, ifft - lists: at, lst, take, drop, rsrt, uniqby, zip, enumerate, range, chunks, window, flatmap, partition - set ops: setunion, setinter, setdiff - text: chars, ord, chr, upr, lwr, cap, padl, padr, rgxall, rgxsub, fmt2 - time: sleep, dtfmt, dtparse - I/O: rdjl, get-many Plus dedicated subsections for datetime, set operations, linalg, and FFT that call out the conventions and edge cases. Syntax + CLI updates: - Dot-access accepts reserved keywords, camelCase, leading-uppercase, snake_case, and kebab-case as field names. - Range bounds accept call-form expressions and prefix-op expressions. - Multi-line function bodies inside brackets, parens, and pipe chains. - New CLI invocation section covering --ast, default-run, text-typed params, exit codes (Value::Err -> 1), and CLI list args. Builtin aliases table picks up lset -> lst, regex_all -> rgxall, regex_sub -> rgxsub, round -> rou, random -> rnd.
The skill's at-a-glance builtin map is what agents see first when ilo is loaded as a Claude plugin. The categories had drifted behind shipped surface across the last two release cycles. Reorganised into seven groups (math, transcendental, stats, linalg, text, lists, set ops, I/O, HTTP, JSON, map, HOF, time) and added every new builtin so the index matches SPEC.md and ai.txt.
The README intro hadn't been updated since the v0.10.x stdlib expansion. Adds a 'batteries included' block under the auto-unwrap example so visitors hitting the repo for the first time see that math, stats, linalg, datetime, JSONL, and concurrent HTTP all ship without leaving the language.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This was referenced May 14, 2026
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.
Summary
The SPEC.md builtin table, skill index, and README intro had drifted significantly behind the language surface that shipped across v0.10.x and v0.11.x (PRs #133 through #261).
build.rsregeneratesai.txtfrom SPEC.md, so the drift was visible to every agent loading the compact spec viailo help ai. This PR reconciles the spec against the actual surface.Per the project's auto-doc rule, today's session (~30 PRs merged since v0.11.1) also never produced per-PR task docs at
/Users/dan/code/cubitts-launch/docs/tasks/. Those have been backfilled out-of-tree (cubitts-launch is not a git repo, so they're just on disk).What's in the diff
Commit 1: SPEC.md + ai.txt — adds ~60 builtins to the Builtin Reference table (math, stats, linalg, FFT, set ops, text case/padding/regex-all, datetime, JSONL, concurrent HTTP), adds dedicated subsections for datetime, set operations, linalg, and FFT, documents dot-access flexibility (reserved keywords, camelCase, leading-uppercase, snake_case, kebab-case), range bounds with call-form and prefix-op expressions, multi-line bodies inside brackets/parens/pipes, and a CLI invocation section covering
--ast, default-run, text-typed params, exit codes forValue::Err, and CLI list args. ai.txt is the build.rs regeneration.Commit 2: SKILL.md — refreshes the at-a-glance builtin index agents see first when ilo is loaded as a Claude plugin. Reorganised into clearer categories and added every new builtin.
Commit 3: README.md — adds a 'batteries included' block under the auto-unwrap example so first-time visitors see that math, stats, linalg, datetime, JSONL, and concurrent HTTP all ship without leaving the language.
SPEC inconsistencies flagged (not fixed here)
Audit notes that surfaced while walking the v0.10.x history. None block this PR; capturing them so they aren't lost:
prntf,!!panic-unwrap, and!?operator — referenced in today's session report but not present in the source tree (noBuiltin::Prntf, noBangBangtoken, no!?parser handling). Treated as not-shipped for the purposes of this audit. If they're planned, they belong in a future PR with the implementation; if they were renamed, the report needs correcting.round, random -> rnd, but the implementation mapsround -> rouandrandom -> rnd. Fixed in this PR.Test plan
cargo build --release --features cranelift—build.rsregeneratesai.txtfrom the updated SPEC.md cleanly.cargo test --release --features cranelift— running;examples_enginesand SPEC-driven tests confirm no semantic regression. (Doc-only changes; failure here would indicate a SPEC claim contradicted by an example.)Follow-ups
prntf/!!/!?are actually planned, open a tracking issue so the SPEC entry lands with the implementation.