yugoo-design 0.1.2 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/bin/npm-agent-installation.mjs +1 -1
- package/bin/npm-desktop-preparation.mjs +5 -0
- package/bin/npm-installer-dsh.mjs +92 -4
- package/package.json +21 -2
- package/payload/desktop-preparation/materials.json +180 -2
- package/payload/desktop-preparation/qwenwork-package.mjs +4 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/index.md +143 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/material.json +1 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/SKILL.md +53 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/agents/openai.yaml +4 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/assets/skill.template.yaml +40 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +55 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/canvas-authoring.md +74 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/cooperation-authoring.md +52 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +367 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/validation-authoring.md +154 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +267 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/list-panel-components.mjs +25 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-kit-creator/SKILL.md +28 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-kit-creator/agents/openai.yaml +4 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/kit-checklist.md +40 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/mindset-authoring.md +55 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/SKILL.md +38 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/agents/openai.yaml +4 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/assets/method-template.md +38 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/references/standards.md +94 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/scripts/render-state-contract.mjs +33 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/a2ui-component-catalog-contract.md +69 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/bundle-contract.md +632 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/dsl-spec.md +1411 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/panel-uiux-standard.md +891 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/system-design-baseline.md +903 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/wiki/extending.md +343 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/wiki/terminology.md +57 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/examples/community-workshop-delivery/mindset.md +23 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/SKILL.md +92 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/panel.yaml +145 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/artifact-contract.md +151 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/canvas-guide.md +40 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/example.json +24 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/preview.json +24 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/schema.yaml +67 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/validation.yaml +92 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/SKILL.md +217 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/THIRD_PARTY_NOTICES.md +58 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/reference/artifact-contract.md +195 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/schema.yaml +177 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/validation.yaml +48 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +428 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +44 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +200 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +39 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +61 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/validation.yaml +64 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/SKILL.md +142 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +204 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/canvas-guide.md +52 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +32 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +93 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/validation.yaml +21 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/SKILL.md +545 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/artifact-contract.md +164 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/canvas-guide.md +45 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/task-to-page-method.md +82 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/schema.yaml +118 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/validation.yaml +104 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/research/SKILL.md +513 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/research/reference/artifact-contract.md +77 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/research/schema.yaml +61 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/research/validation.yaml +74 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/SKILL.md +196 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/artifact-contract.md +186 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/canvas-guide.md +38 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/example.json +90 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/schema.yaml +59 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/validation.yaml +147 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +202 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +245 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +93 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/validation.yaml +17 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +306 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +140 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/schema.yaml +38 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/validation.yaml +24 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/SKILL.md +54 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/artifact-contract.md +56 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/canvas-guide.md +39 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/drawing-method.md +78 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/geometry.md +79 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/schema.yaml +18 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/validation.yaml +18 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/kits/web_app/mindset.md +345 -0
- package/payload/desktop-preparation/qwenwork-template/skills/design-bundle-creator/SKILL.md +19 -0
- package/payload/desktop-preparation/qwenwork-template/skills/design-kit-creator/SKILL.md +19 -0
- package/payload/desktop-preparation/qwenwork-template/skills/design-skill-creator/SKILL.md +19 -0
- package/payload/desktop-preparation/src/browser-access.mjs +6 -9
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/index.md +143 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/material.json +1 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/SKILL.md +53 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/agents/openai.yaml +4 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/assets/skill.template.yaml +40 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +55 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/canvas-authoring.md +74 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/cooperation-authoring.md +52 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +367 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/validation-authoring.md +154 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +267 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/list-panel-components.mjs +25 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-kit-creator/SKILL.md +28 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-kit-creator/agents/openai.yaml +4 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/kit-checklist.md +40 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/mindset-authoring.md +55 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/SKILL.md +38 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/agents/openai.yaml +4 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/assets/method-template.md +38 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/references/standards.md +94 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-skill-creator/scripts/render-state-contract.mjs +33 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/a2ui-component-catalog-contract.md +69 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/bundle-contract.md +632 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/dsl-spec.md +1411 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/panel-uiux-standard.md +891 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/system-design-baseline.md +903 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/wiki/extending.md +343 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/wiki/terminology.md +57 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/examples/community-workshop-delivery/mindset.md +23 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/SKILL.md +92 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/panel.yaml +145 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/artifact-contract.md +151 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/canvas-guide.md +40 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/example.json +24 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/preview.json +24 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/schema.yaml +67 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/validation.yaml +92 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/SKILL.md +217 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/THIRD_PARTY_NOTICES.md +58 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/reference/artifact-contract.md +195 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/schema.yaml +177 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/validation.yaml +48 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +428 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +44 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +200 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +39 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +61 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/validation.yaml +64 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/SKILL.md +142 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +204 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/canvas-guide.md +52 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +32 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +93 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/validation.yaml +21 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/SKILL.md +545 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/artifact-contract.md +164 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/canvas-guide.md +45 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/task-to-page-method.md +82 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/schema.yaml +118 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/validation.yaml +104 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/research/SKILL.md +513 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/research/reference/artifact-contract.md +77 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/research/schema.yaml +61 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/research/validation.yaml +74 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/SKILL.md +196 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/artifact-contract.md +186 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/canvas-guide.md +38 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/example.json +90 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/schema.yaml +59 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/validation.yaml +147 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +202 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +245 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +93 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/validation.yaml +17 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +306 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +140 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/schema.yaml +38 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/validation.yaml +24 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/SKILL.md +54 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/artifact-contract.md +56 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/canvas-guide.md +39 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/drawing-method.md +78 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/geometry.md +79 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/schema.yaml +18 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/validation.yaml +18 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/kits/web_app/mindset.md +345 -0
- package/payload/desktop-preparation/studio-authoring-template/skills/design-bundle-creator/SKILL.md +19 -0
- package/payload/desktop-preparation/studio-authoring-template/skills/design-kit-creator/SKILL.md +19 -0
- package/payload/desktop-preparation/studio-authoring-template/skills/design-skill-creator/SKILL.md +19 -0
- package/payload/overlays/claude-code/.claude-plugin/plugin.json +1 -1
- package/payload/overlays/claude-code/authoring/studio-creators/index.md +143 -0
- package/payload/overlays/claude-code/authoring/studio-creators/material.json +1 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/SKILL.md +53 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/agents/openai.yaml +4 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/assets/skill.template.yaml +40 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +55 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/canvas-authoring.md +74 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/cooperation-authoring.md +52 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +367 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/validation-authoring.md +154 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +267 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/list-panel-components.mjs +25 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-kit-creator/SKILL.md +28 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-kit-creator/agents/openai.yaml +4 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/kit-checklist.md +40 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/mindset-authoring.md +55 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-skill-creator/SKILL.md +38 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-skill-creator/agents/openai.yaml +4 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-skill-creator/assets/method-template.md +38 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-skill-creator/references/standards.md +94 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-skill-creator/scripts/render-state-contract.mjs +33 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/a2ui-component-catalog-contract.md +69 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/bundle-contract.md +632 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/dsl-spec.md +1411 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/panel-uiux-standard.md +891 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/system-design-baseline.md +903 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/wiki/extending.md +343 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/wiki/terminology.md +57 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/examples/community-workshop-delivery/mindset.md +23 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/SKILL.md +92 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/panel.yaml +145 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/artifact-contract.md +151 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/canvas-guide.md +40 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/example.json +24 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/preview.json +24 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/schema.yaml +67 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/validation.yaml +92 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/SKILL.md +217 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/THIRD_PARTY_NOTICES.md +58 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/reference/artifact-contract.md +195 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/schema.yaml +177 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/validation.yaml +48 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +428 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +44 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +200 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +39 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +61 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/validation.yaml +64 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/SKILL.md +142 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +204 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/canvas-guide.md +52 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +32 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +93 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/validation.yaml +21 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/SKILL.md +545 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/artifact-contract.md +164 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/canvas-guide.md +45 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/task-to-page-method.md +82 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/schema.yaml +118 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/validation.yaml +104 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/research/SKILL.md +513 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/research/reference/artifact-contract.md +77 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/research/schema.yaml +61 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/research/validation.yaml +74 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/SKILL.md +196 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/artifact-contract.md +186 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/canvas-guide.md +38 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/example.json +90 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/schema.yaml +59 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/validation.yaml +147 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +202 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +245 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +93 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/validation.yaml +17 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +306 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +140 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/schema.yaml +38 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/validation.yaml +24 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/SKILL.md +54 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/artifact-contract.md +56 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/canvas-guide.md +39 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/drawing-method.md +78 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/geometry.md +79 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/schema.yaml +18 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/validation.yaml +18 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/kits/web_app/mindset.md +345 -0
- package/payload/overlays/claude-code/skills/design-bundle-creator/SKILL.md +19 -0
- package/payload/overlays/claude-code/skills/design-kit-creator/SKILL.md +19 -0
- package/payload/overlays/claude-code/skills/design-skill-creator/SKILL.md +19 -0
- package/payload/overlays/codex/.codex-plugin/plugin.json +1 -1
- package/payload/overlays/codex/authoring/studio-creators/index.md +143 -0
- package/payload/overlays/codex/authoring/studio-creators/material.json +1 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/SKILL.md +53 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/agents/openai.yaml +4 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/assets/skill.template.yaml +40 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +55 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/canvas-authoring.md +74 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/cooperation-authoring.md +52 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +367 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/validation-authoring.md +154 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +267 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/list-panel-components.mjs +25 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-kit-creator/SKILL.md +28 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-kit-creator/agents/openai.yaml +4 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/kit-checklist.md +40 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/mindset-authoring.md +55 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-skill-creator/SKILL.md +38 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-skill-creator/agents/openai.yaml +4 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-skill-creator/assets/method-template.md +38 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-skill-creator/references/standards.md +94 -0
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-skill-creator/scripts/render-state-contract.mjs +33 -0
- package/payload/overlays/codex/authoring/studio-creators/source/docs/a2ui-component-catalog-contract.md +69 -0
- package/payload/overlays/codex/authoring/studio-creators/source/docs/bundle-contract.md +632 -0
- package/payload/overlays/codex/authoring/studio-creators/source/docs/dsl-spec.md +1411 -0
- package/payload/overlays/codex/authoring/studio-creators/source/docs/panel-uiux-standard.md +891 -0
- package/payload/overlays/codex/authoring/studio-creators/source/docs/system-design-baseline.md +903 -0
- package/payload/overlays/codex/authoring/studio-creators/source/docs/wiki/extending.md +343 -0
- package/payload/overlays/codex/authoring/studio-creators/source/docs/wiki/terminology.md +57 -0
- package/payload/overlays/codex/authoring/studio-creators/source/examples/community-workshop-delivery/mindset.md +23 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/SKILL.md +92 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/panel.yaml +145 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/artifact-contract.md +151 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/canvas-guide.md +40 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/example.json +24 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/preview.json +24 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/schema.yaml +67 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/validation.yaml +92 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/SKILL.md +217 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/THIRD_PARTY_NOTICES.md +58 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/reference/artifact-contract.md +195 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/schema.yaml +177 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/validation.yaml +48 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +428 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +44 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +200 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +39 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +61 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/validation.yaml +64 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/SKILL.md +142 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +204 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/canvas-guide.md +52 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +32 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +93 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/validation.yaml +21 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/SKILL.md +545 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/artifact-contract.md +164 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/canvas-guide.md +45 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/task-to-page-method.md +82 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/schema.yaml +118 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/validation.yaml +104 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/research/SKILL.md +513 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/research/reference/artifact-contract.md +77 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/research/schema.yaml +61 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/research/validation.yaml +74 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/SKILL.md +196 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/artifact-contract.md +186 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/canvas-guide.md +38 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/example.json +90 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/schema.yaml +59 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/validation.yaml +147 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +202 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +245 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +93 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/validation.yaml +17 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +306 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +140 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/schema.yaml +38 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/validation.yaml +24 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/SKILL.md +54 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/artifact-contract.md +56 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/canvas-guide.md +39 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/drawing-method.md +78 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/geometry.md +79 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/schema.yaml +18 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/validation.yaml +18 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/kits/web_app/mindset.md +345 -0
- package/payload/overlays/codex/skills/design-bundle-creator/SKILL.md +19 -0
- package/payload/overlays/codex/skills/design-kit-creator/SKILL.md +19 -0
- package/payload/overlays/codex/skills/design-panel/SKILL.md +5 -0
- package/payload/overlays/codex/skills/design-skill-creator/SKILL.md +19 -0
- package/payload/overlays/codex/skills/yugoo/SKILL.md +34 -1
- package/payload/overlays/qoder/.qoder-plugin/plugin.json +1 -1
- package/payload/overlays/qoder/authoring/studio-creators/index.md +143 -0
- package/payload/overlays/qoder/authoring/studio-creators/material.json +1 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/SKILL.md +53 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/agents/openai.yaml +4 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/assets/skill.template.yaml +40 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +55 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/canvas-authoring.md +74 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/cooperation-authoring.md +52 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +367 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/validation-authoring.md +154 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +267 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/list-panel-components.mjs +25 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-kit-creator/SKILL.md +28 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-kit-creator/agents/openai.yaml +4 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/kit-checklist.md +40 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/mindset-authoring.md +55 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-skill-creator/SKILL.md +38 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-skill-creator/agents/openai.yaml +4 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-skill-creator/assets/method-template.md +38 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-skill-creator/references/standards.md +94 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-skill-creator/scripts/render-state-contract.mjs +33 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/a2ui-component-catalog-contract.md +69 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/bundle-contract.md +632 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/dsl-spec.md +1411 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/panel-uiux-standard.md +891 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/system-design-baseline.md +903 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/wiki/extending.md +343 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/wiki/terminology.md +57 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/examples/community-workshop-delivery/mindset.md +23 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/SKILL.md +92 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/panel.yaml +145 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/artifact-contract.md +151 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/canvas-guide.md +40 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/example.json +24 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/preview.json +24 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/schema.yaml +67 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/validation.yaml +92 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/SKILL.md +217 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/THIRD_PARTY_NOTICES.md +58 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/reference/artifact-contract.md +195 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/schema.yaml +177 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/validation.yaml +48 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +428 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +44 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +200 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +39 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +61 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/validation.yaml +64 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/SKILL.md +142 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +204 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/canvas-guide.md +52 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +32 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +93 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/validation.yaml +21 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/SKILL.md +545 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/artifact-contract.md +164 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/canvas-guide.md +45 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/task-to-page-method.md +82 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/schema.yaml +118 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/validation.yaml +104 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/research/SKILL.md +513 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/research/reference/artifact-contract.md +77 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/research/schema.yaml +61 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/research/validation.yaml +74 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/SKILL.md +196 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/artifact-contract.md +186 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/canvas-guide.md +38 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/example.json +90 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/schema.yaml +59 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/validation.yaml +147 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +202 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +245 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +93 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/validation.yaml +17 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +306 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +140 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/schema.yaml +38 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/validation.yaml +24 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/SKILL.md +54 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/artifact-contract.md +56 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/canvas-guide.md +39 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/drawing-method.md +78 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/geometry.md +79 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/schema.yaml +18 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/validation.yaml +18 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/kits/web_app/mindset.md +345 -0
- package/payload/overlays/qoder/skills/design-bundle-creator/SKILL.md +19 -0
- package/payload/overlays/qoder/skills/design-kit-creator/SKILL.md +19 -0
- package/payload/overlays/qoder/skills/design-skill-creator/SKILL.md +19 -0
- package/payload/shared/authoring/panel-components.json +1345 -1041
- package/payload/shared/authoring/studio-creators/index.md +143 -0
- package/payload/shared/authoring/studio-creators/material.json +1 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/SKILL.md +53 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/agents/openai.yaml +4 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/assets/skill.template.yaml +40 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +55 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/canvas-authoring.md +74 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/cooperation-authoring.md +52 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +367 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/validation-authoring.md +154 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +267 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/list-panel-components.mjs +25 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-kit-creator/SKILL.md +28 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-kit-creator/agents/openai.yaml +4 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/kit-checklist.md +40 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-kit-creator/references/mindset-authoring.md +55 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-skill-creator/SKILL.md +38 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-skill-creator/agents/openai.yaml +4 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-skill-creator/assets/method-template.md +38 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-skill-creator/references/standards.md +94 -0
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-skill-creator/scripts/render-state-contract.mjs +33 -0
- package/payload/shared/authoring/studio-creators/source/docs/a2ui-component-catalog-contract.md +69 -0
- package/payload/shared/authoring/studio-creators/source/docs/bundle-contract.md +632 -0
- package/payload/shared/authoring/studio-creators/source/docs/dsl-spec.md +1411 -0
- package/payload/shared/authoring/studio-creators/source/docs/panel-uiux-standard.md +891 -0
- package/payload/shared/authoring/studio-creators/source/docs/system-design-baseline.md +903 -0
- package/payload/shared/authoring/studio-creators/source/docs/wiki/extending.md +343 -0
- package/payload/shared/authoring/studio-creators/source/docs/wiki/terminology.md +57 -0
- package/payload/shared/authoring/studio-creators/source/examples/community-workshop-delivery/mindset.md +23 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/SKILL.md +92 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/panel.yaml +145 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/artifact-contract.md +151 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/canvas-guide.md +40 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/example.json +24 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/reference/preview.json +24 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/schema.yaml +67 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/business_data/validation.yaml +92 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/SKILL.md +217 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/THIRD_PARTY_NOTICES.md +58 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/reference/artifact-contract.md +195 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/schema.yaml +177 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/design_style/validation.yaml +48 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +428 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +44 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +200 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +39 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +61 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/validation.yaml +64 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/SKILL.md +142 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +204 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/canvas-guide.md +52 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +32 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +93 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/validation.yaml +21 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/SKILL.md +545 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/artifact-contract.md +164 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/canvas-guide.md +45 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/reference/task-to-page-method.md +82 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/schema.yaml +118 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/page_design/validation.yaml +104 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/research/SKILL.md +513 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/research/reference/artifact-contract.md +77 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/research/schema.yaml +61 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/research/validation.yaml +74 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/SKILL.md +196 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/artifact-contract.md +186 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/canvas-guide.md +38 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/reference/example.json +90 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/schema.yaml +59 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/role_access/validation.yaml +147 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +202 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +245 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +93 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/validation.yaml +17 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +306 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +140 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/schema.yaml +38 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/validation.yaml +24 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/SKILL.md +54 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/artifact-contract.md +56 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/canvas-guide.md +39 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/drawing-method.md +78 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/reference/geometry.md +79 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/schema.yaml +18 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/whiteboard/validation.yaml +18 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/kits/web_app/mindset.md +345 -0
- package/payload/shared/bundles/ai_agent_capabilities/locales/en-US.json +1 -1
- package/payload/shared/bundles/ai_agent_capabilities/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/business_data/locales/en-US.json +1 -1
- package/payload/shared/bundles/business_data/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/business_rules/locales/en-US.json +1 -1
- package/payload/shared/bundles/business_rules/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/design_style/locales/en-US.json +1 -1
- package/payload/shared/bundles/design_style/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/flow_design/locales/en-US.json +1 -1
- package/payload/shared/bundles/flow_design/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/function_modules/locales/en-US.json +1 -2
- package/payload/shared/bundles/function_modules/locales/zh-CN.json +1 -2
- package/payload/shared/bundles/function_modules/panel.yaml +1 -1
- package/payload/shared/bundles/integration_design/locales/en-US.json +1 -1
- package/payload/shared/bundles/integration_design/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/notification_design/locales/en-US.json +1 -1
- package/payload/shared/bundles/notification_design/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/page_design/locales/en-US.json +1 -1
- package/payload/shared/bundles/page_design/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/quality_acceptance/locales/en-US.json +1 -1
- package/payload/shared/bundles/quality_acceptance/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/research/SKILL.md +38 -4
- package/payload/shared/bundles/research/locales/en-US.json +1 -1
- package/payload/shared/bundles/research/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/research/reference/artifact-contract.md +31 -0
- package/payload/shared/bundles/research/reference/preview.json +1 -1
- package/payload/shared/bundles/research/skill.yaml +1 -1
- package/payload/shared/bundles/research/validation.yaml +3 -0
- package/payload/shared/bundles/role_access/locales/en-US.json +1 -1
- package/payload/shared/bundles/role_access/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/smart_questions/locales/en-US.json +1 -1
- package/payload/shared/bundles/smart_questions/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/web_app_prd_assembly/locales/en-US.json +1 -1
- package/payload/shared/bundles/web_app_prd_assembly/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/whiteboard/locales/en-US.json +1 -1
- package/payload/shared/bundles/whiteboard/locales/zh-CN.json +1 -1
- package/payload/shared/kits/web_app/kit.yaml +1 -1
- package/payload/shared/kits/web_app/mindset.md +1 -1
- package/payload/shared/knowledge/runtime-manifest.json +4 -2
- package/payload/shared/knowledge/runtime.mjs +19 -26
- package/payload/shared/scripts/{codex-connection-DuV2wtkn.mjs → codex-connection-1RvU1XCj.mjs} +115 -68
- package/payload/shared/scripts/codex-desktop-bridge.mjs +2 -2
- package/payload/shared/scripts/{connection-file-Dk1TJHgf.mjs → connection-file-CNwrHbAG.mjs} +3 -1
- package/payload/shared/scripts/{content-archive-4UdioMU9.mjs → content-archive-CnwVcuWA.mjs} +66 -22
- package/payload/shared/scripts/{core-entry-B6zaTh1o.mjs → core-entry-DESmwP78.mjs} +1121 -993
- package/payload/shared/scripts/design.mjs +136 -227
- package/payload/shared/scripts/git-runtime-check.mjs +1 -1
- package/payload/shared/scripts/knowledge-snapshot-query.mjs +1 -1
- package/payload/shared/scripts/{load-DE29wyw0.mjs → load-C-RwS23Y.mjs} +1 -1
- package/payload/shared/scripts/panel-preview-BeVRYFk1.mjs +78 -0
- package/payload/shared/scripts/{server-BoVIQm2J.mjs → server-BnEtfptI.mjs} +423 -1462
- package/payload/shared/scripts/studio-CFUWk0vJ.mjs +868 -0
- package/payload/shared/scripts/{studio-instance-composition-ClAJ72-M.mjs → studio-instance-composition-BJzYMyvV.mjs} +165 -62
- package/payload/shared/scripts/studio-instances-gQFR9yqL.mjs +1275 -0
- package/payload/shared/scripts/studio-panel-drafts-Dq171F6x.mjs +393 -0
- package/payload/shared/scripts/{windows-private-storage-DRAXaqae.mjs → windows-native-platform-DLm-tedp.mjs} +7 -150
- package/payload/shared/scripts/windows-private-storage-Q0cTolE3.mjs +149 -0
- package/payload/shared/scripts/workbuddy-panel-service.mjs +2 -2
- package/payload/shared/web/{abnfDiagram-VCTEODGH-BElHS-zE.js → abnfDiagram-VCTEODGH-B9IX6J0A.js} +3 -3
- package/payload/shared/web/{architectureDiagram-5GKGNRK7-BECL41Da.js → architectureDiagram-5GKGNRK7-BisnJYZ9.js} +5 -5
- package/payload/shared/web/{blockDiagram-I7D4REHJ-BHdPKhvo.js → blockDiagram-I7D4REHJ-B2P0WSPo.js} +9 -9
- package/payload/shared/web/{c4Diagram-7LVT6UL2-CWIbzZY_.js → c4Diagram-7LVT6UL2-D48X7taa.js} +7 -7
- package/payload/shared/web/{channel-CIc-uLOz.js → channel-BbOrJIbZ.js} +1 -1
- package/payload/shared/web/{chunk-4HAMMTFA-b3a3G6vp.js → chunk-4HAMMTFA--gjf22vn.js} +5 -5
- package/payload/shared/web/{chunk-75Z2AOVW-CRrsMd7V.js → chunk-75Z2AOVW-B2_IycTx.js} +1 -1
- package/payload/shared/web/{chunk-DU6HZSFF-DQGKOvUD.js → chunk-DU6HZSFF-U8npu9I8.js} +1 -1
- package/payload/shared/web/{chunk-F27PBJKO-CKTDAMhD.js → chunk-F27PBJKO-CTwYnE5c.js} +1 -1
- package/payload/shared/web/{chunk-GMAD6QVW-CR6pf1Wk.js → chunk-GMAD6QVW-CKC1iaEH.js} +3 -3
- package/payload/shared/web/{chunk-GVQU2GXP-Cuq0uwWc.js → chunk-GVQU2GXP-dsHcuLJt.js} +2 -2
- package/payload/shared/web/{chunk-IMKFNOWR-BIkawNBO.js → chunk-IMKFNOWR-DB9Jxepw.js} +5 -5
- package/payload/shared/web/{chunk-L3NEJ4N5-CuRR4sgK.js → chunk-L3NEJ4N5-CdduiJry.js} +5 -5
- package/payload/shared/web/{chunk-OSK3NFVY-o5AaXVbW.js → chunk-OSK3NFVY-BOueY91y.js} +6 -6
- package/payload/shared/web/{chunk-P2QGCYS3-CQGN9yCW.js → chunk-P2QGCYS3-yDDaRgcO.js} +1 -1
- package/payload/shared/web/{chunk-POPQ4Y6H-CoV8F_6L.js → chunk-POPQ4Y6H-CljBbmoJ.js} +1 -1
- package/payload/shared/web/{chunk-PWAF6VOD-DLPv7U5s.js → chunk-PWAF6VOD-CIvbnSr5.js} +1 -1
- package/payload/shared/web/{chunk-SHT3W25Y-DAA9rzEQ.js → chunk-SHT3W25Y-BtoLtpjX.js} +7 -7
- package/payload/shared/web/{chunk-SVP7TREG-CsNwZR-J.js → chunk-SVP7TREG-BZs6p27H.js} +2 -2
- package/payload/shared/web/{chunk-TICWLB2K-BkUUbwgD.js → chunk-TICWLB2K-CKuC0THI.js} +5 -5
- package/payload/shared/web/{classDiagram-ZZMXUADV-HbaRZ3Nl.js → classDiagram-ZZMXUADV-CSdRlepW.js} +13 -13
- package/payload/shared/web/{classDiagram-v2-VYDZK3BY-Bkk8o06s.js → classDiagram-v2-VYDZK3BY-B2q6X41N.js} +13 -13
- package/payload/shared/web/client.js +39141 -5934
- package/payload/shared/web/{cynefinDiagram-5FMLGOSQ-CP-tjXE5.js → cynefinDiagram-5FMLGOSQ-4N8NcsmJ.js} +3 -3
- package/payload/shared/web/{dagre-GXQ25YYZ-GUxh673_.js → dagre-GXQ25YYZ-CcOoDuJv.js} +10 -10
- package/payload/shared/web/{diagram-S7CK7UJ4-BFDH1Gbu.js → diagram-S7CK7UJ4-eOfyUI5w.js} +4 -4
- package/payload/shared/web/{diagram-UQ7AKVKN-PHM6uSDT.js → diagram-UQ7AKVKN-6SdElfMd.js} +3 -3
- package/payload/shared/web/{diagram-VSXAHHWV-C6m_LjuJ.js → diagram-VSXAHHWV-DmzS3Yhs.js} +2 -2
- package/payload/shared/web/{diagram-VX7I27RA-G0Og_1eB.js → diagram-VX7I27RA-CJ0mjzif.js} +5 -5
- package/payload/shared/web/{diagram-Z3DM3KII-DxLU0CyU.js → diagram-Z3DM3KII-b86RsB6X.js} +3 -3
- package/payload/shared/web/{dist-CpfF1Jph.js → dist-USJ_fvfj.js} +49 -49
- package/payload/shared/web/{ebnfDiagram-PWID7BFC-Dh7NgFDw.js → ebnfDiagram-PWID7BFC-BBo2ROEO.js} +3 -3
- package/payload/shared/web/{erDiagram-RLTQ6QDP-De1Ves_r.js → erDiagram-RLTQ6QDP-B7ovyDrh.js} +12 -12
- package/payload/shared/web/{excalidraw-surface-q56LZexh.js → excalidraw-surface-BAJM_4P2.js} +1 -1
- package/payload/shared/web/flowDiagram-HODETNUW-BmAFlSDM.js +16 -0
- package/payload/shared/web/{ganttDiagram-EL5Y4UJY-9UcawiqG.js → ganttDiagram-EL5Y4UJY-BF9LYJFN.js} +2 -2
- package/payload/shared/web/{gitGraphDiagram-WWUBYQGX-BYFpRlq8.js → gitGraphDiagram-WWUBYQGX-BLzvYjNu.js} +2 -2
- package/payload/shared/web/{infoDiagram-27XIBGKW-B_sYOrDT.js → infoDiagram-27XIBGKW-Cg4jV_tA.js} +2 -2
- package/payload/shared/web/{ishikawaDiagram-5VMMS53U-Dbq0pjSI.js → ishikawaDiagram-5VMMS53U-BqfEZdpO.js} +3 -3
- package/payload/shared/web/{journeyDiagram-3NMN7TZE-CzWCm5-W.js → journeyDiagram-3NMN7TZE-_QW0fOqV.js} +2 -2
- package/payload/shared/web/{kanban-definition-UXKFOSKX-BPt2iOge.js → kanban-definition-UXKFOSKX-C1qxSJso.js} +9 -9
- package/payload/shared/web/{mindmap-definition-YA3MSWOX--s-o7l9c.js → mindmap-definition-YA3MSWOX-CxX8l7QH.js} +11 -11
- package/payload/shared/web/{pegDiagram-XKGWAZYB-BtVScKlh.js → pegDiagram-XKGWAZYB-CTCTE951.js} +3 -3
- package/payload/shared/web/{pieDiagram-E7YTZNPT-BVRgxFzd.js → pieDiagram-E7YTZNPT-BVaT5mnK.js} +3 -3
- package/payload/shared/web/{quadrantDiagram-AXDQQJYC-CoI_hWsn.js → quadrantDiagram-AXDQQJYC-DC6iypTQ.js} +1 -1
- package/payload/shared/web/{railroadDiagram-O6MQD6OU-CQvkXn2E.js → railroadDiagram-O6MQD6OU-CKk1xSyC.js} +3 -3
- package/payload/shared/web/{requirementDiagram-BXWQKSXE-BeMX6Y3_.js → requirementDiagram-BXWQKSXE-D3r71qoR.js} +11 -11
- package/payload/shared/web/{sankeyDiagram-P5KCCOFB-DAW2tMQQ.js → sankeyDiagram-P5KCCOFB-BtB3K5ob.js} +1 -1
- package/payload/shared/web/{sequenceDiagram-WJ2MYXX4-CIyt6uFH.js → sequenceDiagram-WJ2MYXX4-BsJtFrjU.js} +4 -4
- package/payload/shared/web/{stateDiagram-D77RDMKH-Cl5YhtvO.js → stateDiagram-D77RDMKH-srvF-8IQ.js} +13 -13
- package/payload/shared/web/{stateDiagram-v2-MP3YSRHH-BsQEmOAZ.js → stateDiagram-v2-MP3YSRHH-CQCPpAb7.js} +13 -13
- package/payload/shared/web/{swimlanes-42K2YHIH-DRkfAovZ.js → swimlanes-42K2YHIH-cwCdwOb4.js} +10 -10
- package/payload/shared/web/{swimlanesDiagram-VR7AAH4N-CDtUk-LJ.js → swimlanesDiagram-VR7AAH4N-6PGsW_lL.js} +13 -13
- package/payload/shared/web/{timeline-definition-24CTP7MA-Bc0GefZe.js → timeline-definition-24CTP7MA-DbKwK9M6.js} +3 -3
- package/payload/shared/web/{vennDiagram-4TSXK5OY-CU3O6wRh.js → vennDiagram-4TSXK5OY-BnJ0tHAd.js} +3 -3
- package/payload/shared/web/{wardleyDiagram-VM6X3IG4-USaMhD8m.js → wardleyDiagram-VM6X3IG4-Bm9W5WIA.js} +3 -3
- package/payload/shared/web/{xychartDiagram-S5SC5T6Z-C8IhDKnq.js → xychartDiagram-S5SC5T6Z-DInWMmWi.js} +5 -5
- package/release-hosts.json +1 -1
- package/release-manifest.json +667 -135
- package/payload/shared/scripts/panel-preview-CPGv8nTe.mjs +0 -105
- package/payload/shared/scripts/studio-content-archive-CNUz472H.mjs +0 -334
- package/payload/shared/scripts/studio-instances-DKW4R37b.mjs +0 -592
- package/payload/shared/scripts/studio-panel-drafts-Cu48ih5u.mjs +0 -787
- package/payload/shared/scripts/windows-private-storage-_g0Kdp0U.mjs +0 -2
- package/payload/shared/web/flowDiagram-HODETNUW-DY-blVtj.js +0 -16
- package/payload/shared/web/katex-DhTJdtYJ.js +0 -26444
|
@@ -0,0 +1,1411 @@
|
|
|
1
|
+
# Design Panel DSL Specification
|
|
2
|
+
|
|
3
|
+
The panel DSL is the declarative presentation profile defined by the [architecture baseline](system-design-baseline.md). A panel manifest is **pure data**—no JSX, CSS, or scripts—so a design system can be authored and shared as content. The `dsh-design-panel` interpreter renders it, and the host validates the same definition before publishing a Kit version.
|
|
4
|
+
|
|
5
|
+
The contributor scaffold emits this profile. A Bundle with `presentation.mode: native` instead resolves a prebuilt React panel registered by its trusted provider and does not require `panel.yaml`; native presentation never falls back to this DSL. An omitted `presentation` or explicit `presentation.mode: none` means no panel. Explicit `presentation.mode: auto` is a separate generated-Panel opt-in with no DSL files; it does not change this manifest grammar.
|
|
6
|
+
|
|
7
|
+
Version: `1`.
|
|
8
|
+
|
|
9
|
+
Before choosing components, use the [Panel UIUX standard](panel-uiux-standard.md) to identify the user's decision, information relationships, and editing feedback. This specification defines supported syntax; it does not prescribe one layout for every Bundle.
|
|
10
|
+
|
|
11
|
+
## Three layers
|
|
12
|
+
|
|
13
|
+
A manifest describes three things:
|
|
14
|
+
|
|
15
|
+
| Layer | Key | Purpose |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| Data | `sections` | Named evidence sections; each is a map of records in the Design Files. |
|
|
18
|
+
| Editor | `fields` | Field controls bound to sections (how each record is edited). |
|
|
19
|
+
| View | `ui` | A component tree, data-bound to sections (how the panel is laid out). |
|
|
20
|
+
|
|
21
|
+
## Top-level shape
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
version: 1
|
|
25
|
+
panel_kind: capability_map # one of PANEL_KINDS
|
|
26
|
+
renderer: workspace # optional top-level rendering strategy
|
|
27
|
+
item_name: 功能 # optional singular item label
|
|
28
|
+
empty_description: … # optional empty-state text
|
|
29
|
+
sections: […]
|
|
30
|
+
fields: […]
|
|
31
|
+
ui: {…}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### `panel_kind` (closed)
|
|
35
|
+
|
|
36
|
+
`evidence_workbook | capability_map | process | lifecycle | page_spec | document`
|
|
37
|
+
|
|
38
|
+
## `sections`
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
sections:
|
|
42
|
+
- id: functions # stable logical section id; default record path
|
|
43
|
+
title: 功能模块
|
|
44
|
+
item_name: 功能 # optional
|
|
45
|
+
add_label: 添加功能 # optional
|
|
46
|
+
description: … # optional
|
|
47
|
+
navigation: primary # optional: primary | contextual | advanced
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`sections[].id` is the logical section id used by component and field bindings.
|
|
51
|
+
By default it also names the top-level Design Files record map (for example,
|
|
52
|
+
`functions` reads `{ functions: {…} }`). A section may instead declare
|
|
53
|
+
`records_path` for a nested record map, `fields_path` for editor fields inside
|
|
54
|
+
each record, and `order` for its durable record-id order list. These are safe
|
|
55
|
+
dotted paths, checked against the Bundle schema when the Kit is loaded; they
|
|
56
|
+
do not change the logical section id.
|
|
57
|
+
|
|
58
|
+
### New-record labels
|
|
59
|
+
|
|
60
|
+
Use `create.initial_label` when a newly added record needs a readable, localized
|
|
61
|
+
name before the user edits it. Do not put translation tokens in canonical defaults.
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
create:
|
|
65
|
+
id_field: id
|
|
66
|
+
defaults: {title: ''}
|
|
67
|
+
initial_label:
|
|
68
|
+
field: title
|
|
69
|
+
text: $t:newItem
|
|
70
|
+
numbered_text: $t:newItemNumbered
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The target must be a direct string field in the section's bound record schema,
|
|
74
|
+
not its `id_field` (or `id` when that option is omitted). Only these three label
|
|
75
|
+
options are supported. `text` is nonblank literal text or a whole `$t:key` token;
|
|
76
|
+
it has no placeholders. Optional `numbered_text` uses only `{index}`, which is
|
|
77
|
+
the existing record count plus one. It must contain that placeholder. An empty
|
|
78
|
+
collection uses `text`; a nonempty collection uses `numbered_text` if supplied,
|
|
79
|
+
otherwise `text`. This number is a display default, not a stable identity or a
|
|
80
|
+
guarantee of unique names after deletion.
|
|
81
|
+
|
|
82
|
+
Only the new record is seeded, in the existing atomic map/order insertion.
|
|
83
|
+
A nonblank supplied name wins, then a nonblank canonical default, then the label.
|
|
84
|
+
Existing records and their IDs are not renamed when the locale changes. The
|
|
85
|
+
Kit loader resolves just these label templates through the declared locales,
|
|
86
|
+
checks translated templates, and applies the usual default-locale fallback;
|
|
87
|
+
it never translates `create.defaults` or permits expressions/scripts.
|
|
88
|
+
|
|
89
|
+
This is an optional runtime capability. An older installed runtime does not
|
|
90
|
+
gain it just because this document or a source manifest was updated; load the
|
|
91
|
+
manifest against the actual target version before publishing it.
|
|
92
|
+
|
|
93
|
+
### Long text editing
|
|
94
|
+
|
|
95
|
+
Authored `textarea` fields may opt into `textarea_rows: 3..20` to give complete
|
|
96
|
+
instructions or configuration text a readable initial viewport. This is finite
|
|
97
|
+
presentation only: it does not trim text, parse it, change storage or impose a
|
|
98
|
+
character limit. Typed `record_map.item_fields` use the same leaf rule. Omission
|
|
99
|
+
preserves existing sizing; generated-origin panels do not expose this option.
|
|
100
|
+
|
|
101
|
+
### Same-record inspector views
|
|
102
|
+
|
|
103
|
+
An authored `record_inspector.sources` list can compose declared sections that
|
|
104
|
+
bind the same canonical record collection. On selection, only sections whose
|
|
105
|
+
`records_path` matches the selected source are rendered, in declared order.
|
|
106
|
+
The first section owns the title/actions; subsequent sections show their fields
|
|
107
|
+
without another record heading. Each section keeps its original `fields_path`
|
|
108
|
+
and edit binding. Omission preserves the single selected-section form.
|
|
109
|
+
|
|
110
|
+
For example, a navigator can select an external system or a contextual exchange
|
|
111
|
+
while its inspector uses `[systems, system_details, exchanges, exchange_details]`.
|
|
112
|
+
This exposes a record's title/source information and nested business fields
|
|
113
|
+
without copying or flattening saved data. Unknown, duplicate or unrelated
|
|
114
|
+
collection sources are rejected. Contextual creation through a nested projection
|
|
115
|
+
also retains the same collection's declared root creation defaults and identity.
|
|
116
|
+
Generated A2UI does not gain a new composition permission from this option.
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
`doc_lifecycle_studio` can be placed inside a `record_inspector` to reuse the
|
|
120
|
+
workspace's current document, state axis or action selection. It projects the
|
|
121
|
+
same `objects` / `axes` / `actions` records without storing a second matrix.
|
|
122
|
+
A document view retains both its own actions and actions affecting its states;
|
|
123
|
+
columns for affected other documents name their owner. Action and axis selection
|
|
124
|
+
narrows the same facts. Matrix edits retain their original action bindings;
|
|
125
|
+
movement rows read the declared movement fields on actions, not documents.
|
|
126
|
+
The surrounding workspace owns navigation, titles, editing and shared styles.
|
|
127
|
+
Standalone use retains the full-table view. This is a presentation composition,
|
|
128
|
+
not a new DSL field, required workflow or installed-runtime availability claim.
|
|
129
|
+
|
|
130
|
+
### Mathematical explanations in a record workspace
|
|
131
|
+
|
|
132
|
+
Authored `math_document` presents a selected record as readable explanations
|
|
133
|
+
beside LaTeX formulas. It binds existing fields, not a second model or a solver.
|
|
134
|
+
Place it inside a `record_workspace` whose `sources` includes its `source`:
|
|
135
|
+
|
|
136
|
+
```yaml
|
|
137
|
+
- component: math_document
|
|
138
|
+
id: mathematical_explanation
|
|
139
|
+
source: models
|
|
140
|
+
math:
|
|
141
|
+
heading: title
|
|
142
|
+
introduction: overview
|
|
143
|
+
statements: {field: equations, title: label, formula: expression, meaning: meaning, source: source_pointer}
|
|
144
|
+
symbols: {field: symbols, formula: symbol, meaning: meaning, details: [kind, domain], source: source_pointer}
|
|
145
|
+
notes: assumptions
|
|
146
|
+
complete: formulation
|
|
147
|
+
output: {file: model_file, format: format}
|
|
148
|
+
checks: {status: validation_status, summary: validation_summary, evidence: validation_evidence}
|
|
149
|
+
provenance: [input_fingerprint, snapshot_file, mapping_file]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
`heading` binds a visible `text` field. Optional `introduction`, `notes` and
|
|
153
|
+
`complete` bind `text`/`textarea` fields. Required `statements` and optional
|
|
154
|
+
`symbols` bind `rows` fields with text/textarea columns: `formula` and `meaning`
|
|
155
|
+
are required, `title`, `source` and up to six `details` are optional. Bindings
|
|
156
|
+
must name distinct declared fields/columns; hidden fields, unsafe keys, unknown
|
|
157
|
+
options and cross-source bindings are rejected. Field visibility and readonly
|
|
158
|
+
policy still apply. Other declared fields remain available in a disclosure;
|
|
159
|
+
other selected workspace sources use the ordinary record form.
|
|
160
|
+
|
|
161
|
+
Optional `output` binds an `artifact_ref` file and optional `text` format;
|
|
162
|
+
optional `checks` binds a `select` status, a `text`/`textarea` summary and optional
|
|
163
|
+
`text`/`textarea` evidence. Optional `provenance` lists `text`, `textarea` or
|
|
164
|
+
`artifact_ref` fields. All these fields must explicitly declare `readonly: true`
|
|
165
|
+
and be distinct from other math bindings. Status copy comes from the declared
|
|
166
|
+
options; the renderer does not execute a check or infer a result. The summary is
|
|
167
|
+
the recorded human-readable conclusion, while raw evidence stays in technical
|
|
168
|
+
details. No summary is fabricated when absent.
|
|
169
|
+
|
|
170
|
+
The output card appears only for a nonempty saved file reference. File contents
|
|
171
|
+
are read on demand through the existing host artifact port, only when the path
|
|
172
|
+
is safe, is present in `artifactFiles`, and an exact `sourceRevision` is available.
|
|
173
|
+
The source revision is passed to the reader. The preview is escaped plain text,
|
|
174
|
+
bounded to 262,144 characters, with unavailable and retry states; no code, HTML or
|
|
175
|
+
model is executed. Nonempty provenance/evidence uses a folded readonly view;
|
|
176
|
+
empty technical fields are not presented as a form. Other unbound fields retain
|
|
177
|
+
their original field controls, not an inferred metadata role.
|
|
178
|
+
|
|
179
|
+
Each statement is a collapsible card, expanded initially, containing its business explanation, formula
|
|
180
|
+
and relevant shared symbol definitions, with a source disclosure at the bottom.
|
|
181
|
+
Per-formula symbol definitions are initially folded, showing their count; source,
|
|
182
|
+
complete-model and technical-record disclosures also start folded.
|
|
183
|
+
The complete formulation is a separate collapsible card containing the editable
|
|
184
|
+
symbol glossary. Folds are local presentation, not saved facts or approval.
|
|
185
|
+
Symbol usage is a read-only projection of matching rendered MathML notation; it
|
|
186
|
+
does not infer algebraic equivalence or invent missing definitions. Operators and
|
|
187
|
+
ordinary text do not match symbols merely because they contain the same letters.
|
|
188
|
+
The glossary remains available for inspecting and editing all definitions.
|
|
189
|
+
Source pointers are displayed as text, not executed or resolved as URLs.
|
|
190
|
+
Editing uses the existing field-edit/save path, including
|
|
191
|
+
the original column names and `max_rows`. Long collections show 20 entries at a
|
|
192
|
+
time. Prose supports explicitly delimited inline LaTeX, `\( ... \)`; other text
|
|
193
|
+
and currency remain literal and are never interpreted as HTML. Formula fields contain LaTeX
|
|
194
|
+
without dollar delimiters; JSON encodes backslashes as usual. The renderer uses
|
|
195
|
+
KaTeX MathML output with trusted commands disabled, isolated macros, bounded
|
|
196
|
+
expansion and a 12,000-character display limit. Unrenderable input stays visible
|
|
197
|
+
as text and remains editable; rendering is not mathematical validation.
|
|
198
|
+
|
|
199
|
+
Editing a statement does not regenerate another field, certify an existing
|
|
200
|
+
model artifact or run a solver. Bundle methods must reconcile explanations,
|
|
201
|
+
symbols, complete formulation and artifacts before asserting consistency.
|
|
202
|
+
This component is authored-only; it does not expand generated A2UI authority.
|
|
203
|
+
|
|
204
|
+
### Record workspace navigation groups
|
|
205
|
+
|
|
206
|
+
`record_artifact.artifact.reference_field` optionally binds an unconditional visible
|
|
207
|
+
`record_select` on its source collection, targeting another section in the same
|
|
208
|
+
workspace. When that parent is selected, all explicitly related artifacts appear
|
|
209
|
+
in canonical map order; selecting the artifact's own record previews it directly.
|
|
210
|
+
No matching related records render no empty block. A matching record with an
|
|
211
|
+
absent, unpublished, unreadable or invalid file retains its local availability or
|
|
212
|
+
error/retry state. Optional `explanation_field` reads visible plain text from the
|
|
213
|
+
artifact record. Neither binding writes state, generates a file or executes a
|
|
214
|
+
solver. Existing scoped readers, file-version inventory and static HTML/SVG
|
|
215
|
+
sandbox rules apply. This authored extension does not expand generated A2UI.
|
|
216
|
+
For a dedicated visualization view, optional component `description` supplies the
|
|
217
|
+
no-matching-artifacts or not-yet-generated status instead of an empty block; it does not hide a failed
|
|
218
|
+
or missing file belonging to a matching record.
|
|
219
|
+
|
|
220
|
+
When that artifact section declares `navigation: contextual`, related records
|
|
221
|
+
appear inline rather than as duplicate sidebar entries or child-count prompts.
|
|
222
|
+
Their interpretation/source form remains available through the inline details
|
|
223
|
+
action, with a return link to the record that opened that preview. Sidebar
|
|
224
|
+
selection clears this return context; references alone never create a back trail.
|
|
225
|
+
Records with no valid parent remain reachable in the existing unlinked-record group; this presentation never repairs
|
|
226
|
+
references or removes historical records.
|
|
227
|
+
|
|
228
|
+
For a workspace with one outer tabs node containing one `record_inspector` and
|
|
229
|
+
artifact sibling views, the selected record's original form header appears once
|
|
230
|
+
above the tabs. The existing name binding and lifecycle actions stay shared across
|
|
231
|
+
views; the inspector renders only its body there. Other compositions keep their
|
|
232
|
+
existing header ownership. This is presentation, not another record or save path.
|
|
233
|
+
|
|
234
|
+
`record_workspace.navigation_group_by` optionally names a safe direct **string
|
|
235
|
+
or string-enum classification field** in every primary source's bound record
|
|
236
|
+
schema (after its section `fields_path`, if any). This field need not have an
|
|
237
|
+
editable control. Metadata, references, objects, arrays and non-text enums are
|
|
238
|
+
not supported. Contextual child collections and a relation graph's edge
|
|
239
|
+
collection are not grouped as primary sources.
|
|
240
|
+
|
|
241
|
+
```yaml
|
|
242
|
+
ui:
|
|
243
|
+
component: record_workspace
|
|
244
|
+
id: workbench
|
|
245
|
+
sources: [items]
|
|
246
|
+
navigation_group_by: category
|
|
247
|
+
children:
|
|
248
|
+
- {component: record_inspector, id: details}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Groups reuse the shared collapsible navigation tree. They are projections,
|
|
252
|
+
not selectable parent objects: no synthetic IDs, parent fields, inheritance,
|
|
253
|
+
order writes or new canonical collections. Exact nonblank field values are
|
|
254
|
+
labels; absent/blank values use the shared localized “Ungrouped” label without
|
|
255
|
+
normalizing saved text. Group order follows first appearance in the existing
|
|
256
|
+
record order. A real label equal to “Ungrouped” remains distinct from the
|
|
257
|
+
fallback group. Selection still identifies the real section/record, and
|
|
258
|
+
editing classification moves its navigation entry without changing its ID.
|
|
259
|
+
|
|
260
|
+
`navigation_layout: list` keeps group members flat; the default tree preserves
|
|
261
|
+
contextual children and same-group hierarchy. A parent outside a group is not
|
|
262
|
+
fabricated or copied there: its child appears at that group's root, while the
|
|
263
|
+
canonical reference remains unchanged. A single primary collection shows its
|
|
264
|
+
real records directly, with or without a graph; it does not add a redundant
|
|
265
|
+
collection header. Multiple primary collections retain their own collection
|
|
266
|
+
headers. Each collection keeps its ordinary add action,
|
|
267
|
+
with only its declared defaults; adding does not infer a category from a group.
|
|
268
|
+
Read-only views never add or initialize records. Omitting `navigation_group_by`
|
|
269
|
+
retains the existing navigation behavior.
|
|
270
|
+
|
|
271
|
+
Within a `record_workspace`, `navigation: contextual` declares a child-record
|
|
272
|
+
collection rather than another top-level navigation group. The renderer finds
|
|
273
|
+
its owning parent from a `record_select` or `record_multi_select` field whose
|
|
274
|
+
`options_from_section` names the parent section, then renders the generic
|
|
275
|
+
outline `parent record → child collection → child records`. Child records can
|
|
276
|
+
be added and selected from that outline; the fixed inspector edits only the
|
|
277
|
+
selected record and summarizes, rather than duplicates, its child collections.
|
|
278
|
+
No section id, field name, or domain vocabulary is built into this behavior.
|
|
279
|
+
With `record_multi_select`, the same child is visible beneath every referenced
|
|
280
|
+
parent. A contextual section without an in-workspace parent reference is
|
|
281
|
+
invalid instead of silently becoming a top-level section.
|
|
282
|
+
When the reference field is declared but a saved child has no existing parent,
|
|
283
|
+
the sidebar keeps a selectable warning entry so its details can be corrected.
|
|
284
|
+
This also applies when a related editor normally owns those children. The
|
|
285
|
+
projection does not infer, repair or remove a reference, and disappears once
|
|
286
|
+
the record has a valid parent. Multi-parent records with at least one existing
|
|
287
|
+
parent remain reachable there; their other invalid references stay visible in
|
|
288
|
+
the ordinary reference editor.
|
|
289
|
+
|
|
290
|
+
Workspace navigation has two shared presentation shapes, not one style per
|
|
291
|
+
Bundle. **Structure navigation** renders records or chapters, optional hierarchy
|
|
292
|
+
and explicitly supplied status/annotations. A flat list is its zero-hierarchy
|
|
293
|
+
case: `record_workspace.navigation_layout: list` shows primary records and
|
|
294
|
+
collection-tail add actions without category/contextual nodes, while retaining
|
|
295
|
+
related editors. `tree` (the default) exposes the declared grouping/hierarchy.
|
|
296
|
+
Both use the same wrapping labels, selection treatment and row geometry as
|
|
297
|
+
record boards, diagram, artifact and document workspaces. **Card navigation**
|
|
298
|
+
combines a title and secondary context, as in `question_workspace` rounds.
|
|
299
|
+
Do not choose round cards merely because a collection is flat. These are shared
|
|
300
|
+
renderer defaults, not new DSL components or arbitrary style overrides. The
|
|
301
|
+
Bundle supplies information bindings; status never creates canonical facts.
|
|
302
|
+
|
|
303
|
+
Nested form collections use the same content-group composition as ordinary
|
|
304
|
+
record details: parent-owned 16px between complete field groups, 8px within a
|
|
305
|
+
group, and its add action at the collection tail. A collapsible record owns only
|
|
306
|
+
its direct fields; nested radio/checkbox labels keep their own choice spacing.
|
|
307
|
+
Use existing field/group, `record_map` and related-editor declarations rather
|
|
308
|
+
than compensating with empty text nodes, ad-hoc separators or Bundle CSS.
|
|
309
|
+
|
|
310
|
+
An authored `reference_graph` is a read-only canvas for independent collections:
|
|
311
|
+
`references.nodes` binds unique workspace `source` sections with a text
|
|
312
|
+
`label_field`; `references.links` binds `source`, `field`, `target` and optional
|
|
313
|
+
display `label`/`reverse`. Each link field must be a declared `record_select` or
|
|
314
|
+
`record_multi_select` targeting that section. A link may instead declare
|
|
315
|
+
`item_field` to read a declared `record_map.item_fields` leaf `record_select`
|
|
316
|
+
targeting that section. This finite child editor reads options from parent Panel
|
|
317
|
+
sections; it cannot write the target, reference another Panel, nest another map,
|
|
318
|
+
or traverse arbitrary dotted paths. It derives transient nodes/edges
|
|
319
|
+
from current references, reports missing targets, and maps details back to the
|
|
320
|
+
original records. It never saves graph coordinates or creates connections.
|
|
321
|
+
Resource references do not create containment or implicit parent/back navigation.
|
|
322
|
+
A node may declare `label_scope: record` to read its direct root-record label
|
|
323
|
+
when the source section edits a nested `fields_path`. The same canonical
|
|
324
|
+
`records_path` must also have a root section declaring that text field; this
|
|
325
|
+
adds no copied title or editable alias. Omitting it retains field-scoped labels.
|
|
326
|
+
A record reference may use exclusive `options_from_sections: [a, b, ...]` to
|
|
327
|
+
select from a finite union of distinct local sections. Its graph link uses
|
|
328
|
+
`targets` with exactly those sections instead of `target`. Values remain the
|
|
329
|
+
original unqualified record IDs: a value present in several target collections
|
|
330
|
+
is ambiguous, is not offered as a new choice, and remains visible with a
|
|
331
|
+
diagnostic if already saved. Missing or ambiguous values create no guessed
|
|
332
|
+
edge and are never cleared by rendering. Hub layout retains single-target links.
|
|
333
|
+
An optional authored `references.layout: {kind: hub, center, top?, bottom?,
|
|
334
|
+
left?, right?}` arranges the same records in a hub-and-resources overview and a
|
|
335
|
+
focused internal view. Assign every node section to exactly one zone. Optional
|
|
336
|
+
`group_by` is a center-owned `record_select` into `top` with a declared link;
|
|
337
|
+
equal labels never imply a shared identity. `value_field` binds center-owned
|
|
338
|
+
text, and `entries: {field, title_field, description_field}` projects captions
|
|
339
|
+
from a center-owned `record_map`; complete rows remain in the existing form.
|
|
340
|
+
Node bindings may add `description_field`, scalar `kind_field` (localized through
|
|
341
|
+
the declared choice options) and a finite semantic `icon`. Optional `kind_icons`
|
|
342
|
+
maps declared kind-choice values to the same finite icons; unknown values, URLs
|
|
343
|
+
and executable artwork are rejected. The label remains visible, so color is not
|
|
344
|
+
the sole type cue. Optional `center_presentation: portrait` uses original,
|
|
345
|
+
decorative human-like portraits keyed only by stable record identity, with a
|
|
346
|
+
role header and brain/resource anatomy in focus. It adds no avatar field or
|
|
347
|
+
external image client. In portrait focus, each nonempty side is one connected
|
|
348
|
+
resource container with selectable internal mini-cards, not a separate connected
|
|
349
|
+
node per member. Container identities and aggregated edge routes are transient;
|
|
350
|
+
members retain their original record identity and all reference evidence. Large
|
|
351
|
+
lists scroll inside the container. Its handles remain measurable but invisible,
|
|
352
|
+
and connecting, moving or deleting records is prohibited. Compact profiles put
|
|
353
|
+
internal-view and original-form actions first, followed by bounded summaries;
|
|
354
|
+
complete entry/handoff facts remain in their existing original forms. Other hub
|
|
355
|
+
presets retain their individual resource cards.
|
|
356
|
+
The preset is authored-only, optional, and does not infer role traits from names.
|
|
357
|
+
Selection,
|
|
358
|
+
zoom, grouping frames and edge routes are transient, never new Design File facts.
|
|
359
|
+
Missing references stay diagnosable. This layout is optional and does not replace
|
|
360
|
+
BPMN, navigation maps, relation graphs or native whiteboard geometry.
|
|
361
|
+
`record_workspace.workspace_view: switch` accepts this canvas before its
|
|
362
|
+
`record_inspector`. Generated A2UI does not gain this static authored extension.
|
|
363
|
+
Matching state `member_of_map`/`members_of_map` rules participate in the existing
|
|
364
|
+
Panel integrity gate; absent/empty reference lists are valid, dangling targets
|
|
365
|
+
are not. Completion rules are not promoted into save gates.
|
|
366
|
+
|
|
367
|
+
For a nested link the same state rule uses
|
|
368
|
+
`members_of_map: {value: handoffs, item_field: target, map: agents}` inside the
|
|
369
|
+
owning `for_each_in_map`. Only explicit `item_field` selects a map-of-records;
|
|
370
|
+
ordinary list rules still reject maps. Absent/empty child references are valid
|
|
371
|
+
drafts; nonempty missing IDs fail without whitespace normalization. The save
|
|
372
|
+
gate matches source, field, target and item field exactly. Projection deduplicates
|
|
373
|
+
repeated targets visually while preserving every canonical handoff row.
|
|
374
|
+
|
|
375
|
+
In a workspace with a `relation_graph`, the graph's edge section remains in
|
|
376
|
+
the editing scope but is not duplicated as a sidebar tree. Select relationships
|
|
377
|
+
from the canvas to edit them in the same inspector. The same single-collection
|
|
378
|
+
navigation rule applies with or without a graph. Multi-collection and contextual
|
|
379
|
+
trees retain their declared grouping. A switching workspace reuses the shared
|
|
380
|
+
sidebar-edge canvas toggle and the same detail-form spacing as ordinary forms;
|
|
381
|
+
switching views changes neither records nor their stable identities.
|
|
382
|
+
Relationships with missing endpoints cannot be drawn but must not disappear:
|
|
383
|
+
the canvas exposes a localized warning with record selection into the same
|
|
384
|
+
inspector, including when both endpoints are absent. Read-only inspection stays
|
|
385
|
+
read-only; no placeholder endpoints are invented and no automatic repair occurs.
|
|
386
|
+
|
|
387
|
+
An authored `relation_graph` may instead bind
|
|
388
|
+
`graph.participants: {field, reference_field, role_field, order_field}`. The field
|
|
389
|
+
is an edge-owned `record_map` with a child `record_select` into the node section,
|
|
390
|
+
a text role, and the existing sibling string-array `order_field`. Stable child
|
|
391
|
+
keys identify participation rows; repeated references in different roles remain
|
|
392
|
+
distinct. This mode excludes source/target fields, endpoint annotations, binary
|
|
393
|
+
hierarchy and reversal declarations. Existing binary declarations retain their
|
|
394
|
+
behavior. Two complete participants render an ordered edge with role labels;
|
|
395
|
+
three or more render the original relation as a selectable incidence center and
|
|
396
|
+
one undirected line per row. The center is not another business object or saved
|
|
397
|
+
graph record. Dragging between objects creates two rows and their sibling order;
|
|
398
|
+
the inspector adds or reorders further participants. Relation centers cannot be
|
|
399
|
+
connection endpoints. Missing participants remain selectable and diagnosable.
|
|
400
|
+
|
|
401
|
+
A participant graph may also declare `references.nodes` and `references.links`
|
|
402
|
+
to show contextual collections on that same canvas. Reuse the reference-graph
|
|
403
|
+
field contracts: include the primary node section with the same label field,
|
|
404
|
+
exclude the relation section, and omit `references.layout`. Original business
|
|
405
|
+
nodes and participant relations retain their projection and drag behavior;
|
|
406
|
+
context nodes and reference links select their canonical owners but never become
|
|
407
|
+
connection endpoints or independent editable relations. Missing references have
|
|
408
|
+
an owner-detail entry. The graph save gate selects only matching declared state
|
|
409
|
+
reference rules; it does not promote completion requirements into save rules.
|
|
410
|
+
|
|
411
|
+
`graph.related` may reference either the node or relation section, enabling one
|
|
412
|
+
canonical property collection to retain its actual owner. State
|
|
413
|
+
`members_of_map: {value, item_field, map, order_field}` matches the participant
|
|
414
|
+
binding in the existing graph save gate. The optional sibling order must contain
|
|
415
|
+
unique, existing child keys; an absent/partial order remains a draft. A completion
|
|
416
|
+
rule may add `min_entries` to require the minimum number of nonempty references
|
|
417
|
+
and full order coverage. Old list and nested-reference behavior is unchanged
|
|
418
|
+
when these options are omitted. `member_of_map.allow_empty: true` explicitly
|
|
419
|
+
permits empty text in an optional reference; its default remains unchanged.
|
|
420
|
+
`exclusive_fields: {fields: [object_ref, relation_ref], allow_empty: true}` permits
|
|
421
|
+
an unfinished owner but rejects two nonempty owners. Omit `allow_empty` in a
|
|
422
|
+
completion rule to require exactly one nonempty owner. State exclusivity is
|
|
423
|
+
included in graph save only when every field is an explicitly bound related
|
|
424
|
+
reference; completion is never promoted into that save gate.
|
|
425
|
+
|
|
426
|
+
A record section can also declare a self-referential hierarchy on its parent
|
|
427
|
+
`record_select` field:
|
|
428
|
+
|
|
429
|
+
```yaml
|
|
430
|
+
fields:
|
|
431
|
+
- key: parent_ref
|
|
432
|
+
control: record_select
|
|
433
|
+
options_from_section: items
|
|
434
|
+
applies_to: [items]
|
|
435
|
+
hierarchy:
|
|
436
|
+
label_field: title
|
|
437
|
+
group_label: More specific items
|
|
438
|
+
create_label: Create a more specific item
|
|
439
|
+
create_title: Create a more specific item
|
|
440
|
+
description: Start from the selected item without changing the base taxonomy.
|
|
441
|
+
inherit_fields: [kind]
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
The workspace then nests child records under their parent, provides the same
|
|
445
|
+
contextual create sheet from the tree and inspector, and writes the parent
|
|
446
|
+
reference plus the declared label. Only explicitly declared scalar
|
|
447
|
+
`inherit_fields` are copied; the renderer never invents domain inheritance or
|
|
448
|
+
duplicates related records. Cycles and missing parents remain visible at the
|
|
449
|
+
root rather than making records disappear. This is a generic record hierarchy,
|
|
450
|
+
not a Kit-specific type system.
|
|
451
|
+
|
|
452
|
+
An edge-based hierarchy can opt into child creation with
|
|
453
|
+
`graph.hierarchy.create: {edge_kind, create_label, create_title}`. The edge kind
|
|
454
|
+
must be one of the declared hierarchy kinds. The shared create sheet stores a
|
|
455
|
+
new node using `graph.label_field` and a new edge from that child (`source`) to
|
|
456
|
+
the selected parent (`target`) in one Panel transaction. The edge name uses the
|
|
457
|
+
localized kind option label; identity and enum values stay canonical. Existing
|
|
458
|
+
records and explicitly declared order bindings are retained, with no copies of
|
|
459
|
+
the parent's fields or related records. A read-only Panel, cancelled sheet or
|
|
460
|
+
missing parent emits no update. Merely declaring `hierarchy.values` does not
|
|
461
|
+
enable creation. Node, edge and order storage paths must be disjoint, and label
|
|
462
|
+
fields must be writable text distinct from IDs, endpoints and kind fields.
|
|
463
|
+
|
|
464
|
+
An authored edge hierarchy may declare `max_parents: 1` with exactly one
|
|
465
|
+
hierarchy kind. The shared inspector then offers a single-source selector;
|
|
466
|
+
changing it updates the existing edge in place, preserving ID, label and
|
|
467
|
+
metadata. Detaching removes only that edge/order entry. Missing endpoints,
|
|
468
|
+
cycles and duplicate parent edges do not cause implicit repair or copying.
|
|
469
|
+
Canvas connection uses the same presentation guard. The owning Bundle must
|
|
470
|
+
also validate single-parent and acyclic edges before persistence; a UI guard is
|
|
471
|
+
not the validation authority. No declaration changes existing multi-parent graphs.
|
|
472
|
+
|
|
473
|
+
Within that workspace, `record_related_editor.inherit_from_graph: true` opts
|
|
474
|
+
into read-only ancestor groups alongside the selected node's own editable
|
|
475
|
+
associated records. `bindings.reference` must target the graph's node section.
|
|
476
|
+
Ancestor facts retain their owner, conditions, restrictions and confirmation
|
|
477
|
+
requirements. A source link selects the original record; no associated record
|
|
478
|
+
is copied, merged or granted. The domain method must explain conflicts rather
|
|
479
|
+
than assuming override/deny precedence. This opt-in also avoids duplicating the
|
|
480
|
+
covered related collection as sidebar child branches. Generated Auto Panels
|
|
481
|
+
cannot declare this policy. View/locale changes do not emit canonical updates.
|
|
482
|
+
|
|
483
|
+
### `record_form`: headers, body composition and order actions
|
|
484
|
+
|
|
485
|
+
`sections[].form` configures shared `record_form` presentation, including forms
|
|
486
|
+
composed by an inspector or related-record editor. Omission preserves the old
|
|
487
|
+
record label, body fields and order-dependent move controls.
|
|
488
|
+
|
|
489
|
+
```yaml
|
|
490
|
+
sections:
|
|
491
|
+
- id: entries
|
|
492
|
+
title: Entries
|
|
493
|
+
order: entry_order
|
|
494
|
+
form:
|
|
495
|
+
reorder: false
|
|
496
|
+
header: {variant: detail, title: {field: caption, editable: true}}
|
|
497
|
+
- id: notes
|
|
498
|
+
title: Notes
|
|
499
|
+
form:
|
|
500
|
+
reorder: false
|
|
501
|
+
header: {variant: card, title: {text: Note, numbered: true}}
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
The fixed `detail` header is 44px high, with a 32px editable title; `card` is
|
|
505
|
+
40px high with a display title and optional ordinal in the currently displayed
|
|
506
|
+
record list. Header text supports normal Bundle translation tokens. Ordinals
|
|
507
|
+
are presentation, not record identities or newly stored facts.
|
|
508
|
+
|
|
509
|
+
A field-bound title must reference an unconditional declared `text` field of
|
|
510
|
+
the same section, never its identity. `editable: true` additionally excludes
|
|
511
|
+
readonly and derived fields and schema metadata/references. It uses the same
|
|
512
|
+
field binding/edit channel as the body, and consumes that field once: no second
|
|
513
|
+
body input or title copy is created. Omitted/false `editable` presents it as
|
|
514
|
+
text. Host readonly mode never renders a title editor or lifecycle actions.
|
|
515
|
+
Title edits retain all other record fields, IDs, references and order. The
|
|
516
|
+
existing confirm/atomic-delete behavior is unaffected.
|
|
517
|
+
|
|
518
|
+
`reorder: false` hides move controls only. It does not remove stored order,
|
|
519
|
+
change how records are read/added/deleted, or authorize other writes. `true`
|
|
520
|
+
still requires an existing durable order binding. This configuration is a
|
|
521
|
+
static Panel capability: generated-origin A2UI panels currently reject `form`
|
|
522
|
+
explicitly on generation/export/reload rather than dropping it or widening
|
|
523
|
+
their write permissions.
|
|
524
|
+
|
|
525
|
+
`form.body` is an optional finite list of `field`, `row`, `group`, and `tabs` items:
|
|
526
|
+
|
|
527
|
+
```yaml
|
|
528
|
+
form:
|
|
529
|
+
body:
|
|
530
|
+
- kind: row
|
|
531
|
+
items:
|
|
532
|
+
- {kind: text, text: '$t:decisionPrefix'}
|
|
533
|
+
- {kind: field, field: decision, label: visually_hidden, width: auto}
|
|
534
|
+
- {kind: field, field: description, label: visually_hidden, width: fill}
|
|
535
|
+
- kind: group
|
|
536
|
+
title: $t:conditions
|
|
537
|
+
description: $t:conditionsHelp
|
|
538
|
+
separator: true
|
|
539
|
+
items: [{kind: field, field: condition, label: inline}]
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
Rows contain fields or display-only text; groups contain fields or rows, never
|
|
543
|
+
nested groups. The shapes are closed, with no scripts, CSS or expressions.
|
|
544
|
+
Group titles are optional: use the field caption for one input, and title a
|
|
545
|
+
multi-field scope only when it adds meaning. The shared renderer removes an
|
|
546
|
+
exact duplicate title for a single direct field with a visible caption and no
|
|
547
|
+
sidecar. It retains differently named scopes, multi-field headings, sidecar
|
|
548
|
+
headings and the sole heading of a visually hidden caption. Required cues and
|
|
549
|
+
accessible names remain bound to the original field; near-synonyms are an
|
|
550
|
+
authoring review concern, not runtime guesses. Field groups share the 16px
|
|
551
|
+
section / 8px control rhythm; field help has 8px before it and no trailing
|
|
552
|
+
margin, so it cannot add a second section gap.
|
|
553
|
+
Groups may additionally declare one read-only preview beside their fields:
|
|
554
|
+
|
|
555
|
+
```yaml
|
|
556
|
+
sidecar:
|
|
557
|
+
component: record_preview
|
|
558
|
+
title: $t:preview
|
|
559
|
+
preview: {title: title, body: description, action: next_action, empty: '$t:empty'}
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
This reuses `record_preview`, bound to the exact record rendered by the form,
|
|
563
|
+
including nested `records_path`/`fields_path`; it needs no workspace selection
|
|
564
|
+
and cannot bind another section or execute the displayed action. The closed
|
|
565
|
+
slot admits only `component`, optional display `title`, and `preview`.
|
|
566
|
+
Preview title/body and optional action reference declared, unconditional, non-hidden text or
|
|
567
|
+
textarea fields in the same section. Binding names never translate; only the
|
|
568
|
+
sidecar display title and `preview.empty` do. Fields remain editable through
|
|
569
|
+
their existing canonical channel; the preview owns no state or write channel.
|
|
570
|
+
It stacks below fields in narrow containers. An empty conditional group still
|
|
571
|
+
disappears rather than exposing its hidden fields through a preview. This is a
|
|
572
|
+
static authored capability; generated A2UI forms reject it explicitly along
|
|
573
|
+
with `form`, not silently drop it during retention/export.
|
|
574
|
+
|
|
575
|
+
Field references are same-section declared undotted keys, cannot be binding-only
|
|
576
|
+
hidden fields, and cannot repeat another body/header editor. Conditional fields
|
|
577
|
+
keep their existing visibility/cleanup rules; empty groups and rows whose fields
|
|
578
|
+
are all invisible disappear. Explicit text-only rows are allowed. Unconsumed
|
|
579
|
+
visible fields are appended with their original renderer: partial layouts never
|
|
580
|
+
silently omit facts. `label` is `stacked` (default), `inline` (stacks in narrow
|
|
581
|
+
containers), or `visually_hidden` (accessible name remains). `width` is `auto`
|
|
582
|
+
or `fill`; this changes presentation, not write authority. Group titles/help and
|
|
583
|
+
row text use existing Bundle translations; keys, IDs and canonical values do not.
|
|
584
|
+
|
|
585
|
+
For longer records, a top-level body item may declare bounded record-local tabs:
|
|
586
|
+
|
|
587
|
+
```yaml
|
|
588
|
+
- kind: tabs
|
|
589
|
+
id: record-design
|
|
590
|
+
title: Design views
|
|
591
|
+
tabs:
|
|
592
|
+
- id: experience
|
|
593
|
+
title: Experience
|
|
594
|
+
items: [{kind: field, field: purpose}]
|
|
595
|
+
- id: agreements
|
|
596
|
+
title: Agreements
|
|
597
|
+
items:
|
|
598
|
+
- kind: group
|
|
599
|
+
title: Optional references
|
|
600
|
+
collapsible: true
|
|
601
|
+
items: [{kind: field, field: notes}]
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
Tab-group IDs are unique in a body, and tab IDs unique within that group. Tabs
|
|
605
|
+
contain only the existing field/row/group items: no nested tabs or groups.
|
|
606
|
+
They reuse the shared `tabs` component, including keyboard navigation, stable
|
|
607
|
+
ID selection and mounted inactive editors. Fields remain unique across all
|
|
608
|
+
pages and the record header; fallback fields are appended once outside tabs.
|
|
609
|
+
Changing page, language or disclosure state emits no canonical edit and never
|
|
610
|
+
clears existing values. Readonly follows the original field's authority.
|
|
611
|
+
`group.collapsible: true` requires a nonempty title, starts closed and uses the
|
|
612
|
+
shared disclosure glyph with native keyboard-accessible details semantics.
|
|
613
|
+
Its content remains mounted; display state is not another data field. Choose
|
|
614
|
+
this only for optional material, not to hide an unresolved blocking decision.
|
|
615
|
+
Both additions are static authored form presentation; generated-origin A2UI
|
|
616
|
+
still rejects the complete `form` extension rather than silently dropping it.
|
|
617
|
+
|
|
618
|
+
`EditorField.choice_layout` is `column`, `row_wrap`, or `row_scroll`, only for
|
|
619
|
+
`radio`, `radio_custom`, and `multi_select`. Omission keeps the old layout.
|
|
620
|
+
`custom_focus: true` is only for `radio_custom` and focuses its custom input after
|
|
621
|
+
the user selects Other, not on mount, polling, locale switching or readonly.
|
|
622
|
+
`allow_clear: false` is only for `select` and suppresses new empty selections.
|
|
623
|
+
An existing missing value gets a disabled blank placeholder; a stale saved value
|
|
624
|
+
remains visible. Neither is normalized on load. Omitted/true retains the original
|
|
625
|
+
empty option and `undefined` edit. These field presentation extensions, like
|
|
626
|
+
`form`, explicitly reject in generated A2UI panels until separately supported.
|
|
627
|
+
|
|
628
|
+
## `fields`
|
|
629
|
+
|
|
630
|
+
`required: true` presents an expected input, including accessible naming and a
|
|
631
|
+
visible indicator. It does **not** add a browser submit constraint, rewrite an
|
|
632
|
+
empty value, or introduce a save/completion validator. Schema `required` checks
|
|
633
|
+
property presence; nonempty text and other content invariants belong to the
|
|
634
|
+
Bundle's existing scoped validation and methods. Panel Save and executor
|
|
635
|
+
publication retain their current different validation paths.
|
|
636
|
+
|
|
637
|
+
For a field shared by sections with different requirements, use the authored
|
|
638
|
+
alternative `required_in: [section_id]`. Each entry must be a distinct declared
|
|
639
|
+
`applies_to` section; it cannot coexist with `required`. Only those sections show
|
|
640
|
+
the requirement. The field keeps one canonical key and the same edit channel.
|
|
641
|
+
Generated A2UI currently rejects this authored extension explicitly; it does not
|
|
642
|
+
silently drop section-specific requirements.
|
|
643
|
+
|
|
644
|
+
Ordinary controls expose `aria-required`; radio choices expose it on the
|
|
645
|
+
`radiogroup`. Multi-value/token editors use a named group with a localized
|
|
646
|
+
required indication, not unsupported `aria-required` on `group` and not a
|
|
647
|
+
requirement on every draft token input. A matching single-field group title owns
|
|
648
|
+
the visible indicator when the field caption is visually hidden; otherwise a
|
|
649
|
+
small inline indicator remains beside the control. Conditional fields lose their
|
|
650
|
+
indicator when hidden. Optional notes must not declare either requirement form.
|
|
651
|
+
|
|
652
|
+
```yaml
|
|
653
|
+
fields:
|
|
654
|
+
- key: priority # record field key
|
|
655
|
+
control: select # one of CONTROL_KINDS
|
|
656
|
+
label: 优先级
|
|
657
|
+
applies_to: [functions] # sections this field edits
|
|
658
|
+
required: true
|
|
659
|
+
wide: true # optional full-width hint
|
|
660
|
+
options: # for select/radio/multi_select
|
|
661
|
+
- { value: High, label: 高 }
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
### `control` (closed)
|
|
665
|
+
|
|
666
|
+
`text | textarea | number | select | radio | list | multi_select |
|
|
667
|
+
record_select | record_multi_select | key_value | toggle | artifact_ref |
|
|
668
|
+
rows | source_list | token_list | radio_custom | record_map |
|
|
669
|
+
source_reference_map | data_table | color`
|
|
670
|
+
|
|
671
|
+
The authoritative closed set is `CONTROL_KINDS` in
|
|
672
|
+
[the shared DSL contract](../../index.md#developer-source-references). A control being
|
|
673
|
+
listed here does not make its parameters interchangeable with other controls;
|
|
674
|
+
use the corresponding field contract and validator when authoring a Bundle.
|
|
675
|
+
|
|
676
|
+
### Schema binding for `select` and `radio`
|
|
677
|
+
|
|
678
|
+
A `select` or `radio` field binds to a section record property declared in the
|
|
679
|
+
Bundle schema as `{"type": "enum", "values": [...]}` with a non-empty `values`
|
|
680
|
+
list. In generated A2UI, `options` must contain exactly those enum values, one
|
|
681
|
+
option per value, with display labels. There is no `enum` key on `type: "string"`:
|
|
682
|
+
declaring `{type: string, enum: [...]}` leaves a plain string property, and the
|
|
683
|
+
existing validators reject the mismatch instead of coercing it. Exact diagnostics:
|
|
684
|
+
|
|
685
|
+
- a generated `select`/`radio` field bound to a non-`enum` property, or an `enum`
|
|
686
|
+
property with missing/empty `values` or mismatched options, fails with
|
|
687
|
+
`auto panel: field "<key>" does not match schema`;
|
|
688
|
+
- keeping `options` on a control that does not consume them (e.g. `text`)
|
|
689
|
+
fails manifest parsing with
|
|
690
|
+
`field "<key>" control "text" does not consume options`.
|
|
691
|
+
|
|
692
|
+
Minimal matching pair (synthetic; the JSON is the record property's schema):
|
|
693
|
+
|
|
694
|
+
```yaml
|
|
695
|
+
fields:
|
|
696
|
+
- key: status
|
|
697
|
+
label: Status
|
|
698
|
+
control: select
|
|
699
|
+
applies_to: [devices]
|
|
700
|
+
options:
|
|
701
|
+
- {value: normal, label: Normal}
|
|
702
|
+
- {value: anomaly, label: Anomaly}
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
```json
|
|
706
|
+
{"type": "enum", "values": ["normal", "anomaly"]}
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
### Field extensions for `record_form`
|
|
710
|
+
|
|
711
|
+
```yaml
|
|
712
|
+
fields:
|
|
713
|
+
- key: detail
|
|
714
|
+
control: textarea
|
|
715
|
+
applies_to: [adaptations]
|
|
716
|
+
visible_when: { field: decision, in: [adapt] } # conditional visibility
|
|
717
|
+
- key: standard_ref
|
|
718
|
+
control: record_select
|
|
719
|
+
applies_to: [adaptations]
|
|
720
|
+
options_from_section: standards # options = section records
|
|
721
|
+
- key: module_ref
|
|
722
|
+
control: record_select
|
|
723
|
+
applies_to: [adaptations]
|
|
724
|
+
options_from_panel: # cross-panel option source
|
|
725
|
+
panel_type: function_modules
|
|
726
|
+
section_id: functions
|
|
727
|
+
- key: steps
|
|
728
|
+
control: rows # typed sub-table
|
|
729
|
+
applies_to: [adaptations]
|
|
730
|
+
row_name: 步骤
|
|
731
|
+
max_rows: 3 # default 50
|
|
732
|
+
columns:
|
|
733
|
+
- { key: title, control: text, label: 步骤 }
|
|
734
|
+
- key: kind
|
|
735
|
+
control: select
|
|
736
|
+
label: 类型
|
|
737
|
+
options: [{ value: dev, label: 开发 }]
|
|
738
|
+
- { key: owner, control: ref, label: 负责标准, ref_sections: [standards] }
|
|
739
|
+
- key: sources
|
|
740
|
+
control: source_list # `kind:name` ref chips
|
|
741
|
+
applies_to: [adaptations]
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
- `visible_when` hides the field unless another field of the same record
|
|
745
|
+
currently holds a value in `in`; the gate re-evaluates on every edit.
|
|
746
|
+
Authored fields may use `visible_when: {all: [{field: source_ref, in: ['']},
|
|
747
|
+
{field: connection, in: [existing]}]}` for a nonempty, flat conjunction of
|
|
748
|
+
these same conditions. Missing/null scalar values match `''`; arrays match
|
|
749
|
+
if any string member matches. Every clause must match. Hidden values are
|
|
750
|
+
retained unless the existing explicit `clear_when_hidden` contract applies;
|
|
751
|
+
a change to any declared dependency then re-evaluates that contract. No
|
|
752
|
+
recursive condition/expression language or executable predicates are allowed.
|
|
753
|
+
- Authored `label_when: [{field: mode, in: [automatic], label: When it runs}]`
|
|
754
|
+
selects display copy from sibling values, using the same matching rule as
|
|
755
|
+
`visible_when`. The first matching entry wins; no match keeps `label` (or the
|
|
756
|
+
field key). Dependencies must be declared on a shared section, or on the same
|
|
757
|
+
child for `record_map.item_fields`. Labels support `$t:` translations and are
|
|
758
|
+
used consistently for captions and accessible control names. This never
|
|
759
|
+
changes bindings, values, requirements or save rules. Hide inapplicable fields
|
|
760
|
+
with `visible_when`; do not erase data unless an existing, explicit clearing
|
|
761
|
+
contract requires it. Generated Auto Panel editor fields do not yet accept
|
|
762
|
+
`label_when` (like the existing authored visibility extension).
|
|
763
|
+
- `options_from_section` / `options_from_panel` resolve choice options from
|
|
764
|
+
record ids (label = record title). Cross-panel refs resolve through the
|
|
765
|
+
host-supplied `panelData` render option; an absent resolver yields no
|
|
766
|
+
options and never copies data into this panel.
|
|
767
|
+
- Static `options[]` entries may carry `when: { field, in }` to offer the
|
|
768
|
+
option only while another field of the record matches.
|
|
769
|
+
- `rows` edits an array of row objects cell-by-cell; column controls are
|
|
770
|
+
`text | textarea | select | ref`. `ref` columns need `ref_sections`
|
|
771
|
+
(this panel) or `options_from_panel` (cross-panel).
|
|
772
|
+
- `source_list` edits an array of `kind:name` reference strings and renders
|
|
773
|
+
readable chips (`standard:*` → 标准参考, `upload|user|research|ai`
|
|
774
|
+
suffixed); unknown kinds pass through.
|
|
775
|
+
- `token_list` edits free string lists with optional suggested `options`. `token_layout:
|
|
776
|
+
cards` displays option descriptions and `custom_description` for custom entries.
|
|
777
|
+
Authored fields may opt into `token_add_mode: menu`: a keyboard-accessible preset
|
|
778
|
+
menu disables already selected values and opens a cancellable custom-entry card.
|
|
779
|
+
In card layout, the add/custom card shares the existing card grid (two columns
|
|
780
|
+
in a wide workspace, one in a narrow workspace). `token_add_description` supplies
|
|
781
|
+
a content-owned subtitle. `token_custom_icon` and each option's `icon` can select
|
|
782
|
+
the shared `message-square` or `plug` glyph; arbitrary markup and unknown glyphs
|
|
783
|
+
are rejected. These attributes are only valid on `token_list`, never generated
|
|
784
|
+
scalar fields. Omission preserves the original inline editor.
|
|
785
|
+
Options may declare `menu_description` and `selected_description` for distinct
|
|
786
|
+
unselected/selected menu copy, both falling back to `description`. Saved cards
|
|
787
|
+
keep the original `description`; copy never changes stored values.
|
|
788
|
+
Cancel/Escape discard only the unsaved input; Add/Enter split and deduplicate values
|
|
789
|
+
into the same bound list. Selecting another record discards the local entry draft.
|
|
790
|
+
Omission or `inline` preserves the existing preset select and always-visible input.
|
|
791
|
+
This static extension grants no new write scope; generated panels reject it explicitly.
|
|
792
|
+
|
|
793
|
+
```yaml
|
|
794
|
+
- key: delivery_methods
|
|
795
|
+
control: token_list
|
|
796
|
+
token_layout: cards
|
|
797
|
+
token_add_mode: menu
|
|
798
|
+
custom_description: Requires an external service
|
|
799
|
+
options: [{value: internal, label: Internal, description: Built in}]
|
|
800
|
+
applies_to: [records]
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
Semantics decisions:
|
|
804
|
+
|
|
805
|
+
- Resolved options are deduped by value; earlier sources win (static
|
|
806
|
+
`options`, then `options_from_section`, then `options_from_panel`).
|
|
807
|
+
Record ids are Kit-level global reference ids.
|
|
808
|
+
- Stored row/ref arrays are never destructively normalized: a
|
|
809
|
+
non-conforming member disables the whole field's editing with a clear
|
|
810
|
+
diagnostic while the raw value is preserved verbatim; explicit deletion
|
|
811
|
+
(after fixing the data) is the only removal path.
|
|
812
|
+
- `rows` keys React nodes through a module-level identity map over row
|
|
813
|
+
objects, so deleting a middle row never re-keys the surviving rows;
|
|
814
|
+
edited rows are cloned, untouched rows keep identity.
|
|
815
|
+
- `multi_select`/`record_multi_select` round-trip as string arrays; a
|
|
816
|
+
comma-separated string is an accepted input contract on read (split and
|
|
817
|
+
trimmed), while writes always emit arrays.
|
|
818
|
+
- `record_form` carries a generic record lifecycle in editable mode:
|
|
819
|
+
add/remove/reorder emit whole-section rewrites through the panel-update
|
|
820
|
+
channel (map insertion order is the record order); read-only renders no
|
|
821
|
+
lifecycle affordances.
|
|
822
|
+
- `visible_when` and option `when` gates must reference a declared field
|
|
823
|
+
sharing at least one `applies_to` section (column option gates must
|
|
824
|
+
reference a column of the same `rows` field).
|
|
825
|
+
|
|
826
|
+
## `ui` component tree
|
|
827
|
+
|
|
828
|
+
A node binds a component to sections and may nest children or named slots.
|
|
829
|
+
|
|
830
|
+
```yaml
|
|
831
|
+
ui:
|
|
832
|
+
component: record_workspace
|
|
833
|
+
id: functions-view
|
|
834
|
+
sources: [functions]
|
|
835
|
+
navigation_group_by: function_epic # optional declared grouping field
|
|
836
|
+
children:
|
|
837
|
+
- { component: record_inspector, id: details }
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
Record navigation and details use `record_workspace` and `record_inspector`.
|
|
841
|
+
The workspace owns selection, navigation controls and content scrolling. A flat
|
|
842
|
+
collection can use `navigation_layout: list`; the default is structure navigation.
|
|
843
|
+
Do not reconstruct this interaction from separate lists and forms.
|
|
844
|
+
|
|
845
|
+
The lower-level `panel_workspace` is a layout shell with `sidebar`/`main` slots,
|
|
846
|
+
for compositions that do not need record selection. Ordinary main content scrolls
|
|
847
|
+
inside the shell; a complete child workspace retains its own scrolling:
|
|
848
|
+
|
|
849
|
+
```yaml
|
|
850
|
+
ui:
|
|
851
|
+
component: panel_workspace
|
|
852
|
+
id: root
|
|
853
|
+
slots:
|
|
854
|
+
sidebar: { component: text_block, id: help, text: "Review the roles and their responsibilities." }
|
|
855
|
+
main: { component: record_form, id: form, source: roles }
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
### `guidance` — independent Panel action guidance
|
|
859
|
+
|
|
860
|
+
An authored UI node may provide optional nonempty `guidance` text, including an
|
|
861
|
+
existing `$t:guidance` locale token. Put it on the owning workspace (or the root
|
|
862
|
+
of a plain form composition), once per Panel. It tells users what to do after
|
|
863
|
+
opening the Panel; it is not `SKILL.md` capability copy, `bundleDescription`,
|
|
864
|
+
empty-state `description`, field help, execution status or an error.
|
|
865
|
+
|
|
866
|
+
The Panel shows an optional tip icon in its bottom-left corner, with or without
|
|
867
|
+
sidebar navigation. Hover, keyboard focus or click reveals the guidance;
|
|
868
|
+
Escape or leaving the tip closes it. It occupies no permanent content row and
|
|
869
|
+
does not edit data, invoke save or persist a preference. Only explicit guidance
|
|
870
|
+
creates the tip; descriptions are not a fallback. The Agent briefly guides the
|
|
871
|
+
user in the conversation when handing over the Panel, using the authored guidance
|
|
872
|
+
when available or its own task-specific understanding otherwise. The tip is a
|
|
873
|
+
reminder, never a required review step or an additional handoff gate.
|
|
874
|
+
Do not declare both properties with the same action message or duplicate a
|
|
875
|
+
parent's guidance on its nested child. Omission adds no help control; an explicit
|
|
876
|
+
blank or non-string guidance value fails the existing Panel validation.
|
|
877
|
+
|
|
878
|
+
Editable record headers use the shared pencil to focus the original title
|
|
879
|
+
input, with no second rename control or title `*`. Required aria semantics and
|
|
880
|
+
owning schema/save checks remain; ordinary required fields keep their marks.
|
|
881
|
+
Readonly/derived names and missing update callbacks do not gain a pencil or
|
|
882
|
+
write authority. Special workspace names use their existing metadata bindings.
|
|
883
|
+
|
|
884
|
+
### `sidebar_icon` — authored sidebar title icons
|
|
885
|
+
|
|
886
|
+
An authored workspace may set `sidebar_icon: users` beside its `title`.
|
|
887
|
+
It selects a decorative 16px Lucide icon in the owning sidebar header, not
|
|
888
|
+
an icon on each record, a button, or a business-data field. The visible title
|
|
889
|
+
and navigation accessibility label remain authoritative.
|
|
890
|
+
|
|
891
|
+
The finite vocabulary is `SIDEBAR_ICONS` / `SidebarIcon` in
|
|
892
|
+
[`panel-dsl.ts`](../../index.md#developer-source-references); supported components are
|
|
893
|
+
derived from the catalog's `sidebarTitle` capability. They currently include
|
|
894
|
+
`question_workspace`, `question_rounds`, `record_workspace`, `record_board`,
|
|
895
|
+
`document_workspace`, `artifact_workspace`, `diagram_workspace`,
|
|
896
|
+
`canvas_workspace`, `preview_workspace`, and `navigation_workspace`.
|
|
897
|
+
Raw `panel_workspace` slots, forms and `question_list` have no owning sidebar
|
|
898
|
+
title and reject this field. Omission preserves the component's existing chrome.
|
|
899
|
+
|
|
900
|
+
Only a finite string is accepted: URLs, SVG/HTML, import paths, expressions,
|
|
901
|
+
objects, null and unknown names fail validation. Content cannot load code or
|
|
902
|
+
register icons. Generated A2UI panels reject the field even on an otherwise
|
|
903
|
+
allowed component; static authoring capability does not expand that subset.
|
|
904
|
+
The icon does not alter canonical data, selection, edits, execution or save.
|
|
905
|
+
|
|
906
|
+
### `navigation_workspace` — creating connections
|
|
907
|
+
|
|
908
|
+
`navigation_map` binds independent node, edge and frame collections. Optional
|
|
909
|
+
`connection_policy.allow_self` and `allow_parallel` affect only new connections;
|
|
910
|
+
omitting either flag allows that case. Parallel connections have the same
|
|
911
|
+
ordered source and target identities, regardless of visual ports. A reverse
|
|
912
|
+
connection is distinct. Both endpoints must exist. Changing this declaration
|
|
913
|
+
never removes or rewrites existing connections, including invalid old records.
|
|
914
|
+
These flags do not express acyclicity, degree limits or arbitrary graph rules.
|
|
915
|
+
|
|
916
|
+
Optional `navigation_map.edges.new_label` supplies a new connection's initial
|
|
917
|
+
label. It accepts literal text or an existing `$t:key` reference, with only
|
|
918
|
+
`{source}` and `{target}` placeholders. Endpoint labels come from `nodes.label`,
|
|
919
|
+
falling back to record identities; substitution is single-pass plain text.
|
|
920
|
+
Resolved labels are validated in each loaded locale with its declared fallback.
|
|
921
|
+
Empty templates, unknown placeholders, malformed braces and wrong types fail.
|
|
922
|
+
Omission keeps the existing section creation defaults. The declaration never
|
|
923
|
+
renames saved edges or relabels them after an endpoint changes.
|
|
924
|
+
|
|
925
|
+
The workspace checks the same creation policy during preview and again when
|
|
926
|
+
creating a connection, using current edit permission and canonical endpoints.
|
|
927
|
+
See `ComponentNode.navigation_map` in [the Core contract](../../index.md#developer-source-references)
|
|
928
|
+
and the source-derived component inspector for the complete field bindings.
|
|
929
|
+
|
|
930
|
+
### `component` (trusted, extensible library)
|
|
931
|
+
|
|
932
|
+
The authoritative vocabulary is [`PANEL_COMPONENT_CATALOG`](../../index.md#developer-source-references).
|
|
933
|
+
`COMPONENT_KINDS`, workspace ownership, source bindings and the generated-panel
|
|
934
|
+
subset are derived from that one registry; this document is not a second
|
|
935
|
+
validation whitelist. Bundle data cannot register executable components.
|
|
936
|
+
|
|
937
|
+
The shared library includes basic layouts and controls, question workspaces,
|
|
938
|
+
record navigation/editing, diagrams, canvases, artifact readers and previews.
|
|
939
|
+
Full-height workspace components preserve scroll and navigation ownership:
|
|
940
|
+
`record_board`, `document_workspace`, `artifact_workspace`, `diagram_workspace`,
|
|
941
|
+
`canvas_workspace`, `preview_workspace` and `navigation_workspace` expose their
|
|
942
|
+
behavior through explicit data bindings rather than Kit names. These are reusable
|
|
943
|
+
capabilities, not a guarantee that every record schema fits every workspace.
|
|
944
|
+
|
|
945
|
+
`record_board.board.detail_sources` can embed exactly one `record_workspace`
|
|
946
|
+
under the selected card. Each `{section, reference}` binding declares an unordered
|
|
947
|
+
direct record collection and a readonly `record_select` back to the board's
|
|
948
|
+
parent section. The child workspace sources must belong to those bindings.
|
|
949
|
+
Owner and child storage paths cannot alias or overlap. The renderer filters
|
|
950
|
+
children by the selected parent, binds new records to it, and merges hidden
|
|
951
|
+
sibling records back into canonical updates. It refuses sibling-id replacement,
|
|
952
|
+
reparenting and writes outside these collections. This is a view projection,
|
|
953
|
+
not a second stored copy; it does not support independently ordered child maps,
|
|
954
|
+
nested `fields_path` records or artifact staging in this first composition slice.
|
|
955
|
+
Ordinary `detail_sections` retain their existing same-record nested-form meaning.
|
|
956
|
+
|
|
957
|
+
`record_board` uses full-width cards and a workspace-covering overview. Optional
|
|
958
|
+
`board.group` binds a real grouping field. When omitted, the sidebar lists records
|
|
959
|
+
directly, cards have no artificial group heading, and the overview connects the
|
|
960
|
+
root directly to records. Do not bind long summaries merely to satisfy grouping;
|
|
961
|
+
this projection never adds a grouping field to canonical records.
|
|
962
|
+
Sidebar selection scrolls to a card; it does not start editing. Description and
|
|
963
|
+
badge drafts have explicit Save/Cancel, while rejected records remain inspectable
|
|
964
|
+
without granting edit access. Optional `board.id_field` binds a declared visible,
|
|
965
|
+
readonly `text` field and displays its existing string beside the card title and
|
|
966
|
+
at the top of cover details. Inline details retain the same card header. It does
|
|
967
|
+
not add an ID editor, generate a fallback ID or write state; omission retains the
|
|
968
|
+
existing title-only presentation. `board.detail_fields` restricts the parent fields
|
|
969
|
+
shown in the detail fold, and `details_title` localizes its heading. Optional nested
|
|
970
|
+
dimensions can be added or removed without replacing unrelated record fields.
|
|
971
|
+
`board.detail_fields_mode: fixed` instead shows every declared nested input and
|
|
972
|
+
removes dimension-level add/delete controls; collection item add/delete still
|
|
973
|
+
uses its usual editor. Fields remain schema-optional, including empty inputs.
|
|
974
|
+
Viewing does not insert missing strings/maps. Omitted/`on_demand` retains the
|
|
975
|
+
existing optional-dimension behavior. This option grants no new write authority.
|
|
976
|
+
|
|
977
|
+
`record_workspace.workspace_view: switch` puts the first child canvas over the
|
|
978
|
+
whole workspace. The edge action opens it, and the return action or a node's
|
|
979
|
+
details action returns to the selected record. It does not add form/canvas tabs
|
|
980
|
+
to the sidebar. Covered content stays mounted and inert to preserve selection,
|
|
981
|
+
drafts and the graph viewport without allowing hidden controls to receive input.
|
|
982
|
+
|
|
983
|
+
`record_related_editor.record_table` is an authored-only table presentation of
|
|
984
|
+
the same child collection, not a conversion to a `rows` array. Its finite
|
|
985
|
+
`columns: [{fields: [field_key, ...], label?: string}]` groups existing field
|
|
986
|
+
editors into cells. Every non-hidden field declared for that child section must
|
|
987
|
+
appear exactly once; hidden/foreign/duplicate bindings and unknown column keys
|
|
988
|
+
are rejected. Column labels default to the first field's label and use the usual
|
|
989
|
+
locale resolution. A cell retains field visibility, help, requiredness, custom
|
|
990
|
+
conditions and existing edit/derived-field rules. Record creation still binds
|
|
991
|
+
the selected parent, deletion preserves the normal section cleanup rules, and
|
|
992
|
+
`inherit_from_graph` tables remain source-linked and read-only. The shared table
|
|
993
|
+
wrapper owns horizontal scrolling at narrow widths. This does not promote the
|
|
994
|
+
component or this declaration to generated A2UI.
|
|
995
|
+
|
|
996
|
+
An authored graph hierarchy with `max_parents: 1` may opt into
|
|
997
|
+
`parent_control: header`. The existing single-parent selector then sits beside
|
|
998
|
+
the selected record's form title, rather than above the whole inspector. It
|
|
999
|
+
still updates the same relation edge, rejects cycles, retains the source-record
|
|
1000
|
+
navigation and shows the actual parent in read-only mode. Omission preserves
|
|
1001
|
+
the prior inspector presentation; neither view creates an extra parent field.
|
|
1002
|
+
|
|
1003
|
+
`diagram_workspace.diagram.detail_rows` groups declared read-only fields into
|
|
1004
|
+
responsive fact cards. `chip_fields` selects string-list fields rendered as tags;
|
|
1005
|
+
`detail_hint_fields` supplies the populated field labels for the details action.
|
|
1006
|
+
`tags` maps declared enum fields to labels and finite semantic tones. These are
|
|
1007
|
+
presentation declarations, not new edit rights or storage. Diagram details cover
|
|
1008
|
+
only the content pane; the navigator remains available. Leaving an edited diagram
|
|
1009
|
+
still requires successful serialization through the existing save barrier.
|
|
1010
|
+
|
|
1011
|
+
`diagram_workspace.diagram.label_source` can read a declared label from another
|
|
1012
|
+
section bound to the same record collection. The optional `inspector` keeps a
|
|
1013
|
+
context editor alongside the BPMN canvas: `process_sections` edit the selected
|
|
1014
|
+
process; `nodes` binds `source`, `process_field`, `element_field`, `label_field`
|
|
1015
|
+
and same-collection `sections`. Optional `related` groups use a process reference
|
|
1016
|
+
and an optional `node_field`; `advanced: true` starts the group collapsed.
|
|
1017
|
+
References must be declared `record_select` fields targeting the corresponding
|
|
1018
|
+
collection. Clicking an element resolves its exact ID within the selected
|
|
1019
|
+
process only; absent or duplicate bindings do not guess a record. Existing field
|
|
1020
|
+
edit permissions and the atomic artifact save barrier remain authoritative.
|
|
1021
|
+
This is contextual navigation, not automatic synchronization of BPMN structure
|
|
1022
|
+
and business facts; authors must explain how structural changes are reconciled.
|
|
1023
|
+
|
|
1024
|
+
For an exact component contract and on-demand local type declarations, use the
|
|
1025
|
+
authoring inspector from the repository root:
|
|
1026
|
+
|
|
1027
|
+
```sh
|
|
1028
|
+
node .agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs . navigation_workspace --type ComponentNode.navigation_map.edges
|
|
1029
|
+
```
|
|
1030
|
+
|
|
1031
|
+
Use the [component extension contract](a2ui-component-catalog-contract.md) when
|
|
1032
|
+
adding a component: catalog, validation, renderer, styles, edit boundaries,
|
|
1033
|
+
tests and authoring guidance must agree. Trusted runtime additions are possible;
|
|
1034
|
+
unknown component names in a manifest are rejected.
|
|
1035
|
+
|
|
1036
|
+
Acceptance of a component name alone does not establish rendering fidelity,
|
|
1037
|
+
editable lifecycle support, or compatibility with every host; those require
|
|
1038
|
+
the component's binding contract and actual runtime verification.
|
|
1039
|
+
|
|
1040
|
+
Predefined DSL and A2UI-derived panels share this library, but generated panels
|
|
1041
|
+
may use only the subset with an implemented generation/edit-authority contract.
|
|
1042
|
+
An authored workspace is not automatically promoted into that subset.
|
|
1043
|
+
Supported generated results can be deterministically retained as DSL; unsupported
|
|
1044
|
+
capabilities must fail explicitly, never disappear during conversion. This is
|
|
1045
|
+
not an arbitrary bidirectional A2UI protocol converter.
|
|
1046
|
+
|
|
1047
|
+
`question_list` is the standard controlled question interaction. Each source
|
|
1048
|
+
record uses `prompt`, optional `note`, `kind` (`text | single | multiple`),
|
|
1049
|
+
optional `choices[]` (`value`, `label`, `recommended`), `answer`, and optional
|
|
1050
|
+
`detail`. Text answers render as one multiline input; an existing text-question
|
|
1051
|
+
`detail` remains visible as read-only context rather than becoming a second
|
|
1052
|
+
answer box. Single/multiple answers use accessible choice rows and may edit
|
|
1053
|
+
`detail`. Existing read-only context and choice supplements use the same
|
|
1054
|
+
localized label (without the optional-input suffix in reading mode). Cards
|
|
1055
|
+
with a non-empty `answer` collapse to a readable result and can
|
|
1056
|
+
be reopened for editing. The component writes only the fields exposed by that
|
|
1057
|
+
interaction back to the owning record. It does not invent approval state, and an
|
|
1058
|
+
empty answer remains unanswered even when `detail` contains context. Native
|
|
1059
|
+
providers may explicitly extend answer-state semantics for attachments, and
|
|
1060
|
+
may add rounds or rejection around this base contract without making those
|
|
1061
|
+
extensions mandatory for other Kits.
|
|
1062
|
+
|
|
1063
|
+
Authored `question_list`, `question_rounds`, and `question_workspace` may declare
|
|
1064
|
+
`card_groups` with a unique `id`, `title`, and ordered `question_ids`. Members
|
|
1065
|
+
must be contiguous in the existing record order and, for round workspaces, stay
|
|
1066
|
+
within one round. Invalid groups fall back to ordinary cards with a diagnostic;
|
|
1067
|
+
grouping never reorders canonical records. Generated-origin Panels reject this
|
|
1068
|
+
authored extension.
|
|
1069
|
+
|
|
1070
|
+
Each group may declare a `presentation` object containing only optional boolean
|
|
1071
|
+
`always_expanded`, `show_detail`, and `show_attachments` properties. These select
|
|
1072
|
+
shared component behavior, not Bundle-specific styling. Omission preserves the
|
|
1073
|
+
usual collapse, detail, and attachment controls. Hiding a control preserves its
|
|
1074
|
+
canonical data; keeping a card expanded does not grant editing permission.
|
|
1075
|
+
Read-only, disabled, protected, historical and rejection guards still apply.
|
|
1076
|
+
|
|
1077
|
+
`question_workspace` composes the same question cards with the standard
|
|
1078
|
+
`panel_workspace` navigation shell. It groups records by optional numeric
|
|
1079
|
+
`round`, shows answer progress, and keeps only the selected group in the main
|
|
1080
|
+
pane; records without a round form one current group. Its optional
|
|
1081
|
+
`description` is rendered through the shared sticky workspace Tip Bar above
|
|
1082
|
+
the main content, never squeezed into the navigation sidebar. `question_rounds` is the
|
|
1083
|
+
backward-compatible alias for this workspace behavior. Optional
|
|
1084
|
+
`multimodal_answer[]` entries use the Web App-compatible local reference shape
|
|
1085
|
+
(`type`, `file_md5`, `filename`, `mime_type`, `size_bytes`, `artifact_file`).
|
|
1086
|
+
The client keeps pending bytes in a reserved browser-only transport, strips it
|
|
1087
|
+
before schema validation, and atomically saves only files still referenced by
|
|
1088
|
+
canonical state. The transport is framework state, never a Bundle field.
|
|
1089
|
+
|
|
1090
|
+
Authored `question_workspace` / `question_rounds` nodes may explicitly set
|
|
1091
|
+
`question_policy.allow_choice_actions: true`. Expanded editable dynamic single
|
|
1092
|
+
cards offer “Switch to multiple choice”; multiple cards offer “Select all” /
|
|
1093
|
+
“Deselect all”. Omission or `false` preserves the existing controls. The shared
|
|
1094
|
+
runtime owns these actions and their localized styling, not Bundle CSS or an
|
|
1095
|
+
author-supplied `renderActions` callback. Switching changes only `kind` to
|
|
1096
|
+
`multiple`, preserving the exact answer bytes and keeping the editor open.
|
|
1097
|
+
Select-all writes choice values in declared order through the existing
|
|
1098
|
+
comma-separated `answer` contract; deselect-all writes an empty answer. Neither
|
|
1099
|
+
action changes detail, attachments, identity, choices or round. Records declared
|
|
1100
|
+
in `first_round_ids` are the fixed first-round configuration and do not receive
|
|
1101
|
+
these actions; `protected_ids` still controls rejection only. Read-only,
|
|
1102
|
+
disabled, rejected and read-only historical cards cannot invoke the actions.
|
|
1103
|
+
Generated-origin/A2UI auto Panels reject this configuration, even when `false`;
|
|
1104
|
+
their existing answer/detail-only write authority and protected `kind` remain
|
|
1105
|
+
unchanged. Converting a generated view into an authored reusable panel does not
|
|
1106
|
+
silently grant this capability: the author must opt in under the static contract.
|
|
1107
|
+
|
|
1108
|
+
`panel_workspace` is the reusable panel-internal left navigation + main content
|
|
1109
|
+
layout. It standardizes containment, scroll ownership and narrow-panel fallback;
|
|
1110
|
+
it does not define domain records or selection semantics. Use it rather than
|
|
1111
|
+
copying a Kit-specific two-column shell.
|
|
1112
|
+
|
|
1113
|
+
The shared runtime `PanelWorkspaceNavigation` accepts optional per-item
|
|
1114
|
+
`description`, `supporting`, and `statusLabel` display slots alongside the
|
|
1115
|
+
label/current row. These are supplied display text, not canonical fields or
|
|
1116
|
+
new DSL expressions. Omitted slots render no empty rows. The `meta` fallback
|
|
1117
|
+
remains supported. A marker requires both explicit `statusIndicator: true`
|
|
1118
|
+
and an existing `status`; a label-only item never gains an inferred status dot.
|
|
1119
|
+
Flat record navigation, question rounds, and future workspace consumers share
|
|
1120
|
+
the same base navigation typography, spacing and selected appearance. Bundle
|
|
1121
|
+
CSS is not required. Hierarchical trees retain their separate structure.
|
|
1122
|
+
Question progress excludes rejected items from answered/completion checks,
|
|
1123
|
+
while retaining all group records in the displayed total and preserving fixed
|
|
1124
|
+
question grouping, stable IDs, selection and canonical answers. The original
|
|
1125
|
+
Web App question panel used body round sections, not this sidebar; the shared
|
|
1126
|
+
sidebar is an enhanced structure using the original public navigation style,
|
|
1127
|
+
not a claim of one-to-one restoration of a nonexistent original sidebar.
|
|
1128
|
+
|
|
1129
|
+
`doc_lifecycle_studio` binds `objects`/`axes`/`actions` sections (validation
|
|
1130
|
+
fails loud when one is missing) and renders the fact table (actions × state
|
|
1131
|
+
axes, per-cell effects) plus process/derivation/ledger projections derived at
|
|
1132
|
+
render time; unavailable views render disabled with a reason, never hidden.
|
|
1133
|
+
`rowview_workbench` renders the residue envelope (below) and requires a
|
|
1134
|
+
`source` declaring the add section it owns — the details-envelope schema
|
|
1135
|
+
check and the renderer are both scoped to that section; a workbench without
|
|
1136
|
+
`source` is rejected at compile time.
|
|
1137
|
+
|
|
1138
|
+
In editable mode `bpmn_canvas` edits bidirectionally: each process record's
|
|
1139
|
+
`name` and `steps` array (step name, `kind` task/gateway/event, order, add,
|
|
1140
|
+
remove) round-trip through the panel Save like any field edit.
|
|
1141
|
+
|
|
1142
|
+
### `execution_log` — embedded Host logs (authored Panels)
|
|
1143
|
+
|
|
1144
|
+
`execution_log` embeds the shared rolling Host log in an authored layout. It is
|
|
1145
|
+
read-only runtime observation: it does not create executions, edit Design Files,
|
|
1146
|
+
or grant access to arbitrary transcripts. Discover it with
|
|
1147
|
+
`design_list_panel_components` before authoring. Generated Panels cannot add it.
|
|
1148
|
+
|
|
1149
|
+
```yaml
|
|
1150
|
+
ui:
|
|
1151
|
+
component: stack
|
|
1152
|
+
id: research-layout
|
|
1153
|
+
children:
|
|
1154
|
+
- component: execution_log
|
|
1155
|
+
id: producer-progress
|
|
1156
|
+
title: Execution progress
|
|
1157
|
+
log: {scope: producer, max_entries: 200}
|
|
1158
|
+
- component: execution_log
|
|
1159
|
+
id: selected-artifact-progress
|
|
1160
|
+
title: Artifact progress
|
|
1161
|
+
log:
|
|
1162
|
+
scope: artifact
|
|
1163
|
+
artifact_id_path: selected_artifact_id
|
|
1164
|
+
artifact_kind: research_direction
|
|
1165
|
+
artifact_file_path: selected_artifact_file
|
|
1166
|
+
max_entries: 200
|
|
1167
|
+
```
|
|
1168
|
+
|
|
1169
|
+
`scope: producer` resolves the current Bundle's root native Producer.
|
|
1170
|
+
`scope: artifact` requires exactly one `artifact_id` (literal) or
|
|
1171
|
+
`artifact_id_path` (safe dotted path in this Panel's canonical data). Optional
|
|
1172
|
+
`artifact_kind` and `artifact_file_path` disambiguate the Host's existing
|
|
1173
|
+
association; these are selectors, not authorization. Canonical paths are read
|
|
1174
|
+
only, and this component does not infer a selected record from a neighboring
|
|
1175
|
+
workspace. Do not persist a transient selection merely to connect logs.
|
|
1176
|
+
|
|
1177
|
+
Only observations belonging to the owning Bundle are eligible. Native run ids,
|
|
1178
|
+
invocation ids, transcript paths and credentials cannot be authored in `log`.
|
|
1179
|
+
The Host still verifies every read. Main-mode artifact logs require an explicit
|
|
1180
|
+
Host focus association; a main conversation must never substitute for an
|
|
1181
|
+
unavailable Producer or artifact log. Missing associations/read capability show
|
|
1182
|
+
an unavailable message. Support for exact artifact targets depends on the Host
|
|
1183
|
+
adapter; a rendered log alone does not prove a native execution succeeded.
|
|
1184
|
+
|
|
1185
|
+
`max_entries` is an integer from 1 to 1000 (default 200). The log follows new rows
|
|
1186
|
+
while the reader remains at the bottom, preserves manual scrolling, expands on
|
|
1187
|
+
active execution and folds when it finishes. A run/target change clears old rows
|
|
1188
|
+
and ignores late responses from the previous target. Temporary read failures
|
|
1189
|
+
retain the last readable rows and active logs retry through the shared polling
|
|
1190
|
+
scheduler. All these surfaces use the same `ExecutionRollingLog` client component.
|
|
1191
|
+
|
|
1192
|
+
### `tabs` — mounted views with stable identities
|
|
1193
|
+
|
|
1194
|
+
Use `tabs` to switch between declared child views, not to split canonical data
|
|
1195
|
+
into copies. Its inputs are `id`, optional `title` (the tablist accessible name),
|
|
1196
|
+
and `children`. Each child needs a non-empty `id`, unique among its siblings;
|
|
1197
|
+
its optional `title` is the tab label, falling back to its ID. IDs are data
|
|
1198
|
+
identities, not translated labels. Nested groups may reuse IDs because their
|
|
1199
|
+
DOM relationships are independently scoped. Empty children render no tabs.
|
|
1200
|
+
|
|
1201
|
+
Selection is local presentation state. The first child is initially active;
|
|
1202
|
+
changing labels or child order preserves selection by ID. Removing the active
|
|
1203
|
+
child selects the first remaining child; re-adding it does not steal selection.
|
|
1204
|
+
Inactive children stay mounted but are hidden, preserving their local drafts.
|
|
1205
|
+
Do not use this component when inactive content must be unloaded or its readers
|
|
1206
|
+
must stop: it does not promise lazy loading or cancellation. Hidden controls
|
|
1207
|
+
are not reachable through ordinary keyboard focus.
|
|
1208
|
+
|
|
1209
|
+
Click/focus selects a tab. ArrowLeft/ArrowRight wrap between tabs; Home/End
|
|
1210
|
+
select the first/last. The active tab is the one tablist entry in the Tab order;
|
|
1211
|
+
each panel is linked through reciprocal `aria-controls`/`aria-labelledby`.
|
|
1212
|
+
Tab selection emits no canonical edit. Child editors retain their existing
|
|
1213
|
+
schema, save and read-only authority; a hidden editor is not an authorization
|
|
1214
|
+
boundary. The host still owns atomic persistence and unsaved-change handling.
|
|
1215
|
+
|
|
1216
|
+
This non-Web equipment note example composes existing components only:
|
|
1217
|
+
|
|
1218
|
+
```yaml
|
|
1219
|
+
version: 1
|
|
1220
|
+
panel_kind: evidence_workbook
|
|
1221
|
+
sections:
|
|
1222
|
+
- {id: equipment, title: Equipment notes, add_mode: none}
|
|
1223
|
+
fields:
|
|
1224
|
+
- {key: title, label: Equipment, control: text, applies_to: [equipment]}
|
|
1225
|
+
- {key: note, label: Inspection note, control: textarea, applies_to: [equipment]}
|
|
1226
|
+
ui:
|
|
1227
|
+
component: tabs
|
|
1228
|
+
id: equipment-views
|
|
1229
|
+
title: Equipment views
|
|
1230
|
+
children:
|
|
1231
|
+
- {component: text_block, id: guidance, title: Guidance, text: Record observations without inventing inspection results.}
|
|
1232
|
+
- {component: record_form, id: notes, title: Notes, source: equipment}
|
|
1233
|
+
```
|
|
1234
|
+
|
|
1235
|
+
This notes-only example explicitly sets `add_mode: none`; adding or removing
|
|
1236
|
+
equipment records is not authorized by its editors. It expects a declared
|
|
1237
|
+
`equipment` map of records containing string `title` and
|
|
1238
|
+
`note` fields, e.g. `{equipment: {pump_a: {title: 'Synthetic pump', note: ''}}}`.
|
|
1239
|
+
It is a composition example, not a complete Kit or verified inspection fact.
|
|
1240
|
+
The executable example test validates the actual YAML, schema-bound generated
|
|
1241
|
+
adapter, retention and editor permissions; installed-host save/reopen remains
|
|
1242
|
+
a separate verification layer. For localization, put display strings in Bundle
|
|
1243
|
+
locale resources and replace titles/labels/text with `$t:` tokens; do not
|
|
1244
|
+
translate `equipment`, `pump_a`, child IDs or stored observations.
|
|
1245
|
+
|
|
1246
|
+
The trusted catalog registers `tabs` for the supported generated subset. A2UI
|
|
1247
|
+
conversion must still validate the complete child tree and edit bindings; tabs
|
|
1248
|
+
cannot authorize an unsupported child, action or wider write scope. Generated
|
|
1249
|
+
and retained DSL use the same renderer. Unknown components or incompatible
|
|
1250
|
+
retained definitions must fail explicitly, not silently drop a tab.
|
|
1251
|
+
|
|
1252
|
+
Styles use the dedicated `.dsh-component-tabs` namespace so public `renderNode`
|
|
1253
|
+
mounting does not collide with host navigation. Hosts must load shared Panel
|
|
1254
|
+
styles; the component does not inject CSS. Test keyboard/hidden behavior and
|
|
1255
|
+
narrow-container overflow in a real browser in addition to structural checks.
|
|
1256
|
+
|
|
1257
|
+
## Validation rules (fail loud)
|
|
1258
|
+
|
|
1259
|
+
`parsePanelManifest` / `validatePanelManifest` reject a manifest when:
|
|
1260
|
+
|
|
1261
|
+
- `version` is not `1`, or `panel_kind`/`control`/`component` is not in the
|
|
1262
|
+
closed sets;
|
|
1263
|
+
- `sections`/`fields` are not lists, a field lacks a string key, or field
|
|
1264
|
+
keys duplicate;
|
|
1265
|
+
- a `field.applies_to` references an undeclared section or is not a string
|
|
1266
|
+
list;
|
|
1267
|
+
- a `ui` node's `source`/`sources` references an undeclared section;
|
|
1268
|
+
- an `options[]` entry lacks string `value`/`label`, duplicates a value, or
|
|
1269
|
+
carries a malformed `when` (gate field must be declared and share an
|
|
1270
|
+
`applies_to` section; `in` must be a non-empty string list);
|
|
1271
|
+
- `options_from_section` references an undeclared section, or
|
|
1272
|
+
`options_from_panel` lacks a non-empty `panel_type`/`section_id`;
|
|
1273
|
+
- `visible_when` is malformed or its field is undeclared / shares no
|
|
1274
|
+
section with the gated field, or `in` is not a non-empty string list;
|
|
1275
|
+
- a `rows` field lacks `columns` or `columns` is not a list, duplicates a
|
|
1276
|
+
column key, uses a column control outside the closed set, declares a
|
|
1277
|
+
`ref` column without exactly one of `ref_sections`/`options_from_panel`,
|
|
1278
|
+
references an undeclared section in `ref_sections`, carries malformed
|
|
1279
|
+
column options (a column option `when` must reference a column of the
|
|
1280
|
+
same `rows` field), or sets a non-positive `max_rows`;
|
|
1281
|
+
- the YAML does not parse. The validator itself never throws on malformed
|
|
1282
|
+
shapes — every malformation surfaces as an error string.
|
|
1283
|
+
|
|
1284
|
+
The interpreter uses an exhaustive trusted renderer registry. Unknown components
|
|
1285
|
+
are rejected, not silently replaced by a labelled placeholder. This structural
|
|
1286
|
+
contract does not establish installed-host, artifact, save/reopen, language or
|
|
1287
|
+
browser fidelity; those require the corresponding runtime acceptance tests.
|
|
1288
|
+
|
|
1289
|
+
## Data binding model
|
|
1290
|
+
|
|
1291
|
+
The interpreter projects Design Files by logical section: its record map is
|
|
1292
|
+
read from `section.records_path ?? section.id`. With default paths, a component
|
|
1293
|
+
with `source: functions` renders `data.functions`, and field values read
|
|
1294
|
+
`record[field.key]`. A declared `fields_path` routes those fields into the
|
|
1295
|
+
record's nested object instead. Cross-panel references
|
|
1296
|
+
(`record_select` / `options_from_panel`) resolve against the owning skill's
|
|
1297
|
+
Design Files by stable record id — references are never copied.
|
|
1298
|
+
|
|
1299
|
+
## Residue envelope (rowview_workbench)
|
|
1300
|
+
|
|
1301
|
+
The panel working copy's top level may carry the frozen A11 envelope, recognized by shape
|
|
1302
|
+
only:
|
|
1303
|
+
|
|
1304
|
+
- `sync.refs[]` — read-only aggregation references
|
|
1305
|
+
(`{concern, record_ref, projection?}`). The renderer groups them by concern;
|
|
1306
|
+
a ref whose projection carries no title/summary/status degrades to a warning
|
|
1307
|
+
row showing the raw `record_ref` (never silently dropped).
|
|
1308
|
+
- `add` / `add_order` — the exclusive editable region: sections of evidence
|
|
1309
|
+
records (`{id, title, summary?, details}`); manifest fields declared for the
|
|
1310
|
+
section edit `record.details`; add/remove/update emit panel-level
|
|
1311
|
+
`{add, add_order}` updates through the host merge.
|
|
1312
|
+
- `module` / `residue_shape` — render-time metadata chips.
|
|
1313
|
+
|
|
1314
|
+
## Presentation contract
|
|
1315
|
+
|
|
1316
|
+
Dispatch between bespoke and declarative rendering is decided by the bundle's
|
|
1317
|
+
`skill.yaml`, never by the skill name:
|
|
1318
|
+
|
|
1319
|
+
```yaml
|
|
1320
|
+
presentation:
|
|
1321
|
+
mode: native
|
|
1322
|
+
renderer: io.deepseek.design.web-app.research/v1
|
|
1323
|
+
```
|
|
1324
|
+
|
|
1325
|
+
The client reads the metadata from the projected `skillManifest`; `native`
|
|
1326
|
+
resolves the matching compiled renderer from the lifecycle-owned client
|
|
1327
|
+
registry, while `declarative` renders through this DSL. An unavailable native
|
|
1328
|
+
renderer displays an explicit error and never falls back to the DSL, because
|
|
1329
|
+
the declarative editor may not preserve the provider contribution's state semantics.
|
|
1330
|
+
`none` creates no panel tab. A Bundle author may omit `presentation` from
|
|
1331
|
+
`skill.yaml`; the Kit loader normalizes that omission to `{ mode: none }`
|
|
1332
|
+
before publishing metadata. The client also treats an absent presentation as
|
|
1333
|
+
no panel. A present declaration with an unrecognized mode is invalid and must
|
|
1334
|
+
not silently select another rendering mode.
|
|
1335
|
+
|
|
1336
|
+
### Board user requests
|
|
1337
|
+
|
|
1338
|
+
Authored `record_board.board.request_create` declares `fields` (nonempty unique
|
|
1339
|
+
editable text/textarea/choice field keys in the board's source), `prompt`, and
|
|
1340
|
+
`submit_label` (localized display text). The Add action opens a local dialog and
|
|
1341
|
+
sends the user-confirmed values through the current host's existing message
|
|
1342
|
+
adapter. It never inserts a provisional canonical record. Required fields and
|
|
1343
|
+
choices are checked before sending; a rejected send retains the dialog and values.
|
|
1344
|
+
The action is unavailable in read-only mode or without a host message adapter.
|
|
1345
|
+
Generated panels do not receive this adapter. Boards without this declaration
|
|
1346
|
+
retain the existing declared direct-record creation behavior.
|
|
1347
|
+
|
|
1348
|
+
`navigation_map.nodes.caption_fields` optionally lists visible text, select or list fields from the node section for the native-style map card subtitle. Select values use declared labels; lists show their count and field label. This projection grants no edit authority. Artifact navigation retains the flat page list, preview toolbar, map cover and transient visual-geometry diagnostics; it does not substitute a generic record form for the live preview.
|
|
1349
|
+
|
|
1350
|
+
`board.detail_presentation: cover` promotes the selected record’s explicitly scoped `detail_sources` workspace into a full workspace cover. The board stays mounted to retain selection, scroll and local drafts; closing the cover restores it. The optional declaration changes presentation only: all child edits retain the same scoped merge and owning-record checks. Omitted/`inline` preserves ordinary card details.
|
|
1351
|
+
|
|
1352
|
+
### 可编辑数据表(Data Table)
|
|
1353
|
+
|
|
1354
|
+
`control: data_table` 用于字段由用户或 Agent 定义的样例数据。将它声明在记录字段中,
|
|
1355
|
+
通过现有 `record_inspector` / `record_form` 编辑;也可以在 `record_workspace` 中用
|
|
1356
|
+
`{component: data_table, source: datasets, table: {field: table}}` 呈现同一字段。
|
|
1357
|
+
组件从保存的数据读取列定义,不接受 `rows` 的静态 `columns`、选项或脚本。
|
|
1358
|
+
它属于预定义 DSL 目录,尚未纳入生成式 A2UI 白名单。
|
|
1359
|
+
|
|
1360
|
+
```yaml
|
|
1361
|
+
fields:
|
|
1362
|
+
- key: table
|
|
1363
|
+
label: 字段与样例数据
|
|
1364
|
+
control: data_table
|
|
1365
|
+
applies_to: [datasets]
|
|
1366
|
+
```
|
|
1367
|
+
|
|
1368
|
+
该字段对应 schema 中的闭合对象 `{columns, rows}`,两项均 required。
|
|
1369
|
+
`columns` 是对象数组,每列必需 `id: string`、`name: string`、
|
|
1370
|
+
`type: enum[text, number, boolean, date, select]`,并声明可选
|
|
1371
|
+
`role: enum[dimension, value, attribute]`、`unit: string`、`description: string`
|
|
1372
|
+
和 `options: array<string>`。列仅将 id/name/type 声明为必需。Bundle 可以声明自己的可选列元数据;编辑器原样保留,
|
|
1373
|
+
不推断业务引用。`rows` 是 `map<map<string>>`:稳定行 key → 稳定列 id → 值。
|
|
1374
|
+
列标题与排列不改变身份;删列同时删除该列单元格。
|
|
1375
|
+
|
|
1376
|
+
数据例:
|
|
1377
|
+
|
|
1378
|
+
```json
|
|
1379
|
+
{
|
|
1380
|
+
"columns": [
|
|
1381
|
+
{"id":"material","name":"物料","type":"text","role":"dimension"},
|
|
1382
|
+
{"id":"quantity","name":"用量","type":"number","role":"value","unit":"kg"}
|
|
1383
|
+
],
|
|
1384
|
+
"rows": {"sample_1":{"material":"钢材","quantity":"2.5"}}
|
|
1385
|
+
}
|
|
1386
|
+
```
|
|
1387
|
+
|
|
1388
|
+
单元格保留文本编码,由列类型解释并校验,禁止执行表达式。number 必须是有限数值文本,
|
|
1389
|
+
boolean 仅 `"true"` / `"false"`,date 使用有效 `YYYY-MM-DD`,select 使用非空且不重复的
|
|
1390
|
+
`options`。空字符串或省略的值表示未知,不能当零或 false;不存在的列、重复列 id、
|
|
1391
|
+
非法行 id 或多余表级字段均拒绝。列/行 id 使用英文字母开头的字母、数字、下划线或短横线,
|
|
1392
|
+
最多 64 字符并排除原型键。样例上限为 64 列、500 行,每格 10000 字符。
|
|
1393
|
+
|
|
1394
|
+
在现有 `validation.yaml` 中声明结构/类型约束,供 Agent 校验和 Panel 保存共用:
|
|
1395
|
+
|
|
1396
|
+
```yaml
|
|
1397
|
+
- id: typed_tables
|
|
1398
|
+
scope: [state, completion]
|
|
1399
|
+
code: input.invalid_table
|
|
1400
|
+
check:
|
|
1401
|
+
for_each_in_map: datasets
|
|
1402
|
+
data_table: table
|
|
1403
|
+
```
|
|
1404
|
+
|
|
1405
|
+
未开始的可选字段可省略;这条规则不增加完成度门槛。声明是否必需仍由 schema 与已有
|
|
1406
|
+
完成度规则负责。检查失败不自动转换或丢弃数据。输入错误可在草稿中显示,保存前须修正。
|
|
1407
|
+
|
|
1408
|
+
面板支持字段名称/类型/用途/单位/说明、单选项、列移位、列与行增删、Tab/Enter 导航和
|
|
1409
|
+
从现有单元格粘贴制表符分隔的数据。粘贴越界或类型错误整批拒绝,不截断;不会自动把
|
|
1410
|
+
表头当字段导入。两维加一个值列可切换矩阵,仍使用同一组行,重复坐标显示冲突而不聚合。
|
|
1411
|
+
组件没有上传入口;外部文件由宿主 Agent 接收,面板编辑其解析结果与样例。
|