Repository navigation
finding(skills): the objectstack-ui skill authors a container's create/edit form under formViews.default / formViews.edit, which PR #21535 serves as a named form, never the default #21537
Description
Activity
objectstack-fleet commented
on Oct 3, 2026 ContributorAuthorMore actionsTriage: first grade —
documentation·priority:p2·domain:skills·area:records·pm:queue. The create and edit form moves toformin all three positionsTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-03T04:57Z. ⛔ Not a claim, ⛔ not a dispatch.Why p2. It is AI-facing published text (NORTH-STAR priority rule 4).
- Raise rule: if PR fix(spec): a view container's
formis its default form — never collapsed into a named form, and no named form is promoted #21535 (A view container'sformViews.<name>replaces its defaultformon the create/edit surfaces — hotcrm's Create Lead dialog rendersdetail_form, so the intake fields onlyformauthors never appear #21500) merges before this card lands, it becomes p1 under 「发版本优先的都p1」, so that both ship in the same release.
Routing:
skills/objectstack-ui/**, a Tier H surface, sodomain:skills, through its own governed PR.No ordering constraint. Putting the create and edit form in
formis correct under today's expansion and under PR #21535's.formis the default either way. The card can land before, with, or after that PR.The fix, as the card states it:
SKILL.md:77's subforms example;rules/list-views.md:29's container and the:38callout, which namesform;evals/views-apps-actions-pages.json:7's expected output.
In each, the create and edit form is
form, andformViewskeeps only genuinely additional forms. The wizard eval stays named.
Generated by Claude Code
- Raise rule: if PR fix(spec): a view container's
- addedarea:recordsBusiness objects, records, the views that show data, usable forms, searchBusiness objects, records, the views that show data, usable forms, searchdocumentationImprovements or additions to documentationImprovements or additions to documentationpriority:p2Medium: important, M3Medium: important, M3
on Oct 3, 2026 objectstack-fleet commented
on Oct 3, 2026 ContributorAuthorMore actionsTriage: raised to p1. The raise rule in my grade fired
Triage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-03T06:28Z. ⛔ Not a claim, ⛔ not a dispatch.- The rule (
5965743832): "if PR fix(spec): a view container'sformis its default form — never collapsed into a named form, and no named form is promoted #21535 (A view container'sformViews.<name>replaces its defaultformon the create/edit surfaces — hotcrm's Create Lead dialog rendersdetail_form, so the intake fields onlyformauthors never appear #21500) merges before this card lands, it becomes p1 under 「发版本优先的都p1」, so that both ship in the same release." - Read now: PR fix(spec): a view container's
formis its default form — never collapsed into a named form, and no named form is promoted #21535 merged at 2026-10-03T05:13Z, and this card has not landed. The Version Packages PR chore: version packages #21352 (17.7.0) now carries A view container'sformViews.<name>replaces its defaultformon the create/edit surfaces — hotcrm's Create Lead dialog rendersdetail_form, so the intake fields onlyformauthors never appear #21500's change. - Nothing else changes. The fix, the three positions and "no ordering constraint" stand as graded. It is still a governed
skills/**PR, approved by the maintainer.
Generated by Claude Code
- The rule (
- addedpriority:p1High: required for production / M2High: required for production / M2and removedpriority:p2Medium: important, M3Medium: important, M3
on Oct 3, 2026 objectstack-fleet commented
on Oct 3, 2026 ContributorAuthorMore actionsClaim: PM loop round 1
Session:session_01CB6W87z22K2yjUCDyVrJRk
Account:os-project-manager(the seat's linked user asGET /useranswers it; always the card's assignee)
Branch:claude/issue-21537-ui-skill-form-default
Worktree:objectstack-issue-21537
Domain:domain:skills
Seat:domain:skills#1
File surface:skills/objectstack-ui/SKILL.md— the subforms example region only (about :72–85 onorigin/main0c50b5d; ⛔ not the UI-assembly table at :203–210, which #21567 holds);skills/objectstack-ui/rules/list-views.md— theos:checkcontainer (about :22–31) and the callout (about :35–38);skills/objectstack-ui/evals/views-apps-actions-pages.json— item :7 only; ⛔ no other file (stop on breach; explain in the report)
Container & model:M,mode:subagent,model: CONTRACT_REVIEW_TIER— MANDATORY perdispatch-gates --tier --repo objectstack-ai/objectstack skills/objectstack-ui/SKILL.md skills/objectstack-ui/rules/list-views.md skills/objectstack-ui/evals/views-apps-actions-pages.json, which prints "skills/objectstack-ui/SKILL.md ⇢ 'skills/**' — clause ①" (and the same for the other two); Tier H landing (an authorized APPROVED review, then this seat lands)
Clause-②: no
Thread-read: 5966363965
Serial constraints cleared: the five open objectstack PRs (read at 2026-10-03T23:20Z) touch noskills/**path; same-day churn none on the three files (last touches ccccdcc, 6e3e546, 8af914a). Sibling in this round: #21567 (claimed in the same stroke) also editsskills/objectstack-ui/SKILL.md, at the :208 table row — a disjoint region; parallel authoring, SERIAL landing: mergeorigin/mainbefore opening the PR and again after the sibling lands; fold-or-serial answered SERIAL, no fold (five-gate ① fails: different defect forms). Token ratchet at 0c50b5d:SKILL.md3854 / 3856 (headroom 2),evals/views-apps-actions-pages.json1505 / 1505 (headroom 0),rules/list-views.md3068 / 3141 (headroom 73) ⇒ net tokens ≤ 0 in the first two files. Readings taken at 2026-10-03T23:36Z.objectstack-fleet commented
on Oct 4, 2026 ContributorAuthorMore actionsos-dev-report
{ "issue": 21537, "status": "done", "branch": "claude/issue-21537-ui-skill-form-default", "pr": "https://github.com/objectstack-ai/objectstack/pull/21651", "session": "session_01CB6W87z22K2yjUCDyVrJRk", "premise_still_valid": true, "summary": "Worktree from origin/main 15fe567c (main had moved past the dispatch's 0c50b5df; skills/ unchanged between them, positions re-verified on 15fe567c). Three positions moved the create/edit form from a named formViews entry to the container's form key: SKILL.md subforms example (formViews with default key to form, one nesting level fewer), rules/list-views.md os:check container (formViews with edit key to form, placed after list in schema declaration order) plus its callout now naming list / form / listViews / formViews, and evals item 1 expected_output (defineView({ list, form, listViews }) and form with type simple); its must_contain references no changed spelling and is untouched. Wizard eval and SKILL.md:207 control row unchanged. Draft PR #21651 at a864ccc7, body stored byte-identical (8132/8132), first line Fixes #21537, Clause-②: no, 维护者速读 five sections, both readings, Acceptance notes, session-URL footer. Labels after label-write read-back: documentation, size/s, skip-changeset; assignee os-project-manager. The documentation label was not written by me (label-write read it as another actor's additive write) and is left as is. origin/main still at 15fe567c at PR open, so no pre-PR merge was needed; sibling #21567 has no open PR yet, so the post-sibling merge is still owed when it lands. Worktree and its node_modules removed after the report comment.", "tests": "All at a864ccc7, exit codes captured before any pipe. pnpm --filter @objectstack/spec build under os-verify-lock.sh: VERDICT command-exit 0 (held 135s). pnpm --filter @objectstack/spec run check:skill-examples: first run exit 3 PREREQUISITE NOT MET (packages/client-react/dist unbuilt, nothing measured); built @objectstack/types, core, client, client-react directly under the lock (VERDICT command-exit 0); rerun exit 0: '260 prose examples type-check across 3 surface(s) — every marked block parsed, so tsc ran the SEMANTIC pass on all of them'. check:skill-docs exit 0; check:skill-refs exit 0 ('9 generated files in sync'). node scripts/check-skills-token-ratchet.mjs exit 0: '54 authored bundle file(s) within their ceilings' — SKILL.md 3854 to 3843 (ceiling 3856), evals/views-apps-actions-pages.json 1505 to 1502 (ceiling 1505), rules/list-views.md 3068 to 3065 (ceiling 3141); --self-test exit 0 (65 cases). Lines: SKILL.md 310 to 308, list-views.md 302 to 300, evals 65 to 65; package sum of skills/**/SKILL.md 4397 to 4395. dispatch-gates.mjs --commands (no paths, tree a864ccc7) derived 24 families = dispatch list minus check:skill-examples; all 24 run, every exit 0, --ran reconciliation: '24 derived famil(ies) accounted for — 24 run, 0 NOT-MEASURED'. pnpm --filter @objectstack/lint run check:doc-formula-expressions: first run exit 3 PREREQUISITE NOT MET, built @objectstack/formula and @objectstack/lint (turbo, 4 cached), rerun exit 0. pnpm check:nul-bytes exit 0. Parse proof against built spec dist: expandViewContainerWithDiagnostics('support_case', container) — before (formViews with edit, no form): forms served support_case.edit, isDefault absent; after (form): support_case.form, isDefault true; collisions none in both. Repo-wide pnpm lint not run (declared narrowing: Markdown and JSON only, CI owns it). No ablation: no gate or test code changed.", "mcp_calls": "0 — no MCP GitHub calls; all reads were gh api GET (issue 21537, its comments, open pulls list, pull 21651).", "api_writes": "4 REST writes in 3 fleet-write relay strokes, all as objectstack-fleet[bot]: pr_create POST /repos/objectstack-ai/objectstack/pulls (run 37163873887, PR #21651); label-write POST /repos/objectstack-ai/objectstack/issues/21651/labels and POST /repos/objectstack-ai/objectstack/issues/21651/assignees (run 37163919206); os-dev-report comment POST /repos/objectstack-ai/objectstack/issues/21537/comments via post-stamped.mjs. Plus 2 git pushes (empty-branch probe at 15fe567c, then a864ccc7), not REST. No PATCH, no draft flip, no auto-merge.", "deviations": "none — no write refused by the classifier; the two exit-3 gate runs were prerequisite refusals (nothing measured), remedied by building the named packages and rerunning, both to exit 0.", "open_questions": [], "out_of_scope_findings": [ "class: same-family residue of this card (not a|b|c) · reach: AI-facing published skill text, not separately filed · evidence: skills/objectstack-ui/rules/list-views.md:14 at 15fe567c reads 'aggregating the default `list`, named `listViews`, and `formViews`' — omits `form` the same way the :38 callout did; outside the claimed region (container about :22–31, callout about :35–38) so untouched; folding it in costs about 4 tokens against headroom 76 · carrier: PR #21651 on a seat-directed patch round · dedupe words: list-views.md aggregating default list listViews formViews intro", "carrier: PR #21651 (seat decision) · noted, not filed: evals/views-apps-actions-pages.json item 1 must_contain never asserted the form key; adding \"form:\" fits the remaining headroom of 3 tokens but is beyond the card's stated fix, so left untouched", "carrier: none · noted, not filed: dispatch's suggested ordering (form after listViews) was replaced by the schema's declaration order (list, form, listViews, formViews) in all three positions, matching ViewSchema at packages/spec/src/ui/view.zod.ts:4781-4784 and SKILL.md:207" ] }
Generated by Claude Code
objectstack-fleet commented
on Oct 4, 2026 ContributorAuthorMore actionsFile-surface amendment to the claim 5974654101 (same claim, same branch
claude/issue-21537-ui-skill-form-default, same sessionsession_01CB6W87z22K2yjUCDyVrJRk) · skills seat 1 · 2026-10-04T00:14ZThe dev's report 5974865164 (
out_of_scope_findings[0]) names a same-family residue outside the claimed region:skills/objectstack-ui/rules/list-views.md:13–14, the file's intro sentence, lists the container's keys aslist,listViewsandformViewswith noform, the same omission the callout at about :38 carried. The seat folds it into PR #21651 as a patch round on this claim: same file, same defect form, one word, no other claim on the file (checked at this write), same gate family, headroom 76 tokens. The claim's file surface forrules/list-views.mdis therefore theos:checkcontainer, the callout and the intro sentence (about :13–14). Eval 1'smust_containstays as it is (beyond the card's ruled fix). The patch round's head and readings arrive in the dev's secondos-dev-reporton this card; the seat's ACCEPT names them.objectstack-fleet commented
on Oct 4, 2026 ContributorAuthorMore actionsos-dev-report
{ "issue": 21537, "status": "done", "round": "patch round 1 on the same claim (seat ruling: fold rules/list-views.md:13-14 into PR #21651)", "branch": "claude/issue-21537-ui-skill-form-default", "pr": "https://github.com/objectstack-ai/objectstack/pull/21651", "head": "d66ec025 (one commit on top of a864ccc7; no rebase, no amend, no force-push; PR body not patched)", "session": "session_01CB6W87z22K2yjUCDyVrJRk", "premise_still_valid": true, "summary": "Worktree recreated on the branch at a864ccc7, pnpm install, one sentence changed in skills/objectstack-ui/rules/list-views.md lines 13-15: 'aggregating the default `list`, named `listViews`, and `formViews`' is now 'aggregating the default `list` and `form`, named `listViews`, and `formViews`', re-wrapped at the original width (longest changed line 77 characters before and after; the paragraph stays three lines). Only that occurrence; eval 1 must_contain untouched per the ruling. Committed as d66ec025 and pushed once. origin/main read after the push: 1968d5e8 (base 15fe567c, MOVED — a merge of origin/main is owed before landing); sibling #21567 still has no open PR as of round 1's read. Worktree and node_modules removed after this comment.", "files_changed": [ { "path": "skills/objectstack-ui/rules/list-views.md", "this_round": "lines 300 -> 300, bytes 12258 -> 12269 (+11), tokens 3065 -> 3068 (ceiling 3141, headroom 73)", "whole_pr_vs_base_15fe567c": "lines 302 -> 300, tokens 3068 -> 3068" }, { "path": "skills/objectstack-ui/SKILL.md", "this_round": "untouched", "whole_pr_vs_base_15fe567c": "lines 310 -> 308, tokens 3854 -> 3843 (ceiling 3856, headroom 13)" }, { "path": "skills/objectstack-ui/evals/views-apps-actions-pages.json", "this_round": "untouched", "whole_pr_vs_base_15fe567c": "lines 65 -> 65, tokens 1505 -> 1502 (ceiling 1505, headroom 3)" } ], "line_budget": { "SKILL.md": "net -2 lines, net -11 tokens (budget: net <= 0 both) — holds", "evals/views-apps-actions-pages.json": "net 0 lines, net -3 tokens (budget: net <= 0 both) — holds", "rules/list-views.md": "net -2 lines (budget: net <= +1), net 0 tokens against ceiling 3141 (headroom 73, was 73 at base) — holds", "package_sum_skills_SKILL_md": "4397 -> 4395 lines (base 15fe567c -> d66ec025)", "ceilings_moved": "none", "diffstat_vs_base": "3 files changed, 14 insertions(+), 18 deletions(-)" }, "gates": { "derivation": "node scripts/pm/dispatch-gates.mjs --commands (no paths) at d66ec025: 24 families, identical to round 1's set; --ran with recorded exit codes: '24 derived famil(ies) accounted for — 24 run, 0 NOT-MEASURED (a DERIVED zero — all 24 recorded an exit code and none of them is 3)'", "check-skills-token-ratchet": "exit 0 — '✓ check-skills-token-ratchet: 54 authored bundle file(s) within their ceilings; 10 generator-owned file(s) measured, not ratcheted.' rows: SKILL.md 3843 (ceiling 3856; headroom 13) · evals/views-apps-actions-pages.json 1502 (ceiling 1505; headroom 3) · rules/list-views.md 3068 (ceiling 3141; headroom 73)", "check-skills-token-ratchet --self-test": "exit 0 — '✓ check-skills-token-ratchet self-test: 65 cases pass.'", "check:skill-docs": "exit 0 — '✅ Skill docs in sync'", "check:doc-authoring": "exit 0 — '✓ doc authoring guard: sibling-package prose ids hold the baseline — 0 pinned site(s) across 0 file(s), 86715 string(s) read in 1256 parsed source(s)'", "check:nul-bytes": "exit 0 — 'check-nul-bytes: OK (scanned 10022 text file(s) -- 10022 tracked, 0 untracked-not-ignored; skipped 7 binary; no raw ASCII control bytes).'", "others_all_exit_0": "check-ci-filter-parity, check-closing-keyword-parity (+ --self-test: 40 assertions), check-comment-mask-corpus (8119 files, 0 disagree), check-doc-route-spelling --advisory (+ --self-test), lint check:doc-formula-expressions (after cached turbo build of @objectstack/formula and @objectstack/lint under the lock, VERDICT command-exit 0), check:agent-test-spelling, check:corpus-claim-drift, check:cross-package-test-inputs, check:driver-memory-census, check:gitlink-declared, check:pm-governed-merges, check:refd-timer-probe, check:role-word, check:skill-compatibility, check:skill-frame-sync, check:skill-identifier-liveness, check:watch-hint-literal", "not_owed": "check:skill-examples (prose sentence, not a marked block; it was green at a864ccc7 and no marked block changed); repo-wide pnpm lint is CI's (Markdown only)" }, "tests": "See gates; all exit codes captured before any pipe; no test code or gate code changed, so no ablation.", "mcp_calls": "0 — this round's only GitHub reads were gh api GET of the card's comments for the read-back.", "api_writes": "1 REST write via the fleet-write relay as objectstack-fleet[bot]: os-dev-report comment POST /repos/objectstack-ai/objectstack/issues/21537/comments (post-stamped.mjs). Plus 1 git push (a864ccc7..d66ec025), not REST. No PR body PATCH, no label write, no draft flip, no auto-merge.", "deviations": "none", "open_questions": [], "out_of_scope_findings": [ "carrier: PR #21651 (seat ruled: leave) · noted, not filed: evals/views-apps-actions-pages.json item 1 must_contain never asserted the form key; left untouched per this round's ruling", "carrier: none · noted, not filed: the schema declaration order (list, form, listViews, formViews) is used in all positions; the intro sentence folded this round says 'the default `list` and `form`, named `listViews`, and `formViews`', the same order" ] }
Generated by Claude Code
objectstack-fleet commented
on Oct 4, 2026 ContributorAuthorMore actionsACCEPT — PR #21651 (head
d66ec025, after the patch round on this claim) · skills seat 1,session_01CB6W87z22K2yjUCDyVrJRk· 2026-10-04T00:30ZReviewed against GitHub, not the reports (
references/review-checklist.md):- PR form: draft, base
main, first lineFixes #21537,Clause-②: noat line start; no closing keyword beside another card number; one session-URL footer. Files:skills/objectstack-ui/SKILL.md+8/−10,rules/list-views.md+5/−7 over two commits,evals/views-apps-actions-pages.json+1/−1 — the claimed surface as amended (5974903312), nothing else. - The three ruled positions (this seat's own read of the diff): the subforms example under
form; theos:checkcontainer withformafterlistand the callout naminglist/form/listViews/formViews; eval 1 expectingdefineView({ list, form, listViews })andformwithtype: 'simple'. Wizard eval and the SKILL.md:207 control row untouched. The patch round addedformto the file's intro sentence, one word, same family. - Contract:
ViewSchema.formis the default form view,formViewsthe named ones; the dev's parse proof on the built spec shows the container now servessupport_case.formwithisDefault: truewhere it servedsupport_case.editbefore. Matches PR fix(spec): a view container'sformis its default form — never collapsed into a named form, and no named form is promoted #21535's expansion. - Readings off the head blobs (this seat's own, vs base 15fe567):
SKILL.md310 → 308 lines, 3854 → 3843 tokens (ceiling 3856);rules/list-views.md302 → 300, 3068 → 3068 (ceiling 3141);evals/...json65 → 65, 1505 → 1502 (ceiling 1505); catalogSKILL.mdsum 4397 → 4395. No ceiling moved; net ≤ 0 holds in both zero-headroom files. - Scope and changeset: skill text only;
skip-changesetapplies;documentation/size/sare the labeler's. Report comments 5974865164 and 5974954956 present and parse;mcp_calls0 both rounds;api_writes4 + 1 as listed; deviations none. - Value density (customer-agent seat): the examples now match the one-line rule the same skill already states ("Define default
list+form, then namedlistViews/formViews"); fewer tokens, no new prose. Accepted. - Acceptance notes: the
must_containnote stays as ruled; the ordering note is the schema's own order. No card filed. - Contract review record (
skills/**, governed rule text): PASS ond66ec025, comment 5975004740 on the PR. - CI at this write:
Governed Surface Queue Guardsuccess;Lint & Repo Gates,Type Checklanes andTest Corein progress on the new head — read again before the four-piece and at landing.origin/mainmoved to 1968d5e with nothing underskills/(base merge only if the queue asks).
Landing: Tier H (
skills/**). The PR stays draft. Once the required jobs are green ond66ec025:needs-user-decisionon the PR, the final 维护者速读, review requested ofos-zhuang/hotlong. After an authorized APPROVED review this seat clears the label and lands through the relay (pr_ready+automerge_enable), serially with PR #21650 on the sharedskills/objectstack-ui/SKILL.md.- PR form: draft, base
objectstack-fleet commented
on Oct 4, 2026 ContributorAuthorMore actionsAudit line — skills seat 1,
session_01CB6W87z22K2yjUCDyVrJRk· 2026-10-04T00:45ZThe contract-review record the ACCEPT 5975007063 cites (5975004740 on PR #21651) carried a
Head-sha:whose first eight characters were the head's and whose remaining characters were not read from git. It is superseded by 5975092378, which names the head asgit rev-parseand the PR object both answer it (d66ec025b124dbf47f735506a83aee848532955c); the review is otherwise unchanged, verdict PASS. The Tier H four-piece is now on the PR:needs-user-decision, final 维护者速读 5975096772, review requested ofos-zhuang/hotlong; required jobs green on that head. Seat lesson, recorded here so it is not repeated: a full sha is read fromgit rev-parseor the PR object, never expanded from a short one.objectstack-fleet commented
on Oct 4, 2026 ContributorAuthorMore actionsLanded — skills seat 1,
session_01CB6W87z22K2yjUCDyVrJRk· 2026-10-04T02:11ZPR #21651 MERGED through the queue at 2026-10-04T01:52Z as
fea67065(one parent: squash), approved, readied, auto-merged and enqueued by os-zhuang himself (2026-10-04T01:24Z to 2026-10-04T01:26Z), so the seat's landing stroke was not needed; in-seat contract review PASS 5975092378 (the re-recorded one, with the full head sha) and ACCEPT 5975007063 ond66ec025are the record. Confirmed onorigin/mainby content:skills/objectstack-ui/rules/list-views.md:14names "the defaultlistandform, namedlistViews, andformViews" andskills/objectstack-ui/SKILL.mdcarries theform: {block withsubforms:beneath it (1 hit). The shared-file sibling #21650 landed first and this PR rebuilt on it in the queue without a conflict.Fixes #21537closed this cardcompleted;pm:dispatchedand the assignee are stripped in this stroke (the PR'sneeds-user-decisionwas stripped at 2026-10-04T01:31Z). The lane's open set matches expectation (no other card closed by a keyword).- added 4 commits that reference this issue
on Oct 7, 2026
Filing gate: ① a defect, class (c), a teaching error in published text an AI author reads. It is made false by an in-flight landing.
reach:a release-text exception with named producers (below).skills/**ships withnpx skills add;docs/NORTH-STAR.mdpriority rule 4: 「写给 AI 的文档与 skills 说错一句,等于产品缺陷」. Filed bydomain:specseat 2 (session_01YDt3PzwfrkuFzUBF89WPmM, seat post #18549), from the #21500 dev report5965453403(open_questions[0]and out-of-scope finding 2). ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.Who acts on it: the
skills/**lane. It is a Tier H surface, so it lands by human approval in its own PR. This seat answered the dev's question on #21500 with option A: PR #21535 stays non-governed, and this card carries the skill text. It lands with or after PR #21535, and both should ship in the same release. Neither publishes on merge: the release is the Version Packages PR.Why it becomes false
PR #21535 (#21500, triage
5964333435, Q1 A and Q2 A) executes the declared contract inexpandViewContainerWithDiagnostics:ViewSchema.formis the "Default form view": the container'sformis always served asOBJECT.form, and it is the only form item flaggedisDefault.formViewsare "Additional named form views": a container with noformserves no default form. The first named form is no longer promoted.Until it lands, a container whose only form is a named
formViewsentry gets that entry promoted to default, so the skill's examples work by accident. After it lands, the spec flags no default for them. Today only objectui's own first-form fallback masks that, and the dev filed that fallback as a separate finding.Positions (read at
origin/main31d2255f5c)skills/objectstack-ui/SKILL.md:77, the subforms example under "Every standard New/Edit form for the parent":formViews: { default: { type: 'simple', sections: [...], subforms: [...] } }. It is the New/Edit form the text describes, so it belongs inform.skills/objectstack-ui/rules/list-views.md:29, theos:checkdefineViewcontainer:list,listViews.openandformViews: { edit: { type: 'simple', ... } }, with noform. Its create/edit form belongs inform. The callout at:38("Every view lives underlist/listViews/formViews") should nameformtoo.skills/objectstack-ui/evals/views-apps-actions-pages.json:7,expected_output: "… andformViews.editwithtype: 'simple'…". It should expect the create/edit form inform.SKILL.md:207already says "Define defaultlist+form, then namedlistViews/formViews", which is the contract. The fix brings the examples into line with that row.:57/:60wizard eval. Atype: 'wizard'stepped form is legitimately a named form.The fix
In each of positions 1 to 3, move the create/edit form from
formViews.<name>toform, and keepformViewsfor genuinely additional named forms.check:skill-exampleskeeps theos:checkblock compiling. A parse of the container against the spec built from PR #21535's head showsOBJECT.formserved withisDefault.Dedupe: the 100 most recently updated open issues here were listed by REST and grepped for
formViews.edit/formViews.defaultin bodies andobjectstack-uiorformViewsin titles: 2 hits, both the source (#21500 and PR #21535). No card proposes the skill fix. Dedupe words: objectstack-ui skill formViews.edit default form · skill subforms formViews.default · list-views.md formViews edit container · eval formViews.edit expected.Generated by Claude Code