@liangjie559567/ultrapower 5.5.12 → 5.5.13
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -2
- package/LICENSE +21 -21
- package/bridge/gyoshu_bridge.py +846 -846
- package/bridge/mcp-server.cjs +145 -38
- package/commands/wizard.md +5 -0
- package/dist/agents/__tests__/agent-wrapper.test.d.ts +2 -0
- package/dist/agents/__tests__/agent-wrapper.test.d.ts.map +1 -0
- package/dist/agents/__tests__/agent-wrapper.test.js +37 -0
- package/dist/agents/__tests__/agent-wrapper.test.js.map +1 -0
- package/dist/agents/__tests__/timeout-config.test.d.ts +2 -0
- package/dist/agents/__tests__/timeout-config.test.d.ts.map +1 -0
- package/dist/agents/__tests__/timeout-config.test.js +35 -0
- package/dist/agents/__tests__/timeout-config.test.js.map +1 -0
- package/dist/agents/__tests__/timeout-manager.test.d.ts +2 -0
- package/dist/agents/__tests__/timeout-manager.test.d.ts.map +1 -0
- package/dist/agents/__tests__/timeout-manager.test.js +37 -0
- package/dist/agents/__tests__/timeout-manager.test.js.map +1 -0
- package/dist/agents/agent-wrapper.d.ts +22 -0
- package/dist/agents/agent-wrapper.d.ts.map +1 -0
- package/dist/agents/agent-wrapper.js +51 -0
- package/dist/agents/agent-wrapper.js.map +1 -0
- package/dist/agents/coordinator-deprecated.d.ts +18 -0
- package/dist/agents/coordinator-deprecated.d.ts.map +1 -0
- package/dist/agents/coordinator-deprecated.js +38 -0
- package/dist/agents/coordinator-deprecated.js.map +1 -0
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +4 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/timeout-config.d.ts +19 -0
- package/dist/agents/timeout-config.d.ts.map +1 -0
- package/dist/agents/timeout-config.js +57 -0
- package/dist/agents/timeout-config.js.map +1 -0
- package/dist/agents/timeout-manager.d.ts +30 -0
- package/dist/agents/timeout-manager.d.ts.map +1 -0
- package/dist/agents/timeout-manager.js +47 -0
- package/dist/agents/timeout-manager.js.map +1 -0
- package/dist/analytics/analytics-summary.d.ts.map +1 -1
- package/dist/analytics/analytics-summary.js +7 -1
- package/dist/analytics/analytics-summary.js.map +1 -1
- package/dist/analytics/metrics-collector.d.ts.map +1 -1
- package/dist/analytics/metrics-collector.js +9 -1
- package/dist/analytics/metrics-collector.js.map +1 -1
- package/dist/analytics/query-engine.d.ts.map +1 -1
- package/dist/analytics/query-engine.js +21 -3
- package/dist/analytics/query-engine.js.map +1 -1
- package/dist/analytics/token-tracker.js +3 -3
- package/dist/analytics/token-tracker.js.map +1 -1
- package/dist/analytics/transcript-scanner.d.ts.map +1 -1
- package/dist/analytics/transcript-scanner.js +1 -0
- package/dist/analytics/transcript-scanner.js.map +1 -1
- package/dist/audit/logger.d.ts +28 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/logger.js +78 -0
- package/dist/audit/logger.js.map +1 -0
- package/dist/audit/verify-cli.d.ts +2 -0
- package/dist/audit/verify-cli.d.ts.map +1 -0
- package/dist/audit/verify-cli.js +10 -0
- package/dist/audit/verify-cli.js.map +1 -0
- package/dist/core/hud-config.d.ts +19 -0
- package/dist/core/hud-config.d.ts.map +1 -0
- package/dist/core/hud-config.js +6 -0
- package/dist/core/hud-config.js.map +1 -0
- package/dist/core/job-types.d.ts +22 -0
- package/dist/core/job-types.d.ts.map +1 -0
- package/dist/core/job-types.js +6 -0
- package/dist/core/job-types.js.map +1 -0
- package/dist/features/diagnostics/error-matcher.d.ts +12 -0
- package/dist/features/diagnostics/error-matcher.d.ts.map +1 -0
- package/dist/features/diagnostics/error-matcher.js +41 -0
- package/dist/features/diagnostics/error-matcher.js.map +1 -0
- package/dist/features/diagnostics/index.d.ts +3 -0
- package/dist/features/diagnostics/index.d.ts.map +1 -0
- package/dist/features/diagnostics/index.js +3 -0
- package/dist/features/diagnostics/index.js.map +1 -0
- package/dist/features/diagnostics/solution-suggester.d.ts +12 -0
- package/dist/features/diagnostics/solution-suggester.d.ts.map +1 -0
- package/dist/features/diagnostics/solution-suggester.js +46 -0
- package/dist/features/diagnostics/solution-suggester.js.map +1 -0
- package/dist/features/diagnostics/types.d.ts +25 -0
- package/dist/features/diagnostics/types.d.ts.map +1 -0
- package/dist/features/diagnostics/types.js +5 -0
- package/dist/features/diagnostics/types.js.map +1 -0
- package/dist/features/state-manager/__tests__/cache.test.js +17 -17
- package/dist/features/state-manager/__tests__/cache.test.js.map +1 -1
- package/dist/features/state-manager/__tests__/encryption-performance.test.d.ts +2 -0
- package/dist/features/state-manager/__tests__/encryption-performance.test.d.ts.map +1 -0
- package/dist/features/state-manager/__tests__/encryption-performance.test.js +42 -0
- package/dist/features/state-manager/__tests__/encryption-performance.test.js.map +1 -0
- package/dist/features/state-manager/__tests__/encryption.test.d.ts +2 -0
- package/dist/features/state-manager/__tests__/encryption.test.d.ts.map +1 -0
- package/dist/features/state-manager/__tests__/encryption.test.js +68 -0
- package/dist/features/state-manager/__tests__/encryption.test.js.map +1 -0
- package/dist/features/state-manager/encryption.d.ts +24 -0
- package/dist/features/state-manager/encryption.d.ts.map +1 -0
- package/dist/features/state-manager/encryption.js +86 -0
- package/dist/features/state-manager/encryption.js.map +1 -0
- package/dist/features/state-manager/index.d.ts +4 -0
- package/dist/features/state-manager/index.d.ts.map +1 -1
- package/dist/features/state-manager/index.js +94 -6
- package/dist/features/state-manager/index.js.map +1 -1
- package/dist/features/state-manager/tiered-writer.d.ts +44 -0
- package/dist/features/state-manager/tiered-writer.d.ts.map +1 -0
- package/dist/features/state-manager/tiered-writer.js +76 -0
- package/dist/features/state-manager/tiered-writer.js.map +1 -0
- package/dist/features/state-manager/wal.d.ts +21 -0
- package/dist/features/state-manager/wal.d.ts.map +1 -0
- package/dist/features/state-manager/wal.js +75 -0
- package/dist/features/state-manager/wal.js.map +1 -0
- package/dist/features/task-templates/index.d.ts +13 -0
- package/dist/features/task-templates/index.d.ts.map +1 -0
- package/dist/features/task-templates/index.js +31 -0
- package/dist/features/task-templates/index.js.map +1 -0
- package/dist/features/task-templates/wizard-integration.d.ts +15 -0
- package/dist/features/task-templates/wizard-integration.d.ts.map +1 -0
- package/dist/features/task-templates/wizard-integration.js +27 -0
- package/dist/features/task-templates/wizard-integration.js.map +1 -0
- package/dist/features/wizard/__tests__/engine.test.d.ts +2 -0
- package/dist/features/wizard/__tests__/engine.test.d.ts.map +1 -0
- package/dist/features/wizard/__tests__/engine.test.js +78 -0
- package/dist/features/wizard/__tests__/engine.test.js.map +1 -0
- package/dist/features/wizard/__tests__/recommendation-engine.test.d.ts +2 -0
- package/dist/features/wizard/__tests__/recommendation-engine.test.d.ts.map +1 -0
- package/dist/features/wizard/__tests__/recommendation-engine.test.js +43 -0
- package/dist/features/wizard/__tests__/recommendation-engine.test.js.map +1 -0
- package/dist/features/wizard/engine.d.ts +15 -0
- package/dist/features/wizard/engine.d.ts.map +1 -0
- package/dist/features/wizard/engine.js +74 -0
- package/dist/features/wizard/engine.js.map +1 -0
- package/dist/features/wizard/index.d.ts +8 -0
- package/dist/features/wizard/index.d.ts.map +1 -0
- package/dist/features/wizard/index.js +7 -0
- package/dist/features/wizard/index.js.map +1 -0
- package/dist/features/wizard/questions.d.ts +6 -0
- package/dist/features/wizard/questions.d.ts.map +1 -0
- package/dist/features/wizard/questions.js +64 -0
- package/dist/features/wizard/questions.js.map +1 -0
- package/dist/features/wizard/recommendation-engine.d.ts +6 -0
- package/dist/features/wizard/recommendation-engine.d.ts.map +1 -0
- package/dist/features/wizard/recommendation-engine.js +33 -0
- package/dist/features/wizard/recommendation-engine.js.map +1 -0
- package/dist/features/wizard/types.d.ts +23 -0
- package/dist/features/wizard/types.d.ts.map +1 -0
- package/dist/features/wizard/types.js +5 -0
- package/dist/features/wizard/types.js.map +1 -0
- package/dist/features/workflow-recommender/context-analyzer.d.ts +6 -0
- package/dist/features/workflow-recommender/context-analyzer.d.ts.map +1 -0
- package/dist/features/workflow-recommender/context-analyzer.js +20 -0
- package/dist/features/workflow-recommender/context-analyzer.js.map +1 -0
- package/dist/features/workflow-recommender/index.d.ts +8 -0
- package/dist/features/workflow-recommender/index.d.ts.map +1 -0
- package/dist/features/workflow-recommender/index.js +7 -0
- package/dist/features/workflow-recommender/index.js.map +1 -0
- package/dist/features/workflow-recommender/intent-classifier.d.ts +6 -0
- package/dist/features/workflow-recommender/intent-classifier.d.ts.map +1 -0
- package/dist/features/workflow-recommender/intent-classifier.js +24 -0
- package/dist/features/workflow-recommender/intent-classifier.js.map +1 -0
- package/dist/features/workflow-recommender/recommendation-engine.d.ts +6 -0
- package/dist/features/workflow-recommender/recommendation-engine.d.ts.map +1 -0
- package/dist/features/workflow-recommender/recommendation-engine.js +110 -0
- package/dist/features/workflow-recommender/recommendation-engine.js.map +1 -0
- package/dist/features/workflow-recommender/types.d.ts +20 -0
- package/dist/features/workflow-recommender/types.d.ts.map +1 -0
- package/dist/features/workflow-recommender/types.js +5 -0
- package/dist/features/workflow-recommender/types.js.map +1 -0
- package/dist/hooks/__tests__/bridge-normalize.test.d.ts +2 -0
- package/dist/hooks/__tests__/bridge-normalize.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/bridge-normalize.test.js +90 -0
- package/dist/hooks/__tests__/bridge-normalize.test.js.map +1 -0
- package/dist/hooks/__tests__/bridge-security.test.js +23 -41
- package/dist/hooks/__tests__/bridge-security.test.js.map +1 -1
- package/dist/hooks/auto-slash-command/__tests__/detector.test.d.ts +2 -0
- package/dist/hooks/auto-slash-command/__tests__/detector.test.d.ts.map +1 -0
- package/dist/hooks/auto-slash-command/__tests__/detector.test.js +70 -0
- package/dist/hooks/auto-slash-command/__tests__/detector.test.js.map +1 -0
- package/dist/hooks/auto-slash-command/__tests__/executor.test.d.ts +2 -0
- package/dist/hooks/auto-slash-command/__tests__/executor.test.d.ts.map +1 -0
- package/dist/hooks/auto-slash-command/__tests__/executor.test.js +55 -0
- package/dist/hooks/auto-slash-command/__tests__/executor.test.js.map +1 -0
- package/dist/hooks/auto-slash-command/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/auto-slash-command/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/auto-slash-command/__tests__/index.test.js +50 -0
- package/dist/hooks/auto-slash-command/__tests__/index.test.js.map +1 -0
- package/dist/hooks/autopilot/__tests__/prompts.test.js +19 -1
- package/dist/hooks/autopilot/__tests__/prompts.test.js.map +1 -1
- package/dist/hooks/autopilot/enforcement.d.ts +1 -1
- package/dist/hooks/autopilot/enforcement.d.ts.map +1 -1
- package/dist/hooks/autopilot/enforcement.js +1 -1
- package/dist/hooks/autopilot/enforcement.js.map +1 -1
- package/dist/hooks/bridge-normalize.d.ts +43 -3
- package/dist/hooks/bridge-normalize.d.ts.map +1 -1
- package/dist/hooks/bridge-normalize.js +110 -15
- package/dist/hooks/bridge-normalize.js.map +1 -1
- package/dist/hooks/bridge-types.d.ts +48 -0
- package/dist/hooks/bridge-types.d.ts.map +1 -0
- package/dist/hooks/bridge-types.js +6 -0
- package/dist/hooks/bridge-types.js.map +1 -0
- package/dist/hooks/bridge.d.ts +1 -43
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +18 -2
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/dependency-analyzer.d.ts +32 -0
- package/dist/hooks/dependency-analyzer.d.ts.map +1 -0
- package/dist/hooks/dependency-analyzer.js +199 -0
- package/dist/hooks/dependency-analyzer.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/learner/__tests__/detector.test.d.ts +2 -0
- package/dist/hooks/learner/__tests__/detector.test.d.ts.map +1 -0
- package/dist/hooks/learner/__tests__/detector.test.js +170 -0
- package/dist/hooks/learner/__tests__/detector.test.js.map +1 -0
- package/dist/hooks/learner/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/learner/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/learner/__tests__/index.test.js +48 -0
- package/dist/hooks/learner/__tests__/index.test.js.map +1 -0
- package/dist/hooks/learner/__tests__/matcher.test.d.ts +2 -0
- package/dist/hooks/learner/__tests__/matcher.test.d.ts.map +1 -0
- package/dist/hooks/learner/__tests__/matcher.test.js +114 -0
- package/dist/hooks/learner/__tests__/matcher.test.js.map +1 -0
- package/dist/hooks/learner/__tests__/promotion.test.d.ts +2 -0
- package/dist/hooks/learner/__tests__/promotion.test.d.ts.map +1 -0
- package/dist/hooks/learner/__tests__/promotion.test.js +146 -0
- package/dist/hooks/learner/__tests__/promotion.test.js.map +1 -0
- package/dist/hooks/learner/__tests__/validator.test.d.ts +2 -0
- package/dist/hooks/learner/__tests__/validator.test.d.ts.map +1 -0
- package/dist/hooks/learner/__tests__/validator.test.js +123 -0
- package/dist/hooks/learner/__tests__/validator.test.js.map +1 -0
- package/dist/hooks/learner/__tests__/writer.test.d.ts +2 -0
- package/dist/hooks/learner/__tests__/writer.test.d.ts.map +1 -0
- package/dist/hooks/learner/__tests__/writer.test.js +141 -0
- package/dist/hooks/learner/__tests__/writer.test.js.map +1 -0
- package/dist/hooks/learner/detection-hook.js +2 -2
- package/dist/hooks/learner/detection-hook.js.map +1 -1
- package/dist/hooks/parallel-executor.d.ts +24 -0
- package/dist/hooks/parallel-executor.d.ts.map +1 -0
- package/dist/hooks/parallel-executor.js +82 -0
- package/dist/hooks/parallel-executor.js.map +1 -0
- package/dist/hooks/persistent-mode/index.d.ts +2 -21
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +4 -85
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/persistent-mode/tool-error.d.ts +15 -0
- package/dist/hooks/persistent-mode/tool-error.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/tool-error.js +80 -0
- package/dist/hooks/persistent-mode/tool-error.js.map +1 -0
- package/dist/hooks/pre-compact/index.d.ts.map +1 -1
- package/dist/hooks/pre-compact/index.js +0 -1
- package/dist/hooks/pre-compact/index.js.map +1 -1
- package/dist/hooks/project-memory/learner.d.ts +13 -1
- package/dist/hooks/project-memory/learner.d.ts.map +1 -1
- package/dist/hooks/project-memory/learner.js +24 -12
- package/dist/hooks/project-memory/learner.js.map +1 -1
- package/dist/hooks/race-detector.d.ts +51 -0
- package/dist/hooks/race-detector.d.ts.map +1 -0
- package/dist/hooks/race-detector.js +121 -0
- package/dist/hooks/race-detector.js.map +1 -0
- package/dist/hooks/ralph/__tests__/loop.test.d.ts +2 -0
- package/dist/hooks/ralph/__tests__/loop.test.d.ts.map +1 -0
- package/dist/hooks/ralph/__tests__/loop.test.js +268 -0
- package/dist/hooks/ralph/__tests__/loop.test.js.map +1 -0
- package/dist/hooks/ralph/__tests__/prd.test.d.ts +2 -0
- package/dist/hooks/ralph/__tests__/prd.test.d.ts.map +1 -0
- package/dist/hooks/ralph/__tests__/prd.test.js +197 -0
- package/dist/hooks/ralph/__tests__/prd.test.js.map +1 -0
- package/dist/hooks/ralph/__tests__/progress.test.d.ts +2 -0
- package/dist/hooks/ralph/__tests__/progress.test.d.ts.map +1 -0
- package/dist/hooks/ralph/__tests__/progress.test.js +120 -0
- package/dist/hooks/ralph/__tests__/progress.test.js.map +1 -0
- package/dist/hooks/ralph/__tests__/verifier.test.d.ts +2 -0
- package/dist/hooks/ralph/__tests__/verifier.test.d.ts.map +1 -0
- package/dist/hooks/ralph/__tests__/verifier.test.js +75 -0
- package/dist/hooks/ralph/__tests__/verifier.test.js.map +1 -0
- package/dist/hooks/recovery/__tests__/context-window.test.d.ts +2 -0
- package/dist/hooks/recovery/__tests__/context-window.test.d.ts.map +1 -0
- package/dist/hooks/recovery/__tests__/context-window.test.js +131 -0
- package/dist/hooks/recovery/__tests__/context-window.test.js.map +1 -0
- package/dist/hooks/recovery/__tests__/edit-error.test.d.ts +2 -0
- package/dist/hooks/recovery/__tests__/edit-error.test.d.ts.map +1 -0
- package/dist/hooks/recovery/__tests__/edit-error.test.js +88 -0
- package/dist/hooks/recovery/__tests__/edit-error.test.js.map +1 -0
- package/dist/hooks/recovery/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/recovery/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/recovery/__tests__/index.test.js +270 -0
- package/dist/hooks/recovery/__tests__/index.test.js.map +1 -0
- package/dist/hooks/recovery/__tests__/session-recovery.test.d.ts +2 -0
- package/dist/hooks/recovery/__tests__/session-recovery.test.d.ts.map +1 -0
- package/dist/hooks/recovery/__tests__/session-recovery.test.js +129 -0
- package/dist/hooks/recovery/__tests__/session-recovery.test.js.map +1 -0
- package/dist/hooks/recovery/__tests__/storage.test.d.ts +2 -0
- package/dist/hooks/recovery/__tests__/storage.test.d.ts.map +1 -0
- package/dist/hooks/recovery/__tests__/storage.test.js +549 -0
- package/dist/hooks/recovery/__tests__/storage.test.js.map +1 -0
- package/dist/hooks/rules-injector/__tests__/finder.test.d.ts +2 -0
- package/dist/hooks/rules-injector/__tests__/finder.test.d.ts.map +1 -0
- package/dist/hooks/rules-injector/__tests__/finder.test.js +68 -0
- package/dist/hooks/rules-injector/__tests__/finder.test.js.map +1 -0
- package/dist/hooks/rules-injector/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/rules-injector/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/rules-injector/__tests__/index.test.js +58 -0
- package/dist/hooks/rules-injector/__tests__/index.test.js.map +1 -0
- package/dist/hooks/rules-injector/__tests__/matcher.test.d.ts +2 -0
- package/dist/hooks/rules-injector/__tests__/matcher.test.d.ts.map +1 -0
- package/dist/hooks/rules-injector/__tests__/matcher.test.js +86 -0
- package/dist/hooks/rules-injector/__tests__/matcher.test.js.map +1 -0
- package/dist/hooks/rules-injector/__tests__/parser.test.d.ts +2 -0
- package/dist/hooks/rules-injector/__tests__/parser.test.d.ts.map +1 -0
- package/dist/hooks/rules-injector/__tests__/parser.test.js +86 -0
- package/dist/hooks/rules-injector/__tests__/parser.test.js.map +1 -0
- package/dist/hooks/session-end/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/session-end/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/session-end/__tests__/index.test.js +77 -0
- package/dist/hooks/session-end/__tests__/index.test.js.map +1 -0
- package/dist/hooks/session-end/callbacks.d.ts +1 -1
- package/dist/hooks/session-end/index.d.ts +2 -21
- package/dist/hooks/session-end/index.d.ts.map +1 -1
- package/dist/hooks/session-end/index.js.map +1 -1
- package/dist/hooks/session-end/types.d.ts +26 -0
- package/dist/hooks/session-end/types.d.ts.map +1 -0
- package/dist/hooks/session-end/types.js +6 -0
- package/dist/hooks/session-end/types.js.map +1 -0
- package/dist/hooks/setup/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/setup/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/setup/__tests__/index.test.js +68 -0
- package/dist/hooks/setup/__tests__/index.test.js.map +1 -0
- package/dist/hooks/team-pipeline/__tests__/state.test.d.ts +2 -0
- package/dist/hooks/team-pipeline/__tests__/state.test.d.ts.map +1 -0
- package/dist/hooks/team-pipeline/__tests__/state.test.js +94 -0
- package/dist/hooks/team-pipeline/__tests__/state.test.js.map +1 -0
- package/dist/hud/elements/autopilot.d.ts +1 -1
- package/dist/hud/elements/autopilot.d.ts.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +69 -1
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/types.d.ts +2 -15
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js.map +1 -1
- package/dist/lib/__tests__/validateMode.test.d.ts +2 -0
- package/dist/lib/__tests__/validateMode.test.d.ts.map +1 -0
- package/dist/lib/__tests__/validateMode.test.js +61 -0
- package/dist/lib/__tests__/validateMode.test.js.map +1 -0
- package/dist/lib/path-validator.d.ts +25 -0
- package/dist/lib/path-validator.d.ts.map +1 -0
- package/dist/lib/path-validator.js +81 -0
- package/dist/lib/path-validator.js.map +1 -0
- package/dist/lib/validateMode.d.ts +3 -0
- package/dist/lib/validateMode.d.ts.map +1 -1
- package/dist/lib/validateMode.js +28 -2
- package/dist/lib/validateMode.js.map +1 -1
- package/dist/mcp/__tests__/codex-core.test.d.ts +2 -0
- package/dist/mcp/__tests__/codex-core.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/codex-core.test.js +143 -0
- package/dist/mcp/__tests__/codex-core.test.js.map +1 -0
- package/dist/mcp/__tests__/gemini-core.test.d.ts +2 -0
- package/dist/mcp/__tests__/gemini-core.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/gemini-core.test.js +53 -0
- package/dist/mcp/__tests__/gemini-core.test.js.map +1 -0
- package/dist/mcp/__tests__/job-state-db-deprecation.test.js +48 -1
- package/dist/mcp/__tests__/job-state-db-deprecation.test.js.map +1 -1
- package/dist/mcp/__tests__/omc-tools-server.test.d.ts +2 -0
- package/dist/mcp/__tests__/omc-tools-server.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/omc-tools-server.test.js +108 -0
- package/dist/mcp/__tests__/omc-tools-server.test.js.map +1 -0
- package/dist/mcp/job-state-db.d.ts +1 -1
- package/dist/mcp/job-state-db.d.ts.map +1 -1
- package/dist/mcp/prompt-persistence.d.ts +2 -17
- package/dist/mcp/prompt-persistence.d.ts.map +1 -1
- package/dist/mcp/prompt-persistence.js.map +1 -1
- package/dist/team/__tests__/deadlock-detector.test.d.ts +2 -0
- package/dist/team/__tests__/deadlock-detector.test.d.ts.map +1 -0
- package/dist/team/__tests__/deadlock-detector.test.js +50 -0
- package/dist/team/__tests__/deadlock-detector.test.js.map +1 -0
- package/dist/team/__tests__/dependency-graph.test.d.ts +2 -0
- package/dist/team/__tests__/dependency-graph.test.d.ts.map +1 -0
- package/dist/team/__tests__/dependency-graph.test.js +29 -0
- package/dist/team/__tests__/dependency-graph.test.js.map +1 -0
- package/dist/team/capabilities.d.ts +1 -2
- package/dist/team/capabilities.d.ts.map +1 -1
- package/dist/team/capabilities.js.map +1 -1
- package/dist/team/deadlock-detector.d.ts +16 -0
- package/dist/team/deadlock-detector.d.ts.map +1 -0
- package/dist/team/deadlock-detector.js +52 -0
- package/dist/team/deadlock-detector.js.map +1 -0
- package/dist/team/dependency-graph.d.ts +23 -0
- package/dist/team/dependency-graph.d.ts.map +1 -0
- package/dist/team/dependency-graph.js +35 -0
- package/dist/team/dependency-graph.js.map +1 -0
- package/dist/team/index.d.ts +3 -0
- package/dist/team/index.d.ts.map +1 -1
- package/dist/team/index.js +2 -0
- package/dist/team/index.js.map +1 -1
- package/dist/team/types.d.ts +15 -4
- package/dist/team/types.d.ts.map +1 -1
- package/dist/team/types.js +0 -1
- package/dist/team/types.js.map +1 -1
- package/dist/team/unified-team.d.ts +2 -11
- package/dist/team/unified-team.d.ts.map +1 -1
- package/dist/team/unified-team.js.map +1 -1
- package/dist/tools/__tests__/ast-tools.test.d.ts +2 -0
- package/dist/tools/__tests__/ast-tools.test.d.ts.map +1 -0
- package/dist/tools/__tests__/ast-tools.test.js +178 -0
- package/dist/tools/__tests__/ast-tools.test.js.map +1 -0
- package/dist/tools/__tests__/lsp-tools.test.d.ts +2 -0
- package/dist/tools/__tests__/lsp-tools.test.d.ts.map +1 -0
- package/dist/tools/__tests__/lsp-tools.test.js +252 -0
- package/dist/tools/__tests__/lsp-tools.test.js.map +1 -0
- package/dist/tools/diagnostics/__tests__/index.test.d.ts +2 -0
- package/dist/tools/diagnostics/__tests__/index.test.d.ts.map +1 -0
- package/dist/tools/diagnostics/__tests__/index.test.js +111 -0
- package/dist/tools/diagnostics/__tests__/index.test.js.map +1 -0
- package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.d.ts +2 -0
- package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.d.ts.map +1 -0
- package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.js +120 -0
- package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.js.map +1 -0
- package/dist/tools/diagnostics/__tests__/tsc-runner.test.d.ts +2 -0
- package/dist/tools/diagnostics/__tests__/tsc-runner.test.d.ts.map +1 -0
- package/dist/tools/diagnostics/__tests__/tsc-runner.test.js +86 -0
- package/dist/tools/diagnostics/__tests__/tsc-runner.test.js.map +1 -0
- package/dist/tools/diagnostics/constants.d.ts +5 -0
- package/dist/tools/diagnostics/constants.d.ts.map +1 -0
- package/dist/tools/diagnostics/constants.js +5 -0
- package/dist/tools/diagnostics/constants.js.map +1 -0
- package/dist/tools/diagnostics/index.d.ts +2 -1
- package/dist/tools/diagnostics/index.d.ts.map +1 -1
- package/dist/tools/diagnostics/index.js +2 -1
- package/dist/tools/diagnostics/index.js.map +1 -1
- package/dist/tools/diagnostics/lsp-aggregator.js +1 -1
- package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
- package/dist/tools/lsp/__tests__/utils.test.d.ts +2 -0
- package/dist/tools/lsp/__tests__/utils.test.d.ts.map +1 -0
- package/dist/tools/lsp/__tests__/utils.test.js +338 -0
- package/dist/tools/lsp/__tests__/utils.test.js.map +1 -0
- package/dist/tools/lsp/utils.d.ts.map +1 -1
- package/dist/tools/lsp/utils.js +2 -2
- package/dist/tools/lsp/utils.js.map +1 -1
- package/dist/tools/python-repl/__tests__/bridge-manager.test.d.ts +2 -0
- package/dist/tools/python-repl/__tests__/bridge-manager.test.d.ts.map +1 -0
- package/dist/tools/python-repl/__tests__/bridge-manager.test.js +338 -0
- package/dist/tools/python-repl/__tests__/bridge-manager.test.js.map +1 -0
- package/dist/tools/python-repl/__tests__/socket-client.test.d.ts +2 -0
- package/dist/tools/python-repl/__tests__/socket-client.test.d.ts.map +1 -0
- package/dist/tools/python-repl/__tests__/socket-client.test.js +155 -0
- package/dist/tools/python-repl/__tests__/socket-client.test.js.map +1 -0
- package/dist/tools/python-repl/bridge-manager.d.ts +4 -0
- package/dist/tools/python-repl/bridge-manager.d.ts.map +1 -1
- package/dist/tools/python-repl/bridge-manager.js +4 -1
- package/dist/tools/python-repl/bridge-manager.js.map +1 -1
- package/docs/guides/task-templates-guide.md +153 -0
- package/docs/guides/troubleshooting-guide.md +110 -0
- package/docs/guides/wizard-user-guide.md +85 -0
- package/docs/guides/workflow-recommendation-guide.md +97 -0
- package/docs/reviews/ultrapower-security/review_critic.md +450 -0
- package/docs/reviews/ultrapower-tech-review/review_tech.md +180 -0
- package/docs/troubleshooting/agent-timeouts.md +37 -0
- package/docs/troubleshooting/common-errors.md +37 -0
- package/docs/troubleshooting/hook-failures.md +29 -0
- package/docs/troubleshooting/performance-issues.md +41 -0
- package/docs/troubleshooting/state-corruption.md +36 -0
- package/hooks/run-hook.cmd +0 -0
- package/hooks/session-start +0 -0
- package/package.json +1 -1
- package/scripts/analyze-dependencies.ts +47 -0
- package/scripts/analyze-hook-coverage.ts +55 -0
- package/scripts/performance-regression.ts +28 -0
- package/scripts/persistent-mode.cjs +605 -605
- package/scripts/profiling.ts +95 -0
- package/scripts/run-profiling.ts +64 -0
- package/scripts/test-parallel-execution.ts +72 -0
- package/scripts/test-race-detection.ts +57 -0
- package/scripts/test-tiered-writer.ts +60 -0
- package/scripts/test-wal-integration.ts +29 -0
- package/scripts/test-wal.ts +48 -0
- package/skills/next-step-router/SKILL.md +17 -0
- package/skills/systematic-debugging/find-polluter.sh +0 -0
- package/skills/wizard/SKILL.md +103 -72
- package/skills/writing-skills/graphviz-conventions.dot +171 -171
- package/skills/writing-skills/render-graphs.js +0 -0
- package/templates/axiom/scripts/Check-Memory.ps1 +68 -68
- package/templates/axiom/scripts/Poll-Memory.ps1 +36 -36
- package/templates/axiom/scripts/Watch-Memory.ps1 +149 -149
- package/templates/axiom/scripts/agent-runner.ps1 +101 -101
- package/templates/axiom/scripts/start-reviews.ps1 +19 -19
- package/templates/tasks/README.md +45 -0
- package/templates/tasks/bug-fix.md +37 -0
- package/templates/tasks/code-review.md +36 -0
- package/templates/tasks/feature-development.md +43 -0
- package/templates/tasks/refactoring.md +37 -0
- package/templates/tasks/security-audit.md +37 -0
package/skills/wizard/SKILL.md
CHANGED
|
@@ -4,13 +4,13 @@ description: 交互式向导,通过3个问题引导用户选择合适的执行
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<Purpose>
|
|
7
|
-
Wizard
|
|
7
|
+
Wizard 是一个交互式向导,帮助新用户在 2 分钟内通过 3 个简单问题找到最合适的执行模式。
|
|
8
8
|
</Purpose>
|
|
9
9
|
|
|
10
10
|
<Use_When>
|
|
11
|
-
- 用户说 "wizard"、"帮我选"、"不知道用什么"、"怎么开始"
|
|
12
|
-
- 用户面对新任务不知道该用 autopilot/ralph/team/executor 哪个
|
|
11
|
+
- 用户说 "wizard"、"帮我选"、"不知道用什么"、"怎么开始"
|
|
13
12
|
- 用户第一次使用 ultrapower,需要引导
|
|
13
|
+
- 用户不确定该用 autopilot/ralph/team/executor 哪个
|
|
14
14
|
</Use_When>
|
|
15
15
|
|
|
16
16
|
<Do_Not_Use_When>
|
|
@@ -20,109 +20,140 @@ Wizard 是一个交互式向导,帮助不确定该使用哪个执行模式的
|
|
|
20
20
|
|
|
21
21
|
<Execution>
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## 实现方式
|
|
24
24
|
|
|
25
|
-
使用
|
|
25
|
+
使用 `src/features/wizard/` 模块的 `WizardEngine` 类:
|
|
26
26
|
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
选项:
|
|
30
|
-
A. 新功能 / 构建新东西
|
|
31
|
-
B. 修复 bug
|
|
32
|
-
C. 代码审查
|
|
33
|
-
D. 重构 / 优化
|
|
34
|
-
```
|
|
27
|
+
```typescript
|
|
28
|
+
import { WizardEngine } from './features/wizard/index.js';
|
|
35
29
|
|
|
36
|
-
|
|
30
|
+
const wizard = new WizardEngine();
|
|
31
|
+
```
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
- 推荐: `systematic-debugging`
|
|
40
|
-
- 原因: bug 修复需要先定位根因,再修复,systematic-debugging 提供结构化调试流程
|
|
33
|
+
## 问题流程
|
|
41
34
|
|
|
42
|
-
|
|
43
|
-
- 推荐: `code-review`
|
|
44
|
-
- 原因: 代码审查有专门的多维度审查流水线
|
|
35
|
+
### Q1: 你想做什么?
|
|
45
36
|
|
|
46
|
-
|
|
37
|
+
使用 AskUserQuestion 提问:
|
|
47
38
|
|
|
48
|
-
|
|
39
|
+
```
|
|
40
|
+
问题: "你想做什么?"
|
|
41
|
+
header: "任务类型"
|
|
42
|
+
选项:
|
|
43
|
+
1. 实现单个功能 — 添加一个新功能或改进现有功能
|
|
44
|
+
2. 实现多个功能 — 同时开发多个独立或相关的功能
|
|
45
|
+
3. 修复问题 — 修复 bug、错误或测试失败
|
|
46
|
+
4. 不确定,需要探索 — 还不清楚具体要做什么,需要先分析
|
|
47
|
+
```
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
### Q2: 分支问题(根据 Q1)
|
|
51
50
|
|
|
51
|
+
**如果 Q1 = 单个功能**,问:
|
|
52
52
|
```
|
|
53
|
-
问题: "
|
|
53
|
+
问题: "任务复杂度?"
|
|
54
|
+
header: "复杂度"
|
|
54
55
|
选项:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
C. 复杂(架构级改动,需要规划设计)
|
|
56
|
+
1. 简单 — 修改 1-3 个文件,逻辑清晰
|
|
57
|
+
2. 复杂 — 涉及多个模块,需要架构设计
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
**如果 Q1 = 多个功能**,问:
|
|
61
|
+
```
|
|
62
|
+
问题: "功能是否独立?"
|
|
63
|
+
header: "依赖关系"
|
|
64
|
+
选项:
|
|
65
|
+
1. 是 — 功能之间没有依赖,可以并行开发
|
|
66
|
+
2. 否 — 功能之间有依赖关系,需要协调
|
|
67
|
+
```
|
|
65
68
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
**如果 Q1 = 修复问题**,问:
|
|
70
|
+
```
|
|
71
|
+
问题: "问题范围?"
|
|
72
|
+
header: "影响范围"
|
|
73
|
+
选项:
|
|
74
|
+
1. 单个文件 — 问题定位明确,影响范围小
|
|
75
|
+
2. 多个文件 — 问题涉及多个模块或不确定位置
|
|
76
|
+
```
|
|
69
77
|
|
|
70
|
-
|
|
78
|
+
**如果 Q1 = 不确定**,问:
|
|
79
|
+
```
|
|
80
|
+
问题: "需要规划吗?"
|
|
81
|
+
header: "规划需求"
|
|
82
|
+
选项:
|
|
83
|
+
1. 是 — 需要先分析和制定计划
|
|
84
|
+
2. 否 — 直接开始探索
|
|
85
|
+
```
|
|
71
86
|
|
|
72
|
-
|
|
87
|
+
### Q3: 细化问题(部分路径需要)
|
|
73
88
|
|
|
74
|
-
|
|
89
|
+
**如果 Q1=单个功能 且 Q2=简单**,问:
|
|
90
|
+
```
|
|
91
|
+
问题: "需要持续执行直到完成?"
|
|
92
|
+
header: "执行模式"
|
|
93
|
+
选项:
|
|
94
|
+
1. 是 — 不停止直到任务完全完成并验证通过
|
|
95
|
+
2. 否 — 完成基本实现即可
|
|
96
|
+
```
|
|
75
97
|
|
|
98
|
+
**如果 Q1=修复问题 且 Q2=多个文件**,问:
|
|
76
99
|
```
|
|
77
|
-
问题: "
|
|
100
|
+
问题: "需要验证循环?"
|
|
101
|
+
header: "验证策略"
|
|
78
102
|
选项:
|
|
79
|
-
|
|
80
|
-
|
|
103
|
+
1. 是 — 修复后需要反复测试验证
|
|
104
|
+
2. 否 — 修复一次即可
|
|
81
105
|
```
|
|
82
106
|
|
|
83
|
-
##
|
|
107
|
+
## 推荐逻辑
|
|
84
108
|
|
|
85
|
-
|
|
86
|
-
- **B(一次性)** → 推荐 `autopilot`
|
|
109
|
+
调用 `getRecommendation()` 获取推荐模式:
|
|
87
110
|
|
|
88
|
-
|
|
111
|
+
| Q1 | Q2 | Q3 | 推荐 |
|
|
112
|
+
|---|---|---|---|
|
|
113
|
+
| 单个功能 | 简单 | 否 | executor |
|
|
114
|
+
| 单个功能 | 简单 | 是 | ralph |
|
|
115
|
+
| 单个功能 | 复杂 | - | autopilot |
|
|
116
|
+
| 多个功能 | 独立 | - | ultrawork |
|
|
117
|
+
| 多个功能 | 不独立 | - | team |
|
|
118
|
+
| 修复问题 | 单文件 | - | executor |
|
|
119
|
+
| 修复问题 | 多文件 | 否 | ultrawork |
|
|
120
|
+
| 修复问题 | 多文件 | 是 | ralph |
|
|
121
|
+
| 不确定 | 需要规划 | - | plan |
|
|
122
|
+
| 不确定 | 不需要 | - | 重新回答 Q1 |
|
|
89
123
|
|
|
90
|
-
|
|
124
|
+
## 输出格式
|
|
91
125
|
|
|
92
126
|
```
|
|
93
|
-
|
|
127
|
+
✨ 根据你的回答,我推荐使用: <mode>
|
|
94
128
|
|
|
95
|
-
|
|
129
|
+
📋 <Mode> 模式说明:
|
|
130
|
+
<一句话描述>
|
|
96
131
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- /ultrapower:<alt2> — <适用场景>
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### 各模式备选方案参考
|
|
132
|
+
🎯 使用方式:
|
|
133
|
+
/<mode> "你的任务描述"
|
|
103
134
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
- `/ultrapower:analyze` — 如果只需要分析,不需要修复
|
|
135
|
+
💡 示例:
|
|
136
|
+
/<mode> "<具体示例>"
|
|
107
137
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
138
|
+
❓ 选择:
|
|
139
|
+
1. 确认并执行
|
|
140
|
+
2. 返回重新选择
|
|
141
|
+
3. 查看所有模式
|
|
142
|
+
```
|
|
111
143
|
|
|
112
|
-
|
|
113
|
-
- `/ultrapower:autopilot` — 如果任务比预期复杂
|
|
114
|
-
- `/ultrapower:ralph` — 如果需要持续迭代
|
|
144
|
+
### 模式说明参考
|
|
115
145
|
|
|
116
|
-
**
|
|
117
|
-
-
|
|
118
|
-
-
|
|
146
|
+
- **executor**: 直接实现,适合简单明确的任务
|
|
147
|
+
- **ralph**: 持续执行直到验证通过,适合需要反复迭代的任务
|
|
148
|
+
- **autopilot**: 自主规划和实现,适合复杂的单一功能
|
|
149
|
+
- **ultrawork**: 最大并行度,适合多个独立任务
|
|
150
|
+
- **team**: 协调式团队执行,适合有依赖关系的多任务
|
|
151
|
+
- **plan**: 先制定计划,适合不确定的探索性任务
|
|
119
152
|
|
|
120
|
-
|
|
121
|
-
- `/ultrapower:autopilot` — 如果任务相对确定,一次能完成
|
|
122
|
-
- `/ultrapower:team` — 如果需要多 agent 并行协作
|
|
153
|
+
## 特殊处理
|
|
123
154
|
|
|
124
|
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
155
|
+
- 支持 "b" 或 "back" 返回上一步
|
|
156
|
+
- 支持 "q" 或 "quit" 退出向导
|
|
157
|
+
- 无效输入时重新显示当前问题
|
|
127
158
|
|
|
128
159
|
</Execution>
|
|
@@ -1,172 +1,172 @@
|
|
|
1
|
-
digraph STYLE_GUIDE {
|
|
2
|
-
// The style guide for our process DSL, written in the DSL itself
|
|
3
|
-
|
|
4
|
-
// Node type examples with their shapes
|
|
5
|
-
subgraph cluster_node_types {
|
|
6
|
-
label="NODE TYPES AND SHAPES";
|
|
7
|
-
|
|
8
|
-
// Questions are diamonds
|
|
9
|
-
"Is this a question?" [shape=diamond];
|
|
10
|
-
|
|
11
|
-
// Actions are boxes (default)
|
|
12
|
-
"Take an action" [shape=box];
|
|
13
|
-
|
|
14
|
-
// Commands are plaintext
|
|
15
|
-
"git commit -m 'msg'" [shape=plaintext];
|
|
16
|
-
|
|
17
|
-
// States are ellipses
|
|
18
|
-
"Current state" [shape=ellipse];
|
|
19
|
-
|
|
20
|
-
// Warnings are octagons
|
|
21
|
-
"STOP: Critical warning" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
22
|
-
|
|
23
|
-
// Entry/exit are double circles
|
|
24
|
-
"Process starts" [shape=doublecircle];
|
|
25
|
-
"Process complete" [shape=doublecircle];
|
|
26
|
-
|
|
27
|
-
// Examples of each
|
|
28
|
-
"Is test passing?" [shape=diamond];
|
|
29
|
-
"Write test first" [shape=box];
|
|
30
|
-
"npm test" [shape=plaintext];
|
|
31
|
-
"I am stuck" [shape=ellipse];
|
|
32
|
-
"NEVER use git add -A" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Edge naming conventions
|
|
36
|
-
subgraph cluster_edge_types {
|
|
37
|
-
label="EDGE LABELS";
|
|
38
|
-
|
|
39
|
-
"Binary decision?" [shape=diamond];
|
|
40
|
-
"Yes path" [shape=box];
|
|
41
|
-
"No path" [shape=box];
|
|
42
|
-
|
|
43
|
-
"Binary decision?" -> "Yes path" [label="yes"];
|
|
44
|
-
"Binary decision?" -> "No path" [label="no"];
|
|
45
|
-
|
|
46
|
-
"Multiple choice?" [shape=diamond];
|
|
47
|
-
"Option A" [shape=box];
|
|
48
|
-
"Option B" [shape=box];
|
|
49
|
-
"Option C" [shape=box];
|
|
50
|
-
|
|
51
|
-
"Multiple choice?" -> "Option A" [label="condition A"];
|
|
52
|
-
"Multiple choice?" -> "Option B" [label="condition B"];
|
|
53
|
-
"Multiple choice?" -> "Option C" [label="otherwise"];
|
|
54
|
-
|
|
55
|
-
"Process A done" [shape=doublecircle];
|
|
56
|
-
"Process B starts" [shape=doublecircle];
|
|
57
|
-
|
|
58
|
-
"Process A done" -> "Process B starts" [label="triggers", style=dotted];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Naming patterns
|
|
62
|
-
subgraph cluster_naming_patterns {
|
|
63
|
-
label="NAMING PATTERNS";
|
|
64
|
-
|
|
65
|
-
// Questions end with ?
|
|
66
|
-
"Should I do X?";
|
|
67
|
-
"Can this be Y?";
|
|
68
|
-
"Is Z true?";
|
|
69
|
-
"Have I done W?";
|
|
70
|
-
|
|
71
|
-
// Actions start with verb
|
|
72
|
-
"Write the test";
|
|
73
|
-
"Search for patterns";
|
|
74
|
-
"Commit changes";
|
|
75
|
-
"Ask for help";
|
|
76
|
-
|
|
77
|
-
// Commands are literal
|
|
78
|
-
"grep -r 'pattern' .";
|
|
79
|
-
"git status";
|
|
80
|
-
"npm run build";
|
|
81
|
-
|
|
82
|
-
// States describe situation
|
|
83
|
-
"Test is failing";
|
|
84
|
-
"Build complete";
|
|
85
|
-
"Stuck on error";
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Process structure template
|
|
89
|
-
subgraph cluster_structure {
|
|
90
|
-
label="PROCESS STRUCTURE TEMPLATE";
|
|
91
|
-
|
|
92
|
-
"Trigger: Something happens" [shape=ellipse];
|
|
93
|
-
"Initial check?" [shape=diamond];
|
|
94
|
-
"Main action" [shape=box];
|
|
95
|
-
"git status" [shape=plaintext];
|
|
96
|
-
"Another check?" [shape=diamond];
|
|
97
|
-
"Alternative action" [shape=box];
|
|
98
|
-
"STOP: Don't do this" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
99
|
-
"Process complete" [shape=doublecircle];
|
|
100
|
-
|
|
101
|
-
"Trigger: Something happens" -> "Initial check?";
|
|
102
|
-
"Initial check?" -> "Main action" [label="yes"];
|
|
103
|
-
"Initial check?" -> "Alternative action" [label="no"];
|
|
104
|
-
"Main action" -> "git status";
|
|
105
|
-
"git status" -> "Another check?";
|
|
106
|
-
"Another check?" -> "Process complete" [label="ok"];
|
|
107
|
-
"Another check?" -> "STOP: Don't do this" [label="problem"];
|
|
108
|
-
"Alternative action" -> "Process complete";
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// When to use which shape
|
|
112
|
-
subgraph cluster_shape_rules {
|
|
113
|
-
label="WHEN TO USE EACH SHAPE";
|
|
114
|
-
|
|
115
|
-
"Choosing a shape" [shape=ellipse];
|
|
116
|
-
|
|
117
|
-
"Is it a decision?" [shape=diamond];
|
|
118
|
-
"Use diamond" [shape=diamond, style=filled, fillcolor=lightblue];
|
|
119
|
-
|
|
120
|
-
"Is it a command?" [shape=diamond];
|
|
121
|
-
"Use plaintext" [shape=plaintext, style=filled, fillcolor=lightgray];
|
|
122
|
-
|
|
123
|
-
"Is it a warning?" [shape=diamond];
|
|
124
|
-
"Use octagon" [shape=octagon, style=filled, fillcolor=pink];
|
|
125
|
-
|
|
126
|
-
"Is it entry/exit?" [shape=diamond];
|
|
127
|
-
"Use doublecircle" [shape=doublecircle, style=filled, fillcolor=lightgreen];
|
|
128
|
-
|
|
129
|
-
"Is it a state?" [shape=diamond];
|
|
130
|
-
"Use ellipse" [shape=ellipse, style=filled, fillcolor=lightyellow];
|
|
131
|
-
|
|
132
|
-
"Default: use box" [shape=box, style=filled, fillcolor=lightcyan];
|
|
133
|
-
|
|
134
|
-
"Choosing a shape" -> "Is it a decision?";
|
|
135
|
-
"Is it a decision?" -> "Use diamond" [label="yes"];
|
|
136
|
-
"Is it a decision?" -> "Is it a command?" [label="no"];
|
|
137
|
-
"Is it a command?" -> "Use plaintext" [label="yes"];
|
|
138
|
-
"Is it a command?" -> "Is it a warning?" [label="no"];
|
|
139
|
-
"Is it a warning?" -> "Use octagon" [label="yes"];
|
|
140
|
-
"Is it a warning?" -> "Is it entry/exit?" [label="no"];
|
|
141
|
-
"Is it entry/exit?" -> "Use doublecircle" [label="yes"];
|
|
142
|
-
"Is it entry/exit?" -> "Is it a state?" [label="no"];
|
|
143
|
-
"Is it a state?" -> "Use ellipse" [label="yes"];
|
|
144
|
-
"Is it a state?" -> "Default: use box" [label="no"];
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Good vs bad examples
|
|
148
|
-
subgraph cluster_examples {
|
|
149
|
-
label="GOOD VS BAD EXAMPLES";
|
|
150
|
-
|
|
151
|
-
// Good: specific and shaped correctly
|
|
152
|
-
"Test failed" [shape=ellipse];
|
|
153
|
-
"Read error message" [shape=box];
|
|
154
|
-
"Can reproduce?" [shape=diamond];
|
|
155
|
-
"git diff HEAD~1" [shape=plaintext];
|
|
156
|
-
"NEVER ignore errors" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
157
|
-
|
|
158
|
-
"Test failed" -> "Read error message";
|
|
159
|
-
"Read error message" -> "Can reproduce?";
|
|
160
|
-
"Can reproduce?" -> "git diff HEAD~1" [label="yes"];
|
|
161
|
-
|
|
162
|
-
// Bad: vague and wrong shapes
|
|
163
|
-
bad_1 [label="Something wrong", shape=box]; // Should be ellipse (state)
|
|
164
|
-
bad_2 [label="Fix it", shape=box]; // Too vague
|
|
165
|
-
bad_3 [label="Check", shape=box]; // Should be diamond
|
|
166
|
-
bad_4 [label="Run command", shape=box]; // Should be plaintext with actual command
|
|
167
|
-
|
|
168
|
-
bad_1 -> bad_2;
|
|
169
|
-
bad_2 -> bad_3;
|
|
170
|
-
bad_3 -> bad_4;
|
|
171
|
-
}
|
|
1
|
+
digraph STYLE_GUIDE {
|
|
2
|
+
// The style guide for our process DSL, written in the DSL itself
|
|
3
|
+
|
|
4
|
+
// Node type examples with their shapes
|
|
5
|
+
subgraph cluster_node_types {
|
|
6
|
+
label="NODE TYPES AND SHAPES";
|
|
7
|
+
|
|
8
|
+
// Questions are diamonds
|
|
9
|
+
"Is this a question?" [shape=diamond];
|
|
10
|
+
|
|
11
|
+
// Actions are boxes (default)
|
|
12
|
+
"Take an action" [shape=box];
|
|
13
|
+
|
|
14
|
+
// Commands are plaintext
|
|
15
|
+
"git commit -m 'msg'" [shape=plaintext];
|
|
16
|
+
|
|
17
|
+
// States are ellipses
|
|
18
|
+
"Current state" [shape=ellipse];
|
|
19
|
+
|
|
20
|
+
// Warnings are octagons
|
|
21
|
+
"STOP: Critical warning" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
22
|
+
|
|
23
|
+
// Entry/exit are double circles
|
|
24
|
+
"Process starts" [shape=doublecircle];
|
|
25
|
+
"Process complete" [shape=doublecircle];
|
|
26
|
+
|
|
27
|
+
// Examples of each
|
|
28
|
+
"Is test passing?" [shape=diamond];
|
|
29
|
+
"Write test first" [shape=box];
|
|
30
|
+
"npm test" [shape=plaintext];
|
|
31
|
+
"I am stuck" [shape=ellipse];
|
|
32
|
+
"NEVER use git add -A" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Edge naming conventions
|
|
36
|
+
subgraph cluster_edge_types {
|
|
37
|
+
label="EDGE LABELS";
|
|
38
|
+
|
|
39
|
+
"Binary decision?" [shape=diamond];
|
|
40
|
+
"Yes path" [shape=box];
|
|
41
|
+
"No path" [shape=box];
|
|
42
|
+
|
|
43
|
+
"Binary decision?" -> "Yes path" [label="yes"];
|
|
44
|
+
"Binary decision?" -> "No path" [label="no"];
|
|
45
|
+
|
|
46
|
+
"Multiple choice?" [shape=diamond];
|
|
47
|
+
"Option A" [shape=box];
|
|
48
|
+
"Option B" [shape=box];
|
|
49
|
+
"Option C" [shape=box];
|
|
50
|
+
|
|
51
|
+
"Multiple choice?" -> "Option A" [label="condition A"];
|
|
52
|
+
"Multiple choice?" -> "Option B" [label="condition B"];
|
|
53
|
+
"Multiple choice?" -> "Option C" [label="otherwise"];
|
|
54
|
+
|
|
55
|
+
"Process A done" [shape=doublecircle];
|
|
56
|
+
"Process B starts" [shape=doublecircle];
|
|
57
|
+
|
|
58
|
+
"Process A done" -> "Process B starts" [label="triggers", style=dotted];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Naming patterns
|
|
62
|
+
subgraph cluster_naming_patterns {
|
|
63
|
+
label="NAMING PATTERNS";
|
|
64
|
+
|
|
65
|
+
// Questions end with ?
|
|
66
|
+
"Should I do X?";
|
|
67
|
+
"Can this be Y?";
|
|
68
|
+
"Is Z true?";
|
|
69
|
+
"Have I done W?";
|
|
70
|
+
|
|
71
|
+
// Actions start with verb
|
|
72
|
+
"Write the test";
|
|
73
|
+
"Search for patterns";
|
|
74
|
+
"Commit changes";
|
|
75
|
+
"Ask for help";
|
|
76
|
+
|
|
77
|
+
// Commands are literal
|
|
78
|
+
"grep -r 'pattern' .";
|
|
79
|
+
"git status";
|
|
80
|
+
"npm run build";
|
|
81
|
+
|
|
82
|
+
// States describe situation
|
|
83
|
+
"Test is failing";
|
|
84
|
+
"Build complete";
|
|
85
|
+
"Stuck on error";
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Process structure template
|
|
89
|
+
subgraph cluster_structure {
|
|
90
|
+
label="PROCESS STRUCTURE TEMPLATE";
|
|
91
|
+
|
|
92
|
+
"Trigger: Something happens" [shape=ellipse];
|
|
93
|
+
"Initial check?" [shape=diamond];
|
|
94
|
+
"Main action" [shape=box];
|
|
95
|
+
"git status" [shape=plaintext];
|
|
96
|
+
"Another check?" [shape=diamond];
|
|
97
|
+
"Alternative action" [shape=box];
|
|
98
|
+
"STOP: Don't do this" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
99
|
+
"Process complete" [shape=doublecircle];
|
|
100
|
+
|
|
101
|
+
"Trigger: Something happens" -> "Initial check?";
|
|
102
|
+
"Initial check?" -> "Main action" [label="yes"];
|
|
103
|
+
"Initial check?" -> "Alternative action" [label="no"];
|
|
104
|
+
"Main action" -> "git status";
|
|
105
|
+
"git status" -> "Another check?";
|
|
106
|
+
"Another check?" -> "Process complete" [label="ok"];
|
|
107
|
+
"Another check?" -> "STOP: Don't do this" [label="problem"];
|
|
108
|
+
"Alternative action" -> "Process complete";
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// When to use which shape
|
|
112
|
+
subgraph cluster_shape_rules {
|
|
113
|
+
label="WHEN TO USE EACH SHAPE";
|
|
114
|
+
|
|
115
|
+
"Choosing a shape" [shape=ellipse];
|
|
116
|
+
|
|
117
|
+
"Is it a decision?" [shape=diamond];
|
|
118
|
+
"Use diamond" [shape=diamond, style=filled, fillcolor=lightblue];
|
|
119
|
+
|
|
120
|
+
"Is it a command?" [shape=diamond];
|
|
121
|
+
"Use plaintext" [shape=plaintext, style=filled, fillcolor=lightgray];
|
|
122
|
+
|
|
123
|
+
"Is it a warning?" [shape=diamond];
|
|
124
|
+
"Use octagon" [shape=octagon, style=filled, fillcolor=pink];
|
|
125
|
+
|
|
126
|
+
"Is it entry/exit?" [shape=diamond];
|
|
127
|
+
"Use doublecircle" [shape=doublecircle, style=filled, fillcolor=lightgreen];
|
|
128
|
+
|
|
129
|
+
"Is it a state?" [shape=diamond];
|
|
130
|
+
"Use ellipse" [shape=ellipse, style=filled, fillcolor=lightyellow];
|
|
131
|
+
|
|
132
|
+
"Default: use box" [shape=box, style=filled, fillcolor=lightcyan];
|
|
133
|
+
|
|
134
|
+
"Choosing a shape" -> "Is it a decision?";
|
|
135
|
+
"Is it a decision?" -> "Use diamond" [label="yes"];
|
|
136
|
+
"Is it a decision?" -> "Is it a command?" [label="no"];
|
|
137
|
+
"Is it a command?" -> "Use plaintext" [label="yes"];
|
|
138
|
+
"Is it a command?" -> "Is it a warning?" [label="no"];
|
|
139
|
+
"Is it a warning?" -> "Use octagon" [label="yes"];
|
|
140
|
+
"Is it a warning?" -> "Is it entry/exit?" [label="no"];
|
|
141
|
+
"Is it entry/exit?" -> "Use doublecircle" [label="yes"];
|
|
142
|
+
"Is it entry/exit?" -> "Is it a state?" [label="no"];
|
|
143
|
+
"Is it a state?" -> "Use ellipse" [label="yes"];
|
|
144
|
+
"Is it a state?" -> "Default: use box" [label="no"];
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Good vs bad examples
|
|
148
|
+
subgraph cluster_examples {
|
|
149
|
+
label="GOOD VS BAD EXAMPLES";
|
|
150
|
+
|
|
151
|
+
// Good: specific and shaped correctly
|
|
152
|
+
"Test failed" [shape=ellipse];
|
|
153
|
+
"Read error message" [shape=box];
|
|
154
|
+
"Can reproduce?" [shape=diamond];
|
|
155
|
+
"git diff HEAD~1" [shape=plaintext];
|
|
156
|
+
"NEVER ignore errors" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
157
|
+
|
|
158
|
+
"Test failed" -> "Read error message";
|
|
159
|
+
"Read error message" -> "Can reproduce?";
|
|
160
|
+
"Can reproduce?" -> "git diff HEAD~1" [label="yes"];
|
|
161
|
+
|
|
162
|
+
// Bad: vague and wrong shapes
|
|
163
|
+
bad_1 [label="Something wrong", shape=box]; // Should be ellipse (state)
|
|
164
|
+
bad_2 [label="Fix it", shape=box]; // Too vague
|
|
165
|
+
bad_3 [label="Check", shape=box]; // Should be diamond
|
|
166
|
+
bad_4 [label="Run command", shape=box]; // Should be plaintext with actual command
|
|
167
|
+
|
|
168
|
+
bad_1 -> bad_2;
|
|
169
|
+
bad_2 -> bad_3;
|
|
170
|
+
bad_3 -> bad_4;
|
|
171
|
+
}
|
|
172
172
|
}
|
|
File without changes
|