@zmice/zc 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -126
- package/dist/adapters/codex.d.ts +0 -0
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +4 -2
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/index.d.ts +0 -0
- package/dist/adapters/index.d.ts.map +0 -0
- package/dist/adapters/index.js +0 -0
- package/dist/adapters/index.js.map +0 -0
- package/dist/adapters/qwen-code.d.ts +0 -0
- package/dist/adapters/qwen-code.d.ts.map +1 -1
- package/dist/adapters/qwen-code.js +7 -5
- package/dist/adapters/qwen-code.js.map +1 -1
- package/dist/adapters/types.d.ts +0 -0
- package/dist/adapters/types.d.ts.map +0 -0
- package/dist/adapters/types.js +0 -0
- package/dist/adapters/types.js.map +0 -0
- package/dist/cli/__tests__/i18n.test.d.ts +2 -0
- package/dist/cli/__tests__/i18n.test.d.ts.map +1 -0
- package/dist/cli/__tests__/i18n.test.js +45 -0
- package/dist/cli/__tests__/i18n.test.js.map +1 -0
- package/dist/cli/__tests__/platform.test.d.ts +2 -0
- package/dist/cli/__tests__/platform.test.d.ts.map +1 -0
- package/dist/cli/__tests__/platform.test.js +483 -0
- package/dist/cli/__tests__/platform.test.js.map +1 -0
- package/dist/cli/__tests__/surface.test.d.ts +2 -0
- package/dist/cli/__tests__/surface.test.d.ts.map +1 -0
- package/dist/cli/__tests__/surface.test.js +27 -0
- package/dist/cli/__tests__/surface.test.js.map +1 -0
- package/dist/cli/__tests__/toolkit.test.d.ts +2 -0
- package/dist/cli/__tests__/toolkit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/toolkit.test.js +72 -0
- package/dist/cli/__tests__/toolkit.test.js.map +1 -0
- package/dist/cli/__tests__/upstream.test.d.ts +2 -0
- package/dist/cli/__tests__/upstream.test.d.ts.map +1 -0
- package/dist/cli/__tests__/upstream.test.js +163 -0
- package/dist/cli/__tests__/upstream.test.js.map +1 -0
- package/dist/cli/doctor.d.ts +0 -0
- package/dist/cli/doctor.d.ts.map +0 -0
- package/dist/cli/doctor.js +21 -21
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +3 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +45 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/msg.d.ts +0 -0
- package/dist/cli/msg.d.ts.map +1 -1
- package/dist/cli/msg.js +73 -5
- package/dist/cli/msg.js.map +1 -1
- package/dist/cli/platform.d.ts +32 -0
- package/dist/cli/platform.d.ts.map +1 -0
- package/dist/cli/platform.js +635 -0
- package/dist/cli/platform.js.map +1 -0
- package/dist/cli/run.d.ts +0 -0
- package/dist/cli/run.d.ts.map +0 -0
- package/dist/cli/run.js +7 -7
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/setup.d.ts +0 -0
- package/dist/cli/setup.d.ts.map +0 -0
- package/dist/cli/setup.js +7 -7
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/task.d.ts +0 -0
- package/dist/cli/task.d.ts.map +1 -1
- package/dist/cli/task.js +108 -8
- package/dist/cli/task.js.map +1 -1
- package/dist/cli/team.d.ts +12 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +82 -39
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/toolkit.d.ts +3 -0
- package/dist/cli/toolkit.d.ts.map +1 -0
- package/dist/cli/toolkit.js +160 -0
- package/dist/cli/toolkit.js.map +1 -0
- package/dist/cli/upstream.d.ts +19 -0
- package/dist/cli/upstream.d.ts.map +1 -0
- package/dist/cli/upstream.js +705 -0
- package/dist/cli/upstream.js.map +1 -0
- package/dist/node_modules/@zmice/platform-core/dist/index.d.ts +72 -0
- package/dist/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -0
- package/dist/node_modules/@zmice/platform-core/dist/index.js +105 -0
- package/dist/node_modules/@zmice/platform-core/dist/index.js.map +1 -0
- package/dist/node_modules/@zmice/platform-core/dist/index.test.d.ts +2 -0
- package/dist/node_modules/@zmice/platform-core/dist/index.test.d.ts.map +1 -0
- package/dist/node_modules/@zmice/platform-core/dist/index.test.js +104 -0
- package/dist/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -0
- package/dist/node_modules/@zmice/platform-core/package.json +34 -0
- package/dist/platform-state/index.d.ts +4 -0
- package/dist/platform-state/index.d.ts.map +1 -0
- package/dist/platform-state/index.js +3 -0
- package/dist/platform-state/index.js.map +1 -0
- package/dist/platform-state/receipt.d.ts +11 -0
- package/dist/platform-state/receipt.d.ts.map +1 -0
- package/dist/platform-state/receipt.js +27 -0
- package/dist/platform-state/receipt.js.map +1 -0
- package/dist/platform-state/status.d.ts +3 -0
- package/dist/platform-state/status.d.ts.map +1 -0
- package/dist/platform-state/status.js +82 -0
- package/dist/platform-state/status.js.map +1 -0
- package/dist/platform-state/status.test.d.ts +2 -0
- package/dist/platform-state/status.test.d.ts.map +1 -0
- package/dist/platform-state/status.test.js +120 -0
- package/dist/platform-state/status.test.js.map +1 -0
- package/dist/platform-state/types.d.ts +58 -0
- package/dist/platform-state/types.d.ts.map +1 -0
- package/dist/platform-state/types.js +2 -0
- package/dist/platform-state/types.js.map +1 -0
- package/dist/runtime/__tests__/logger.test.d.ts +2 -0
- package/dist/runtime/__tests__/logger.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/logger.test.js +11 -0
- package/dist/runtime/__tests__/logger.test.js.map +1 -0
- package/dist/runtime/__tests__/session-manager.test.d.ts +2 -0
- package/dist/runtime/__tests__/session-manager.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/session-manager.test.js +11 -0
- package/dist/runtime/__tests__/session-manager.test.js.map +1 -0
- package/dist/runtime/__tests__/worktree-manager.test.d.ts +2 -0
- package/dist/runtime/__tests__/worktree-manager.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/worktree-manager.test.js +11 -0
- package/dist/runtime/__tests__/worktree-manager.test.js.map +1 -0
- package/dist/runtime/logger.d.ts +5 -1
- package/dist/runtime/logger.d.ts.map +1 -1
- package/dist/runtime/logger.js +11 -1
- package/dist/runtime/logger.js.map +1 -1
- package/dist/runtime/session-manager.d.ts +0 -0
- package/dist/runtime/session-manager.d.ts.map +0 -0
- package/dist/runtime/session-manager.js +0 -0
- package/dist/runtime/session-manager.js.map +0 -0
- package/dist/runtime/state.d.ts +2 -8
- package/dist/runtime/state.d.ts.map +1 -1
- package/dist/runtime/state.js +7 -15
- package/dist/runtime/state.js.map +1 -1
- package/dist/runtime/worktree-manager.d.ts +5 -26
- package/dist/runtime/worktree-manager.d.ts.map +1 -1
- package/dist/runtime/worktree-manager.js +34 -98
- package/dist/runtime/worktree-manager.js.map +1 -1
- package/dist/team/__tests__/mailbox.test.d.ts +2 -0
- package/dist/team/__tests__/mailbox.test.d.ts.map +1 -0
- package/dist/team/__tests__/mailbox.test.js +22 -0
- package/dist/team/__tests__/mailbox.test.js.map +1 -0
- package/dist/team/__tests__/orchestrator.test.d.ts +2 -0
- package/dist/team/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/team/__tests__/orchestrator.test.js +13 -0
- package/dist/team/__tests__/orchestrator.test.js.map +1 -0
- package/dist/team/__tests__/task-queue.test.d.ts +2 -0
- package/dist/team/__tests__/task-queue.test.d.ts.map +1 -0
- package/dist/team/__tests__/task-queue.test.js +28 -0
- package/dist/team/__tests__/task-queue.test.js.map +1 -0
- package/dist/team/__tests__/worker-manager.test.d.ts +2 -0
- package/dist/team/__tests__/worker-manager.test.d.ts.map +1 -0
- package/dist/team/__tests__/worker-manager.test.js +13 -0
- package/dist/team/__tests__/worker-manager.test.js.map +1 -0
- package/dist/team/mailbox.d.ts +12 -10
- package/dist/team/mailbox.d.ts.map +1 -1
- package/dist/team/mailbox.js +40 -27
- package/dist/team/mailbox.js.map +1 -1
- package/dist/team/orchestrator.d.ts +1 -6
- package/dist/team/orchestrator.d.ts.map +1 -1
- package/dist/team/orchestrator.js +27 -67
- package/dist/team/orchestrator.js.map +1 -1
- package/dist/team/task-queue.d.ts +18 -17
- package/dist/team/task-queue.d.ts.map +1 -1
- package/dist/team/task-queue.js +68 -71
- package/dist/team/task-queue.js.map +1 -1
- package/dist/team/worker-manager.d.ts +13 -36
- package/dist/team/worker-manager.d.ts.map +1 -1
- package/dist/team/worker-manager.js +34 -129
- package/dist/team/worker-manager.js.map +1 -1
- package/dist/utils/config.d.ts +15 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +39 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/install-target.d.ts +23 -0
- package/dist/utils/install-target.d.ts.map +1 -0
- package/dist/utils/install-target.js +89 -0
- package/dist/utils/install-target.js.map +1 -0
- package/dist/utils/install-target.test.d.ts +2 -0
- package/dist/utils/install-target.test.d.ts.map +1 -0
- package/dist/utils/install-target.test.js +71 -0
- package/dist/utils/install-target.test.js.map +1 -0
- package/dist/utils/platform-install-receipt.d.ts +11 -0
- package/dist/utils/platform-install-receipt.d.ts.map +1 -0
- package/dist/utils/platform-install-receipt.js +62 -0
- package/dist/utils/platform-install-receipt.js.map +1 -0
- package/dist/utils/platform-install-receipt.test.d.ts +2 -0
- package/dist/utils/platform-install-receipt.test.d.ts.map +1 -0
- package/dist/utils/platform-install-receipt.test.js +74 -0
- package/dist/utils/platform-install-receipt.test.js.map +1 -0
- package/dist/utils/platform.d.ts +0 -0
- package/dist/utils/platform.d.ts.map +0 -0
- package/dist/utils/platform.js +0 -0
- package/dist/utils/platform.js.map +0 -0
- package/dist/utils/skill-loader.d.ts +0 -9
- package/dist/utils/skill-loader.d.ts.map +1 -1
- package/dist/utils/skill-loader.js +19 -26
- package/dist/utils/skill-loader.js.map +1 -1
- package/dist/utils/workspace.d.ts +28 -0
- package/dist/utils/workspace.d.ts.map +1 -0
- package/dist/utils/workspace.js +103 -0
- package/dist/utils/workspace.js.map +1 -0
- package/dist/utils/workspace.test.d.ts +2 -0
- package/dist/utils/workspace.test.d.ts.map +1 -0
- package/dist/utils/workspace.test.js +50 -0
- package/dist/utils/workspace.test.js.map +1 -0
- package/package.json +48 -36
- package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts +72 -0
- package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -0
- package/vendor/node_modules/@zmice/platform-core/dist/index.js +105 -0
- package/vendor/node_modules/@zmice/platform-core/dist/index.js.map +1 -0
- package/vendor/node_modules/@zmice/platform-core/dist/index.test.d.ts +2 -0
- package/vendor/node_modules/@zmice/platform-core/dist/index.test.d.ts.map +1 -0
- package/vendor/node_modules/@zmice/platform-core/dist/index.test.js +104 -0
- package/vendor/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -0
- package/vendor/node_modules/@zmice/platform-core/package.json +34 -0
- package/vendor/packages/platform-codex/dist/generate.d.ts +2 -0
- package/vendor/packages/platform-codex/dist/generate.d.ts.map +1 -0
- package/vendor/packages/platform-codex/dist/generate.js +2 -0
- package/vendor/packages/platform-codex/dist/generate.js.map +1 -0
- package/vendor/packages/platform-codex/dist/index.d.ts +15 -0
- package/vendor/packages/platform-codex/dist/index.d.ts.map +1 -0
- package/vendor/packages/platform-codex/dist/index.js +46 -0
- package/vendor/packages/platform-codex/dist/index.js.map +1 -0
- package/vendor/packages/platform-codex/dist/index.test.d.ts +2 -0
- package/vendor/packages/platform-codex/dist/index.test.d.ts.map +1 -0
- package/vendor/packages/platform-codex/dist/index.test.js +38 -0
- package/vendor/packages/platform-codex/dist/index.test.js.map +1 -0
- package/vendor/packages/platform-codex/dist/install.d.ts +2 -0
- package/vendor/packages/platform-codex/dist/install.d.ts.map +1 -0
- package/vendor/packages/platform-codex/dist/install.js +2 -0
- package/vendor/packages/platform-codex/dist/install.js.map +1 -0
- package/vendor/packages/platform-codex/package.json +46 -0
- package/vendor/packages/platform-codex/templates/AGENTS.md +7 -0
- package/vendor/packages/platform-qoder/dist/generate.d.ts +2 -0
- package/vendor/packages/platform-qoder/dist/generate.d.ts.map +1 -0
- package/vendor/packages/platform-qoder/dist/generate.js +2 -0
- package/vendor/packages/platform-qoder/dist/generate.js.map +1 -0
- package/vendor/packages/platform-qoder/dist/index.d.ts +15 -0
- package/vendor/packages/platform-qoder/dist/index.d.ts.map +1 -0
- package/vendor/packages/platform-qoder/dist/index.js +46 -0
- package/vendor/packages/platform-qoder/dist/index.js.map +1 -0
- package/vendor/packages/platform-qoder/dist/index.test.d.ts +2 -0
- package/vendor/packages/platform-qoder/dist/index.test.d.ts.map +1 -0
- package/vendor/packages/platform-qoder/dist/index.test.js +38 -0
- package/vendor/packages/platform-qoder/dist/index.test.js.map +1 -0
- package/vendor/packages/platform-qoder/dist/install.d.ts +2 -0
- package/vendor/packages/platform-qoder/dist/install.d.ts.map +1 -0
- package/vendor/packages/platform-qoder/dist/install.js +2 -0
- package/vendor/packages/platform-qoder/dist/install.js.map +1 -0
- package/vendor/packages/platform-qoder/package.json +46 -0
- package/vendor/packages/platform-qoder/templates/instructions.md +7 -0
- package/vendor/packages/platform-qwen/dist/generate.d.ts +2 -0
- package/vendor/packages/platform-qwen/dist/generate.d.ts.map +1 -0
- package/vendor/packages/platform-qwen/dist/generate.js +2 -0
- package/vendor/packages/platform-qwen/dist/generate.js.map +1 -0
- package/vendor/packages/platform-qwen/dist/index.d.ts +16 -0
- package/vendor/packages/platform-qwen/dist/index.d.ts.map +1 -0
- package/vendor/packages/platform-qwen/dist/index.js +60 -0
- package/vendor/packages/platform-qwen/dist/index.js.map +1 -0
- package/vendor/packages/platform-qwen/dist/index.test.d.ts +2 -0
- package/vendor/packages/platform-qwen/dist/index.test.d.ts.map +1 -0
- package/vendor/packages/platform-qwen/dist/index.test.js +46 -0
- package/vendor/packages/platform-qwen/dist/index.test.js.map +1 -0
- package/vendor/packages/platform-qwen/dist/install.d.ts +2 -0
- package/vendor/packages/platform-qwen/dist/install.d.ts.map +1 -0
- package/vendor/packages/platform-qwen/dist/install.js +2 -0
- package/vendor/packages/platform-qwen/dist/install.js.map +1 -0
- package/vendor/packages/platform-qwen/package.json +46 -0
- package/vendor/packages/platform-qwen/templates/QWEN.md +7 -0
- package/vendor/packages/platform-qwen/templates/qwen-extension.json +7 -0
- package/vendor/packages/toolkit/dist/content-lint.test.d.ts +2 -0
- package/vendor/packages/toolkit/dist/content-lint.test.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/content-lint.test.js +252 -0
- package/vendor/packages/toolkit/dist/content-lint.test.js.map +1 -0
- package/vendor/packages/toolkit/dist/governance/index.d.ts +2 -0
- package/vendor/packages/toolkit/dist/governance/index.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/governance/index.js +2 -0
- package/vendor/packages/toolkit/dist/governance/index.js.map +1 -0
- package/vendor/packages/toolkit/dist/governance/upstreams.d.ts +6 -0
- package/vendor/packages/toolkit/dist/governance/upstreams.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/governance/upstreams.js +31 -0
- package/vendor/packages/toolkit/dist/governance/upstreams.js.map +1 -0
- package/vendor/packages/toolkit/dist/governance/upstreams.test.d.ts +2 -0
- package/vendor/packages/toolkit/dist/governance/upstreams.test.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/governance/upstreams.test.js +23 -0
- package/vendor/packages/toolkit/dist/governance/upstreams.test.js.map +1 -0
- package/vendor/packages/toolkit/dist/index.d.ts +8 -0
- package/vendor/packages/toolkit/dist/index.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/index.js +8 -0
- package/vendor/packages/toolkit/dist/index.js.map +1 -0
- package/vendor/packages/toolkit/dist/lint/content-lint.d.ts +21 -0
- package/vendor/packages/toolkit/dist/lint/content-lint.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/lint/content-lint.js +250 -0
- package/vendor/packages/toolkit/dist/lint/content-lint.js.map +1 -0
- package/vendor/packages/toolkit/dist/lint/index.d.ts +2 -0
- package/vendor/packages/toolkit/dist/lint/index.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/lint/index.js +2 -0
- package/vendor/packages/toolkit/dist/lint/index.js.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/asset-unit.d.ts +4 -0
- package/vendor/packages/toolkit/dist/loaders/asset-unit.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/asset-unit.js +95 -0
- package/vendor/packages/toolkit/dist/loaders/asset-unit.js.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/content-tree.d.ts +2 -0
- package/vendor/packages/toolkit/dist/loaders/content-tree.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/content-tree.js +2 -0
- package/vendor/packages/toolkit/dist/loaders/content-tree.js.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/fs.d.ts +6 -0
- package/vendor/packages/toolkit/dist/loaders/fs.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/fs.js +19 -0
- package/vendor/packages/toolkit/dist/loaders/fs.js.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/index.d.ts +4 -0
- package/vendor/packages/toolkit/dist/loaders/index.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/index.js +4 -0
- package/vendor/packages/toolkit/dist/loaders/index.js.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/simple-yaml.d.ts +2 -0
- package/vendor/packages/toolkit/dist/loaders/simple-yaml.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/loaders/simple-yaml.js +125 -0
- package/vendor/packages/toolkit/dist/loaders/simple-yaml.js.map +1 -0
- package/vendor/packages/toolkit/dist/loaders.test.d.ts +2 -0
- package/vendor/packages/toolkit/dist/loaders.test.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/loaders.test.js +84 -0
- package/vendor/packages/toolkit/dist/loaders.test.js.map +1 -0
- package/vendor/packages/toolkit/dist/manifests/index.d.ts +2 -0
- package/vendor/packages/toolkit/dist/manifests/index.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/manifests/index.js +2 -0
- package/vendor/packages/toolkit/dist/manifests/index.js.map +1 -0
- package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.d.ts +7 -0
- package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.js +72 -0
- package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.js.map +1 -0
- package/vendor/packages/toolkit/dist/manifests.test.d.ts +2 -0
- package/vendor/packages/toolkit/dist/manifests.test.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/manifests.test.js +75 -0
- package/vendor/packages/toolkit/dist/manifests.test.js.map +1 -0
- package/vendor/packages/toolkit/dist/query/index.d.ts +2 -0
- package/vendor/packages/toolkit/dist/query/index.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/query/index.js +2 -0
- package/vendor/packages/toolkit/dist/query/index.js.map +1 -0
- package/vendor/packages/toolkit/dist/query/toolkit-query.d.ts +10 -0
- package/vendor/packages/toolkit/dist/query/toolkit-query.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/query/toolkit-query.js +49 -0
- package/vendor/packages/toolkit/dist/query/toolkit-query.js.map +1 -0
- package/vendor/packages/toolkit/dist/query.test.d.ts +2 -0
- package/vendor/packages/toolkit/dist/query.test.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/query.test.js +30 -0
- package/vendor/packages/toolkit/dist/query.test.js.map +1 -0
- package/vendor/packages/toolkit/dist/schema/asset-meta.d.ts +3 -0
- package/vendor/packages/toolkit/dist/schema/asset-meta.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/schema/asset-meta.js +130 -0
- package/vendor/packages/toolkit/dist/schema/asset-meta.js.map +1 -0
- package/vendor/packages/toolkit/dist/schema/asset-unit.d.ts +3 -0
- package/vendor/packages/toolkit/dist/schema/asset-unit.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/schema/asset-unit.js +22 -0
- package/vendor/packages/toolkit/dist/schema/asset-unit.js.map +1 -0
- package/vendor/packages/toolkit/dist/schema/index.d.ts +5 -0
- package/vendor/packages/toolkit/dist/schema/index.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/schema/index.js +5 -0
- package/vendor/packages/toolkit/dist/schema/index.js.map +1 -0
- package/vendor/packages/toolkit/dist/schema/kinds.d.ts +6 -0
- package/vendor/packages/toolkit/dist/schema/kinds.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/schema/kinds.js +24 -0
- package/vendor/packages/toolkit/dist/schema/kinds.js.map +1 -0
- package/vendor/packages/toolkit/dist/schema/manifest.d.ts +3 -0
- package/vendor/packages/toolkit/dist/schema/manifest.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/schema/manifest.js +30 -0
- package/vendor/packages/toolkit/dist/schema/manifest.js.map +1 -0
- package/vendor/packages/toolkit/dist/types.d.ts +80 -0
- package/vendor/packages/toolkit/dist/types.d.ts.map +1 -0
- package/vendor/packages/toolkit/dist/types.js +6 -0
- package/vendor/packages/toolkit/dist/types.js.map +1 -0
- package/vendor/packages/toolkit/package.json +35 -0
- package/vendor/packages/toolkit/src/content/agents/architect/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/agents/architect/body.md +34 -0
- package/vendor/packages/toolkit/src/content/agents/architect/meta.yaml +25 -0
- package/vendor/packages/toolkit/src/content/agents/backend-specialist/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/agents/backend-specialist/body.md +30 -0
- package/vendor/packages/toolkit/src/content/agents/backend-specialist/meta.yaml +24 -0
- package/vendor/packages/toolkit/src/content/agents/code-reviewer/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/agents/code-reviewer/body.md +31 -0
- package/vendor/packages/toolkit/src/content/agents/code-reviewer/meta.yaml +26 -0
- package/vendor/packages/toolkit/src/content/agents/frontend-specialist/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/agents/frontend-specialist/body.md +31 -0
- package/vendor/packages/toolkit/src/content/agents/frontend-specialist/meta.yaml +24 -0
- package/vendor/packages/toolkit/src/content/agents/performance-engineer/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/agents/performance-engineer/body.md +72 -0
- package/vendor/packages/toolkit/src/content/agents/performance-engineer/meta.yaml +24 -0
- package/vendor/packages/toolkit/src/content/agents/product-owner/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/agents/product-owner/body.md +32 -0
- package/vendor/packages/toolkit/src/content/agents/product-owner/meta.yaml +24 -0
- package/vendor/packages/toolkit/src/content/agents/security-auditor/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/agents/security-auditor/body.md +83 -0
- package/vendor/packages/toolkit/src/content/agents/security-auditor/meta.yaml +24 -0
- package/vendor/packages/toolkit/src/content/agents/test-engineer/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/agents/test-engineer/body.md +30 -0
- package/vendor/packages/toolkit/src/content/agents/test-engineer/meta.yaml +28 -0
- package/vendor/packages/toolkit/src/content/commands/api/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/api/body.md +24 -0
- package/vendor/packages/toolkit/src/content/commands/api/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/build/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/build/body.md +37 -0
- package/vendor/packages/toolkit/src/content/commands/build/meta.yaml +26 -0
- package/vendor/packages/toolkit/src/content/commands/careful/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/careful/body.md +18 -0
- package/vendor/packages/toolkit/src/content/commands/careful/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/commands/ci/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/ci/body.md +27 -0
- package/vendor/packages/toolkit/src/content/commands/ci/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/commit/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/commit/body.md +26 -0
- package/vendor/packages/toolkit/src/content/commands/commit/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/ctx-health/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/ctx-health/body.md +22 -0
- package/vendor/packages/toolkit/src/content/commands/ctx-health/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/debug/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/debug/body.md +24 -0
- package/vendor/packages/toolkit/src/content/commands/debug/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/doc/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/doc/body.md +23 -0
- package/vendor/packages/toolkit/src/content/commands/doc/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/freeze/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/freeze/body.md +17 -0
- package/vendor/packages/toolkit/src/content/commands/freeze/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/commands/guard/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/guard/body.md +17 -0
- package/vendor/packages/toolkit/src/content/commands/guard/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/commands/idea/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/idea/body.md +23 -0
- package/vendor/packages/toolkit/src/content/commands/idea/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/learn/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/learn/body.md +37 -0
- package/vendor/packages/toolkit/src/content/commands/learn/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/migrate/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/migrate/body.md +24 -0
- package/vendor/packages/toolkit/src/content/commands/migrate/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/commands/onboard/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/onboard/body.md +24 -0
- package/vendor/packages/toolkit/src/content/commands/onboard/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/perf/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/perf/body.md +23 -0
- package/vendor/packages/toolkit/src/content/commands/perf/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/plan-review/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/plan-review/body.md +28 -0
- package/vendor/packages/toolkit/src/content/commands/plan-review/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/commands/qa/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/qa/body.md +24 -0
- package/vendor/packages/toolkit/src/content/commands/qa/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/quality-review/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/quality-review/body.md +38 -0
- package/vendor/packages/toolkit/src/content/commands/quality-review/meta.yaml +22 -0
- package/vendor/packages/toolkit/src/content/commands/retro/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/retro/body.md +25 -0
- package/vendor/packages/toolkit/src/content/commands/retro/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/commands/sdd-tdd/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/sdd-tdd/body.md +39 -0
- package/vendor/packages/toolkit/src/content/commands/sdd-tdd/meta.yaml +23 -0
- package/vendor/packages/toolkit/src/content/commands/secure/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/secure/body.md +23 -0
- package/vendor/packages/toolkit/src/content/commands/secure/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/ship/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/ship/body.md +17 -0
- package/vendor/packages/toolkit/src/content/commands/ship/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/commands/simplify/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/simplify/body.md +24 -0
- package/vendor/packages/toolkit/src/content/commands/simplify/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/commands/spec/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/spec/body.md +32 -0
- package/vendor/packages/toolkit/src/content/commands/spec/meta.yaml +23 -0
- package/vendor/packages/toolkit/src/content/commands/task-plan/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/task-plan/body.md +32 -0
- package/vendor/packages/toolkit/src/content/commands/task-plan/meta.yaml +23 -0
- package/vendor/packages/toolkit/src/content/commands/ui/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/ui/body.md +24 -0
- package/vendor/packages/toolkit/src/content/commands/ui/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/commands/verify/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/commands/verify/body.md +32 -0
- package/vendor/packages/toolkit/src/content/commands/verify/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/body.md +289 -0
- package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/body.md +129 -0
- package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/meta.yaml +18 -0
- package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/body.md +155 -0
- package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/body.md +554 -0
- package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/body.md +417 -0
- package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/body.md +130 -0
- package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/code-simplification/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/code-simplification/body.md +326 -0
- package/vendor/packages/toolkit/src/content/skills/code-simplification/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/body.md +40 -0
- package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/skills/context-budget-audit/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/context-budget-audit/body.md +38 -0
- package/vendor/packages/toolkit/src/content/skills/context-budget-audit/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/skills/context-engineering/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/context-engineering/body.md +55 -0
- package/vendor/packages/toolkit/src/content/skills/context-engineering/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/skills/continuous-learning/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/continuous-learning/body.md +367 -0
- package/vendor/packages/toolkit/src/content/skills/continuous-learning/meta.yaml +18 -0
- package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/body.md +43 -0
- package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/body.md +201 -0
- package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/developer-experience-audit/body.md +49 -0
- package/vendor/packages/toolkit/src/content/skills/developer-experience-audit/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/body.md +61 -0
- package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/engineering-principles/body.md +54 -0
- package/vendor/packages/toolkit/src/content/skills/engineering-principles/meta.yaml +18 -0
- package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/body.md +324 -0
- package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/body.md +319 -0
- package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/idea-refine/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/idea-refine/body.md +173 -0
- package/vendor/packages/toolkit/src/content/skills/idea-refine/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/skills/incremental-implementation/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/incremental-implementation/body.md +43 -0
- package/vendor/packages/toolkit/src/content/skills/incremental-implementation/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/body.md +52 -0
- package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/meta.yaml +18 -0
- package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/body.md +351 -0
- package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/skills/performance-optimization/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/performance-optimization/body.md +345 -0
- package/vendor/packages/toolkit/src/content/skills/performance-optimization/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/body.md +48 -0
- package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/skills/release-documentation-sync/body.md +54 -0
- package/vendor/packages/toolkit/src/content/skills/release-documentation-sync/meta.yaml +15 -0
- package/vendor/packages/toolkit/src/content/skills/review-response-and-resolution/body.md +61 -0
- package/vendor/packages/toolkit/src/content/skills/review-response-and-resolution/meta.yaml +18 -0
- package/vendor/packages/toolkit/src/content/skills/safety-guardrails/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/safety-guardrails/body.md +43 -0
- package/vendor/packages/toolkit/src/content/skills/safety-guardrails/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/body.md +371 -0
- package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/meta.yaml +25 -0
- package/vendor/packages/toolkit/src/content/skills/security-and-hardening/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/security-and-hardening/body.md +344 -0
- package/vendor/packages/toolkit/src/content/skills/security-and-hardening/meta.yaml +21 -0
- package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/body.md +55 -0
- package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/meta.yaml +22 -0
- package/vendor/packages/toolkit/src/content/skills/source-driven-development/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/source-driven-development/body.md +186 -0
- package/vendor/packages/toolkit/src/content/skills/source-driven-development/meta.yaml +18 -0
- package/vendor/packages/toolkit/src/content/skills/spec-driven-development/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/spec-driven-development/body.md +49 -0
- package/vendor/packages/toolkit/src/content/skills/spec-driven-development/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/body.md +336 -0
- package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/meta.yaml +17 -0
- package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/body.md +228 -0
- package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/meta.yaml +19 -0
- package/vendor/packages/toolkit/src/content/skills/team-orchestration/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/team-orchestration/body.md +372 -0
- package/vendor/packages/toolkit/src/content/skills/team-orchestration/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/skills/test-driven-development/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/test-driven-development/body.md +374 -0
- package/vendor/packages/toolkit/src/content/skills/test-driven-development/meta.yaml +20 -0
- package/vendor/packages/toolkit/src/content/skills/using-agent-skills/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/using-agent-skills/body.md +169 -0
- package/vendor/packages/toolkit/src/content/skills/using-agent-skills/meta.yaml +23 -0
- package/vendor/packages/toolkit/src/content/skills/verification-before-completion/assets/.gitkeep +0 -0
- package/vendor/packages/toolkit/src/content/skills/verification-before-completion/body.md +68 -0
- package/vendor/packages/toolkit/src/content/skills/verification-before-completion/meta.yaml +20 -0
- package/vendor/packages/toolkit/templates/README.md +12 -0
- package/vendor/packages/toolkit/templates/asset-unit/assets/.gitkeep +1 -0
- package/vendor/packages/toolkit/templates/asset-unit/body.md +3 -0
- package/vendor/packages/toolkit/templates/asset-unit/meta.yaml +6 -0
- package/vendor/references/upstreams.yaml +89 -0
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
# Performance Optimization
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Measure before optimizing. Performance work without measurement is guessing — and guessing leads to premature optimization that adds complexity without improving what matters. Profile first, identify the actual bottleneck, fix it, measure again. Optimize only what measurements prove matters.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
- Performance requirements exist in the spec (load time budgets, response time SLAs)
|
|
10
|
+
- Users or monitoring report slow behavior
|
|
11
|
+
- Core Web Vitals scores are below thresholds
|
|
12
|
+
- You suspect a change introduced a regression
|
|
13
|
+
- Building features that handle large datasets or high traffic
|
|
14
|
+
|
|
15
|
+
**When NOT to use:** Don't optimize before you have evidence of a problem. Premature optimization adds complexity that costs more than the performance it gains.
|
|
16
|
+
|
|
17
|
+
## Core Web Vitals Targets
|
|
18
|
+
|
|
19
|
+
| Metric | Good | Needs Improvement | Poor |
|
|
20
|
+
|--------|------|-------------------|------|
|
|
21
|
+
| **LCP** (Largest Contentful Paint) | ≤ 2.5s | ≤ 4.0s | > 4.0s |
|
|
22
|
+
| **INP** (Interaction to Next Paint) | ≤ 200ms | ≤ 500ms | > 500ms |
|
|
23
|
+
| **CLS** (Cumulative Layout Shift) | ≤ 0.1 | ≤ 0.25 | > 0.25 |
|
|
24
|
+
|
|
25
|
+
## The Optimization Workflow
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
1. MEASURE → Establish baseline with real data
|
|
29
|
+
2. IDENTIFY → Find the actual bottleneck (not assumed)
|
|
30
|
+
3. FIX → Address the specific bottleneck
|
|
31
|
+
4. VERIFY → Measure again, confirm improvement
|
|
32
|
+
5. GUARD → Add monitoring or tests to prevent regression
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Step 1: Measure
|
|
36
|
+
|
|
37
|
+
Two complementary approaches — use both:
|
|
38
|
+
|
|
39
|
+
- **Synthetic (Lighthouse, DevTools Performance tab):** Controlled conditions, reproducible. Best for CI regression detection and isolating specific issues.
|
|
40
|
+
- **RUM (web-vitals library, CrUX):** Real user data in real conditions. Required to validate that a fix actually improved user experience.
|
|
41
|
+
|
|
42
|
+
**Frontend:**
|
|
43
|
+
```bash
|
|
44
|
+
# Synthetic: Lighthouse in Chrome DevTools (or CI)
|
|
45
|
+
# Chrome DevTools → Performance tab → Record
|
|
46
|
+
# Chrome DevTools MCP → Performance trace
|
|
47
|
+
|
|
48
|
+
# RUM: Web Vitals library in code
|
|
49
|
+
import { onLCP, onINP, onCLS } from 'web-vitals';
|
|
50
|
+
|
|
51
|
+
onLCP(console.log);
|
|
52
|
+
onINP(console.log);
|
|
53
|
+
onCLS(console.log);
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Backend:**
|
|
57
|
+
```bash
|
|
58
|
+
# Response time logging
|
|
59
|
+
# Application Performance Monitoring (APM)
|
|
60
|
+
# Database query logging with timing
|
|
61
|
+
|
|
62
|
+
# Simple timing
|
|
63
|
+
console.time('db-query');
|
|
64
|
+
const result = await db.query(...);
|
|
65
|
+
console.timeEnd('db-query');
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Where to Start Measuring
|
|
69
|
+
|
|
70
|
+
Use the symptom to decide what to measure first:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
What is slow?
|
|
74
|
+
├── First page load
|
|
75
|
+
│ ├── Large bundle? --> Measure bundle size, check code splitting
|
|
76
|
+
│ ├── Slow server response? --> Measure TTFB in DevTools Network waterfall
|
|
77
|
+
│ │ ├── DNS long? --> Add dns-prefetch / preconnect for known origins
|
|
78
|
+
│ │ ├── TCP/TLS long? --> Enable HTTP/2, check edge deployment, keep-alive
|
|
79
|
+
│ │ └── Waiting (server) long? --> Profile backend, check queries and caching
|
|
80
|
+
│ └── Render-blocking resources? --> Check network waterfall for CSS/JS blocking
|
|
81
|
+
├── Interaction feels sluggish
|
|
82
|
+
│ ├── UI freezes on click? --> Profile main thread, look for long tasks (>50ms)
|
|
83
|
+
│ ├── Form input lag? --> Check re-renders, controlled component overhead
|
|
84
|
+
│ └── Animation jank? --> Check layout thrashing, forced reflows
|
|
85
|
+
├── Page after navigation
|
|
86
|
+
│ ├── Data loading? --> Measure API response times, check for waterfalls
|
|
87
|
+
│ └── Client rendering? --> Profile component render time, check for N+1 fetches
|
|
88
|
+
└── Backend / API
|
|
89
|
+
├── Single endpoint slow? --> Profile database queries, check indexes
|
|
90
|
+
├── All endpoints slow? --> Check connection pool, memory, CPU
|
|
91
|
+
└── Intermittent slowness? --> Check for lock contention, GC pauses, external deps
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Step 2: Identify the Bottleneck
|
|
95
|
+
|
|
96
|
+
Common bottlenecks by category:
|
|
97
|
+
|
|
98
|
+
**Frontend:**
|
|
99
|
+
|
|
100
|
+
| Symptom | Likely Cause | Investigation |
|
|
101
|
+
|---------|-------------|---------------|
|
|
102
|
+
| Slow LCP | Large images, render-blocking resources, slow server | Check network waterfall, image sizes |
|
|
103
|
+
| High CLS | Images without dimensions, late-loading content, font shifts | Check layout shift attribution |
|
|
104
|
+
| Poor INP | Heavy JavaScript on main thread, large DOM updates | Check long tasks in Performance trace |
|
|
105
|
+
| Slow initial load | Large bundle, many network requests | Check bundle size, code splitting |
|
|
106
|
+
|
|
107
|
+
**Backend:**
|
|
108
|
+
|
|
109
|
+
| Symptom | Likely Cause | Investigation |
|
|
110
|
+
|---------|-------------|---------------|
|
|
111
|
+
| Slow API responses | N+1 queries, missing indexes, unoptimized queries | Check database query log |
|
|
112
|
+
| Memory growth | Leaked references, unbounded caches, large payloads | Heap snapshot analysis |
|
|
113
|
+
| CPU spikes | Synchronous heavy computation, regex backtracking | CPU profiling |
|
|
114
|
+
| High latency | Missing caching, redundant computation, network hops | Trace requests through the stack |
|
|
115
|
+
|
|
116
|
+
### Step 3: Fix Common Anti-Patterns
|
|
117
|
+
|
|
118
|
+
#### N+1 Queries (Backend)
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
// BAD: N+1 — one query per task for the owner
|
|
122
|
+
const tasks = await db.tasks.findMany();
|
|
123
|
+
for (const task of tasks) {
|
|
124
|
+
task.owner = await db.users.findUnique({ where: { id: task.ownerId } });
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// GOOD: Single query with join/include
|
|
128
|
+
const tasks = await db.tasks.findMany({
|
|
129
|
+
include: { owner: true },
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### Unbounded Data Fetching
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
// BAD: Fetching all records
|
|
137
|
+
const allTasks = await db.tasks.findMany();
|
|
138
|
+
|
|
139
|
+
// GOOD: Paginated with limits
|
|
140
|
+
const tasks = await db.tasks.findMany({
|
|
141
|
+
take: 20,
|
|
142
|
+
skip: (page - 1) * 20,
|
|
143
|
+
orderBy: { createdAt: 'desc' },
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
#### Missing Image Optimization (Frontend)
|
|
148
|
+
|
|
149
|
+
```html
|
|
150
|
+
<!-- BAD: No dimensions, no format optimization -->
|
|
151
|
+
<img src="/hero.jpg" />
|
|
152
|
+
|
|
153
|
+
<!-- GOOD: Hero / LCP image — art direction + resolution switching, high priority -->
|
|
154
|
+
<!--
|
|
155
|
+
Two techniques combined:
|
|
156
|
+
- Art direction (media): different crop/composition per breakpoint
|
|
157
|
+
- Resolution switching (srcset + sizes): right file size per screen density
|
|
158
|
+
-->
|
|
159
|
+
<picture>
|
|
160
|
+
<!-- Mobile: portrait crop (8:10) -->
|
|
161
|
+
<source
|
|
162
|
+
media="(max-width: 767px)"
|
|
163
|
+
srcset="/hero-mobile-400.avif 400w, /hero-mobile-800.avif 800w"
|
|
164
|
+
sizes="100vw"
|
|
165
|
+
width="800"
|
|
166
|
+
height="1000"
|
|
167
|
+
type="image/avif"
|
|
168
|
+
/>
|
|
169
|
+
<source
|
|
170
|
+
media="(max-width: 767px)"
|
|
171
|
+
srcset="/hero-mobile-400.webp 400w, /hero-mobile-800.webp 800w"
|
|
172
|
+
sizes="100vw"
|
|
173
|
+
width="800"
|
|
174
|
+
height="1000"
|
|
175
|
+
type="image/webp"
|
|
176
|
+
/>
|
|
177
|
+
<!-- Desktop: landscape crop (2:1) -->
|
|
178
|
+
<source
|
|
179
|
+
srcset="/hero-800.avif 800w, /hero-1200.avif 1200w, /hero-1600.avif 1600w"
|
|
180
|
+
sizes="(max-width: 1200px) 100vw, 1200px"
|
|
181
|
+
width="1200"
|
|
182
|
+
height="600"
|
|
183
|
+
type="image/avif"
|
|
184
|
+
/>
|
|
185
|
+
<source
|
|
186
|
+
srcset="/hero-800.webp 800w, /hero-1200.webp 1200w, /hero-1600.webp 1600w"
|
|
187
|
+
sizes="(max-width: 1200px) 100vw, 1200px"
|
|
188
|
+
width="1200"
|
|
189
|
+
height="600"
|
|
190
|
+
type="image/webp"
|
|
191
|
+
/>
|
|
192
|
+
<img
|
|
193
|
+
src="/hero-desktop.jpg"
|
|
194
|
+
width="1200"
|
|
195
|
+
height="600"
|
|
196
|
+
fetchpriority="high"
|
|
197
|
+
alt="Hero image description"
|
|
198
|
+
/>
|
|
199
|
+
</picture>
|
|
200
|
+
|
|
201
|
+
<!-- GOOD: Below-the-fold image — lazy loaded + async decoding -->
|
|
202
|
+
<img
|
|
203
|
+
src="/content.webp"
|
|
204
|
+
width="800"
|
|
205
|
+
height="400"
|
|
206
|
+
loading="lazy"
|
|
207
|
+
decoding="async"
|
|
208
|
+
alt="Content image description"
|
|
209
|
+
/>
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
#### Unnecessary Re-renders (React)
|
|
213
|
+
|
|
214
|
+
```tsx
|
|
215
|
+
// BAD: Creates new object on every render, causing children to re-render
|
|
216
|
+
function TaskList() {
|
|
217
|
+
return <TaskFilters options={{ sortBy: 'date', order: 'desc' }} />;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// GOOD: Stable reference
|
|
221
|
+
const DEFAULT_OPTIONS = { sortBy: 'date', order: 'desc' } as const;
|
|
222
|
+
function TaskList() {
|
|
223
|
+
return <TaskFilters options={DEFAULT_OPTIONS} />;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Use React.memo for expensive components
|
|
227
|
+
const TaskItem = React.memo(function TaskItem({ task }: Props) {
|
|
228
|
+
return <div>{/* expensive render */}</div>;
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
// Use useMemo for expensive computations
|
|
232
|
+
function TaskStats({ tasks }: Props) {
|
|
233
|
+
const stats = useMemo(() => calculateStats(tasks), [tasks]);
|
|
234
|
+
return <div>{stats.completed} / {stats.total}</div>;
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
#### Large Bundle Size
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
// Modern bundlers (Vite, webpack 5+) handle named imports with tree-shaking automatically,
|
|
242
|
+
// provided the dependency ships ESM and is marked `sideEffects: false` in package.json.
|
|
243
|
+
// Profile before changing import styles — the real gains come from splitting and lazy loading.
|
|
244
|
+
|
|
245
|
+
// GOOD: Dynamic import for heavy, rarely-used features
|
|
246
|
+
const ChartLibrary = lazy(() => import('./ChartLibrary'));
|
|
247
|
+
|
|
248
|
+
// GOOD: Route-level code splitting wrapped in Suspense
|
|
249
|
+
const SettingsPage = lazy(() => import('./pages/Settings'));
|
|
250
|
+
|
|
251
|
+
function App() {
|
|
252
|
+
return (
|
|
253
|
+
<Suspense fallback={<Spinner />}>
|
|
254
|
+
<SettingsPage />
|
|
255
|
+
</Suspense>
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
#### Missing Caching (Backend)
|
|
261
|
+
|
|
262
|
+
```typescript
|
|
263
|
+
// Cache frequently-read, rarely-changed data
|
|
264
|
+
const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
|
|
265
|
+
let cachedConfig: AppConfig | null = null;
|
|
266
|
+
let cacheExpiry = 0;
|
|
267
|
+
|
|
268
|
+
async function getAppConfig(): Promise<AppConfig> {
|
|
269
|
+
if (cachedConfig && Date.now() < cacheExpiry) {
|
|
270
|
+
return cachedConfig;
|
|
271
|
+
}
|
|
272
|
+
cachedConfig = await db.config.findFirst();
|
|
273
|
+
cacheExpiry = Date.now() + CACHE_TTL;
|
|
274
|
+
return cachedConfig;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// HTTP caching headers for static assets
|
|
278
|
+
app.use('/static', express.static('public', {
|
|
279
|
+
maxAge: '1y', // Cache for 1 year
|
|
280
|
+
immutable: true, // Never revalidate (use content hashing in filenames)
|
|
281
|
+
}));
|
|
282
|
+
|
|
283
|
+
// Cache-Control for API responses
|
|
284
|
+
res.set('Cache-Control', 'public, max-age=300'); // 5 minutes
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Performance Budget
|
|
288
|
+
|
|
289
|
+
Set budgets and enforce them:
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
JavaScript bundle: < 200KB gzipped (initial load)
|
|
293
|
+
CSS: < 50KB gzipped
|
|
294
|
+
Images: < 200KB per image (above the fold)
|
|
295
|
+
Fonts: < 100KB total
|
|
296
|
+
API response time: < 200ms (p95)
|
|
297
|
+
Time to Interactive: < 3.5s on 4G
|
|
298
|
+
Lighthouse Performance score: ≥ 90
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**Enforce in CI:**
|
|
302
|
+
```bash
|
|
303
|
+
# Bundle size check
|
|
304
|
+
npx bundlesize --config bundlesize.config.json
|
|
305
|
+
|
|
306
|
+
# Lighthouse CI
|
|
307
|
+
npx lhci autorun
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## See Also
|
|
311
|
+
|
|
312
|
+
For detailed performance checklists, optimization commands, and anti-pattern reference, see `references/performance-checklist.md`.
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
## Common Rationalizations
|
|
316
|
+
|
|
317
|
+
| Rationalization | Reality |
|
|
318
|
+
|---|---|
|
|
319
|
+
| "We'll optimize later" | Performance debt compounds. Fix obvious anti-patterns now, defer micro-optimizations. |
|
|
320
|
+
| "It's fast on my machine" | Your machine isn't the user's. Profile on representative hardware and networks. |
|
|
321
|
+
| "This optimization is obvious" | If you didn't measure, you don't know. Profile first. |
|
|
322
|
+
| "Users won't notice 100ms" | Research shows 100ms delays impact conversion rates. Users notice more than you think. |
|
|
323
|
+
| "The framework handles performance" | Frameworks prevent some issues but can't fix N+1 queries or oversized bundles. |
|
|
324
|
+
|
|
325
|
+
## Red Flags
|
|
326
|
+
|
|
327
|
+
- Optimization without profiling data to justify it
|
|
328
|
+
- N+1 query patterns in data fetching
|
|
329
|
+
- List endpoints without pagination
|
|
330
|
+
- Images without dimensions, lazy loading, or responsive sizes
|
|
331
|
+
- Bundle size growing without review
|
|
332
|
+
- No performance monitoring in production
|
|
333
|
+
- `React.memo` and `useMemo` everywhere (overusing is as bad as underusing)
|
|
334
|
+
|
|
335
|
+
## Verification
|
|
336
|
+
|
|
337
|
+
After any performance-related change:
|
|
338
|
+
|
|
339
|
+
- [ ] Before and after measurements exist (specific numbers)
|
|
340
|
+
- [ ] The specific bottleneck is identified and addressed
|
|
341
|
+
- [ ] Core Web Vitals are within "Good" thresholds
|
|
342
|
+
- [ ] Bundle size hasn't increased significantly
|
|
343
|
+
- [ ] No N+1 queries in new data fetching code
|
|
344
|
+
- [ ] Performance budget passes in CI (if configured)
|
|
345
|
+
- [ ] Existing tests still pass (optimization didn't break behavior)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
kind: skill
|
|
2
|
+
name: performance-optimization
|
|
3
|
+
title: 性能优化
|
|
4
|
+
description: 优化应用性能。适用于存在性能要求、怀疑出现回归,或需要改善 Core Web Vitals 与加载时间时;也适用于已经通过 profiling 找到瓶颈并需要定向修复的场景。
|
|
5
|
+
tier: recommended
|
|
6
|
+
audience: advanced
|
|
7
|
+
stability: stable
|
|
8
|
+
suggests:
|
|
9
|
+
- skill:verification-before-completion
|
|
10
|
+
platforms:
|
|
11
|
+
- qwen
|
|
12
|
+
- codex
|
|
13
|
+
- qoder
|
|
14
|
+
source:
|
|
15
|
+
upstream: agent-skills
|
|
16
|
+
strategy: adapted
|
|
17
|
+
origin_name: performance-optimization
|
|
18
|
+
origin_path: skills/performance-optimization/SKILL.md
|
|
19
|
+
origin_id: skill:performance-optimization
|
|
20
|
+
notes: 基于上游性能优化能力中文化整理。
|
package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/assets/.gitkeep
ADDED
|
File without changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 规划与任务拆解
|
|
2
|
+
|
|
3
|
+
## 何时使用
|
|
4
|
+
|
|
5
|
+
- 已有规格,需要拆成可执行单元
|
|
6
|
+
- 任务太大、太模糊或依赖顺序不明显
|
|
7
|
+
- 需要并行推进多个切片
|
|
8
|
+
- 需要向人类清楚表达范围、风险和检查点
|
|
9
|
+
|
|
10
|
+
不适用于单文件且边界显而易见的小改动。
|
|
11
|
+
|
|
12
|
+
## 输入前提
|
|
13
|
+
|
|
14
|
+
- 已有规格,或至少有清楚的问题定义
|
|
15
|
+
- 已读相关代码并识别主要约束
|
|
16
|
+
- 愿意在规划阶段保持只读,不边做边改
|
|
17
|
+
|
|
18
|
+
## 执行步骤
|
|
19
|
+
|
|
20
|
+
1. 进入只读分析模式,先看规格和现有代码
|
|
21
|
+
2. 识别依赖图,确定哪些必须先做
|
|
22
|
+
3. 优先做纵向切片,而不是按数据库、API、UI 横向分层
|
|
23
|
+
4. 为每个任务写清:
|
|
24
|
+
- 描述
|
|
25
|
+
- Acceptance criteria
|
|
26
|
+
- Verification
|
|
27
|
+
- Dependencies
|
|
28
|
+
- Files likely touched
|
|
29
|
+
5. 排出顺序,并设置阶段性检查点
|
|
30
|
+
|
|
31
|
+
## 成功标准
|
|
32
|
+
|
|
33
|
+
- 每个任务都能独立实现、测试和验证
|
|
34
|
+
- 任务粒度足够小,不会一次触碰过多文件
|
|
35
|
+
- 依赖顺序和可并行项是显式的
|
|
36
|
+
- 人类看完计划后能明确判断“方案对不对”
|
|
37
|
+
|
|
38
|
+
## 相关原则
|
|
39
|
+
|
|
40
|
+
- 计划服务实现,不是形式化文档
|
|
41
|
+
- 先控制复杂度,再讨论并行度
|
|
42
|
+
- 任务必须能验证,不能只写动作名
|
|
43
|
+
|
|
44
|
+
## 与其他技能的衔接
|
|
45
|
+
|
|
46
|
+
- 接在 `spec-driven-development` 之后
|
|
47
|
+
- 计划确认后交给 `incremental-implementation`
|
|
48
|
+
- 涉及方案争议时,可搭配 `multi-perspective-review`
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
kind: skill
|
|
2
|
+
name: planning-and-task-breakdown
|
|
3
|
+
title: 任务拆解
|
|
4
|
+
description: 将工作拆解为有序任务。适用于已经有规格或清晰需求、需要拆成可实现任务的场景;也适用于任务过大难以下手、需要估算范围或可以并行推进的情况。
|
|
5
|
+
tier: core
|
|
6
|
+
audience: default
|
|
7
|
+
stability: stable
|
|
8
|
+
suggests:
|
|
9
|
+
- skill:engineering-principles
|
|
10
|
+
platforms:
|
|
11
|
+
- qwen
|
|
12
|
+
- codex
|
|
13
|
+
- qoder
|
|
14
|
+
source:
|
|
15
|
+
upstream: agent-skills
|
|
16
|
+
strategy: adapted
|
|
17
|
+
origin_name: planning-and-task-breakdown
|
|
18
|
+
origin_path: skills/planning-and-task-breakdown/SKILL.md
|
|
19
|
+
origin_id: skill:planning-and-task-breakdown
|
|
20
|
+
notes: 基于上游 planning workflow,并增加上下文窗口与并行拆解约束
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# 发布后文档同步
|
|
2
|
+
|
|
3
|
+
## 何时使用
|
|
4
|
+
|
|
5
|
+
- 版本、功能或配置已经发布,需要确认长期文档没有落后于真实状态时
|
|
6
|
+
- 发布说明已经写完,但还需要逐项核对 README、安装说明和行为变更记录时
|
|
7
|
+
- 发布后发现用户或内部同事仍按旧路径操作,需要做 drift closure 时
|
|
8
|
+
|
|
9
|
+
## 输入前提
|
|
10
|
+
|
|
11
|
+
- 代码和发布动作已经完成,当前重点是收尾而不是重新设计方案
|
|
12
|
+
- 已知本次发布影响了哪些入口、配置、默认行为或升级路径
|
|
13
|
+
- 相关 owner 能立即修正文档,而不是把问题留到下个版本
|
|
14
|
+
|
|
15
|
+
## 执行步骤
|
|
16
|
+
|
|
17
|
+
1. 列出本次发布影响的同步对象,只保留长期会被消费的文档:
|
|
18
|
+
- README、quick start、首次成功路径
|
|
19
|
+
- 安装、升级、回滚或迁移说明
|
|
20
|
+
- 公共 API、CLI、配置项、默认值说明
|
|
21
|
+
- 用户可见行为变更、兼容性边界、已知限制
|
|
22
|
+
2. 逐项核对这些文档是否反映真实发布状态,而不是反映开发中间态
|
|
23
|
+
3. 对缺失项立即补齐,或明确记录 owner、截止时间和阻断原因
|
|
24
|
+
4. 用最小验收确认收尾完成:
|
|
25
|
+
- 新用户能按文档走通最小成功路径
|
|
26
|
+
- 旧用户知道是否需要升级、迁移或回滚动作
|
|
27
|
+
- 支持、运维和后续开发不会因为旧文档误判
|
|
28
|
+
5. 记录仍然存在的差异;如果差异会误导用户或运维,就把它视为未完成收尾
|
|
29
|
+
|
|
30
|
+
## 成功标准
|
|
31
|
+
|
|
32
|
+
- 发布后的长期文档与真实状态一致
|
|
33
|
+
- 文档同步对象清晰,没有把临时说明误当成长期文档
|
|
34
|
+
- 影响安装、升级、回滚或默认行为的变化都有明确说明
|
|
35
|
+
- drift 没有带入下一个版本
|
|
36
|
+
|
|
37
|
+
## 边界
|
|
38
|
+
|
|
39
|
+
- 本 skill 只负责发布后的文档同步和 drift closure
|
|
40
|
+
- 不替代 `documentation-and-adrs` 的决策记录、ADR 和长期知识沉淀
|
|
41
|
+
- 不替代 `shipping-and-launch` 的发布 gate、灰度、监控和回滚策略
|
|
42
|
+
- 不扩展成通用文档大全;只处理本次发布真正受影响的长期文档
|
|
43
|
+
|
|
44
|
+
## 最小清单
|
|
45
|
+
|
|
46
|
+
- README / quick start 已同步
|
|
47
|
+
- 安装、升级、回滚说明已同步
|
|
48
|
+
- 行为变更、默认值变化、兼容性边界已同步
|
|
49
|
+
- 如有剩余差异,已明确 owner 和关闭时间
|
|
50
|
+
|
|
51
|
+
## 与其他技能的衔接
|
|
52
|
+
|
|
53
|
+
- 发布前通常先用 `shipping-and-launch`
|
|
54
|
+
- 需要判断应该记录什么、哪些文档已 drift 时,回到 `documentation-and-adrs`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
kind: skill
|
|
2
|
+
name: release-documentation-sync
|
|
3
|
+
title: 发布后文档同步
|
|
4
|
+
description: 在发布完成后核对 README、安装升级说明、行为变更记录等长期文档是否与真实发布状态一致,避免 release 之后继续发生文档 drift。
|
|
5
|
+
tier: recommended
|
|
6
|
+
audience: advanced
|
|
7
|
+
stability: stable
|
|
8
|
+
platforms:
|
|
9
|
+
- qwen
|
|
10
|
+
- codex
|
|
11
|
+
- qoder
|
|
12
|
+
source:
|
|
13
|
+
upstream: gstack
|
|
14
|
+
strategy: inspired
|
|
15
|
+
notes: 吸收 document-release 的发布后文档同步思路,只保留轻量收尾清单与 drift closure,不复制完整文档体系或发布 gate。
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# 审查响应与问题收敛
|
|
2
|
+
|
|
3
|
+
## 何时使用
|
|
4
|
+
|
|
5
|
+
- 已收到 reviewer、同事或代理给出的审查意见之后
|
|
6
|
+
- 一轮 review 结束,需要把问题分类并安排修复顺序时
|
|
7
|
+
- 修复完成后,需要补充回归验证并回复 reviewer 时
|
|
8
|
+
- 需要判断哪些意见必须立即处理,哪些可以延后时
|
|
9
|
+
|
|
10
|
+
## 输入前提
|
|
11
|
+
|
|
12
|
+
- 已有明确的 review 结论或问题清单
|
|
13
|
+
- 已知道这次变更的规格、计划或原始目标
|
|
14
|
+
- 愿意对每条反馈给出处理结果,而不是只回一句“已看”
|
|
15
|
+
|
|
16
|
+
## 执行步骤
|
|
17
|
+
|
|
18
|
+
1. 先把反馈分类:
|
|
19
|
+
- 阻塞合并的问题
|
|
20
|
+
- 应在本轮修复的重要问题
|
|
21
|
+
- 可延后的建议项
|
|
22
|
+
- 需要澄清或不同意的点
|
|
23
|
+
2. 回到原始规格或任务,确认每条反馈是否真会影响需求、正确性、可维护性或风险边界
|
|
24
|
+
3. 按顺序处理:
|
|
25
|
+
- 先修 `Critical`
|
|
26
|
+
- 再处理会影响当前发布质量的 `Important`
|
|
27
|
+
- 对 `Suggestion` 明确采纳、暂缓或拒绝,并说明原因
|
|
28
|
+
4. 每完成一类修复,都补最小必要的回归验证:
|
|
29
|
+
- 受影响测试
|
|
30
|
+
- 构建或 lint
|
|
31
|
+
- 需要时补充人工验证
|
|
32
|
+
5. 回复 reviewer 时逐条说明:
|
|
33
|
+
- 已修复什么
|
|
34
|
+
- 用什么验证证明成立
|
|
35
|
+
- 哪些未采纳以及理由
|
|
36
|
+
6. 重新提交前确认:
|
|
37
|
+
- 没有遗留未回应的阻塞问题
|
|
38
|
+
- 新改动没有引入额外漂移
|
|
39
|
+
- 反馈闭环对外可读、可核验
|
|
40
|
+
|
|
41
|
+
## 成功标准
|
|
42
|
+
|
|
43
|
+
- 每条 review 意见都有明确处理状态
|
|
44
|
+
- 修复顺序由风险和合并门槛驱动,而不是按回复方便程度排列
|
|
45
|
+
- 回复 reviewer 时包含具体改动和验证依据
|
|
46
|
+
- 延后项被显式记录,不伪装成“已处理”
|
|
47
|
+
- 重新提交后,reviewer 能快速判断这一轮是否真正收敛
|
|
48
|
+
|
|
49
|
+
## 相关原则
|
|
50
|
+
|
|
51
|
+
- 先消除阻塞,再处理优化项
|
|
52
|
+
- 不把“不同意”写成情绪表达,要写成技术理由
|
|
53
|
+
- 回复必须附验证证据,不能只有态度
|
|
54
|
+
- review 响应是收敛过程,不是辩论过程
|
|
55
|
+
|
|
56
|
+
## 与其他技能的衔接
|
|
57
|
+
|
|
58
|
+
- 通常接在 `code-review-and-quality` 之后
|
|
59
|
+
- 回归验证依赖 `verification-before-completion`
|
|
60
|
+
- 如果反馈暴露出规格缺口,可回到 `spec-driven-development` 或 `planning-and-task-breakdown`
|
|
61
|
+
- 如果反馈聚焦安全或性能,可转给对应专项 skill 深挖
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
kind: skill
|
|
2
|
+
name: review-response-and-resolution
|
|
3
|
+
title: 审查响应与问题收敛
|
|
4
|
+
description: 在收到代码审查反馈后使用。负责分类意见、安排修复顺序、补充回归验证,并以可核验的方式回复 reviewer,直到问题收敛。
|
|
5
|
+
tier: recommended
|
|
6
|
+
audience: advanced
|
|
7
|
+
stability: stable
|
|
8
|
+
suggests:
|
|
9
|
+
- skill:verification-before-completion
|
|
10
|
+
- skill:engineering-principles
|
|
11
|
+
platforms:
|
|
12
|
+
- qwen
|
|
13
|
+
- codex
|
|
14
|
+
- qoder
|
|
15
|
+
source:
|
|
16
|
+
upstream: superpowers
|
|
17
|
+
strategy: inspired
|
|
18
|
+
notes: 吸收 receiving-code-review 一类方法,整理为本仓库的 review 后处理闭环;只覆盖响应、修复、回归验证和回复,不承担审查本身或分支收尾职责。
|
|
File without changes
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# 安全护栏
|
|
2
|
+
|
|
3
|
+
## 何时使用
|
|
4
|
+
|
|
5
|
+
- 即将执行可能破坏文件、数据库、Git 历史或配置的操作时
|
|
6
|
+
- 接近生产环境、敏感数据或关键基础设施时
|
|
7
|
+
- 多个代理同时改同一仓库时
|
|
8
|
+
- 你不完全理解某条命令的影响时
|
|
9
|
+
|
|
10
|
+
## 输入前提
|
|
11
|
+
|
|
12
|
+
- 已识别当前操作的风险等级
|
|
13
|
+
- 接受对高风险操作增加确认、冻结或限制
|
|
14
|
+
- 目标是降低误操作,而不是完全阻塞正常开发
|
|
15
|
+
|
|
16
|
+
## 执行步骤
|
|
17
|
+
|
|
18
|
+
1. 先判断当前需要哪种保护模式:
|
|
19
|
+
- `Careful`:危险操作前预警
|
|
20
|
+
- `Freeze`:冻结关键文件或目录
|
|
21
|
+
- `Guard`:最高级防护,叠加更多限制
|
|
22
|
+
2. 对危险命令做风险识别和替代方案提示
|
|
23
|
+
3. 对关键路径加冻结规则,阻止越界修改
|
|
24
|
+
4. 高风险环境开启 Guard,限制更大范围写入和执行
|
|
25
|
+
5. 整个操作过程保留审计痕迹和确认记录
|
|
26
|
+
|
|
27
|
+
## 成功标准
|
|
28
|
+
|
|
29
|
+
- 高风险操作不会在无确认的情况下执行
|
|
30
|
+
- 关键文件或目录不会被误改
|
|
31
|
+
- 生产或敏感环境下的改动范围被显式限制
|
|
32
|
+
- 安全模式不会妨碍普通低风险开发
|
|
33
|
+
|
|
34
|
+
## 相关原则
|
|
35
|
+
|
|
36
|
+
- 在真正危险的地方增加摩擦
|
|
37
|
+
- 不确定时宁可先警告、先冻结
|
|
38
|
+
- 可逆操作和不可逆操作应区别对待
|
|
39
|
+
|
|
40
|
+
## 与其他技能的衔接
|
|
41
|
+
|
|
42
|
+
- 与 `security-and-hardening` 互补:一个防漏洞,一个防误操作
|
|
43
|
+
- 在 `shipping-and-launch`、迁移、数据库操作和批量改动前特别重要
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
kind: skill
|
|
2
|
+
name: safety-guardrails
|
|
3
|
+
title: 安全护栏
|
|
4
|
+
description: 在 AI 执行潜在破坏性操作时施加安全护栏。适用于生产环境、关键基础设施或敏感文件附近的工作,通过 Careful、Freeze、Guard 三种模式减少误删、危险命令和越权修改风险。
|
|
5
|
+
tier: recommended
|
|
6
|
+
audience: default
|
|
7
|
+
stability: stable
|
|
8
|
+
suggests:
|
|
9
|
+
- skill:verification-before-completion
|
|
10
|
+
platforms:
|
|
11
|
+
- qwen
|
|
12
|
+
- codex
|
|
13
|
+
- qoder
|
|
14
|
+
source:
|
|
15
|
+
upstream: toolkit-original
|
|
16
|
+
strategy: curated
|
|
17
|
+
notes: 本仓库围绕高风险操作防护整理的安全执行能力。
|
|
File without changes
|