Skip to content

Commit 0ff3d96

Browse files
claude[bot]claude
andauthored
docs(skills): document the action and component nav item types (#14138)
* docs(skills): document the action and component nav item types The objectstack-ui Navigation Item Types table listed 7 of the 9 live discriminated-union members; `action` and `component` had no row, so an author reading the published skill could not discover either target. Funded within the file's token ceiling (headroom was 0) by deleting two Common Pitfalls entries that carry no fact the file does not state better elsewhere: - pitfall 1 restated the Data Source best-practice block verbatim (and that block is the richer of the two -- it also names automatic CRUD); - pitfall 4 ("always add a quick filter") is superseded by the ADR-0047 userFilters section, which prescribes the opposite default: omit `userFilters` when unsure, most views need no filter elements at all. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Msg17tAHJ3jVTYFgHydCm2 * chore(gates): ratchet the skill-identifier-liveness Leg 2 gap to zero The recorded NavItemVariant gap of 2 (action, component) is closed by the table rows in the previous commit; the gate refuses an improvement that leaves budget behind for a later edit to spend silently. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Msg17tAHJ3jVTYFgHydCm2 --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent c85a265 commit 0ff3d96

2 files changed

Lines changed: 6 additions & 17 deletions

File tree

scripts/skill-identifier-liveness-ledger.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,5 @@
3131
"note": "Live in ../objectui at packages/plugin-gantt/src/GanttView.tsx, same shift-band prop family as dayStart. Unreachable from this repo's index for the same reason."
3232
}
3333
],
34-
"leg2Gaps": {
35-
"navigation-item-types": [
36-
"action",
37-
"component"
38-
]
39-
}
34+
"leg2Gaps": {}
4035
}

skills/objectstack-ui/SKILL.md

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,8 @@ export const CrmApp = App.create({
641641
| `report` | `reportName`, `label`, `icon` | Link to a report |
642642
| `page` | `pageName`, `label`, `icon` | Link to a custom Page (`type: 'home' | 'list' | ...`) |
643643
| `url` | `url`, `label`, `icon` | External or custom URL |
644+
| `action` | `actionDef` (`{ actionName, params? }`), `label`, `icon` | Run an action instead of navigating |
645+
| `component` | `componentRef`, `params?`, `label`, `icon` | Built-in platform component; `componentRef` is a colon-joined registry key (`metadata:resource`), `params` become props |
644646
| `separator` || Visual separator |
645647

646648
> **`requiresObject` / `requiresService`:** Use these on any item that
@@ -2053,23 +2055,15 @@ the selected row in `list_item` contexts.
20532055

20542056
## Common Pitfalls
20552057

2056-
1. **Using `provider: 'api'` when `provider: 'object'` is available.**
2057-
Object provider gives you free filtering, sorting, pagination, and
2058-
real-time updates.
2059-
2060-
2. **Putting too many columns in a grid view.**
2058+
1. **Putting too many columns in a grid view.**
20612059
Users rarely need more than 6–8 columns visible by default. Use `hidden`
20622060
for secondary columns.
20632061

2064-
3. **Forgetting `link: true` on the primary column.**
2062+
2. **Forgetting `link: true` on the primary column.**
20652063
The first meaningful column (usually the name/subject) should be the
20662064
navigation link to the record detail.
20672065

2068-
4. **Not setting quick filters.**
2069-
Quick filters dramatically improve usability. Always add at least a
2070-
"My Records" filter using `$currentUser`.
2071-
2072-
5. **Putting widget grid placement in `position`.**
2066+
3. **Putting widget grid placement in `position`.**
20732067
The grid-placement field is `layout: { x, y, w, h }``position` is not a
20742068
widget key and the closed schema REJECTS it by name (it was silently
20752069
dropped before protocol 17). `layout` is optional: omit it and the widget

0 commit comments

Comments
 (0)