zero-workspace 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +187 -0
- package/config/component-versions.json +16 -0
- package/config/scenarioCapabilities.json +29 -0
- package/config/version-notes.yaml +244 -0
- package/dist/adapters/OutputAdapter.d.ts +79 -0
- package/dist/adapters/OutputAdapter.d.ts.map +1 -0
- package/dist/adapters/OutputAdapter.js +124 -0
- package/dist/adapters/OutputAdapter.js.map +1 -0
- package/dist/cli/check-node-version.d.ts +3 -0
- package/dist/cli/check-node-version.d.ts.map +1 -0
- package/dist/cli/check-node-version.js +153 -0
- package/dist/cli/check-node-version.js.map +1 -0
- package/dist/cli/plugins.d.ts +41 -0
- package/dist/cli/plugins.d.ts.map +1 -0
- package/dist/cli/plugins.js +742 -0
- package/dist/cli/plugins.js.map +1 -0
- package/dist/cli/rebuild.d.ts +63 -0
- package/dist/cli/rebuild.d.ts.map +1 -0
- package/dist/cli/rebuild.js +989 -0
- package/dist/cli/rebuild.js.map +1 -0
- package/dist/cli/repair.d.ts +7 -0
- package/dist/cli/repair.d.ts.map +1 -0
- package/dist/cli/repair.js +925 -0
- package/dist/cli/repair.js.map +1 -0
- package/dist/cli/setup.d.ts +7 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +452 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/update.d.ts +10 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/update.js +426 -0
- package/dist/cli/update.js.map +1 -0
- package/dist/cli/webui.d.ts +6 -0
- package/dist/cli/webui.d.ts.map +1 -0
- package/dist/cli/webui.js +210 -0
- package/dist/cli/webui.js.map +1 -0
- package/dist/http/index.d.ts +3 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +15 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/middleware/errorHandler.d.ts +16 -0
- package/dist/http/middleware/errorHandler.d.ts.map +1 -0
- package/dist/http/middleware/errorHandler.js +79 -0
- package/dist/http/middleware/errorHandler.js.map +1 -0
- package/dist/http/routes/admin.d.ts +3 -0
- package/dist/http/routes/admin.d.ts.map +1 -0
- package/dist/http/routes/admin.js +730 -0
- package/dist/http/routes/admin.js.map +1 -0
- package/dist/http/routes/backup.d.ts +3 -0
- package/dist/http/routes/backup.d.ts.map +1 -0
- package/dist/http/routes/backup.js +172 -0
- package/dist/http/routes/backup.js.map +1 -0
- package/dist/http/routes/config.d.ts +3 -0
- package/dist/http/routes/config.d.ts.map +1 -0
- package/dist/http/routes/config.js +157 -0
- package/dist/http/routes/config.js.map +1 -0
- package/dist/http/routes/context.d.ts +3 -0
- package/dist/http/routes/context.d.ts.map +1 -0
- package/dist/http/routes/context.js +82 -0
- package/dist/http/routes/context.js.map +1 -0
- package/dist/http/routes/log.d.ts +3 -0
- package/dist/http/routes/log.d.ts.map +1 -0
- package/dist/http/routes/log.js +105 -0
- package/dist/http/routes/log.js.map +1 -0
- package/dist/http/routes/memo.d.ts +6 -0
- package/dist/http/routes/memo.d.ts.map +1 -0
- package/dist/http/routes/memo.js +29 -0
- package/dist/http/routes/memo.js.map +1 -0
- package/dist/http/routes/node.d.ts +3 -0
- package/dist/http/routes/node.d.ts.map +1 -0
- package/dist/http/routes/node.js +251 -0
- package/dist/http/routes/node.js.map +1 -0
- package/dist/http/routes/state.d.ts +3 -0
- package/dist/http/routes/state.d.ts.map +1 -0
- package/dist/http/routes/state.js +48 -0
- package/dist/http/routes/state.js.map +1 -0
- package/dist/http/routes/workspace.d.ts +3 -0
- package/dist/http/routes/workspace.d.ts.map +1 -0
- package/dist/http/routes/workspace.js +249 -0
- package/dist/http/routes/workspace.js.map +1 -0
- package/dist/http/server.d.ts +10 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +284 -0
- package/dist/http/server.js.map +1 -0
- package/dist/http/services.d.ts +93 -0
- package/dist/http/services.d.ts.map +1 -0
- package/dist/http/services.js +297 -0
- package/dist/http/services.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1073 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/guidanceContent.d.ts +18 -0
- package/dist/prompts/guidanceContent.d.ts.map +1 -0
- package/dist/prompts/guidanceContent.js +814 -0
- package/dist/prompts/guidanceContent.js.map +1 -0
- package/dist/prompts/index.d.ts +2 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +4 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/instructions.d.ts +56 -0
- package/dist/prompts/instructions.d.ts.map +1 -0
- package/dist/prompts/instructions.js +1343 -0
- package/dist/prompts/instructions.js.map +1 -0
- package/dist/services/BackupService.d.ts +104 -0
- package/dist/services/BackupService.d.ts.map +1 -0
- package/dist/services/BackupService.js +549 -0
- package/dist/services/BackupService.js.map +1 -0
- package/dist/services/CapabilityService.d.ts +38 -0
- package/dist/services/CapabilityService.d.ts.map +1 -0
- package/dist/services/CapabilityService.js +256 -0
- package/dist/services/CapabilityService.js.map +1 -0
- package/dist/services/ConfigService.d.ts +35 -0
- package/dist/services/ConfigService.d.ts.map +1 -0
- package/dist/services/ConfigService.js +105 -0
- package/dist/services/ConfigService.js.map +1 -0
- package/dist/services/ContextService.d.ts +65 -0
- package/dist/services/ContextService.d.ts.map +1 -0
- package/dist/services/ContextService.js +503 -0
- package/dist/services/ContextService.js.map +1 -0
- package/dist/services/DetectionService.d.ts +76 -0
- package/dist/services/DetectionService.d.ts.map +1 -0
- package/dist/services/DetectionService.js +262 -0
- package/dist/services/DetectionService.js.map +1 -0
- package/dist/services/DispatchService.d.ts +267 -0
- package/dist/services/DispatchService.d.ts.map +1 -0
- package/dist/services/DispatchService.js +1357 -0
- package/dist/services/DispatchService.js.map +1 -0
- package/dist/services/EventService.d.ts +81 -0
- package/dist/services/EventService.d.ts.map +1 -0
- package/dist/services/EventService.js +187 -0
- package/dist/services/EventService.js.map +1 -0
- package/dist/services/GuidanceService.d.ts +64 -0
- package/dist/services/GuidanceService.d.ts.map +1 -0
- package/dist/services/GuidanceService.js +259 -0
- package/dist/services/GuidanceService.js.map +1 -0
- package/dist/services/HealthService.d.ts +43 -0
- package/dist/services/HealthService.d.ts.map +1 -0
- package/dist/services/HealthService.js +276 -0
- package/dist/services/HealthService.js.map +1 -0
- package/dist/services/InstallationService.d.ts +62 -0
- package/dist/services/InstallationService.d.ts.map +1 -0
- package/dist/services/InstallationService.js +204 -0
- package/dist/services/InstallationService.js.map +1 -0
- package/dist/services/LogService.d.ts +35 -0
- package/dist/services/LogService.d.ts.map +1 -0
- package/dist/services/LogService.js +189 -0
- package/dist/services/LogService.js.map +1 -0
- package/dist/services/MemoService.d.ts +39 -0
- package/dist/services/MemoService.d.ts.map +1 -0
- package/dist/services/MemoService.js +288 -0
- package/dist/services/MemoService.js.map +1 -0
- package/dist/services/NodeService.d.ts +90 -0
- package/dist/services/NodeService.d.ts.map +1 -0
- package/dist/services/NodeService.js +958 -0
- package/dist/services/NodeService.js.map +1 -0
- package/dist/services/OpenSpecParser.d.ts +43 -0
- package/dist/services/OpenSpecParser.d.ts.map +1 -0
- package/dist/services/OpenSpecParser.js +191 -0
- package/dist/services/OpenSpecParser.js.map +1 -0
- package/dist/services/ReferenceService.d.ts +35 -0
- package/dist/services/ReferenceService.d.ts.map +1 -0
- package/dist/services/ReferenceService.js +195 -0
- package/dist/services/ReferenceService.js.map +1 -0
- package/dist/services/RepairService.d.ts +36 -0
- package/dist/services/RepairService.d.ts.map +1 -0
- package/dist/services/RepairService.js +429 -0
- package/dist/services/RepairService.js.map +1 -0
- package/dist/services/SearchService.d.ts +34 -0
- package/dist/services/SearchService.d.ts.map +1 -0
- package/dist/services/SearchService.js +293 -0
- package/dist/services/SearchService.js.map +1 -0
- package/dist/services/SessionService.d.ts +136 -0
- package/dist/services/SessionService.d.ts.map +1 -0
- package/dist/services/SessionService.js +297 -0
- package/dist/services/SessionService.js.map +1 -0
- package/dist/services/StateService.d.ts +97 -0
- package/dist/services/StateService.d.ts.map +1 -0
- package/dist/services/StateService.js +846 -0
- package/dist/services/StateService.js.map +1 -0
- package/dist/services/TutorialService.d.ts +114 -0
- package/dist/services/TutorialService.d.ts.map +1 -0
- package/dist/services/TutorialService.js +1262 -0
- package/dist/services/TutorialService.js.map +1 -0
- package/dist/services/WorkspaceService.d.ts +273 -0
- package/dist/services/WorkspaceService.d.ts.map +1 -0
- package/dist/services/WorkspaceService.js +1764 -0
- package/dist/services/WorkspaceService.js.map +1 -0
- package/dist/services/index.d.ts +15 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +14 -0
- package/dist/services/index.js.map +1 -0
- package/dist/storage/FileSystemAdapter.d.ts +223 -0
- package/dist/storage/FileSystemAdapter.d.ts.map +1 -0
- package/dist/storage/FileSystemAdapter.js +384 -0
- package/dist/storage/FileSystemAdapter.js.map +1 -0
- package/dist/storage/JsonStorage.d.ts +158 -0
- package/dist/storage/JsonStorage.d.ts.map +1 -0
- package/dist/storage/JsonStorage.js +613 -0
- package/dist/storage/JsonStorage.js.map +1 -0
- package/dist/storage/MarkdownStorage.d.ts +178 -0
- package/dist/storage/MarkdownStorage.d.ts.map +1 -0
- package/dist/storage/MarkdownStorage.js +918 -0
- package/dist/storage/MarkdownStorage.js.map +1 -0
- package/dist/storage/SessionBindingStorage.d.ts +69 -0
- package/dist/storage/SessionBindingStorage.d.ts.map +1 -0
- package/dist/storage/SessionBindingStorage.js +131 -0
- package/dist/storage/SessionBindingStorage.js.map +1 -0
- package/dist/storage/index.d.ts +6 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +6 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/tools/capability.d.ts +18 -0
- package/dist/tools/capability.d.ts.map +1 -0
- package/dist/tools/capability.js +73 -0
- package/dist/tools/capability.js.map +1 -0
- package/dist/tools/config.d.ts +14 -0
- package/dist/tools/config.d.ts.map +1 -0
- package/dist/tools/config.js +61 -0
- package/dist/tools/config.js.map +1 -0
- package/dist/tools/context.d.ts +22 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +139 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/dispatch.d.ts +41 -0
- package/dist/tools/dispatch.d.ts.map +1 -0
- package/dist/tools/dispatch.js +380 -0
- package/dist/tools/dispatch.js.map +1 -0
- package/dist/tools/help.d.ts +44 -0
- package/dist/tools/help.d.ts.map +1 -0
- package/dist/tools/help.js +227 -0
- package/dist/tools/help.js.map +1 -0
- package/dist/tools/import.d.ts +17 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +96 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +13 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/log.d.ts +21 -0
- package/dist/tools/log.d.ts.map +1 -0
- package/dist/tools/log.js +93 -0
- package/dist/tools/log.js.map +1 -0
- package/dist/tools/memo.d.ts +26 -0
- package/dist/tools/memo.d.ts.map +1 -0
- package/dist/tools/memo.js +188 -0
- package/dist/tools/memo.js.map +1 -0
- package/dist/tools/node.d.ts +34 -0
- package/dist/tools/node.d.ts.map +1 -0
- package/dist/tools/node.js +328 -0
- package/dist/tools/node.js.map +1 -0
- package/dist/tools/search.d.ts +14 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +95 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/session.d.ts +22 -0
- package/dist/tools/session.d.ts.map +1 -0
- package/dist/tools/session.js +127 -0
- package/dist/tools/session.js.map +1 -0
- package/dist/tools/state.d.ts +10 -0
- package/dist/tools/state.d.ts.map +1 -0
- package/dist/tools/state.js +79 -0
- package/dist/tools/state.js.map +1 -0
- package/dist/tools/workspace.d.ts +38 -0
- package/dist/tools/workspace.d.ts.map +1 -0
- package/dist/tools/workspace.js +240 -0
- package/dist/tools/workspace.js.map +1 -0
- package/dist/types/capability.d.ts +36 -0
- package/dist/types/capability.d.ts.map +1 -0
- package/dist/types/capability.js +3 -0
- package/dist/types/capability.js.map +1 -0
- package/dist/types/confirmation.d.ts +35 -0
- package/dist/types/confirmation.d.ts.map +1 -0
- package/dist/types/confirmation.js +3 -0
- package/dist/types/confirmation.js.map +1 -0
- package/dist/types/context.d.ts +174 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +3 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/errors.d.ts +81 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +154 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/guidance.d.ts +162 -0
- package/dist/types/guidance.d.ts.map +1 -0
- package/dist/types/guidance.js +4 -0
- package/dist/types/guidance.js.map +1 -0
- package/dist/types/health.d.ts +61 -0
- package/dist/types/health.d.ts.map +1 -0
- package/dist/types/health.js +3 -0
- package/dist/types/health.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memo.d.ts +132 -0
- package/dist/types/memo.d.ts.map +1 -0
- package/dist/types/memo.js +3 -0
- package/dist/types/memo.js.map +1 -0
- package/dist/types/node.d.ts +316 -0
- package/dist/types/node.d.ts.map +1 -0
- package/dist/types/node.js +3 -0
- package/dist/types/node.js.map +1 -0
- package/dist/types/repair.d.ts +62 -0
- package/dist/types/repair.d.ts.map +1 -0
- package/dist/types/repair.js +4 -0
- package/dist/types/repair.js.map +1 -0
- package/dist/types/search.d.ts +58 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +3 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/settings.d.ts +109 -0
- package/dist/types/settings.d.ts.map +1 -0
- package/dist/types/settings.js +30 -0
- package/dist/types/settings.js.map +1 -0
- package/dist/types/workspace.d.ts +357 -0
- package/dist/types/workspace.d.ts.map +1 -0
- package/dist/types/workspace.js +3 -0
- package/dist/types/workspace.js.map +1 -0
- package/dist/utils/contentValidation.d.ts +47 -0
- package/dist/utils/contentValidation.d.ts.map +1 -0
- package/dist/utils/contentValidation.js +93 -0
- package/dist/utils/contentValidation.js.map +1 -0
- package/dist/utils/devLog.d.ts +43 -0
- package/dist/utils/devLog.d.ts.map +1 -0
- package/dist/utils/devLog.js +94 -0
- package/dist/utils/devLog.js.map +1 -0
- package/dist/utils/errorLogger.d.ts +27 -0
- package/dist/utils/errorLogger.d.ts.map +1 -0
- package/dist/utils/errorLogger.js +105 -0
- package/dist/utils/errorLogger.js.map +1 -0
- package/dist/utils/git.d.ts +123 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +400 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/hash.d.ts +32 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +37 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/id.d.ts +54 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +96 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +42 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +228 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/manualChangeFormatter.d.ts +8 -0
- package/dist/utils/manualChangeFormatter.d.ts.map +1 -0
- package/dist/utils/manualChangeFormatter.js +21 -0
- package/dist/utils/manualChangeFormatter.js.map +1 -0
- package/dist/utils/paramValidator.d.ts +35 -0
- package/dist/utils/paramValidator.d.ts.map +1 -0
- package/dist/utils/paramValidator.js +214 -0
- package/dist/utils/paramValidator.js.map +1 -0
- package/dist/utils/port.d.ts +7 -0
- package/dist/utils/port.d.ts.map +1 -0
- package/dist/utils/port.js +28 -0
- package/dist/utils/port.js.map +1 -0
- package/dist/utils/processManager.d.ts +53 -0
- package/dist/utils/processManager.d.ts.map +1 -0
- package/dist/utils/processManager.js +267 -0
- package/dist/utils/processManager.js.map +1 -0
- package/dist/utils/sessionLogger.d.ts +28 -0
- package/dist/utils/sessionLogger.d.ts.map +1 -0
- package/dist/utils/sessionLogger.js +142 -0
- package/dist/utils/sessionLogger.js.map +1 -0
- package/dist/utils/time.d.ts +15 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +32 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/validation.d.ts +23 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +88 -0
- package/dist/utils/validation.js.map +1 -0
- package/docs//346/227/245/345/277/227/347/263/273/347/273/237.md +389 -0
- package/docs//347/224/250/346/210/267/346/211/213/345/206/214.md +1446 -0
- package/docs//347/224/250/346/210/267/346/211/213/345/206/214/344/270/216/346/212/200/346/234/257/346/214/207/345/215/227.md +873 -0
- package/package.json +94 -0
- package/plugin/README.md +141 -0
- package/plugin/agents/zero-executor.md +114 -0
- package/plugin/agents/zero-reviewer.md +133 -0
- package/plugin/docs/diagnostic-guide.md +128 -0
- package/plugin/hooks/hooks.json.deprecated +70 -0
- package/plugin/scripts/cursor-hook-entry.cjs +217 -0
- package/plugin/scripts/hook-entry.cjs +663 -0
- package/plugin/scripts/openspec-import.cjs +714 -0
- package/plugin/scripts/shared/binding.cjs +98 -0
- package/plugin/scripts/shared/config.cjs +65 -0
- package/plugin/scripts/shared/context.cjs +120 -0
- package/plugin/scripts/shared/index.cjs +34 -0
- package/plugin/scripts/shared/logger.cjs +196 -0
- package/plugin/scripts/shared/reminder.cjs +261 -0
- package/plugin/scripts/shared/utils.cjs +62 -0
- package/plugin/scripts/shared/workspace.cjs +322 -0
- package/plugin/skills/aligning-intent/SKILL.md +275 -0
- package/plugin/skills/analyzing-measurements/SKILL.md +223 -0
- package/plugin/skills/bootstrapping-workspace/SKILL.md +260 -0
- package/plugin/skills/designing-solutions/SKILL.md +363 -0
- package/plugin/skills/diagnosing-issues/SKILL.md +219 -0
- package/plugin/skills/discovering-context/SKILL.md +283 -0
- package/plugin/skills/dispatching-parent/SKILL.md +399 -0
- package/plugin/skills/executing-task/SKILL.md +340 -0
- package/plugin/skills/memo-create/SKILL.md +222 -0
- package/plugin/skills/planning-verification/SKILL.md +245 -0
- package/plugin/skills/preparing-dispatch/SKILL.md +299 -0
- package/plugin/skills/researching-tech/SKILL.md +223 -0
- package/plugin/skills/reviewing-quality/SKILL.md +354 -0
- package/plugin/skills/reviewing-spec/SKILL.md +333 -0
- package/plugin/skills/starting-info-flow/SKILL.md +196 -0
- package/web/README.md +5 -0
- package/web/dist/assets/DocsView-Bls_Vjsr.css +1 -0
- package/web/dist/assets/DocsView-Cxc0B63r.js +1447 -0
- package/web/dist/assets/HomeView-C7df9thb.js +9 -0
- package/web/dist/assets/HomeView-ufUdnfHk.css +1 -0
- package/web/dist/assets/MarkdownContent-DXp6CtSP.js +308 -0
- package/web/dist/assets/MarkdownContent-NFqiOBLH.css +1 -0
- package/web/dist/assets/NotFoundView-BYX1oZAn.css +1 -0
- package/web/dist/assets/NotFoundView-zrc0lT9q.js +1 -0
- package/web/dist/assets/WorkspaceView-BckqgNcX.js +27 -0
- package/web/dist/assets/WorkspaceView-J1dgpYMx.css +1 -0
- package/web/dist/assets/WsConfirmDialog-C1CvL4my.css +1 -0
- package/web/dist/assets/WsConfirmDialog-gLEP7uBD.js +4 -0
- package/web/dist/assets/arc-DPkKTkUT.js +1 -0
- package/web/dist/assets/architectureDiagram-VXUJARFQ-CEGpqUlZ.js +36 -0
- package/web/dist/assets/blockDiagram-VD42YOAC-Bv-mqdQH.js +122 -0
- package/web/dist/assets/c4Diagram-YG6GDRKO-DRyPatZ_.js +10 -0
- package/web/dist/assets/channel-B84mKLDZ.js +1 -0
- package/web/dist/assets/chunk-4BX2VUAB-c7DivX0u.js +1 -0
- package/web/dist/assets/chunk-55IACEB6-CGKTaLlo.js +1 -0
- package/web/dist/assets/chunk-B4BG7PRW-Czhx5Q_P.js +165 -0
- package/web/dist/assets/chunk-DI55MBZ5-CQVA7hcZ.js +220 -0
- package/web/dist/assets/chunk-FMBD7UC4-hEiPmi7V.js +15 -0
- package/web/dist/assets/chunk-QN33PNHL-rL6yYI-E.js +1 -0
- package/web/dist/assets/chunk-QZHKN3VN-BRyHBBzq.js +1 -0
- package/web/dist/assets/chunk-TZMSLE5B-D4PXmTz9.js +1 -0
- package/web/dist/assets/classDiagram-2ON5EDUG-CNn53ohi.js +1 -0
- package/web/dist/assets/classDiagram-v2-WZHVMYZB-CNn53ohi.js +1 -0
- package/web/dist/assets/cose-bilkent-S5V4N54A-BAREnRga.js +1 -0
- package/web/dist/assets/cytoscape.esm-BnkdMOzK.js +321 -0
- package/web/dist/assets/dagre-6UL2VRFP-DaYzb3MT.js +4 -0
- package/web/dist/assets/defaultLocale-C4B-KCzX.js +1 -0
- package/web/dist/assets/diagram-PSM6KHXK-BFltDqvd.js +24 -0
- package/web/dist/assets/diagram-QEK2KX5R-CR4VU2La.js +43 -0
- package/web/dist/assets/diagram-S2PKOQOG-0UfIeT-1.js +24 -0
- package/web/dist/assets/erDiagram-Q2GNP2WA-Bo17Xmng.js +60 -0
- package/web/dist/assets/flowDiagram-NV44I4VS-CzqhQp8s.js +162 -0
- package/web/dist/assets/ganttDiagram-JELNMOA3-TXwXtUcq.js +267 -0
- package/web/dist/assets/gitGraphDiagram-NY62KEGX-CoFQTy9O.js +65 -0
- package/web/dist/assets/graph-CIQcRIVd.js +1 -0
- package/web/dist/assets/index-BgLd_o_M.css +1 -0
- package/web/dist/assets/index-Cd_J3fZn.js +30 -0
- package/web/dist/assets/infoDiagram-WHAUD3N6-Dq0xXfVu.js +2 -0
- package/web/dist/assets/init-Gi6I4Gst.js +1 -0
- package/web/dist/assets/journeyDiagram-XKPGCS4Q-jIg5BOfC.js +139 -0
- package/web/dist/assets/kanban-definition-3W4ZIXB7-D2giu6aZ.js +89 -0
- package/web/dist/assets/katex-XbL3y5x-.js +261 -0
- package/web/dist/assets/layout-Bm-XCM-8.js +1 -0
- package/web/dist/assets/linear-FbekP9OZ.js +1 -0
- package/web/dist/assets/min-BrRCpYmF.js +1 -0
- package/web/dist/assets/mindmap-definition-VGOIOE7T-o-4ubbY9.js +68 -0
- package/web/dist/assets/noto-emoji-0-400-normal-BTQbhB77.woff +0 -0
- package/web/dist/assets/noto-emoji-0-400-normal-DHdy6Uhy.woff2 +0 -0
- package/web/dist/assets/noto-emoji-1-400-normal-0IvkdXBB.woff +0 -0
- package/web/dist/assets/noto-emoji-1-400-normal-BY9OovbM.woff2 +0 -0
- package/web/dist/assets/noto-emoji-10-400-normal-D9w4QCof.woff2 +0 -0
- package/web/dist/assets/noto-emoji-10-400-normal-DtCumcZR.woff +0 -0
- package/web/dist/assets/noto-emoji-11-400-normal-BboTlyvx.woff +0 -0
- package/web/dist/assets/noto-emoji-12-400-normal-BB5pgBKj.woff2 +0 -0
- package/web/dist/assets/noto-emoji-12-400-normal-g186qhiA.woff +0 -0
- package/web/dist/assets/noto-emoji-2-400-normal-BKCR1azW.woff2 +0 -0
- package/web/dist/assets/noto-emoji-2-400-normal-BYH0KhDr.woff +0 -0
- package/web/dist/assets/noto-emoji-3-400-normal-CnPTUeEK.woff +0 -0
- package/web/dist/assets/noto-emoji-3-400-normal-TrTb2VQM.woff2 +0 -0
- package/web/dist/assets/noto-emoji-4-400-normal-BxD0KVdj.woff +0 -0
- package/web/dist/assets/noto-emoji-4-400-normal-s_n9EyG1.woff2 +0 -0
- package/web/dist/assets/noto-emoji-5-400-normal-C190AIxR.woff +0 -0
- package/web/dist/assets/noto-emoji-5-400-normal-Ctfx4xc6.woff2 +0 -0
- package/web/dist/assets/noto-emoji-6-400-normal-DlXlXWt7.woff +0 -0
- package/web/dist/assets/noto-emoji-6-400-normal-NzsjD754.woff2 +0 -0
- package/web/dist/assets/noto-emoji-7-400-normal-BHP8KeA6.woff2 +0 -0
- package/web/dist/assets/noto-emoji-7-400-normal-CtuKhtAZ.woff +0 -0
- package/web/dist/assets/noto-emoji-8-400-normal-DR49ZFe7.woff +0 -0
- package/web/dist/assets/noto-emoji-8-400-normal-Dvmkf6b2.woff2 +0 -0
- package/web/dist/assets/noto-emoji-9-400-normal-BeHJQ2iK.woff2 +0 -0
- package/web/dist/assets/noto-emoji-9-400-normal-BlXmCgeQ.woff +0 -0
- package/web/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/web/dist/assets/pieDiagram-ADFJNKIX-C45wSpld.js +30 -0
- package/web/dist/assets/quadrantDiagram-AYHSOK5B-tv-_fe-W.js +7 -0
- package/web/dist/assets/reduce-CoLNNlNb.js +1 -0
- package/web/dist/assets/requirementDiagram-UZGBJVZJ-Dn6PDfkL.js +64 -0
- package/web/dist/assets/sankeyDiagram-TZEHDZUN-CbXTZAsG.js +10 -0
- package/web/dist/assets/sequenceDiagram-WL72ISMW-B-o1CUJ5.js +145 -0
- package/web/dist/assets/stateDiagram-FKZM4ZOC-hzrupXQi.js +1 -0
- package/web/dist/assets/stateDiagram-v2-4FDKWEC3-DN-c2M96.js +1 -0
- package/web/dist/assets/timeline-definition-IT6M3QCI-R5SP9GDo.js +61 -0
- package/web/dist/assets/treemap-KMMF4GRG-Pg9KlUOt.js +128 -0
- package/web/dist/assets/xychartDiagram-PRI3JC2R-C3vbJhd1.js +7 -0
- package/web/dist/favicon.svg +13 -0
- package/web/dist/index.html +17 -0
- package//351/205/215/347/275/256/346/226/271/345/274/217.md +330 -0
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aligning-intent
|
|
3
|
+
description: Use when starting new tasks or when requirements are unclear. Clarifies user intent through structured questioning, eliminates ambiguity, confirms verifiable acceptance criteria.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aligning Intent
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
通过自然协作对话,将模糊想法转化为清晰需求。先快速扫描项目现状,再逐个提问澄清意图,最终输出可验证的验收标准。
|
|
11
|
+
|
|
12
|
+
## Announcement (MANDATORY)
|
|
13
|
+
|
|
14
|
+
Before executing this skill, you MUST announce to the user:
|
|
15
|
+
|
|
16
|
+
「我将使用 **意图对齐** 技能来澄清需求、消除歧义、确认验收标准。」
|
|
17
|
+
|
|
18
|
+
This creates a commitment checkpoint. Proceed only after announcing.
|
|
19
|
+
|
|
20
|
+
## Core Thinking
|
|
21
|
+
|
|
22
|
+
**Scan then Ask**: 先快速扫描项目,再提出精准问题。避免问出"代码里已有答案"的问题。
|
|
23
|
+
|
|
24
|
+
**Clarify**: Use structured questioning to eliminate ambiguity in requirements, transform user intent into verifiable acceptance criteria.
|
|
25
|
+
|
|
26
|
+
**Be Flexible**: 如果用户回答揭示新问题,随时回退重新澄清。流程是指导,不是枷锁。
|
|
27
|
+
|
|
28
|
+
**Recording**: Conversation output is invisible to users. You MUST record to workspace node. Standard: "If context is wiped now, can you recall discussion details from conclusion alone?"
|
|
29
|
+
|
|
30
|
+
**⚠️ READ-ONLY**: This is an information gathering skill. **NEVER modify any code or files.** Only ask questions, analyze, and record findings.
|
|
31
|
+
|
|
32
|
+
## Typical Actions
|
|
33
|
+
|
|
34
|
+
- Ask user: Pose clarifying questions for ambiguous points
|
|
35
|
+
- Confirm acceptance criteria: Transform expectations into WHEN/THEN format
|
|
36
|
+
- Confidence check: MUST ask if below 80%
|
|
37
|
+
|
|
38
|
+
## SOP
|
|
39
|
+
|
|
40
|
+
### 1. Quick Scan (快速扫描)
|
|
41
|
+
|
|
42
|
+
在提问前,先了解项目现状(避免问出"代码里已有答案"的问题):
|
|
43
|
+
|
|
44
|
+
- **项目结构**: README、目录结构、入口文件
|
|
45
|
+
- **相关模块**: 与用户需求相关的现有代码
|
|
46
|
+
- **近期变更**: 最近 commits,了解项目动态
|
|
47
|
+
- **已有实现**: 是否已有类似功能可复用
|
|
48
|
+
|
|
49
|
+
**Output**: 初步印象 + 相关发现(记录到 log)
|
|
50
|
+
|
|
51
|
+
**⏸️ 扫描后再问**: 基于扫描结果,提出更精准的问题。
|
|
52
|
+
|
|
53
|
+
### 2. Identify Ambiguous Points (识别歧义,基于扫描)
|
|
54
|
+
|
|
55
|
+
Check for unclear items in user input:
|
|
56
|
+
|
|
57
|
+
- **Subjective descriptions**: Adjectives, adverbs ("fast", "beautiful", "lots")
|
|
58
|
+
- **Incomplete lists**: Vague words like "etc.", "such as"
|
|
59
|
+
- **Hidden assumptions**: Unstated preconditions
|
|
60
|
+
- **Missing info**: Key elements not mentioned (error handling, edge cases)
|
|
61
|
+
|
|
62
|
+
**Output**: List of ambiguous points
|
|
63
|
+
|
|
64
|
+
### 3. Structured Questioning
|
|
65
|
+
|
|
66
|
+
Generate clarifying questions for identified ambiguities:
|
|
67
|
+
|
|
68
|
+
- **Quantify**: "fast response" → "What response time in ms?"
|
|
69
|
+
- **Complete**: "support images, videos, etc." → "What other formats?"
|
|
70
|
+
- **Confirm assumptions**: "after user login..." → "Are all features login-required?"
|
|
71
|
+
- **Edge cases**: "data import" → "How to handle failures? Size limit?"
|
|
72
|
+
|
|
73
|
+
**Principles**:
|
|
74
|
+
- **One question at a time** (preferred) - Deep exploration before moving to next topic
|
|
75
|
+
- Exception: Simple confirmations can be 2-3 together
|
|
76
|
+
- Priority: Core features > Edge cases > Non-functional requirements
|
|
77
|
+
- Questions should be specific and answerable
|
|
78
|
+
|
|
79
|
+
**Question types** (in order of preference):
|
|
80
|
+
1. **Multiple choice** - "A、B 还是 C?" (easiest to answer)
|
|
81
|
+
2. **Yes/No confirmation** - "是 X 吗?"
|
|
82
|
+
3. **Bounded open** - "限制是多少?(如 100, 1000, 不限)"
|
|
83
|
+
4. **Open-ended** - Only when above don't fit
|
|
84
|
+
|
|
85
|
+
**Output**: List of clarifying questions
|
|
86
|
+
|
|
87
|
+
### 4. Confirm Acceptance Criteria
|
|
88
|
+
|
|
89
|
+
Transform user expectations into verifiable WHEN/THEN format:
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
| WHEN (Condition) | THEN (Result) |
|
|
93
|
+
|------------------|---------------|
|
|
94
|
+
| User clicks export | CSV generated within 3s with download prompt |
|
|
95
|
+
| Data exceeds 100k rows | Warning shown, batch export |
|
|
96
|
+
| Network request fails | Error message shown with retry button |
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Requirements**:
|
|
100
|
+
- Each criterion independently testable
|
|
101
|
+
- THEN part observable and quantifiable
|
|
102
|
+
- Cover normal, edge, and error scenarios
|
|
103
|
+
|
|
104
|
+
**Output**: Acceptance criteria table
|
|
105
|
+
|
|
106
|
+
### 5. Confidence Check
|
|
107
|
+
|
|
108
|
+
Evaluate understanding confidence:
|
|
109
|
+
|
|
110
|
+
- **≥85%**: Proceed to next phase
|
|
111
|
+
- **<85%**: MUST ask user
|
|
112
|
+
|
|
113
|
+
**Confidence scoring**:
|
|
114
|
+
- Core features clear: +30%
|
|
115
|
+
- Acceptance criteria complete: +30%
|
|
116
|
+
- Technical path clear: +20%
|
|
117
|
+
- Edge cases clear: +20%
|
|
118
|
+
|
|
119
|
+
**If confidence <85%**:
|
|
120
|
+
1. Identify uncertain points
|
|
121
|
+
2. Generate targeted questions
|
|
122
|
+
3. Wait for user response, re-evaluate
|
|
123
|
+
|
|
124
|
+
**Output**: Confidence % + uncertain points list (if any)
|
|
125
|
+
|
|
126
|
+
### 6. Record to Workspace (MANDATORY)
|
|
127
|
+
|
|
128
|
+
After user confirms, MUST record to workspace node:
|
|
129
|
+
|
|
130
|
+
**Recording locations**:
|
|
131
|
+
| Content | Location | Tool |
|
|
132
|
+
|---------|----------|------|
|
|
133
|
+
| Key conclusions (brief) | conclusion | node_update |
|
|
134
|
+
| QA process, acceptance criteria table | notes | node_update |
|
|
135
|
+
| Long analysis (>200 lines) | MEMO | memo_create + node_reference |
|
|
136
|
+
|
|
137
|
+
**NEVER hardcode MEMO IDs** in text like "见 MEMO#xxx". Use `node_reference` to link.
|
|
138
|
+
|
|
139
|
+
**Conclusion template** (brief, keywords):
|
|
140
|
+
```
|
|
141
|
+
[核心需求] + [关键约束] + [置信度X%]
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Notes template** (detailed):
|
|
145
|
+
```
|
|
146
|
+
**用户原话**: > "..."
|
|
147
|
+
**问答过程**:
|
|
148
|
+
- Q: ... → A: ...
|
|
149
|
+
**验收标准**:
|
|
150
|
+
| WHEN | THEN |
|
|
151
|
+
|------|------|
|
|
152
|
+
| ... | ... |
|
|
153
|
+
**待确认**: ...
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Output**: node_update called with conclusion + notes
|
|
157
|
+
|
|
158
|
+
### 7. Present to User (MANDATORY)
|
|
159
|
+
|
|
160
|
+
After recording, MUST present acceptance criteria to user for final confirmation:
|
|
161
|
+
|
|
162
|
+
1. **Output summary**: Show acceptance criteria using Output Template
|
|
163
|
+
2. **Wait for confirmation**: Ask user if criteria are complete and correct
|
|
164
|
+
3. **NEVER proceed directly**: Do NOT start implementation without user approval
|
|
165
|
+
|
|
166
|
+
**Output**: Acceptance criteria presented, user confirmation received
|
|
167
|
+
|
|
168
|
+
## Key Principles
|
|
169
|
+
|
|
170
|
+
- **Scan before ask** - 先看项目,再问问题,避免问出代码里已有答案的问题
|
|
171
|
+
- **One question at a time** - 一次一个问题,深入探索后再问下一个
|
|
172
|
+
- **Multiple choice preferred** - 选择题比开放题更容易回答
|
|
173
|
+
- **Quantify everything** - 所有模糊词必须量化("快" → "多少ms")
|
|
174
|
+
- **Be flexible** - 随时回退澄清,流程是指导不是枷锁
|
|
175
|
+
|
|
176
|
+
## Checklist
|
|
177
|
+
|
|
178
|
+
### Quick Scan
|
|
179
|
+
- [ ] **Project structure**: README、入口文件已扫描
|
|
180
|
+
- [ ] **Related modules**: 相关现有代码已了解
|
|
181
|
+
- [ ] **Existing solutions**: 已检查是否有可复用实现
|
|
182
|
+
|
|
183
|
+
### Core Elements
|
|
184
|
+
- [ ] **User intent**: What problem does user really want to solve?
|
|
185
|
+
- [ ] **Success criteria**: How to judge requirement is met?
|
|
186
|
+
- [ ] **Use cases**: When will this feature be used?
|
|
187
|
+
- [ ] **Expected result**: What does user expect to see?
|
|
188
|
+
|
|
189
|
+
### Boundaries & Constraints
|
|
190
|
+
- [ ] **Input limits**: Data types, formats, size limits
|
|
191
|
+
- [ ] **Error handling**: How to handle errors, timeouts, edge cases
|
|
192
|
+
- [ ] **Performance**: Response time, concurrency, data volume
|
|
193
|
+
- [ ] **Compatibility**: Environments, browsers, devices to support
|
|
194
|
+
|
|
195
|
+
### Acceptance Criteria
|
|
196
|
+
- [ ] **Normal scenarios**: At least 3 WHEN/THEN
|
|
197
|
+
- [ ] **Edge cases**: Empty data, oversized, special characters
|
|
198
|
+
- [ ] **Error scenarios**: Network failure, permission denied, timeout
|
|
199
|
+
|
|
200
|
+
### Recording (MANDATORY)
|
|
201
|
+
- [ ] **Conclusion written**: Brief summary in node conclusion
|
|
202
|
+
- [ ] **Notes written**: QA process + acceptance criteria in node notes
|
|
203
|
+
- [ ] **MEMO linked**: Long content in MEMO, linked via node_reference (not hardcoded ID)
|
|
204
|
+
- [ ] **Wipe test**: If context wiped now, can recall details from recorded content?
|
|
205
|
+
|
|
206
|
+
## Output Template (for conversation)
|
|
207
|
+
|
|
208
|
+
```markdown
|
|
209
|
+
### Requirement Summary
|
|
210
|
+
[One sentence describing user intent, ≤50 words]
|
|
211
|
+
|
|
212
|
+
### User Story
|
|
213
|
+
As a [role], I want [feature], so that [value]
|
|
214
|
+
|
|
215
|
+
### Acceptance Criteria
|
|
216
|
+
| WHEN (Condition) | THEN (Result) |
|
|
217
|
+
|------------------|---------------|
|
|
218
|
+
| [Trigger 1] | [Expected result 1, observable, quantifiable] |
|
|
219
|
+
| [Trigger 2] | [Expected result 2] |
|
|
220
|
+
| [Error condition] | [Error handling] |
|
|
221
|
+
|
|
222
|
+
### Confidence
|
|
223
|
+
- Current: [XX%]
|
|
224
|
+
- Uncertain points:
|
|
225
|
+
- [ ] [Question 1]
|
|
226
|
+
- [ ] [Question 2]
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Mandatory Rules
|
|
230
|
+
|
|
231
|
+
1. **NEVER assume**: MUST explicitly ask about anything uncertain
|
|
232
|
+
2. **MUST quantify**: Transform all subjective descriptions to quantifiable metrics
|
|
233
|
+
3. **MUST cover errors**: Not just normal flow, but error handling too
|
|
234
|
+
4. **NEVER skip confidence check**: <80% MUST ask, proceeding with doubts is serious error
|
|
235
|
+
5. **MUST get user confirmation**: Final acceptance criteria MUST be explicitly approved
|
|
236
|
+
6. **NEVER modify code**: 意图对齐阶段禁止 Write/Edit/Update,只能问问题和记录
|
|
237
|
+
7. **MUST ask questions**: 意图对齐的核心是向用户提问,不是自己分析代码得出结论
|
|
238
|
+
|
|
239
|
+
## Red Flags
|
|
240
|
+
|
|
241
|
+
When these appear, you may be skipping intent alignment:
|
|
242
|
+
|
|
243
|
+
1. **Skip quick scan** - 不看项目直接提问,问出"代码里已有答案"的问题
|
|
244
|
+
2. **Start implementing immediately** - User describes need, you start coding
|
|
245
|
+
3. **Assume understanding correct** - No confirmation with user
|
|
246
|
+
4. **Ignore vague words** - See "fast", "simple", "etc." without asking
|
|
247
|
+
5. **Skip acceptance criteria** - No WHEN/THEN transformation
|
|
248
|
+
6. **Inflated confidence** - Self-assess ≥80% but obvious doubts exist
|
|
249
|
+
7. **Code analysis instead of asking** - 用代码分析代替向用户提问 ⚠️ 严重错误
|
|
250
|
+
8. **Write/Edit in intent alignment** - 在意图对齐节点中修改代码 ⚠️ 严重错误
|
|
251
|
+
9. **No questions asked** - 整个过程没有问用户任何问题
|
|
252
|
+
10. **Question bombardment** - 一次问 5+ 个问题,用户难以逐一回答
|
|
253
|
+
|
|
254
|
+
## Anti-Patterns
|
|
255
|
+
|
|
256
|
+
| Pattern | Wrong | Right |
|
|
257
|
+
|---------|-------|-------|
|
|
258
|
+
| **Assumption filling** | User says "fast", assume 100ms | Ask: "What response time?" |
|
|
259
|
+
| **Premature promise** | "OK, I'll implement it" | "Let me confirm a few things..." |
|
|
260
|
+
| **Pass on vague** | User says "images etc.", start coding | Ask: "What else does 'etc.' include?" |
|
|
261
|
+
| **Skip edge cases** | Only consider happy path | MUST clarify error handling |
|
|
262
|
+
| **Overconfident** | Start without asking | 5 min confirmation saves 5 hours rework |
|
|
263
|
+
| **Question dump** | Ask 5 questions at once | One question at a time, explore deeply |
|
|
264
|
+
| **Open-ended first** | "What do you want?" | "A, B, or C?" - choices are easier |
|
|
265
|
+
|
|
266
|
+
## Common Rationalizations
|
|
267
|
+
|
|
268
|
+
| Excuse | Why Wrong | Correct Action |
|
|
269
|
+
|--------|-----------|----------------|
|
|
270
|
+
| "User should know what they want" | Users often unclear on details | Help with structured questions |
|
|
271
|
+
| "Too many questions annoy users" | Rework wastes more time | One question at a time is less annoying |
|
|
272
|
+
| "This is simple, no confirmation needed" | "Simple" requirements hide assumptions | Simple also needs acceptance criteria |
|
|
273
|
+
| "I'll make a draft for user to see" | Wrong first version anchors direction | Align intent first, then implement |
|
|
274
|
+
| "Time is tight, just do it" | Rework takes 10x alignment time | 15 min alignment > 3 hour rework |
|
|
275
|
+
| "Asking one by one is too slow" | Batch questions get shallow answers | Deep exploration finds hidden requirements |
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: analyzing-measurements
|
|
3
|
+
description: Use when optimizing performance or establishing metrics. Establishes performance baselines, measures and compares data, verifies optimization effects.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Analyzing Measurements
|
|
7
|
+
|
|
8
|
+
## Announcement (MANDATORY)
|
|
9
|
+
|
|
10
|
+
Before executing this skill, you MUST announce to the user:
|
|
11
|
+
|
|
12
|
+
「我将使用 **度量分析** 技能来建立性能基准、对比数据、验证优化效果。」
|
|
13
|
+
|
|
14
|
+
This creates a commitment checkpoint. Proceed only after announcing.
|
|
15
|
+
|
|
16
|
+
## Core Thinking
|
|
17
|
+
|
|
18
|
+
**Measure** - You can't improve what you don't measure.
|
|
19
|
+
|
|
20
|
+
**Recording**: Conversation output is invisible to users. You MUST record to workspace node. Standard: "If context is wiped now, can you recall discussion details from conclusion alone?"
|
|
21
|
+
|
|
22
|
+
**Progressive Recording**: Measurement data is precious. After each measurement run, immediately `log_append` the results. Data loss means re-running tests.
|
|
23
|
+
|
|
24
|
+
## Typical Actions
|
|
25
|
+
|
|
26
|
+
- Establish baseline
|
|
27
|
+
- Compare data
|
|
28
|
+
- Verify improvements
|
|
29
|
+
|
|
30
|
+
## SOP
|
|
31
|
+
|
|
32
|
+
### 1. Define Metrics
|
|
33
|
+
|
|
34
|
+
Determine what to measure.
|
|
35
|
+
|
|
36
|
+
**Common metrics**:
|
|
37
|
+
- **Frontend**: FPS, First Paint, TTI, LCP, Bundle size
|
|
38
|
+
- **API**: Response time (P50/P95/P99), QPS, Error rate
|
|
39
|
+
- **System**: CPU usage, Memory, Disk I/O, Network
|
|
40
|
+
- **Business**: Conversion rate, Retention, Success rate
|
|
41
|
+
|
|
42
|
+
**Output**: Metric list with target values
|
|
43
|
+
|
|
44
|
+
### 2. Establish Test Environment
|
|
45
|
+
|
|
46
|
+
Ensure reproducible results.
|
|
47
|
+
|
|
48
|
+
**Key factors**:
|
|
49
|
+
- **Hardware**: CPU, Memory, Disk specs
|
|
50
|
+
- **Software**: OS, Runtime version, Dependencies
|
|
51
|
+
- **Network**: Bandwidth, Latency
|
|
52
|
+
- **Data scale**: Test data volume, Concurrent users
|
|
53
|
+
|
|
54
|
+
**Output**: Test environment documentation
|
|
55
|
+
|
|
56
|
+
### 3. Get Baseline
|
|
57
|
+
|
|
58
|
+
Execute tests, record current values.
|
|
59
|
+
|
|
60
|
+
**Execution points**:
|
|
61
|
+
- Choose appropriate tools (wrk, k6, Lighthouse, Chrome DevTools)
|
|
62
|
+
- Run multiple times, take average
|
|
63
|
+
- Record environment conditions
|
|
64
|
+
- Document measurement methodology
|
|
65
|
+
|
|
66
|
+
**Output**: Baseline data table
|
|
67
|
+
|
|
68
|
+
**⚠️ Checkpoint**: After getting baseline, immediately `log_append` the baseline data. This is your reference point.
|
|
69
|
+
|
|
70
|
+
### 4. Post-Optimization Comparison
|
|
71
|
+
|
|
72
|
+
After optimization, measure again and compare.
|
|
73
|
+
|
|
74
|
+
**Comparison points**:
|
|
75
|
+
- Use same test environment
|
|
76
|
+
- Use same methodology
|
|
77
|
+
- Calculate improvement rate
|
|
78
|
+
- Verify no regression in other metrics
|
|
79
|
+
|
|
80
|
+
**Output**: Before/After comparison table
|
|
81
|
+
|
|
82
|
+
### 5. Record to Workspace (MANDATORY)
|
|
83
|
+
|
|
84
|
+
After measurement, MUST record to workspace node:
|
|
85
|
+
|
|
86
|
+
**Recording locations**:
|
|
87
|
+
| Content | Location | Tool |
|
|
88
|
+
|---------|----------|------|
|
|
89
|
+
| Key conclusions (brief) | conclusion | node_update |
|
|
90
|
+
| Metrics, baseline, results | notes | node_update |
|
|
91
|
+
| Full measurement data (>200 lines) | MEMO | memo_create + node_reference |
|
|
92
|
+
|
|
93
|
+
**NEVER hardcode MEMO IDs** in text like "见 MEMO#xxx". Use `node_reference` to link.
|
|
94
|
+
|
|
95
|
+
**Reference rules** (measurement tasks SHOULD include):
|
|
96
|
+
- Measurement tool and version
|
|
97
|
+
- Environment specs (for reproducibility)
|
|
98
|
+
- Data source/test case reference
|
|
99
|
+
- Core principle: reproducible measurements need documented conditions
|
|
100
|
+
|
|
101
|
+
**Conclusion template** (brief):
|
|
102
|
+
```
|
|
103
|
+
[度量目标] + [基线值] + [结果] + [结论]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Notes template** (detailed):
|
|
107
|
+
```
|
|
108
|
+
**Objective**: [what measured]
|
|
109
|
+
**Environment**: [hardware, software, data scale]
|
|
110
|
+
**Metrics**: [name] (target: [value])
|
|
111
|
+
**Baseline**: [value] ([method])
|
|
112
|
+
**After**: [value] ([change %])
|
|
113
|
+
**Analysis**: [explanation]
|
|
114
|
+
**Conclusion**: [target met? next steps?]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Output**: node_update called with conclusion + notes
|
|
118
|
+
|
|
119
|
+
### 6. Present to User (MANDATORY)
|
|
120
|
+
|
|
121
|
+
After recording, MUST present measurement results to user:
|
|
122
|
+
|
|
123
|
+
1. **Output summary**: Show results using Output Template
|
|
124
|
+
2. **Wait for confirmation**: Ask user if analysis is correct and next steps are acceptable
|
|
125
|
+
3. **NEVER proceed directly**: Do NOT start optimization without user acknowledgment
|
|
126
|
+
|
|
127
|
+
**Output**: Results presented, user confirmation received
|
|
128
|
+
|
|
129
|
+
## Checklist
|
|
130
|
+
|
|
131
|
+
### Pre-Measurement
|
|
132
|
+
- [ ] Metrics defined with targets
|
|
133
|
+
- [ ] Test environment documented
|
|
134
|
+
- [ ] Measurement tools selected
|
|
135
|
+
- [ ] Baseline established
|
|
136
|
+
|
|
137
|
+
### Post-Optimization
|
|
138
|
+
- [ ] Same environment used
|
|
139
|
+
- [ ] Same methodology applied
|
|
140
|
+
- [ ] Improvement calculated
|
|
141
|
+
- [ ] No regression verified
|
|
142
|
+
|
|
143
|
+
### Recording (MANDATORY)
|
|
144
|
+
- [ ] **Conclusion written**: Brief summary in node conclusion
|
|
145
|
+
- [ ] **Notes written**: Metrics, baseline, results in node notes
|
|
146
|
+
- [ ] **MEMO linked**: Long content in MEMO, linked via node_reference (not hardcoded ID)
|
|
147
|
+
- [ ] **Wipe test**: If context wiped now, can recall details from recorded content?
|
|
148
|
+
|
|
149
|
+
### Long Content Protection
|
|
150
|
+
- [ ] **Baseline logged**: Used `log_append` immediately after baseline measurement
|
|
151
|
+
- [ ] **Environment documented**: Tool versions and specs recorded
|
|
152
|
+
- [ ] **Data preserved**: Raw measurement data saved before analysis
|
|
153
|
+
|
|
154
|
+
## Output Template
|
|
155
|
+
|
|
156
|
+
```markdown
|
|
157
|
+
### Measurement Summary
|
|
158
|
+
**Objective**: [What to optimize]
|
|
159
|
+
**Key Metric**: [Primary metric]
|
|
160
|
+
**Result**: [X% improvement / No improvement]
|
|
161
|
+
|
|
162
|
+
### Environment
|
|
163
|
+
- **Hardware**: [Specs]
|
|
164
|
+
- **Software**: [Versions]
|
|
165
|
+
- **Data scale**: [Volume]
|
|
166
|
+
|
|
167
|
+
### Baseline (Before)
|
|
168
|
+
| Metric | Value | Target |
|
|
169
|
+
|--------|-------|--------|
|
|
170
|
+
| [Metric 1] | [Value] | [Target] |
|
|
171
|
+
| [Metric 2] | [Value] | [Target] |
|
|
172
|
+
|
|
173
|
+
### After Optimization
|
|
174
|
+
| Metric | Before | After | Change |
|
|
175
|
+
|--------|--------|-------|--------|
|
|
176
|
+
| [Metric 1] | [Value] | [Value] | [+/-X%] |
|
|
177
|
+
| [Metric 2] | [Value] | [Value] | [+/-X%] |
|
|
178
|
+
|
|
179
|
+
### Analysis
|
|
180
|
+
[Explanation of results]
|
|
181
|
+
|
|
182
|
+
### Conclusion
|
|
183
|
+
- Target achieved: [Yes/No]
|
|
184
|
+
- Further optimization needed: [Yes/No]
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Red Flags
|
|
188
|
+
|
|
189
|
+
1. **No baseline** - Optimize without measuring current state
|
|
190
|
+
2. **Different environments** - Compare results from different conditions
|
|
191
|
+
3. **Single run** - Draw conclusions from one measurement
|
|
192
|
+
4. **Ignore other metrics** - Optimize one metric, break others
|
|
193
|
+
5. **Silent execution** - Complete measurement, then immediately start optimization without showing user
|
|
194
|
+
6. **Lost baseline** - Forget to log baseline before optimization
|
|
195
|
+
7. **Undocumented environment** - Can't reproduce measurement conditions
|
|
196
|
+
|
|
197
|
+
## Mandatory Rules
|
|
198
|
+
|
|
199
|
+
1. **MUST establish baseline first** - NEVER optimize without measuring current state
|
|
200
|
+
2. **MUST use same environment** - All measurements in identical conditions, no exceptions
|
|
201
|
+
3. **MUST run multiple times** - Single run data is NEVER conclusive
|
|
202
|
+
4. **MUST check for regressions** - Improving one metric while breaking others is unacceptable
|
|
203
|
+
5. **NEVER report without evidence** - Every claim needs numbers with methodology
|
|
204
|
+
6. **MUST present before proceed** - After measurement, NEVER start optimization directly. Present results, wait for user confirmation
|
|
205
|
+
|
|
206
|
+
## Anti-Patterns
|
|
207
|
+
|
|
208
|
+
| Pattern | Wrong | Right |
|
|
209
|
+
|---------|-------|-------|
|
|
210
|
+
| **Guess performance** | "Feels faster" | Measure with numbers |
|
|
211
|
+
| **Premature optimization** | Optimize without profiling | Measure first, optimize bottleneck |
|
|
212
|
+
| **Cherry-pick results** | Report best run only | Average multiple runs |
|
|
213
|
+
| **Tunnel vision** | Only check target metric | Verify no regression |
|
|
214
|
+
|
|
215
|
+
## Common Rationalizations
|
|
216
|
+
|
|
217
|
+
| Excuse | Why Wrong | Correct Action |
|
|
218
|
+
|--------|-----------|----------------|
|
|
219
|
+
| "It obviously improved" | Perception is not measurement | Show before/after numbers |
|
|
220
|
+
| "One test run is enough" | Variance makes single runs unreliable | Run 3+ times, take average |
|
|
221
|
+
| "Environment doesn't matter" | Different conditions = incomparable results | Document and match environment |
|
|
222
|
+
| "We're in a hurry, skip baseline" | No baseline = no proof of improvement | 10 min baseline saves hours of debate |
|
|
223
|
+
| "Target metric improved, we're done" | May have broken other metrics | ALWAYS check for regressions |
|