Repository navigation
docs(data): teach the contract convention and the generated manifest in the data guide - #2642
Conversation
…in the data guide
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
octane-website-mcp | 9d17fdb | Commit Preview URL Branch Preview URL |
Nov 14 2026, 01:40 AM |
Benchmark report🟢 No byte growth, no added work, and no timing changes beyond ±3%. Compares js-framework: 1k/10k row operations
All 20 timed operations (19 without a verdict)
All 64 work counters are unchanged. Application bundle size (bytes)No changes across 111 measured values. Public-import reachability bundles (bytes)No changes across 141 measured values. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
octane-website | 9d17fdb | Commit Preview URL Branch Preview URL |
Nov 14 2026, 01:41 AM |
… manifest replaces (#2644) * docs(data): document the octane/data contract check and generated manifest * docs(data): number the contract rules with examples and show the manifest replacing hand-kept lists Builds on #2642's contract-check section: the four rules with accepted and rejected examples, the .map/for…of loop form, and the shelf session before and after octane/data/manifest. Restores #2642's docs/data.md and llms.txt, which already cover these.
Summary
Last part of step 3 of the
octane/datacontract convention: the data guide now teaches the convention that #2605, #2624 and #2630 built.website/src/content/docs/data.mdx:./contracts.data.ts.receiptread is now declared in the contract module, so code that runs no longer declares contracts.windowOffactory takesShelf.books.viewinstead of the contract.contractsfromoctane/data/manifestinstead of building the list by hand.octane analyze,data: true/false, and a table of the manifest's exports.docs/data.md:octane/data/manifestis added to the entry points, with a paragraph pointing to the check.website/public/llms.txt: a "build check" bullet, and the corrected import path.journal.writesnow counts as a contract site, so a journal can still list a subset of writes inline (journal: { writes: [addBook, setRead], receipt }). The guide teaches that form, and it was anESCAPEbefore. The catalog, a test and a patch changeset are included.Validation
website/tests/data-docs.test.ts(reference table against the real exports),strong-diagnostics-catalog,data-contracts.test.ts(newwritessite)pnpm sync,pnpm format:files:checkpnpm test: left to CI.perf-review: not applicable. The only code change is one property name in the per-module analysis.concise-code: +105 −50, almost all docs. Alternative considered: teach the manifest'swritesonly. Rejected, because choosing which writes to journal is a documented feature, and keeping it costs one word in the compiler.Risk / follow-ups
Provenance
agent-authored)Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Note
Low Risk
Almost entirely documentation; the compiler change is a single property site with a matching unit test.
Overview
Documents the
*.data.tscontract convention and generatedoctane/data/manifestacross the data guide, reference docs, strong-mode diagnostics, and LLM index. Examples now import fromcontracts.data.ts, and new sections explain build-time contract checks and manifest exports (contracts,writes,identity).The only runtime/compiler change treats
journal.writeslike other contract sites (e.g.feeds,journal.receipt), so an inline list such asjournal: { writes: [addBook, setRead], receipt }is analyzed instead of trippingOCTANE_DATA_CONTRACT_ESCAPE. Diagnostic catalogs, tests, and a patch changeset are updated to match.Reviewed by Cursor Bugbot for commit 9d17fdb. Bugbot is set up for automated code reviews on this repo. Configure here.