@hiai-gg/hiai-opencode 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +57 -57
- package/AGENTS.md +281 -281
- package/ARCHITECTURE.md +281 -281
- package/LICENSE.md +59 -59
- package/README.md +301 -301
- package/assets/mcp/mempalace.mjs +153 -153
- package/assets/mcp/rag.mjs +236 -236
- package/assets/runtime/npm-package-runner.mjs +54 -54
- package/config/hiai-opencode.schema.json +82 -82
- package/config/opencode.json +4 -4
- package/dist/index.js +242 -242
- package/hiai-opencode.json +57 -57
- package/package.json +91 -91
- package/scripts/check_docs.ts +128 -128
- package/scripts/doctor.ts +522 -522
- package/scripts/measure_prompts.ts +192 -192
- package/scripts/test_routing.ts +294 -294
- package/skills/api-and-interface-design/SKILL.md +294 -294
- package/skills/brainstorming/SKILL.md +164 -164
- package/skills/brainstorming/scripts/frame-template.html +214 -214
- package/skills/brainstorming/scripts/helper.js +88 -88
- package/skills/brainstorming/scripts/server.cjs +354 -354
- package/skills/brainstorming/scripts/start-server.sh +148 -148
- package/skills/brainstorming/scripts/stop-server.sh +56 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
- package/skills/brainstorming/visual-companion.md +287 -287
- package/skills/browser-testing-with-devtools/SKILL.md +302 -302
- package/skills/ci-cd-and-automation/SKILL.md +390 -390
- package/skills/code-review-and-quality/SKILL.md +347 -347
- package/skills/code-simplification/SKILL.md +331 -331
- package/skills/context-engineering/SKILL.md +289 -289
- package/skills/deprecation-and-migration/SKILL.md +206 -206
- package/skills/dispatching-parallel-agents/SKILL.md +182 -182
- package/skills/documentation-and-adrs/SKILL.md +278 -278
- package/skills/executing-plans/SKILL.md +70 -70
- package/skills/finishing-a-development-branch/SKILL.md +200 -200
- package/skills/frontend-ui-engineering/SKILL.md +322 -322
- package/skills/git-workflow-and-versioning/SKILL.md +300 -300
- package/skills/incremental-implementation/SKILL.md +241 -241
- package/skills/performance-optimization/SKILL.md +350 -350
- package/skills/receiving-code-review/SKILL.md +213 -213
- package/skills/requesting-code-review/SKILL.md +105 -105
- package/skills/requesting-code-review/code-reviewer.md +146 -146
- package/skills/security-and-hardening/SKILL.md +349 -349
- package/skills/shipping-and-launch/SKILL.md +309 -309
- package/skills/source-driven-development/SKILL.md +194 -194
- package/skills/spec-driven-development/SKILL.md +200 -200
- package/skills/subagent-driven-development/SKILL.md +277 -277
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
- package/skills/subagent-driven-development/implementer-prompt.md +113 -113
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
- package/skills/systematic-debugging/CREATION-LOG.md +119 -119
- package/skills/systematic-debugging/SKILL.md +596 -596
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
- package/skills/systematic-debugging/condition-based-waiting.md +115 -115
- package/skills/systematic-debugging/defense-in-depth.md +122 -122
- package/skills/systematic-debugging/find-polluter.sh +63 -63
- package/skills/systematic-debugging/root-cause-tracing.md +169 -169
- package/skills/systematic-debugging/test-academic.md +14 -14
- package/skills/systematic-debugging/test-pressure-1.md +58 -58
- package/skills/systematic-debugging/test-pressure-2.md +68 -68
- package/skills/systematic-debugging/test-pressure-3.md +69 -69
- package/skills/test-driven-development/SKILL.md +379 -379
- package/skills/using-agent-skills/SKILL.md +174 -174
- package/skills/using-git-worktrees/SKILL.md +218 -218
- package/skills/using-superpowers/SKILL.md +117 -117
- package/skills/using-superpowers/references/codex-tools.md +100 -100
- package/skills/using-superpowers/references/copilot-tools.md +52 -52
- package/skills/using-superpowers/references/gemini-tools.md +33 -33
- package/skills/verification-before-completion/SKILL.md +139 -139
- package/skills/writing-plans/SKILL.md +152 -152
- package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
- package/skills/writing-skills/SKILL.md +655 -655
- package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
- package/skills/writing-skills/graphviz-conventions.dot +171 -171
- package/skills/writing-skills/persuasion-principles.md +187 -187
- package/skills/writing-skills/render-graphs.js +168 -168
- package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
- package/src/AGENTS.md +41 -41
- package/src/agents/AGENTS.md +74 -74
- package/src/agents/agent-builder.ts +50 -50
- package/src/agents/bob/AGENTS.md +29 -29
- package/src/agents/bob/default.ts +128 -128
- package/src/agents/bob/gemini.ts +237 -237
- package/src/agents/bob/gpt-pro.ts +430 -430
- package/src/agents/bob/index.ts +19 -19
- package/src/agents/bob.ts +528 -528
- package/src/agents/builtin-agents/agent-overrides.ts +75 -75
- package/src/agents/builtin-agents/available-skills.ts +35 -35
- package/src/agents/builtin-agents/bob-agent.ts +96 -96
- package/src/agents/builtin-agents/coder-agent.ts +98 -98
- package/src/agents/builtin-agents/environment-context.ts +16 -16
- package/src/agents/builtin-agents/general-agents.ts +122 -122
- package/src/agents/builtin-agents/guard-agent.ts +66 -66
- package/src/agents/builtin-agents/model-resolution.ts +31 -31
- package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
- package/src/agents/builtin-agents.ts +194 -194
- package/src/agents/coder/AGENTS.md +34 -34
- package/src/agents/coder/agent.ts +162 -162
- package/src/agents/coder/gpt-codex.ts +404 -404
- package/src/agents/coder/gpt-pro.ts +319 -319
- package/src/agents/coder/gpt.ts +253 -253
- package/src/agents/coder/index.ts +8 -8
- package/src/agents/critic/agent.ts +105 -105
- package/src/agents/custom-agent-summaries.ts +61 -61
- package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
- package/src/agents/dynamic-agent-core-sections.ts +237 -237
- package/src/agents/dynamic-agent-policy-sections.ts +182 -182
- package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
- package/src/agents/dynamic-agent-prompt-types.ts +24 -24
- package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
- package/src/agents/env-context.ts +16 -16
- package/src/agents/gpt-apply-patch-guard.ts +7 -7
- package/src/agents/guard/agent.ts +146 -146
- package/src/agents/guard/default-prompt-sections.ts +305 -305
- package/src/agents/guard/default.ts +22 -22
- package/src/agents/guard/gemini-prompt-sections.ts +293 -293
- package/src/agents/guard/gemini.ts +22 -22
- package/src/agents/guard/gpt-prompt-sections.ts +296 -296
- package/src/agents/guard/gpt.ts +22 -22
- package/src/agents/guard/index.ts +2 -2
- package/src/agents/guard/prompt-section-builder.ts +104 -104
- package/src/agents/guard/shared-prompt.ts +172 -172
- package/src/agents/index.ts +5 -5
- package/src/agents/platform-adapter.ts +236 -236
- package/src/agents/platform-manager.ts +57 -57
- package/src/agents/prompt-library/identity.ts +14 -14
- package/src/agents/prompt-library/index.ts +7 -7
- package/src/agents/prompt-library/intent-gate.ts +149 -149
- package/src/agents/prompt-library/orchestration.ts +60 -60
- package/src/agents/prompt-library/platform.ts +36 -36
- package/src/agents/prompt-library/specialized.ts +39 -39
- package/src/agents/prompt-library/strategy.ts +80 -80
- package/src/agents/prompt-library/todo-discipline.ts +22 -22
- package/src/agents/quality-guardian.ts +76 -76
- package/src/agents/researcher.ts +73 -73
- package/src/agents/strategist/AGENTS.md +37 -37
- package/src/agents/strategist/behavioral-summary.ts +79 -79
- package/src/agents/strategist/gemini.ts +333 -333
- package/src/agents/strategist/gpt.ts +460 -460
- package/src/agents/strategist/high-accuracy-mode.ts +78 -78
- package/src/agents/strategist/identity-constraints.ts +336 -336
- package/src/agents/strategist/index.ts +6 -6
- package/src/agents/strategist/interview-mode.ts +335 -335
- package/src/agents/strategist/plan-generation.ts +213 -213
- package/src/agents/strategist/plan-template.ts +325 -325
- package/src/agents/strategist/system-prompt.ts +68 -68
- package/src/agents/sub/agent.ts +141 -141
- package/src/agents/sub/default.ts +52 -52
- package/src/agents/sub/gemini.ts +194 -194
- package/src/agents/sub/gpt-codex.ts +156 -156
- package/src/agents/sub/gpt-pro.ts +161 -161
- package/src/agents/sub/gpt.ts +157 -157
- package/src/agents/sub/index.ts +13 -13
- package/src/agents/types.ts +144 -144
- package/src/agents/ui.ts +58 -58
- package/src/config/data/model-capabilities.json +40690 -40690
- package/src/config/defaults.ts +146 -146
- package/src/config/hiai-opencode.schema.json +12 -12
- package/src/config/index.ts +67 -67
- package/src/config/loader.test.ts +65 -65
- package/src/config/loader.ts +183 -183
- package/src/config/models.ts +32 -32
- package/src/config/platform-schema.ts +192 -192
- package/src/config/schema/agent-definitions.ts +5 -5
- package/src/config/schema/agent-names.ts +66 -66
- package/src/config/schema/agent-overrides.ts +95 -95
- package/src/config/schema/babysitting.ts +7 -7
- package/src/config/schema/background-task.ts +29 -29
- package/src/config/schema/bob-agent.ts +11 -11
- package/src/config/schema/bob.ts +17 -17
- package/src/config/schema/browser-automation.ts +24 -24
- package/src/config/schema/categories.ts +45 -45
- package/src/config/schema/claude-code.ts +13 -13
- package/src/config/schema/commands.ts +14 -14
- package/src/config/schema/comment-checker.ts +8 -8
- package/src/config/schema/dynamic-context-pruning.ts +53 -53
- package/src/config/schema/experimental.ts +27 -27
- package/src/config/schema/fallback-models.ts +31 -31
- package/src/config/schema/fast-apply.ts +14 -14
- package/src/config/schema/git-env-prefix.ts +28 -28
- package/src/config/schema/git-master.ts +14 -14
- package/src/config/schema/hooks.ts +61 -61
- package/src/config/schema/index.ts +52 -52
- package/src/config/schema/internal/permission.ts +20 -20
- package/src/config/schema/model-capabilities.ts +10 -10
- package/src/config/schema/notification.ts +8 -8
- package/src/config/schema/oh-my-opencode-config.ts +90 -90
- package/src/config/schema/openclaw.ts +50 -50
- package/src/config/schema/ralph-loop.ts +11 -11
- package/src/config/schema/runtime-fallback.ts +18 -18
- package/src/config/schema/skills.ts +39 -39
- package/src/config/schema/start-work.ts +7 -7
- package/src/config/schema/tmux.ts +28 -28
- package/src/config/schema/websearch.ts +15 -15
- package/src/config/types.ts +174 -174
- package/src/create-hooks.ts +93 -93
- package/src/create-managers.ts +116 -116
- package/src/create-runtime-tmux-config.ts +18 -18
- package/src/create-tools.ts +53 -53
- package/src/features/background-agent/AGENTS.md +56 -56
- package/src/features/background-agent/abort-with-timeout.ts +35 -35
- package/src/features/background-agent/background-task-notification-template.ts +74 -74
- package/src/features/background-agent/compaction-aware-message-resolver.ts +164 -164
- package/src/features/background-agent/concurrency.ts +137 -137
- package/src/features/background-agent/constants.ts +58 -58
- package/src/features/background-agent/duration-formatter.ts +14 -14
- package/src/features/background-agent/error-classifier.ts +83 -83
- package/src/features/background-agent/fallback-retry-handler.ts +134 -134
- package/src/features/background-agent/index.ts +2 -2
- package/src/features/background-agent/loop-detector.ts +102 -102
- package/src/features/background-agent/manager.ts +2220 -2220
- package/src/features/background-agent/opencode-client.ts +3 -3
- package/src/features/background-agent/process-cleanup.ts +98 -98
- package/src/features/background-agent/remove-task-toast-tracking.ts +8 -8
- package/src/features/background-agent/session-existence.ts +57 -57
- package/src/features/background-agent/session-idle-event-handler.ts +93 -93
- package/src/features/background-agent/session-status-classifier.ts +20 -20
- package/src/features/background-agent/spawner/parent-directory-resolver.ts +24 -24
- package/src/features/background-agent/spawner.ts +327 -327
- package/src/features/background-agent/state.ts +199 -199
- package/src/features/background-agent/subagent-spawn-limits.ts +97 -97
- package/src/features/background-agent/task-history.ts +79 -79
- package/src/features/background-agent/task-poller.ts +225 -225
- package/src/features/background-agent/types.ts +100 -100
- package/src/features/boulder-state/constants.ts +13 -13
- package/src/features/boulder-state/index.ts +4 -4
- package/src/features/boulder-state/storage.ts +336 -336
- package/src/features/boulder-state/top-level-task.ts +78 -78
- package/src/features/boulder-state/types.ts +61 -61
- package/src/features/builtin-commands/commands.ts +143 -143
- package/src/features/builtin-commands/index.ts +2 -2
- package/src/features/builtin-commands/templates/handoff.ts +177 -177
- package/src/features/builtin-commands/templates/init-deep.ts +305 -305
- package/src/features/builtin-commands/templates/ralph-loop.ts +66 -66
- package/src/features/builtin-commands/templates/refactor.ts +619 -619
- package/src/features/builtin-commands/templates/remove-ai-slops.ts +96 -96
- package/src/features/builtin-commands/templates/start-work.ts +128 -128
- package/src/features/builtin-commands/templates/stop-continuation.ts +13 -13
- package/src/features/builtin-commands/types.ts +9 -9
- package/src/features/builtin-skills/index.ts +2 -2
- package/src/features/builtin-skills/materialize.ts +338 -338
- package/src/features/builtin-skills/skills/ai-slop-remover.ts +145 -145
- package/src/features/builtin-skills/skills/dev-browser.ts +221 -221
- package/src/features/builtin-skills/skills/frontend-ui-ux.ts +79 -79
- package/src/features/builtin-skills/skills/git-master-sections/commit-workflow.ts +509 -509
- package/src/features/builtin-skills/skills/git-master-sections/history-search-workflow.ts +229 -229
- package/src/features/builtin-skills/skills/git-master-sections/overview.ts +64 -64
- package/src/features/builtin-skills/skills/git-master-sections/quick-reference.ts +86 -86
- package/src/features/builtin-skills/skills/git-master-sections/rebase-workflow.ts +181 -181
- package/src/features/builtin-skills/skills/git-master-skill-metadata.ts +4 -4
- package/src/features/builtin-skills/skills/git-master.ts +28 -28
- package/src/features/builtin-skills/skills/index.ts +7 -7
- package/src/features/builtin-skills/skills/playwright-cli.ts +268 -268
- package/src/features/builtin-skills/skills/playwright.ts +466 -466
- package/src/features/builtin-skills/skills/review-work.ts +536 -536
- package/src/features/builtin-skills/skills.ts +39 -39
- package/src/features/builtin-skills/types.ts +16 -16
- package/src/features/claude-code-agent-loader/agent-definitions-loader.ts +87 -87
- package/src/features/claude-code-agent-loader/claude-model-mapper.ts +53 -53
- package/src/features/claude-code-agent-loader/index.ts +5 -5
- package/src/features/claude-code-agent-loader/json-agent-loader.ts +53 -53
- package/src/features/claude-code-agent-loader/loader.ts +86 -86
- package/src/features/claude-code-agent-loader/opencode-config-agents-reader.ts +125 -125
- package/src/features/claude-code-agent-loader/types.ts +31 -31
- package/src/features/claude-code-command-loader/index.ts +2 -2
- package/src/features/claude-code-command-loader/loader.ts +169 -169
- package/src/features/claude-code-command-loader/types.ts +46 -46
- package/src/features/claude-code-mcp-loader/configure-allowed-env-vars.ts +48 -48
- package/src/features/claude-code-mcp-loader/env-expander.ts +51 -51
- package/src/features/claude-code-mcp-loader/index.ts +12 -12
- package/src/features/claude-code-mcp-loader/loader.ts +156 -156
- package/src/features/claude-code-mcp-loader/scope-filter.ts +17 -17
- package/src/features/claude-code-mcp-loader/transformer.ts +57 -57
- package/src/features/claude-code-mcp-loader/types.ts +51 -51
- package/src/features/claude-code-plugin-loader/agent-loader.ts +59 -59
- package/src/features/claude-code-plugin-loader/command-loader.ts +53 -53
- package/src/features/claude-code-plugin-loader/discovery.ts +251 -251
- package/src/features/claude-code-plugin-loader/hook-loader.ts +26 -26
- package/src/features/claude-code-plugin-loader/index.ts +10 -10
- package/src/features/claude-code-plugin-loader/loader.ts +134 -134
- package/src/features/claude-code-plugin-loader/mcp-server-loader.ts +59 -59
- package/src/features/claude-code-plugin-loader/plugin-path-resolver.ts +23 -23
- package/src/features/claude-code-plugin-loader/scope-filter.ts +29 -29
- package/src/features/claude-code-plugin-loader/skill-loader.ts +62 -62
- package/src/features/claude-code-plugin-loader/types.ts +255 -255
- package/src/features/claude-code-session-state/index.ts +1 -1
- package/src/features/claude-code-session-state/state.ts +154 -154
- package/src/features/claude-tasks/session-storage.ts +52 -52
- package/src/features/claude-tasks/storage.ts +169 -169
- package/src/features/claude-tasks/types.ts +20 -20
- package/src/features/context-injector/collector.ts +91 -91
- package/src/features/context-injector/index.ts +14 -14
- package/src/features/context-injector/injector.ts +167 -167
- package/src/features/context-injector/types.ts +91 -91
- package/src/features/hook-message-injector/constants.ts +1 -1
- package/src/features/hook-message-injector/index.ts +11 -11
- package/src/features/hook-message-injector/injector.ts +437 -437
- package/src/features/hook-message-injector/types.ts +49 -49
- package/src/features/mcp-oauth/AGENTS.md +54 -54
- package/src/features/mcp-oauth/callback-server.ts +106 -106
- package/src/features/mcp-oauth/dcr.ts +98 -98
- package/src/features/mcp-oauth/discovery.ts +134 -134
- package/src/features/mcp-oauth/oauth-authorization-flow.ts +150 -150
- package/src/features/mcp-oauth/provider.ts +215 -215
- package/src/features/mcp-oauth/refresh-mutex.ts +58 -58
- package/src/features/mcp-oauth/resource-indicator.ts +16 -16
- package/src/features/mcp-oauth/schema.ts +8 -8
- package/src/features/mcp-oauth/step-up.ts +79 -79
- package/src/features/mcp-oauth/storage.ts +155 -155
- package/src/features/opencode-skill-loader/AGENTS.md +59 -59
- package/src/features/opencode-skill-loader/allowed-tools-parser.ts +9 -9
- package/src/features/opencode-skill-loader/async-loader.ts +213 -213
- package/src/features/opencode-skill-loader/blocking.ts +62 -62
- package/src/features/opencode-skill-loader/config-source-discovery.ts +114 -114
- package/src/features/opencode-skill-loader/discover-worker.ts +56 -56
- package/src/features/opencode-skill-loader/git-master-template-injection.ts +150 -150
- package/src/features/opencode-skill-loader/index.ts +17 -17
- package/src/features/opencode-skill-loader/loaded-skill-from-path.ts +73 -73
- package/src/features/opencode-skill-loader/loaded-skill-template-extractor.ts +16 -16
- package/src/features/opencode-skill-loader/loader.ts +172 -172
- package/src/features/opencode-skill-loader/merger/builtin-skill-converter.ts +26 -26
- package/src/features/opencode-skill-loader/merger/config-skill-entry-loader.ts +117 -117
- package/src/features/opencode-skill-loader/merger/scope-priority.ts +10 -10
- package/src/features/opencode-skill-loader/merger/skill-definition-merger.ts +31 -31
- package/src/features/opencode-skill-loader/merger/skills-config-normalizer.ts +19 -19
- package/src/features/opencode-skill-loader/merger.ts +96 -96
- package/src/features/opencode-skill-loader/skill-content.ts +11 -11
- package/src/features/opencode-skill-loader/skill-deduplication.ts +13 -13
- package/src/features/opencode-skill-loader/skill-definition-record.ts +11 -11
- package/src/features/opencode-skill-loader/skill-directory-loader.ts +112 -112
- package/src/features/opencode-skill-loader/skill-discovery.ts +76 -76
- package/src/features/opencode-skill-loader/skill-mcp-config.ts +45 -45
- package/src/features/opencode-skill-loader/skill-resolution-options.ts +9 -9
- package/src/features/opencode-skill-loader/skill-template-resolver.ts +97 -97
- package/src/features/opencode-skill-loader/types.ts +38 -38
- package/src/features/run-continuation-state/constants.ts +1 -1
- package/src/features/run-continuation-state/index.ts +3 -3
- package/src/features/run-continuation-state/storage.ts +80 -80
- package/src/features/run-continuation-state/types.ts +15 -15
- package/src/features/skill-mcp-manager/AGENTS.md +111 -111
- package/src/features/skill-mcp-manager/cleanup.ts +153 -153
- package/src/features/skill-mcp-manager/connection-type.ts +26 -26
- package/src/features/skill-mcp-manager/connection.ts +146 -146
- package/src/features/skill-mcp-manager/env-cleaner.ts +59 -59
- package/src/features/skill-mcp-manager/error-redaction.ts +47 -47
- package/src/features/skill-mcp-manager/http-client.ts +126 -126
- package/src/features/skill-mcp-manager/index.ts +2 -2
- package/src/features/skill-mcp-manager/manager.ts +178 -178
- package/src/features/skill-mcp-manager/oauth-handler.ts +160 -160
- package/src/features/skill-mcp-manager/stdio-client.ts +112 -112
- package/src/features/skill-mcp-manager/types.ts +96 -96
- package/src/features/task-toast-manager/index.ts +2 -2
- package/src/features/task-toast-manager/manager.ts +251 -251
- package/src/features/task-toast-manager/types.ts +29 -29
- package/src/features/tmux-subagent/action-executor-core.ts +82 -82
- package/src/features/tmux-subagent/action-executor.ts +137 -137
- package/src/features/tmux-subagent/cleanup.ts +42 -42
- package/src/features/tmux-subagent/decision-engine.ts +22 -22
- package/src/features/tmux-subagent/event-handlers.ts +6 -6
- package/src/features/tmux-subagent/grid-planning.ts +137 -137
- package/src/features/tmux-subagent/index.ts +16 -16
- package/src/features/tmux-subagent/manager.ts +969 -969
- package/src/features/tmux-subagent/oldest-agent-pane.ts +37 -37
- package/src/features/tmux-subagent/pane-split-availability.ts +77 -77
- package/src/features/tmux-subagent/pane-state-parser.ts +135 -135
- package/src/features/tmux-subagent/pane-state-querier.ts +76 -76
- package/src/features/tmux-subagent/polling-constants.ts +6 -6
- package/src/features/tmux-subagent/polling-manager.ts +167 -167
- package/src/features/tmux-subagent/polling.ts +183 -183
- package/src/features/tmux-subagent/session-created-event.ts +44 -44
- package/src/features/tmux-subagent/session-created-handler.ts +175 -175
- package/src/features/tmux-subagent/session-deleted-handler.ts +50 -50
- package/src/features/tmux-subagent/session-message-count.ts +3 -3
- package/src/features/tmux-subagent/session-ready-waiter.ts +44 -44
- package/src/features/tmux-subagent/session-status-parser.ts +17 -17
- package/src/features/tmux-subagent/spawn-action-decider.ts +147 -147
- package/src/features/tmux-subagent/spawn-target-finder.ts +146 -146
- package/src/features/tmux-subagent/tmux-grid-constants.ts +57 -57
- package/src/features/tmux-subagent/tracked-session-state.ts +29 -29
- package/src/features/tmux-subagent/types.ts +54 -54
- package/src/features/tool-metadata-store/index.ts +7 -7
- package/src/features/tool-metadata-store/store.ts +84 -84
- package/src/hooks/agent-usage-reminder/constants.ts +52 -52
- package/src/hooks/agent-usage-reminder/hook.ts +134 -134
- package/src/hooks/agent-usage-reminder/index.ts +1 -1
- package/src/hooks/agent-usage-reminder/storage.ts +42 -42
- package/src/hooks/agent-usage-reminder/types.ts +6 -6
- package/src/hooks/anthropic-context-window-limit-recovery/AGENTS.md +49 -49
- package/src/hooks/anthropic-context-window-limit-recovery/aggressive-truncation-strategy.ts +87 -87
- package/src/hooks/anthropic-context-window-limit-recovery/client.ts +21 -21
- package/src/hooks/anthropic-context-window-limit-recovery/deduplication-recovery.ts +77 -77
- package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.ts +199 -199
- package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery.ts +149 -149
- package/src/hooks/anthropic-context-window-limit-recovery/executor.ts +83 -83
- package/src/hooks/anthropic-context-window-limit-recovery/index.ts +8 -8
- package/src/hooks/anthropic-context-window-limit-recovery/message-builder.ts +190 -190
- package/src/hooks/anthropic-context-window-limit-recovery/message-storage-directory.ts +40 -40
- package/src/hooks/anthropic-context-window-limit-recovery/parser.ts +209 -209
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +189 -189
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-tool-output-truncation.ts +142 -142
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +44 -44
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.ts +119 -119
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.ts +193 -193
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-strategy.ts +2 -2
- package/src/hooks/anthropic-context-window-limit-recovery/session-timeout-map.ts +20 -20
- package/src/hooks/anthropic-context-window-limit-recovery/state.ts +78 -78
- package/src/hooks/anthropic-context-window-limit-recovery/storage-paths.ts +6 -6
- package/src/hooks/anthropic-context-window-limit-recovery/storage.ts +18 -18
- package/src/hooks/anthropic-context-window-limit-recovery/summarize-retry-strategy.ts +218 -218
- package/src/hooks/anthropic-context-window-limit-recovery/target-token-truncation.ts +196 -196
- package/src/hooks/anthropic-context-window-limit-recovery/tool-part-types.ts +38 -38
- package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage-sdk.ts +123 -123
- package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage.ts +119 -119
- package/src/hooks/anthropic-context-window-limit-recovery/types.ts +44 -44
- package/src/hooks/anthropic-effort/hook.ts +93 -93
- package/src/hooks/anthropic-effort/index.ts +1 -1
- package/src/hooks/auto-slash-command/constants.ts +12 -12
- package/src/hooks/auto-slash-command/detector.ts +88 -88
- package/src/hooks/auto-slash-command/executor.ts +165 -165
- package/src/hooks/auto-slash-command/hook.ts +238 -238
- package/src/hooks/auto-slash-command/index.ts +7 -7
- package/src/hooks/auto-slash-command/processed-command-store.ts +74 -74
- package/src/hooks/auto-slash-command/types.ts +42 -42
- package/src/hooks/background-notification/hook.ts +54 -54
- package/src/hooks/background-notification/index.ts +2 -2
- package/src/hooks/background-notification/types.ts +5 -5
- package/src/hooks/bash-file-read-guard.ts +44 -44
- package/src/hooks/category-skill-reminder/formatter.ts +37 -37
- package/src/hooks/category-skill-reminder/hook.ts +142 -142
- package/src/hooks/category-skill-reminder/index.ts +1 -1
- package/src/hooks/claude-code-hooks/AGENTS.md +41 -41
- package/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts +28 -28
- package/src/hooks/claude-code-hooks/config-loader.ts +151 -151
- package/src/hooks/claude-code-hooks/config.ts +147 -147
- package/src/hooks/claude-code-hooks/dispatch-hook.ts +27 -27
- package/src/hooks/claude-code-hooks/execute-http-hook.ts +116 -116
- package/src/hooks/claude-code-hooks/handlers/chat-message-handler.ts +140 -140
- package/src/hooks/claude-code-hooks/handlers/pre-compact-handler.ts +41 -41
- package/src/hooks/claude-code-hooks/handlers/session-event-handler.ts +137 -137
- package/src/hooks/claude-code-hooks/handlers/tool-execute-after-handler.ts +160 -160
- package/src/hooks/claude-code-hooks/handlers/tool-execute-before-handler.ts +93 -93
- package/src/hooks/claude-code-hooks/index.ts +1 -1
- package/src/hooks/claude-code-hooks/plugin-config.ts +12 -12
- package/src/hooks/claude-code-hooks/post-tool-use.ts +195 -195
- package/src/hooks/claude-code-hooks/pre-compact.ts +105 -105
- package/src/hooks/claude-code-hooks/pre-tool-use.ts +168 -168
- package/src/hooks/claude-code-hooks/session-hook-state.ts +17 -17
- package/src/hooks/claude-code-hooks/stop.ts +118 -118
- package/src/hooks/claude-code-hooks/todo.ts +76 -76
- package/src/hooks/claude-code-hooks/tool-input-cache.ts +82 -82
- package/src/hooks/claude-code-hooks/transcript.ts +248 -248
- package/src/hooks/claude-code-hooks/types.ts +214 -214
- package/src/hooks/claude-code-hooks/user-prompt-submit.ts +121 -121
- package/src/hooks/comment-checker/cli-runner.ts +127 -127
- package/src/hooks/comment-checker/cli.ts +269 -269
- package/src/hooks/comment-checker/downloader.ts +170 -170
- package/src/hooks/comment-checker/hook.ts +192 -192
- package/src/hooks/comment-checker/index.ts +1 -1
- package/src/hooks/comment-checker/pending-calls.ts +45 -45
- package/src/hooks/comment-checker/types.ts +33 -33
- package/src/hooks/compaction-context-injector/compaction-context-prompt.ts +56 -56
- package/src/hooks/compaction-context-injector/constants.ts +5 -5
- package/src/hooks/compaction-context-injector/hook.ts +164 -164
- package/src/hooks/compaction-context-injector/index.ts +1 -1
- package/src/hooks/compaction-context-injector/recovery-prompt-config.ts +77 -77
- package/src/hooks/compaction-context-injector/recovery.ts +163 -163
- package/src/hooks/compaction-context-injector/session-id.ts +8 -8
- package/src/hooks/compaction-context-injector/session-prompt-config-resolver.ts +120 -120
- package/src/hooks/compaction-context-injector/tail-monitor.ts +52 -52
- package/src/hooks/compaction-context-injector/types.ts +25 -25
- package/src/hooks/compaction-context-injector/validated-model.ts +47 -47
- package/src/hooks/compaction-todo-preserver/hook.ts +127 -127
- package/src/hooks/compaction-todo-preserver/index.ts +2 -2
- package/src/hooks/context-window-monitor.ts +113 -113
- package/src/hooks/delegate-task-retry/guidance.ts +45 -45
- package/src/hooks/delegate-task-retry/hook.ts +22 -22
- package/src/hooks/delegate-task-retry/index.ts +4 -4
- package/src/hooks/delegate-task-retry/patterns.ts +77 -77
- package/src/hooks/directory-agents-injector/constants.ts +7 -7
- package/src/hooks/directory-agents-injector/finder.ts +38 -38
- package/src/hooks/directory-agents-injector/hook.ts +80 -80
- package/src/hooks/directory-agents-injector/index.ts +1 -1
- package/src/hooks/directory-agents-injector/injector.ts +59 -59
- package/src/hooks/directory-agents-injector/storage.ts +8 -8
- package/src/hooks/directory-readme-injector/constants.ts +7 -7
- package/src/hooks/directory-readme-injector/finder.ts +33 -33
- package/src/hooks/directory-readme-injector/hook.ts +80 -80
- package/src/hooks/directory-readme-injector/index.ts +1 -1
- package/src/hooks/directory-readme-injector/injector.ts +59 -59
- package/src/hooks/directory-readme-injector/storage.ts +8 -8
- package/src/hooks/edit-error-recovery/hook.ts +58 -58
- package/src/hooks/edit-error-recovery/index.ts +5 -5
- package/src/hooks/empty-task-response-detector.ts +27 -27
- package/src/hooks/fast-apply/hook.ts +11 -11
- package/src/hooks/fast-apply/index.ts +1 -1
- package/src/hooks/fast-apply/ollama-client.ts +53 -53
- package/src/hooks/fast-apply/tool-execute-before-handler.ts +86 -86
- package/src/hooks/guard/AGENTS.md +64 -64
- package/src/hooks/guard/background-launch-session-tracking.ts +97 -97
- package/src/hooks/guard/bob-path.ts +8 -8
- package/src/hooks/guard/boulder-continuation-injector.ts +109 -109
- package/src/hooks/guard/boulder-session-lineage.ts +44 -44
- package/src/hooks/guard/event-handler.ts +104 -104
- package/src/hooks/guard/final-wave-approval-gate.ts +47 -47
- package/src/hooks/guard/final-wave-plan-state.ts +60 -60
- package/src/hooks/guard/guard-hook.ts +27 -27
- package/src/hooks/guard/hook-name.ts +1 -1
- package/src/hooks/guard/idle-event.ts +341 -341
- package/src/hooks/guard/index.ts +3 -3
- package/src/hooks/guard/is-abort-error.ts +20 -20
- package/src/hooks/guard/recent-model-resolver.ts +89 -89
- package/src/hooks/guard/resolve-active-boulder-session.ts +29 -29
- package/src/hooks/guard/session-last-agent.ts +153 -153
- package/src/hooks/guard/subagent-session-id.ts +54 -54
- package/src/hooks/guard/system-reminder-templates.ts +249 -249
- package/src/hooks/guard/task-context.ts +45 -45
- package/src/hooks/guard/tool-execute-after.ts +209 -209
- package/src/hooks/guard/tool-execute-before.ts +102 -102
- package/src/hooks/guard/tsconfig.json +9 -9
- package/src/hooks/guard/types.ts +45 -45
- package/src/hooks/guard/verification-reminders.ts +197 -197
- package/src/hooks/guard/write-edit-tool-policy.ts +5 -5
- package/src/hooks/hashline-edit-diff-enhancer/hook.ts +106 -106
- package/src/hooks/hashline-read-enhancer/hook.ts +193 -193
- package/src/hooks/hashline-read-enhancer/index.ts +1 -1
- package/src/hooks/index.ts +58 -58
- package/src/hooks/interactive-bash-session/constants.ts +13 -13
- package/src/hooks/interactive-bash-session/hook.ts +125 -125
- package/src/hooks/interactive-bash-session/index.ts +3 -3
- package/src/hooks/interactive-bash-session/interactive-bash-session-tracker.ts +119 -119
- package/src/hooks/interactive-bash-session/parser.ts +118 -118
- package/src/hooks/interactive-bash-session/state-manager.ts +35 -35
- package/src/hooks/interactive-bash-session/storage.ts +59 -59
- package/src/hooks/interactive-bash-session/tmux-command-parser.ts +125 -125
- package/src/hooks/interactive-bash-session/types.ts +11 -11
- package/src/hooks/json-error-recovery/hook.ts +58 -58
- package/src/hooks/json-error-recovery/index.ts +6 -6
- package/src/hooks/keyword-detector/AGENTS.md +57 -57
- package/src/hooks/keyword-detector/analyze/default.ts +28 -28
- package/src/hooks/keyword-detector/analyze/index.ts +1 -1
- package/src/hooks/keyword-detector/constants.ts +45 -45
- package/src/hooks/keyword-detector/detector.ts +53 -53
- package/src/hooks/keyword-detector/hook.ts +143 -143
- package/src/hooks/keyword-detector/index.ts +5 -5
- package/src/hooks/keyword-detector/search/default.ts +20 -20
- package/src/hooks/keyword-detector/search/index.ts +1 -1
- package/src/hooks/keyword-detector/types.ts +4 -4
- package/src/hooks/keyword-detector/ultrawork/default.ts +302 -302
- package/src/hooks/keyword-detector/ultrawork/gemini.ts +290 -290
- package/src/hooks/keyword-detector/ultrawork/gpt.ts +173 -173
- package/src/hooks/keyword-detector/ultrawork/index.ts +56 -56
- package/src/hooks/keyword-detector/ultrawork/planner.ts +140 -140
- package/src/hooks/keyword-detector/ultrawork/source-detector.ts +65 -65
- package/src/hooks/legacy-plugin-toast/auto-migrate-runner.ts +2 -2
- package/src/hooks/legacy-plugin-toast/auto-migrate.ts +64 -64
- package/src/hooks/legacy-plugin-toast/hook.ts +68 -68
- package/src/hooks/legacy-plugin-toast/index.ts +1 -1
- package/src/hooks/legacy-plugin-toast/plugin-entry-migrator.ts +1 -1
- package/src/hooks/model-fallback/chat-message-fallback-handler.ts +74 -74
- package/src/hooks/model-fallback/hook.ts +201 -201
- package/src/hooks/model-fallback/next-fallback.ts +84 -84
- package/src/hooks/no-bob-gpt/hook.ts +56 -56
- package/src/hooks/no-bob-gpt/index.ts +1 -1
- package/src/hooks/no-coder-non-gpt/hook.ts +67 -67
- package/src/hooks/no-coder-non-gpt/index.ts +1 -1
- package/src/hooks/non-interactive-env/constants.ts +70 -70
- package/src/hooks/non-interactive-env/detector.ts +19 -19
- package/src/hooks/non-interactive-env/index.ts +5 -5
- package/src/hooks/non-interactive-env/non-interactive-env-hook.ts +73 -73
- package/src/hooks/non-interactive-env/types.ts +3 -3
- package/src/hooks/preemptive-compaction-degradation-monitor.ts +212 -212
- package/src/hooks/preemptive-compaction-no-text-tail.ts +70 -70
- package/src/hooks/preemptive-compaction.ts +218 -218
- package/src/hooks/question-label-truncator/hook.ts +62 -62
- package/src/hooks/question-label-truncator/index.ts +1 -1
- package/src/hooks/ralph-loop/AGENTS.md +62 -62
- package/src/hooks/ralph-loop/command-arguments.ts +30 -30
- package/src/hooks/ralph-loop/completion-handler.ts +65 -65
- package/src/hooks/ralph-loop/completion-promise-detector-test-input.ts +23 -23
- package/src/hooks/ralph-loop/completion-promise-detector.ts +165 -165
- package/src/hooks/ralph-loop/constants.ts +7 -7
- package/src/hooks/ralph-loop/continuation-prompt-builder.ts +77 -77
- package/src/hooks/ralph-loop/continuation-prompt-injector.ts +91 -91
- package/src/hooks/ralph-loop/index.ts +6 -6
- package/src/hooks/ralph-loop/iteration-continuation.ts +64 -64
- package/src/hooks/ralph-loop/logician-verification-detector.ts +88 -88
- package/src/hooks/ralph-loop/loop-session-recovery.ts +33 -33
- package/src/hooks/ralph-loop/loop-state-controller.ts +178 -178
- package/src/hooks/ralph-loop/message-storage-directory.ts +1 -1
- package/src/hooks/ralph-loop/pending-verification-handler.ts +152 -152
- package/src/hooks/ralph-loop/ralph-loop-event-handler.ts +231 -231
- package/src/hooks/ralph-loop/ralph-loop-hook.ts +90 -90
- package/src/hooks/ralph-loop/session-event-handler.ts +56 -56
- package/src/hooks/ralph-loop/session-reset-strategy.ts +69 -69
- package/src/hooks/ralph-loop/storage.ts +164 -164
- package/src/hooks/ralph-loop/types.ts +25 -25
- package/src/hooks/ralph-loop/verification-failure-handler.ts +103 -103
- package/src/hooks/ralph-loop/with-timeout.ts +20 -20
- package/src/hooks/read-image-resizer/hook.ts +209 -209
- package/src/hooks/read-image-resizer/image-dimensions.ts +191 -191
- package/src/hooks/read-image-resizer/image-resizer.ts +191 -191
- package/src/hooks/read-image-resizer/index.ts +1 -1
- package/src/hooks/read-image-resizer/png-fallback-resizer.ts +359 -359
- package/src/hooks/read-image-resizer/types.ts +16 -16
- package/src/hooks/rules-injector/AGENTS.md +53 -53
- package/src/hooks/rules-injector/cache.ts +27 -27
- package/src/hooks/rules-injector/constants.ts +31 -31
- package/src/hooks/rules-injector/finder.ts +3 -3
- package/src/hooks/rules-injector/hook.ts +94 -94
- package/src/hooks/rules-injector/index.ts +2 -2
- package/src/hooks/rules-injector/injector.ts +189 -189
- package/src/hooks/rules-injector/matcher.ts +63 -63
- package/src/hooks/rules-injector/output-path.ts +22 -22
- package/src/hooks/rules-injector/parser.ts +211 -211
- package/src/hooks/rules-injector/project-root-finder.ts +36 -36
- package/src/hooks/rules-injector/rule-distance.ts +53 -53
- package/src/hooks/rules-injector/rule-file-finder.ts +139 -139
- package/src/hooks/rules-injector/rule-file-scanner.ts +55 -55
- package/src/hooks/rules-injector/storage.ts +59 -59
- package/src/hooks/rules-injector/types.ts +57 -57
- package/src/hooks/runtime-fallback/AGENTS.md +102 -102
- package/src/hooks/runtime-fallback/agent-resolver.ts +50 -50
- package/src/hooks/runtime-fallback/auto-retry-signal.ts +32 -32
- package/src/hooks/runtime-fallback/auto-retry.ts +228 -228
- package/src/hooks/runtime-fallback/chat-message-handler.ts +62 -62
- package/src/hooks/runtime-fallback/constants.ts +47 -47
- package/src/hooks/runtime-fallback/error-classifier.ts +183 -183
- package/src/hooks/runtime-fallback/event-handler.ts +213 -213
- package/src/hooks/runtime-fallback/fallback-bootstrap-model.ts +63 -63
- package/src/hooks/runtime-fallback/fallback-models.ts +86 -86
- package/src/hooks/runtime-fallback/fallback-retry-dispatcher.ts +55 -55
- package/src/hooks/runtime-fallback/fallback-state.ts +74 -74
- package/src/hooks/runtime-fallback/hook.ts +87 -87
- package/src/hooks/runtime-fallback/index.ts +2 -2
- package/src/hooks/runtime-fallback/last-user-retry-parts.ts +20 -20
- package/src/hooks/runtime-fallback/message-update-handler.ts +168 -168
- package/src/hooks/runtime-fallback/retry-model-payload.ts +30 -30
- package/src/hooks/runtime-fallback/session-messages.ts +38 -38
- package/src/hooks/runtime-fallback/session-status-handler.ts +126 -126
- package/src/hooks/runtime-fallback/types.ts +77 -77
- package/src/hooks/runtime-fallback/visible-assistant-response.ts +80 -80
- package/src/hooks/session-notification-content.ts +145 -145
- package/src/hooks/session-notification-formatting.ts +25 -25
- package/src/hooks/session-notification-scheduler.ts +188 -188
- package/src/hooks/session-notification-sender.ts +117 -117
- package/src/hooks/session-notification-utils.ts +80 -80
- package/src/hooks/session-notification.ts +219 -219
- package/src/hooks/session-recovery/AGENTS.md +59 -59
- package/src/hooks/session-recovery/constants.ts +5 -5
- package/src/hooks/session-recovery/detect-error-type.ts +102 -102
- package/src/hooks/session-recovery/hook.ts +166 -166
- package/src/hooks/session-recovery/index.ts +7 -7
- package/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +201 -201
- package/src/hooks/session-recovery/recover-thinking-block-order.ts +137 -137
- package/src/hooks/session-recovery/recover-thinking-disabled-violation.ts +75 -75
- package/src/hooks/session-recovery/recover-tool-result-missing.ts +108 -108
- package/src/hooks/session-recovery/recover-unavailable-tool.ts +108 -108
- package/src/hooks/session-recovery/resume.ts +49 -49
- package/src/hooks/session-recovery/storage/empty-messages.ts +47 -47
- package/src/hooks/session-recovery/storage/empty-text.ts +118 -118
- package/src/hooks/session-recovery/storage/message-dir.ts +1 -1
- package/src/hooks/session-recovery/storage/messages-reader.ts +83 -83
- package/src/hooks/session-recovery/storage/orphan-thinking-search.ts +43 -43
- package/src/hooks/session-recovery/storage/part-content.ts +28 -28
- package/src/hooks/session-recovery/storage/part-id.ts +5 -5
- package/src/hooks/session-recovery/storage/parts-reader.ts +56 -56
- package/src/hooks/session-recovery/storage/text-part-injector.ts +63 -63
- package/src/hooks/session-recovery/storage/thinking-block-search.ts +42 -42
- package/src/hooks/session-recovery/storage/thinking-prepend.ts +223 -223
- package/src/hooks/session-recovery/storage/thinking-strip.ts +67 -67
- package/src/hooks/session-recovery/storage.ts +34 -34
- package/src/hooks/session-recovery/types.ts +101 -101
- package/src/hooks/session-todo-status.ts +20 -20
- package/src/hooks/shared/compaction-model-resolver.ts +34 -34
- package/src/hooks/shared/shared/compaction-model-resolver.ts +34 -34
- package/src/hooks/start-work/context-info-builder.ts +319 -319
- package/src/hooks/start-work/index.ts +4 -4
- package/src/hooks/start-work/parse-user-request.ts +32 -32
- package/src/hooks/start-work/start-work-hook.ts +135 -135
- package/src/hooks/start-work/worktree-block.ts +11 -11
- package/src/hooks/start-work/worktree-detector.ts +77 -77
- package/src/hooks/stop-continuation-guard/hook.ts +122 -122
- package/src/hooks/stop-continuation-guard/index.ts +2 -2
- package/src/hooks/strategist-md-only/agent-matcher.ts +5 -5
- package/src/hooks/strategist-md-only/agent-resolution.ts +70 -70
- package/src/hooks/strategist-md-only/constants.ts +78 -78
- package/src/hooks/strategist-md-only/hook.ts +82 -82
- package/src/hooks/strategist-md-only/index.ts +2 -2
- package/src/hooks/strategist-md-only/path-policy.ts +41 -41
- package/src/hooks/sub-notepad/constants.ts +29 -29
- package/src/hooks/sub-notepad/hook.ts +44 -44
- package/src/hooks/sub-notepad/index.ts +3 -3
- package/src/hooks/task-reminder/hook.ts +59 -59
- package/src/hooks/task-reminder/index.ts +1 -1
- package/src/hooks/task-resume-info/hook.ts +39 -39
- package/src/hooks/task-resume-info/index.ts +1 -1
- package/src/hooks/tasks-todowrite-disabler/constants.ts +30 -30
- package/src/hooks/tasks-todowrite-disabler/hook.ts +34 -34
- package/src/hooks/tasks-todowrite-disabler/index.ts +2 -2
- package/src/hooks/think-mode/detector.ts +59 -59
- package/src/hooks/think-mode/hook.ts +76 -76
- package/src/hooks/think-mode/index.ts +5 -5
- package/src/hooks/think-mode/switcher.ts +100 -100
- package/src/hooks/think-mode/types.ts +16 -16
- package/src/hooks/thinking-block-validator/hook.ts +181 -181
- package/src/hooks/thinking-block-validator/index.ts +1 -1
- package/src/hooks/todo-continuation-enforcer/AGENTS.md +65 -65
- package/src/hooks/todo-continuation-enforcer/abort-detection.ts +17 -17
- package/src/hooks/todo-continuation-enforcer/compaction-guard.ts +39 -39
- package/src/hooks/todo-continuation-enforcer/constants.ts +25 -25
- package/src/hooks/todo-continuation-enforcer/continuation-injection.ts +222 -222
- package/src/hooks/todo-continuation-enforcer/countdown.ts +86 -86
- package/src/hooks/todo-continuation-enforcer/handler.ts +99 -99
- package/src/hooks/todo-continuation-enforcer/idle-event.ts +225 -225
- package/src/hooks/todo-continuation-enforcer/index.ts +59 -59
- package/src/hooks/todo-continuation-enforcer/message-directory.ts +1 -1
- package/src/hooks/todo-continuation-enforcer/non-idle-events.ts +107 -107
- package/src/hooks/todo-continuation-enforcer/pending-question-detection.ts +40 -40
- package/src/hooks/todo-continuation-enforcer/resolve-message-info.ts +48 -48
- package/src/hooks/todo-continuation-enforcer/session-state.ts +283 -283
- package/src/hooks/todo-continuation-enforcer/stagnation-detection.ts +36 -36
- package/src/hooks/todo-continuation-enforcer/todo.ts +11 -11
- package/src/hooks/todo-continuation-enforcer/token-limit-detection.ts +38 -38
- package/src/hooks/todo-continuation-enforcer/types.ts +74 -74
- package/src/hooks/todo-description-override/description.ts +28 -28
- package/src/hooks/todo-description-override/hook.ts +14 -14
- package/src/hooks/todo-description-override/index.ts +1 -1
- package/src/hooks/tool-output-truncator.ts +66 -66
- package/src/hooks/tool-pair-validator/hook.ts +184 -184
- package/src/hooks/tool-pair-validator/index.ts +1 -1
- package/src/hooks/unstable-agent-babysitter/index.ts +9 -9
- package/src/hooks/unstable-agent-babysitter/task-message-analyzer.ts +110 -110
- package/src/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.ts +238 -238
- package/src/hooks/webfetch-redirect-guard/constants.ts +11 -11
- package/src/hooks/webfetch-redirect-guard/hook.ts +123 -123
- package/src/hooks/webfetch-redirect-guard/index.ts +1 -1
- package/src/hooks/webfetch-redirect-guard/redirect-resolution.ts +89 -89
- package/src/hooks/write-existing-file-guard/hook.ts +108 -108
- package/src/hooks/write-existing-file-guard/index.ts +1 -1
- package/src/hooks/write-existing-file-guard/session-read-permissions.ts +36 -36
- package/src/hooks/write-existing-file-guard/tool-execute-before-handler.ts +176 -176
- package/src/index.ts +284 -284
- package/src/internals/plugins/pty/LICENSE +21 -21
- package/src/internals/plugins/pty/constants.ts +7 -7
- package/src/internals/plugins/pty/plugin.ts +28 -28
- package/src/internals/plugins/pty/pty/buffer.ts +75 -75
- package/src/internals/plugins/pty/pty/formatters.ts +22 -22
- package/src/internals/plugins/pty/pty/manager.ts +175 -175
- package/src/internals/plugins/pty/pty/notification-manager.ts +75 -75
- package/src/internals/plugins/pty/pty/output-manager.ts +29 -29
- package/src/internals/plugins/pty/pty/permissions.ts +115 -115
- package/src/internals/plugins/pty/pty/session-lifecycle.ts +161 -161
- package/src/internals/plugins/pty/pty/tools/kill.ts +41 -41
- package/src/internals/plugins/pty/pty/tools/kill.txt +25 -25
- package/src/internals/plugins/pty/pty/tools/list.ts +25 -25
- package/src/internals/plugins/pty/pty/tools/list.txt +22 -22
- package/src/internals/plugins/pty/pty/tools/read.ts +234 -234
- package/src/internals/plugins/pty/pty/tools/read.txt +39 -39
- package/src/internals/plugins/pty/pty/tools/spawn.ts +71 -71
- package/src/internals/plugins/pty/pty/tools/spawn.txt +47 -47
- package/src/internals/plugins/pty/pty/tools/write.ts +96 -96
- package/src/internals/plugins/pty/pty/tools/write.txt +28 -28
- package/src/internals/plugins/pty/pty/types.ts +67 -67
- package/src/internals/plugins/pty/pty/utils.ts +21 -21
- package/src/internals/plugins/pty/pty/wildcard.ts +62 -62
- package/src/internals/plugins/pty/shared/constants.ts +7 -7
- package/src/internals/plugins/pty/types.ts +7 -7
- package/src/internals/plugins/subtask2/LICENSE +128 -128
- package/src/internals/plugins/subtask2/commands/index.ts +7 -7
- package/src/internals/plugins/subtask2/commands/loader.ts +39 -39
- package/src/internals/plugins/subtask2/commands/manifest.ts +64 -64
- package/src/internals/plugins/subtask2/commands/resolver.ts +28 -28
- package/src/internals/plugins/subtask2/core/plugin.ts +52 -52
- package/src/internals/plugins/subtask2/core/state.ts +764 -764
- package/src/internals/plugins/subtask2/features/auto.ts +57 -57
- package/src/internals/plugins/subtask2/features/index.ts +9 -9
- package/src/internals/plugins/subtask2/features/inline-subtasks.ts +205 -205
- package/src/internals/plugins/subtask2/features/parallel.ts +148 -148
- package/src/internals/plugins/subtask2/features/results.ts +48 -48
- package/src/internals/plugins/subtask2/features/returns.ts +273 -273
- package/src/internals/plugins/subtask2/features/turns.ts +190 -190
- package/src/internals/plugins/subtask2/hooks/command-hooks.ts +283 -283
- package/src/internals/plugins/subtask2/hooks/message-hooks.ts +603 -603
- package/src/internals/plugins/subtask2/hooks/session-idle-hook.ts +358 -358
- package/src/internals/plugins/subtask2/hooks/tool-hooks.ts +309 -309
- package/src/internals/plugins/subtask2/loop.ts +122 -122
- package/src/internals/plugins/subtask2/parsing/auto.ts +33 -33
- package/src/internals/plugins/subtask2/parsing/commands.ts +154 -154
- package/src/internals/plugins/subtask2/parsing/frontmatter.ts +20 -20
- package/src/internals/plugins/subtask2/parsing/index.ts +10 -10
- package/src/internals/plugins/subtask2/parsing/overrides.ts +68 -68
- package/src/internals/plugins/subtask2/parsing/parallel.ts +88 -88
- package/src/internals/plugins/subtask2/parsing/turns.ts +78 -78
- package/src/internals/plugins/subtask2/types.ts +41 -41
- package/src/internals/plugins/subtask2/utils/config.ts +100 -100
- package/src/internals/plugins/subtask2/utils/index.ts +7 -7
- package/src/internals/plugins/subtask2/utils/logger.ts +67 -67
- package/src/internals/plugins/subtask2/utils/prompts.ts +117 -117
- package/src/internals/plugins/websearch-cited/LICENSE +214 -214
- package/src/internals/plugins/websearch-cited/codex_prompt.txt +79 -79
- package/src/internals/plugins/websearch-cited/google.ts +749 -749
- package/src/internals/plugins/websearch-cited/index.ts +301 -301
- package/src/internals/plugins/websearch-cited/openai.ts +407 -407
- package/src/internals/plugins/websearch-cited/openrouter.ts +190 -190
- package/src/internals/plugins/websearch-cited/types.ts +7 -7
- package/src/lsp/index.ts +15 -15
- package/src/mcp/context7.ts +9 -9
- package/src/mcp/grep-app.ts +6 -6
- package/src/mcp/index.ts +87 -87
- package/src/mcp/omo-mcp-index.ts +35 -35
- package/src/mcp/types.ts +9 -9
- package/src/mcp/websearch.ts +44 -44
- package/src/permissions/index.ts +25 -25
- package/src/plugin/AGENTS.md +54 -54
- package/src/plugin/available-categories.ts +24 -24
- package/src/plugin/chat-headers.ts +141 -141
- package/src/plugin/chat-message.ts +309 -309
- package/src/plugin/chat-params.ts +182 -182
- package/src/plugin/command-execute-before.ts +80 -80
- package/src/plugin/event.ts +639 -639
- package/src/plugin/hooks/create-continuation-hooks.ts +128 -128
- package/src/plugin/hooks/create-core-hooks.ts +47 -47
- package/src/plugin/hooks/create-session-hooks.ts +286 -286
- package/src/plugin/hooks/create-skill-hooks.ts +50 -50
- package/src/plugin/hooks/create-tool-guard-hooks.ts +159 -159
- package/src/plugin/hooks/create-transform-hooks.ts +85 -85
- package/src/plugin/messages-transform.ts +28 -28
- package/src/plugin/normalize-tool-arg-schemas.ts +75 -75
- package/src/plugin/recent-synthetic-idles.ts +20 -20
- package/src/plugin/session-agent-resolver.ts +37 -37
- package/src/plugin/session-status-normalizer.ts +22 -22
- package/src/plugin/skill-context.ts +132 -132
- package/src/plugin/system-transform.ts +6 -6
- package/src/plugin/tool-execute-after.ts +178 -178
- package/src/plugin/tool-execute-before.ts +222 -222
- package/src/plugin/tool-registry.ts +282 -282
- package/src/plugin/types.ts +26 -26
- package/src/plugin/ultrawork-db-model-override.ts +142 -142
- package/src/plugin/ultrawork-model-override.ts +196 -196
- package/src/plugin/ultrawork-variant-availability.ts +51 -51
- package/src/plugin/unstable-agent-babysitter.ts +41 -41
- package/src/plugin-config.ts +314 -314
- package/src/plugin-dispose.ts +51 -51
- package/src/plugin-handlers/AGENTS.md +92 -92
- package/src/plugin-handlers/agent-config-handler.ts +502 -502
- package/src/plugin-handlers/agent-key-remapper.ts +39 -39
- package/src/plugin-handlers/agent-override-protection.ts +38 -38
- package/src/plugin-handlers/agent-priority-order.ts +63 -63
- package/src/plugin-handlers/category-config-resolver.ts +9 -9
- package/src/plugin-handlers/command-config-handler.ts +105 -105
- package/src/plugin-handlers/config-handler.ts +61 -61
- package/src/plugin-handlers/index.ts +10 -10
- package/src/plugin-handlers/mcp-config-handler.ts +205 -205
- package/src/plugin-handlers/plan-model-inheritance.ts +27 -27
- package/src/plugin-handlers/plugin-components-loader.ts +70 -70
- package/src/plugin-handlers/provider-config-handler.ts +73 -73
- package/src/plugin-handlers/strategist-agent-config-builder.ts +128 -128
- package/src/plugin-handlers/tool-config-handler.ts +193 -193
- package/src/plugin-interface.ts +83 -83
- package/src/plugin-state.ts +18 -18
- package/src/shared/AGENTS.md +54 -54
- package/src/shared/agent-display-names.ts +182 -182
- package/src/shared/agent-tool-restrictions.ts +80 -80
- package/src/shared/agent-variant.ts +101 -101
- package/src/shared/agents-config-dir.ts +23 -23
- package/src/shared/archive-entry-validator.ts +83 -83
- package/src/shared/background-output-consumption.ts +69 -69
- package/src/shared/binary-downloader.ts +127 -127
- package/src/shared/claude-config-dir.ts +16 -16
- package/src/shared/closure-protocol.ts +53 -53
- package/src/shared/command-executor/embedded-commands.ts +26 -26
- package/src/shared/command-executor/execute-command.ts +28 -28
- package/src/shared/command-executor/execute-hook-command.ts +129 -129
- package/src/shared/command-executor/home-directory.ts +5 -5
- package/src/shared/command-executor/resolve-commands-in-text.ts +49 -49
- package/src/shared/command-executor/shell-path.ts +27 -27
- package/src/shared/command-executor.ts +5 -5
- package/src/shared/compaction-agent-config-checkpoint.ts +42 -42
- package/src/shared/compaction-marker.ts +61 -61
- package/src/shared/config-errors.ts +18 -18
- package/src/shared/connected-providers-cache.ts +215 -215
- package/src/shared/contains-path.ts +50 -50
- package/src/shared/context-limit-resolver.ts +42 -42
- package/src/shared/data-path.ts +64 -64
- package/src/shared/deep-merge.ts +53 -53
- package/src/shared/disabled-tools.ts +19 -19
- package/src/shared/dynamic-truncator.ts +222 -222
- package/src/shared/external-plugin-detector.ts +139 -139
- package/src/shared/fallback-chain-from-models.ts +124 -124
- package/src/shared/fallback-model-availability.ts +102 -102
- package/src/shared/file-reference-resolver.ts +99 -99
- package/src/shared/file-utils.ts +34 -34
- package/src/shared/first-message-variant.ts +28 -28
- package/src/shared/frontmatter.ts +31 -31
- package/src/shared/git-worktree/collect-git-diff-stats.ts +56 -56
- package/src/shared/git-worktree/format-file-changes.ts +46 -46
- package/src/shared/git-worktree/index.ts +7 -7
- package/src/shared/git-worktree/parse-diff-numstat.ts +27 -27
- package/src/shared/git-worktree/parse-status-porcelain-line.ts +27 -27
- package/src/shared/git-worktree/parse-status-porcelain.ts +15 -15
- package/src/shared/git-worktree/types.ts +8 -8
- package/src/shared/hook-disabled.ts +22 -22
- package/src/shared/index.ts +80 -80
- package/src/shared/internal-initiator-marker.ts +18 -18
- package/src/shared/is-abort-error.ts +20 -20
- package/src/shared/json-file-cache-store.ts +98 -98
- package/src/shared/jsonc-parser.ts +98 -98
- package/src/shared/known-variants.ts +16 -16
- package/src/shared/legacy-plugin-warning.ts +68 -68
- package/src/shared/load-opencode-plugins.ts +60 -60
- package/src/shared/log-legacy-plugin-startup-warning.ts +46 -46
- package/src/shared/logger.ts +48 -48
- package/src/shared/merge-categories.ts +18 -18
- package/src/shared/migrate-legacy-config-file.ts +66 -66
- package/src/shared/migrate-legacy-plugin-entry.ts +75 -75
- package/src/shared/migration/agent-category.ts +60 -60
- package/src/shared/migration/agent-names.ts +100 -100
- package/src/shared/migration/config-migration.ts +210 -210
- package/src/shared/migration/hook-names.ts +40 -40
- package/src/shared/migration/migrations-sidecar.ts +92 -92
- package/src/shared/migration/model-versions.ts +50 -50
- package/src/shared/migration.ts +5 -5
- package/src/shared/model-availability.ts +294 -294
- package/src/shared/model-capabilities/bundled-snapshot.ts +15 -15
- package/src/shared/model-capabilities/get-model-capabilities.ts +140 -140
- package/src/shared/model-capabilities/index.ts +9 -9
- package/src/shared/model-capabilities/runtime-model-readers.ts +190 -190
- package/src/shared/model-capabilities/types.ts +80 -80
- package/src/shared/model-capabilities-cache.ts +213 -213
- package/src/shared/model-capability-aliases.ts +108 -108
- package/src/shared/model-capability-guardrails.ts +149 -149
- package/src/shared/model-capability-heuristics.ts +32 -32
- package/src/shared/model-error-classifier.ts +214 -214
- package/src/shared/model-format-normalizer.ts +20 -20
- package/src/shared/model-normalization.ts +8 -8
- package/src/shared/model-requirements.ts +26 -26
- package/src/shared/model-resolution-pipeline.ts +216 -216
- package/src/shared/model-resolution-types.ts +41 -41
- package/src/shared/model-resolver.ts +106 -106
- package/src/shared/model-sanitizer.ts +12 -12
- package/src/shared/model-settings-compatibility.ts +200 -200
- package/src/shared/model-suggestion-retry.ts +182 -182
- package/src/shared/normalize-sdk-response.ts +36 -36
- package/src/shared/opencode-command-dirs.ts +36 -36
- package/src/shared/opencode-config-dir-types.ts +15 -15
- package/src/shared/opencode-config-dir.ts +135 -135
- package/src/shared/opencode-http-api.ts +139 -139
- package/src/shared/opencode-message-dir.ts +29 -29
- package/src/shared/opencode-server-auth.ts +190 -190
- package/src/shared/opencode-storage-detection.ts +33 -33
- package/src/shared/opencode-storage-paths.ts +6 -6
- package/src/shared/opencode-version.ts +80 -80
- package/src/shared/parse-tools-config.ts +25 -25
- package/src/shared/pattern-matcher.ts +46 -46
- package/src/shared/permission-compat.ts +86 -86
- package/src/shared/plugin-command-discovery.ts +28 -28
- package/src/shared/plugin-entry-migrator.ts +21 -21
- package/src/shared/plugin-identity.ts +8 -8
- package/src/shared/port-utils.ts +48 -48
- package/src/shared/project-discovery-dirs.ts +101 -101
- package/src/shared/prompt-timeout-context.ts +49 -49
- package/src/shared/prompt-tools.ts +35 -35
- package/src/shared/provider-model-id-transform.ts +58 -58
- package/src/shared/question-denied-session-permission.ts +9 -9
- package/src/shared/record-type-guard.ts +3 -3
- package/src/shared/resolve-agent-definition-paths.ts +22 -22
- package/src/shared/retry-status-utils.ts +19 -19
- package/src/shared/runtime-plugin-config.ts +98 -98
- package/src/shared/safe-create-hook.ts +24 -24
- package/src/shared/session-category-registry.ts +27 -27
- package/src/shared/session-cursor.ts +108 -108
- package/src/shared/session-directory-resolver.ts +41 -41
- package/src/shared/session-injected-paths.ts +59 -59
- package/src/shared/session-model-state.ts +15 -15
- package/src/shared/session-prompt-params-helpers.ts +31 -31
- package/src/shared/session-prompt-params-state.ts +37 -37
- package/src/shared/session-tools-store.ts +18 -18
- package/src/shared/session-utils.ts +25 -25
- package/src/shared/shell-env.ts +175 -175
- package/src/shared/skill-path-resolver.ts +26 -26
- package/src/shared/snake-case.ts +44 -44
- package/src/shared/spawn-with-windows-hide.ts +84 -84
- package/src/shared/system-directive.ts +67 -67
- package/src/shared/task-system-enabled.ts +9 -9
- package/src/shared/tmux/constants.ts +12 -12
- package/src/shared/tmux/index.ts +3 -3
- package/src/shared/tmux/tmux-utils/environment.ts +13 -13
- package/src/shared/tmux/tmux-utils/layout.ts +96 -96
- package/src/shared/tmux/tmux-utils/pane-close.ts +48 -48
- package/src/shared/tmux/tmux-utils/pane-dimensions.ts +28 -28
- package/src/shared/tmux/tmux-utils/pane-replace.ts +73 -73
- package/src/shared/tmux/tmux-utils/pane-spawn.ts +94 -94
- package/src/shared/tmux/tmux-utils/server-health.ts +62 -62
- package/src/shared/tmux/tmux-utils/session-spawn.ts +145 -145
- package/src/shared/tmux/tmux-utils/window-spawn.ts +93 -93
- package/src/shared/tmux/tmux-utils.ts +15 -15
- package/src/shared/tmux/types.ts +4 -4
- package/src/shared/tool-name.ts +27 -27
- package/src/shared/truncate-description.ts +11 -11
- package/src/shared/vision-capable-models-cache.ts +17 -17
- package/src/shared/write-file-atomically.ts +31 -31
- package/src/shared/zip-entry-listing/powershell-zip-entry-listing.ts +99 -99
- package/src/shared/zip-entry-listing/python-zip-entry-listing.ts +55 -55
- package/src/shared/zip-entry-listing/read-zip-symlink-target.ts +23 -23
- package/src/shared/zip-entry-listing/tar-zip-entry-listing.ts +93 -93
- package/src/shared/zip-entry-listing/zipinfo-zip-entry-listing.ts +72 -72
- package/src/shared/zip-entry-listing.ts +13 -13
- package/src/shared/zip-extractor.ts +118 -118
- package/src/skills/index.ts +56 -56
- package/src/testing/module-mock-lifecycle.ts +143 -143
- package/src/tools/AGENTS.md +108 -108
- package/src/tools/ast-grep/cli-binary-path-resolution.ts +60 -60
- package/src/tools/ast-grep/cli.ts +177 -177
- package/src/tools/ast-grep/constants.ts +5 -5
- package/src/tools/ast-grep/downloader.ts +119 -119
- package/src/tools/ast-grep/environment-check.ts +89 -89
- package/src/tools/ast-grep/index.ts +5 -5
- package/src/tools/ast-grep/language-support.ts +63 -63
- package/src/tools/ast-grep/process-output-timeout.ts +28 -28
- package/src/tools/ast-grep/result-formatter.ts +102 -102
- package/src/tools/ast-grep/sg-cli-path.ts +102 -102
- package/src/tools/ast-grep/sg-compact-json-output.ts +54 -54
- package/src/tools/ast-grep/tools.ts +117 -117
- package/src/tools/ast-grep/types.ts +61 -61
- package/src/tools/background-task/AGENTS.md +53 -53
- package/src/tools/background-task/clients.ts +32 -32
- package/src/tools/background-task/constants.ts +9 -9
- package/src/tools/background-task/create-background-cancel.ts +115 -115
- package/src/tools/background-task/create-background-output.ts +159 -159
- package/src/tools/background-task/create-background-task.ts +126 -126
- package/src/tools/background-task/delay.ts +3 -3
- package/src/tools/background-task/full-session-format.ts +148 -148
- package/src/tools/background-task/index.ts +8 -8
- package/src/tools/background-task/message-dir.ts +1 -1
- package/src/tools/background-task/session-messages.ts +22 -22
- package/src/tools/background-task/task-result-format.ts +113 -113
- package/src/tools/background-task/task-status-format.ts +72 -72
- package/src/tools/background-task/time-format.ts +30 -30
- package/src/tools/background-task/tools.ts +11 -11
- package/src/tools/background-task/truncate-text.ts +4 -4
- package/src/tools/background-task/types.ts +72 -72
- package/src/tools/call-omo-agent/AGENTS.md +51 -51
- package/src/tools/call-omo-agent/agent-resolver.ts +64 -64
- package/src/tools/call-omo-agent/background-agent-executor.ts +91 -91
- package/src/tools/call-omo-agent/background-executor.ts +98 -98
- package/src/tools/call-omo-agent/completion-poller.ts +65 -65
- package/src/tools/call-omo-agent/constants.ts +23 -23
- package/src/tools/call-omo-agent/index.ts +3 -3
- package/src/tools/call-omo-agent/message-dir.ts +1 -1
- package/src/tools/call-omo-agent/message-processor.ts +86 -86
- package/src/tools/call-omo-agent/message-storage-directory.ts +1 -1
- package/src/tools/call-omo-agent/session-creator.ts +70 -70
- package/src/tools/call-omo-agent/subagent-session-creator.ts +74 -74
- package/src/tools/call-omo-agent/sync-executor.ts +148 -148
- package/src/tools/call-omo-agent/tool-context-with-metadata.ts +10 -10
- package/src/tools/call-omo-agent/tools.ts +192 -192
- package/src/tools/call-omo-agent/types.ts +34 -34
- package/src/tools/delegate-task/AGENTS.md +58 -58
- package/src/tools/delegate-task/anthropic-categories.ts +62 -62
- package/src/tools/delegate-task/available-models.ts +64 -64
- package/src/tools/delegate-task/background-continuation.ts +68 -68
- package/src/tools/delegate-task/background-task.ts +165 -165
- package/src/tools/delegate-task/builtin-categories.ts +33 -33
- package/src/tools/delegate-task/builtin-category-definition.ts +8 -8
- package/src/tools/delegate-task/cancel-unstable-agent-task.ts +19 -19
- package/src/tools/delegate-task/categories.ts +77 -77
- package/src/tools/delegate-task/category-resolver.ts +310 -310
- package/src/tools/delegate-task/constants.ts +351 -351
- package/src/tools/delegate-task/delegated-model-config.ts +20 -20
- package/src/tools/delegate-task/error-formatting.ts +51 -51
- package/src/tools/delegate-task/executor-types.ts +39 -39
- package/src/tools/delegate-task/executor.ts +16 -16
- package/src/tools/delegate-task/fallback-entry-resolution.ts +27 -27
- package/src/tools/delegate-task/fallback-entry-settings.ts +20 -20
- package/src/tools/delegate-task/google-categories.ts +130 -130
- package/src/tools/delegate-task/index.ts +4 -4
- package/src/tools/delegate-task/kimi-categories.ts +40 -40
- package/src/tools/delegate-task/model-selection.ts +201 -201
- package/src/tools/delegate-task/model-string-parser.ts +63 -63
- package/src/tools/delegate-task/openai-categories.ts +128 -128
- package/src/tools/delegate-task/parent-context-resolver.ts +47 -47
- package/src/tools/delegate-task/prompt-builder.ts +107 -107
- package/src/tools/delegate-task/resolve-call-id.ts +5 -5
- package/src/tools/delegate-task/skill-resolver.ts +22 -22
- package/src/tools/delegate-task/sub-agent.ts +70 -70
- package/src/tools/delegate-task/subagent-discovery.ts +152 -152
- package/src/tools/delegate-task/subagent-resolver.ts +225 -225
- package/src/tools/delegate-task/sync-continuation-deps.ts +9 -9
- package/src/tools/delegate-task/sync-continuation.ts +149 -149
- package/src/tools/delegate-task/sync-prompt-sender.ts +137 -137
- package/src/tools/delegate-task/sync-result-fetcher.ts +60 -60
- package/src/tools/delegate-task/sync-session-creator.ts +29 -29
- package/src/tools/delegate-task/sync-session-poller.ts +188 -188
- package/src/tools/delegate-task/sync-task-deps.ts +13 -13
- package/src/tools/delegate-task/sync-task-fallback.ts +68 -68
- package/src/tools/delegate-task/sync-task.ts +243 -243
- package/src/tools/delegate-task/time-formatter.ts +13 -13
- package/src/tools/delegate-task/timing.ts +46 -46
- package/src/tools/delegate-task/token-limiter.ts +123 -123
- package/src/tools/delegate-task/tools.ts +259 -259
- package/src/tools/delegate-task/types.ts +89 -89
- package/src/tools/delegate-task/unstable-agent-task.ts +243 -243
- package/src/tools/glob/cli.ts +206 -206
- package/src/tools/glob/constants.ts +12 -12
- package/src/tools/glob/index.ts +1 -1
- package/src/tools/glob/result-formatter.ts +26 -26
- package/src/tools/glob/tools.ts +49 -49
- package/src/tools/glob/types.ts +23 -23
- package/src/tools/grep/cli.ts +279 -279
- package/src/tools/grep/constants.ts +141 -141
- package/src/tools/grep/downloader.ts +128 -128
- package/src/tools/grep/index.ts +1 -1
- package/src/tools/grep/result-formatter.ts +60 -60
- package/src/tools/grep/tools.ts +75 -75
- package/src/tools/grep/types.ts +42 -42
- package/src/tools/hashline-edit/AGENTS.md +92 -92
- package/src/tools/hashline-edit/autocorrect-replacement-lines.ts +179 -179
- package/src/tools/hashline-edit/constants.ts +10 -10
- package/src/tools/hashline-edit/diff-utils.ts +53 -53
- package/src/tools/hashline-edit/edit-deduplication.ts +43 -43
- package/src/tools/hashline-edit/edit-operation-primitives.ts +126 -126
- package/src/tools/hashline-edit/edit-operations.ts +103 -103
- package/src/tools/hashline-edit/edit-ordering.ts +56 -56
- package/src/tools/hashline-edit/edit-text-normalization.ts +111 -111
- package/src/tools/hashline-edit/file-text-canonicalization.ts +44 -44
- package/src/tools/hashline-edit/formatter-trigger.ts +132 -132
- package/src/tools/hashline-edit/hash-computation.ts +154 -154
- package/src/tools/hashline-edit/hashline-chunk-formatter.ts +52 -52
- package/src/tools/hashline-edit/hashline-edit-diff.ts +31 -31
- package/src/tools/hashline-edit/hashline-edit-executor.ts +197 -197
- package/src/tools/hashline-edit/index.ts +20 -20
- package/src/tools/hashline-edit/normalize-edits.ts +95 -95
- package/src/tools/hashline-edit/tool-description.ts +95 -95
- package/src/tools/hashline-edit/tools.ts +42 -42
- package/src/tools/hashline-edit/types.ts +20 -20
- package/src/tools/hashline-edit/validation.ts +181 -181
- package/src/tools/index.ts +64 -64
- package/src/tools/interactive-bash/constants.ts +18 -18
- package/src/tools/interactive-bash/index.ts +4 -4
- package/src/tools/interactive-bash/tmux-path-resolver.ts +71 -71
- package/src/tools/interactive-bash/tools.ts +136 -136
- package/src/tools/look-at/assistant-message-extractor.ts +67 -67
- package/src/tools/look-at/constants.ts +3 -3
- package/src/tools/look-at/image-converter.ts +164 -164
- package/src/tools/look-at/index.ts +3 -3
- package/src/tools/look-at/look-at-arguments.ts +34 -34
- package/src/tools/look-at/mime-type-inference.ts +94 -94
- package/src/tools/look-at/multimodal-agent-metadata.ts +166 -166
- package/src/tools/look-at/multimodal-fallback-chain.ts +66 -66
- package/src/tools/look-at/session-poller.ts +42 -42
- package/src/tools/look-at/tools.ts +245 -245
- package/src/tools/look-at/types.ts +5 -5
- package/src/tools/lsp/AGENTS.md +70 -70
- package/src/tools/lsp/client.ts +3 -3
- package/src/tools/lsp/config.ts +3 -3
- package/src/tools/lsp/constants.ts +7 -7
- package/src/tools/lsp/diagnostics-tool.ts +75 -75
- package/src/tools/lsp/directory-diagnostics.ts +163 -163
- package/src/tools/lsp/find-references-tool.ts +43 -43
- package/src/tools/lsp/goto-definition-tool.ts +42 -42
- package/src/tools/lsp/index.ts +9 -9
- package/src/tools/lsp/infer-extension.ts +65 -65
- package/src/tools/lsp/language-config.ts +5 -5
- package/src/tools/lsp/language-mappings.ts +171 -171
- package/src/tools/lsp/lsp-client-connection.ts +66 -66
- package/src/tools/lsp/lsp-client-transport.ts +210 -210
- package/src/tools/lsp/lsp-client-wrapper.ts +116 -116
- package/src/tools/lsp/lsp-client.ts +129 -129
- package/src/tools/lsp/lsp-formatters.ts +193 -193
- package/src/tools/lsp/lsp-manager-process-cleanup.ts +83 -83
- package/src/tools/lsp/lsp-manager-temp-directory-cleanup.ts +29 -29
- package/src/tools/lsp/lsp-process.ts +158 -158
- package/src/tools/lsp/lsp-server.ts +217 -217
- package/src/tools/lsp/rename-tools.ts +53 -53
- package/src/tools/lsp/server-config-loader.ts +116 -116
- package/src/tools/lsp/server-definitions.ts +91 -91
- package/src/tools/lsp/server-installation.ts +58 -58
- package/src/tools/lsp/server-path-bases.ts +16 -16
- package/src/tools/lsp/server-resolution.ts +109 -109
- package/src/tools/lsp/symbols-tool.ts +76 -76
- package/src/tools/lsp/tools.ts +5 -5
- package/src/tools/lsp/types.ts +124 -124
- package/src/tools/lsp/workspace-edit.ts +121 -121
- package/src/tools/session-manager/constants.ts +93 -93
- package/src/tools/session-manager/file-storage.ts +203 -203
- package/src/tools/session-manager/index.ts +3 -3
- package/src/tools/session-manager/sdk-storage.ts +135 -135
- package/src/tools/session-manager/sdk-unavailable.ts +43 -43
- package/src/tools/session-manager/session-formatter.ts +199 -199
- package/src/tools/session-manager/storage.ts +161 -161
- package/src/tools/session-manager/tools.ts +197 -197
- package/src/tools/session-manager/types.ts +99 -99
- package/src/tools/shared/semaphore.ts +32 -32
- package/src/tools/skill/constants.ts +14 -14
- package/src/tools/skill/description-formatter.ts +61 -61
- package/src/tools/skill/index.ts +3 -3
- package/src/tools/skill/mcp-capability-formatter.ts +97 -97
- package/src/tools/skill/native-skills.ts +62 -62
- package/src/tools/skill/scope-priority.ts +17 -17
- package/src/tools/skill/skill-body.ts +26 -26
- package/src/tools/skill/skill-matcher.ts +40 -40
- package/src/tools/skill/tools.ts +196 -196
- package/src/tools/skill/types.ts +48 -48
- package/src/tools/skill-mcp/constants.ts +9 -9
- package/src/tools/skill-mcp/index.ts +3 -3
- package/src/tools/skill-mcp/tools.ts +204 -204
- package/src/tools/skill-mcp/types.ts +8 -8
- package/src/tools/slashcommand/command-discovery.ts +161 -161
- package/src/tools/slashcommand/command-output-formatter.ts +75 -75
- package/src/tools/slashcommand/index.ts +2 -2
- package/src/tools/slashcommand/types.ts +21 -21
- package/src/tools/task/index.ts +7 -7
- package/src/tools/task/task-create.ts +113 -113
- package/src/tools/task/task-get.ts +47 -47
- package/src/tools/task/task-list.ts +79 -79
- package/src/tools/task/task-update.ts +152 -152
- package/src/tools/task/todo-sync.ts +205 -205
- package/src/tools/task/types.ts +77 -77
- package/dist/ast-grep-napi.linux-x64-gnu-d8zfa2q0.node +0 -0
- package/dist/ast-grep-napi.linux-x64-musl-0wywtr8y.node +0 -0
- package/dist/prompt-snapshots/bob.default.md +0 -514
- package/dist/prompt-snapshots/bob.gemini.md +0 -725
- package/dist/prompt-snapshots/bob.gpt-pro.md +0 -514
- package/dist/prompt-snapshots/coder.gpt-codex.md +0 -299
- package/dist/prompt-snapshots/coder.gpt-pro.md +0 -315
- package/dist/prompt-snapshots/coder.gpt.md +0 -315
- package/dist/prompt-snapshots/critic.md +0 -68
- package/dist/prompt-snapshots/guard.md +0 -599
- package/dist/prompt-snapshots/multimodal.md +0 -39
- package/dist/prompt-snapshots/platform-manager.md +0 -222
- package/dist/prompt-snapshots/quality-guardian.md +0 -32
- package/dist/prompt-snapshots/researcher.md +0 -29
- package/dist/prompt-snapshots/strategist.md +0 -573
- package/dist/prompt-snapshots/sub.md +0 -105
|
@@ -1,509 +1,509 @@
|
|
|
1
|
-
export const GIT_MASTER_COMMIT_WORKFLOW_SECTION = `## PHASE 0: Parallel Context Gathering (MANDATORY FIRST STEP)
|
|
2
|
-
|
|
3
|
-
<parallel_analysis>
|
|
4
|
-
**Execute ALL of the following commands IN PARALLEL to minimize latency:**
|
|
5
|
-
|
|
6
|
-
\`\`\`bash
|
|
7
|
-
# Group 1: Current state
|
|
8
|
-
git status
|
|
9
|
-
git diff --staged --stat
|
|
10
|
-
git diff --stat
|
|
11
|
-
|
|
12
|
-
# Group 2: History context
|
|
13
|
-
git log -30 --oneline
|
|
14
|
-
git log -30 --pretty=format:"%s"
|
|
15
|
-
|
|
16
|
-
# Group 3: Branch context
|
|
17
|
-
git branch --show-current
|
|
18
|
-
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
|
|
19
|
-
git rev-parse --abbrev-ref @{upstream} 2>/dev/null || echo "NO_UPSTREAM"
|
|
20
|
-
git log --oneline $(git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null)..HEAD 2>/dev/null
|
|
21
|
-
\`\`\`
|
|
22
|
-
|
|
23
|
-
**Capture these data points simultaneously:**
|
|
24
|
-
1. What files changed (staged vs unstaged)
|
|
25
|
-
2. Recent 30 commit messages for style detection
|
|
26
|
-
3. Branch position relative to main/master
|
|
27
|
-
4. Whether branch has upstream tracking
|
|
28
|
-
5. Commits that would go in PR (local only)
|
|
29
|
-
</parallel_analysis>
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## PHASE 1: Style Detection (BLOCKING - MUST OUTPUT BEFORE PROCEEDING)
|
|
34
|
-
|
|
35
|
-
<style_detection>
|
|
36
|
-
**THIS PHASE HAS MANDATORY OUTPUT** - You MUST print the analysis result before moving to Phase 2.
|
|
37
|
-
|
|
38
|
-
### 1.1 Language Detection
|
|
39
|
-
|
|
40
|
-
\`\`\`
|
|
41
|
-
Count from git log -30:
|
|
42
|
-
- Korean characters: N commits
|
|
43
|
-
- English only: M commits
|
|
44
|
-
- Mixed: K commits
|
|
45
|
-
|
|
46
|
-
DECISION:
|
|
47
|
-
- If Korean >= 50% -> KOREAN
|
|
48
|
-
- If English >= 50% -> ENGLISH
|
|
49
|
-
- If Mixed -> Use MAJORITY language
|
|
50
|
-
\`\`\`
|
|
51
|
-
|
|
52
|
-
### 1.2 Commit Style Classification
|
|
53
|
-
|
|
54
|
-
| Style | Pattern | Example | Detection Regex |
|
|
55
|
-
|-------|---------|---------|-----------------|
|
|
56
|
-
| \`SEMANTIC\` | \`type: message\` or \`type(scope): message\` | \`feat: add login\` | \`/^(feat\\|fix\\|chore\\|refactor\\|docs\\|test\\|ci\\|style\\|perf\\|build)(\\(.+\\))?:/\` |
|
|
57
|
-
| \`PLAIN\` | Just description, no prefix | \`Add login feature\` | No conventional prefix, >3 words |
|
|
58
|
-
| \`SENTENCE\` | Full sentence style | \`Implemented the new login flow\` | Complete grammatical sentence |
|
|
59
|
-
| \`SHORT\` | Minimal keywords | \`format\`, \`lint\` | 1-3 words only |
|
|
60
|
-
|
|
61
|
-
**Detection Algorithm:**
|
|
62
|
-
\`\`\`
|
|
63
|
-
semantic_count = commits matching semantic regex
|
|
64
|
-
plain_count = non-semantic commits with >3 words
|
|
65
|
-
short_count = commits with <=3 words
|
|
66
|
-
|
|
67
|
-
IF semantic_count >= 15 (50%): STYLE = SEMANTIC
|
|
68
|
-
ELSE IF plain_count >= 15: STYLE = PLAIN
|
|
69
|
-
ELSE IF short_count >= 10: STYLE = SHORT
|
|
70
|
-
ELSE: STYLE = PLAIN (safe default)
|
|
71
|
-
\`\`\`
|
|
72
|
-
|
|
73
|
-
### 1.3 MANDATORY OUTPUT (BLOCKING)
|
|
74
|
-
|
|
75
|
-
**You MUST output this block before proceeding to Phase 2. NO EXCEPTIONS.**
|
|
76
|
-
|
|
77
|
-
\`\`\`
|
|
78
|
-
STYLE DETECTION RESULT
|
|
79
|
-
======================
|
|
80
|
-
Analyzed: 30 commits from git log
|
|
81
|
-
|
|
82
|
-
Language: [KOREAN | ENGLISH]
|
|
83
|
-
- Korean commits: N (X%)
|
|
84
|
-
- English commits: M (Y%)
|
|
85
|
-
|
|
86
|
-
Style: [SEMANTIC | PLAIN | SENTENCE | SHORT]
|
|
87
|
-
- Semantic (feat:, fix:, etc): N (X%)
|
|
88
|
-
- Plain: M (Y%)
|
|
89
|
-
- Short: K (Z%)
|
|
90
|
-
|
|
91
|
-
Reference examples from repo:
|
|
92
|
-
1. "actual commit message from log"
|
|
93
|
-
2. "actual commit message from log"
|
|
94
|
-
3. "actual commit message from log"
|
|
95
|
-
|
|
96
|
-
All commits will follow: [LANGUAGE] + [STYLE]
|
|
97
|
-
\`\`\`
|
|
98
|
-
|
|
99
|
-
**IF YOU SKIP THIS OUTPUT, YOUR COMMITS WILL BE WRONG. STOP AND REDO.**
|
|
100
|
-
</style_detection>
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## PHASE 2: Branch Context Analysis
|
|
105
|
-
|
|
106
|
-
<branch_analysis>
|
|
107
|
-
### 2.1 Determine Branch State
|
|
108
|
-
|
|
109
|
-
\`\`\`
|
|
110
|
-
BRANCH_STATE:
|
|
111
|
-
current_branch: <name>
|
|
112
|
-
has_upstream: true | false
|
|
113
|
-
commits_ahead: N # Local-only commits
|
|
114
|
-
merge_base: <hash>
|
|
115
|
-
|
|
116
|
-
REWRITE_SAFETY:
|
|
117
|
-
- If has_upstream AND commits_ahead > 0 AND already pushed:
|
|
118
|
-
-> WARN before force push
|
|
119
|
-
- If no upstream OR all commits local:
|
|
120
|
-
-> Safe for aggressive rewrite (fixup, reset, rebase)
|
|
121
|
-
- If on main/master:
|
|
122
|
-
-> NEVER rewrite, only new commits
|
|
123
|
-
\`\`\`
|
|
124
|
-
|
|
125
|
-
### 2.2 History Rewrite Strategy Decision
|
|
126
|
-
|
|
127
|
-
\`\`\`
|
|
128
|
-
IF current_branch == main OR current_branch == master:
|
|
129
|
-
-> STRATEGY = NEW_COMMITS_ONLY
|
|
130
|
-
-> Never fixup, never rebase
|
|
131
|
-
|
|
132
|
-
ELSE IF commits_ahead == 0:
|
|
133
|
-
-> STRATEGY = NEW_COMMITS_ONLY
|
|
134
|
-
-> No history to rewrite
|
|
135
|
-
|
|
136
|
-
ELSE IF all commits are local (not pushed):
|
|
137
|
-
-> STRATEGY = AGGRESSIVE_REWRITE
|
|
138
|
-
-> Fixup freely, reset if needed, rebase to clean
|
|
139
|
-
|
|
140
|
-
ELSE IF pushed but not merged:
|
|
141
|
-
-> STRATEGY = CAREFUL_REWRITE
|
|
142
|
-
-> Fixup OK but warn about force push
|
|
143
|
-
\`\`\`
|
|
144
|
-
</branch_analysis>
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## PHASE 3: Atomic Unit Planning (BLOCKING - MUST OUTPUT BEFORE PROCEEDING)
|
|
149
|
-
|
|
150
|
-
<atomic_planning>
|
|
151
|
-
**THIS PHASE HAS MANDATORY OUTPUT** - You MUST print the commit plan before moving to Phase 4.
|
|
152
|
-
|
|
153
|
-
### 3.0 Calculate Minimum Commit Count FIRST
|
|
154
|
-
|
|
155
|
-
\`\`\`
|
|
156
|
-
FORMULA: min_commits = ceil(file_count / 3)
|
|
157
|
-
|
|
158
|
-
3 files -> min 1 commit
|
|
159
|
-
5 files -> min 2 commits
|
|
160
|
-
9 files -> min 3 commits
|
|
161
|
-
15 files -> min 5 commits
|
|
162
|
-
\`\`\`
|
|
163
|
-
|
|
164
|
-
**If your planned commit count < min_commits -> WRONG. SPLIT MORE.**
|
|
165
|
-
|
|
166
|
-
### 3.1 Split by Directory/Module FIRST (Primary Split)
|
|
167
|
-
|
|
168
|
-
**RULE: Different directories = Different commits (almost always)**
|
|
169
|
-
|
|
170
|
-
\`\`\`
|
|
171
|
-
Example: 8 changed files
|
|
172
|
-
- app/[locale]/page.tsx
|
|
173
|
-
- app/[locale]/layout.tsx
|
|
174
|
-
- components/demo/browser-frame.tsx
|
|
175
|
-
- components/demo/shopify-full-site.tsx
|
|
176
|
-
- components/pricing/pricing-table.tsx
|
|
177
|
-
- e2e/navbar.spec.ts
|
|
178
|
-
- messages/en.json
|
|
179
|
-
- messages/ko.json
|
|
180
|
-
|
|
181
|
-
WRONG: 1 commit "Update landing page" (LAZY, WRONG)
|
|
182
|
-
WRONG: 2 commits (still too few)
|
|
183
|
-
|
|
184
|
-
CORRECT: Split by directory/concern:
|
|
185
|
-
- Commit 1: app/[locale]/page.tsx + layout.tsx (app layer)
|
|
186
|
-
- Commit 2: components/demo/* (demo components)
|
|
187
|
-
- Commit 3: components/pricing/* (pricing components)
|
|
188
|
-
- Commit 4: e2e/* (tests)
|
|
189
|
-
- Commit 5: messages/* (i18n)
|
|
190
|
-
= 5 commits from 8 files (CORRECT)
|
|
191
|
-
\`\`\`
|
|
192
|
-
|
|
193
|
-
### 3.2 Split by Concern SECOND (Secondary Split)
|
|
194
|
-
|
|
195
|
-
**Within same directory, split by logical concern:**
|
|
196
|
-
|
|
197
|
-
\`\`\`
|
|
198
|
-
Example: components/demo/ has 4 files
|
|
199
|
-
- browser-frame.tsx (UI frame)
|
|
200
|
-
- shopify-full-site.tsx (specific demo)
|
|
201
|
-
- review-dashboard.tsx (NEW - specific demo)
|
|
202
|
-
- tone-settings.tsx (NEW - specific demo)
|
|
203
|
-
|
|
204
|
-
Option A (acceptable): 1 commit if ALL tightly coupled
|
|
205
|
-
Option B (preferred): 2 commits
|
|
206
|
-
- Commit: "Update existing demo components" (browser-frame, shopify)
|
|
207
|
-
- Commit: "Add new demo components" (review-dashboard, tone-settings)
|
|
208
|
-
\`\`\`
|
|
209
|
-
|
|
210
|
-
### 3.3 NEVER Do This (Anti-Pattern Examples)
|
|
211
|
-
|
|
212
|
-
\`\`\`
|
|
213
|
-
WRONG: "Refactor entire landing page" - 1 commit with 15 files
|
|
214
|
-
WRONG: "Update components and tests" - 1 commit mixing concerns
|
|
215
|
-
WRONG: "Big update" - Any commit touching 5+ unrelated files
|
|
216
|
-
|
|
217
|
-
RIGHT: Multiple focused commits, each 1-4 files max
|
|
218
|
-
RIGHT: Each commit message describes ONE specific change
|
|
219
|
-
RIGHT: A reviewer can understand each commit in 30 seconds
|
|
220
|
-
\`\`\`
|
|
221
|
-
|
|
222
|
-
### 3.4 Implementation + Test Pairing (MANDATORY)
|
|
223
|
-
|
|
224
|
-
\`\`\`
|
|
225
|
-
RULE: Test files MUST be in same commit as implementation
|
|
226
|
-
|
|
227
|
-
Test patterns to match:
|
|
228
|
-
- test_*.py <-> *.py
|
|
229
|
-
- *_test.py <-> *.py
|
|
230
|
-
- *.test.ts <-> *.ts
|
|
231
|
-
- *.spec.ts <-> *.ts
|
|
232
|
-
- __tests__/*.ts <-> *.ts
|
|
233
|
-
- tests/*.py <-> src/*.py
|
|
234
|
-
\`\`\`
|
|
235
|
-
|
|
236
|
-
### 3.5 MANDATORY JUSTIFICATION (Before Creating Commit Plan)
|
|
237
|
-
|
|
238
|
-
**NON-NEGOTIABLE: Before finalizing your commit plan, you MUST:**
|
|
239
|
-
|
|
240
|
-
\`\`\`
|
|
241
|
-
FOR EACH planned commit with 3+ files:
|
|
242
|
-
1. List all files in this commit
|
|
243
|
-
2. Write ONE sentence explaining why they MUST be together
|
|
244
|
-
3. If you can't write that sentence -> SPLIT
|
|
245
|
-
|
|
246
|
-
TEMPLATE:
|
|
247
|
-
"Commit N contains [files] because [specific reason they are inseparable]."
|
|
248
|
-
|
|
249
|
-
VALID reasons:
|
|
250
|
-
VALID: "implementation file + its direct test file"
|
|
251
|
-
VALID: "type definition + the only file that uses it"
|
|
252
|
-
VALID: "migration + model change (would break without both)"
|
|
253
|
-
|
|
254
|
-
INVALID reasons (MUST SPLIT instead):
|
|
255
|
-
INVALID: "all related to feature X" (too vague)
|
|
256
|
-
INVALID: "part of the same PR" (not a reason)
|
|
257
|
-
INVALID: "they were changed together" (not a reason)
|
|
258
|
-
INVALID: "makes sense to group" (not a reason)
|
|
259
|
-
\`\`\`
|
|
260
|
-
|
|
261
|
-
**OUTPUT THIS JUSTIFICATION in your analysis before executing commits.**
|
|
262
|
-
|
|
263
|
-
### 3.7 Dependency Ordering
|
|
264
|
-
|
|
265
|
-
\`\`\`
|
|
266
|
-
Level 0: Utilities, constants, type definitions
|
|
267
|
-
Level 1: Models, schemas, interfaces
|
|
268
|
-
Level 2: Services, business logic
|
|
269
|
-
Level 3: API endpoints, controllers
|
|
270
|
-
Level 4: Configuration, infrastructure
|
|
271
|
-
|
|
272
|
-
COMMIT ORDER: Level 0 -> Level 1 -> Level 2 -> Level 3 -> Level 4
|
|
273
|
-
\`\`\`
|
|
274
|
-
|
|
275
|
-
### 3.8 Create Commit Groups
|
|
276
|
-
|
|
277
|
-
For each logical feature/change:
|
|
278
|
-
\`\`\`yaml
|
|
279
|
-
- group_id: 1
|
|
280
|
-
feature: "Add Shopify discount deletion"
|
|
281
|
-
files:
|
|
282
|
-
- errors/shopify_error.py
|
|
283
|
-
- types/delete_input.py
|
|
284
|
-
- mutations/update_contract.py
|
|
285
|
-
- tests/test_update_contract.py
|
|
286
|
-
dependency_level: 2
|
|
287
|
-
target_commit: null | <existing-hash> # null = new, hash = fixup
|
|
288
|
-
\`\`\`
|
|
289
|
-
|
|
290
|
-
### 3.9 MANDATORY OUTPUT (BLOCKING)
|
|
291
|
-
|
|
292
|
-
**You MUST output this block before proceeding to Phase 4. NO EXCEPTIONS.**
|
|
293
|
-
|
|
294
|
-
\`\`\`
|
|
295
|
-
COMMIT PLAN
|
|
296
|
-
===========
|
|
297
|
-
Files changed: N
|
|
298
|
-
Minimum commits required: ceil(N/3) = M
|
|
299
|
-
Planned commits: K
|
|
300
|
-
Status: K >= M (PASS) | K < M (FAIL - must split more)
|
|
301
|
-
|
|
302
|
-
COMMIT 1: [message in detected style]
|
|
303
|
-
- path/to/file1.py
|
|
304
|
-
- path/to/file1_test.py
|
|
305
|
-
Justification: implementation + its test
|
|
306
|
-
|
|
307
|
-
COMMIT 2: [message in detected style]
|
|
308
|
-
- path/to/file2.py
|
|
309
|
-
Justification: independent utility function
|
|
310
|
-
|
|
311
|
-
COMMIT 3: [message in detected style]
|
|
312
|
-
- config/settings.py
|
|
313
|
-
- config/constants.py
|
|
314
|
-
Justification: tightly coupled config changes
|
|
315
|
-
|
|
316
|
-
Execution order: Commit 1 -> Commit 2 -> Commit 3
|
|
317
|
-
(follows dependency: Level 0 -> Level 1 -> Level 2 -> ...)
|
|
318
|
-
\`\`\`
|
|
319
|
-
|
|
320
|
-
**VALIDATION BEFORE EXECUTION:**
|
|
321
|
-
- Each commit has <=4 files (or justified)
|
|
322
|
-
- Each commit message matches detected STYLE + LANGUAGE
|
|
323
|
-
- Test files paired with implementation
|
|
324
|
-
- Different directories = different commits (or justified)
|
|
325
|
-
- Total commits >= min_commits
|
|
326
|
-
|
|
327
|
-
**IF ANY CHECK FAILS, DO NOT PROCEED. REPLAN.**
|
|
328
|
-
</atomic_planning>
|
|
329
|
-
|
|
330
|
-
---
|
|
331
|
-
|
|
332
|
-
## PHASE 4: Commit Strategy Decision
|
|
333
|
-
|
|
334
|
-
<strategy_decision>
|
|
335
|
-
### 4.1 For Each Commit Group, Decide:
|
|
336
|
-
|
|
337
|
-
\`\`\`
|
|
338
|
-
FIXUP if:
|
|
339
|
-
- Change complements existing commit's intent
|
|
340
|
-
- Same feature, fixing bugs or adding missing parts
|
|
341
|
-
- Review feedback incorporation
|
|
342
|
-
- Target commit exists in local history
|
|
343
|
-
|
|
344
|
-
NEW COMMIT if:
|
|
345
|
-
- New feature or capability
|
|
346
|
-
- Independent logical unit
|
|
347
|
-
- Different issue/ticket
|
|
348
|
-
- No suitable target commit exists
|
|
349
|
-
\`\`\`
|
|
350
|
-
|
|
351
|
-
### 4.2 History Rebuild Decision (Aggressive Option)
|
|
352
|
-
|
|
353
|
-
\`\`\`
|
|
354
|
-
CONSIDER RESET & REBUILD when:
|
|
355
|
-
- History is messy (many small fixups already)
|
|
356
|
-
- Commits are not atomic (mixed concerns)
|
|
357
|
-
- Dependency order is wrong
|
|
358
|
-
|
|
359
|
-
RESET WORKFLOW:
|
|
360
|
-
1. git reset --soft $(git merge-base HEAD main)
|
|
361
|
-
2. All changes now staged
|
|
362
|
-
3. Re-commit in proper atomic units
|
|
363
|
-
4. Clean history from scratch
|
|
364
|
-
|
|
365
|
-
ONLY IF:
|
|
366
|
-
- All commits are local (not pushed)
|
|
367
|
-
- User explicitly allows OR branch is clearly WIP
|
|
368
|
-
\`\`\`
|
|
369
|
-
|
|
370
|
-
### 4.3 Final Plan Summary
|
|
371
|
-
|
|
372
|
-
\`\`\`yaml
|
|
373
|
-
EXECUTION_PLAN:
|
|
374
|
-
strategy: FIXUP_THEN_NEW | NEW_ONLY | RESET_REBUILD
|
|
375
|
-
fixup_commits:
|
|
376
|
-
- files: [...]
|
|
377
|
-
target: <hash>
|
|
378
|
-
new_commits:
|
|
379
|
-
- files: [...]
|
|
380
|
-
message: "..."
|
|
381
|
-
level: N
|
|
382
|
-
requires_force_push: true | false
|
|
383
|
-
\`\`\`
|
|
384
|
-
</strategy_decision>
|
|
385
|
-
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
## PHASE 5: Commit Execution
|
|
389
|
-
|
|
390
|
-
<execution>
|
|
391
|
-
### 5.1 Register TODO Items
|
|
392
|
-
|
|
393
|
-
Use TodoWrite to register each commit as a trackable item:
|
|
394
|
-
\`\`\`
|
|
395
|
-
- [ ] Fixup: <description> -> <target-hash>
|
|
396
|
-
- [ ] New: <description>
|
|
397
|
-
- [ ] Rebase autosquash
|
|
398
|
-
- [ ] Final verification
|
|
399
|
-
\`\`\`
|
|
400
|
-
|
|
401
|
-
### 5.2 Fixup Commits (If Any)
|
|
402
|
-
|
|
403
|
-
\`\`\`bash
|
|
404
|
-
# Stage files for each fixup
|
|
405
|
-
git add <files>
|
|
406
|
-
git commit --fixup=<target-hash>
|
|
407
|
-
|
|
408
|
-
# Repeat for all fixups...
|
|
409
|
-
|
|
410
|
-
# Single autosquash rebase at the end
|
|
411
|
-
MERGE_BASE=$(git merge-base HEAD main 2>/dev/null || git merge-base HEAD master)
|
|
412
|
-
GIT_SEQUENCE_EDITOR=: git rebase -i --autosquash $MERGE_BASE
|
|
413
|
-
\`\`\`
|
|
414
|
-
|
|
415
|
-
### 5.3 New Commits (After Fixups)
|
|
416
|
-
|
|
417
|
-
For each new commit group, in dependency order:
|
|
418
|
-
|
|
419
|
-
\`\`\`bash
|
|
420
|
-
# Stage files
|
|
421
|
-
git add <file1> <file2> ...
|
|
422
|
-
|
|
423
|
-
# Verify staging
|
|
424
|
-
git diff --staged --stat
|
|
425
|
-
|
|
426
|
-
# Commit with detected style
|
|
427
|
-
git commit -m "<message-matching-COMMIT_CONFIG>"
|
|
428
|
-
|
|
429
|
-
# Verify
|
|
430
|
-
git log -1 --oneline
|
|
431
|
-
\`\`\`
|
|
432
|
-
|
|
433
|
-
### 5.4 Commit Message Generation
|
|
434
|
-
|
|
435
|
-
**Based on COMMIT_CONFIG from Phase 1:**
|
|
436
|
-
|
|
437
|
-
\`\`\`
|
|
438
|
-
IF style == SEMANTIC AND language == KOREAN:
|
|
439
|
-
-> "feat: 로그인 기능 추가"
|
|
440
|
-
|
|
441
|
-
IF style == SEMANTIC AND language == ENGLISH:
|
|
442
|
-
-> "feat: add login feature"
|
|
443
|
-
|
|
444
|
-
IF style == PLAIN AND language == KOREAN:
|
|
445
|
-
-> "로그인 기능 추가"
|
|
446
|
-
|
|
447
|
-
IF style == PLAIN AND language == ENGLISH:
|
|
448
|
-
-> "Add login feature"
|
|
449
|
-
|
|
450
|
-
IF style == SHORT:
|
|
451
|
-
-> "format" / "type fix" / "lint"
|
|
452
|
-
\`\`\`
|
|
453
|
-
|
|
454
|
-
**VALIDATION before each commit:**
|
|
455
|
-
1. Does message match detected style?
|
|
456
|
-
2. Does language match detected language?
|
|
457
|
-
3. Is it similar to examples from git log?
|
|
458
|
-
|
|
459
|
-
If ANY check fails -> REWRITE message.
|
|
460
|
-
\`\`\`
|
|
461
|
-
\</execution>
|
|
462
|
-
|
|
463
|
-
---
|
|
464
|
-
|
|
465
|
-
## PHASE 6: Verification & Cleanup
|
|
466
|
-
|
|
467
|
-
<verification>
|
|
468
|
-
### 6.1 Post-Commit Verification
|
|
469
|
-
|
|
470
|
-
\`\`\`bash
|
|
471
|
-
# Check working directory clean
|
|
472
|
-
git status
|
|
473
|
-
|
|
474
|
-
# Review new history
|
|
475
|
-
git log --oneline $(git merge-base HEAD main 2>/dev/null || git merge-base HEAD master)..HEAD
|
|
476
|
-
|
|
477
|
-
# Verify each commit is atomic
|
|
478
|
-
# (mentally check: can each be reverted independently?)
|
|
479
|
-
\`\`\`
|
|
480
|
-
|
|
481
|
-
### 6.2 Force Push Decision
|
|
482
|
-
|
|
483
|
-
\`\`\`
|
|
484
|
-
IF fixup was used AND branch has upstream:
|
|
485
|
-
-> Requires: git push --force-with-lease
|
|
486
|
-
-> WARN user about force push implications
|
|
487
|
-
|
|
488
|
-
IF only new commits:
|
|
489
|
-
-> Regular: git push
|
|
490
|
-
\`\`\`
|
|
491
|
-
|
|
492
|
-
### 6.3 Final Report
|
|
493
|
-
|
|
494
|
-
\`\`\`
|
|
495
|
-
COMMIT SUMMARY:
|
|
496
|
-
Strategy: <what was done>
|
|
497
|
-
Commits created: N
|
|
498
|
-
Fixups merged: M
|
|
499
|
-
|
|
500
|
-
HISTORY:
|
|
501
|
-
<hash1> <message1>
|
|
502
|
-
<hash2> <message2>
|
|
503
|
-
...
|
|
504
|
-
|
|
505
|
-
NEXT STEPS:
|
|
506
|
-
- git push [--force-with-lease]
|
|
507
|
-
- Create PR if ready
|
|
508
|
-
\`\`\`
|
|
509
|
-
</verification>`
|
|
1
|
+
export const GIT_MASTER_COMMIT_WORKFLOW_SECTION = `## PHASE 0: Parallel Context Gathering (MANDATORY FIRST STEP)
|
|
2
|
+
|
|
3
|
+
<parallel_analysis>
|
|
4
|
+
**Execute ALL of the following commands IN PARALLEL to minimize latency:**
|
|
5
|
+
|
|
6
|
+
\`\`\`bash
|
|
7
|
+
# Group 1: Current state
|
|
8
|
+
git status
|
|
9
|
+
git diff --staged --stat
|
|
10
|
+
git diff --stat
|
|
11
|
+
|
|
12
|
+
# Group 2: History context
|
|
13
|
+
git log -30 --oneline
|
|
14
|
+
git log -30 --pretty=format:"%s"
|
|
15
|
+
|
|
16
|
+
# Group 3: Branch context
|
|
17
|
+
git branch --show-current
|
|
18
|
+
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
|
|
19
|
+
git rev-parse --abbrev-ref @{upstream} 2>/dev/null || echo "NO_UPSTREAM"
|
|
20
|
+
git log --oneline $(git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null)..HEAD 2>/dev/null
|
|
21
|
+
\`\`\`
|
|
22
|
+
|
|
23
|
+
**Capture these data points simultaneously:**
|
|
24
|
+
1. What files changed (staged vs unstaged)
|
|
25
|
+
2. Recent 30 commit messages for style detection
|
|
26
|
+
3. Branch position relative to main/master
|
|
27
|
+
4. Whether branch has upstream tracking
|
|
28
|
+
5. Commits that would go in PR (local only)
|
|
29
|
+
</parallel_analysis>
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## PHASE 1: Style Detection (BLOCKING - MUST OUTPUT BEFORE PROCEEDING)
|
|
34
|
+
|
|
35
|
+
<style_detection>
|
|
36
|
+
**THIS PHASE HAS MANDATORY OUTPUT** - You MUST print the analysis result before moving to Phase 2.
|
|
37
|
+
|
|
38
|
+
### 1.1 Language Detection
|
|
39
|
+
|
|
40
|
+
\`\`\`
|
|
41
|
+
Count from git log -30:
|
|
42
|
+
- Korean characters: N commits
|
|
43
|
+
- English only: M commits
|
|
44
|
+
- Mixed: K commits
|
|
45
|
+
|
|
46
|
+
DECISION:
|
|
47
|
+
- If Korean >= 50% -> KOREAN
|
|
48
|
+
- If English >= 50% -> ENGLISH
|
|
49
|
+
- If Mixed -> Use MAJORITY language
|
|
50
|
+
\`\`\`
|
|
51
|
+
|
|
52
|
+
### 1.2 Commit Style Classification
|
|
53
|
+
|
|
54
|
+
| Style | Pattern | Example | Detection Regex |
|
|
55
|
+
|-------|---------|---------|-----------------|
|
|
56
|
+
| \`SEMANTIC\` | \`type: message\` or \`type(scope): message\` | \`feat: add login\` | \`/^(feat\\|fix\\|chore\\|refactor\\|docs\\|test\\|ci\\|style\\|perf\\|build)(\\(.+\\))?:/\` |
|
|
57
|
+
| \`PLAIN\` | Just description, no prefix | \`Add login feature\` | No conventional prefix, >3 words |
|
|
58
|
+
| \`SENTENCE\` | Full sentence style | \`Implemented the new login flow\` | Complete grammatical sentence |
|
|
59
|
+
| \`SHORT\` | Minimal keywords | \`format\`, \`lint\` | 1-3 words only |
|
|
60
|
+
|
|
61
|
+
**Detection Algorithm:**
|
|
62
|
+
\`\`\`
|
|
63
|
+
semantic_count = commits matching semantic regex
|
|
64
|
+
plain_count = non-semantic commits with >3 words
|
|
65
|
+
short_count = commits with <=3 words
|
|
66
|
+
|
|
67
|
+
IF semantic_count >= 15 (50%): STYLE = SEMANTIC
|
|
68
|
+
ELSE IF plain_count >= 15: STYLE = PLAIN
|
|
69
|
+
ELSE IF short_count >= 10: STYLE = SHORT
|
|
70
|
+
ELSE: STYLE = PLAIN (safe default)
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
### 1.3 MANDATORY OUTPUT (BLOCKING)
|
|
74
|
+
|
|
75
|
+
**You MUST output this block before proceeding to Phase 2. NO EXCEPTIONS.**
|
|
76
|
+
|
|
77
|
+
\`\`\`
|
|
78
|
+
STYLE DETECTION RESULT
|
|
79
|
+
======================
|
|
80
|
+
Analyzed: 30 commits from git log
|
|
81
|
+
|
|
82
|
+
Language: [KOREAN | ENGLISH]
|
|
83
|
+
- Korean commits: N (X%)
|
|
84
|
+
- English commits: M (Y%)
|
|
85
|
+
|
|
86
|
+
Style: [SEMANTIC | PLAIN | SENTENCE | SHORT]
|
|
87
|
+
- Semantic (feat:, fix:, etc): N (X%)
|
|
88
|
+
- Plain: M (Y%)
|
|
89
|
+
- Short: K (Z%)
|
|
90
|
+
|
|
91
|
+
Reference examples from repo:
|
|
92
|
+
1. "actual commit message from log"
|
|
93
|
+
2. "actual commit message from log"
|
|
94
|
+
3. "actual commit message from log"
|
|
95
|
+
|
|
96
|
+
All commits will follow: [LANGUAGE] + [STYLE]
|
|
97
|
+
\`\`\`
|
|
98
|
+
|
|
99
|
+
**IF YOU SKIP THIS OUTPUT, YOUR COMMITS WILL BE WRONG. STOP AND REDO.**
|
|
100
|
+
</style_detection>
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## PHASE 2: Branch Context Analysis
|
|
105
|
+
|
|
106
|
+
<branch_analysis>
|
|
107
|
+
### 2.1 Determine Branch State
|
|
108
|
+
|
|
109
|
+
\`\`\`
|
|
110
|
+
BRANCH_STATE:
|
|
111
|
+
current_branch: <name>
|
|
112
|
+
has_upstream: true | false
|
|
113
|
+
commits_ahead: N # Local-only commits
|
|
114
|
+
merge_base: <hash>
|
|
115
|
+
|
|
116
|
+
REWRITE_SAFETY:
|
|
117
|
+
- If has_upstream AND commits_ahead > 0 AND already pushed:
|
|
118
|
+
-> WARN before force push
|
|
119
|
+
- If no upstream OR all commits local:
|
|
120
|
+
-> Safe for aggressive rewrite (fixup, reset, rebase)
|
|
121
|
+
- If on main/master:
|
|
122
|
+
-> NEVER rewrite, only new commits
|
|
123
|
+
\`\`\`
|
|
124
|
+
|
|
125
|
+
### 2.2 History Rewrite Strategy Decision
|
|
126
|
+
|
|
127
|
+
\`\`\`
|
|
128
|
+
IF current_branch == main OR current_branch == master:
|
|
129
|
+
-> STRATEGY = NEW_COMMITS_ONLY
|
|
130
|
+
-> Never fixup, never rebase
|
|
131
|
+
|
|
132
|
+
ELSE IF commits_ahead == 0:
|
|
133
|
+
-> STRATEGY = NEW_COMMITS_ONLY
|
|
134
|
+
-> No history to rewrite
|
|
135
|
+
|
|
136
|
+
ELSE IF all commits are local (not pushed):
|
|
137
|
+
-> STRATEGY = AGGRESSIVE_REWRITE
|
|
138
|
+
-> Fixup freely, reset if needed, rebase to clean
|
|
139
|
+
|
|
140
|
+
ELSE IF pushed but not merged:
|
|
141
|
+
-> STRATEGY = CAREFUL_REWRITE
|
|
142
|
+
-> Fixup OK but warn about force push
|
|
143
|
+
\`\`\`
|
|
144
|
+
</branch_analysis>
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## PHASE 3: Atomic Unit Planning (BLOCKING - MUST OUTPUT BEFORE PROCEEDING)
|
|
149
|
+
|
|
150
|
+
<atomic_planning>
|
|
151
|
+
**THIS PHASE HAS MANDATORY OUTPUT** - You MUST print the commit plan before moving to Phase 4.
|
|
152
|
+
|
|
153
|
+
### 3.0 Calculate Minimum Commit Count FIRST
|
|
154
|
+
|
|
155
|
+
\`\`\`
|
|
156
|
+
FORMULA: min_commits = ceil(file_count / 3)
|
|
157
|
+
|
|
158
|
+
3 files -> min 1 commit
|
|
159
|
+
5 files -> min 2 commits
|
|
160
|
+
9 files -> min 3 commits
|
|
161
|
+
15 files -> min 5 commits
|
|
162
|
+
\`\`\`
|
|
163
|
+
|
|
164
|
+
**If your planned commit count < min_commits -> WRONG. SPLIT MORE.**
|
|
165
|
+
|
|
166
|
+
### 3.1 Split by Directory/Module FIRST (Primary Split)
|
|
167
|
+
|
|
168
|
+
**RULE: Different directories = Different commits (almost always)**
|
|
169
|
+
|
|
170
|
+
\`\`\`
|
|
171
|
+
Example: 8 changed files
|
|
172
|
+
- app/[locale]/page.tsx
|
|
173
|
+
- app/[locale]/layout.tsx
|
|
174
|
+
- components/demo/browser-frame.tsx
|
|
175
|
+
- components/demo/shopify-full-site.tsx
|
|
176
|
+
- components/pricing/pricing-table.tsx
|
|
177
|
+
- e2e/navbar.spec.ts
|
|
178
|
+
- messages/en.json
|
|
179
|
+
- messages/ko.json
|
|
180
|
+
|
|
181
|
+
WRONG: 1 commit "Update landing page" (LAZY, WRONG)
|
|
182
|
+
WRONG: 2 commits (still too few)
|
|
183
|
+
|
|
184
|
+
CORRECT: Split by directory/concern:
|
|
185
|
+
- Commit 1: app/[locale]/page.tsx + layout.tsx (app layer)
|
|
186
|
+
- Commit 2: components/demo/* (demo components)
|
|
187
|
+
- Commit 3: components/pricing/* (pricing components)
|
|
188
|
+
- Commit 4: e2e/* (tests)
|
|
189
|
+
- Commit 5: messages/* (i18n)
|
|
190
|
+
= 5 commits from 8 files (CORRECT)
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
### 3.2 Split by Concern SECOND (Secondary Split)
|
|
194
|
+
|
|
195
|
+
**Within same directory, split by logical concern:**
|
|
196
|
+
|
|
197
|
+
\`\`\`
|
|
198
|
+
Example: components/demo/ has 4 files
|
|
199
|
+
- browser-frame.tsx (UI frame)
|
|
200
|
+
- shopify-full-site.tsx (specific demo)
|
|
201
|
+
- review-dashboard.tsx (NEW - specific demo)
|
|
202
|
+
- tone-settings.tsx (NEW - specific demo)
|
|
203
|
+
|
|
204
|
+
Option A (acceptable): 1 commit if ALL tightly coupled
|
|
205
|
+
Option B (preferred): 2 commits
|
|
206
|
+
- Commit: "Update existing demo components" (browser-frame, shopify)
|
|
207
|
+
- Commit: "Add new demo components" (review-dashboard, tone-settings)
|
|
208
|
+
\`\`\`
|
|
209
|
+
|
|
210
|
+
### 3.3 NEVER Do This (Anti-Pattern Examples)
|
|
211
|
+
|
|
212
|
+
\`\`\`
|
|
213
|
+
WRONG: "Refactor entire landing page" - 1 commit with 15 files
|
|
214
|
+
WRONG: "Update components and tests" - 1 commit mixing concerns
|
|
215
|
+
WRONG: "Big update" - Any commit touching 5+ unrelated files
|
|
216
|
+
|
|
217
|
+
RIGHT: Multiple focused commits, each 1-4 files max
|
|
218
|
+
RIGHT: Each commit message describes ONE specific change
|
|
219
|
+
RIGHT: A reviewer can understand each commit in 30 seconds
|
|
220
|
+
\`\`\`
|
|
221
|
+
|
|
222
|
+
### 3.4 Implementation + Test Pairing (MANDATORY)
|
|
223
|
+
|
|
224
|
+
\`\`\`
|
|
225
|
+
RULE: Test files MUST be in same commit as implementation
|
|
226
|
+
|
|
227
|
+
Test patterns to match:
|
|
228
|
+
- test_*.py <-> *.py
|
|
229
|
+
- *_test.py <-> *.py
|
|
230
|
+
- *.test.ts <-> *.ts
|
|
231
|
+
- *.spec.ts <-> *.ts
|
|
232
|
+
- __tests__/*.ts <-> *.ts
|
|
233
|
+
- tests/*.py <-> src/*.py
|
|
234
|
+
\`\`\`
|
|
235
|
+
|
|
236
|
+
### 3.5 MANDATORY JUSTIFICATION (Before Creating Commit Plan)
|
|
237
|
+
|
|
238
|
+
**NON-NEGOTIABLE: Before finalizing your commit plan, you MUST:**
|
|
239
|
+
|
|
240
|
+
\`\`\`
|
|
241
|
+
FOR EACH planned commit with 3+ files:
|
|
242
|
+
1. List all files in this commit
|
|
243
|
+
2. Write ONE sentence explaining why they MUST be together
|
|
244
|
+
3. If you can't write that sentence -> SPLIT
|
|
245
|
+
|
|
246
|
+
TEMPLATE:
|
|
247
|
+
"Commit N contains [files] because [specific reason they are inseparable]."
|
|
248
|
+
|
|
249
|
+
VALID reasons:
|
|
250
|
+
VALID: "implementation file + its direct test file"
|
|
251
|
+
VALID: "type definition + the only file that uses it"
|
|
252
|
+
VALID: "migration + model change (would break without both)"
|
|
253
|
+
|
|
254
|
+
INVALID reasons (MUST SPLIT instead):
|
|
255
|
+
INVALID: "all related to feature X" (too vague)
|
|
256
|
+
INVALID: "part of the same PR" (not a reason)
|
|
257
|
+
INVALID: "they were changed together" (not a reason)
|
|
258
|
+
INVALID: "makes sense to group" (not a reason)
|
|
259
|
+
\`\`\`
|
|
260
|
+
|
|
261
|
+
**OUTPUT THIS JUSTIFICATION in your analysis before executing commits.**
|
|
262
|
+
|
|
263
|
+
### 3.7 Dependency Ordering
|
|
264
|
+
|
|
265
|
+
\`\`\`
|
|
266
|
+
Level 0: Utilities, constants, type definitions
|
|
267
|
+
Level 1: Models, schemas, interfaces
|
|
268
|
+
Level 2: Services, business logic
|
|
269
|
+
Level 3: API endpoints, controllers
|
|
270
|
+
Level 4: Configuration, infrastructure
|
|
271
|
+
|
|
272
|
+
COMMIT ORDER: Level 0 -> Level 1 -> Level 2 -> Level 3 -> Level 4
|
|
273
|
+
\`\`\`
|
|
274
|
+
|
|
275
|
+
### 3.8 Create Commit Groups
|
|
276
|
+
|
|
277
|
+
For each logical feature/change:
|
|
278
|
+
\`\`\`yaml
|
|
279
|
+
- group_id: 1
|
|
280
|
+
feature: "Add Shopify discount deletion"
|
|
281
|
+
files:
|
|
282
|
+
- errors/shopify_error.py
|
|
283
|
+
- types/delete_input.py
|
|
284
|
+
- mutations/update_contract.py
|
|
285
|
+
- tests/test_update_contract.py
|
|
286
|
+
dependency_level: 2
|
|
287
|
+
target_commit: null | <existing-hash> # null = new, hash = fixup
|
|
288
|
+
\`\`\`
|
|
289
|
+
|
|
290
|
+
### 3.9 MANDATORY OUTPUT (BLOCKING)
|
|
291
|
+
|
|
292
|
+
**You MUST output this block before proceeding to Phase 4. NO EXCEPTIONS.**
|
|
293
|
+
|
|
294
|
+
\`\`\`
|
|
295
|
+
COMMIT PLAN
|
|
296
|
+
===========
|
|
297
|
+
Files changed: N
|
|
298
|
+
Minimum commits required: ceil(N/3) = M
|
|
299
|
+
Planned commits: K
|
|
300
|
+
Status: K >= M (PASS) | K < M (FAIL - must split more)
|
|
301
|
+
|
|
302
|
+
COMMIT 1: [message in detected style]
|
|
303
|
+
- path/to/file1.py
|
|
304
|
+
- path/to/file1_test.py
|
|
305
|
+
Justification: implementation + its test
|
|
306
|
+
|
|
307
|
+
COMMIT 2: [message in detected style]
|
|
308
|
+
- path/to/file2.py
|
|
309
|
+
Justification: independent utility function
|
|
310
|
+
|
|
311
|
+
COMMIT 3: [message in detected style]
|
|
312
|
+
- config/settings.py
|
|
313
|
+
- config/constants.py
|
|
314
|
+
Justification: tightly coupled config changes
|
|
315
|
+
|
|
316
|
+
Execution order: Commit 1 -> Commit 2 -> Commit 3
|
|
317
|
+
(follows dependency: Level 0 -> Level 1 -> Level 2 -> ...)
|
|
318
|
+
\`\`\`
|
|
319
|
+
|
|
320
|
+
**VALIDATION BEFORE EXECUTION:**
|
|
321
|
+
- Each commit has <=4 files (or justified)
|
|
322
|
+
- Each commit message matches detected STYLE + LANGUAGE
|
|
323
|
+
- Test files paired with implementation
|
|
324
|
+
- Different directories = different commits (or justified)
|
|
325
|
+
- Total commits >= min_commits
|
|
326
|
+
|
|
327
|
+
**IF ANY CHECK FAILS, DO NOT PROCEED. REPLAN.**
|
|
328
|
+
</atomic_planning>
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## PHASE 4: Commit Strategy Decision
|
|
333
|
+
|
|
334
|
+
<strategy_decision>
|
|
335
|
+
### 4.1 For Each Commit Group, Decide:
|
|
336
|
+
|
|
337
|
+
\`\`\`
|
|
338
|
+
FIXUP if:
|
|
339
|
+
- Change complements existing commit's intent
|
|
340
|
+
- Same feature, fixing bugs or adding missing parts
|
|
341
|
+
- Review feedback incorporation
|
|
342
|
+
- Target commit exists in local history
|
|
343
|
+
|
|
344
|
+
NEW COMMIT if:
|
|
345
|
+
- New feature or capability
|
|
346
|
+
- Independent logical unit
|
|
347
|
+
- Different issue/ticket
|
|
348
|
+
- No suitable target commit exists
|
|
349
|
+
\`\`\`
|
|
350
|
+
|
|
351
|
+
### 4.2 History Rebuild Decision (Aggressive Option)
|
|
352
|
+
|
|
353
|
+
\`\`\`
|
|
354
|
+
CONSIDER RESET & REBUILD when:
|
|
355
|
+
- History is messy (many small fixups already)
|
|
356
|
+
- Commits are not atomic (mixed concerns)
|
|
357
|
+
- Dependency order is wrong
|
|
358
|
+
|
|
359
|
+
RESET WORKFLOW:
|
|
360
|
+
1. git reset --soft $(git merge-base HEAD main)
|
|
361
|
+
2. All changes now staged
|
|
362
|
+
3. Re-commit in proper atomic units
|
|
363
|
+
4. Clean history from scratch
|
|
364
|
+
|
|
365
|
+
ONLY IF:
|
|
366
|
+
- All commits are local (not pushed)
|
|
367
|
+
- User explicitly allows OR branch is clearly WIP
|
|
368
|
+
\`\`\`
|
|
369
|
+
|
|
370
|
+
### 4.3 Final Plan Summary
|
|
371
|
+
|
|
372
|
+
\`\`\`yaml
|
|
373
|
+
EXECUTION_PLAN:
|
|
374
|
+
strategy: FIXUP_THEN_NEW | NEW_ONLY | RESET_REBUILD
|
|
375
|
+
fixup_commits:
|
|
376
|
+
- files: [...]
|
|
377
|
+
target: <hash>
|
|
378
|
+
new_commits:
|
|
379
|
+
- files: [...]
|
|
380
|
+
message: "..."
|
|
381
|
+
level: N
|
|
382
|
+
requires_force_push: true | false
|
|
383
|
+
\`\`\`
|
|
384
|
+
</strategy_decision>
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## PHASE 5: Commit Execution
|
|
389
|
+
|
|
390
|
+
<execution>
|
|
391
|
+
### 5.1 Register TODO Items
|
|
392
|
+
|
|
393
|
+
Use TodoWrite to register each commit as a trackable item:
|
|
394
|
+
\`\`\`
|
|
395
|
+
- [ ] Fixup: <description> -> <target-hash>
|
|
396
|
+
- [ ] New: <description>
|
|
397
|
+
- [ ] Rebase autosquash
|
|
398
|
+
- [ ] Final verification
|
|
399
|
+
\`\`\`
|
|
400
|
+
|
|
401
|
+
### 5.2 Fixup Commits (If Any)
|
|
402
|
+
|
|
403
|
+
\`\`\`bash
|
|
404
|
+
# Stage files for each fixup
|
|
405
|
+
git add <files>
|
|
406
|
+
git commit --fixup=<target-hash>
|
|
407
|
+
|
|
408
|
+
# Repeat for all fixups...
|
|
409
|
+
|
|
410
|
+
# Single autosquash rebase at the end
|
|
411
|
+
MERGE_BASE=$(git merge-base HEAD main 2>/dev/null || git merge-base HEAD master)
|
|
412
|
+
GIT_SEQUENCE_EDITOR=: git rebase -i --autosquash $MERGE_BASE
|
|
413
|
+
\`\`\`
|
|
414
|
+
|
|
415
|
+
### 5.3 New Commits (After Fixups)
|
|
416
|
+
|
|
417
|
+
For each new commit group, in dependency order:
|
|
418
|
+
|
|
419
|
+
\`\`\`bash
|
|
420
|
+
# Stage files
|
|
421
|
+
git add <file1> <file2> ...
|
|
422
|
+
|
|
423
|
+
# Verify staging
|
|
424
|
+
git diff --staged --stat
|
|
425
|
+
|
|
426
|
+
# Commit with detected style
|
|
427
|
+
git commit -m "<message-matching-COMMIT_CONFIG>"
|
|
428
|
+
|
|
429
|
+
# Verify
|
|
430
|
+
git log -1 --oneline
|
|
431
|
+
\`\`\`
|
|
432
|
+
|
|
433
|
+
### 5.4 Commit Message Generation
|
|
434
|
+
|
|
435
|
+
**Based on COMMIT_CONFIG from Phase 1:**
|
|
436
|
+
|
|
437
|
+
\`\`\`
|
|
438
|
+
IF style == SEMANTIC AND language == KOREAN:
|
|
439
|
+
-> "feat: 로그인 기능 추가"
|
|
440
|
+
|
|
441
|
+
IF style == SEMANTIC AND language == ENGLISH:
|
|
442
|
+
-> "feat: add login feature"
|
|
443
|
+
|
|
444
|
+
IF style == PLAIN AND language == KOREAN:
|
|
445
|
+
-> "로그인 기능 추가"
|
|
446
|
+
|
|
447
|
+
IF style == PLAIN AND language == ENGLISH:
|
|
448
|
+
-> "Add login feature"
|
|
449
|
+
|
|
450
|
+
IF style == SHORT:
|
|
451
|
+
-> "format" / "type fix" / "lint"
|
|
452
|
+
\`\`\`
|
|
453
|
+
|
|
454
|
+
**VALIDATION before each commit:**
|
|
455
|
+
1. Does message match detected style?
|
|
456
|
+
2. Does language match detected language?
|
|
457
|
+
3. Is it similar to examples from git log?
|
|
458
|
+
|
|
459
|
+
If ANY check fails -> REWRITE message.
|
|
460
|
+
\`\`\`
|
|
461
|
+
\</execution>
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
## PHASE 6: Verification & Cleanup
|
|
466
|
+
|
|
467
|
+
<verification>
|
|
468
|
+
### 6.1 Post-Commit Verification
|
|
469
|
+
|
|
470
|
+
\`\`\`bash
|
|
471
|
+
# Check working directory clean
|
|
472
|
+
git status
|
|
473
|
+
|
|
474
|
+
# Review new history
|
|
475
|
+
git log --oneline $(git merge-base HEAD main 2>/dev/null || git merge-base HEAD master)..HEAD
|
|
476
|
+
|
|
477
|
+
# Verify each commit is atomic
|
|
478
|
+
# (mentally check: can each be reverted independently?)
|
|
479
|
+
\`\`\`
|
|
480
|
+
|
|
481
|
+
### 6.2 Force Push Decision
|
|
482
|
+
|
|
483
|
+
\`\`\`
|
|
484
|
+
IF fixup was used AND branch has upstream:
|
|
485
|
+
-> Requires: git push --force-with-lease
|
|
486
|
+
-> WARN user about force push implications
|
|
487
|
+
|
|
488
|
+
IF only new commits:
|
|
489
|
+
-> Regular: git push
|
|
490
|
+
\`\`\`
|
|
491
|
+
|
|
492
|
+
### 6.3 Final Report
|
|
493
|
+
|
|
494
|
+
\`\`\`
|
|
495
|
+
COMMIT SUMMARY:
|
|
496
|
+
Strategy: <what was done>
|
|
497
|
+
Commits created: N
|
|
498
|
+
Fixups merged: M
|
|
499
|
+
|
|
500
|
+
HISTORY:
|
|
501
|
+
<hash1> <message1>
|
|
502
|
+
<hash2> <message2>
|
|
503
|
+
...
|
|
504
|
+
|
|
505
|
+
NEXT STEPS:
|
|
506
|
+
- git push [--force-with-lease]
|
|
507
|
+
- Create PR if ready
|
|
508
|
+
\`\`\`
|
|
509
|
+
</verification>`
|