slovo/.llm/BETA_10_DEVELOPER_EXPERIENCE_API_DISCOVERY.md

63 lines
2.8 KiB
Markdown

# 1.0.0-beta.10 Developer Experience API Discovery
Status: release scope for `1.0.0-beta.10`.
`1.0.0-beta.10` is a tooling/docs slice on top of the beta.8 concrete alias
foundation and beta.9 collection alias unification work. It improves API
discovery for the existing source-authored standard library and adds
editor-facing source metadata without adding new source-language execution
semantics, compiler-known runtime names, or runtime helpers.
## Scope
- Upgrade `scripts/render-stdlib-api-doc.js` so the generated
`docs/language/STDLIB_API.md` catalog lists exact exported helper
signatures, not only helper names.
- Parse each `lib/std/*.slo` module, collect module-local `(type ...)`
aliases, and normalize those aliases recursively in public helper
signatures.
- Verify exported helper names have matching `(fn ...)` forms.
- Omit non-exported helper functions and `(type ...)` aliases from the public
catalog.
- Regenerate `docs/language/STDLIB_API.md`.
- Add `glagol symbols <file.slo|project|workspace>` for deterministic
`slovo.symbols` S-expression metadata over modules, imports, exports,
aliases, structs, enums, functions, tests, spans/ranges, and workspace
package names.
- Update README, language docs, compiler docs, and the post-beta roadmap to
describe beta API discovery clearly.
## Public Contract
The generated catalog is a beta discovery aid for the current `lib/std`
surface. Public signatures show concrete types such as `(vec i32)`,
`(option string)`, and `(result u64 i32)` instead of module-local alias names
such as `VecI32`, `OptionString`, or `ResultU64`.
The catalog remains generated from source and is not a hand-maintained API
freeze. It can help reviewers see current helper signatures, but it does not
make those helpers stable `1.0.0` standard-library APIs.
The `symbols` command is an editor-integration building block, not an LSP
server. Its output is deterministic machine-readable S-expression text and
uses the beta10 `slovo.symbols` schema label.
## Explicit Non-Scope
- no executable generics
- no generic aliases or parameterized aliases
- no maps or sets
- no traits, inference, monomorphization, or iterators
- no new compiler-known runtime names
- no runtime helper or ABI/layout changes
- no LSP server, watch mode, SARIF, or daemon protocol
- no stable `1.0.0` standard-library freeze
## Checks
Focused checks for this slice:
- `node scripts/render-stdlib-api-doc.js`
- `cargo test --test symbols_beta10`
- `git diff --check -- scripts/render-stdlib-api-doc.js docs/language/STDLIB_API.md compiler/src/main.rs compiler/src/symbols.rs compiler/tests/symbols_beta10.rs README.md docs/language/SPEC-v1.md docs/language/ROADMAP.md docs/language/RELEASE_NOTES.md docs/compiler/ROADMAP.md docs/compiler/RELEASE_NOTES.md docs/POST_BETA_ROADMAP.md .llm/BETA_10_DEVELOPER_EXPERIENCE_API_DISCOVERY.md`