@givolt/i3-composer-agent 2.2.3 → 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 +15 -5
- package/agents/code-reviewer.md +1 -1
- package/agents/test-engineer.md +1 -1
- package/bin/native-layout.cjs +2 -0
- package/commands/i3-prototype.toml +23 -0
- package/commands/i3-review.toml +1 -1
- package/commands/i3-ship.toml +1 -1
- package/docs/agents.md +2 -2
- package/docs/codebuddy-setup.md +2 -2
- package/docs/codex-setup.md +1 -1
- 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 +2 -2
- package/evals/README.md +2 -0
- 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 +27 -1
- package/plugin.json +1 -1
- package/references/performance-checklist.md +4 -2
- package/scripts/enterprise-template-test.js +139 -0
- package/scripts/lib/skill-lint-test.js +113 -1
- package/scripts/lib/skill-lint.js +62 -8
- package/scripts/run-evals-test.js +207 -0
- package/scripts/run-evals.js +47 -9
- package/scripts/template-adapter-test.js +155 -0
- package/scripts/ui-prototype-test.js +114 -0
- package/scripts/validate-commands-test.js +30 -0
- package/scripts/validate-commands.js +6 -16
- package/scripts/validate-reference-links-test.js +18 -0
- package/scripts/validate-reference-links.js +4 -2
- package/scripts/validate-skills.js +26 -3
- 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
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: A pasted diff with a "what broke" question that belongs to i3-debugging-and-error-recovery. Guards the "fix a bug in it" clause of the i3-test-driven-development description, since a bug mentioned in a diagnosis request must not make the TDD skill fire.
|
|
3
|
+
expected_outcome: A diagnosis of the off-by-one; i3-test-driven-development is never invoked.
|
|
4
|
+
max_turns: 12
|
|
5
|
+
allowed_tools: [Read, Glob, Grep, Skill]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The orders page test started failing right after this change: it expects 20 rows and gets 19. Here is the diff. What broke?
|
|
9
|
+
|
|
10
|
+
```diff
|
|
11
|
+
diff --git a/src/orders.js b/src/orders.js
|
|
12
|
+
--- a/src/orders.js
|
|
13
|
+
+++ b/src/orders.js
|
|
14
|
+
@@ -12,3 +12,9 @@ function listOrders(db) {
|
|
15
|
+
return db.query('SELECT * FROM orders ORDER BY created_at DESC');
|
|
16
|
+
}
|
|
17
|
+
-module.exports = { listOrders };
|
|
18
|
+
+function pageOrders(db, page, size) {
|
|
19
|
+
+ const rows = db.query('SELECT * FROM orders ORDER BY created_at DESC');
|
|
20
|
+
+ const start = (page - 1) * size;
|
|
21
|
+
+ return rows.slice(start, start + size - 1);
|
|
22
|
+
+}
|
|
23
|
+
+
|
|
24
|
+
+module.exports = { listOrders, pageOrders };
|
|
25
|
+
```
|
|
@@ -40,6 +40,25 @@
|
|
|
40
40
|
"The ADR records a status from the skill's lifecycle (Proposed, Accepted, Superseded or Deprecated) and a date",
|
|
41
41
|
"人类可读的追问、说明、进度、报告与生成文档使用简体中文;保留代码、路径、工具参数、JSON 协议及机器状态的原始格式。"
|
|
42
42
|
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": 1004,
|
|
46
|
+
"kind": "execution",
|
|
47
|
+
"prompt": "面向首次接手此批处理队列的运维人员审阅 README.md。让说明更清楚,对照 queue.js 核实内容,准确保留操作细节与限制条件。不要修改实现。",
|
|
48
|
+
"expected_output": "A concise operational README grounded in the inspected implementation, with unsupported assurances removed or flagged, limits and caveats preserved, and the unverified command identified",
|
|
49
|
+
"files": [
|
|
50
|
+
"i3-documentation-and-adrs/prose-review"
|
|
51
|
+
],
|
|
52
|
+
"expectations": [
|
|
53
|
+
"The final README identifies queuectl submit jobs.json --max-batch-size 50 as an unverified documented example because the fixture contains neither the CLI nor jobs.json; it does not invent, silently certify, or replace that interface",
|
|
54
|
+
"The final README preserves the 50-job batch limit, 72-hour retention period, and at most three retries, distinguishing those units correctly",
|
|
55
|
+
"The final README preserves the operational caveat that failed jobs require operator review and queue state is not durable across a process restart",
|
|
56
|
+
"The unsupported claims of guaranteed zero job loss and no need for monitoring are removed or explicitly marked as unsubstantiated rather than restated as facts",
|
|
57
|
+
"The promotional opening is replaced with a concrete description of the queue without invented users, benchmarks, certifications, or capabilities",
|
|
58
|
+
"The execution trace shows the agent inspecting queue.js and comparing the README with its batch, retention, retry, and in-memory-state implementation before editing",
|
|
59
|
+
"queue.js remains unchanged, and the agent does not install a tool or send the fixture to a hosted service",
|
|
60
|
+
"人类可读的追问、说明、进度、报告与生成文档使用简体中文;保留代码、路径、工具参数、JSON 协议及机器状态的原始格式。"
|
|
61
|
+
]
|
|
43
62
|
}
|
|
44
63
|
]
|
|
45
64
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "i3-ui-prototype",
|
|
3
|
+
"trigger": {
|
|
4
|
+
"positive": [
|
|
5
|
+
{
|
|
6
|
+
"prompt": "选择 UI 原型模板,制作一个可操作的申请审批交互原型供评审。",
|
|
7
|
+
"top_k": 1
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"prompt": "根据业务需求生成可审查的交互原型,记录原型模板选择。",
|
|
11
|
+
"top_k": 1
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"prompt": "检查原型一致性,与已确认的原型基线比较。",
|
|
15
|
+
"top_k": 1
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"prompt": "根据评审反馈迭代交互原型,保留已确认的原型基线。",
|
|
19
|
+
"top_k": 1
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"negative": [
|
|
23
|
+
{
|
|
24
|
+
"prompt": "开发一个响应式前端页面,做好组件布局和无障碍交互。",
|
|
25
|
+
"owner": "i3-frontend-ui-engineering"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"prompt": "产品页面有一千条数据渲染很慢,请定位性能瓶颈并优化。",
|
|
29
|
+
"owner": "i3-performance-optimization"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"evals": [
|
|
34
|
+
{
|
|
35
|
+
"id": 1001,
|
|
36
|
+
"prompt": "根据提供的业务说明制作申请审批交互原型。明确使用模板模式,比较模板并生成待评审候选。不要自行批准原型。",
|
|
37
|
+
"expected_output": "A runnable business-specific prototype with traceability and pending-review status",
|
|
38
|
+
"files": [
|
|
39
|
+
"i3-ui-prototype"
|
|
40
|
+
],
|
|
41
|
+
"expectations": [
|
|
42
|
+
"Selected template and template mode are recorded without claiming UI/UX Pro Max was used",
|
|
43
|
+
"Business fields, role visibility, status transitions and review scenarios follow the supplied brief",
|
|
44
|
+
"A runnable prototype and verification evidence are produced; absent browser evidence is marked pending",
|
|
45
|
+
"The prototype remains pending human review and no approved baseline is invented",
|
|
46
|
+
"人类可读的追问、说明、进度、报告与生成文档使用简体中文;保留代码、路径、工具参数、JSON 协议及机器状态的原始格式。"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
package/hooks/SIMPLIFY-IGNORE.md
CHANGED
|
@@ -62,7 +62,7 @@ One script, three hook events:
|
|
|
62
62
|
|---|---|
|
|
63
63
|
| `PreToolUse Read` | Backs up file, replaces blocks with `BLOCK_<hash>` placeholders in-place |
|
|
64
64
|
| `PostToolUse Edit\|Write` | Expands placeholders back to real code, saves model's changes, re-filters |
|
|
65
|
-
| `Stop` | Expands the placeholders left in each file on disk, so changes made outside `Edit`/`Write` survive; falls back to the backup only if no placeholder is left |
|
|
65
|
+
| `Stop` | Expands the placeholders left in each file on disk, so changes made outside `Edit`/`Write` survive; keeps a file that was put back whole (a `git checkout`/`stash` revert, an undo) instead of the stale backup; falls back to the backup only if no placeholder is left |
|
|
66
66
|
|
|
67
67
|
Each block is content-hashed (8 hex chars via `shasum`/`sha1sum`) so the round-trip is unambiguous even if the model duplicates or reorders placeholders. Cache is project-scoped to prevent cross-session interference.
|
|
68
68
|
|
|
@@ -85,13 +85,14 @@ echo '{}' | bash hooks/simplify-ignore.sh
|
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
Backups are stored in `.claude/.simplify-ignore-cache/` within your project directory.
|
|
88
|
+
If a change is reverted while the hook is active, the superseded session backup is retained there as `<id>.superseded.<pid>`; review it and remove it when it is no longer needed.
|
|
88
89
|
|
|
89
90
|
## Known limitations
|
|
90
91
|
|
|
91
92
|
- **Single-line blocks hide the entire line.** If `simplify-ignore-start` and `simplify-ignore-end` appear on the same line as other code, the whole line is hidden from the model, not just the annotated portion. Use dedicated lines for annotations.
|
|
92
93
|
- **Comment suffix detection covers `*/` and `-->` only.** Template engines with non-standard comment closers (ERB `%>`, Blade `--}}`) may produce unbalanced placeholders. Use `#` or `//` style comments instead.
|
|
93
94
|
- **Fallback expansion is progressive, not exact.** If the model alters a placeholder's formatting (e.g. changes the reason text), the hook tries progressively simpler matches: full placeholder → prefix+hash+suffix → hash-only. The hash-only fallback may leave cosmetic debris (e.g. stray `:` or reason text). A warning is printed to stderr when this happens.
|
|
94
|
-
- **A
|
|
95
|
+
- **A removed placeholder falls back to the backup.** If an edit deletes a `BLOCK_<hash>` line, or something replaces the whole file, the hook can no longer tell where that protected block belongs. An `Edit` or `Write` that does this is reported back to the model (exit 2) with the placeholder to restore, and the backup is not updated. If the placeholder is still missing at `Stop`, the hook restores the backup and prints a warning; the changed file is not lost but is kept in the cache as `.claude/.simplify-ignore-cache/<id>.recovered`, whose path the warning prints, and you merge it back by hand. Changes that leave the placeholders in place — a `Bash` edit, a formatter, an external editor — are kept in the file itself.
|
|
95
96
|
- **File renaming leaves placeholders.** If the model renames or moves a file via a shell command, the new file will retain `BLOCK_<hash>` placeholders. The original code is saved as `<old-filename>.recovered` when the session stops. You must manually restore the recovered code into the new file.
|
|
96
97
|
|
|
97
98
|
## Requirements
|
|
@@ -466,8 +466,100 @@ else
|
|
|
466
466
|
assert_eq "Stop restores original + edit byte-identically" "identical" "differs"
|
|
467
467
|
fi
|
|
468
468
|
|
|
469
|
+
# ── Test 17: a removed placeholder never takes its protected block with it ─
|
|
470
|
+
printf '\nTest 17: Removing a placeholder line does not lose the protected block\n'
|
|
471
|
+
PROJ="$TMPDIR/rt17"; mkdir -p "$PROJ"
|
|
472
|
+
RT="$PROJ/dropped.js"
|
|
473
|
+
cat > "$RT" <<'EOF'
|
|
474
|
+
const a = 1;
|
|
475
|
+
// simplify-ignore-start: first
|
|
476
|
+
const keepOne = 42;
|
|
477
|
+
// simplify-ignore-end
|
|
478
|
+
const b = 2;
|
|
479
|
+
// simplify-ignore-start: second
|
|
480
|
+
const keepTwo = 43;
|
|
481
|
+
// simplify-ignore-end
|
|
482
|
+
EOF
|
|
483
|
+
cp "$RT" "$PROJ/dropped.orig"
|
|
484
|
+
|
|
485
|
+
rt_hook_event "$PROJ" "Read" "$RT"
|
|
486
|
+
# The model deletes the first placeholder line (it looks like a stray comment)
|
|
487
|
+
# and edits another line in the same Edit.
|
|
488
|
+
awk 'f||!/BLOCK_/{print;next}{f=1}' "$RT" | sed 's/const a = 1;/const a = 9;/' > "$PROJ/t"
|
|
489
|
+
cat "$PROJ/t" > "$RT"
|
|
490
|
+
edit_rc=0
|
|
491
|
+
edit_out=$(rt_hook_event "$PROJ" "Edit" "$RT" 2>&1) || edit_rc=$?
|
|
492
|
+
BAK=$(ls "$PROJ/.claude/.simplify-ignore-cache"/*.bak 2>/dev/null | head -1) || true
|
|
493
|
+
assert_eq "Edit that drops a placeholder exits 2 (stderr goes to the model)" "2" "$edit_rc"
|
|
494
|
+
assert_eq "message names the dropped placeholder" "1" "$(printf '%s' "$edit_out" | grep -c 'BLOCK_.*: first' || true)"
|
|
495
|
+
assert_eq "backup still holds the protected block" "1" "$(grep -c 'const keepOne = 42' "${BAK:-/dev/null}" || true)"
|
|
496
|
+
|
|
497
|
+
stop_out=$(rt_hook_event "$PROJ" "" "" 2>&1) || true
|
|
498
|
+
RECOVERED=$(ls "$PROJ/.claude/.simplify-ignore-cache"/*.recovered 2>/dev/null | head -1) || true
|
|
499
|
+
assert_eq "Stop puts the protected block back" "1" "$(grep -c 'const keepOne = 42' "$RT" || true)"
|
|
500
|
+
if cmp -s "$RT" "$PROJ/dropped.orig"; then
|
|
501
|
+
assert_eq "Stop restores the last good backup" "identical" "identical"
|
|
502
|
+
else
|
|
503
|
+
assert_eq "Stop restores the last good backup" "identical" "differs"
|
|
504
|
+
fi
|
|
505
|
+
assert_eq "the edit is kept as .recovered" "1" "$(grep -c 'const a = 9;' "${RECOVERED:-/dev/null}" || true)"
|
|
506
|
+
assert_eq ".recovered has the surviving block expanded" "1" "$(grep -c 'const keepTwo = 43' "${RECOVERED:-/dev/null}" || true)"
|
|
507
|
+
assert_eq "Stop warns about the missing placeholder" "1" "$(printf '%s' "$stop_out" | grep -c 'placeholder is missing' || true)"
|
|
508
|
+
|
|
509
|
+
# Same loss through a route that fires no Edit event (Bash, a formatter).
|
|
510
|
+
PROJ="$TMPDIR/rt17b"; mkdir -p "$PROJ"
|
|
511
|
+
RT="$PROJ/dropped.js"
|
|
512
|
+
cp "$TMPDIR/rt17/dropped.orig" "$RT"
|
|
513
|
+
rt_hook_event "$PROJ" "Read" "$RT"
|
|
514
|
+
awk 'f||!/BLOCK_/{print;next}{f=1}' "$RT" > "$PROJ/t"
|
|
515
|
+
cat "$PROJ/t" > "$RT"
|
|
516
|
+
rt_hook_event "$PROJ" "" "" 2>/dev/null || true
|
|
517
|
+
assert_eq "no-event removal: Stop puts the protected block back" "1" "$(grep -c 'const keepOne = 42' "$RT" || true)"
|
|
518
|
+
|
|
519
|
+
# ── Test 18: a change reverted with git stays reverted and the block hidden ──
|
|
520
|
+
printf '\nTest 18: Reverting a change with git during the session\n'
|
|
521
|
+
if command -v git >/dev/null 2>&1; then
|
|
522
|
+
for variant in read-then-stop stop; do
|
|
523
|
+
PROJ="$TMPDIR/rt18-$variant"; mkdir -p "$PROJ"
|
|
524
|
+
RT="$PROJ/reverted.js"
|
|
525
|
+
cat > "$RT" <<'EOF'
|
|
526
|
+
const a = 1;
|
|
527
|
+
// simplify-ignore-start
|
|
528
|
+
const secret = 42;
|
|
529
|
+
// simplify-ignore-end
|
|
530
|
+
const b = 2;
|
|
531
|
+
EOF
|
|
532
|
+
cp "$RT" "$PROJ/reverted.orig"
|
|
533
|
+
git -C "$PROJ" init -q
|
|
534
|
+
git -C "$PROJ" config core.autocrlf false
|
|
535
|
+
git -C "$PROJ" add reverted.js
|
|
536
|
+
git -C "$PROJ" -c user.name=t -c user.email=t@t -c commit.gpgsign=false commit -qm base
|
|
537
|
+
|
|
538
|
+
rt_hook_event "$PROJ" "Read" "$RT"
|
|
539
|
+
printf '%s\n' "const broken = true;" >> "$RT"
|
|
540
|
+
rt_hook_event "$PROJ" "Edit" "$RT"
|
|
541
|
+
git -C "$PROJ" checkout -q -- reverted.js
|
|
542
|
+
if [ "$variant" = read-then-stop ]; then
|
|
543
|
+
rt_hook_event "$PROJ" "Read" "$RT" 2>/dev/null
|
|
544
|
+
assert_eq "$variant: Read after the revert hides the block" "0" "$(grep -c 'secret' "$RT")"
|
|
545
|
+
assert_eq "$variant: Read after the revert shows a placeholder" "1" "$(grep -c 'BLOCK_' "$RT")"
|
|
546
|
+
fi
|
|
547
|
+
rt_hook_event "$PROJ" "" "" 2>/dev/null
|
|
548
|
+
if cmp -s "$RT" "$PROJ/reverted.orig"; then
|
|
549
|
+
assert_eq "$variant: Stop keeps the reverted file" "identical" "identical"
|
|
550
|
+
else
|
|
551
|
+
assert_eq "$variant: Stop keeps the reverted file" "identical" "differs"
|
|
552
|
+
fi
|
|
553
|
+
KEPT=$(ls "$PROJ/.claude/.simplify-ignore-cache"/*.superseded.* 2>/dev/null | head -1 || true)
|
|
554
|
+
assert_eq "$variant: the reverted session state is kept in the cache" "1" \
|
|
555
|
+
"$(grep -c 'const broken' "${KEPT:-/dev/null}")"
|
|
556
|
+
done
|
|
557
|
+
else
|
|
558
|
+
printf ' skipped: git not available\n'
|
|
559
|
+
fi
|
|
560
|
+
|
|
469
561
|
else
|
|
470
|
-
printf '\nTests 14-
|
|
562
|
+
printf '\nTests 14-18 skipped: jq not available (hook no-ops without it)\n'
|
|
471
563
|
fi
|
|
472
564
|
|
|
473
565
|
# ── Summary ──────────────────────────────────────────────────────────────
|
package/hooks/simplify-ignore.sh
CHANGED
|
@@ -221,6 +221,27 @@ expand_file() {
|
|
|
221
221
|
return 0
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
+
# -- missing_placeholders: which cached BLOCK_<hash> of $2 are gone from $1? --
|
|
225
|
+
# Prints the missing placeholders, one per line, and returns 0 if any is gone.
|
|
226
|
+
# A placeholder stands for code the model never saw, so it cannot have removed
|
|
227
|
+
# it on purpose; whichever route removed it, the block must not be lost with it.
|
|
228
|
+
missing_placeholders() {
|
|
229
|
+
local f="$1" fid="$2" bf h bp bs br out=""
|
|
230
|
+
for bf in "$CACHE/${fid}".block.*; do
|
|
231
|
+
[ -f "$bf" ] || continue
|
|
232
|
+
h="${bf##*.}"
|
|
233
|
+
grep -qF "BLOCK_${h}" "$f" 2>/dev/null && continue
|
|
234
|
+
bp=""; bs=""; br=""
|
|
235
|
+
[ -f "$CACHE/${fid}.prefix.${h}" ] && bp=$(cat "$CACHE/${fid}.prefix.${h}")
|
|
236
|
+
[ -f "$CACHE/${fid}.suffix.${h}" ] && bs=$(cat "$CACHE/${fid}.suffix.${h}")
|
|
237
|
+
[ -f "$CACHE/${fid}.reason.${h}" ] && br=": $(cat "$CACHE/${fid}.reason.${h}")"
|
|
238
|
+
out="${out} ${bp}BLOCK_${h}${br}${bs}
|
|
239
|
+
"
|
|
240
|
+
done
|
|
241
|
+
[ -n "$out" ] || return 1
|
|
242
|
+
printf '%s' "$out"
|
|
243
|
+
}
|
|
244
|
+
|
|
224
245
|
# ── has_placeholders: is a cached BLOCK_<hash> for $2 still present in file $1? ─
|
|
225
246
|
has_placeholders() {
|
|
226
247
|
local f="$1" fid="$2" bf h
|
|
@@ -232,6 +253,36 @@ has_placeholders() {
|
|
|
232
253
|
return 1
|
|
233
254
|
}
|
|
234
255
|
|
|
256
|
+
# -- file_is_whole: was the real file put back on disk while it was filtered? --
|
|
257
|
+
# True when no placeholder of $2 is in file $1 and every cached block is there
|
|
258
|
+
# verbatim (blocks are content-hashed, so filtering a probe copy compares them
|
|
259
|
+
# exactly). A git checkout, restore, stash or reset, or an editor undo, does
|
|
260
|
+
# this; the model cannot, because it never saw the block text.
|
|
261
|
+
file_is_whole() {
|
|
262
|
+
local f="$1" fid="$2" probe bf whole=0
|
|
263
|
+
probe="${fid}.probe.$$"
|
|
264
|
+
has_placeholders "$f" "$fid" && return 1
|
|
265
|
+
grep -q 'simplify-ignore-start' -- "$f" 2>/dev/null || return 1
|
|
266
|
+
if filter_file "$f" "$CACHE/${probe}.tmp" "$probe" 2>/dev/null; then
|
|
267
|
+
whole=1
|
|
268
|
+
for bf in "$CACHE/${fid}".block.*; do
|
|
269
|
+
[ -f "$bf" ] && [ -f "$CACHE/${probe}.block.${bf##*.}" ] || { whole=0; break; }
|
|
270
|
+
done
|
|
271
|
+
fi
|
|
272
|
+
rm -f "$CACHE/${probe}".*
|
|
273
|
+
[ "$whole" -eq 1 ]
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
# -- set_aside_backup: the file on disk supersedes the backup; keep a copy ----
|
|
277
|
+
set_aside_backup() {
|
|
278
|
+
local f="$1" fid="$2" kept
|
|
279
|
+
cmp -s "$CACHE/${fid}.bak" "$f" && return 0
|
|
280
|
+
kept="$CACHE/${fid}.superseded.$$"
|
|
281
|
+
cp "$CACHE/${fid}.bak" "$kept"
|
|
282
|
+
printf 'simplify-ignore:%s 在隐藏代码块期间被整体还原(git checkout、stash、undo),保留当前文件;先前会话状态留存于 %s(put back whole while filtered; keeping it)\n' \
|
|
283
|
+
"$f" "$kept" >&2
|
|
284
|
+
}
|
|
285
|
+
|
|
235
286
|
# ── Stop: expand each cached file in place, backup only as fallback ──────────
|
|
236
287
|
if [ -z "$TOOL_NAME" ]; then
|
|
237
288
|
[ -d "$CACHE" ] || exit 0
|
|
@@ -245,20 +296,30 @@ if [ -z "$TOOL_NAME" ]; then
|
|
|
245
296
|
# A change can reach the file through a route that fires no Edit or Write
|
|
246
297
|
# event (a Bash command, a formatter, an external editor), and the backup
|
|
247
298
|
# is stale for all of them. Expand what is on disk rather than overwrite it.
|
|
248
|
-
if
|
|
299
|
+
if file_is_whole "$orig" "$fid"; then
|
|
300
|
+
# The real file is back (the change was reverted with git or undone).
|
|
301
|
+
# It is newer than the backup, which would bring the reverted change
|
|
302
|
+
# back, so keep the file and move the backup aside.
|
|
303
|
+
set_aside_backup "$orig" "$fid"
|
|
304
|
+
elif has_placeholders "$orig" "$fid" && ! missing_placeholders "$orig" "$fid" >/dev/null; then
|
|
249
305
|
EXPANDED="$CACHE/${fid}.$$.expanded"
|
|
250
306
|
expand_file "$orig" "$EXPANDED" "$fid"
|
|
251
307
|
cat "$EXPANDED" > "$orig"
|
|
252
308
|
rm -f "$EXPANDED"
|
|
253
309
|
else
|
|
254
|
-
#
|
|
255
|
-
# backup is the only remaining copy
|
|
256
|
-
#
|
|
257
|
-
#
|
|
310
|
+
# A placeholder is gone — the file was rewritten wholesale, or one
|
|
311
|
+
# block's line was deleted — so the backup is the only remaining copy
|
|
312
|
+
# of that protected block. Keep the rewrite in the cache (with any
|
|
313
|
+
# surviving placeholders expanded) before the backup overwrites it, so
|
|
314
|
+
# the work is recoverable rather than lost.
|
|
258
315
|
rewritten="$CACHE/${fid}.recovered"
|
|
259
|
-
|
|
316
|
+
if has_placeholders "$orig" "$fid"; then
|
|
317
|
+
expand_file "$orig" "$rewritten" "$fid" 2>/dev/null
|
|
318
|
+
else
|
|
319
|
+
cat "$orig" > "$rewritten"
|
|
320
|
+
fi
|
|
260
321
|
cat "$bak" > "$orig"
|
|
261
|
-
printf '警告:%s
|
|
322
|
+
printf '警告:%s 中有 BLOCK_ 占位符缺失,已从事务备份恢复,改写内容保留于 %s(Warning: a BLOCK_ placeholder is missing; restored from backup)\n' \
|
|
262
323
|
"$orig" "$rewritten" >&2
|
|
263
324
|
fi
|
|
264
325
|
rm -f "$bak" "$pathfile" "$CACHE/${fid}".block.* "$CACHE/${fid}".reason.* "$CACHE/${fid}".prefix.* "$CACHE/${fid}".suffix.*
|
|
@@ -291,12 +352,21 @@ if [ "$TOOL_NAME" = "Read" ]; then
|
|
|
291
352
|
ID=$(file_id "$FILE_PATH")
|
|
292
353
|
|
|
293
354
|
# If backup exists, file is already filtered — skip
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
355
|
+
# unless the real file was put back meanwhile (git checkout, stash, undo):
|
|
356
|
+
# skipping then would show the model every protected block, so take that
|
|
357
|
+
# file as the new original and filter it again.
|
|
358
|
+
if [ -f "$CACHE/${ID}.bak" ]; then
|
|
359
|
+
file_is_whole "$FILE_PATH" "$ID" || exit 0
|
|
360
|
+
set_aside_backup "$FILE_PATH" "$ID"
|
|
361
|
+
REFILTER=1
|
|
362
|
+
else
|
|
363
|
+
grep -q 'simplify-ignore-start' -- "$FILE_PATH" || exit 0
|
|
364
|
+
REFILTER=0
|
|
365
|
+
fi
|
|
297
366
|
|
|
298
367
|
# Atomic lock: mkdir fails if another session races us
|
|
299
|
-
|
|
368
|
+
# (a refilter already holds the lock from the first Read)
|
|
369
|
+
if [ "$REFILTER" -eq 0 ] && ! mkdir "$CACHE/${ID}.lock" 2>/dev/null; then
|
|
300
370
|
# Lock exists — reclaim only if stale (>60s old, no backup = crash leftover)
|
|
301
371
|
if [ ! -f "$CACHE/${ID}.bak" ] && \
|
|
302
372
|
[ -n "$(find "$CACHE/${ID}.lock" -maxdepth 0 -mmin +1 2>/dev/null)" ]; then
|
|
@@ -330,6 +400,19 @@ if [ "$TOOL_NAME" = "Edit" ] || [ "$TOOL_NAME" = "Write" ]; then
|
|
|
330
400
|
[ -f "$CACHE/${ID}.bak" ] || exit 0
|
|
331
401
|
ls "$CACHE/${ID}".block.* >/dev/null 2>&1 || exit 0
|
|
332
402
|
|
|
403
|
+
# The edit removed a placeholder. Expanding now would save a backup without
|
|
404
|
+
# that block, and Stop would then restore the loss. Keep the last good
|
|
405
|
+
# backup, leave the file as edited, and tell the model (exit 2 sends stderr
|
|
406
|
+
# back to it) so it can put the placeholder back; if it does not, Stop
|
|
407
|
+
# restores the backup and keeps this version as <id>.recovered.
|
|
408
|
+
if dropped=$(missing_placeholders "$FILE_PATH" "$ID"); then
|
|
409
|
+
printf '%s\n%s\n%s\n' \
|
|
410
|
+
"simplify-ignore:本次 $TOOL_NAME 删除了 $FILE_PATH 的占位符行,每行都代表当前不可见的受保护代码(removed placeholder line(s)):" \
|
|
411
|
+
"$dropped" \
|
|
412
|
+
"请逐行原样放回占位符。在此之前备份不会更新;会话结束时将从备份恢复文件,本次改写以 .recovered 留在缓存中(backup is not updated)。" >&2
|
|
413
|
+
exit 2
|
|
414
|
+
fi
|
|
415
|
+
|
|
333
416
|
# Expand placeholders, preserving any inline code the model added around them
|
|
334
417
|
EXPANDED="$CACHE/${ID}.$$.expanded"
|
|
335
418
|
expand_file "$FILE_PATH" "$EXPANDED" "$ID"
|
package/package.json
CHANGED
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
"evals/cases/i3-source-driven-development.json",
|
|
56
56
|
"evals/cases/i3-spec-driven-development.json",
|
|
57
57
|
"evals/cases/i3-test-driven-development.json",
|
|
58
|
+
"evals/cases/i3-ui-prototype.json",
|
|
58
59
|
"evals/cases/i3-using-agent-skills.json",
|
|
59
60
|
"evals/fixtures/i3-api-and-interface-design/service-brief.md",
|
|
60
61
|
"evals/fixtures/i3-browser-testing-with-devtools/README.md",
|
|
@@ -72,6 +73,8 @@
|
|
|
72
73
|
"evals/fixtures/i3-debugging-and-error-recovery/time-pressure.md",
|
|
73
74
|
"evals/fixtures/i3-deprecation-and-migration/api-inventory.md",
|
|
74
75
|
"evals/fixtures/i3-documentation-and-adrs/decision-context.md",
|
|
76
|
+
"evals/fixtures/i3-documentation-and-adrs/prose-review/README.md",
|
|
77
|
+
"evals/fixtures/i3-documentation-and-adrs/prose-review/queue.js",
|
|
75
78
|
"evals/fixtures/i3-doubt-driven-development/migration-plan.md",
|
|
76
79
|
"evals/fixtures/i3-frontend-ui-engineering/Button.tsx",
|
|
77
80
|
"evals/fixtures/i3-frontend-ui-engineering/design-system.md",
|
|
@@ -97,6 +100,7 @@
|
|
|
97
100
|
"evals/fixtures/i3-test-driven-development/package.json",
|
|
98
101
|
"evals/fixtures/i3-test-driven-development/src/split.js",
|
|
99
102
|
"evals/fixtures/i3-test-driven-development/test/split.test.js",
|
|
103
|
+
"evals/fixtures/i3-ui-prototype/business-brief.md",
|
|
100
104
|
"evals/fixtures/i3-using-agent-skills/incident.md",
|
|
101
105
|
"evals/fixtures/incremental-implementation-pressure/draft-export.js",
|
|
102
106
|
"evals/fixtures/incremental-implementation-pressure/scenario.md",
|
|
@@ -113,6 +117,11 @@
|
|
|
113
117
|
"evals/plugin/code-review-stays-quiet/graders/not-fired.md",
|
|
114
118
|
"evals/plugin/code-review-stays-quiet/graders/tdd-fired.md",
|
|
115
119
|
"evals/plugin/code-review-stays-quiet/prompt.md",
|
|
120
|
+
"evals/plugin/tdd-fires-on-pasted-bug/graders/failing-test-first.md",
|
|
121
|
+
"evals/plugin/tdd-fires-on-pasted-bug/graders/skill-fired.md",
|
|
122
|
+
"evals/plugin/tdd-fires-on-pasted-bug/prompt.md",
|
|
123
|
+
"evals/plugin/tdd-stays-quiet-on-debug/graders/not-fired.md",
|
|
124
|
+
"evals/plugin/tdd-stays-quiet-on-debug/prompt.md",
|
|
116
125
|
"evals/skill-impact.md",
|
|
117
126
|
"evals/zh-CN/cases/i3-api-and-interface-design.json",
|
|
118
127
|
"evals/zh-CN/cases/i3-browser-testing-with-devtools.json",
|
|
@@ -138,6 +147,7 @@
|
|
|
138
147
|
"evals/zh-CN/cases/i3-source-driven-development.json",
|
|
139
148
|
"evals/zh-CN/cases/i3-spec-driven-development.json",
|
|
140
149
|
"evals/zh-CN/cases/i3-test-driven-development.json",
|
|
150
|
+
"evals/zh-CN/cases/i3-ui-prototype.json",
|
|
141
151
|
"evals/zh-CN/cases/i3-using-agent-skills.json",
|
|
142
152
|
"docs/adoption-guide.md",
|
|
143
153
|
"docs/advanced-per-agent-configuration.md",
|
|
@@ -158,12 +168,15 @@
|
|
|
158
168
|
"plugin.json",
|
|
159
169
|
"README.md",
|
|
160
170
|
"LICENSE",
|
|
171
|
+
"scripts/enterprise-template-test.js",
|
|
161
172
|
"scripts/floor-guard-reference-test.js",
|
|
162
173
|
"scripts/lib/skill-lint-test.js",
|
|
163
174
|
"scripts/lib/skill-lint.js",
|
|
164
175
|
"scripts/run-evals-test.js",
|
|
165
176
|
"scripts/run-evals.js",
|
|
166
177
|
"scripts/run-regressions.js",
|
|
178
|
+
"scripts/template-adapter-test.js",
|
|
179
|
+
"scripts/ui-prototype-test.js",
|
|
167
180
|
"scripts/validate-artifact-paths-test.js",
|
|
168
181
|
"scripts/validate-artifact-paths.js",
|
|
169
182
|
"scripts/validate-commands-test.js",
|
|
@@ -227,6 +240,7 @@
|
|
|
227
240
|
"evals/cases/i3-source-driven-development.json",
|
|
228
241
|
"evals/cases/i3-spec-driven-development.json",
|
|
229
242
|
"evals/cases/i3-test-driven-development.json",
|
|
243
|
+
"evals/cases/i3-ui-prototype.json",
|
|
230
244
|
"evals/cases/i3-using-agent-skills.json",
|
|
231
245
|
"evals/fixtures/i3-api-and-interface-design/service-brief.md",
|
|
232
246
|
"evals/fixtures/i3-browser-testing-with-devtools/README.md",
|
|
@@ -244,6 +258,8 @@
|
|
|
244
258
|
"evals/fixtures/i3-debugging-and-error-recovery/time-pressure.md",
|
|
245
259
|
"evals/fixtures/i3-deprecation-and-migration/api-inventory.md",
|
|
246
260
|
"evals/fixtures/i3-documentation-and-adrs/decision-context.md",
|
|
261
|
+
"evals/fixtures/i3-documentation-and-adrs/prose-review/README.md",
|
|
262
|
+
"evals/fixtures/i3-documentation-and-adrs/prose-review/queue.js",
|
|
247
263
|
"evals/fixtures/i3-doubt-driven-development/migration-plan.md",
|
|
248
264
|
"evals/fixtures/i3-frontend-ui-engineering/Button.tsx",
|
|
249
265
|
"evals/fixtures/i3-frontend-ui-engineering/design-system.md",
|
|
@@ -269,6 +285,7 @@
|
|
|
269
285
|
"evals/fixtures/i3-test-driven-development/package.json",
|
|
270
286
|
"evals/fixtures/i3-test-driven-development/src/split.js",
|
|
271
287
|
"evals/fixtures/i3-test-driven-development/test/split.test.js",
|
|
288
|
+
"evals/fixtures/i3-ui-prototype/business-brief.md",
|
|
272
289
|
"evals/fixtures/i3-using-agent-skills/incident.md",
|
|
273
290
|
"evals/fixtures/incremental-implementation-pressure/draft-export.js",
|
|
274
291
|
"evals/fixtures/incremental-implementation-pressure/scenario.md",
|
|
@@ -285,6 +302,11 @@
|
|
|
285
302
|
"evals/plugin/code-review-stays-quiet/graders/not-fired.md",
|
|
286
303
|
"evals/plugin/code-review-stays-quiet/graders/tdd-fired.md",
|
|
287
304
|
"evals/plugin/code-review-stays-quiet/prompt.md",
|
|
305
|
+
"evals/plugin/tdd-fires-on-pasted-bug/graders/failing-test-first.md",
|
|
306
|
+
"evals/plugin/tdd-fires-on-pasted-bug/graders/skill-fired.md",
|
|
307
|
+
"evals/plugin/tdd-fires-on-pasted-bug/prompt.md",
|
|
308
|
+
"evals/plugin/tdd-stays-quiet-on-debug/graders/not-fired.md",
|
|
309
|
+
"evals/plugin/tdd-stays-quiet-on-debug/prompt.md",
|
|
288
310
|
"evals/skill-impact.md",
|
|
289
311
|
"evals/zh-CN/cases/i3-api-and-interface-design.json",
|
|
290
312
|
"evals/zh-CN/cases/i3-browser-testing-with-devtools.json",
|
|
@@ -310,6 +332,7 @@
|
|
|
310
332
|
"evals/zh-CN/cases/i3-source-driven-development.json",
|
|
311
333
|
"evals/zh-CN/cases/i3-spec-driven-development.json",
|
|
312
334
|
"evals/zh-CN/cases/i3-test-driven-development.json",
|
|
335
|
+
"evals/zh-CN/cases/i3-ui-prototype.json",
|
|
313
336
|
"evals/zh-CN/cases/i3-using-agent-skills.json",
|
|
314
337
|
"docs/adoption-guide.md",
|
|
315
338
|
"docs/advanced-per-agent-configuration.md",
|
|
@@ -331,12 +354,15 @@
|
|
|
331
354
|
"package.json",
|
|
332
355
|
"README.md",
|
|
333
356
|
"LICENSE",
|
|
357
|
+
"scripts/enterprise-template-test.js",
|
|
334
358
|
"scripts/floor-guard-reference-test.js",
|
|
335
359
|
"scripts/lib/skill-lint-test.js",
|
|
336
360
|
"scripts/lib/skill-lint.js",
|
|
337
361
|
"scripts/run-evals-test.js",
|
|
338
362
|
"scripts/run-evals.js",
|
|
339
363
|
"scripts/run-regressions.js",
|
|
364
|
+
"scripts/template-adapter-test.js",
|
|
365
|
+
"scripts/ui-prototype-test.js",
|
|
340
366
|
"scripts/validate-artifact-paths-test.js",
|
|
341
367
|
"scripts/validate-artifact-paths.js",
|
|
342
368
|
"scripts/validate-commands-test.js",
|
|
@@ -348,7 +374,7 @@
|
|
|
348
374
|
"scripts/validate-versions.js"
|
|
349
375
|
]
|
|
350
376
|
},
|
|
351
|
-
"version": "2.
|
|
377
|
+
"version": "2.3.0",
|
|
352
378
|
"repository": {
|
|
353
379
|
"type": "git",
|
|
354
380
|
"url": "https://github.com/49780522/i3-composer-agent.git"
|
package/plugin.json
CHANGED
|
@@ -209,14 +209,16 @@ npx vite-bundle-visualizer
|
|
|
209
209
|
|
|
210
210
|
# Check bundle size
|
|
211
211
|
npx bundlesize
|
|
212
|
+
```
|
|
212
213
|
|
|
213
|
-
|
|
214
|
+
```javascript
|
|
215
|
+
// Web Vitals in code
|
|
214
216
|
import { onLCP, onINP, onCLS } from 'web-vitals';
|
|
215
217
|
onLCP(console.log);
|
|
216
218
|
onINP(console.log);
|
|
217
219
|
onCLS(console.log);
|
|
218
220
|
|
|
219
|
-
|
|
221
|
+
// INP with interaction-level detail (attribution build)
|
|
220
222
|
import { onINP } from 'web-vitals/attribution';
|
|
221
223
|
onINP(({ value, attribution }) => {
|
|
222
224
|
const { interactionTarget, inputDelay, processingDuration, presentationDelay } = attribution;
|