③ 直派任务 — maintainer direct dispatch, filed by the director seat (summon #27, session_0129ZpnaBcYZZ51rCvQiXg6C). domain:skills · dispatched from this seat under the maintainer's words; ⛔ not a queue card.
Provenance (who / verbatim / where): the maintainer, chat with the director seat, 2026-09-22, answering decision batch #213 — 「1 2 4 同意」. Item 2 as presented: 「objectstack 各 skill 先补 3 题 evals(复用 objectui 的 json 形状),先于第 1 项,好量化『切了没变差』」. The research behind it: director's fleet/skills comparison (Anthropic skill best-practices: write ≥ 3 evals before long prose; objectui ships 11 json / 33 questions, objectstack ships 1 json / 5 questions).
Readings (director seat, origin/main 40626bdca6, 2026-09-22T10:3xZ)
skills/*/evals/ exists in 3 of 10 skills: objectstack-automation/evals/approvals/test-revise-loop.md (one markdown case), objectstack-data/evals/README.md (「⚠️ Not yet implemented — placeholder」 plus a candidate-scenario list), objectstack-ui/evals/analytics-inline-vs-dataset.json (5 questions) + README. The other 7 skills have no evals directory.
- The reference shape, verbatim from
/home/user/objectui/skills/objectui/evals/app-composition.json: { "skill_name": "…", "evals": [ { "id": 1, "prompt": "…", "expected_output": "…", "files": [], "assertions": { "must_contain": [ … ], "must_not_contain": [ … ] } } ] }.
Ruled shape — ⛔ not open for re-design
- Every one of the 10 skills under
skills/ gets skills/<skill>/evals/<topic>.json files in exactly the shape above, ≥ 3 evals per skill, skill_name = the skill's frontmatter name, ids unique per file.
- Coverage per skill: the description's own 「use when」 triggers (at least one eval per stated trigger family), and at least one anti-pattern case whose
must_not_contain names the wrong spelling the skill exists to prevent (retired keys, wrong casing, page-wrapping-a-view, etc.). Prompts are realistic authoring requests; expected_output states the shape an agent following the skill must emit; every must_contain string is something the skill's own text tells the agent to write.
objectstack-data/evals/README.md: the placeholder sentence goes; its candidate-scenario list becomes the topics of the real fixtures. objectstack-automation's markdown case: converted to the json shape or kept beside it — the dev decides and says which in the PR body.
- ⛔ No change to any
SKILL.md, rules/** or references/** prose in this PR (that is the sibling card's work). ⛔ No new gate, check script, CI job or ratchet that runs the evals: they are the measuring instrument the skills seat runs by hand (or through the skill-creator tooling) before and after a skill edit — 新增门禁默认否.
- Verification in the PR body: every json parses (
node -e over the directory), skill_name matches, ids unique, counts per skill (a table: skill · files · evals). If an existing runner for the objectui shape exists in either repo, run it once and paste the reading; if none exists, say so — ⛔ do not build one.
- Net line budget: ≤ +900 lines across
skills/**/evals/**; 0 net in every SKILL.md. Over budget ⇒ stop and report, ⛔ do not trim assertions to fit.
Clause-②: no (fixtures, no accept-set or public-surface change). Changeset: follow what the last merged skills/**-only PR did (measure it: git log origin/main --oneline -10 -- skills/), and say which in the PR body.
- Landing:
skills/** is Tier H — the maintainer merges by hand. One PR, Fixes this card.
Dedupe
skills evals objectui shape · Not yet implemented evals placeholder · skill fixtures must_contain must_not_contain · batch #213 item 2
Generated by Claude Code
③ 直派任务 — maintainer direct dispatch, filed by the director seat (summon #27,
session_0129ZpnaBcYZZ51rCvQiXg6C).domain:skills· dispatched from this seat under the maintainer's words; ⛔ not a queue card.Provenance (who / verbatim / where): the maintainer, chat with the director seat, 2026-09-22, answering decision batch #213 — 「1 2 4 同意」. Item 2 as presented: 「objectstack 各 skill 先补 3 题 evals(复用 objectui 的 json 形状),先于第 1 项,好量化『切了没变差』」. The research behind it: director's fleet/skills comparison (Anthropic skill best-practices: write ≥ 3 evals before long prose; objectui ships 11 json / 33 questions, objectstack ships 1 json / 5 questions).
Readings (director seat,
origin/main40626bdca6, 2026-09-22T10:3xZ)skills/*/evals/exists in 3 of 10 skills:objectstack-automation/evals/approvals/test-revise-loop.md(one markdown case),objectstack-data/evals/README.md(「objectstack-ui/evals/analytics-inline-vs-dataset.json(5 questions) + README. The other 7 skills have no evals directory./home/user/objectui/skills/objectui/evals/app-composition.json:{ "skill_name": "…", "evals": [ { "id": 1, "prompt": "…", "expected_output": "…", "files": [], "assertions": { "must_contain": [ … ], "must_not_contain": [ … ] } } ] }.Ruled shape — ⛔ not open for re-design
skills/getsskills/<skill>/evals/<topic>.jsonfiles in exactly the shape above, ≥ 3 evals per skill,skill_name= the skill's frontmattername, ids unique per file.must_not_containnames the wrong spelling the skill exists to prevent (retired keys, wrong casing, page-wrapping-a-view, etc.). Prompts are realistic authoring requests;expected_outputstates the shape an agent following the skill must emit; everymust_containstring is something the skill's own text tells the agent to write.objectstack-data/evals/README.md: the placeholder sentence goes; its candidate-scenario list becomes the topics of the real fixtures.objectstack-automation's markdown case: converted to the json shape or kept beside it — the dev decides and says which in the PR body.SKILL.md,rules/**orreferences/**prose in this PR (that is the sibling card's work). ⛔ No new gate, check script, CI job or ratchet that runs the evals: they are the measuring instrument the skills seat runs by hand (or through the skill-creator tooling) before and after a skill edit — 新增门禁默认否.node -eover the directory),skill_namematches, ids unique, counts per skill (a table: skill · files · evals). If an existing runner for the objectui shape exists in either repo, run it once and paste the reading; if none exists, say so — ⛔ do not build one.skills/**/evals/**; 0 net in everySKILL.md. Over budget ⇒ stop and report, ⛔ do not trim assertions to fit.Clause-②: no(fixtures, no accept-set or public-surface change). Changeset: follow what the last mergedskills/**-only PR did (measure it:git log origin/main --oneline -10 -- skills/), and say which in the PR body.skills/**is Tier H — the maintainer merges by hand. One PR,Fixesthis card.Dedupe
skills evals objectui shape·Not yet implemented evals placeholder·skill fixtures must_contain must_not_contain·batch #213 item 2Generated by Claude Code