Skip to content

docs: catch up SPEC.md, SKILL, README with v0.10.x + v0.11.x surface#262

Merged
danieljohnmorris merged 3 commits into
mainfrom
docs/auto-doc-catchup-2026-05-13
May 13, 2026
Merged

docs: catch up SPEC.md, SKILL, README with v0.10.x + v0.11.x surface#262
danieljohnmorris merged 3 commits into
mainfrom
docs/auto-doc-catchup-2026-05-13

Conversation

@danieljohnmorris
Copy link
Copy Markdown
Collaborator

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.rs regenerates ai.txt from SPEC.md, so the drift was visible to every agent loading the compact spec via ilo 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 for Value::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 (no Builtin::Prntf, no BangBang token, 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.
  • The earlier alias table claimed round, random -> rnd, but the implementation maps round -> rou and random -> rnd. Fixed in this PR.

Test plan

  • cargo build --release --features craneliftbuild.rs regenerates ai.txt from the updated SPEC.md cleanly.
  • cargo test --release --features cranelift — running; examples_engines and SPEC-driven tests confirm no semantic regression. (Doc-only changes; failure here would indicate a SPEC claim contradicted by an example.)
  • CI green.

Follow-ups

  • Per-PR task docs for the v0.10.x range (~80 PRs) were deliberately left out of scope; the auto-doc rule only requires backfill for the latest session. Future ilo PRs will create their own task doc at merge time.
  • If prntf / !! / !? are actually planned, open a tracking issue so the SPEC entry lands with the implementation.

…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
Copy link
Copy Markdown

codecov Bot commented May 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@danieljohnmorris danieljohnmorris merged commit 6239887 into main May 13, 2026
5 checks passed
@danieljohnmorris danieljohnmorris deleted the docs/auto-doc-catchup-2026-05-13 branch May 13, 2026 22:20
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