xtep-workspace 1.10.10
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 +525 -0
- package/README.md +188 -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 +89 -0
- package/plugin/README.md +141 -0
- package/plugin/agents/xtep-executor.md +114 -0
- package/plugin/agents/xtep-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//351/205/215/347/275/256/346/226/271/345/274/217.md +330 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-verification
|
|
3
|
+
description: Use when planning testing strategy or defining acceptance criteria. Designs test cases and acceptance steps to ensure requirements and designs are properly verified.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Planning Verification
|
|
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
|
+
**Verify** - Trust but verify. Every feature needs a way to prove it works.
|
|
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**: For large test plans, `log_append` after completing each test case category (normal, edge, error).
|
|
23
|
+
|
|
24
|
+
## Typical Actions
|
|
25
|
+
|
|
26
|
+
- Design test cases
|
|
27
|
+
- Define acceptance steps
|
|
28
|
+
- Plan verification methods
|
|
29
|
+
|
|
30
|
+
## SOP
|
|
31
|
+
|
|
32
|
+
### 1. Identify Verification Points
|
|
33
|
+
|
|
34
|
+
- Extract key items from requirements and acceptance criteria
|
|
35
|
+
- Identify functional verification points (does feature work?)
|
|
36
|
+
- Identify non-functional points (performance, security, compatibility)
|
|
37
|
+
- Set verification priority (P0/P1/P2)
|
|
38
|
+
|
|
39
|
+
### 2. Design Test Cases
|
|
40
|
+
|
|
41
|
+
- **Normal flow**: Verify core functionality under normal conditions
|
|
42
|
+
- **Edge cases**: Verify handling of boundary values, limits
|
|
43
|
+
- **Error cases**: Verify error handling, fault tolerance
|
|
44
|
+
- Use Given/When/Then format
|
|
45
|
+
|
|
46
|
+
### 3. Determine Verification Methods
|
|
47
|
+
|
|
48
|
+
Choose appropriate method based on verification goal:
|
|
49
|
+
|
|
50
|
+
| Method | Use For |
|
|
51
|
+
|--------|---------|
|
|
52
|
+
| **Unit test** | Single function/class behavior |
|
|
53
|
+
| **Integration test** | Module collaboration |
|
|
54
|
+
| **E2E test** | Complete business flow |
|
|
55
|
+
| **Manual verification** | UI interaction, UX |
|
|
56
|
+
|
|
57
|
+
### 4. Write Acceptance Steps
|
|
58
|
+
|
|
59
|
+
- Provide reproducible verification sequence
|
|
60
|
+
- Specify expected result for each step
|
|
61
|
+
- Include precondition setup
|
|
62
|
+
- Include cleanup after verification
|
|
63
|
+
|
|
64
|
+
### 5. Record to Workspace (MANDATORY)
|
|
65
|
+
|
|
66
|
+
After planning, MUST record to workspace node:
|
|
67
|
+
|
|
68
|
+
**Recording locations**:
|
|
69
|
+
| Content | Location | Tool |
|
|
70
|
+
|---------|----------|------|
|
|
71
|
+
| Key conclusions (brief) | conclusion | node_update |
|
|
72
|
+
| Test cases, acceptance steps | notes | node_update |
|
|
73
|
+
| Full test plan (>200 lines) | MEMO | memo_create + node_reference |
|
|
74
|
+
|
|
75
|
+
**NEVER hardcode MEMO IDs** in text like "见 MEMO#xxx". Use `node_reference` to link.
|
|
76
|
+
|
|
77
|
+
**Reference rules** (verification tasks SHOULD include):
|
|
78
|
+
- Requirements/acceptance criteria being verified
|
|
79
|
+
- Related design documents
|
|
80
|
+
- Core principle: test cases should trace back to requirements
|
|
81
|
+
|
|
82
|
+
**Conclusion template** (brief):
|
|
83
|
+
```
|
|
84
|
+
[验证范围] + [用例数量] + [验证方法]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Notes template** (detailed):
|
|
88
|
+
```
|
|
89
|
+
**Scope**: [what to verify]
|
|
90
|
+
**Cases**: P0: X, P1: Y, P2: Z
|
|
91
|
+
**Methods**: [unit/integration/e2e/manual]
|
|
92
|
+
**Test Cases**:
|
|
93
|
+
- TC-001: [name] - Given/When/Then
|
|
94
|
+
- TC-002: [name] - Given/When/Then
|
|
95
|
+
**Edge Cases**: [list]
|
|
96
|
+
**Acceptance Steps**:
|
|
97
|
+
1. [step] → Expected: [result]
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Output**: node_update called with conclusion + notes
|
|
101
|
+
|
|
102
|
+
### 6. Present to User (MANDATORY)
|
|
103
|
+
|
|
104
|
+
After recording, MUST present verification plan to user:
|
|
105
|
+
|
|
106
|
+
1. **Output summary**: Show test cases and acceptance steps using Output Template
|
|
107
|
+
2. **Wait for confirmation**: Ask user if verification plan is complete and acceptable
|
|
108
|
+
3. **NEVER proceed directly**: Do NOT start implementation/testing without user approval
|
|
109
|
+
|
|
110
|
+
**Output**: Verification plan presented, user confirmation received
|
|
111
|
+
|
|
112
|
+
## Checklist
|
|
113
|
+
|
|
114
|
+
### Verification Points
|
|
115
|
+
- [ ] **Functional points**: All functional requirements have verification items
|
|
116
|
+
- [ ] **Non-functional points**: Performance, security requirements covered
|
|
117
|
+
- [ ] **Priority set**: P0/P1/P2 for each item
|
|
118
|
+
|
|
119
|
+
### Test Cases
|
|
120
|
+
- [ ] **Normal flow**: At least 3 happy path cases
|
|
121
|
+
- [ ] **Edge cases**: Boundary values covered
|
|
122
|
+
- [ ] **Error cases**: Exception handling verified
|
|
123
|
+
|
|
124
|
+
### Acceptance Steps
|
|
125
|
+
- [ ] **Reproducible**: Steps can be followed by anyone
|
|
126
|
+
- [ ] **Expected results**: Each step has clear expected outcome
|
|
127
|
+
- [ ] **Preconditions**: Setup requirements documented
|
|
128
|
+
- [ ] **Cleanup**: Post-verification cleanup documented
|
|
129
|
+
|
|
130
|
+
### Recording (MANDATORY)
|
|
131
|
+
- [ ] **Conclusion written**: Brief summary in node conclusion
|
|
132
|
+
- [ ] **Notes written**: Test cases, acceptance steps in node notes
|
|
133
|
+
- [ ] **MEMO linked**: Long content in MEMO, linked via node_reference (not hardcoded ID)
|
|
134
|
+
- [ ] **Wipe test**: If context wiped now, can recall details from recorded content?
|
|
135
|
+
|
|
136
|
+
### Long Content Protection
|
|
137
|
+
- [ ] **Progressive recording**: Logged after each test case category
|
|
138
|
+
- [ ] **Requirements traced**: Test cases reference source requirements
|
|
139
|
+
|
|
140
|
+
## Output Template
|
|
141
|
+
|
|
142
|
+
```markdown
|
|
143
|
+
### Verification Strategy
|
|
144
|
+
**Scope**: [What to verify]
|
|
145
|
+
**Priority**: [P0/P1/P2]
|
|
146
|
+
|
|
147
|
+
### Test Cases
|
|
148
|
+
|
|
149
|
+
#### TC-001: [Case Name]
|
|
150
|
+
**Priority**: P0
|
|
151
|
+
**Type**: [Unit/Integration/E2E/Manual]
|
|
152
|
+
|
|
153
|
+
**Given**: [Precondition]
|
|
154
|
+
**When**: [Action]
|
|
155
|
+
**Then**: [Expected result]
|
|
156
|
+
|
|
157
|
+
#### TC-002: [Case Name]
|
|
158
|
+
**Priority**: P1
|
|
159
|
+
**Type**: [Unit/Integration/E2E/Manual]
|
|
160
|
+
|
|
161
|
+
**Given**: [Precondition]
|
|
162
|
+
**When**: [Action]
|
|
163
|
+
**Then**: [Expected result]
|
|
164
|
+
|
|
165
|
+
### Edge Cases
|
|
166
|
+
|
|
167
|
+
| Case | Input | Expected |
|
|
168
|
+
|------|-------|----------|
|
|
169
|
+
| Empty input | "" | [Result] |
|
|
170
|
+
| Max value | [MAX] | [Result] |
|
|
171
|
+
| Invalid | [Invalid] | Error message |
|
|
172
|
+
|
|
173
|
+
### Acceptance Steps
|
|
174
|
+
|
|
175
|
+
#### Preconditions
|
|
176
|
+
1. [Setup step 1]
|
|
177
|
+
2. [Setup step 2]
|
|
178
|
+
|
|
179
|
+
#### Verification
|
|
180
|
+
1. [Action 1] → Expected: [Result 1]
|
|
181
|
+
2. [Action 2] → Expected: [Result 2]
|
|
182
|
+
3. [Action 3] → Expected: [Result 3]
|
|
183
|
+
|
|
184
|
+
#### Cleanup
|
|
185
|
+
1. [Cleanup step 1]
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Coverage Guidelines
|
|
189
|
+
|
|
190
|
+
### Functional Coverage
|
|
191
|
+
- All features from requirements
|
|
192
|
+
- All acceptance criteria
|
|
193
|
+
- All user stories
|
|
194
|
+
|
|
195
|
+
### Scenario Coverage
|
|
196
|
+
| Type | Examples |
|
|
197
|
+
|------|----------|
|
|
198
|
+
| **Happy path** | Normal successful flow |
|
|
199
|
+
| **Edge cases** | Empty, null, max, min, special chars |
|
|
200
|
+
| **Error cases** | Invalid input, timeout, permission denied |
|
|
201
|
+
| **Concurrent** | Multiple users, race conditions |
|
|
202
|
+
|
|
203
|
+
### Priority Guidelines
|
|
204
|
+
| Priority | Criteria |
|
|
205
|
+
|----------|----------|
|
|
206
|
+
| **P0** | Core functionality, blocking issues |
|
|
207
|
+
| **P1** | Important features, significant bugs |
|
|
208
|
+
| **P2** | Nice to have, minor issues |
|
|
209
|
+
|
|
210
|
+
## Red Flags
|
|
211
|
+
|
|
212
|
+
1. **No test plan** - Ship without any verification
|
|
213
|
+
2. **Only happy path** - Ignore edge and error cases
|
|
214
|
+
3. **Manual only** - No automated tests for core logic
|
|
215
|
+
4. **No acceptance criteria** - No way to know if done
|
|
216
|
+
5. **Silent execution** - Complete verification planning, then immediately start implementation without showing user
|
|
217
|
+
6. **Untraceable tests** - Test cases without reference to source requirements
|
|
218
|
+
|
|
219
|
+
## Mandatory Rules
|
|
220
|
+
|
|
221
|
+
1. **MUST plan tests before/during implementation** - NEVER ship without verification plan
|
|
222
|
+
2. **MUST cover edge and error cases** - Happy path alone is insufficient
|
|
223
|
+
3. **MUST have acceptance criteria** - No way to know "done" without criteria
|
|
224
|
+
4. **MUST automate critical paths** - Manual-only testing for core logic is unacceptable
|
|
225
|
+
5. **NEVER accept flaky tests** - Unreliable tests erode trust in the test suite
|
|
226
|
+
6. **MUST present before proceed** - After planning verification, NEVER start implementation directly. Present plan, wait for user approval
|
|
227
|
+
|
|
228
|
+
## Anti-Patterns
|
|
229
|
+
|
|
230
|
+
| Pattern | Wrong | Right |
|
|
231
|
+
|---------|-------|-------|
|
|
232
|
+
| **Test after** | Write tests after shipping | Plan tests before/during |
|
|
233
|
+
| **100% coverage** | Coverage goal over usefulness | Cover critical paths well |
|
|
234
|
+
| **Test implementation** | Test internal details | Test behavior and contracts |
|
|
235
|
+
| **Flaky tests** | Tests that sometimes fail | Reliable, deterministic tests |
|
|
236
|
+
|
|
237
|
+
## Common Rationalizations
|
|
238
|
+
|
|
239
|
+
| Excuse | Why Wrong | Correct Action |
|
|
240
|
+
|--------|-----------|----------------|
|
|
241
|
+
| "It works, I tested manually" | Manual testing doesn't scale, misses cases | Create automated tests |
|
|
242
|
+
| "Happy path covers 90% of usage" | Bugs hide in edge cases, cause most issues | MUST test edge and error cases |
|
|
243
|
+
| "No time for test planning" | Bugs in production cost 10x more to fix | Plan tests upfront |
|
|
244
|
+
| "High coverage = good quality" | Coverage without useful tests is vanity | Focus on critical path coverage |
|
|
245
|
+
| "We'll add tests later" | Later never comes, debt accumulates | Test with implementation |
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: preparing-dispatch
|
|
3
|
+
description: Use when creating task nodes that will be dispatched to subagents. Prepares execution nodes for dispatch with complete requirements and acceptance criteria.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Preparing Dispatch
|
|
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
|
+
**Complete** - A well-prepared node reduces executor confusion and retry cycles. Invest time upfront.
|
|
19
|
+
|
|
20
|
+
## Typical Actions
|
|
21
|
+
|
|
22
|
+
- Define clear requirements
|
|
23
|
+
- Write acceptance criteria (WHEN/THEN)
|
|
24
|
+
- Attach relevant references
|
|
25
|
+
- Verify readiness before dispatch
|
|
26
|
+
|
|
27
|
+
## SOP
|
|
28
|
+
|
|
29
|
+
### 1. Define Clear Requirement
|
|
30
|
+
|
|
31
|
+
**Goal**: Write unambiguous task description.
|
|
32
|
+
|
|
33
|
+
**Requirement checklist**:
|
|
34
|
+
- **What**: Specific deliverable (not vague goal)
|
|
35
|
+
- **Where**: Files/modules affected
|
|
36
|
+
- **How**: Technical approach (if constrained)
|
|
37
|
+
- **Constraints**: What NOT to do
|
|
38
|
+
|
|
39
|
+
**Good vs Bad examples**:
|
|
40
|
+
```
|
|
41
|
+
❌ "Improve performance"
|
|
42
|
+
✅ "Reduce API response time for /users endpoint from 500ms to <100ms by adding Redis caching"
|
|
43
|
+
|
|
44
|
+
❌ "Fix the bug"
|
|
45
|
+
✅ "Fix login failure when email contains '+' character by URL-encoding the email parameter in AuthService.ts"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Output**: Clear, specific requirement text
|
|
49
|
+
|
|
50
|
+
### 2. Write Acceptance Criteria
|
|
51
|
+
|
|
52
|
+
**Goal**: Define verifiable success conditions.
|
|
53
|
+
|
|
54
|
+
**Format**: WHEN/THEN pairs
|
|
55
|
+
```
|
|
56
|
+
WHEN [trigger condition] THEN [expected result]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Coverage requirements**:
|
|
60
|
+
- At least 1 criterion per main feature
|
|
61
|
+
- Include edge cases for critical paths
|
|
62
|
+
- Include error scenarios
|
|
63
|
+
|
|
64
|
+
**Examples**:
|
|
65
|
+
```
|
|
66
|
+
WHEN user clicks login button with valid credentials
|
|
67
|
+
THEN user is redirected to dashboard within 2 seconds
|
|
68
|
+
|
|
69
|
+
WHEN user clicks login button with invalid password
|
|
70
|
+
THEN error message "Invalid credentials" is displayed
|
|
71
|
+
|
|
72
|
+
WHEN API request times out
|
|
73
|
+
THEN retry is attempted up to 3 times with exponential backoff
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Output**: List of WHEN/THEN acceptance criteria
|
|
77
|
+
|
|
78
|
+
### 2.5. Define Verification Method (MANDATORY)
|
|
79
|
+
|
|
80
|
+
**Goal**: Specify HOW each criterion will be verified.
|
|
81
|
+
|
|
82
|
+
**Format**: Add Verify column to each criterion
|
|
83
|
+
|
|
84
|
+
| WHEN | THEN | Verify |
|
|
85
|
+
|------|------|--------|
|
|
86
|
+
| 调用 API | 返回正确数据 | `[cmd] npm test` |
|
|
87
|
+
| 编译项目 | 无错误 | `[cmd] make build` |
|
|
88
|
+
| 打开页面 | 显示组件 | `[manual] 打开浏览器检查` |
|
|
89
|
+
| 添加函数 | 函数可用 | `[check] file:function exists` |
|
|
90
|
+
|
|
91
|
+
**Verify 列格式**:
|
|
92
|
+
|
|
93
|
+
| 前缀 | 含义 | 示例 |
|
|
94
|
+
|------|------|------|
|
|
95
|
+
| `[cmd]` | 运行命令验证 | `[cmd] pytest tests/` |
|
|
96
|
+
| `[manual]` | 手动验证步骤 | `[manual] 打开页面检查 UI` |
|
|
97
|
+
| `[check]` | 代码检查 | `[check] no TODO/FIXME` |
|
|
98
|
+
|
|
99
|
+
**Examples by project type**:
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
# Node.js 项目
|
|
103
|
+
| WHEN | THEN | Verify |
|
|
104
|
+
|------|------|--------|
|
|
105
|
+
| 调用 createUser | 返回用户 ID | `[cmd] npm test -- --grep 'createUser'` |
|
|
106
|
+
| 编译项目 | 无类型错误 | `[cmd] npx tsc --noEmit` |
|
|
107
|
+
|
|
108
|
+
# Python 项目
|
|
109
|
+
| WHEN | THEN | Verify |
|
|
110
|
+
|------|------|--------|
|
|
111
|
+
| 运行脚本 | 输出正确 | `[cmd] pytest tests/test_main.py` |
|
|
112
|
+
| 导入模块 | 无错误 | `[cmd] python -c "import mymodule"` |
|
|
113
|
+
|
|
114
|
+
# 无测试框架
|
|
115
|
+
| WHEN | THEN | Verify |
|
|
116
|
+
|------|------|--------|
|
|
117
|
+
| 添加函数 | 可被调用 | `[check] src/utils.ts:newFunction exists` |
|
|
118
|
+
| 修改配置 | 格式正确 | `[cmd] cat config.json | jq .` |
|
|
119
|
+
|
|
120
|
+
# UI/文档任务
|
|
121
|
+
| WHEN | THEN | Verify |
|
|
122
|
+
|------|------|--------|
|
|
123
|
+
| 打开设置页 | 显示新选项 | `[manual] 1.打开设置 2.检查新选项` |
|
|
124
|
+
| 阅读文档 | 内容清晰 | `[manual] 检查文档完整性` |
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Required verifications** (至少包含一个):
|
|
128
|
+
- 如果有构建步骤:`[cmd] <build command>`
|
|
129
|
+
- 如果有自动化测试:`[cmd] <test command>`
|
|
130
|
+
- 如果是代码任务:`[check] no TODO/FIXME in changed files`
|
|
131
|
+
|
|
132
|
+
**Output**: Each criterion has a Verify method defined
|
|
133
|
+
|
|
134
|
+
### 3. Attach References
|
|
135
|
+
|
|
136
|
+
**Goal**: Provide context the executor needs.
|
|
137
|
+
|
|
138
|
+
**Reference types**:
|
|
139
|
+
- **Code files**: Related source files
|
|
140
|
+
- **Documentation**: API docs, design docs
|
|
141
|
+
- **Other nodes**: Related completed work
|
|
142
|
+
- **External**: URLs, specs
|
|
143
|
+
|
|
144
|
+
**Use node_reference**:
|
|
145
|
+
```
|
|
146
|
+
node_reference(nodeId, targetPath, action="add", description="...")
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Output**: Node has relevant references attached
|
|
150
|
+
|
|
151
|
+
### 4. Verify Readiness
|
|
152
|
+
|
|
153
|
+
**Goal**: Confirm node is ready for dispatch.
|
|
154
|
+
|
|
155
|
+
**Readiness checklist**:
|
|
156
|
+
- [ ] Requirement is specific and actionable
|
|
157
|
+
- [ ] At least 2 acceptance criteria defined
|
|
158
|
+
- [ ] References attached for context
|
|
159
|
+
- [ ] No ambiguous terms (define them if used)
|
|
160
|
+
- [ ] Scope fits single execution
|
|
161
|
+
|
|
162
|
+
**If not ready**:
|
|
163
|
+
- Add missing information
|
|
164
|
+
- Split if scope too large
|
|
165
|
+
- Clarify ambiguous parts
|
|
166
|
+
|
|
167
|
+
**Output**: Node passes readiness check
|
|
168
|
+
|
|
169
|
+
## Checklist
|
|
170
|
+
|
|
171
|
+
### Requirement
|
|
172
|
+
- [ ] Specific deliverable stated
|
|
173
|
+
- [ ] Affected files/modules identified
|
|
174
|
+
- [ ] Constraints documented
|
|
175
|
+
- [ ] No vague terms
|
|
176
|
+
|
|
177
|
+
### Acceptance Criteria
|
|
178
|
+
- [ ] At least 2 WHEN/THEN pairs
|
|
179
|
+
- [ ] Main feature covered
|
|
180
|
+
- [ ] Edge cases included
|
|
181
|
+
- [ ] Error scenarios included
|
|
182
|
+
|
|
183
|
+
### Verification Method
|
|
184
|
+
- [ ] Each criterion has Verify column defined
|
|
185
|
+
- [ ] At least one `[cmd]` verification (if applicable)
|
|
186
|
+
- [ ] `[check] no TODO/FIXME` included for code tasks
|
|
187
|
+
|
|
188
|
+
### References
|
|
189
|
+
- [ ] Relevant code files linked
|
|
190
|
+
- [ ] Related nodes referenced
|
|
191
|
+
- [ ] Documentation attached (if applicable)
|
|
192
|
+
|
|
193
|
+
### Readiness
|
|
194
|
+
- [ ] Requirement is unambiguous
|
|
195
|
+
- [ ] Criteria are testable
|
|
196
|
+
- [ ] Scope is appropriate
|
|
197
|
+
- [ ] Context is sufficient
|
|
198
|
+
|
|
199
|
+
## Output Template
|
|
200
|
+
|
|
201
|
+
### Node Creation Call
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
node_create({
|
|
205
|
+
workspaceId: "...",
|
|
206
|
+
parentId: "...",
|
|
207
|
+
type: "execution",
|
|
208
|
+
title: "[Action verb] [specific target]",
|
|
209
|
+
requirement: `[Clear, specific task description]
|
|
210
|
+
|
|
211
|
+
## Affected Files
|
|
212
|
+
- [file1]
|
|
213
|
+
- [file2]
|
|
214
|
+
|
|
215
|
+
## Approach
|
|
216
|
+
[Technical approach if constrained]
|
|
217
|
+
|
|
218
|
+
## Constraints
|
|
219
|
+
- [What NOT to do]
|
|
220
|
+
- [Boundaries to respect]`,
|
|
221
|
+
acceptanceCriteria: [
|
|
222
|
+
{ when: "[condition 1]", then: "[result 1]" },
|
|
223
|
+
{ when: "[condition 2]", then: "[result 2]" },
|
|
224
|
+
{ when: "[error condition]", then: "[error handling]" }
|
|
225
|
+
]
|
|
226
|
+
})
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### After Creation
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
// Attach references
|
|
233
|
+
node_reference({
|
|
234
|
+
nodeId: "[created-node-id]",
|
|
235
|
+
targetPath: "src/relevant/file.ts",
|
|
236
|
+
action: "add",
|
|
237
|
+
description: "Main file to modify"
|
|
238
|
+
})
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Recording to Workspace
|
|
242
|
+
|
|
243
|
+
**Principle**: Preparation quality determines execution quality.
|
|
244
|
+
|
|
245
|
+
### What to Record (in parent node)
|
|
246
|
+
|
|
247
|
+
| Content | Where | Example |
|
|
248
|
+
|---------|-------|---------|
|
|
249
|
+
| Dispatched node | log | "Created exec node node-xxx for [task]" |
|
|
250
|
+
| Preparation notes | log | "Added 3 acceptance criteria" |
|
|
251
|
+
| Readiness status | log | "Node ready for dispatch" |
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Red Flags
|
|
256
|
+
|
|
257
|
+
1. **Vague requirements** - "Make it better" without specifics
|
|
258
|
+
2. **No acceptance criteria** - No way to verify completion
|
|
259
|
+
3. **No verification method** - Criteria without Verify column = untestable
|
|
260
|
+
4. **Missing context** - Executor will need to guess
|
|
261
|
+
5. **Scope too large** - Should be split into multiple nodes
|
|
262
|
+
|
|
263
|
+
## Mandatory Rules
|
|
264
|
+
|
|
265
|
+
1. **MUST write specific requirements** - Vague requirements cause executor confusion
|
|
266
|
+
2. **MUST have at least 2 acceptance criteria** - No criteria = no way to verify done
|
|
267
|
+
3. **MUST define verification method for each criterion** - No verification = no way to prove done
|
|
268
|
+
4. **MUST attach references** - Context-free tasks lead to wrong assumptions
|
|
269
|
+
5. **MUST verify readiness before dispatch** - Unclear nodes waste retry cycles
|
|
270
|
+
6. **NEVER dispatch scope-too-large tasks** - Split first, dispatch smaller units
|
|
271
|
+
|
|
272
|
+
## Anti-Patterns
|
|
273
|
+
|
|
274
|
+
| Pattern | Wrong | Right |
|
|
275
|
+
|---------|-------|-------|
|
|
276
|
+
| **Lazy prep** | "Just implement feature X" | Full requirement with criteria |
|
|
277
|
+
| **Assumed context** | Expect executor to know codebase | Attach relevant references |
|
|
278
|
+
| **Perfectionism** | 10 criteria for simple task | 2-4 criteria matching complexity |
|
|
279
|
+
| **Premature dispatch** | Dispatch unclear node | Verify readiness first |
|
|
280
|
+
|
|
281
|
+
## Common Rationalizations
|
|
282
|
+
|
|
283
|
+
| Excuse | Why Wrong | Correct Action |
|
|
284
|
+
|--------|-----------|----------------|
|
|
285
|
+
| "Executor will figure it out" | Guessing leads to wrong implementation | Provide clear requirements |
|
|
286
|
+
| "Adding criteria takes too long" | Retry cycles take longer | 5 min criteria saves 30 min retry |
|
|
287
|
+
| "The task is self-explanatory" | What's obvious to you isn't to executor | Write explicit requirements |
|
|
288
|
+
| "References aren't needed for simple tasks" | Simple tasks still need context | Always attach relevant files |
|
|
289
|
+
| "I'll clarify if executor asks" | Async clarification is slow | Front-load all context |
|
|
290
|
+
|
|
291
|
+
## Scope Guidelines
|
|
292
|
+
|
|
293
|
+
| Task Size | Criteria Count | Example |
|
|
294
|
+
|-----------|----------------|---------|
|
|
295
|
+
| Small (1-2 files) | 2-3 | Add a helper function |
|
|
296
|
+
| Medium (3-5 files) | 3-5 | Implement a feature |
|
|
297
|
+
| Large (5+ files) | Split first | Refactor module → split into parts |
|
|
298
|
+
|
|
299
|
+
**Rule of thumb**: If you can't write 2-4 clear criteria, the task is likely too vague or too large.
|