@givolt/i3-composer-agent 2.2.2 → 2.3.0
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/.agents/plugins/marketplace.json +1 -1
- package/.claude/commands/i3-prototype.md +23 -0
- package/.claude/commands/i3-review.md +1 -1
- package/.claude/commands/i3-ship.md +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +2 -2
- package/.gemini/commands/i3-prototype.toml +23 -0
- package/.gemini/commands/i3-review.toml +1 -1
- package/.gemini/commands/i3-ship.toml +1 -1
- package/README.md +42 -25
- package/agents/code-reviewer.md +1 -1
- package/agents/test-engineer.md +1 -1
- package/bin/i3-composer-agent.cjs +5 -4
- package/bin/install.cjs +22 -10
- package/bin/native-command-validation.cjs +8 -13
- package/bin/native-layout.cjs +64 -28
- package/bin/native-migration.cjs +13 -7
- package/bin/native-runtime.cjs +10 -5
- package/commands/i3-prototype.toml +23 -0
- package/commands/i3-review.toml +1 -1
- package/commands/i3-ship.toml +1 -1
- package/docs/advanced-per-agent-configuration.md +78 -0
- package/docs/agents.md +2 -2
- package/docs/codebuddy-setup.md +5 -5
- package/docs/codex-setup.md +3 -3
- package/docs/copilot-setup.md +4 -0
- package/docs/cursor-setup.md +3 -0
- package/docs/other-hosts.md +44 -9
- package/docs/workbuddy-setup.md +9 -9
- package/evals/README.md +28 -16
- package/evals/cases/i3-documentation-and-adrs.json +18 -0
- package/evals/cases/i3-test-driven-development.json +8 -0
- package/evals/cases/i3-ui-prototype.json +49 -0
- package/evals/fixtures/i3-documentation-and-adrs/prose-review/README.md +19 -0
- package/evals/fixtures/i3-documentation-and-adrs/prose-review/queue.js +32 -0
- package/evals/fixtures/i3-ui-prototype/business-brief.md +7 -0
- package/evals/plugin/tdd-fires-on-pasted-bug/graders/failing-test-first.md +7 -0
- package/evals/plugin/tdd-fires-on-pasted-bug/graders/skill-fired.md +5 -0
- package/evals/plugin/tdd-fires-on-pasted-bug/prompt.md +15 -0
- package/evals/plugin/tdd-stays-quiet-on-debug/graders/not-fired.md +8 -0
- package/evals/plugin/tdd-stays-quiet-on-debug/prompt.md +25 -0
- package/evals/zh-CN/cases/i3-documentation-and-adrs.json +19 -0
- package/evals/zh-CN/cases/i3-test-driven-development.json +4 -0
- package/evals/zh-CN/cases/i3-ui-prototype.json +50 -0
- package/hooks/SIMPLIFY-IGNORE.md +3 -2
- package/hooks/simplify-ignore-test.sh +93 -1
- package/hooks/simplify-ignore.sh +94 -11
- package/package.json +63 -18
- package/plugin.json +1 -1
- package/references/performance-checklist.md +4 -2
- package/scripts/enterprise-template-test.js +139 -0
- package/scripts/floor-guard-reference-test.js +291 -0
- package/scripts/lib/skill-lint-test.js +762 -0
- package/scripts/lib/skill-lint.js +62 -8
- package/scripts/run-evals-test.js +830 -0
- package/scripts/run-evals.js +47 -9
- package/scripts/run-regressions.js +19 -0
- package/scripts/template-adapter-test.js +155 -0
- package/scripts/ui-prototype-test.js +114 -0
- package/scripts/validate-artifact-paths-test.js +179 -0
- package/scripts/validate-commands-test.js +246 -0
- package/scripts/validate-commands.js +6 -16
- package/scripts/validate-reference-links-test.js +513 -0
- package/scripts/validate-reference-links.js +4 -2
- package/scripts/validate-skills.js +26 -3
- package/scripts/validate-versions-test.js +32 -0
- package/skills/i3-documentation-and-adrs/SKILL.md +9 -0
- package/skills/i3-frontend-ui-engineering/SKILL.md +5 -1
- package/skills/i3-idea-refine/SKILL.md +20 -5
- package/skills/i3-incremental-implementation/SKILL.md +4 -0
- package/skills/i3-performance-optimization/SKILL.md +10 -10
- package/skills/i3-security-and-hardening/references/hardening-patterns.md +1 -1
- package/skills/i3-shipping-and-launch/SKILL.md +6 -0
- package/skills/i3-test-driven-development/SKILL.md +3 -3
- package/skills/i3-ui-prototype/SKILL.md +119 -0
- package/skills/i3-ui-prototype/assets/templates/catalog.json +147 -0
- package/skills/i3-ui-prototype/assets/templates/classic-admin/manifest.json +9 -0
- package/skills/i3-ui-prototype/assets/templates/classic-admin/preset.json +6 -0
- package/skills/i3-ui-prototype/assets/templates/common/app/app.mjs +89 -0
- package/skills/i3-ui-prototype/assets/templates/common/app/config.json +1 -0
- package/skills/i3-ui-prototype/assets/templates/common/app/domain.mjs +20 -0
- package/skills/i3-ui-prototype/assets/templates/common/app/index.html +17 -0
- package/skills/i3-ui-prototype/assets/templates/common/app/serve.cjs +16 -0
- package/skills/i3-ui-prototype/assets/templates/common/app/styles.css +670 -0
- package/skills/i3-ui-prototype/assets/templates/common/app/tokens.css +19 -0
- package/skills/i3-ui-prototype/assets/templates/common/design-system/master.md +20 -0
- package/skills/i3-ui-prototype/assets/templates/common/gallery.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/common/mocks/applications.json +5 -0
- package/skills/i3-ui-prototype/assets/templates/common/requirements-map.json +8 -0
- package/skills/i3-ui-prototype/assets/templates/common/serve-gallery.cjs +16 -0
- package/skills/i3-ui-prototype/assets/templates/credits.md +17 -0
- package/skills/i3-ui-prototype/assets/templates/data-operations/manifest.json +9 -0
- package/skills/i3-ui-prototype/assets/templates/data-operations/preset.json +6 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/design-system.md +32 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/index.html +29 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/manifest.json +9 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/origin.json +344 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/preset.json +928 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/app.js +22 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/empty.svg +1 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/reference-styles.json +1 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-403.svg +1 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-404.svg +1 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets-manifest.json +334 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/baseline.json +173 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/conversion.md +30 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/credits.md +17 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/design-tokens.json +881 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/index.html +28 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/@qin-ui-antdv-next-pro.txt +9 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/ant-design-icons.txt +22 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/antdv-next.txt +21 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/package.json +12 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/browser-routes.json +298 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/coverage.json +180 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/integrity.json +13 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/keyboard.json +11 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/responsive.json +125 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/review.md +51 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/rules.log +150 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-html.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-original.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-html.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-original.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-html.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-original.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-html.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-original.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/selection.json +9 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/visual-comparison.json +342 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/readme.md +73 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/reference.md +59 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/routes.json +178 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/controls.js +99 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dialogs.js +54 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dom.js +264 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/forms.js +47 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/icons.js +41 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/layout.js +47 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/router.js +63 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/state.js +90 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/table.js +41 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/widgets.js +8 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.js +36 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.js +51 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.js +48 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.js +6 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.js +13 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/data.js +24 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/domain.js +32 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/registry.js +25 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/store.js +85 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.js +17 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.js +66 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.js +38 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.js +66 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.js +5 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.js +12 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.js +11 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.js +116 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.js +32 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.js +49 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.js +10 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.js +77 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/data.js +60 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/domain.js +105 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/store.js +212 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.js +18 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.js +23 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.js +78 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.js +55 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.js +26 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.js +38 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.js +7 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.js +72 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.js +46 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.js +52 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.js +19 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.js +30 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/data.js +48 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/domain.js +39 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/store.js +129 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.html +4 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.js +21 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.js +8 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.js +37 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.js +10 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.js +37 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.js +49 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.html +4 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.js +22 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.js +9 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/commands.js +82 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/examples.js +47 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/model.js +61 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/repair.js +68 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/store.js +55 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/types.js +1 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/workbench.js +18 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.js +28 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.js +18 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.js +31 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.js +27 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.js +16 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.js +43 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.html +4 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.js +34 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.js +30 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.js +67 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.js +41 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.js +31 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.js +26 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.js +70 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/data.js +8 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/domain.js +62 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/management.js +36 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/managementStore.js +49 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/store.js +132 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.js +38 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.js +11 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.js +45 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.js +54 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.js +27 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.js +12 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.js +45 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.js +38 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/domain.js +61 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/state.js +51 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/store.js +116 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.js +45 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.html +4 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.js +30 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.js +67 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.js +5 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.html +4 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.js +60 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/commands.js +157 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/model.js +136 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/store.js +76 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.js +26 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.js +14 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.js +113 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.js +62 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/commands.js +97 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/model.js +147 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/store.js +13 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.js +9 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.js +8 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.js +37 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.js +8 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.js +17 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/columns.js +32 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryGuide.js +49 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryView.js +12 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listBatch.js +15 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listSelection.js +37 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/policy.js +68 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/session.js +44 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.js +25 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.js +53 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.html +10 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.js +30 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.js +10 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.js +9 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/confirmation.js +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/navigation.js +19 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.js +8 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.js +32 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.js +15 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.js +11 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.js +57 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.js +37 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/data.js +20 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/domain.js +55 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/store.js +151 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.js +18 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.js +40 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.js +51 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.js +9 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.html +5 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.js +48 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/domain.js +204 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/exampleSource.js +22 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/registry.js +135 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/store.js +137 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.html +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.js +36 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/model.js +56 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/store.js +15 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.js +27 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.html +4 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.js +31 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.html +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.js +68 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.html +5 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.js +55 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/data.js +16 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/domain.js +83 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/registry.js +18 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/store.js +61 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/admin.css +60 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/agents.css +46 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/antdv.css +295 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/app.css +102 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/delivery.css +4 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/intents.css +37 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/native.css +22 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/operations.css +2 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pbc.css +3 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/permissions.css +22 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pro.css +1 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/releases.css +4 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reset.css +246 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reviews.css +8 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tasks.css +6 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tokens.css +15 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workbench.css +61 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workflows.css +1 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/admin-rules.test.js +96 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/agents.test.js +14 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/intent-state.test.js +37 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/list-batch.test.js +44 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-fixtures.js +19 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-repair.test.js +14 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operations.test.js +25 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-management.test.js +17 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-state.test.js +24 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permission-config.test.js +23 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permissions.test.js +24 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/releases.test.js +50 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/reviews.test.js +36 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-forms-router.test.js +28 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-state.test.js +42 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-stores.test.js +16 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/spec-state.test.js +11 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/tasks.test.js +27 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workbench.test.js +34 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workflows.test.js +16 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/convert.mjs +168 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/serve.mjs +7 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/styles.mjs +11 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/verify.mjs +24 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/serve.cjs +16 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/usability.css +44 -0
- package/skills/i3-ui-prototype/assets/templates/gallery/index.html +40 -0
- package/skills/i3-ui-prototype/assets/templates/modern-workspace/manifest.json +9 -0
- package/skills/i3-ui-prototype/assets/templates/modern-workspace/preset.json +6 -0
- package/skills/i3-ui-prototype/assets/templates/serve-gallery.cjs +16 -0
- package/skills/i3-ui-prototype/references/artifact-contract.md +41 -0
- package/skills/i3-ui-prototype/references/enterprise-admin.md +38 -0
- package/skills/i3-ui-prototype/references/expert-adapter.md +42 -0
- package/skills/i3-ui-prototype/references/template-adapters.md +57 -0
- package/skills/i3-ui-prototype/references/workflow-contract.md +19 -0
- package/skills/i3-ui-prototype/scripts/adapters/easel-html.cjs +30 -0
- package/skills/i3-ui-prototype/scripts/adapters/legacy-html.cjs +28 -0
- package/skills/i3-ui-prototype/scripts/check-design-provider.cjs +9 -0
- package/skills/i3-ui-prototype/scripts/check-prototype.cjs +14 -0
- package/skills/i3-ui-prototype/scripts/enterprise-template.cjs +88 -0
- package/skills/i3-ui-prototype/scripts/init-prototype.cjs +8 -0
- package/skills/i3-ui-prototype/scripts/manage-baseline.cjs +11 -0
- package/skills/i3-ui-prototype/scripts/prototype-lib.cjs +255 -0
- package/skills/i3-ui-prototype/scripts/template-adapters.cjs +89 -0
- package/skills/i3-using-agent-skills/SKILL.md +5 -0
- package/bin/native-version-validation.cjs +0 -8
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "选择模板并生成、评审和迭代交互原型,维护已确认的 UI 基线。"
|
|
3
|
+
# i3-description-source: "description: Create, review and iterate interactive UI prototypes with template selection and approved baselines"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- i3:zh-CN:start -->
|
|
7
|
+
## 中文交互与输出
|
|
8
|
+
|
|
9
|
+
默认使用简体中文回复,包括追问、选项说明、阶段进度、分析、规格、计划、验收、代码审查与发布报告。只有用户明确要求其他语言时才切换;输入中出现英文术语、代码或引用不构成切换语言的要求。
|
|
10
|
+
下文的工程步骤、审批要求、退出条件和工具约束完整有效。英文示例中的人类可读标题、说明和占位内容在实际输出时应译为中文;保留原有信息与验证标准,不删减方法。
|
|
11
|
+
Skill/Command/Agent 标识、文件路径、命令参数、代码/API 名称、工具调用参数、JSON 键/类型/枚举、机器状态、测试期望字面量及引用原文保持原样。生成文档正文用中文,SPEC.md、tasks/plan.md、tasks/todo.md、CONSTRAINTS.md 等约定路径不改名。
|
|
12
|
+
严重程度按原规则判断,面向用户可写“严重(Critical)”“必须修复(Required)”“小问题(Nit)”“可选(Optional)”“建议考虑(Consider)”“仅供参考(FYI)”;High/Medium/Low、APPROVE/REQUEST CHANGES 和 GO/NO-GO 保留其原始语义与机器值。不得因翻译降低门槛,角色不能互相委派。
|
|
13
|
+
|
|
14
|
+
适用说明:选择模板并生成、评审和迭代交互原型,维护已确认的 UI 基线。
|
|
15
|
+
<!-- i3:zh-CN:end -->
|
|
16
|
+
|
|
17
|
+
Invoke the i3-ui-prototype skill.
|
|
18
|
+
|
|
19
|
+
$ARGUMENTS
|
|
20
|
+
|
|
21
|
+
With no arguments, use create. Supported operations: create, revise, inspect, confirm-baseline.
|
|
22
|
+
Default to professional enhancement mode. Detect UI/UX Pro Max in the current host; if unavailable, offer installation or explicit template mode. Never silently downgrade.
|
|
23
|
+
Use the skill workflow for template selection, business mapping, professional advice, real browser verification and version-specific human confirmation. Preserve approved snapshots during iteration.
|
|
@@ -24,5 +24,5 @@ Review the current changes (staged or recent commits) across all five axes:
|
|
|
24
24
|
4. **Security** — Input validated? Secrets safe? Auth checked? (Use i3-security-and-hardening skill)
|
|
25
25
|
5. **Performance** — No N+1 queries? No unbounded ops? (Use i3-performance-optimization skill)
|
|
26
26
|
|
|
27
|
-
Categorize findings as Critical,
|
|
27
|
+
Categorize findings as Critical, Required, Optional, or Nit.
|
|
28
28
|
Output a structured review with specific file:line references and fix recommendations.
|
|
@@ -43,7 +43,7 @@ Constraints (from Claude Code's subagent model):
|
|
|
43
43
|
|
|
44
44
|
Once all three reports are back, the main agent (not a sub-persona) synthesizes them:
|
|
45
45
|
|
|
46
|
-
1. **Code Quality** — Aggregate Critical/
|
|
46
|
+
1. **Code Quality** — Aggregate Critical/Required findings from `code-reviewer` and any failing tests, lint, or build output. Resolve duplicates between reviewers.
|
|
47
47
|
2. **Security** — Promote any Critical/High `security-auditor` findings to launch blockers. Cross-reference with `code-reviewer`'s security axis.
|
|
48
48
|
3. **Performance** — Pull from `code-reviewer`'s performance axis; cross-check Core Web Vitals if applicable.
|
|
49
49
|
4. **Accessibility** — Verify keyboard nav, screen reader support, contrast (not covered by the three personas — handle directly here, or invoke the accessibility checklist).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "i3-composer-agent",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "覆盖需求、计划、开发、测试、审查与发布的软件工程技能,默认使用简体中文。",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Givolt"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"interface": {
|
|
13
13
|
"displayName": "i3 Composer Agent",
|
|
14
14
|
"shortDescription": "中文软件工程全流程技能",
|
|
15
|
-
"longDescription": "i3 Composer Agent 提供
|
|
15
|
+
"longDescription": "i3 Composer Agent 提供 26 项工程技能,覆盖需求、计划、实现、测试、审查与发布,默认使用简体中文。",
|
|
16
16
|
"developerName": "Givolt",
|
|
17
17
|
"category": "Productivity",
|
|
18
18
|
"capabilities": [
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
description = "选择模板并生成、评审和迭代交互原型,维护已确认的 UI 基线。"
|
|
2
|
+
# i3-description-source: "description = \"Create, review and iterate interactive UI prototypes with template selection and approved baselines\""
|
|
3
|
+
|
|
4
|
+
prompt = """
|
|
5
|
+
<!-- i3:zh-CN:start -->
|
|
6
|
+
## 中文交互与输出
|
|
7
|
+
|
|
8
|
+
默认使用简体中文回复,包括追问、选项说明、阶段进度、分析、规格、计划、验收、代码审查与发布报告。只有用户明确要求其他语言时才切换;输入中出现英文术语、代码或引用不构成切换语言的要求。
|
|
9
|
+
下文的工程步骤、审批要求、退出条件和工具约束完整有效。英文示例中的人类可读标题、说明和占位内容在实际输出时应译为中文;保留原有信息与验证标准,不删减方法。
|
|
10
|
+
Skill/Command/Agent 标识、文件路径、命令参数、代码/API 名称、工具调用参数、JSON 键/类型/枚举、机器状态、测试期望字面量及引用原文保持原样。生成文档正文用中文,SPEC.md、tasks/plan.md、tasks/todo.md、CONSTRAINTS.md 等约定路径不改名。
|
|
11
|
+
严重程度按原规则判断,面向用户可写“严重(Critical)”“必须修复(Required)”“小问题(Nit)”“可选(Optional)”“建议考虑(Consider)”“仅供参考(FYI)”;High/Medium/Low、APPROVE/REQUEST CHANGES 和 GO/NO-GO 保留其原始语义与机器值。不得因翻译降低门槛,角色不能互相委派。
|
|
12
|
+
|
|
13
|
+
适用说明:选择模板并生成、评审和迭代交互原型,维护已确认的 UI 基线。
|
|
14
|
+
<!-- i3:zh-CN:end -->
|
|
15
|
+
|
|
16
|
+
Invoke the i3-ui-prototype skill.
|
|
17
|
+
|
|
18
|
+
$ARGUMENTS
|
|
19
|
+
|
|
20
|
+
With no arguments, use create. Supported operations: create, revise, inspect, confirm-baseline.
|
|
21
|
+
Default to professional enhancement mode. Detect UI/UX Pro Max in the current host; if unavailable, offer installation or explicit template mode. Never silently downgrade.
|
|
22
|
+
Use the skill workflow for template selection, business mapping, professional advice, real browser verification and version-specific human confirmation. Preserve approved snapshots during iteration.
|
|
23
|
+
"""
|
|
@@ -23,6 +23,6 @@ Review the current changes (staged or recent commits) across all five axes:
|
|
|
23
23
|
4. **Security** — Input validated? Secrets safe? Auth checked? (Use i3-security-and-hardening skill)
|
|
24
24
|
5. **Performance** — No N+1 queries? No unbounded ops? (Use i3-performance-optimization skill)
|
|
25
25
|
|
|
26
|
-
Categorize findings as Critical,
|
|
26
|
+
Categorize findings as Critical, Required, Optional, or Nit.
|
|
27
27
|
Output a structured review with specific file:line references and fix recommendations.
|
|
28
28
|
"""
|
|
@@ -40,7 +40,7 @@ Constraints (from Gemini CLI's subagent model):
|
|
|
40
40
|
|
|
41
41
|
Once all three reports are back, the main agent (not a sub-persona) synthesizes them:
|
|
42
42
|
|
|
43
|
-
1. **Code Quality** — Aggregate Critical/
|
|
43
|
+
1. **Code Quality** — Aggregate Critical/Required findings from `code-reviewer` and any failing tests, lint, or build output. Resolve duplicates between reviewers.
|
|
44
44
|
2. **Security** — Promote any Critical/High `security-auditor` findings to launch blockers. Cross-reference with `code-reviewer`'s security axis.
|
|
45
45
|
3. **Performance** — Pull from `code-reviewer`'s performance axis; cross-check Core Web Vitals if applicable.
|
|
46
46
|
4. **Accessibility** — Verify keyboard nav, screen reader support, contrast (not covered by the three personas — handle directly here, or invoke the accessibility checklist).
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# i3 Composer Agent v2.
|
|
1
|
+
# i3 Composer Agent v2.3.0
|
|
2
2
|
|
|
3
3
|
**Intelligence. Integration. Innovation.**
|
|
4
4
|
|
|
@@ -25,8 +25,8 @@ WorkBuddy 在第 2 项。上下键移动,空格勾选/取消,回车确认;
|
|
|
25
25
|
搜索、翻页和命令参数预选均保留选择。搜索外 `q`、Esc 或 Ctrl-C 取消。
|
|
26
26
|
确认工具后选择项目/全局范围并确认安装。
|
|
27
27
|
|
|
28
|
-
全部目标均安装
|
|
29
|
-
全部目标同时提供
|
|
28
|
+
全部目标均安装 26 个技能、共享参考资料,以及完整评测/Hook/脚本配套。
|
|
29
|
+
全部目标同时提供 10 个命令和 4 个 Agent 角色提示。
|
|
30
30
|
CodeBuddy、WorkBuddy、Claude Code 使用原生命令入口;其他工具通过 Skills 机制使用,
|
|
31
31
|
命令和角色文件可作为资料读取,是否自动发现取决于宿主。
|
|
32
32
|
目录预设来自固定的 [Skills CLI 工具登记](https://github.com/vercel-labs/skills/blob/48dc9e8eb8aa19040e91cb90ba0b642c9cbad57e/src/agents.ts)
|
|
@@ -54,7 +54,7 @@ CodeBuddy 和 WorkBuddy 的项目安装共用 `.codebuddy/`,相同目标只安
|
|
|
54
54
|
同版本、同范围的清单所属未修改内容会复用,新增客户端合并到清单。
|
|
55
55
|
升级、修改过的内容及未登记同名冲突需确认替换;非交互使用 `--force` 前可先看 dry-run。
|
|
56
56
|
安装成功后清理替换掉的旧内容及本安装器所属历史备份,失败则恢复原文件。
|
|
57
|
-
|
|
57
|
+
升级按文件归属清理旧副本,保留用户新增文件;2.2.2 的分散配套资料迁入工具根;2.2.1 的评测结果保留原位。
|
|
58
58
|
同名结果内容不同时会在写入前停止;未归属本包的资料冲突也需先处理,`--force` 不会接管。
|
|
59
59
|
成功后不保留临时备份。`npx -y` 确认 npm 下载;包的 `--yes` 确认安装计划。
|
|
60
60
|
|
|
@@ -63,11 +63,11 @@ CodeBuddy 和 WorkBuddy 的项目安装共用 `.codebuddy/`,相同目标只安
|
|
|
63
63
|
| 内容 | 默认安装 | 用途 |
|
|
64
64
|
| --- | --- | --- |
|
|
65
65
|
| `skills/`(含技能内部的 `scripts/` 等资源) | 是 | 工程工作流及运行辅助文件 |
|
|
66
|
-
| `
|
|
66
|
+
| `i3-composer-agent/references/` | 是 | 技能引用的检查清单与参考资料 |
|
|
67
67
|
| `commands/`、`agents/` | 是;发现与调用依宿主支持 | 短命令与专业角色提示 |
|
|
68
|
-
| `hooks/` | 是,文件安装后按宿主方式启用 | 会话注入、文档缓存和代码块保护 |
|
|
69
|
-
| `scripts/` | 是 |
|
|
70
|
-
| `evals/` | 是 | 中英文触发/行为用例、测试项目样例及插件评分规则 |
|
|
68
|
+
| `i3-composer-agent/hooks/` | 是,文件安装后按宿主方式启用 | 会话注入、文档缓存和代码块保护 |
|
|
69
|
+
| `i3-composer-agent/scripts/` | 是 | 评测运行器、五项校验、全部原版脚本回归测试及共享库 |
|
|
70
|
+
| `i3-composer-agent/evals/` | 是 | 中英文触发/行为用例、测试项目样例及插件评分规则 |
|
|
71
71
|
|
|
72
72
|
以项目安装的 `.codebuddy/` 为例,默认目录为:
|
|
73
73
|
|
|
@@ -76,42 +76,49 @@ CodeBuddy 和 WorkBuddy 的项目安装共用 `.codebuddy/`,相同目标只安
|
|
|
76
76
|
├─ skills/ # 宿主和评测共用的实际技能
|
|
77
77
|
├─ commands/ # 一份命令
|
|
78
78
|
├─ agents/ # 一份角色提示
|
|
79
|
-
├─
|
|
80
|
-
├─
|
|
81
|
-
├─
|
|
82
|
-
├─ scripts/
|
|
83
|
-
├─
|
|
79
|
+
├─ i3-composer-agent/ # 配套工具根,不是第二份插件
|
|
80
|
+
│ ├─ package.json # 独立 CommonJS 配置,提供 npm test
|
|
81
|
+
│ ├─ README.md
|
|
82
|
+
│ ├─ scripts/ # 全部脚本、原有回归测试及 lib/
|
|
83
|
+
│ ├─ evals/ # 中英文用例、样例、插件评测及结果
|
|
84
|
+
│ ├─ hooks/
|
|
85
|
+
│ ├─ references/
|
|
86
|
+
│ ├─ docs/
|
|
87
|
+
│ └─ adapters/ # 其他命令格式和插件清单的校验输入
|
|
84
88
|
└─ .i3-composer-agent.json # 版本、布局、能力与文件归属清单
|
|
85
89
|
```
|
|
86
90
|
|
|
87
|
-
|
|
91
|
+
每个宿主基址只有一份技能;公共资料集中在配套工具根目录。技能内部的 scripts/references 保留。
|
|
88
92
|
WorkBuddy 全局安装将基址换为 `~/.workbuddy/`,Codex 项目安装为 `.agents/`。
|
|
89
93
|
评测、校验和适用的 Hook 读取宿主使用的实际内容,不生成第二份完整插件。
|
|
90
94
|
|
|
91
|
-
|
|
95
|
+
进入配套目录后运行以下命令,不调用模型:
|
|
92
96
|
|
|
93
97
|
```bash
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
node
|
|
97
|
-
node .codebuddy/scripts/i3-composer-agent/validate-reference-links.cjs
|
|
98
|
-
node .codebuddy/scripts/i3-composer-agent/validate-artifact-paths.cjs
|
|
99
|
-
node .codebuddy/scripts/i3-composer-agent/run-evals.cjs --locale zh-CN --min-rank1 95
|
|
98
|
+
cd .codebuddy/i3-composer-agent
|
|
99
|
+
npm test
|
|
100
|
+
node scripts/run-evals.js --locale zh-CN --min-rank1 95
|
|
100
101
|
```
|
|
101
102
|
|
|
103
|
+
`npm test` 执行五项校验、中英文确定性评测和全部原版脚本回归测试。
|
|
104
|
+
原版英文案例完整保留,中文案例作为增量,两种语言分别通过门槛。
|
|
105
|
+
脚本也可使用绝对路径从任意目录运行;无需 `npm install`。
|
|
106
|
+
|
|
102
107
|
模型行为评测需要主动运行并消耗模型额度,详见 [评测说明](evals/README.md)。
|
|
103
108
|
原生脚本按安装清单检查本包内容,支持业务项目的 ESM/CommonJS 设置。
|
|
104
|
-
|
|
109
|
+
配套根与独立插件导出目录均可执行 `npm test`;这些检查均不能代替业务项目测试或宿主执行验收。
|
|
105
110
|
评测结果不进入安装替换清单。安装过程不执行评测,也不自动启用 Hook。
|
|
106
111
|
|
|
107
112
|
可选 Hook 不影响普通技能和命令的使用,默认中文交互也不依赖 Hook。
|
|
108
113
|
未配置 Hook 时,自动注入、缓存和代码块保护这些增强功能不会运行。
|
|
109
114
|
会话注入仅适合缺少原生技能路由的宿主;已有原生路由时不应重复注入元技能。
|
|
110
|
-
缓存与代码块保护的配置说明位于 `
|
|
115
|
+
缓存与代码块保护的配置说明位于 `i3-composer-agent/hooks/` 下的 `SDD-CACHE.md`、
|
|
111
116
|
`SIMPLIFY-IGNORE.md`,当前示例针对 Claude Code,其他宿主需适配自己的事件协议。
|
|
112
117
|
脚本依赖 Bash、jq;缓存还需 curl 和哈希工具,代码块保护还需其文档列出的工具。
|
|
113
118
|
Windows PowerShell 本身不会自动提供这些脚本依赖。
|
|
114
119
|
|
|
120
|
+
`i3-composer-agent/adapters/` 中的其他命令格式与插件清单用于完整回归校验,不自动注册插件。
|
|
121
|
+
|
|
115
122
|
## 通过宿主插件管理器安装
|
|
116
123
|
|
|
117
124
|
默认配套已包含 Skills、Commands、Agents、references、evals、hooks 和 scripts。
|
|
@@ -154,6 +161,7 @@ CodeBuddy、WorkBuddy、Claude Code 原生安装使用 `/i3-spec`、`/i3-plan`
|
|
|
154
161
|
| /i3-composer-agent:i3-code-simplify | 简化代码,降低复杂度,提高可读性与维护性,并保持既有行为不变。 |
|
|
155
162
|
| /i3-composer-agent:i3-constraints | 访谈并定义项目质量门槛,提供合理默认值,写入 CONSTRAINTS.md 并落实约束。 |
|
|
156
163
|
| /i3-composer-agent:i3-plan | 把工作拆成带验收标准、验证步骤和依赖顺序的小任务。 |
|
|
164
|
+
| /i3-composer-agent:i3-prototype | 选择模板并生成、评审和迭代交互原型,维护已确认的 UI 基线。 |
|
|
157
165
|
| /i3-composer-agent:i3-review | 从正确性、可读性、架构、安全和性能五个维度审查代码。 |
|
|
158
166
|
| /i3-composer-agent:i3-ship | 并行调用三个专业角色执行发布前检查,主会话汇总 GO/NO-GO 决策与回滚计划。 |
|
|
159
167
|
| /i3-composer-agent:i3-spec | 先编写结构化规格、目标、范围与验收标准,再进入实现。 |
|
|
@@ -162,8 +170,16 @@ CodeBuddy、WorkBuddy、Claude Code 原生安装使用 `/i3-spec`、`/i3-plan`
|
|
|
162
170
|
|
|
163
171
|
`/i3-build auto` 按已获批准的任务计划执行完整流程。
|
|
164
172
|
插件调用为 `/i3-composer-agent:i3-build auto`,原审批边界和验证条件仍有效。
|
|
173
|
+
`/i3-review` 在主会话中使用代码审查技能;`/i3-test` 在主会话中使用测试驱动开发技能,
|
|
174
|
+
这两个命令不会自动启动同名专业角色。测试规范的编写与 TDD 执行应按各自任务处理。
|
|
165
175
|
`/i3-ship` 在宿主支持时并行运行三个专业角色;不可用时读取角色提示依次审查,
|
|
166
|
-
由主会话汇总 GO/NO-GO
|
|
176
|
+
由主会话汇总 GO/NO-GO 决策,回滚计划必需。代码审查使用 Critical、Required、Optional、Nit
|
|
177
|
+
四级;Critical 和 Required 问题默认阻止发布,各专业角色仍保留自己的报告字段和判断规则。
|
|
178
|
+
|
|
179
|
+
`/i3-prototype` 调用 `i3-ui-prototype` 技能,支持先选模板,再按业务需求生成原型。默认采用专业增强模式,
|
|
180
|
+
UI/UX Pro Max 是需要单独安装的外部设计能力,不计入本包的技能数量;未安装时提示安装,
|
|
181
|
+
用户也可明确选择模板模式继续。企业后台模板可用于人工测试,AI 工作台、数字孪生大屏和
|
|
182
|
+
移动端模板仍在规划中。原型验收、后续迭代约束与项目需求需要单独确认;本包尚未实现企业 SOP 自动编排。
|
|
167
183
|
|
|
168
184
|
## Skills
|
|
169
185
|
|
|
@@ -192,7 +208,8 @@ CodeBuddy、WorkBuddy、Claude Code 原生安装使用 `/i3-spec`、`/i3-plan`
|
|
|
192
208
|
| [i3-shipping-and-launch](skills/i3-shipping-and-launch/SKILL.md) | 检查生产发布条件与回滚策略。适用于上线准备、发布清单、监控、分阶段部署和回滚方案,确保风险有依据且可恢复。 |
|
|
193
209
|
| [i3-source-driven-development](skills/i3-source-driven-development/SKILL.md) | 以官方文档和权威来源支撑实现决策。适用于核对框架/库用法、验证方案、查证 API 和避免过时实现,并保留来源证据。 |
|
|
194
210
|
| [i3-spec-driven-development](skills/i3-spec-driven-development/SKILL.md) | 在实现前形成结构化规格。适用于新项目、功能或重大改动、PRD、需求澄清、目标与范围、场景和验收标准,以及将需求拆为独立可测试能力。 |
|
|
195
|
-
| [i3-test-driven-development](skills/i3-test-driven-development/SKILL.md) |
|
|
211
|
+
| [i3-test-driven-development](skills/i3-test-driven-development/SKILL.md) | 执行测试先行的红绿重构循环。适用于实现逻辑、修复缺陷、修改行为、复现报错及证明改动有效;也用于为函数补测试、修复或修改直接粘贴的代码,即使请求未提到测试;缺陷修复使用先证明失败的 Prove-It 模式。 |
|
|
212
|
+
| [i3-ui-prototype](skills/i3-ui-prototype/SKILL.md) | 根据业务需求选择 UI 模板,生成、评审并迭代交互原型。适用于选择原型模板、制作可操作审查原型、检查原型一致性及维护已确认的原型基线。 |
|
|
196
213
|
| [i3-using-agent-skills](skills/i3-using-agent-skills/SKILL.md) | 发现并调用合适的工程技能。适用于开始会话、判断任务意图、选择技能或工作流;作为元技能协调其他技能的发现和调用。 |
|
|
197
214
|
|
|
198
215
|
## Agent 角色
|
package/agents/code-reviewer.md
CHANGED
|
@@ -110,5 +110,5 @@ Categorize every finding, using the same severity labels as the `i3-code-review-
|
|
|
110
110
|
## Composition
|
|
111
111
|
|
|
112
112
|
- **Invoke directly when:** the user asks for a review of a specific change, file, or PR.
|
|
113
|
-
- **Invoke via:** `/i3-
|
|
113
|
+
- **Invoke via:** `/i3-ship` (parallel fan-out alongside `security-auditor` and `test-engineer`). `/i3-review` runs the `i3-code-review-and-quality` skill in the main session and does not spawn this persona.
|
|
114
114
|
- **Do not invoke from another persona.** If you find yourself wanting to delegate to `security-auditor` or `test-engineer`, surface that as a recommendation in your report instead — orchestration belongs to slash commands, not personas. See [docs/agents.md](../docs/agents.md).
|
package/agents/test-engineer.md
CHANGED
|
@@ -103,5 +103,5 @@ When analyzing test coverage:
|
|
|
103
103
|
## Composition
|
|
104
104
|
|
|
105
105
|
- **Invoke directly when:** the user asks for test design, coverage analysis, or a Prove-It test for a specific bug.
|
|
106
|
-
- **Invoke via:** `/i3-
|
|
106
|
+
- **Invoke via:** `/i3-ship` (parallel fan-out for coverage gap analysis alongside `code-reviewer` and `security-auditor`). `/i3-test` runs the `i3-test-driven-development` skill in the main session and does not spawn this persona.
|
|
107
107
|
- **Do not invoke from another persona.** Recommendations to add tests belong in your report; the user or a slash command decides when to act on them. See [docs/agents.md](../docs/agents.md).
|
|
@@ -46,7 +46,7 @@ ${pkg.name}
|
|
|
46
46
|
上下键移动/跨页,空格勾选/取消,回车确认;列表下实时显示已选,q/Esc 退出。
|
|
47
47
|
CodeBuddy、WorkBuddy、Claude Code 同时安装短命令和 Agent 角色。
|
|
48
48
|
其他工具通过 Skills 调用,短命令支持取决于宿主。
|
|
49
|
-
所有工具默认安装单份 skills、commands、agents
|
|
49
|
+
所有工具默认安装单份 skills、commands、agents;配套资料集中在 i3-composer-agent/。
|
|
50
50
|
评测、脚本和 Hook 读取同一份已安装技能。--prepare 用于另行导出标准插件并按宿主方式注册。
|
|
51
51
|
WorkBuddy 桌面版建议全局安装,便于技能列表和输入补全发现。
|
|
52
52
|
评测需主动运行;Hook 文件已提供,需按宿主事件协议单独启用。
|
|
@@ -205,12 +205,13 @@ async function main() {
|
|
|
205
205
|
if (target.nativeCommands) console.log(`命令:/i3-spec、/i3-plan、/i3-build、/i3-ship(共 ${target.catalog.commands.length} 个工作流):${target.commandsDirectory}`);
|
|
206
206
|
else console.log(`命令和角色资料已提供;是否自动发现取决于宿主:${target.commandsDirectory}、${target.personasDirectory}`);
|
|
207
207
|
console.log(`评测资料:${target.evalsDirectory}`);
|
|
208
|
-
console.log(
|
|
208
|
+
console.log(`完整校验:进入 "${target.toolkitDirectory}" 后运行 npm test`);
|
|
209
|
+
console.log(`中文评测:node "${path.join(target.scriptsDirectory, 'run-evals.js')}" --locale zh-CN --min-rank1 95`);
|
|
209
210
|
console.log(`Hook:${target.hooksDirectory}(尚未启用)`);
|
|
210
211
|
}
|
|
211
|
-
for (const
|
|
212
|
+
for (const file of plan.preserved || []) console.log(`保留了用户文件:${file}`);
|
|
212
213
|
console.log('请重新加载 IDE 窗口或新建宿主会话以发现安装内容。');
|
|
213
214
|
if (plan.agents.some(id => !['codebuddy', 'workbuddy', 'claude-code'].includes(id))) console.log('这些工具通过技能 ID 调用;生命周期短命令支持取决于宿主。');
|
|
214
|
-
console.log('安装完成。评测说明见
|
|
215
|
+
console.log('安装完成。评测说明见 i3-composer-agent/evals/README.md;Hook 需按宿主事件协议启用。');
|
|
215
216
|
}
|
|
216
217
|
main().catch(error => { console.error(`${name}: ${error.message}`); process.exitCode = 1; });
|
package/bin/install.cjs
CHANGED
|
@@ -7,7 +7,7 @@ const crypto = require('node:crypto');
|
|
|
7
7
|
const registry = require('./agent-targets.json');
|
|
8
8
|
const { cleanupBackups } = require('./cleanup-backups.cjs');
|
|
9
9
|
const { nativeAssets, renderAsset } = require('./native-layout.cjs');
|
|
10
|
-
const { migrationAssets, pruneRetiredDirectories } = require('./native-migration.cjs');
|
|
10
|
+
const { migrationAssets, pruneRetiredDirectories, ownsAsset } = require('./native-migration.cjs');
|
|
11
11
|
const { fingerprint } = require('./asset-fingerprint.cjs');
|
|
12
12
|
const root = path.resolve(__dirname, '..');
|
|
13
13
|
const name = 'i3-composer-agent';
|
|
@@ -50,7 +50,7 @@ function checkDestination(file) {
|
|
|
50
50
|
}
|
|
51
51
|
function assetPath(base, file) { return path.relative(base, file).split(path.sep).join('/'); }
|
|
52
52
|
function manifestContent(plan, asset) {
|
|
53
|
-
return JSON.stringify({ name, version, layoutVersion:
|
|
53
|
+
return JSON.stringify({ name, version, layoutVersion: 3, entryPrefix: 'i3-', scope: plan.scope, agents: asset.target.agents,
|
|
54
54
|
capabilities: { nativeCommands: !!asset.target.nativeCommands, nativeAgents: !!asset.target.nativeCommands, hooks: 'manual' },
|
|
55
55
|
catalog: asset.target.catalog, resources: asset.target.resources,
|
|
56
56
|
assets: plan.assets.filter(item => item.base === asset.base && !['legacy', 'result'].includes(item.kind)).map(item => assetPath(asset.base, item.destination)) }, null, 2) + '\n';
|
|
@@ -64,10 +64,10 @@ function planInstallation({ agents, scope, projectDir = process.cwd(), home = os
|
|
|
64
64
|
const agent = registry.agents.find(item => item.id === id);
|
|
65
65
|
const skillsDirectory = destination(scope === 'project' ? path.resolve(projectDir, agent.projectSkillsDir) : globalSkillsDir(agent, home, env));
|
|
66
66
|
const base = path.dirname(skillsDirectory);
|
|
67
|
-
if (!targets.has(skillsDirectory)) targets.set(skillsDirectory, { agents: [], skillsDirectory, referencesDirectory: path.join(base, 'references'
|
|
67
|
+
if (!targets.has(skillsDirectory)) targets.set(skillsDirectory, { agents: [], skillsDirectory, toolkitDirectory: path.join(base, name), referencesDirectory: path.join(base, name, 'references'),
|
|
68
68
|
commandsDirectory: path.join(base, 'commands'), personasDirectory: path.join(base, 'agents'),
|
|
69
|
-
evalsDirectory: path.join(base, 'evals'
|
|
70
|
-
hooksDirectory: path.join(base, 'hooks'
|
|
69
|
+
evalsDirectory: path.join(base, name, 'evals'), scriptsDirectory: path.join(base, name, 'scripts'),
|
|
70
|
+
hooksDirectory: path.join(base, name, 'hooks'), docsDirectory: path.join(base, name, 'docs'), base });
|
|
71
71
|
const target = targets.get(skillsDirectory);
|
|
72
72
|
target.agents.push(id);
|
|
73
73
|
if (['codebuddy', 'workbuddy', 'claude-code'].includes(id)) {
|
|
@@ -83,7 +83,7 @@ function planInstallation({ agents, scope, projectDir = process.cwd(), home = os
|
|
|
83
83
|
// Earlier Windows installs persisted backslashes. Normalize before lookup
|
|
84
84
|
// and containment checks so owned upgrades work across both manifest forms.
|
|
85
85
|
if (owned) previous.assets = previous.assets.map(relative => typeof relative === 'string' ? relative.replaceAll('\\', '/') : relative);
|
|
86
|
-
const sameVersion = owned && previous.layoutVersion ===
|
|
86
|
+
const sameVersion = owned && previous.layoutVersion === 3 && previous.version === version && previous.scope === scope && previous.entryPrefix === 'i3-';
|
|
87
87
|
if (owned && previous.scope === scope && Array.isArray(previous.agents)) {
|
|
88
88
|
const applicable = previous.agents.filter(id => {
|
|
89
89
|
const agent = registry.agents.find(item => item.id === id);
|
|
@@ -101,9 +101,8 @@ function planInstallation({ agents, scope, projectDir = process.cwd(), home = os
|
|
|
101
101
|
for (const asset of additions) {
|
|
102
102
|
// A new grouped resource must not take ownership of an unrelated file,
|
|
103
103
|
// even when --force confirms replacement of a previous installation.
|
|
104
|
-
const previousOwned = owned && previous
|
|
105
|
-
|
|
106
|
-
asset.protectedResource = /^(references|evals|hooks|scripts|docs)\//.test(asset.relative);
|
|
104
|
+
const previousOwned = owned && ownsAsset(previous, asset.relative);
|
|
105
|
+
asset.protectedResource = /^(references|evals|hooks|scripts|docs|i3-composer-agent)\//.test(asset.relative);
|
|
107
106
|
if (exists(asset.destination) && !previousOwned && asset.protectedResource) {
|
|
108
107
|
throw new Error(`未归属本包的同名资源,不能覆盖,请先处理:${asset.destination}`);
|
|
109
108
|
}
|
|
@@ -201,7 +200,20 @@ function executeInstallation(plan, { force = false } = {}) {
|
|
|
201
200
|
}
|
|
202
201
|
pruneRetiredDirectories(plan.assets);
|
|
203
202
|
completed = true;
|
|
204
|
-
|
|
203
|
+
const ownedPaths = new Set(plan.assets.filter(asset => asset.kind !== 'legacy').map(asset => asset.destination));
|
|
204
|
+
plan.preserved = [];
|
|
205
|
+
function findUserFiles(directory) {
|
|
206
|
+
if (!exists(directory) || fs.lstatSync(directory).isSymbolicLink()) return;
|
|
207
|
+
for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
|
|
208
|
+
const file = path.join(directory, entry.name);
|
|
209
|
+
if (entry.isDirectory()) findUserFiles(file);
|
|
210
|
+
else if (!ownedPaths.has(file) && !file.split(path.sep).includes('results')) plan.preserved.push(file);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
for (const target of plan.targets) {
|
|
214
|
+
findUserFiles(path.join(target.base, name));
|
|
215
|
+
for (const category of ['references', 'evals', 'hooks', 'scripts', 'docs']) findUserFiles(path.join(target.base, category, name));
|
|
216
|
+
}
|
|
205
217
|
return [];
|
|
206
218
|
} catch (error) {
|
|
207
219
|
for (const change of committed.reverse()) {
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
'use strict';
|
|
3
2
|
|
|
4
3
|
const fs = require('node:fs');
|
|
5
4
|
const path = require('node:path');
|
|
6
|
-
const {
|
|
7
|
-
const { frontmatterYamlErrors } = require('./lib/skill-lint.cjs');
|
|
5
|
+
const { frontmatterYamlErrors } = require('./skill-lint.js');
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
const { root, catalog } = loadInstallation();
|
|
7
|
+
function validateAgents({ root, catalog }) {
|
|
11
8
|
let errors = 0;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const relative = `${category}/${name}.md`;
|
|
9
|
+
for (const name of catalog.agents) {
|
|
10
|
+
const relative = `agents/${name}.md`;
|
|
15
11
|
const text = fs.readFileSync(path.join(root, relative), 'utf8');
|
|
16
12
|
const issues = frontmatterYamlErrors(text);
|
|
17
13
|
const frontmatter = text.match(/^---[ \t]*\r?\n([\s\S]*?)\r?\n---[ \t]*(?:\r?\n|$)/)?.[1] || '';
|
|
18
14
|
if (!/^description:\s*\S/m.test(frontmatter)) issues.push('缺少 description');
|
|
19
|
-
if (
|
|
15
|
+
if (!new RegExp(`^name:\\s*["']?${name}["']?\\s*$`, 'm').test(frontmatter)) issues.push('角色 name 与文件名不一致');
|
|
20
16
|
if (!text.replace(/^---[\s\S]*?\n---/, '').trim()) issues.push('缺少提示正文');
|
|
21
17
|
console.log(`${issues.length ? '✗' : '✓'} ${relative}`);
|
|
22
18
|
for (const issue of issues) { console.error(` ${issue}`); errors++; }
|
|
23
19
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
} catch (error) { console.error(error.message); process.exitCode = 1; }
|
|
20
|
+
return errors;
|
|
21
|
+
}
|
|
22
|
+
module.exports = { validateAgents };
|
package/bin/native-layout.cjs
CHANGED
|
@@ -11,34 +11,54 @@ function replaceOnce(text, before, after, label) {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
function nativeScript(text, relative) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
// Copied upstream test fixtures keep their original repository paths; the
|
|
15
|
+
// real installed runners always require the installation manifest.
|
|
16
|
+
const setup = "const INSTALLATION = (require('node:fs').existsSync(require('node:path').join(__dirname, 'lib', 'installation.js')) || require('node:path').basename(require('node:path').resolve(__dirname, '..')) === 'i3-composer-agent') ? require('./lib/installation.js').loadInstallation() : null;";
|
|
17
|
+
if (relative.startsWith('scripts/lib/') || relative === 'scripts/run-regressions.js') return text;
|
|
18
|
+
if (relative === 'scripts/validate-versions.js' || relative === 'scripts/validate-versions-test.js') {
|
|
19
|
+
return replaceOnce(text, 'const manifestPaths = [', setup + "\nconst MANIFEST_ROOT = INSTALLATION ? INSTALLATION.resources.adapters : require('node:path').resolve(__dirname, '..');\nconst manifestPaths = [", relative)
|
|
20
|
+
.replace('readFileSync(manifestPath, "utf8")', 'readFileSync(require("node:path").join(INSTALLATION && manifestPath === "package.json" ? INSTALLATION.toolkitRoot : MANIFEST_ROOT, manifestPath), "utf8")')
|
|
21
|
+
.replace('const expectedVersion = readManifestVersion("plugin.json");', 'const expectedVersion = readManifestVersion("plugin.json");\nif (INSTALLATION && expectedVersion !== INSTALLATION.manifest.version) throw new Error("插件版本与实际安装版本不一致");');
|
|
22
|
+
}
|
|
23
|
+
if (relative === 'scripts/floor-guard-reference-test.js') {
|
|
24
|
+
return replaceOnce(text, 'const REFERENCE = path.join(', setup + '\nconst REFERENCE = path.join(', relative)
|
|
25
|
+
.replace("__dirname, '..', 'skills',", "(INSTALLATION ? INSTALLATION.root : path.resolve(__dirname, '..')), 'skills',");
|
|
26
|
+
}
|
|
27
|
+
if (/-test\.js$/.test(relative)) return text;
|
|
17
28
|
if (relative === 'scripts/validate-skills.js') {
|
|
18
|
-
text = replaceOnce(text, "const SKILLS_DIR = path.resolve(__dirname, '..', 'skills');",
|
|
19
|
-
|
|
29
|
+
text = replaceOnce(text, "const SKILLS_DIR = path.resolve(__dirname, '..', 'skills');", setup + "\nconst SKILLS_DIR = INSTALLATION ? INSTALLATION.skillsDirectory : path.resolve(__dirname, '..', 'skills');", relative);
|
|
30
|
+
text = replaceOnce(text, "const AGENTS_DIR = path.resolve(__dirname, '..', 'agents');", "const AGENTS_DIR = INSTALLATION ? path.join(INSTALLATION.root, 'agents') : path.resolve(__dirname, '..', 'agents');", relative);
|
|
31
|
+
text = replaceOnce(text, 'fs.readdirSync(AGENTS_DIR)', "(INSTALLATION ? INSTALLATION.catalog.agents.map(name => name + '.md') : fs.readdirSync(AGENTS_DIR))", relative);
|
|
32
|
+
return replaceOnce(text, 'fs.readdirSync(SKILLS_DIR)', '(INSTALLATION ? INSTALLATION.catalog.skills : fs.readdirSync(SKILLS_DIR))', relative);
|
|
20
33
|
}
|
|
21
34
|
const rootDeclaration = relative === 'scripts/run-evals.js'
|
|
22
35
|
? "const ROOT = path.join(__dirname, '..');" : "const ROOT = path.resolve(__dirname, '..');";
|
|
23
|
-
text = replaceOnce(text, rootDeclaration,
|
|
36
|
+
text = replaceOnce(text, rootDeclaration, setup + "\nconst ROOT = INSTALLATION ? INSTALLATION.root : path.resolve(__dirname, '..');", relative);
|
|
24
37
|
if (relative === 'scripts/run-evals.js') {
|
|
25
|
-
text = text.replaceAll("path.join(ROOT, 'evals',", "path.join(INSTALLATION.resources.evals,")
|
|
26
|
-
.replaceAll("path.join(ROOT, 'evals/zh-CN/cases')", "path.join(INSTALLATION.resources.evals, 'zh-CN/cases')");
|
|
27
|
-
return replaceOnce(text, 'fs.readdirSync(SKILLS_DIR)', 'INSTALLATION.catalog.skills', relative);
|
|
38
|
+
text = text.replaceAll("path.join(ROOT, 'evals',", "path.join(INSTALLATION ? INSTALLATION.resources.evals : path.join(ROOT, 'evals'),")
|
|
39
|
+
.replaceAll("path.join(ROOT, 'evals/zh-CN/cases')", "path.join(INSTALLATION ? INSTALLATION.resources.evals : path.join(ROOT, 'evals'), 'zh-CN/cases')");
|
|
40
|
+
return replaceOnce(text, 'fs.readdirSync(SKILLS_DIR)', '(INSTALLATION ? INSTALLATION.catalog.skills : fs.readdirSync(SKILLS_DIR))', relative);
|
|
28
41
|
}
|
|
29
42
|
if (relative === 'scripts/validate-reference-links.js') {
|
|
30
|
-
text = replaceOnce(text, 'fs.readdirSync(SKILLS_DIR)', 'INSTALLATION.catalog.skills', relative);
|
|
31
|
-
return replaceOnce(text, 'references\\/[A-Za-z0-9._-]+\\.md', 'references\\/(?:[A-Za-z0-9._-]+\\/)*[A-Za-z0-9._-]+\\.md', relative);
|
|
43
|
+
text = replaceOnce(text, 'fs.readdirSync(SKILLS_DIR)', '(INSTALLATION ? INSTALLATION.catalog.skills : fs.readdirSync(SKILLS_DIR))', relative);
|
|
44
|
+
return replaceOnce(text, 'references\\/[A-Za-z0-9._-]+\\.md', '(?:i3-composer-agent\\/)?references\\/(?:[A-Za-z0-9._-]+\\/)*[A-Za-z0-9._-]+\\.md', relative);
|
|
45
|
+
}
|
|
46
|
+
if (relative === 'scripts/validate-commands.js') {
|
|
47
|
+
text = replaceOnce(text, "path.join(ROOT, '.claude', 'commands')", "path.join(ROOT, INSTALLATION ? 'commands' : '.claude/commands')", relative);
|
|
48
|
+
text = replaceOnce(text, "path.join(ROOT, '.gemini', 'commands')", "path.join(INSTALLATION ? INSTALLATION.resources.adapters : ROOT, '.gemini', 'commands')", relative);
|
|
49
|
+
text = replaceOnce(text, "path.join(ROOT, 'commands')", "path.join(INSTALLATION ? INSTALLATION.resources.adapters : ROOT, 'commands')", relative);
|
|
50
|
+
text = replaceOnce(text, 'fs.readdirSync(dir)', "(INSTALLATION ? (ext === '.md' ? INSTALLATION.catalog.commands.map(name => name + '.md') : fs.readdirSync(dir).filter(file => INSTALLATION.catalog.commands.includes(NAME_MAP_REVERSE[path.basename(file, ext)] ?? path.basename(file, ext)))) : fs.readdirSync(dir))", relative);
|
|
51
|
+
return replaceOnce(text, ' let errors = 0;', " let errors = INSTALLATION ? require('./lib/validate-agents.js').validateAgents(INSTALLATION) : 0;", relative);
|
|
32
52
|
}
|
|
33
53
|
if (relative === 'scripts/validate-artifact-paths.js') {
|
|
34
54
|
const guarded = text.match(/const GUARDED_FILES = \[[\s\S]*?\n\];/)?.[0];
|
|
35
55
|
if (!guarded) throw new Error(`缺少原生产物检查配置:${relative}`);
|
|
36
|
-
|
|
37
|
-
...INSTALLATION.catalog.commands.map(name => 'commands/' + name + '.md')
|
|
38
|
-
'skills/i3-spec-driven-development/SKILL.md',
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
56
|
+
text = text.replace(guarded, 'const GUARDED_FILES = INSTALLATION ? [\n' +
|
|
57
|
+
" ...INSTALLATION.catalog.commands.map(name => 'commands/' + name + '.md'),\n" +
|
|
58
|
+
" 'skills/i3-spec-driven-development/SKILL.md', 'skills/i3-planning-and-task-breakdown/SKILL.md',\n" +
|
|
59
|
+
" ...INSTALLATION.manifest.assets.filter(file => /^(?:i3-composer-agent\\/docs\\/(getting-started|adoption-guide|copilot-setup)\\.md|i3-composer-agent\\/adapters\\/(?:\\.gemini\\/commands|commands)\\/i3-(spec|planning|build)\\.toml)$/.test(file)),\n" +
|
|
60
|
+
'] : ' + guarded.slice('const GUARDED_FILES = '.length));
|
|
61
|
+
return text.replace(/^GUARDED_FILES\.push\(.*\);$/m, "if (!INSTALLATION) $&");
|
|
42
62
|
}
|
|
43
63
|
throw new Error(`尚未适配的公共脚本:${relative}`);
|
|
44
64
|
}
|
|
@@ -47,6 +67,18 @@ function renderAsset(buffer, asset) {
|
|
|
47
67
|
const relative = asset.sourceRelative || '';
|
|
48
68
|
if (relative.startsWith('evals/fixtures/')) return buffer;
|
|
49
69
|
let text = buffer.toString('utf8');
|
|
70
|
+
if (asset.kind === 'toolkit-package') {
|
|
71
|
+
const pkg = JSON.parse(text);
|
|
72
|
+
return Buffer.from(JSON.stringify({ name: pkg.name, version: pkg.version, private: true,
|
|
73
|
+
type: 'commonjs', engines: pkg.engines, scripts: Object.fromEntries(
|
|
74
|
+
Object.entries(pkg.scripts).filter(([key]) => ['test', 'validate', 'eval', 'test:regression'].includes(key))) }, null, 2) + '\n');
|
|
75
|
+
}
|
|
76
|
+
if (asset.kind === 'toolkit-readme') return Buffer.from(
|
|
77
|
+
'# i3 Composer Agent 配套工具\n\n' +
|
|
78
|
+
'本目录提供评测、校验、回归测试、Hook、共享参考资料和使用指南。技能、命令和 Agent 位于上一级的对应目录,只有一份;这里的评测读取宿主实际安装的内容。\n\n' +
|
|
79
|
+
'进入本目录后运行:\n\n```bash\nnpm test\nnode scripts/run-evals.js --locale zh-CN --min-rank1 95\n```\n\n' +
|
|
80
|
+
'`npm test` 执行内容校验、中英文确定性评测及全部脚本回归测试,不需要 npm install。模型行为评测需要另行配置执行宿主;详见 [evals/README.md](evals/README.md)。\n\n' +
|
|
81
|
+
'`adapters/` 保留其他命令格式和插件清单,供原版一致性校验与回归测试使用,不自动注册或启用插件。Hook 需按宿主支持的事件单独启用;缓存与代码块保护分别详见 [hooks/SDD-CACHE.md](hooks/SDD-CACHE.md) 和 [hooks/SIMPLIFY-IGNORE.md](hooks/SIMPLIFY-IGNORE.md)。\n');
|
|
50
82
|
if (asset.kind === 'runtime') return Buffer.from(text.replace('__I3_INSTALL_VERSION__', asset.version));
|
|
51
83
|
if (asset.kind === 'script') return Buffer.from(nativeScript(text, relative));
|
|
52
84
|
if (relative === 'hooks/session-start.sh') {
|
|
@@ -71,7 +103,7 @@ function renderAsset(buffer, asset) {
|
|
|
71
103
|
});
|
|
72
104
|
}
|
|
73
105
|
// Shared references move; skill-local references and executable assets stay.
|
|
74
|
-
text = text.replace(/((?:\.\.\/){2,})references
|
|
106
|
+
text = text.replace(/((?:\.\.\/){2,})references\//g, '$1' + name + '/references/');
|
|
75
107
|
// Resolve actual Markdown links through the same source-to-destination map.
|
|
76
108
|
text = text.replace(/(\]\()([^\s)#]+)(#[^\s)]+)?(\))/g, (match, open, link, fragment = '', close) => {
|
|
77
109
|
if (/^(?:[a-z]+:|\/)/i.test(link)) return match;
|
|
@@ -81,9 +113,9 @@ function renderAsset(buffer, asset) {
|
|
|
81
113
|
return open + path.posix.relative(path.posix.dirname(asset.relative), mapped) + fragment + close;
|
|
82
114
|
});
|
|
83
115
|
if (asset.kind === 'command' || asset.kind === 'persona') {
|
|
84
|
-
text = text.replaceAll('docs/agents.md',
|
|
116
|
+
text = text.replaceAll('docs/agents.md', name + '/docs/agents.md');
|
|
85
117
|
}
|
|
86
|
-
if (relative.startsWith('hooks/')) text = text.replace(/\bhooks
|
|
118
|
+
if (relative.startsWith('hooks/')) text = text.replace(/\bhooks\//g, name + '/hooks/');
|
|
87
119
|
return Buffer.from(text);
|
|
88
120
|
}
|
|
89
121
|
|
|
@@ -110,24 +142,28 @@ function nativeAssets(root, target, packageFiles, version) {
|
|
|
110
142
|
visit('skills', 'skills', 'skill');
|
|
111
143
|
visit('.claude/commands', 'commands', 'command');
|
|
112
144
|
visit('agents', 'agents', 'persona');
|
|
113
|
-
visit('references',
|
|
114
|
-
visit('README.md',
|
|
145
|
+
visit('references', name + '/references', 'reference');
|
|
146
|
+
visit('README.md', name + '/docs/README.md', 'docs');
|
|
147
|
+
visit('README.md', name + '/README.md', 'toolkit-readme');
|
|
148
|
+
visit('package.json', name + '/package.json', 'toolkit-package');
|
|
115
149
|
for (const file of packageFiles) {
|
|
116
150
|
const category = file.split('/')[0];
|
|
117
151
|
if (!['evals', 'hooks', 'scripts', 'docs'].includes(category)) continue;
|
|
118
|
-
|
|
119
|
-
const relative = `${category}/${name}${file.slice(category.length)}`.replace(/\.js$/, category === 'scripts' ? '.cjs' : '.js');
|
|
152
|
+
const relative = name + '/' + file;
|
|
120
153
|
visit(file, relative, category === 'scripts' ? 'script' : category);
|
|
121
154
|
}
|
|
122
|
-
visit('bin/native-runtime.cjs',
|
|
123
|
-
visit('bin/native-command-validation.cjs',
|
|
124
|
-
|
|
155
|
+
visit('bin/native-runtime.cjs', name + '/scripts/lib/installation.js', 'runtime');
|
|
156
|
+
visit('bin/native-command-validation.cjs', name + '/scripts/lib/validate-agents.js', 'runtime');
|
|
157
|
+
for (const file of ['commands', '.gemini/commands', 'plugin.json', '.codex-plugin/plugin.json',
|
|
158
|
+
'.claude-plugin/plugin.json', '.claude-plugin/marketplace.json', '.agents/plugins/marketplace.json']) {
|
|
159
|
+
visit(file, name + '/adapters/' + file, 'adapter');
|
|
160
|
+
}
|
|
125
161
|
target.catalog = {
|
|
126
162
|
skills: fs.readdirSync(path.join(root, 'skills')).filter(id => fs.existsSync(path.join(root, 'skills', id, 'SKILL.md'))).sort(),
|
|
127
163
|
commands: fs.readdirSync(path.join(root, '.claude/commands')).filter(file => file.endsWith('.md')).map(file => file.slice(0, -3)).sort(),
|
|
128
164
|
agents: fs.readdirSync(path.join(root, 'agents')).filter(file => file.endsWith('.md')).map(file => file.slice(0, -3)).sort(),
|
|
129
165
|
};
|
|
130
|
-
target.resources = Object.fromEntries(['references', 'evals', 'hooks', 'scripts', 'docs'].map(category => [category,
|
|
166
|
+
target.resources = Object.fromEntries(['references', 'evals', 'hooks', 'scripts', 'docs', 'adapters'].map(category => [category, name + '/' + category]));
|
|
131
167
|
for (const asset of assets) { asset.mapping = mapping; asset.base = target.base; }
|
|
132
168
|
return assets;
|
|
133
169
|
}
|