Repository navigation
Commit d4064cc
docs(skills): teach the report-index navigation item beside the named report (#27903)
<!-- claude-projects-attribution: {"github_login":"os-elon-musk"} -->
_Requested by **Elon** · [project
thread](https://claude.ai/code/project/chan_01WedDzV26nniwxv7jC88B9D?thread=cmsg_01WedDzV26nniwxv7jC88B9DNvPy54H5n7j69Aajt6Kkjc)_
domain:skills#2 · os-elon-musk · session_016WV4cyZb8pD9989yV2qXKE
Fixes #27609
## What changes
- `skills/objectstack-ui/SKILL.md` (navigation item table): the `report`
row marks `reportName?` optional and says that without it the entry is
the app's report index.
- `skills/objectstack-ui/rules/navigation.md`: the compiled `App.create`
example gains `{ id: 'nav_reports', type: 'report', label: 'Reports',
icon: 'library' }` beside the named report, with a comment that the
console adds no index entry itself. Paid for by shortening the
`filters`-slice comment above it, which restated the Run Modes table and
decision rule further down the same file.
- `skills/objectui/guides/app-composition.md` (added to the file surface
by the seat's claim amendment): the route table gains `{type:'report'}`
→ `/reports`. Paid for by dropping the Contract Reminders' parenthetical
list of target keys, which restated the table's first column.
- `skills/objectstack-ui/evals/views-apps-actions-pages.json`: case 10
asks for an app's Reports entry and expects `{ type: 'report' }` with no
`reportName`.
- `scripts/check-skills-token-ratchet.mjs`: one row raised (the eval
file), under the standing ruling quoted verbatim in the row comment.
- Changeset: `@objectstack/skills` patch.
## Why
PR #27566 (`bf658d1b8`) made `ReportNavItemSchema.reportName` optional
(`packages/spec/src/ui/app.zod.ts:687`): absent, the entry opens the
app's report index (`resolveHref` → `${basePath}/reports`,
`ui/packages/layout/src/NavigationRenderer.tsx:1013`), and the console
stopped injecting an "All reports" row, so an app shows the index only
where its navigation declares it. The published skills still taught only
the named form, so an agent following them shipped an app with no report
index entry. No other skill page claims an injected "All reports" row
(grep of `skills/**` for "All reports" / "report index": none before
this PR).
## Verification
Token measurements (`node scripts/check-skills-token-ratchet.mjs`,
ceil(bytes/4)):
| File | Before | After | Ceiling |
|:--|--:|--:|:--|
| `skills/objectstack-ui/SKILL.md` | 3840 | 3848 | 3851 (unchanged) |
| `skills/objectstack-ui/rules/navigation.md` | 2271 | 2273 | 2273
(unchanged) |
| `skills/objectui/guides/app-composition.md` | 1078 | 1078 | 1079
(unchanged) |
| `skills/objectstack-ui/evals/views-apps-actions-pages.json` | 2009 |
2108 | 2009 → 2108 |
The eval row moves under the maintainer ruling of 2026-10-27, verbatim:
「A:先削重复,余额按实测提高」. The file's cases share no sentence, so there was no
duplicate to cut first; the ceiling is pinned at the measurement (8432
bytes).
Gates: `node scripts/pm/dispatch-gates.mjs --ran` on `8af37ee5`: 65
derived families accounted for, 61 run and green, 4 NOT MEASURED (exit
3, prerequisite: whole-tree `dist/`): `check:dts-closure`,
`check:dual-build-cjs-loads`, `check:lean-entry-closure`,
`check:sourcemap-no-sources-content`. `check:skill-examples` (274 prose
examples type-check, the edited `os:check` block included) and
`check:doc-formula-expressions` were green after building their
prerequisites. `pnpm --dir ui exec vitest run scripts/` was red once on
the first run (`spec-symbol-ledger-plugin-detail-7265.test.ts`), green
alone on both this head and `main`, and green on a full rerun (169
files, 4902 tests). `eslint` on the edited script: clean.
Clause-②: no
Metadata-protocol: none
## Human Minimum
- [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic.
(No spec change.)
- [x] 2. Every name I added uses the casing for its kind.
- [x] 3. No formatter ran; eslint on the edited script passes (full
`pnpm lint` left to CI).
- [x] 4. One issue, one branch off an up-to-date `main`, one pull
request.
- [x] 5. A change that publishes carries a changeset, and both
declaration lines are filled in here and in the changeset.
- [x] 6. `packages/spec` not touched.
- [x] 7. No hand edits to `content/docs/references/`,
`packages/*/CHANGELOG.md` or `content/docs/releases/`.
- [x] 8. Title, body and comments are in English.
- [x] The *Before Submitting* list in CONTRIBUTING.md is done.
## 维护者速读
- 改了什么:技能教会报表导航项的「索引」写法:`{ type: 'report' }` 不写 `reportName`
就打开该应用的报表索引(`/reports`)。
- 为什么:#27566 之后控制台不再自动注入「All reports」行,应用只在导航声明处才有报表索引入口;技能只教具名报表,AI
照着写会漏掉索引入口。
- 改动面:objectstack-ui 的导航表一行与导航示例一项,objectui 路由表一行,新增 eval 第 10 例;无
schema、键或行为变更。
- token:三个文档文件都在原上限内(删去同文件重复句付账);eval 文件上限 2009→2108,依据 2026-10-27
裁决「A:先削重复,余额按实测提高」。
- 验证:65 族 gates 中 61 族绿,4 族因整树未构建为 NOT MEASURED;skill-examples 274
例类型检查通过。
- 落地:欠 CONTRACT_REVIEW_TIER 契约复审,落地为 Tier H(待受管批准人批准)。
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_016WV4cyZb8pD9989yV2qXKE
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 1199dff commit d4064cc
6 files changed
Lines changed: 35 additions & 8 deletions
File tree
- .changeset
- scripts
- skills
- objectstack-ui
- evals
- rules
- objectui/guides
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1123 | 1123 | | |
1124 | 1124 | | |
1125 | 1125 | | |
1126 | | - | |
1127 | | - | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
1128 | 1133 | | |
1129 | 1134 | | |
1130 | 1135 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
171 | | - | |
| 171 | + | |
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
93 | 103 | | |
94 | 104 | | |
95 | 105 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
34 | | - | |
35 | | - | |
| 33 | + | |
36 | 34 | | |
37 | 35 | | |
38 | 36 | | |
| 37 | + | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
33 | | - | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
0 commit comments