takt 0.40.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -28
- package/builtins/en/config.yaml +2 -0
- package/builtins/en/facets/instructions/_system/fallback-notice.md +16 -0
- package/builtins/en/facets/instructions/ai-antipattern-fix.md +2 -14
- package/builtins/en/facets/instructions/ai-antipattern-review.md +5 -11
- package/builtins/en/facets/instructions/implement-after-tests.md +6 -7
- package/builtins/en/facets/instructions/implement.md +6 -7
- package/builtins/en/facets/instructions/review-arch.md +4 -36
- package/builtins/en/facets/instructions/review-cqrs-es.md +7 -23
- package/builtins/en/facets/instructions/review-frontend.md +6 -32
- package/builtins/en/facets/instructions/review-qa.md +5 -31
- package/builtins/en/facets/instructions/review-requirements.md +6 -24
- package/builtins/en/facets/instructions/review-security.md +13 -36
- package/builtins/en/facets/instructions/review-terraform.md +4 -28
- package/builtins/en/facets/instructions/review-test.md +8 -29
- package/builtins/en/facets/instructions/supervise.md +17 -35
- package/builtins/en/facets/instructions/write-tests-first.md +5 -0
- package/builtins/en/facets/knowledge/architecture.md +13 -13
- package/builtins/en/facets/knowledge/cqrs-es.md +66 -0
- package/builtins/en/facets/knowledge/frontend.md +17 -2
- package/builtins/en/facets/knowledge/react.md +3 -0
- package/builtins/en/facets/output-contracts/frontend-review.md +1 -0
- package/builtins/en/facets/policies/ai-antipattern.md +19 -0
- package/builtins/en/facets/policies/coding.md +85 -3
- package/builtins/en/facets/policies/qa.md +3 -1
- package/builtins/en/facets/policies/review.md +35 -3
- package/builtins/en/facets/policies/testing.md +33 -0
- package/builtins/en/workflows/auto-improvement-loop.yaml +40 -10
- package/builtins/ja/INSTRUCTION_STYLE_GUIDE.md +38 -3
- package/builtins/ja/config.yaml +2 -0
- package/builtins/ja/facets/instructions/_system/fallback-notice.md +16 -0
- package/builtins/ja/facets/instructions/ai-antipattern-fix.md +4 -16
- package/builtins/ja/facets/instructions/ai-antipattern-review.md +7 -13
- package/builtins/ja/facets/instructions/implement-after-tests.md +6 -7
- package/builtins/ja/facets/instructions/implement.md +6 -7
- package/builtins/ja/facets/instructions/review-arch.md +5 -37
- package/builtins/ja/facets/instructions/review-cqrs-es.md +7 -23
- package/builtins/ja/facets/instructions/review-frontend.md +6 -32
- package/builtins/ja/facets/instructions/review-qa.md +5 -31
- package/builtins/ja/facets/instructions/review-requirements.md +10 -28
- package/builtins/ja/facets/instructions/review-security.md +13 -36
- package/builtins/ja/facets/instructions/review-terraform.md +5 -29
- package/builtins/ja/facets/instructions/review-test.md +8 -29
- package/builtins/ja/facets/instructions/supervise.md +15 -33
- package/builtins/ja/facets/instructions/write-tests-first.md +5 -0
- package/builtins/ja/facets/knowledge/architecture.md +13 -13
- package/builtins/ja/facets/knowledge/cqrs-es.md +66 -0
- package/builtins/ja/facets/knowledge/frontend.md +17 -2
- package/builtins/ja/facets/knowledge/react.md +3 -0
- package/builtins/ja/facets/output-contracts/frontend-review.md +1 -0
- package/builtins/ja/facets/policies/ai-antipattern.md +19 -0
- package/builtins/ja/facets/policies/coding.md +85 -3
- package/builtins/ja/facets/policies/qa.md +3 -1
- package/builtins/ja/facets/policies/review.md +35 -3
- package/builtins/ja/facets/policies/testing.md +33 -0
- package/builtins/ja/workflows/auto-improvement-loop.yaml +40 -10
- package/builtins/schemas/followup-task.json +65 -10
- package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
- package/dist/agents/decompose-task-usecase.js +3 -2
- package/dist/agents/decompose-task-usecase.js.map +1 -1
- package/dist/agents/judge-status-usecase.d.ts.map +1 -1
- package/dist/agents/judge-status-usecase.js +4 -3
- package/dist/agents/judge-status-usecase.js.map +1 -1
- package/dist/agents/provider-call-options.d.ts +4 -0
- package/dist/agents/provider-call-options.d.ts.map +1 -0
- package/dist/agents/provider-call-options.js +9 -0
- package/dist/agents/provider-call-options.js.map +1 -0
- package/dist/agents/runner.js +1 -1
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +1 -0
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.js +67 -38
- package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
- package/dist/app/cli/program.js +1 -1
- package/dist/app/cli/program.js.map +1 -1
- package/dist/core/models/assistant-config.d.ts +4 -0
- package/dist/core/models/assistant-config.d.ts.map +1 -0
- package/dist/core/models/assistant-config.js +4 -0
- package/dist/core/models/assistant-config.js.map +1 -0
- package/dist/core/models/config-schemas.d.ts +120 -0
- package/dist/core/models/config-schemas.d.ts.map +1 -1
- package/dist/core/models/config-schemas.js +9 -2
- package/dist/core/models/config-schemas.js.map +1 -1
- package/dist/core/models/config-types.d.ts +23 -2
- package/dist/core/models/config-types.d.ts.map +1 -1
- package/dist/core/models/index.d.ts +1 -1
- package/dist/core/models/index.d.ts.map +1 -1
- package/dist/core/models/index.js.map +1 -1
- package/dist/core/models/part.d.ts +5 -0
- package/dist/core/models/part.d.ts.map +1 -1
- package/dist/core/models/provider-profiles.d.ts +1 -1
- package/dist/core/models/provider-profiles.d.ts.map +1 -1
- package/dist/core/models/response.d.ts +9 -0
- package/dist/core/models/response.d.ts.map +1 -1
- package/dist/core/models/response.js +1 -1
- package/dist/core/models/response.js.map +1 -1
- package/dist/core/models/schema-base.d.ts +85 -0
- package/dist/core/models/schema-base.d.ts.map +1 -1
- package/dist/core/models/schema-base.js +40 -2
- package/dist/core/models/schema-base.js.map +1 -1
- package/dist/core/models/status.d.ts +1 -1
- package/dist/core/models/status.d.ts.map +1 -1
- package/dist/core/models/status.js +1 -1
- package/dist/core/models/status.js.map +1 -1
- package/dist/core/models/types.d.ts +3 -3
- package/dist/core/models/types.d.ts.map +1 -1
- package/dist/core/models/workflow-condition-expression.d.ts +12 -0
- package/dist/core/models/workflow-condition-expression.d.ts.map +1 -0
- package/dist/core/models/workflow-condition-expression.js +26 -0
- package/dist/core/models/workflow-condition-expression.js.map +1 -0
- package/dist/core/models/workflow-provider-options.d.ts +8 -0
- package/dist/core/models/workflow-provider-options.d.ts.map +1 -1
- package/dist/core/models/workflow-provider-options.js.map +1 -1
- package/dist/core/models/workflow-schemas.d.ts +592 -30
- package/dist/core/models/workflow-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-schemas.js +59 -5
- package/dist/core/models/workflow-schemas.js.map +1 -1
- package/dist/core/models/workflow-system-input-types.d.ts +9 -1
- package/dist/core/models/workflow-system-input-types.d.ts.map +1 -1
- package/dist/core/models/workflow-system-schemas.d.ts +8 -1
- package/dist/core/models/workflow-system-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-system-schemas.js +13 -1
- package/dist/core/models/workflow-system-schemas.js.map +1 -1
- package/dist/core/models/workflow-types.d.ts +35 -2
- package/dist/core/models/workflow-types.d.ts.map +1 -1
- package/dist/core/models/workflow-types.js.map +1 -1
- package/dist/core/workflow/arpeggio/types.d.ts +3 -0
- package/dist/core/workflow/arpeggio/types.d.ts.map +1 -1
- package/dist/core/workflow/engine/ArpeggioRunner.d.ts +3 -6
- package/dist/core/workflow/engine/ArpeggioRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/ArpeggioRunner.js +40 -19
- package/dist/core/workflow/engine/ArpeggioRunner.js.map +1 -1
- package/dist/core/workflow/engine/OptionsBuilder.d.ts +1 -0
- package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
- package/dist/core/workflow/engine/OptionsBuilder.js +14 -5
- package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
- package/dist/core/workflow/engine/ParallelRunner.d.ts +4 -6
- package/dist/core/workflow/engine/ParallelRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/ParallelRunner.js +55 -12
- package/dist/core/workflow/engine/ParallelRunner.js.map +1 -1
- package/dist/core/workflow/engine/StepExecutor.d.ts +10 -7
- package/dist/core/workflow/engine/StepExecutor.d.ts.map +1 -1
- package/dist/core/workflow/engine/StepExecutor.js +81 -11
- package/dist/core/workflow/engine/StepExecutor.js.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.d.ts +3 -5
- package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.js +30 -7
- package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowCallExecutor.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowCallExecutor.js +1 -0
- package/dist/core/workflow/engine/WorkflowCallExecutor.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowCallRunner.d.ts +3 -6
- package/dist/core/workflow/engine/WorkflowCallRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowCallRunner.js +1 -1
- package/dist/core/workflow/engine/WorkflowCallRunner.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngine.d.ts +1 -0
- package/dist/core/workflow/engine/WorkflowEngine.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngine.js +47 -21
- package/dist/core/workflow/engine/WorkflowEngine.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts +4 -1
- package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngineSetup.js +1 -0
- package/dist/core/workflow/engine/WorkflowEngineSetup.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.d.ts +9 -27
- package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.js +6 -6
- package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowRunLoop.d.ts +6 -6
- package/dist/core/workflow/engine/WorkflowRunLoop.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowRunLoop.js +171 -9
- package/dist/core/workflow/engine/WorkflowRunLoop.js.map +1 -1
- package/dist/core/workflow/engine/engine-provider-options.d.ts +1 -1
- package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
- package/dist/core/workflow/engine/state-manager.d.ts +1 -0
- package/dist/core/workflow/engine/state-manager.d.ts.map +1 -1
- package/dist/core/workflow/engine/state-manager.js +11 -0
- package/dist/core/workflow/engine/state-manager.js.map +1 -1
- package/dist/core/workflow/engine/structured-output-normalizer.d.ts +23 -0
- package/dist/core/workflow/engine/structured-output-normalizer.d.ts.map +1 -0
- package/dist/core/workflow/engine/structured-output-normalizer.js +13 -0
- package/dist/core/workflow/engine/structured-output-normalizer.js.map +1 -0
- package/dist/core/workflow/engine/team-leader-part-runner.d.ts +2 -1
- package/dist/core/workflow/engine/team-leader-part-runner.d.ts.map +1 -1
- package/dist/core/workflow/engine/team-leader-part-runner.js +17 -6
- package/dist/core/workflow/engine/team-leader-part-runner.js.map +1 -1
- package/dist/core/workflow/instruction/InstructionBuilder.d.ts.map +1 -1
- package/dist/core/workflow/instruction/InstructionBuilder.js +7 -0
- package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
- package/dist/core/workflow/instruction/fallback-notice.d.ts +3 -0
- package/dist/core/workflow/instruction/fallback-notice.d.ts.map +1 -0
- package/dist/core/workflow/instruction/fallback-notice.js +20 -0
- package/dist/core/workflow/instruction/fallback-notice.js.map +1 -0
- package/dist/core/workflow/instruction/instruction-context.d.ts +3 -1
- package/dist/core/workflow/instruction/instruction-context.d.ts.map +1 -1
- package/dist/core/workflow/instruction/instruction-context.js.map +1 -1
- package/dist/core/workflow/observability/workflowSpans.d.ts +28 -0
- package/dist/core/workflow/observability/workflowSpans.d.ts.map +1 -0
- package/dist/core/workflow/observability/workflowSpans.js +107 -0
- package/dist/core/workflow/observability/workflowSpans.js.map +1 -0
- package/dist/core/workflow/permission-profile-resolution.d.ts.map +1 -1
- package/dist/core/workflow/permission-profile-resolution.js +1 -0
- package/dist/core/workflow/permission-profile-resolution.js.map +1 -1
- package/dist/core/workflow/phase-runner.d.ts +4 -4
- package/dist/core/workflow/phase-runner.d.ts.map +1 -1
- package/dist/core/workflow/phase-runner.js.map +1 -1
- package/dist/core/workflow/promotion/PromotionEvaluator.d.ts +13 -0
- package/dist/core/workflow/promotion/PromotionEvaluator.d.ts.map +1 -0
- package/dist/core/workflow/promotion/PromotionEvaluator.js +40 -0
- package/dist/core/workflow/promotion/PromotionEvaluator.js.map +1 -0
- package/dist/core/workflow/promotion/promotion-runtime.d.ts +11 -0
- package/dist/core/workflow/promotion/promotion-runtime.d.ts.map +1 -0
- package/dist/core/workflow/promotion/promotion-runtime.js +112 -0
- package/dist/core/workflow/promotion/promotion-runtime.js.map +1 -0
- package/dist/core/workflow/provider-options-trace.d.ts +3 -2
- package/dist/core/workflow/provider-options-trace.d.ts.map +1 -1
- package/dist/core/workflow/provider-resolution.js +10 -10
- package/dist/core/workflow/provider-resolution.js.map +1 -1
- package/dist/core/workflow/report-phase-runner.d.ts +5 -1
- package/dist/core/workflow/report-phase-runner.d.ts.map +1 -1
- package/dist/core/workflow/report-phase-runner.js +24 -5
- package/dist/core/workflow/report-phase-runner.js.map +1 -1
- package/dist/core/workflow/status-judgment-phase.d.ts.map +1 -1
- package/dist/core/workflow/status-judgment-phase.js +7 -3
- package/dist/core/workflow/status-judgment-phase.js.map +1 -1
- package/dist/core/workflow/system/system-step-effect-runner.d.ts.map +1 -1
- package/dist/core/workflow/system/system-step-effect-runner.js +20 -2
- package/dist/core/workflow/system/system-step-effect-runner.js.map +1 -1
- package/dist/core/workflow/types.d.ts +18 -3
- package/dist/core/workflow/types.d.ts.map +1 -1
- package/dist/features/interactive/assistantInitFiles.d.ts +2 -0
- package/dist/features/interactive/assistantInitFiles.d.ts.map +1 -0
- package/dist/features/interactive/assistantInitFiles.js +110 -0
- package/dist/features/interactive/assistantInitFiles.js.map +1 -0
- package/dist/features/interactive/conversationLoop.d.ts +5 -1
- package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
- package/dist/features/interactive/conversationLoop.js +23 -3
- package/dist/features/interactive/conversationLoop.js.map +1 -1
- package/dist/features/interactive/interactive-summary.d.ts +1 -1
- package/dist/features/interactive/interactive-summary.d.ts.map +1 -1
- package/dist/features/interactive/interactive-summary.js +4 -3
- package/dist/features/interactive/interactive-summary.js.map +1 -1
- package/dist/features/interactive/interactive.d.ts +5 -3
- package/dist/features/interactive/interactive.d.ts.map +1 -1
- package/dist/features/interactive/interactive.js +4 -0
- package/dist/features/interactive/interactive.js.map +1 -1
- package/dist/features/interactive/promptSections.d.ts +2 -0
- package/dist/features/interactive/promptSections.d.ts.map +1 -1
- package/dist/features/interactive/promptSections.js +7 -1
- package/dist/features/interactive/promptSections.js.map +1 -1
- package/dist/features/interactive/slashCommandRegistry.d.ts.map +1 -1
- package/dist/features/interactive/slashCommandRegistry.js +1 -0
- package/dist/features/interactive/slashCommandRegistry.js.map +1 -1
- package/dist/features/tasks/add/issueTask.d.ts +1 -14
- package/dist/features/tasks/add/issueTask.d.ts.map +1 -1
- package/dist/features/tasks/add/issueTask.js +124 -20
- package/dist/features/tasks/add/issueTask.js.map +1 -1
- package/dist/features/tasks/execute/workflowExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecution.js +15 -1
- package/dist/features/tasks/execute/workflowExecution.js.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts +5 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.js +8 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionEvents.js +18 -2
- package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
- package/dist/infra/claude/client.d.ts.map +1 -1
- package/dist/infra/claude/client.js +5 -0
- package/dist/infra/claude/client.js.map +1 -1
- package/dist/infra/claude/executor.d.ts.map +1 -1
- package/dist/infra/claude/executor.js +56 -20
- package/dist/infra/claude/executor.js.map +1 -1
- package/dist/infra/claude/mcp-config.d.ts +7 -0
- package/dist/infra/claude/mcp-config.d.ts.map +1 -0
- package/dist/infra/claude/mcp-config.js +30 -0
- package/dist/infra/claude/mcp-config.js.map +1 -0
- package/dist/infra/claude/types.d.ts +2 -1
- package/dist/infra/claude/types.d.ts.map +1 -1
- package/dist/infra/claude-headless/client.d.ts.map +1 -1
- package/dist/infra/claude-headless/client.js +15 -43
- package/dist/infra/claude-headless/client.js.map +1 -1
- package/dist/infra/claude-headless/headless-spawn.d.ts +1 -0
- package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -1
- package/dist/infra/claude-headless/headless-spawn.js +16 -0
- package/dist/infra/claude-headless/headless-spawn.js.map +1 -1
- package/dist/infra/claude-headless/result-response.d.ts.map +1 -1
- package/dist/infra/claude-headless/result-response.js +34 -0
- package/dist/infra/claude-headless/result-response.js.map +1 -1
- package/dist/infra/claude-terminal/client.d.ts +4 -0
- package/dist/infra/claude-terminal/client.d.ts.map +1 -0
- package/dist/infra/claude-terminal/client.js +314 -0
- package/dist/infra/claude-terminal/client.js.map +1 -0
- package/dist/infra/claude-terminal/command.d.ts +4 -0
- package/dist/infra/claude-terminal/command.d.ts.map +1 -0
- package/dist/infra/claude-terminal/command.js +50 -0
- package/dist/infra/claude-terminal/command.js.map +1 -0
- package/dist/infra/claude-terminal/response-normalizer.d.ts +14 -0
- package/dist/infra/claude-terminal/response-normalizer.d.ts.map +1 -0
- package/dist/infra/claude-terminal/response-normalizer.js +118 -0
- package/dist/infra/claude-terminal/response-normalizer.js.map +1 -0
- package/dist/infra/claude-terminal/tmux-backend.d.ts +7 -0
- package/dist/infra/claude-terminal/tmux-backend.d.ts.map +1 -0
- package/dist/infra/claude-terminal/tmux-backend.js +177 -0
- package/dist/infra/claude-terminal/tmux-backend.js.map +1 -0
- package/dist/infra/claude-terminal/transcript-reader.d.ts +13 -0
- package/dist/infra/claude-terminal/transcript-reader.d.ts.map +1 -0
- package/dist/infra/claude-terminal/transcript-reader.js +329 -0
- package/dist/infra/claude-terminal/transcript-reader.js.map +1 -0
- package/dist/infra/claude-terminal/types.d.ts +106 -0
- package/dist/infra/claude-terminal/types.d.ts.map +1 -0
- package/dist/infra/claude-terminal/types.js +2 -0
- package/dist/infra/claude-terminal/types.js.map +1 -0
- package/dist/infra/codex/client.d.ts +1 -0
- package/dist/infra/codex/client.d.ts.map +1 -1
- package/dist/infra/codex/client.js +21 -1
- package/dist/infra/codex/client.js.map +1 -1
- package/dist/infra/config/configNormalizers.d.ts +20 -2
- package/dist/infra/config/configNormalizers.d.ts.map +1 -1
- package/dist/infra/config/configNormalizers.js +68 -3
- package/dist/infra/config/configNormalizers.js.map +1 -1
- package/dist/infra/config/env/global-current-env-specs.d.ts.map +1 -1
- package/dist/infra/config/env/global-current-env-specs.js +5 -0
- package/dist/infra/config/env/global-current-env-specs.js.map +1 -1
- package/dist/infra/config/env/project-current-env-specs.d.ts.map +1 -1
- package/dist/infra/config/env/project-current-env-specs.js +5 -0
- package/dist/infra/config/env/project-current-env-specs.js.map +1 -1
- package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfigCore.js +4 -1
- package/dist/infra/config/global/globalConfigCore.js.map +1 -1
- package/dist/infra/config/global/globalConfigSerializer.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfigSerializer.js +10 -1
- package/dist/infra/config/global/globalConfigSerializer.js.map +1 -1
- package/dist/infra/config/global/initialization.d.ts +1 -1
- package/dist/infra/config/global/initialization.d.ts.map +1 -1
- package/dist/infra/config/global/initialization.js +1 -0
- package/dist/infra/config/global/initialization.js.map +1 -1
- package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowParser.js +2 -1
- package/dist/infra/config/loaders/workflowParser.js.map +1 -1
- package/dist/infra/config/loaders/workflowRuleNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowRuleNormalizer.js +8 -9
- package/dist/infra/config/loaders/workflowRuleNormalizer.js.map +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.js +21 -0
- package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
- package/dist/infra/config/observabilityConfig.d.ts +13 -0
- package/dist/infra/config/observabilityConfig.d.ts.map +1 -0
- package/dist/infra/config/observabilityConfig.js +52 -0
- package/dist/infra/config/observabilityConfig.js.map +1 -0
- package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
- package/dist/infra/config/project/projectConfig.js +28 -3
- package/dist/infra/config/project/projectConfig.js.map +1 -1
- package/dist/infra/config/providerOptions.d.ts +9 -2
- package/dist/infra/config/providerOptions.d.ts.map +1 -1
- package/dist/infra/config/providerOptions.js +66 -4
- package/dist/infra/config/providerOptions.js.map +1 -1
- package/dist/infra/config/providerOptionsContract.d.ts +3 -3
- package/dist/infra/config/providerOptionsContract.d.ts.map +1 -1
- package/dist/infra/config/providerOptionsContract.js +17 -0
- package/dist/infra/config/providerOptionsContract.js.map +1 -1
- package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
- package/dist/infra/config/resolveConfigValue.js +18 -0
- package/dist/infra/config/resolveConfigValue.js.map +1 -1
- package/dist/infra/config/resolvedConfig.d.ts +2 -1
- package/dist/infra/config/resolvedConfig.d.ts.map +1 -1
- package/dist/infra/config/traced/tracedConfigSchema.d.ts.map +1 -1
- package/dist/infra/config/traced/tracedConfigSchema.js +16 -0
- package/dist/infra/config/traced/tracedConfigSchema.js.map +1 -1
- package/dist/infra/git/format.d.ts.map +1 -1
- package/dist/infra/git/format.js +75 -8
- package/dist/infra/git/format.js.map +1 -1
- package/dist/infra/git/index.d.ts +1 -1
- package/dist/infra/git/index.d.ts.map +1 -1
- package/dist/infra/git/types.d.ts +5 -0
- package/dist/infra/git/types.d.ts.map +1 -1
- package/dist/infra/github/pr.d.ts.map +1 -1
- package/dist/infra/github/pr.js +174 -28
- package/dist/infra/github/pr.js.map +1 -1
- package/dist/infra/mock/client.d.ts.map +1 -1
- package/dist/infra/mock/client.js +2 -0
- package/dist/infra/mock/client.js.map +1 -1
- package/dist/infra/mock/scenario.d.ts.map +1 -1
- package/dist/infra/mock/scenario.js +11 -0
- package/dist/infra/mock/scenario.js.map +1 -1
- package/dist/infra/mock/types.d.ts +9 -0
- package/dist/infra/mock/types.d.ts.map +1 -1
- package/dist/infra/observability/otelFoundation.d.ts +6 -0
- package/dist/infra/observability/otelFoundation.d.ts.map +1 -0
- package/dist/infra/observability/otelFoundation.js +89 -0
- package/dist/infra/observability/otelFoundation.js.map +1 -0
- package/dist/infra/opencode/client.d.ts +1 -0
- package/dist/infra/opencode/client.d.ts.map +1 -1
- package/dist/infra/opencode/client.js +41 -15
- package/dist/infra/opencode/client.js.map +1 -1
- package/dist/infra/opencode/types.d.ts +1 -0
- package/dist/infra/opencode/types.d.ts.map +1 -1
- package/dist/infra/providers/claude-terminal.d.ts +6 -0
- package/dist/infra/providers/claude-terminal.d.ts.map +1 -0
- package/dist/infra/providers/claude-terminal.js +70 -0
- package/dist/infra/providers/claude-terminal.js.map +1 -0
- package/dist/infra/providers/index.d.ts.map +1 -1
- package/dist/infra/providers/index.js +2 -0
- package/dist/infra/providers/index.js.map +1 -1
- package/dist/infra/providers/opencode.d.ts.map +1 -1
- package/dist/infra/providers/opencode.js +1 -0
- package/dist/infra/providers/opencode.js.map +1 -1
- package/dist/infra/providers/provider-capabilities.d.ts +1 -0
- package/dist/infra/providers/provider-capabilities.d.ts.map +1 -1
- package/dist/infra/providers/provider-capabilities.js +16 -0
- package/dist/infra/providers/provider-capabilities.js.map +1 -1
- package/dist/infra/rate-limit/detection.d.ts +15 -0
- package/dist/infra/rate-limit/detection.d.ts.map +1 -0
- package/dist/infra/rate-limit/detection.js +58 -0
- package/dist/infra/rate-limit/detection.js.map +1 -0
- package/dist/infra/task/clone-base-branch.d.ts +11 -0
- package/dist/infra/task/clone-base-branch.d.ts.map +1 -1
- package/dist/infra/task/clone-base-branch.js +34 -4
- package/dist/infra/task/clone-base-branch.js.map +1 -1
- package/dist/infra/task/clone.d.ts +1 -1
- package/dist/infra/task/clone.d.ts.map +1 -1
- package/dist/infra/task/clone.js +1 -1
- package/dist/infra/task/clone.js.map +1 -1
- package/dist/infra/task/index.d.ts +1 -1
- package/dist/infra/task/index.d.ts.map +1 -1
- package/dist/infra/task/index.js +1 -1
- package/dist/infra/task/index.js.map +1 -1
- package/dist/infra/workflow/structured-output/followup-task-normalizer.d.ts +3 -0
- package/dist/infra/workflow/structured-output/followup-task-normalizer.d.ts.map +1 -0
- package/dist/infra/workflow/structured-output/followup-task-normalizer.js +206 -0
- package/dist/infra/workflow/structured-output/followup-task-normalizer.js.map +1 -0
- package/dist/infra/workflow/system/system-enqueue-effect.d.ts +2 -2
- package/dist/infra/workflow/system/system-enqueue-effect.d.ts.map +1 -1
- package/dist/infra/workflow/system/system-enqueue-effect.js +9 -4
- package/dist/infra/workflow/system/system-enqueue-effect.js.map +1 -1
- package/dist/shared/constants.d.ts +1 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +1 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/i18n/labels_en.yaml +3 -1
- package/dist/shared/i18n/labels_ja.yaml +3 -1
- package/dist/shared/prompts/en/perform_phase1_message.md +11 -1
- package/dist/shared/prompts/ja/perform_phase1_message.md +11 -1
- package/dist/shared/types/provider.d.ts +1 -1
- package/dist/shared/types/provider.d.ts.map +1 -1
- package/dist/shared/utils/debug.d.ts +2 -0
- package/dist/shared/utils/debug.d.ts.map +1 -1
- package/dist/shared/utils/debug.js +1 -0
- package/dist/shared/utils/debug.js.map +1 -1
- package/dist/shared/utils/delay.d.ts +2 -0
- package/dist/shared/utils/delay.d.ts.map +1 -0
- package/dist/shared/utils/delay.js +4 -0
- package/dist/shared/utils/delay.js.map +1 -0
- package/dist/shared/utils/index.d.ts +1 -0
- package/dist/shared/utils/index.d.ts.map +1 -1
- package/dist/shared/utils/index.js +1 -0
- package/dist/shared/utils/index.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -2,35 +2,53 @@
|
|
|
2
2
|
|
|
3
3
|
🇯🇵 [日本語ドキュメント](./docs/README.ja.md) | 💬 [Discord Community](https://discord.gg/R2Xz3uYWxD)
|
|
4
4
|
|
|
5
|
-
**T**AKT **A**gent **K**oordination **T**opology —
|
|
5
|
+
**T**AKT **A**gent **K**oordination **T**opology — Orchestrate multiple AI agents with structured review loops, managed prompts, and guardrails.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Talk to AI to define what you want, queue it as a task, and run it with `takt run`. Planning, implementation, review, and fix loops are defined in YAML workflow files, so the process is not left to the agent's discretion. TAKT coordinates Claude Code, Codex, OpenCode, Cursor, and GitHub Copilot CLI as agents with different roles, permissions, and context.
|
|
8
|
+
|
|
9
|
+
TAKT is built primarily for AI coding workflows, but the same model applies beyond coding: any task where multiple AI agents need to coordinate, or where review, judgment, and feedback loops can improve task quality.
|
|
8
10
|
|
|
9
11
|
TAKT is built with TAKT itself (dogfooding).
|
|
10
12
|
|
|
11
13
|
## Why TAKT
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
AI coding agents are powerful, but they do not automatically create a stable development process. In long-running work, they forget instructions, accumulate polluted context, blur implementation and review responsibilities, and often force humans to repeat the same feedback again and again. That wears people down.
|
|
16
|
+
|
|
17
|
+
Adding more rules to prompts, `CLAUDE.md`, or skills can help, but it cannot enforce the process. Whether the rules are followed is still left to the agent's behavior.
|
|
18
|
+
|
|
19
|
+
TAKT treats AI agents as something to be controlled from the outside, not simply trusted.
|
|
14
20
|
|
|
15
|
-
|
|
21
|
+
Workflows define the phases, and each step receives its own persona, policy, knowledge, instruction, and output contract. TAKT manages implementation, review, fix, and re-review flows declaratively. By separating responsibilities, knowledge, and constraints, then giving each agent only what it needs for the current step, TAKT improves task quality without bloating context.
|
|
16
22
|
|
|
17
|
-
|
|
23
|
+
Reviews cannot be silently skipped. Findings route work back to fix steps, and human judgment can be requested when needed. Tasks run in isolated worktrees, and each step leaves logs and reports so the path from task to PR remains traceable.
|
|
18
24
|
|
|
19
|
-
|
|
25
|
+
At its core, TAKT runs reusable agent processes built from roles, phases, judgments, and feedback loops.
|
|
26
|
+
|
|
27
|
+
The goal is simple: make development processes reusable, reviewable, and reproducible without depending on constant human intervention.
|
|
20
28
|
|
|
21
29
|
## Requirements
|
|
22
30
|
|
|
23
|
-
|
|
31
|
+
The provider you choose determines whether you need to install an external CLI or can run on Node.js alone via a TypeScript SDK.
|
|
32
|
+
|
|
33
|
+
These providers run via SDK (no CLI required, Node.js only):
|
|
34
|
+
|
|
35
|
+
- `claude-sdk` — `@anthropic-ai/claude-agent-sdk`
|
|
36
|
+
- `codex` — `@openai/codex-sdk`
|
|
37
|
+
- `opencode` — `@opencode-ai/sdk`
|
|
24
38
|
|
|
25
|
-
|
|
26
|
-
|
|
39
|
+
These providers require an external CLI:
|
|
40
|
+
|
|
41
|
+
- `claude` — [Claude Code](https://claude.ai/code)
|
|
42
|
+
- `claude-terminal` — [Claude Code](https://claude.ai/code) driven in an interactive terminal session (also requires [`tmux`](https://github.com/tmux/tmux))
|
|
43
|
+
- `copilot` — [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli)
|
|
44
|
+
- `cursor` — [Cursor Agent](https://docs.cursor.com/)
|
|
27
45
|
|
|
28
46
|
Optional:
|
|
29
47
|
|
|
30
48
|
- [GitHub CLI](https://cli.github.com/) (`gh`) — for `takt #N` (GitHub Issue tasks)
|
|
31
49
|
- [GitLab CLI](https://gitlab.com/gitlab-org/cli) (`glab`) — for GitLab Issue/MR integration (auto-detected from remote URL)
|
|
32
50
|
|
|
33
|
-
> **OAuth
|
|
51
|
+
> **OAuth usage:** Whether OAuth is permitted varies by provider and use case. Check each provider's terms of service before using TAKT.
|
|
34
52
|
|
|
35
53
|
## Quick Start
|
|
36
54
|
|
|
@@ -92,7 +110,7 @@ takt list
|
|
|
92
110
|
|
|
93
111
|
## How It Works
|
|
94
112
|
|
|
95
|
-
|
|
113
|
+
The name TAKT comes from the German word for "beat" or "baton stroke," used in conducting to keep an orchestra in time. TAKT uses **workflow** and **step** consistently in both user-facing and implementation-facing terminology.
|
|
96
114
|
|
|
97
115
|
A workflow is defined by a sequence of steps. Use `steps`, `initial_step`, and `max_steps`. Each step specifies a persona (who), permissions (what's allowed), and rules (what happens next). Here's a minimal example:
|
|
98
116
|
|
|
@@ -137,10 +155,12 @@ When the same workflow name exists in multiple locations, TAKT resolves in this
|
|
|
137
155
|
|
|
138
156
|
| Workflow | Use Case |
|
|
139
157
|
|-------|----------|
|
|
140
|
-
| `default` | Standard development. Test-first with AI antipattern review and parallel review (architecture + supervisor). |
|
|
141
|
-
| `frontend
|
|
142
|
-
| `backend
|
|
143
|
-
| `dual
|
|
158
|
+
| `default` | Standard development workflow. Test-first with AI antipattern review and parallel review (architecture + supervisor). |
|
|
159
|
+
| `frontend` | Frontend development workflow. |
|
|
160
|
+
| `backend` | Backend development workflow. |
|
|
161
|
+
| `dual` | Combined frontend + backend workflow. |
|
|
162
|
+
| `takt-default` | The workflow used to develop TAKT itself. Directly applicable to other CLI tool development. |
|
|
163
|
+
| `*-mini` series | Lightweight variants of each workflow (`default-mini` / `frontend-mini` / `backend-mini` / `dual-mini`). Omits `write_tests`. |
|
|
144
164
|
|
|
145
165
|
See the [Builtin Catalog](./docs/builtin-catalog.md) for all workflows and personas.
|
|
146
166
|
|
|
@@ -164,7 +184,7 @@ See the [CLI Reference](./docs/cli-reference.md) for all commands and options.
|
|
|
164
184
|
Minimal `~/.takt/config.yaml`:
|
|
165
185
|
|
|
166
186
|
```yaml
|
|
167
|
-
provider: claude # claude, claude-sdk, codex, opencode, cursor, or copilot
|
|
187
|
+
provider: claude # claude, claude-sdk, claude-terminal, codex, opencode, cursor, or copilot
|
|
168
188
|
model: sonnet # passed directly to provider
|
|
169
189
|
language: en # en or ja
|
|
170
190
|
```
|
|
@@ -202,7 +222,7 @@ You are a code reviewer specialized in security.
|
|
|
202
222
|
|
|
203
223
|
Reference it in your workflow: `persona: my-reviewer`
|
|
204
224
|
|
|
205
|
-
See the [Workflow Guide](./docs/workflows.md)
|
|
225
|
+
See the [Workflow Guide](./docs/workflows.md) for details. The list of builtin personas is in the [Builtin Catalog](./docs/builtin-catalog.md).
|
|
206
226
|
|
|
207
227
|
## CI/CD
|
|
208
228
|
|
|
@@ -243,35 +263,45 @@ See the [CI/CD Guide](./docs/ci-cd.md) for full setup instructions.
|
|
|
243
263
|
|
|
244
264
|
Workflow definitions are stored under `workflows/`.
|
|
245
265
|
|
|
246
|
-
##
|
|
266
|
+
## Adopting Spec-Driven Development
|
|
247
267
|
|
|
248
|
-
|
|
249
|
-
import { WorkflowEngine, loadWorkflow } from 'takt';
|
|
268
|
+
TAKT enforces phase transitions declaratively as a YAML state machine, formalizes the artifact of each phase with output contracts, and routes deviations back via parallel review and fix loops. This structure is particularly well-suited for users who follow Spec-Driven Development (SDD) and keep the spec at the center of the process. Once the spec is well-defined, the AI cannot silently skip a phase, drop an acceptance criterion, or claim "done" without passing the verification gate.
|
|
250
269
|
|
|
251
|
-
|
|
252
|
-
if (!config) throw new Error('Workflow not found');
|
|
270
|
+
For users who want to adopt SDD, the community provides [j5ik2o/takt-sdd](https://github.com/j5ik2o/takt-sdd) as a ready-made implementation. It ships pieces for Requirements → Gap Analysis → Design → Tasks → Implementation → Validation, plus an OpenSpec-style change-proposal flow. Install in one command:
|
|
253
271
|
|
|
254
|
-
|
|
255
|
-
|
|
272
|
+
```bash
|
|
273
|
+
npx create-takt-sdd
|
|
256
274
|
```
|
|
257
275
|
|
|
276
|
+
See [External Integrations](./docs/external-integrations.md) for other community integrations.
|
|
277
|
+
|
|
258
278
|
## Documentation
|
|
259
279
|
|
|
260
280
|
| Document | Description |
|
|
261
281
|
|----------|-------------|
|
|
262
282
|
| [CLI Reference](./docs/cli-reference.md) | All commands and options |
|
|
263
283
|
| [Configuration](./docs/configuration.md) | Global and project settings |
|
|
284
|
+
| [Design Philosophy](./docs/design-philosophy.md) | Why TAKT is built around workflows, facets, feedback loops, and traceability |
|
|
264
285
|
| [Workflow Guide](./docs/workflows.md) | Creating and customizing workflows |
|
|
265
|
-
| [Agent Guide](./docs/agents.md) | Custom agent configuration |
|
|
266
286
|
| [Builtin Catalog](./docs/builtin-catalog.md) | All builtin workflows and personas |
|
|
267
287
|
| [Faceted Prompting](./docs/faceted-prompting.md) | Prompt design methodology |
|
|
268
288
|
| [Repertoire Packages](./docs/repertoire.md) | Installing and sharing packages |
|
|
269
289
|
| [Task Management](./docs/task-management.md) | Task queuing, execution, isolation |
|
|
270
|
-
| [Data Flow](./docs/data-flow.md) | Internal data flow and architecture diagrams |
|
|
271
290
|
| [CI/CD Integration](./docs/ci-cd.md) | GitHub Actions and pipeline mode |
|
|
272
|
-
| [
|
|
291
|
+
| [External Integrations](./docs/external-integrations.md) | Community examples that extend TAKT without modifying core (audit trails, etc.) |
|
|
273
292
|
| [Changelog](./CHANGELOG.md) ([日本語](./docs/CHANGELOG.ja.md)) | Version history |
|
|
274
|
-
|
|
293
|
+
|
|
294
|
+
## Sponsors
|
|
295
|
+
|
|
296
|
+
TAKT is supported by [CodeRabbit](https://coderabbit.link/nrslib) through its Open Source Support Program.
|
|
297
|
+
|
|
298
|
+
<a href="https://coderabbit.link/nrslib">
|
|
299
|
+
<picture>
|
|
300
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://victorious-bubble-f69a016683.media.strapiapp.com/White_Typemark_79b9189d19.svg">
|
|
301
|
+
<source media="(prefers-color-scheme: light)" srcset="https://victorious-bubble-f69a016683.media.strapiapp.com/Orange_Typemark_43bf516c9d.svg">
|
|
302
|
+
<img alt="CodeRabbit" src="https://victorious-bubble-f69a016683.media.strapiapp.com/Orange_Typemark_43bf516c9d.svg" height="40">
|
|
303
|
+
</picture>
|
|
304
|
+
</a>
|
|
275
305
|
|
|
276
306
|
## Community
|
|
277
307
|
|
package/builtins/en/config.yaml
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
## Notice: This Step Is A Fallback Execution
|
|
2
|
+
|
|
3
|
+
The previous step execution was interrupted by an external condition ({{fallback_reason}}) and is being retried in a new session.
|
|
4
|
+
The previous session context is not carried into this session.
|
|
5
|
+
|
|
6
|
+
- Interrupted step: {{step_name}}
|
|
7
|
+
- Original iteration: {{original_iteration}}
|
|
8
|
+
- Interruption reason: {{fallback_reason_detail}}
|
|
9
|
+
- Previous provider/model: {{previous_provider}} / {{previous_model}}
|
|
10
|
+
- Current provider/model: {{current_provider}} / {{current_model}}
|
|
11
|
+
|
|
12
|
+
Previous work that remains on disk as files or reports is available, but chat context is not. Rebuild context as needed:
|
|
13
|
+
|
|
14
|
+
1. Inspect existing reports under {{report_dir}}
|
|
15
|
+
2. Inspect the latest commit or working tree diff
|
|
16
|
+
3. If context is still missing, execute from the step instruction
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
**This is AI Review iteration #{step_iteration}.**
|
|
2
|
-
Use reports in the Report Directory as the primary source of truth. If additional context is needed, you may consult Previous Response and conversation history as secondary sources (Previous Response may be unavailable). If information conflicts, prioritize reports in the Report Directory and actual file contents.
|
|
3
|
-
|
|
4
|
-
From the 2nd iteration onward, it means the previous fixes were not actually applied.
|
|
5
|
-
**Your belief that they were "already fixed" is incorrect.**
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
- The files you thought were "fixed" are actually not fixed
|
|
9
|
-
- Your understanding of the previous work is wrong
|
|
10
|
-
- You need to rethink from scratch
|
|
3
|
+
Use reports in the Report Directory as the primary source of truth. If additional context is needed, you may consult Previous Response and conversation history as secondary sources (Previous Response may be unavailable). If information conflicts, prioritize reports in the Report Directory and actual file contents.
|
|
11
4
|
|
|
12
5
|
**Required actions:**
|
|
13
|
-
1. Open all flagged files with the Read tool
|
|
6
|
+
1. Open all flagged files with the Read tool
|
|
14
7
|
2. Search for the problem areas with grep to confirm they exist
|
|
15
8
|
3. Fix the confirmed issues with the Edit tool
|
|
16
9
|
4. Run tests to verify
|
|
@@ -20,11 +13,6 @@ From the 2nd iteration onward, it means the previous fixes were not actually app
|
|
|
20
13
|
- NG: "It has already been fixed"
|
|
21
14
|
- OK: "After checking file X at L123, I found issue Y and fixed it to Z"
|
|
22
15
|
|
|
23
|
-
**Strictly prohibited:**
|
|
24
|
-
- Reporting "already fixed" without opening the file
|
|
25
|
-
- Making judgments based on assumptions
|
|
26
|
-
- Leaving issues that the AI Reviewer REJECTed unresolved
|
|
27
|
-
|
|
28
16
|
**Handling "no fix needed" (required)**
|
|
29
17
|
- Do not judge "no fix needed" unless you can show verification results for the target file for each AI Review finding
|
|
30
18
|
- If the finding relates to "generated output" or "spec synchronization", output the tag corresponding to "unable to determine" unless you can verify the source/spec
|
|
@@ -3,15 +3,9 @@
|
|
|
3
3
|
On the first iteration, review comprehensively and report all issues that need to be flagged.
|
|
4
4
|
From the 2nd iteration onward, prioritize verifying whether previously REJECTed items have been fixed.
|
|
5
5
|
|
|
6
|
-
Review the
|
|
7
|
-
- Verification of assumptions
|
|
8
|
-
- Plausible but incorrect patterns
|
|
9
|
-
- Compatibility with the existing codebase
|
|
10
|
-
- Scope creep detection
|
|
11
|
-
- Scope shrinkage detection (missing task requirements)
|
|
6
|
+
Review the diff for AI-specific issues.
|
|
12
7
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
3. If there is even one blocking issue, judge as REJECT
|
|
8
|
+
Procedure:
|
|
9
|
+
1. Open the Knowledge and Policy Source paths with the Read tool and obtain the full content
|
|
10
|
+
2. List every `##` section in each of them (do not cherry-pick)
|
|
11
|
+
3. Match the criteria in each listed section against the diff and detect any issues
|
|
@@ -42,13 +42,12 @@ Small / Medium / Large
|
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
**Pre-completion self-check (required):**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- Verify new code matches existing implementation patterns (API call style, type definition style, etc.)
|
|
45
|
+
|
|
46
|
+
Before running build and tests, audit your work against Policy with the following procedure.
|
|
47
|
+
|
|
48
|
+
1. Open the Policy Source path with the Read tool and obtain the full content
|
|
49
|
+
2. List every `##` section (do not cherry-pick)
|
|
50
|
+
3. Match the REJECT criteria in each listed section against your implementation
|
|
52
51
|
|
|
53
52
|
**Required output (include headings)**
|
|
54
53
|
## Work results
|
|
@@ -41,13 +41,12 @@ Small / Medium / Large
|
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
**Pre-completion self-check (required):**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
- Verify new code matches existing implementation patterns (API call style, type definition style, etc.)
|
|
44
|
+
|
|
45
|
+
Before running build and tests, audit your work against Policy with the following procedure.
|
|
46
|
+
|
|
47
|
+
1. Open the Policy Source path with the Read tool and obtain the full content
|
|
48
|
+
2. List every `##` section (do not cherry-pick)
|
|
49
|
+
3. Match the REJECT criteria in each listed section against your implementation
|
|
51
50
|
|
|
52
51
|
**Required output (include headings)**
|
|
53
52
|
## Work results
|
|
@@ -1,39 +1,7 @@
|
|
|
1
1
|
Focus on reviewing **architecture and design**.
|
|
2
2
|
Do not review AI-specific issues (already covered by the ai-antipattern-review-1st step).
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- Code quality
|
|
9
|
-
- Appropriateness of change scope
|
|
10
|
-
- Test coverage
|
|
11
|
-
- Dead code
|
|
12
|
-
- Call chain verification
|
|
13
|
-
- Scattered hardcoding of contract strings (file names, config key names)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
**Design decisions reference:**
|
|
17
|
-
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
18
|
-
- Do not flag intentionally documented decisions as FP
|
|
19
|
-
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
20
|
-
|
|
21
|
-
**Previous finding tracking (required):**
|
|
22
|
-
- First, inspect the review result previously produced by this step and its timestamped history in the Report Directory, treating the unversioned file as the latest result and the most recent timestamped file as the previous result
|
|
23
|
-
- If "Previous Response" is available, use it only as supporting context; use report history as the source of truth for finding state transitions
|
|
24
|
-
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved / reopened`
|
|
25
|
-
- If status is `persists`, provide concrete unresolved evidence (file/line)
|
|
26
|
-
- Do not drop open findings from the prior report when producing the current report
|
|
27
|
-
|
|
28
|
-
## Judgment Procedure
|
|
29
|
-
|
|
30
|
-
1. First, extract previous open findings and preliminarily classify as `new / persists / resolved / reopened`
|
|
31
|
-
2. Review the change diff and detect issues based on the architecture and design criteria above
|
|
32
|
-
- Cross-check changes against REJECT criteria tables defined in knowledge
|
|
33
|
-
- If you find a DRY violation, require it to be fixed
|
|
34
|
-
- Before proposing a fix, verify that the consolidation target fits existing responsibility boundaries, contracts, and public API shape
|
|
35
|
-
- If you require a new wrapper, helper, or public API, explain why that abstraction target is the natural one
|
|
36
|
-
- If the proposed abstraction goes beyond the task spec or plan, state why the additional scope is necessary and justified
|
|
37
|
-
- When citing build, test, or functional verification as evidence, record the verified target, what was checked, and the observed result in the report
|
|
38
|
-
3. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
|
|
39
|
-
4. If there is even one blocking issue (`new`, `persists`, or `reopened`), judge as REJECT
|
|
4
|
+
Procedure:
|
|
5
|
+
1. Open the Knowledge and Policy Source paths with the Read tool and obtain the full content
|
|
6
|
+
2. List every `##` section in each of them (do not cherry-pick)
|
|
7
|
+
3. Match the criteria in each listed section against the diff and detect any issues
|
|
@@ -1,25 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
Focus on reviewing **CQRS (Command Query Responsibility Segregation) and Event Sourcing**.
|
|
2
|
+
Do not review AI-specific issues (already covered by the ai-antipattern-review-1st step).
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- Projection design
|
|
9
|
-
- Eventual consistency considerations
|
|
4
|
+
Procedure:
|
|
5
|
+
1. Open the Knowledge and Policy Source paths with the Read tool and obtain the full content
|
|
6
|
+
2. List every `##` section in each of them (do not cherry-pick)
|
|
7
|
+
3. Match the criteria in each listed section against the diff and detect any issues
|
|
10
8
|
|
|
11
|
-
**Note
|
|
12
|
-
review from a general domain design perspective instead.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**Design decisions reference:**
|
|
16
|
-
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
17
|
-
- Do not flag intentionally documented decisions as FP
|
|
18
|
-
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
19
|
-
|
|
20
|
-
## Judgment Procedure
|
|
21
|
-
|
|
22
|
-
1. Review the change diff and detect issues based on the CQRS and Event Sourcing criteria above
|
|
23
|
-
- Cross-check changes against REJECT criteria tables defined in knowledge
|
|
24
|
-
2. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
|
|
25
|
-
3. If there is even one blocking issue, judge as REJECT
|
|
9
|
+
**Note:** If this project does not use the CQRS+ES pattern, review from a general domain design perspective instead.
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
Focus on reviewing **frontend development**.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- Performance (re-renders, memoization)
|
|
8
|
-
- Accessibility (keyboard navigation, ARIA)
|
|
9
|
-
- Data fetching patterns
|
|
10
|
-
- Reachability wiring for user-facing features (routes, entry paths, launch conditions)
|
|
11
|
-
- TypeScript type safety
|
|
3
|
+
Procedure:
|
|
4
|
+
1. Open the Knowledge and Policy Source paths with the Read tool and obtain the full content
|
|
5
|
+
2. List every `##` section in each of them (do not cherry-pick)
|
|
6
|
+
3. Match the criteria in each listed section against the diff and detect any issues
|
|
12
7
|
|
|
13
|
-
**
|
|
14
|
-
1. Identify the design reference from the task order's referenced materials
|
|
15
|
-
2. Compare design elements (layout, wording, colors, spacing) against implementation element by element
|
|
16
|
-
3. For any discrepancy, check the decisions log to determine if it was intentional
|
|
17
|
-
4. Report unintentional discrepancies as blocking issues
|
|
18
|
-
|
|
19
|
-
**Note**: If this project does not include a frontend,
|
|
20
|
-
proceed as no issues found.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
**Design decisions reference:**
|
|
24
|
-
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
25
|
-
- Do not flag intentionally documented decisions as FP
|
|
26
|
-
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
27
|
-
|
|
28
|
-
## Judgment Procedure
|
|
29
|
-
|
|
30
|
-
1. Review the change diff and detect issues based on the frontend development criteria above
|
|
31
|
-
- Cross-check changes against REJECT criteria tables defined in knowledge
|
|
32
|
-
- When new screens or user-facing features are added, verify that entry points and caller wiring were updated as well
|
|
33
|
-
2. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
|
|
34
|
-
3. If there is even one blocking issue, judge as REJECT
|
|
8
|
+
**Note:** If this project does not include a frontend, proceed as no issues found.
|
|
@@ -1,32 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
Focus on reviewing **quality assurance (test strategy, coverage, error handling, maintainability)**.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- Logging and monitoring
|
|
8
|
-
- Maintainability
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
**Design decisions reference:**
|
|
12
|
-
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
13
|
-
- Do not flag intentionally documented decisions as FP
|
|
14
|
-
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
15
|
-
|
|
16
|
-
**Previous finding tracking (required):**
|
|
17
|
-
- First, inspect the review result previously produced by this step and its timestamped history in the Report Directory, treating the unversioned file as the latest result and the most recent timestamped file as the previous result
|
|
18
|
-
- If "Previous Response" is available, use it only as supporting context; use report history as the source of truth for finding state transitions
|
|
19
|
-
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved / reopened`
|
|
20
|
-
- If status is `persists`, provide concrete unresolved evidence (file/line)
|
|
21
|
-
- Do not drop open findings from the prior report when producing the current report
|
|
22
|
-
|
|
23
|
-
## Judgment Procedure
|
|
24
|
-
|
|
25
|
-
1. First, extract previous open findings and preliminarily classify as `new / persists / resolved / reopened`
|
|
26
|
-
2. Review the change diff and detect issues based on the quality assurance criteria above
|
|
27
|
-
- Cross-check changes against REJECT criteria tables defined in knowledge
|
|
28
|
-
- Even if tests pass, verify whether any additional change outside the task or plan is justified
|
|
29
|
-
- If review-driven follow-up changes expand the design, evaluate whether that extra change is actually necessary
|
|
30
|
-
- When citing build, test, or functional verification as evidence, record the verified target, what was checked, and the observed result in the report
|
|
31
|
-
3. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
|
|
32
|
-
4. If there is even one blocking issue (`new`, `persists`, or `reopened`), judge as REJECT
|
|
3
|
+
Procedure:
|
|
4
|
+
1. Open the Knowledge and Policy Source paths with the Read tool and obtain the full content
|
|
5
|
+
2. List every `##` section in each of them (do not cherry-pick)
|
|
6
|
+
3. Match the criteria in each listed section against the diff and detect any issues
|
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
Focus on reviewing **requirements fulfillment**.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- Whether there are any partial or missing implementations
|
|
3
|
+
Procedure:
|
|
4
|
+
1. Open the Knowledge and Policy Source paths with the Read tool and obtain the full content
|
|
5
|
+
2. List every `##` section in each of them (do not cherry-pick)
|
|
6
|
+
3. Match the criteria in each listed section against the diff and detect any issues
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
**Design decisions reference:**
|
|
11
|
-
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
12
|
-
- Do not flag intentionally documented decisions as FP
|
|
13
|
-
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
14
|
-
|
|
15
|
-
**Previous finding tracking (required):**
|
|
16
|
-
- First, inspect the review result previously produced by this step and its timestamped history in the Report Directory, treating the unversioned file as the latest result and the most recent timestamped file as the previous result
|
|
17
|
-
- If "Previous Response" is available, use it only as supporting context; use report history as the source of truth for finding state transitions
|
|
18
|
-
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved / reopened`
|
|
19
|
-
- If status is `persists`, provide concrete unresolved evidence (file/line)
|
|
20
|
-
- Do not drop open findings from the prior report when producing the current report
|
|
21
|
-
|
|
22
|
-
## Judgment Procedure
|
|
8
|
+
## Step-Specific Additional Procedure
|
|
23
9
|
|
|
24
10
|
1. Read `order.md`, the task body, `plan.md`, and `coder-decisions.md`, then extract the requirements one by one
|
|
25
11
|
2. If a sentence contains multiple conditions or paths, split it into the smallest independently verifiable units
|
|
@@ -29,7 +15,3 @@ Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
|
29
15
|
- Do not mark a row `satisfied` without concrete code evidence
|
|
30
16
|
- Do not mark a row `satisfied` when only part of the cases is covered
|
|
31
17
|
5. List out-of-scope changes and judge whether they are justified or unnecessary
|
|
32
|
-
6. Reclassify prior findings into `new / persists / resolved / reopened`
|
|
33
|
-
7. When citing build, test, or functional verification as evidence, record the verified target, what was checked, and the observed result in the report
|
|
34
|
-
8. For each detected issue, classify it as blocking/non-blocking based on the Policy's scope table and judgment rules
|
|
35
|
-
9. If there is even one blocking issue in `new`, `persists`, or `reopened`, judge as REJECT
|
|
@@ -1,39 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
- Injection attacks (SQL, command, XSS)
|
|
3
|
-
- Authentication and authorization flaws
|
|
4
|
-
- Data exposure risks
|
|
5
|
-
- Cryptographic weaknesses
|
|
1
|
+
Focus on reviewing **security**.
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- Do not dismiss documented decisions as FP by default. Re-evaluate them against `order.md`, `plan.md`, and the actual code.
|
|
3
|
+
Procedure:
|
|
4
|
+
1. Open the Knowledge and Policy Source paths with the Read tool and obtain the full content
|
|
5
|
+
2. List every `##` section in each of them (do not cherry-pick)
|
|
6
|
+
3. Match the criteria in each listed section against the diff and detect any issues
|
|
12
7
|
|
|
13
|
-
|
|
14
|
-
- First, inspect the review result previously produced by this step and its timestamped history in the Report Directory, treating the unversioned file as the latest result and the most recent timestamped file as the previous result
|
|
15
|
-
- If "Previous Response" is available, use it only as supporting context; use report history as the source of truth for finding state transitions
|
|
16
|
-
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved / reopened`
|
|
17
|
-
- If status is `persists`, provide concrete unresolved evidence (file/line)
|
|
18
|
-
- Do not drop open findings from the prior report when producing the current report
|
|
8
|
+
## Step-Specific Notes
|
|
19
9
|
|
|
20
|
-
|
|
21
|
-
- Do not
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
1. Cross-check `order.md`, `plan.md`, `coder-decisions.md`, and the actual code to determine whether the behavior is intentional product behavior
|
|
28
|
-
2. Review the change diff and extract issue candidates by cross-checking changes against REJECT criteria in knowledge
|
|
29
|
-
3. For each candidate, verify the concrete exploit path
|
|
30
|
-
- Which actor controls the input or configuration
|
|
31
|
-
- Whether the change enables new privilege, data access, code execution, or prompt modification
|
|
32
|
-
- Whether the impact exceeds the existing documented precedence or extension model
|
|
33
|
-
4. When configuration precedence, local/global shadowing, or non-interactive selection is involved, additionally verify:
|
|
34
|
-
- Whether the behavior is intended by `order.md` or `plan.md`
|
|
35
|
-
- Whether explicit selectors or arguments already make the user's intent clear
|
|
36
|
-
- Whether there is an actual trust-boundary break or new attack capability, rather than merely an override relationship
|
|
37
|
-
5. When citing build, test, or functional verification as evidence, record the verified target, what was checked, and the observed result in the report
|
|
38
|
-
6. For each detected issue, classify it as blocking or non-blocking based on the Policy scope table and judgment rules
|
|
39
|
-
7. If there is even one blocking issue, judge as REJECT
|
|
10
|
+
- Do not treat documented precedence rules, extension points, or configuration override behavior as vulnerabilities by themselves
|
|
11
|
+
- Do not assume that removing an interactive confirmation or warning automatically means a security boundary regression
|
|
12
|
+
- To issue a blocking finding, make the exploit path concrete: which actor controls what input, and what newly becomes possible
|
|
13
|
+
- When configuration precedence, local/global shadowing, or non-interactive selection is involved, additionally verify:
|
|
14
|
+
- Whether the behavior is intended by `order.md` or `plan.md`
|
|
15
|
+
- Whether explicit selectors or arguments already make the user's intent clear
|
|
16
|
+
- Whether there is an actual trust-boundary break or new attack capability, rather than merely an override relationship
|
|
@@ -1,31 +1,7 @@
|
|
|
1
1
|
Focus on reviewing **Terraform convention compliance**.
|
|
2
2
|
Do not review AI-specific issues (already covered by the ai-antipattern-review-1st step).
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- Security configurations (IMDSv2, encryption, access control, IAM least privilege)
|
|
9
|
-
- Tag management (default_tags, no duplication)
|
|
10
|
-
- Lifecycle rule appropriateness
|
|
11
|
-
- Cost trade-off documentation
|
|
12
|
-
- Unused variables / outputs / data sources
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**Design decisions reference:**
|
|
16
|
-
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
17
|
-
- Do not flag intentionally documented decisions as FP
|
|
18
|
-
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
19
|
-
|
|
20
|
-
**Previous finding tracking (required):**
|
|
21
|
-
- First, extract open findings from "Previous Response"
|
|
22
|
-
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
|
23
|
-
- If status is `persists`, provide concrete unresolved evidence (file/line)
|
|
24
|
-
|
|
25
|
-
## Judgment Procedure
|
|
26
|
-
|
|
27
|
-
1. First, extract previous open findings and preliminarily classify as `new / persists / resolved`
|
|
28
|
-
2. Review the change diff and detect issues based on Terraform convention criteria
|
|
29
|
-
- Cross-check changes against REJECT criteria tables defined in knowledge
|
|
30
|
-
3. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
|
|
31
|
-
4. If there is even one blocking issue (`new` or `persists`), judge as REJECT
|
|
4
|
+
Procedure:
|
|
5
|
+
1. Open the Knowledge and Policy Source paths with the Read tool and obtain the full content
|
|
6
|
+
2. List every `##` section in each of them (do not cherry-pick)
|
|
7
|
+
3. Match the criteria in each listed section against the diff and detect any issues
|