Commit 8923843
fix(skills,docs): align skills/docs with published spec; guard flat view containers (#3096)
Fixes the five skill/doc-vs-spec drifts found by the 2026-07-17 third-party
evaluation of the 15.1.0 release (AI following the official skills produced
metadata that failed or silently broke):
1. objectstack-data skill taught `defineDataset()` for seeds — the actual
export is `defineSeed()` (`dataset` is reserved for the ADR-0021 analytics
layer). Renamed the whole section incl. imports, type table, zod path.
2. Same skill taught a `type: 'unique'` validation — removed from the spec in
#1475. Now teaches `indexes: [{ fields, unique: true }]`; also purged the
fictional `async`/`custom` types from rules/validation.md, fixed
`format.pattern`→`regex` (no `uuid` builtin), `conditional` to its real
`when`/`then`/`otherwise` shape, converted all predicates to record-rooted
CEL (`P` tag), and documented that `cross_field` is failure-condition
(inverted) like `script`, per the runtime rule-validator.
3. objectstack-ui skill kanban example used a top-level `groupBy` — the real
shape is nested `kanban: { groupByField, summarizeField, columns }` with
top-level `columns` still required. Gantt examples had the same flat
disease with wrong key names (`startField`/`dependencyField` →
`gantt.startDateField`/`dependenciesField`); `timeSegments` moved inside
the `gantt:` block; column `summary` is a plain enum, not an object. Added
a `defineView` container primer to the skill.
4. docs ui/views taught flat view objects that `os validate` passed but the
Console silently never rendered (ViewSchema strips unknown keys → empty
container). Page rewritten around the `defineView({ list, listViews,
formViews })` container + stack registration; property tables corrected
(`columns` required; `name`/`label` optional; `span` over legacy
`colSpan`; `visibleWhen` is record-rooted CEL).
5. README quickstart curl path `/api/v1/todo_task` → `/api/v1/data/todo_task`.
Root-cause guard for #4: `defineView()` now throws on a container with zero
views, and `os validate` gains a `view-container-shape` check
(`validateViewContainers` in @objectstack/lint, run PRE-parse like the
ADR-0053 check) reporting flat/empty `views: []` entries with a fix hint.
The runtime view type-schema mapping is deliberately untouched (ViewItem +
container + #2555 personalization shapes need their own change).
Regenerated skills/README.md + content/docs/ai/skills-reference.mdx via
gen:skill-docs.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>1 parent 37c12e8 commit 8923843
16 files changed
Lines changed: 679 additions & 259 deletions
File tree
- .changeset
- content/docs
- ai
- ui
- packages
- cli/src/commands
- lint/src
- spec/src/ui
- skills
- objectstack-data
- rules
- objectstack-platform
- objectstack-ui
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
187 | | - | |
| 187 | + | |
188 | 188 | | |
189 | 189 | | |
190 | 190 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
0 commit comments