#4269 / PR #4273 落地了 defineHook()(作者侧工厂,defineDatasource 范式),content/docs/protocol/objectql/schema.mdx 的示例与 object.zod.ts 的处方均已指向工厂。但 skills 还在整体教旧姿势:
skills/objectstack-data/SKILL.md:401(const accountHook: Hook = {…} + 尾部 export default accountHook)
skills/objectstack-data/rules/hooks.md:33
skills/objectstack-data/references/data-hooks.md 10+ 处(87、425、678、702、728、756、791、819 …)
skills 是 AI 作者的第一入口(check-skill-examples.ts 的设计动机),裸字面量示例会让 #4269 的「import 即校验」闭环在最主要的受众上落空:AI 照 skill 写出的 hook 拿到 tsc 绿就报告完成,约束级错误(snake_case name、别名/处方)仍要等到部署。
改法机械:const x: Hook = {…}; export default x → export default defineHook({…})(import 自 @objectstack/spec/data),并在 hooks.md 规则里加一句「工厂优先于裸字面量」(与 datasource/schema.mdx 同款措辞)。所有片段受 os:check 门禁覆盖,改完 pnpm --filter @objectstack/spec run check:skill-examples 必须绿。
#4269 有意把范围限定在「文档一处注记」,skills 的整面翻新在此单独跟进,避免范围蔓延。
#4269 / PR #4273 落地了
defineHook()(作者侧工厂,defineDatasource 范式),content/docs/protocol/objectql/schema.mdx的示例与object.zod.ts的处方均已指向工厂。但 skills 还在整体教旧姿势:skills/objectstack-data/SKILL.md:401(const accountHook: Hook = {…}+ 尾部export default accountHook)skills/objectstack-data/rules/hooks.md:33skills/objectstack-data/references/data-hooks.md10+ 处(87、425、678、702、728、756、791、819 …)skills 是 AI 作者的第一入口(
check-skill-examples.ts的设计动机),裸字面量示例会让 #4269 的「import 即校验」闭环在最主要的受众上落空:AI 照 skill 写出的 hook 拿到 tsc 绿就报告完成,约束级错误(snake_case name、别名/处方)仍要等到部署。改法机械:
const x: Hook = {…}; export default x→export default defineHook({…})(import 自@objectstack/spec/data),并在 hooks.md 规则里加一句「工厂优先于裸字面量」(与 datasource/schema.mdx 同款措辞)。所有片段受os:check门禁覆盖,改完pnpm --filter @objectstack/spec run check:skill-examples必须绿。#4269 有意把范围限定在「文档一处注记」,skills 的整面翻新在此单独跟进,避免范围蔓延。