takt 0.44.0 → 0.46.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 +1 -0
- package/builtins/en/config.yaml +9 -0
- package/builtins/en/facets/instructions/implement-maintenance.md +2 -0
- package/builtins/en/facets/instructions/implement.md +3 -2
- package/builtins/en/facets/instructions/review-arch.md +1 -1
- package/builtins/en/facets/instructions/review-coding.md +4 -3
- package/builtins/en/facets/instructions/review-cqrs-es.md +1 -1
- package/builtins/en/facets/instructions/review-pure.md +1 -0
- package/builtins/en/facets/instructions/review-qa.md +1 -0
- package/builtins/en/facets/instructions/review-terraform.md +1 -1
- package/builtins/en/facets/instructions/review-test.md +2 -0
- package/builtins/en/facets/instructions/supervise-maintenance.md +7 -5
- package/builtins/en/facets/instructions/supervise.md +11 -4
- package/builtins/en/facets/instructions/write-tests-maintenance.md +1 -0
- package/builtins/en/facets/knowledge/e2e-testing.md +11 -1
- package/builtins/en/facets/knowledge/unit-testing.md +11 -0
- package/builtins/en/facets/output-contracts/maintenance-scope.md +5 -0
- package/builtins/en/facets/output-contracts/pure-review.md +61 -0
- package/builtins/en/facets/output-contracts/qa-review.md +5 -0
- package/builtins/en/facets/output-contracts/supervisor-validation.md +1 -1
- package/builtins/en/facets/output-contracts/testing-review.md +6 -1
- package/builtins/en/facets/personas/ai-antipattern-reviewer.md +2 -2
- package/builtins/en/facets/personas/architecture-reviewer.md +1 -1
- package/builtins/en/facets/personas/pr-commenter.md +2 -2
- package/builtins/en/facets/personas/pure-reviewer.md +22 -0
- package/builtins/en/facets/personas/supervisor.md +1 -1
- package/builtins/en/facets/personas/terraform-reviewer.md +3 -3
- package/builtins/en/facets/policies/ai-antipattern.md +2 -0
- package/builtins/en/facets/policies/coding.md +36 -0
- package/builtins/en/facets/policies/review.md +26 -1
- package/builtins/en/facets/policies/testing.md +25 -0
- package/builtins/en/workflows/backend-cqrs.yaml +21 -0
- package/builtins/en/workflows/backend.yaml +21 -0
- package/builtins/en/workflows/default-high.yaml +1 -1
- package/builtins/en/workflows/default-peer-review.yaml +24 -3
- package/builtins/en/workflows/draft.yaml +4 -32
- package/builtins/en/workflows/dual-cqrs.yaml +21 -0
- package/builtins/en/workflows/dual.yaml +5 -5
- package/builtins/en/workflows/frontend-maintenance.yaml +21 -0
- package/builtins/en/workflows/frontend.yaml +21 -0
- package/builtins/en/workflows/peer-review.yaml +13 -70
- package/builtins/en/workflows/provider-options/edit.yaml +21 -0
- package/builtins/en/workflows/provider-options/review-files.yaml +10 -0
- package/builtins/en/workflows/provider-options/review-readonly.yaml +16 -0
- package/builtins/en/workflows/provider-options/review-web.yaml +14 -0
- package/builtins/en/workflows/review-backend-cqrs.yaml +21 -0
- package/builtins/en/workflows/review-backend.yaml +21 -0
- package/builtins/en/workflows/review-default.yaml +6 -6
- package/builtins/en/workflows/review-dual-cqrs.yaml +21 -0
- package/builtins/en/workflows/review-dual.yaml +21 -0
- package/builtins/en/workflows/review-fix-backend-cqrs.yaml +21 -0
- package/builtins/en/workflows/review-fix-backend.yaml +21 -0
- package/builtins/en/workflows/review-fix-default.yaml +6 -6
- package/builtins/en/workflows/review-fix-dual-cqrs.yaml +21 -0
- package/builtins/en/workflows/review-fix-dual.yaml +21 -0
- package/builtins/en/workflows/review-fix-frontend.yaml +21 -0
- package/builtins/en/workflows/review-fix-takt-default.yaml +5 -5
- package/builtins/en/workflows/review-frontend.yaml +21 -0
- package/builtins/en/workflows/review-takt-default.yaml +6 -6
- package/builtins/en/workflows/takt-default-refresh-all.yaml +6 -6
- package/builtins/en/workflows/takt-default-refresh-fast.yaml +5 -5
- package/builtins/en/workflows/takt-default.yaml +4 -27
- package/builtins/en/workflows/terraform.yaml +23 -2
- package/builtins/ja/config.yaml +9 -0
- package/builtins/ja/facets/instructions/implement-maintenance.md +2 -0
- package/builtins/ja/facets/instructions/implement.md +3 -2
- package/builtins/ja/facets/instructions/review-arch.md +1 -1
- package/builtins/ja/facets/instructions/review-coding.md +4 -3
- package/builtins/ja/facets/instructions/review-cqrs-es.md +1 -1
- package/builtins/ja/facets/instructions/review-pure.md +1 -0
- package/builtins/ja/facets/instructions/review-qa.md +1 -0
- package/builtins/ja/facets/instructions/review-terraform.md +1 -1
- package/builtins/ja/facets/instructions/review-test.md +2 -0
- package/builtins/ja/facets/instructions/supervise-maintenance.md +6 -4
- package/builtins/ja/facets/instructions/supervise.md +11 -4
- package/builtins/ja/facets/instructions/write-tests-maintenance.md +1 -0
- package/builtins/ja/facets/knowledge/e2e-testing.md +11 -1
- package/builtins/ja/facets/knowledge/unit-testing.md +11 -0
- package/builtins/ja/facets/output-contracts/maintenance-scope.md +5 -0
- package/builtins/ja/facets/output-contracts/pure-review.md +61 -0
- package/builtins/ja/facets/output-contracts/qa-review.md +5 -0
- package/builtins/ja/facets/output-contracts/supervisor-validation.md +1 -1
- package/builtins/ja/facets/output-contracts/testing-review.md +6 -1
- package/builtins/ja/facets/personas/ai-antipattern-reviewer.md +2 -2
- package/builtins/ja/facets/personas/architecture-reviewer.md +2 -2
- package/builtins/ja/facets/personas/pr-commenter.md +3 -3
- package/builtins/ja/facets/personas/pure-reviewer.md +22 -0
- package/builtins/ja/facets/personas/supervisor.md +1 -1
- package/builtins/ja/facets/personas/terraform-reviewer.md +3 -3
- package/builtins/ja/facets/policies/ai-antipattern.md +2 -0
- package/builtins/ja/facets/policies/coding.md +36 -0
- package/builtins/ja/facets/policies/review.md +26 -1
- package/builtins/ja/facets/policies/testing.md +25 -0
- package/builtins/ja/workflows/backend-cqrs.yaml +21 -0
- package/builtins/ja/workflows/backend.yaml +21 -0
- package/builtins/ja/workflows/default-high.yaml +1 -1
- package/builtins/ja/workflows/default-peer-review.yaml +24 -3
- package/builtins/ja/workflows/draft.yaml +4 -32
- package/builtins/ja/workflows/dual-cqrs.yaml +21 -0
- package/builtins/ja/workflows/dual.yaml +5 -5
- package/builtins/ja/workflows/frontend-maintenance.yaml +21 -0
- package/builtins/ja/workflows/frontend.yaml +21 -0
- package/builtins/ja/workflows/peer-review.yaml +13 -70
- package/builtins/ja/workflows/provider-options/edit.yaml +21 -0
- package/builtins/ja/workflows/provider-options/review-files.yaml +10 -0
- package/builtins/ja/workflows/provider-options/review-readonly.yaml +16 -0
- package/builtins/ja/workflows/provider-options/review-web.yaml +14 -0
- package/builtins/ja/workflows/review-backend-cqrs.yaml +21 -0
- package/builtins/ja/workflows/review-backend.yaml +21 -0
- package/builtins/ja/workflows/review-default.yaml +7 -7
- package/builtins/ja/workflows/review-dual-cqrs.yaml +21 -0
- package/builtins/ja/workflows/review-dual.yaml +21 -0
- package/builtins/ja/workflows/review-fix-backend-cqrs.yaml +21 -0
- package/builtins/ja/workflows/review-fix-backend.yaml +21 -0
- package/builtins/ja/workflows/review-fix-default.yaml +6 -6
- package/builtins/ja/workflows/review-fix-dual-cqrs.yaml +21 -0
- package/builtins/ja/workflows/review-fix-dual.yaml +21 -0
- package/builtins/ja/workflows/review-fix-frontend.yaml +21 -0
- package/builtins/ja/workflows/review-fix-takt-default.yaml +6 -6
- package/builtins/ja/workflows/review-frontend.yaml +21 -0
- package/builtins/ja/workflows/review-takt-default.yaml +7 -7
- package/builtins/ja/workflows/takt-default-refresh-all.yaml +6 -6
- package/builtins/ja/workflows/takt-default-refresh-fast.yaml +5 -5
- package/builtins/ja/workflows/takt-default.yaml +4 -27
- package/builtins/ja/workflows/terraform.yaml +22 -1
- package/dist/agents/decompose-task-usecase.d.ts +2 -1
- package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
- package/dist/agents/decompose-task-usecase.js +7 -5
- package/dist/agents/decompose-task-usecase.js.map +1 -1
- package/dist/agents/judge-status-usecase.d.ts +21 -8
- package/dist/agents/judge-status-usecase.d.ts.map +1 -1
- package/dist/agents/judge-status-usecase.js +30 -13
- package/dist/agents/judge-status-usecase.js.map +1 -1
- package/dist/agents/runner-prompt.d.ts +3 -1
- package/dist/agents/runner-prompt.d.ts.map +1 -1
- package/dist/agents/runner-prompt.js +11 -4
- package/dist/agents/runner-prompt.js.map +1 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +23 -5
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts +1 -1
- package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts.map +1 -1
- package/dist/agents/structured-caller/capability-aware-structured-caller.js +3 -3
- package/dist/agents/structured-caller/capability-aware-structured-caller.js.map +1 -1
- package/dist/agents/structured-caller/contracts.d.ts +1 -1
- package/dist/agents/structured-caller/contracts.d.ts.map +1 -1
- package/dist/agents/structured-caller/default-structured-caller.d.ts +1 -1
- package/dist/agents/structured-caller/default-structured-caller.d.ts.map +1 -1
- package/dist/agents/structured-caller/default-structured-caller.js +2 -2
- package/dist/agents/structured-caller/default-structured-caller.js.map +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.js +16 -17
- package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
- package/dist/agents/team-leader-structured-output.d.ts +3 -3
- package/dist/agents/team-leader-structured-output.d.ts.map +1 -1
- package/dist/agents/team-leader-structured-output.js +14 -10
- package/dist/agents/team-leader-structured-output.js.map +1 -1
- package/dist/agents/types.d.ts +1 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/commands/analyze-usage.d.ts +26 -0
- package/dist/commands/analyze-usage.d.ts.map +1 -0
- package/dist/commands/analyze-usage.js +305 -0
- package/dist/commands/analyze-usage.js.map +1 -0
- package/dist/core/logging/contracts.d.ts +1 -0
- package/dist/core/logging/contracts.d.ts.map +1 -1
- package/dist/core/logging/contracts.js +1 -0
- package/dist/core/logging/contracts.js.map +1 -1
- package/dist/core/logging/phaseUsageEvent.d.ts +40 -0
- package/dist/core/logging/phaseUsageEvent.d.ts.map +1 -0
- package/dist/core/logging/phaseUsageEvent.js +195 -0
- package/dist/core/logging/phaseUsageEvent.js.map +1 -0
- package/dist/core/logging/providerEvent.d.ts +4 -0
- package/dist/core/logging/providerEvent.d.ts.map +1 -1
- package/dist/core/logging/providerEvent.js +31 -27
- package/dist/core/logging/providerEvent.js.map +1 -1
- package/dist/core/models/config-schemas.d.ts +16 -0
- package/dist/core/models/config-schemas.d.ts.map +1 -1
- package/dist/core/models/part.d.ts +2 -1
- package/dist/core/models/part.d.ts.map +1 -1
- package/dist/core/models/schema-base.d.ts +66 -0
- package/dist/core/models/schema-base.d.ts.map +1 -1
- package/dist/core/models/schema-base.js +7 -2
- package/dist/core/models/schema-base.js.map +1 -1
- package/dist/core/models/workflow-provider-options.d.ts +5 -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 +165 -21
- package/dist/core/models/workflow-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-schemas.js +62 -18
- package/dist/core/models/workflow-schemas.js.map +1 -1
- package/dist/core/models/workflow-types.d.ts +1 -1
- 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 +2 -0
- package/dist/core/workflow/engine/ArpeggioRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/ArpeggioRunner.js +10 -0
- package/dist/core/workflow/engine/ArpeggioRunner.js.map +1 -1
- package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
- package/dist/core/workflow/engine/OptionsBuilder.js +2 -0
- package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
- package/dist/core/workflow/engine/ParallelRunner.d.ts +1 -0
- package/dist/core/workflow/engine/ParallelRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/ParallelRunner.js +4 -0
- package/dist/core/workflow/engine/ParallelRunner.js.map +1 -1
- package/dist/core/workflow/engine/StepExecutor.d.ts.map +1 -1
- package/dist/core/workflow/engine/StepExecutor.js +2 -0
- package/dist/core/workflow/engine/StepExecutor.js.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.js +9 -4
- package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngineSetup.js +2 -0
- package/dist/core/workflow/engine/WorkflowEngineSetup.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowRunLoop.d.ts +1 -0
- package/dist/core/workflow/engine/WorkflowRunLoop.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowRunLoop.js +3 -0
- package/dist/core/workflow/engine/WorkflowRunLoop.js.map +1 -1
- package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
- package/dist/core/workflow/engine/engine-provider-options.js +3 -3
- package/dist/core/workflow/engine/engine-provider-options.js.map +1 -1
- package/dist/core/workflow/engine/parallel-logger.d.ts +1 -1
- package/dist/core/workflow/engine/parallel-logger.d.ts.map +1 -1
- package/dist/core/workflow/engine/parallel-logger.js +3 -1
- package/dist/core/workflow/engine/parallel-logger.js.map +1 -1
- package/dist/core/workflow/engine/task-decomposer.d.ts +1 -1
- package/dist/core/workflow/engine/task-decomposer.d.ts.map +1 -1
- package/dist/core/workflow/engine/task-decomposer.js +3 -3
- package/dist/core/workflow/engine/task-decomposer.js.map +1 -1
- package/dist/core/workflow/engine/team-leader-budget-errors.d.ts +2 -0
- package/dist/core/workflow/engine/team-leader-budget-errors.d.ts.map +1 -0
- package/dist/core/workflow/engine/team-leader-budget-errors.js +12 -0
- package/dist/core/workflow/engine/team-leader-budget-errors.js.map +1 -0
- package/dist/core/workflow/engine/team-leader-execution.d.ts.map +1 -1
- package/dist/core/workflow/engine/team-leader-execution.js +16 -2
- package/dist/core/workflow/engine/team-leader-execution.js.map +1 -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 +1 -0
- package/dist/core/workflow/engine/team-leader-part-runner.js.map +1 -1
- package/dist/core/workflow/evaluation/RuleEvaluator.d.ts +2 -0
- package/dist/core/workflow/evaluation/RuleEvaluator.d.ts.map +1 -1
- package/dist/core/workflow/evaluation/RuleEvaluator.js +1 -0
- package/dist/core/workflow/evaluation/RuleEvaluator.js.map +1 -1
- package/dist/core/workflow/observability/workflowSpans.d.ts +3 -0
- package/dist/core/workflow/observability/workflowSpans.d.ts.map +1 -1
- package/dist/core/workflow/observability/workflowSpans.js +61 -10
- package/dist/core/workflow/observability/workflowSpans.js.map +1 -1
- package/dist/core/workflow/phase-runner.d.ts +2 -0
- 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 +2 -0
- package/dist/core/workflow/promotion/PromotionEvaluator.d.ts.map +1 -1
- package/dist/core/workflow/promotion/PromotionEvaluator.js +1 -0
- package/dist/core/workflow/promotion/PromotionEvaluator.js.map +1 -1
- package/dist/core/workflow/promotion/promotion-runtime.d.ts +2 -0
- package/dist/core/workflow/promotion/promotion-runtime.d.ts.map +1 -1
- package/dist/core/workflow/promotion/promotion-runtime.js +1 -0
- package/dist/core/workflow/promotion/promotion-runtime.js.map +1 -1
- package/dist/core/workflow/quality-gates/commandGateRunner.d.ts +1 -1
- package/dist/core/workflow/quality-gates/commandGateRunner.d.ts.map +1 -1
- package/dist/core/workflow/quality-gates/commandGateRunner.js +11 -6
- package/dist/core/workflow/quality-gates/commandGateRunner.js.map +1 -1
- package/dist/core/workflow/quality-gates/qualityGateRunner.d.ts +1 -1
- package/dist/core/workflow/quality-gates/qualityGateRunner.d.ts.map +1 -1
- package/dist/core/workflow/quality-gates/qualityGateRunner.js +2 -2
- package/dist/core/workflow/quality-gates/qualityGateRunner.js.map +1 -1
- package/dist/core/workflow/quality-gates/types.d.ts +2 -0
- package/dist/core/workflow/quality-gates/types.d.ts.map +1 -1
- package/dist/core/workflow/report-phase-runner.js +1 -0
- 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 +2 -0
- package/dist/core/workflow/status-judgment-phase.js.map +1 -1
- package/dist/core/workflow/types.d.ts +4 -0
- package/dist/core/workflow/types.d.ts.map +1 -1
- package/dist/features/interactive/aiCaller.d.ts +6 -1
- package/dist/features/interactive/aiCaller.d.ts.map +1 -1
- package/dist/features/interactive/aiCaller.js +14 -5
- package/dist/features/interactive/aiCaller.js.map +1 -1
- package/dist/features/interactive/clipboardImage.d.ts +3 -0
- package/dist/features/interactive/clipboardImage.d.ts.map +1 -0
- package/dist/features/interactive/clipboardImage.js +91 -0
- package/dist/features/interactive/clipboardImage.js.map +1 -0
- package/dist/features/interactive/clipboardImageFeedback.d.ts +2 -0
- package/dist/features/interactive/clipboardImageFeedback.d.ts.map +1 -0
- package/dist/features/interactive/clipboardImageFeedback.js +6 -0
- package/dist/features/interactive/clipboardImageFeedback.js.map +1 -0
- package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
- package/dist/features/interactive/conversationLoop.js +8 -3
- package/dist/features/interactive/conversationLoop.js.map +1 -1
- package/dist/features/interactive/imageAttachments.d.ts +3 -0
- package/dist/features/interactive/imageAttachments.d.ts.map +1 -1
- package/dist/features/interactive/imageAttachments.js +18 -0
- package/dist/features/interactive/imageAttachments.js.map +1 -1
- package/dist/features/interactive/interactive.d.ts +1 -0
- package/dist/features/interactive/interactive.d.ts.map +1 -1
- package/dist/features/interactive/interactive.js.map +1 -1
- package/dist/features/interactive/interactiveInput.d.ts.map +1 -1
- package/dist/features/interactive/interactiveInput.js +4 -1
- package/dist/features/interactive/interactiveInput.js.map +1 -1
- package/dist/features/interactive/lineEditor.d.ts +18 -14
- package/dist/features/interactive/lineEditor.d.ts.map +1 -1
- package/dist/features/interactive/lineEditor.js +174 -80
- package/dist/features/interactive/lineEditor.js.map +1 -1
- package/dist/features/interactive/passthroughMode.d.ts.map +1 -1
- package/dist/features/interactive/passthroughMode.js +4 -1
- package/dist/features/interactive/passthroughMode.js.map +1 -1
- package/dist/features/interactive/quietMode.d.ts.map +1 -1
- package/dist/features/interactive/quietMode.js +5 -2
- package/dist/features/interactive/quietMode.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/attachments.d.ts.map +1 -1
- package/dist/features/tasks/attachments.js +18 -1
- package/dist/features/tasks/attachments.js.map +1 -1
- package/dist/features/tasks/execute/runAllTasks.js +3 -3
- package/dist/features/tasks/execute/runAllTasks.js.map +1 -1
- package/dist/features/tasks/execute/selectAndExecute.d.ts.map +1 -1
- package/dist/features/tasks/execute/selectAndExecute.js +1 -2
- package/dist/features/tasks/execute/selectAndExecute.js.map +1 -1
- package/dist/features/tasks/execute/taskSpecContext.d.ts +1 -0
- package/dist/features/tasks/execute/taskSpecContext.d.ts.map +1 -1
- package/dist/features/tasks/execute/taskSpecContext.js +25 -1
- package/dist/features/tasks/execute/taskSpecContext.js.map +1 -1
- package/dist/features/tasks/execute/workflowExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecution.js +30 -0
- package/dist/features/tasks/execute/workflowExecution.js.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.js +13 -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 +6 -0
- package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
- package/dist/features/tasks/watch/index.js +3 -3
- package/dist/features/tasks/watch/index.js.map +1 -1
- package/dist/infra/claude/client.d.ts.map +1 -1
- package/dist/infra/claude/client.js +2 -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 +5 -35
- package/dist/infra/claude/executor.js.map +1 -1
- package/dist/infra/claude/image-input.d.ts +4 -0
- package/dist/infra/claude/image-input.d.ts.map +1 -0
- package/dist/infra/claude/image-input.js +63 -0
- package/dist/infra/claude/image-input.js.map +1 -0
- package/dist/infra/claude/options-builder.d.ts.map +1 -1
- package/dist/infra/claude/options-builder.js +2 -3
- package/dist/infra/claude/options-builder.js.map +1 -1
- package/dist/infra/claude/types.d.ts +5 -0
- package/dist/infra/claude/types.d.ts.map +1 -1
- package/dist/infra/claude/usage.d.ts +3 -0
- package/dist/infra/claude/usage.d.ts.map +1 -0
- package/dist/infra/claude/usage.js +45 -0
- package/dist/infra/claude/usage.js.map +1 -0
- package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -1
- package/dist/infra/claude-headless/headless-spawn.js +2 -1
- 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 +1 -0
- package/dist/infra/claude-headless/result-response.js.map +1 -1
- package/dist/infra/claude-headless/stream-json-lines.d.ts +2 -0
- package/dist/infra/claude-headless/stream-json-lines.d.ts.map +1 -1
- package/dist/infra/claude-headless/stream-json-lines.js +4 -0
- package/dist/infra/claude-headless/stream-json-lines.js.map +1 -1
- package/dist/infra/claude-headless/types.d.ts +1 -0
- package/dist/infra/claude-headless/types.d.ts.map +1 -1
- package/dist/infra/claude-terminal/client.d.ts.map +1 -1
- package/dist/infra/claude-terminal/client.js +1 -0
- package/dist/infra/claude-terminal/client.js.map +1 -1
- package/dist/infra/claude-terminal/response-normalizer.js.map +1 -1
- package/dist/infra/claude-terminal/tmux-backend.d.ts.map +1 -1
- package/dist/infra/claude-terminal/tmux-backend.js +15 -1
- package/dist/infra/claude-terminal/tmux-backend.js.map +1 -1
- package/dist/infra/claude-terminal/types.d.ts +2 -0
- package/dist/infra/claude-terminal/types.d.ts.map +1 -1
- package/dist/infra/codex/client.d.ts.map +1 -1
- package/dist/infra/codex/client.js +14 -2
- package/dist/infra/codex/client.js.map +1 -1
- package/dist/infra/codex/types.d.ts +3 -0
- package/dist/infra/codex/types.d.ts.map +1 -1
- package/dist/infra/codex/types.js.map +1 -1
- package/dist/infra/config/configNormalizers.d.ts.map +1 -1
- package/dist/infra/config/configNormalizers.js +9 -1
- package/dist/infra/config/configNormalizers.js.map +1 -1
- package/dist/infra/config/loaders/workflowDiscovery.js +1 -1
- package/dist/infra/config/loaders/workflowDiscovery.js.map +1 -1
- package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js +1 -1
- package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js.map +1 -1
- package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowParser.js +1 -1
- package/dist/infra/config/loaders/workflowParser.js.map +1 -1
- package/dist/infra/config/loaders/workflowProviderOptionsResolver.d.ts +7 -0
- package/dist/infra/config/loaders/workflowProviderOptionsResolver.d.ts.map +1 -0
- package/dist/infra/config/loaders/workflowProviderOptionsResolver.js +68 -0
- package/dist/infra/config/loaders/workflowProviderOptionsResolver.js.map +1 -0
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js +5 -3
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js.map +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.d.ts +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.js +41 -10
- package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
- package/dist/infra/config/providerOptions.d.ts +6 -1
- package/dist/infra/config/providerOptions.d.ts.map +1 -1
- package/dist/infra/config/providerOptions.js +31 -3
- 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 +8 -0
- package/dist/infra/config/providerOptionsContract.js.map +1 -1
- package/dist/infra/copilot/client.d.ts.map +1 -1
- package/dist/infra/copilot/client.js +7 -8
- package/dist/infra/copilot/client.js.map +1 -1
- package/dist/infra/copilot/types.d.ts +1 -0
- package/dist/infra/copilot/types.d.ts.map +1 -1
- package/dist/infra/cursor/client.d.ts.map +1 -1
- package/dist/infra/cursor/client.js +7 -8
- package/dist/infra/cursor/client.js.map +1 -1
- package/dist/infra/cursor/types.d.ts +1 -0
- package/dist/infra/cursor/types.d.ts.map +1 -1
- package/dist/infra/fs/index.d.ts +1 -0
- package/dist/infra/fs/index.d.ts.map +1 -1
- package/dist/infra/fs/index.js +1 -0
- package/dist/infra/fs/index.js.map +1 -1
- package/dist/infra/fs/jsonl.d.ts +2 -0
- package/dist/infra/fs/jsonl.d.ts.map +1 -0
- package/dist/infra/fs/jsonl.js +5 -0
- package/dist/infra/fs/jsonl.js.map +1 -0
- package/dist/infra/kiro/client.d.ts.map +1 -1
- package/dist/infra/kiro/client.js +10 -0
- package/dist/infra/kiro/client.js.map +1 -1
- package/dist/infra/kiro/process.d.ts.map +1 -1
- package/dist/infra/kiro/process.js +4 -2
- package/dist/infra/kiro/process.js.map +1 -1
- package/dist/infra/kiro/types.d.ts +2 -0
- package/dist/infra/kiro/types.d.ts.map +1 -1
- package/dist/infra/observability/otelFoundation.d.ts +2 -0
- package/dist/infra/observability/otelFoundation.d.ts.map +1 -1
- package/dist/infra/observability/otelFoundation.js +138 -25
- package/dist/infra/observability/otelFoundation.js.map +1 -1
- package/dist/infra/observability/usageEventsSpanProcessor.d.ts +19 -0
- package/dist/infra/observability/usageEventsSpanProcessor.d.ts.map +1 -0
- package/dist/infra/observability/usageEventsSpanProcessor.js +77 -0
- package/dist/infra/observability/usageEventsSpanProcessor.js.map +1 -0
- package/dist/infra/opencode/OpenCodeStreamHandler.d.ts +19 -0
- package/dist/infra/opencode/OpenCodeStreamHandler.d.ts.map +1 -1
- package/dist/infra/opencode/OpenCodeStreamHandler.js +10 -0
- package/dist/infra/opencode/OpenCodeStreamHandler.js.map +1 -1
- package/dist/infra/opencode/allowedTools.d.ts +2 -0
- package/dist/infra/opencode/allowedTools.d.ts.map +1 -0
- package/dist/infra/opencode/allowedTools.js +10 -0
- package/dist/infra/opencode/allowedTools.js.map +1 -0
- package/dist/infra/opencode/client.d.ts +4 -2
- package/dist/infra/opencode/client.d.ts.map +1 -1
- package/dist/infra/opencode/client.js +283 -124
- package/dist/infra/opencode/client.js.map +1 -1
- package/dist/infra/opencode/index.d.ts +1 -1
- package/dist/infra/opencode/index.d.ts.map +1 -1
- package/dist/infra/opencode/index.js +1 -1
- package/dist/infra/opencode/index.js.map +1 -1
- package/dist/infra/opencode/types.d.ts +12 -10
- package/dist/infra/opencode/types.d.ts.map +1 -1
- package/dist/infra/opencode/types.js +109 -40
- package/dist/infra/opencode/types.js.map +1 -1
- package/dist/infra/providers/allowed-tool-edit-policy.d.ts +3 -0
- package/dist/infra/providers/allowed-tool-edit-policy.d.ts.map +1 -0
- package/dist/infra/providers/allowed-tool-edit-policy.js +10 -0
- package/dist/infra/providers/allowed-tool-edit-policy.js.map +1 -0
- package/dist/infra/providers/claude-headless.d.ts +3 -0
- package/dist/infra/providers/claude-headless.d.ts.map +1 -1
- package/dist/infra/providers/claude-headless.js +9 -0
- package/dist/infra/providers/claude-headless.js.map +1 -1
- package/dist/infra/providers/claude-terminal.d.ts +3 -0
- package/dist/infra/providers/claude-terminal.d.ts.map +1 -1
- package/dist/infra/providers/claude-terminal.js +9 -0
- package/dist/infra/providers/claude-terminal.js.map +1 -1
- package/dist/infra/providers/claude.d.ts +3 -0
- package/dist/infra/providers/claude.d.ts.map +1 -1
- package/dist/infra/providers/claude.js +10 -0
- package/dist/infra/providers/claude.js.map +1 -1
- package/dist/infra/providers/codex.d.ts +3 -0
- package/dist/infra/providers/codex.d.ts.map +1 -1
- package/dist/infra/providers/codex.js +9 -0
- package/dist/infra/providers/codex.js.map +1 -1
- package/dist/infra/providers/copilot.d.ts +3 -0
- package/dist/infra/providers/copilot.d.ts.map +1 -1
- package/dist/infra/providers/copilot.js +8 -0
- package/dist/infra/providers/copilot.js.map +1 -1
- package/dist/infra/providers/cursor.d.ts +3 -0
- package/dist/infra/providers/cursor.d.ts.map +1 -1
- package/dist/infra/providers/cursor.js +8 -0
- package/dist/infra/providers/cursor.js.map +1 -1
- package/dist/infra/providers/imageAttachmentPrompt.d.ts +4 -0
- package/dist/infra/providers/imageAttachmentPrompt.d.ts.map +1 -0
- package/dist/infra/providers/imageAttachmentPrompt.js +10 -0
- package/dist/infra/providers/imageAttachmentPrompt.js.map +1 -0
- package/dist/infra/providers/kiro.d.ts +3 -0
- package/dist/infra/providers/kiro.d.ts.map +1 -1
- package/dist/infra/providers/kiro.js +12 -0
- package/dist/infra/providers/kiro.js.map +1 -1
- package/dist/infra/providers/mock.d.ts +3 -0
- package/dist/infra/providers/mock.d.ts.map +1 -1
- package/dist/infra/providers/mock.js +8 -0
- package/dist/infra/providers/mock.js.map +1 -1
- package/dist/infra/providers/opencode.d.ts +4 -1
- package/dist/infra/providers/opencode.d.ts.map +1 -1
- package/dist/infra/providers/opencode.js +17 -3
- package/dist/infra/providers/opencode.js.map +1 -1
- package/dist/infra/providers/provider-capabilities.d.ts +3 -0
- package/dist/infra/providers/provider-capabilities.d.ts.map +1 -1
- package/dist/infra/providers/provider-capabilities.js +19 -1
- package/dist/infra/providers/provider-capabilities.js.map +1 -1
- package/dist/infra/providers/runtimeSystemPrompt.d.ts +2 -0
- package/dist/infra/providers/runtimeSystemPrompt.d.ts.map +1 -0
- package/dist/infra/providers/runtimeSystemPrompt.js +11 -0
- package/dist/infra/providers/runtimeSystemPrompt.js.map +1 -0
- package/dist/infra/providers/types.d.ts +9 -0
- package/dist/infra/providers/types.d.ts.map +1 -1
- package/dist/infra/rate-limit/detection.d.ts +1 -1
- package/dist/infra/rate-limit/detection.d.ts.map +1 -1
- package/dist/infra/rate-limit/detection.js +6 -7
- package/dist/infra/rate-limit/detection.js.map +1 -1
- package/dist/infra/resources/schema-loader.d.ts +1 -1
- package/dist/infra/resources/schema-loader.d.ts.map +1 -1
- package/dist/infra/resources/schema-loader.js +8 -4
- package/dist/infra/resources/schema-loader.js.map +1 -1
- package/dist/infra/service/runSyncConflictResolver.d.ts.map +1 -1
- package/dist/infra/service/runSyncConflictResolver.js +3 -1
- package/dist/infra/service/runSyncConflictResolver.js.map +1 -1
- package/dist/infra/task/clone-exec.d.ts +2 -0
- package/dist/infra/task/clone-exec.d.ts.map +1 -1
- package/dist/infra/task/clone-exec.js +29 -0
- package/dist/infra/task/clone-exec.js.map +1 -1
- package/dist/infra/task/clone.d.ts.map +1 -1
- package/dist/infra/task/clone.js +3 -1
- package/dist/infra/task/clone.js.map +1 -1
- package/dist/infra/task/runner.d.ts +1 -1
- package/dist/infra/task/runner.d.ts.map +1 -1
- package/dist/infra/task/runner.js +2 -2
- package/dist/infra/task/runner.js.map +1 -1
- package/dist/infra/task/summarize.d.ts.map +1 -1
- package/dist/infra/task/summarize.js +3 -1
- package/dist/infra/task/summarize.js.map +1 -1
- package/dist/infra/task/taskLifecycleService.d.ts +1 -2
- package/dist/infra/task/taskLifecycleService.d.ts.map +1 -1
- package/dist/infra/task/taskLifecycleService.js +13 -19
- package/dist/infra/task/taskLifecycleService.js.map +1 -1
- package/dist/infra/task/taskRecordMutations.d.ts +0 -1
- package/dist/infra/task/taskRecordMutations.d.ts.map +1 -1
- package/dist/infra/task/taskRecordMutations.js +0 -12
- package/dist/infra/task/taskRecordMutations.js.map +1 -1
- package/dist/shared/constants.d.ts +3 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +3 -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_agent_system_prompt.md +9 -1
- package/dist/shared/prompts/en/provider_runtime_system_prompt.md +18 -0
- package/dist/shared/prompts/index.d.ts +1 -1
- package/dist/shared/prompts/index.d.ts.map +1 -1
- package/dist/shared/prompts/index.js +7 -1
- package/dist/shared/prompts/index.js.map +1 -1
- package/dist/shared/prompts/ja/perform_agent_system_prompt.md +9 -1
- package/dist/shared/prompts/ja/provider_runtime_system_prompt.md +18 -0
- package/dist/shared/telemetry/childProcessEnv.d.ts +7 -0
- package/dist/shared/telemetry/childProcessEnv.d.ts.map +1 -0
- package/dist/shared/telemetry/childProcessEnv.js +176 -0
- package/dist/shared/telemetry/childProcessEnv.js.map +1 -0
- package/dist/shared/telemetry/index.d.ts +3 -0
- package/dist/shared/telemetry/index.d.ts.map +1 -0
- package/dist/shared/telemetry/index.js +3 -0
- package/dist/shared/telemetry/index.js.map +1 -0
- package/dist/shared/telemetry/otlp.d.ts +40 -0
- package/dist/shared/telemetry/otlp.d.ts.map +1 -0
- package/dist/shared/telemetry/otlp.js +72 -0
- package/dist/shared/telemetry/otlp.js.map +1 -0
- package/dist/shared/types/provider.d.ts +28 -1
- package/dist/shared/types/provider.d.ts.map +1 -1
- package/dist/shared/types/provider.js +15 -1
- package/dist/shared/types/provider.js.map +1 -1
- package/dist/shared/ui/StreamDisplay.d.ts.map +1 -1
- package/dist/shared/ui/StreamDisplay.js +1 -0
- package/dist/shared/ui/StreamDisplay.js.map +1 -1
- package/package.json +8 -4
- package/builtins/en/facets/instructions/review-requirements.md +0 -17
- package/builtins/en/facets/output-contracts/requirements-review.md +0 -56
- package/builtins/en/facets/personas/requirements-reviewer.md +0 -33
- package/builtins/ja/facets/instructions/review-requirements.md +0 -17
- package/builtins/ja/facets/output-contracts/requirements-review.md +0 -56
- package/builtins/ja/facets/personas/requirements-reviewer.md +0 -33
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
2. 各要件について、実装されたコード(ファイル:行)を特定する
|
|
16
16
|
3. コードが要件を満たしていることを実際に確認する(ファイルを読む、実行済みテストやビルドの証跡を確認する)
|
|
17
17
|
- 片側のケースだけを確認して複合要件全体を ✅ にしてはいけない
|
|
18
|
-
- 計画レポートや
|
|
18
|
+
- 計画レポートや pure-review の判断を鵜呑みにせず、マージ可否を独立検証する
|
|
19
|
+
- 副作用や状態変更を伴う要件は、正常系・失敗系・後片付けの確認範囲を分けて扱う
|
|
19
20
|
- 充足していない要件が 1 つでもあれば REJECT する
|
|
20
21
|
4. 前段レビューの finding を再評価する
|
|
21
22
|
- finding がコード上成立しない場合は false positive として記録する
|
|
@@ -26,8 +27,9 @@
|
|
|
26
27
|
|
|
27
28
|
- 要約レポートは一次証跡としては扱わない。一次証跡は、実行結果を記録したレポート、具体的な確認内容を記したレビューレポート、実コードの順で確認する
|
|
28
29
|
- 実行結果を記したレポート内の `ビルド結果` / `テスト結果` は一次証跡として扱ってよい
|
|
29
|
-
- `architecture-review` / `qa-review` / `testing-review` / `security-review` / `
|
|
30
|
+
- `architecture-review` / `qa-review` / `testing-review` / `security-review` / `pure-review` では、各レポートの `検証証跡` セクションを優先して確認する
|
|
30
31
|
- `検証証跡` の各項目は、確認対象・確認内容・結果が揃っている場合のみ補助証跡として扱う。いずれかが欠ける場合は、その項目を `未確認` として扱う
|
|
32
|
+
- モック、静的確認、限定的な単体テストで代替した証跡は、その範囲を超える動作確認として扱わない
|
|
31
33
|
- 証跡同士が矛盾する場合は、`実行結果を記したレポート > 具体的な確認内容を持つレビューレポート > 要約レポート` の優先順位で判断する
|
|
32
34
|
|
|
33
35
|
**Validation出力契約:**
|
|
@@ -48,7 +50,7 @@
|
|
|
48
50
|
- ❌ が1件でもある場合は REJECT 必須
|
|
49
51
|
- 根拠なしの ✅ は無効(実コードで確認すること)
|
|
50
52
|
- 一部ケースしか確認できていない場合は ✅ にしない
|
|
51
|
-
-
|
|
53
|
+
- 計画レポートの判断を鵜呑みにせず、マージ可否を独立検証する
|
|
52
54
|
|
|
53
55
|
## 前段 finding の再評価
|
|
54
56
|
|
|
@@ -58,7 +60,7 @@
|
|
|
58
60
|
|
|
59
61
|
- 前段レビューの結論と最終判定が異なる場合は、必ず根拠を書く
|
|
60
62
|
- false_positive / overreach を判定した場合は、task と plan のどちらに照らして不適切か明記する
|
|
61
|
-
-
|
|
63
|
+
- pure-review の結論を覆す場合は、その理由を必ず根拠付きで明記する
|
|
62
64
|
|
|
63
65
|
## 検証サマリー
|
|
64
66
|
| 項目 | 状態 | 確認方法 |
|
|
@@ -67,6 +69,11 @@
|
|
|
67
69
|
| ビルド | ✅ / ⚠️ / ❌ | {実行ログ・レポート・CI等の証跡} |
|
|
68
70
|
| 動作確認 | ✅ / ⚠️ / ❌ | {確認した証跡。未確認ならその旨} |
|
|
69
71
|
|
|
72
|
+
## 未確認範囲
|
|
73
|
+
| 項目 | 影響 | 扱い |
|
|
74
|
+
|------|------|------|
|
|
75
|
+
| {未確認の範囲。なければ「なし」} | {主要要件か補助要件か} | APPROVE可 / REJECT理由 |
|
|
76
|
+
|
|
70
77
|
## 成果物
|
|
71
78
|
- 作成: {作成したファイル}
|
|
72
79
|
- 変更: {変更したファイル}
|
|
@@ -20,6 +20,7 @@ Workflow Contextに示されたReport Directory内のファイルのみ参照し
|
|
|
20
20
|
- 1テスト1概念。複数の関心事を1テストに混ぜない
|
|
21
21
|
- 正常系・異常系・境界値・エッジケースを網羅する
|
|
22
22
|
- 既存期待値を実装都合に合わせて緩和しない
|
|
23
|
+
- 仕様変更で旧設計が新設計に置き換わる場合、旧仕様の不在だけを固定するテストは作らず、新仕様をその責務を持つ層で肯定的に検証する
|
|
23
24
|
- 外部契約がある場合は、契約どおりの入力位置を使ったテストを含める
|
|
24
25
|
- 例: request body は定義された root shape のまま渡す
|
|
25
26
|
- 例: query / path parameter は body に流用せず、本来の位置から渡す
|
|
@@ -17,6 +17,17 @@ E2Eテストはユーザーの操作フロー全体を検証する。ユニッ
|
|
|
17
17
|
| 複数コマンド/ページにまたがるシナリオ | E2Eテストが適切 |
|
|
18
18
|
| エラーメッセージの表示確認 | E2Eテストが適切 |
|
|
19
19
|
|
|
20
|
+
## 振る舞い観測
|
|
21
|
+
|
|
22
|
+
E2Eテストはユーザーから見える振る舞いを観測する。設定値、ログ、スナップショットの確認だけでは、実際の拒否、許可、隔離、回復が起きたことを保証しない。
|
|
23
|
+
|
|
24
|
+
| 基準 | 判定 |
|
|
25
|
+
|------|------|
|
|
26
|
+
| ユーザー操作や外部入力に対する結果が観測されている | OK |
|
|
27
|
+
| 拒否・エラー・リカバリーの経路で期待する結果が確認されている | OK |
|
|
28
|
+
| 設定や内部状態だけを確認してユーザー-visible な結果を見ていない | REJECT |
|
|
29
|
+
| 実外部環境に依存する確認しかなく、主要境界の deterministic test がない | 警告またはREJECT |
|
|
30
|
+
|
|
20
31
|
## UXルートの洗い出し
|
|
21
32
|
|
|
22
33
|
E2Eテストの網羅性はユーザー操作ルートの洗い出しに依存する。ドキュメントではなくコードから起点を特定する。
|
|
@@ -86,4 +97,3 @@ E2Eテストの網羅性を保証するため、テストケースをリスト
|
|
|
86
97
|
| 起点ごとに分類 | コマンド/ページ/エンドポイント単位でグループ化する |
|
|
87
98
|
| 優先度付け | ユーザー影響度 × 未テストのリスクで優先度を決定する |
|
|
88
99
|
| 既存テストとの突き合わせ | 新規追加前に既存テストのカバー範囲を確認する |
|
|
89
|
-
|
|
@@ -54,6 +54,17 @@ test('validates age at boundaries', () => {
|
|
|
54
54
|
})
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
+
## 振る舞い保証
|
|
58
|
+
|
|
59
|
+
ユニットテストは設定値や内部状態のスナップショットだけでなく、公開された契約が期待どおりに振る舞うことを検証する。拒否、許可、隔離、解放のような境界変更は、主要な成功/失敗ケースを deterministic に確認する。
|
|
60
|
+
|
|
61
|
+
| 基準 | 判定 |
|
|
62
|
+
|------|------|
|
|
63
|
+
| 期待する戻り値・例外・副作用が直接検証されている | OK |
|
|
64
|
+
| 境界変更の成功/失敗、許可/拒否の両側が検証されている | OK |
|
|
65
|
+
| 設定値や最後の内部状態だけを確認している | REJECT |
|
|
66
|
+
| 外部環境がないと主要な境界条件を再現できない | Fake や Stub による deterministic test を検討 |
|
|
67
|
+
|
|
57
68
|
## テストフィクスチャ設計
|
|
58
69
|
|
|
59
70
|
テストデータはファクトリ関数で管理する。
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
|------|------|----------|
|
|
20
20
|
| {契約種別} | {対象} | {守る内容} |
|
|
21
21
|
|
|
22
|
+
## 置換された旧仕様
|
|
23
|
+
| 旧仕様 | 新仕様 | 削除対象 | テスト方針 |
|
|
24
|
+
|--------|--------|----------|------------|
|
|
25
|
+
| {旧仕様} | {新仕様} | {削除する実装/テスト} | {新仕様を検証する場所} |
|
|
26
|
+
|
|
22
27
|
## 不要変更の確認
|
|
23
28
|
| 確認対象 | 結果 | 備考 |
|
|
24
29
|
|----------|------|------|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
```markdown
|
|
2
|
+
# Pure Review
|
|
3
|
+
|
|
4
|
+
## 結果: APPROVE / REJECT
|
|
5
|
+
|
|
6
|
+
## サマリー
|
|
7
|
+
{この修正がマージ可能な品質かを1-2文で要約。REJECT の場合は最大のブロッカーを先に書く}
|
|
8
|
+
|
|
9
|
+
## マージ可否チェック
|
|
10
|
+
| # | 観点 | 状態 | 根拠(ファイル:行 / テスト / 実行証跡) | コメント |
|
|
11
|
+
|---|------|------|---------------------------------------|----------|
|
|
12
|
+
| 1 | 要求充足 | 充足 / 未充足 / 未確認 | `src/file.ts:42` | {補足} |
|
|
13
|
+
| 2 | 既存契約・既存フローへの影響 | 問題なし / 問題あり / 未確認 | `src/file.ts:42` | {補足} |
|
|
14
|
+
| 3 | テスト・検証 | 十分 / 不足 / 未確認 | `npm test` | {補足} |
|
|
15
|
+
| 4 | 要求外変更・スコープクリープ | 問題なし / 問題あり / 未確認 | `src/file.ts:42` | {補足} |
|
|
16
|
+
| 5 | 明白なセキュリティ・データ保護・運用リスク | 問題なし / 問題あり / 未確認 | `src/file.ts:42` | {補足} |
|
|
17
|
+
|
|
18
|
+
## 要求照合
|
|
19
|
+
| # | 要求(タスクから抽出) | 状態 | 根拠(ファイル:行) | コメント |
|
|
20
|
+
|---|-------------------|------|-------------------|----------|
|
|
21
|
+
| 1 | {要件1} | 充足 / 未充足 / 未確認 | `src/file.ts:42` | {補足} |
|
|
22
|
+
|
|
23
|
+
## 要求外変更・既存影響
|
|
24
|
+
| # | 変更 | ファイル | 判定 | コメント |
|
|
25
|
+
|---|------|---------|------|----------|
|
|
26
|
+
| 1 | {要求にない変更または既存影響} | `src/file.ts` | 妥当 / 要再確認 / 不要 / 問題あり | {理由} |
|
|
27
|
+
|
|
28
|
+
## 今回の指摘(new)
|
|
29
|
+
| # | finding_id | family_tag | カテゴリ | 場所 | 問題 | 修正案 |
|
|
30
|
+
|---|------------|------------|---------|------|------|--------|
|
|
31
|
+
| 1 | PURE-NEW-src-file-L42 | mergeability | 回帰 / 要求未充足 / テスト不足 / 契約破壊 / スコープクリープ | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
|
32
|
+
|
|
33
|
+
## 継続指摘(persists)
|
|
34
|
+
| # | finding_id | family_tag | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
|
35
|
+
|---|------------|------------|----------|----------|------|--------|
|
|
36
|
+
| 1 | PURE-PERSIST-src-file-L77 | mergeability | `file:line` | `file:line` | 未解消 | 修正方法 |
|
|
37
|
+
|
|
38
|
+
## 解消済み(resolved)
|
|
39
|
+
| finding_id | 解消根拠 |
|
|
40
|
+
|------------|----------|
|
|
41
|
+
| PURE-RESOLVED-src-file-L10 | `file:line` で解消 |
|
|
42
|
+
|
|
43
|
+
## 再開指摘(reopened)
|
|
44
|
+
| # | finding_id | family_tag | 解消根拠(前回) | 再発根拠 | 問題 | 修正案 |
|
|
45
|
+
|---|------------|------------|----------------|---------|------|--------|
|
|
46
|
+
| 1 | PURE-REOPENED-src-file-L55 | mergeability | `前回: file:line で修正済み` | `file:line で再発` | 問題の説明 | 修正方法 |
|
|
47
|
+
|
|
48
|
+
## 検証証跡
|
|
49
|
+
- ビルド: {確認対象・確認内容・結果。未確認ならその旨}
|
|
50
|
+
- テスト: {確認対象・確認内容・結果。未確認ならその旨}
|
|
51
|
+
- 動作確認: {確認対象・確認内容・結果。未確認ならその旨}
|
|
52
|
+
|
|
53
|
+
## REJECT判定条件
|
|
54
|
+
- マージを止めるべき問題が `new`、`persists`、または `reopened` に1件以上ある場合は REJECT
|
|
55
|
+
- `finding_id` なしの指摘は無効
|
|
56
|
+
- 未確認項目は、それがマージ可否に影響する場合のみ REJECT 根拠にする
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**認知負荷軽減ルール:**
|
|
60
|
+
- APPROVE → サマリー + マージ可否チェックのみ(10行以内)
|
|
61
|
+
- REJECT → ブロッカー指摘を優先(40行以内)
|
|
@@ -40,6 +40,11 @@
|
|
|
40
40
|
- テスト: {確認対象・確認内容・結果。未確認ならその旨}
|
|
41
41
|
- 動作確認: {確認対象・確認内容・結果。未確認ならその旨}
|
|
42
42
|
|
|
43
|
+
## 未確認範囲
|
|
44
|
+
| 項目 | 理由 | 判定への影響 |
|
|
45
|
+
|------|------|--------------|
|
|
46
|
+
| {未確認の範囲。なければ「なし」} | {未確認の理由} | {APPROVE可 / REJECT理由} |
|
|
47
|
+
|
|
43
48
|
## REJECT判定条件
|
|
44
49
|
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
|
|
45
50
|
- `finding_id` なしの指摘は無効
|
|
@@ -42,11 +42,16 @@
|
|
|
42
42
|
- テスト: {確認対象・確認内容・結果。未確認ならその旨}
|
|
43
43
|
- 動作確認: {確認対象・確認内容・結果。未確認ならその旨}
|
|
44
44
|
|
|
45
|
+
## 未確認範囲
|
|
46
|
+
| 項目 | 理由 | 判定への影響 |
|
|
47
|
+
|------|------|--------------|
|
|
48
|
+
| {未確認の範囲。なければ「なし」} | {未確認の理由} | {APPROVE可 / REJECT理由} |
|
|
49
|
+
|
|
45
50
|
## REJECT判定条件
|
|
46
51
|
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
|
|
47
52
|
- `finding_id` なしの指摘は無効
|
|
48
53
|
```
|
|
49
54
|
|
|
50
55
|
**認知負荷軽減ルール:**
|
|
51
|
-
- APPROVE →
|
|
56
|
+
- APPROVE → サマリーと未確認範囲のみ(8行以内)
|
|
52
57
|
- REJECT → 該当指摘のみ表で記載(30行以内)
|
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
- 開発者向けに指摘を明確かつ簡潔にフォーマット
|
|
11
11
|
|
|
12
12
|
**やらないこと:**
|
|
13
|
-
-
|
|
13
|
+
- 自分でコードをレビューする
|
|
14
14
|
- ファイルの編集
|
|
15
15
|
- テストやビルドの実行
|
|
16
|
-
-
|
|
16
|
+
- コード品質の判断(レビュー結果を投稿対象として扱う)
|
|
17
17
|
|
|
18
18
|
## 行動姿勢
|
|
19
19
|
|
|
20
20
|
- ファイルを変更しない。コメント投稿のみ行う
|
|
21
21
|
- レート制限を尊重する。個別コメントを大量投稿せず、可能な限りまとめる
|
|
22
|
-
-
|
|
22
|
+
- レビューレポートを情報源とする。自分の分析ではなく、記録済みの指摘を投稿する
|
|
23
23
|
- PR番号が特定できない場合は報告して投稿せずに終了する
|
|
24
24
|
- `gh` コマンドが失敗した場合はエラーを報告するが、過度にリトライしない
|
|
25
25
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Pure Reviewer
|
|
2
|
+
|
|
3
|
+
あなたは、今回の修正がマージ可能な品質かを素直に判断するレビュアーです。専門領域に閉じず、差分・周辺コード・実行証跡から、今マージすると困る問題を指摘します。
|
|
4
|
+
|
|
5
|
+
## 役割の境界
|
|
6
|
+
|
|
7
|
+
**やること:**
|
|
8
|
+
- 今マージしてよいかを、実コードと差分に基づいて判断する
|
|
9
|
+
- 要求未達、既存動作の破壊、テスト不足、要求外変更、明らかなリスクを検出する
|
|
10
|
+
- ブロッキング問題だけを具体的な根拠付きで指摘する
|
|
11
|
+
|
|
12
|
+
**やらないこと:**
|
|
13
|
+
- 自分でコードを書く
|
|
14
|
+
- 根拠のない推測を指摘にする
|
|
15
|
+
- 好みだけの改善を要求する
|
|
16
|
+
- 変更と無関係な既存問題を混ぜる
|
|
17
|
+
|
|
18
|
+
## 行動姿勢
|
|
19
|
+
|
|
20
|
+
- 最終問いは「この変更は今マージしてよいか」に置く
|
|
21
|
+
- チェックリスト消化ではなく、実際の利用者・既存フロー・テストが困るかを見る
|
|
22
|
+
- 問題がなければ APPROVE する
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
- 実行証跡を確認する。ファイルだけでなく、ログ・レポート・結果を突き合わせる
|
|
23
23
|
- 要求と照合する。元のタスク要求を再度読み、漏れがないか確認する
|
|
24
24
|
- 複合要件は自分で再分解する。前段レビューの分解をそのまま採用しない
|
|
25
|
-
- `
|
|
25
|
+
- `pure-review` の結果は参考情報として扱い、最終判定は自分で再検算する
|
|
26
26
|
- 鵜呑みにしない。「完了しました」を信用せず、自分で検証する
|
|
27
27
|
- 具体的に指摘する。「何が」「どう」問題かを明確にする
|
|
28
28
|
- あなたは最後の門番。「たぶん大丈夫」では通さない
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
**やらないこと:**
|
|
14
14
|
- 自分でコードを書く(指摘と修正案の提示のみ)
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
- `terraform plan`
|
|
15
|
+
- Terraform 規約・IaC セキュリティ・コスト影響と結びつかない問題の指摘
|
|
16
|
+
- アプリケーションコードのレビュー
|
|
17
|
+
- `terraform plan` の実行
|
|
18
18
|
|
|
19
19
|
## 行動姿勢
|
|
20
20
|
|
|
@@ -112,11 +112,13 @@ AIはレビュー指摘を「修正」する代わりに、テストやドキュ
|
|
|
112
112
|
| 指摘の修正ではなくテストの追加 | 「コメント不要」→ コメントの有無を検証するテストを追加 | REJECT |
|
|
113
113
|
| 指摘の修正ではなくドキュメントの追加 | 「DRY違反」→ 重複が意図的である旨のドキュメントを追加 | REJECT |
|
|
114
114
|
| 指摘と無関係なファイルの変更 | セキュリティ指摘 → 全く別のリファクタリングを実施 | REJECT |
|
|
115
|
+
| 仕様変更の修正ではなく旧仕様の不在確認 | 「旧バッジ表示を廃止して一覧から除外」→ 下位コンポーネントで旧バッジが表示されないことだけを検証 | REJECT |
|
|
115
116
|
|
|
116
117
|
検証アプローチ:
|
|
117
118
|
1. 修正差分が指摘の対象ファイル・対象行に対する変更を含んでいるか確認
|
|
118
119
|
2. 新規ファイル追加のみで対応している場合、そのファイルが指摘の「修正」ではなく「検証」になっていないか確認
|
|
119
120
|
3. テスト追加が指摘への対応の場合、テストが「修正後の正しい動作」を検証しているか(「指摘内容そのもの」を検証していないか)確認
|
|
121
|
+
4. PR途中の仕様変更では、旧仕様を否定するだけのテストではなく、新仕様の責務を持つ層で正しい振る舞いを検証しているか確認
|
|
120
122
|
|
|
121
123
|
## コンテキスト適合性評価
|
|
122
124
|
|
|
@@ -319,6 +319,42 @@ const storage = createStorage(config)
|
|
|
319
319
|
return storage.upload(file, options)
|
|
320
320
|
```
|
|
321
321
|
|
|
322
|
+
## 命名
|
|
323
|
+
|
|
324
|
+
名前は実装機構ではなく、実際の役割・効果を表す。読み手が名前から挙動、責務、副作用を誤読するコードは悪いコード。
|
|
325
|
+
|
|
326
|
+
| パターン | 例 | 判定 |
|
|
327
|
+
|---------|-----|------|
|
|
328
|
+
| 名前が実際の効果と矛盾 | 毎回副作用を起こすように読めるが、実体はキャッシュ済み値の取得 | REJECT |
|
|
329
|
+
| 副作用や実行頻度が読めない | 初期化、取得、更新のどれが起きるか名前から判断できない | REJECT |
|
|
330
|
+
| 近接する API と区別できない | ラップ元や委譲先と同じ名前で、どちらの責務か読めない | REJECT |
|
|
331
|
+
| 役割・効果で命名 | 実際に提供する値、状態変化、責務が名前から読める | OK |
|
|
332
|
+
|
|
333
|
+
```typescript
|
|
334
|
+
// REJECT - 名前は毎回副作用を起こすように読めるが、実体はメモ化アクセサ
|
|
335
|
+
let resourcePromise: Promise<Resource> | null = null
|
|
336
|
+
function openResource(): Promise<Resource> {
|
|
337
|
+
if (!resourcePromise) {
|
|
338
|
+
resourcePromise = createResource()
|
|
339
|
+
}
|
|
340
|
+
return resourcePromise
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
// OK - 実際の役割である「利用可能なリソースの取得」を表す
|
|
344
|
+
function getResource(): Promise<Resource> {
|
|
345
|
+
if (!resourcePromise) {
|
|
346
|
+
resourcePromise = createResource()
|
|
347
|
+
}
|
|
348
|
+
return resourcePromise
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
判断基準:
|
|
353
|
+
1. 名前は実際の役割・効果を表しているか
|
|
354
|
+
2. 名前から想像される副作用、実行頻度、責務と実装が一致しているか
|
|
355
|
+
3. ラップ元、委譲先、近接する API と紛らわしい名前になっていないか
|
|
356
|
+
4. 既存コードの命名慣習と矛盾していないか
|
|
357
|
+
|
|
322
358
|
## 構造
|
|
323
359
|
|
|
324
360
|
### 分割の基準
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
| 曖昧さ排除 | 「もう少し整理して」等の曖昧な指摘は禁止。ファイル・行・修正案を具体的に示す |
|
|
11
11
|
| ファクトチェック | 推測ではなく実コードを確認してから指摘する |
|
|
12
12
|
| 実践的修正案 | 理想論ではなく実装可能な対策を提示する |
|
|
13
|
+
| 状態整合性 | 副作用や状態変更は、正常・失敗・中断の各経路で漏れ・重複・不整合がないことを確認する |
|
|
14
|
+
| 振る舞い保証 | テストやログの有無ではなく、期待する振る舞いが検証されているかを確認する |
|
|
13
15
|
| ボーイスカウト | 変更箇所と、その正しさ・契約・配線に直接関係する箇所の問題をタスクスコープ内で改善させる |
|
|
14
16
|
|
|
15
17
|
## スコープ判定
|
|
@@ -31,6 +33,7 @@
|
|
|
31
33
|
以下のいずれかに該当する場合、例外なく REJECT する。
|
|
32
34
|
|
|
33
35
|
- テストがない新しい振る舞い
|
|
36
|
+
- 境界変更(権限、拒否、外部実行、共有状態、状態遷移)に対して、主要な許可/拒否・成功/失敗・隔離/解放の検証がない
|
|
34
37
|
- バグ修正にリグレッションテストがない
|
|
35
38
|
- `any` 型の使用
|
|
36
39
|
- フォールバック値の乱用(`?? 'unknown'`)
|
|
@@ -46,6 +49,7 @@
|
|
|
46
49
|
- リファクタリングで置き換えられた旧コード・旧エクスポートの残存
|
|
47
50
|
- 関連フィールドのクロスバリデーション欠如(意味的に結合した設定値の不変条件が未検証)
|
|
48
51
|
- 契約変更後の呼び出し元・生成元・テストデータの更新漏れ
|
|
52
|
+
- 副作用や状態変更の実行経路に、漏れ・重複・順序不整合がある
|
|
49
53
|
- ログ、エラーレスポンス、テスト出力への機密情報露出
|
|
50
54
|
|
|
51
55
|
DRY違反の修正案は、単に共通化を求めるだけでは不十分とする。以下を満たさない共通化案は不適切であり、別案を検討する。
|
|
@@ -61,7 +65,7 @@ DRY違反の修正案は、単に共通化を求めるだけでは不十分と
|
|
|
61
65
|
- エッジケース・境界値のテスト不足
|
|
62
66
|
- テストが実装の詳細に依存
|
|
63
67
|
- 関数/ファイルが複雑すぎる
|
|
64
|
-
-
|
|
68
|
+
- 命名が実体と乖離している
|
|
65
69
|
- Issue番号・外部制約・除去条件がある TODO/FIXME
|
|
66
70
|
- 理由なしの `@ts-ignore`、`eslint-disable`
|
|
67
71
|
|
|
@@ -69,6 +73,17 @@ DRY違反の修正案は、単に共通化を求めるだけでは不十分と
|
|
|
69
73
|
|
|
70
74
|
全ての REJECT 基準をクリアし、品質基準を満たしている場合に承認する。「条件付き承認」はしない。問題があれば差し戻す。
|
|
71
75
|
|
|
76
|
+
## 振る舞い証跡の判定
|
|
77
|
+
|
|
78
|
+
設定値、ログ、スナップショット、最後の状態だけの確認は補助証跡であり、拒否・許可・隔離・解放などの主要な振る舞いを保証する根拠にはならない。
|
|
79
|
+
|
|
80
|
+
| 証跡 | 判定 |
|
|
81
|
+
|------|------|
|
|
82
|
+
| 期待する振る舞いが実行結果として観測されている | OK |
|
|
83
|
+
| deterministic なテストで主要な境界条件を検証している | OK |
|
|
84
|
+
| 外部環境依存のE2Eのみで、主要境界の再現可能な検証がない | 警告またはREJECT |
|
|
85
|
+
| 設定値・ログ・スナップショットのみで振る舞いを承認している | REJECT |
|
|
86
|
+
|
|
72
87
|
## ファクトチェック
|
|
73
88
|
|
|
74
89
|
指摘する前に必ず事実を確認する。
|
|
@@ -232,6 +247,16 @@ DRY違反の修正案は、単に共通化を求めるだけでは不十分と
|
|
|
232
247
|
- 記録された意図的な判断は、それだけを理由に false positive として退けない。`order.md` / `plan.md` / 実コードと照らして妥当性を評価する
|
|
233
248
|
- 設計判断自体に問題があれば指摘する
|
|
234
249
|
|
|
250
|
+
### 副作用と状態遷移の確認
|
|
251
|
+
|
|
252
|
+
変更が外部呼び出し、設定反映、セッション、キュー、ロック、購読、キャッシュ、一時資源などの副作用や状態変更を伴う場合は、正常系だけで判断しない。
|
|
253
|
+
|
|
254
|
+
- 入口、正常終了、早期 return、例外、再試行、中断、後片付けの経路を追う
|
|
255
|
+
- 取得・開始・登録・反映したものが、対応する経路で過不足なく扱われることを確認する
|
|
256
|
+
- 同じ副作用が重複して実行されないこと、必要な副作用が失敗経路で抜けないことを確認する
|
|
257
|
+
- 共有状態や後続処理に影響する変更では、途中失敗後の状態が次の実行を壊さないことを確認する
|
|
258
|
+
- これらの確認ができていない場合は、動作確認済みとして扱わない
|
|
259
|
+
|
|
235
260
|
### 前回指摘の追跡
|
|
236
261
|
|
|
237
262
|
- Report Directory 内で、このステップが前回までに出力したレビューレポートとそのタイムスタンプ付き履歴を確認する
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
| 新しい振る舞い | テスト必須。テストがなければ REJECT |
|
|
21
21
|
| バグ修正 | リグレッションテスト必須。テストがなければ REJECT |
|
|
22
22
|
| 振る舞いの変更 | テストの更新必須。更新がなければ REJECT |
|
|
23
|
+
| 副作用・状態遷移の変更 | 正常系と代表的な失敗経路の検証必須。失敗経路が未検証なら REJECT |
|
|
23
24
|
| ビルド(型チェック) | ビルド成功必須。失敗は REJECT |
|
|
24
25
|
| エッジケース・境界値 | テスト推奨(Warning) |
|
|
25
26
|
|
|
@@ -50,6 +51,18 @@
|
|
|
50
51
|
|
|
51
52
|
非実行資産の変更確認は、必要に応じてレビュー、Markdown lint、リンクチェック、サンプルコマンドの実行で行う。
|
|
52
53
|
|
|
54
|
+
## 置換された旧仕様のテスト
|
|
55
|
+
|
|
56
|
+
仕様変更で旧設計の構成要素(UI・API・イベント・状態・ラベルなど)が新設計に置き換えられた場合、テストは新仕様の振る舞いを肯定的に検証する。旧仕様が存在しないことだけを固定しない。
|
|
57
|
+
|
|
58
|
+
| 基準 | 判定 |
|
|
59
|
+
|------|------|
|
|
60
|
+
| 旧仕様の構成要素が存在・呼び出しされないことだけを検証するテストを追加 | REJECT |
|
|
61
|
+
| 責務を失った実装単位に、旧仕様由来の不在確認テストを残す | REJECT |
|
|
62
|
+
| 本番コードが最終的に変更されていないファイルで、旧仕様否定のためだけにテストを変更 | REJECT |
|
|
63
|
+
| 新仕様を、新しい責務を持つ層(上位モジュール・サービス・統合フロー等)で肯定的に検証 | OK |
|
|
64
|
+
| 旧仕様削除で未使用になったテストを削除し、新仕様の回帰テストへ置き換える | OK |
|
|
65
|
+
|
|
53
66
|
## テスト構造: Given-When-Then
|
|
54
67
|
|
|
55
68
|
```typescript
|
|
@@ -75,6 +88,18 @@ test('ユーザーが存在しない場合、NotFoundエラーを返す', async
|
|
|
75
88
|
| 明確性 | 失敗時に原因が分かる | 失敗しても原因不明 |
|
|
76
89
|
| 焦点 | 1テスト1概念 | 複数の関心事が混在 |
|
|
77
90
|
|
|
91
|
+
## 副作用・状態遷移のテスト
|
|
92
|
+
|
|
93
|
+
副作用や状態遷移を伴う変更は、正常系の成功だけでは十分に検証されたとは扱わない。
|
|
94
|
+
|
|
95
|
+
| 基準 | 判定 |
|
|
96
|
+
|------|------|
|
|
97
|
+
| 正常系のみで、失敗・中断・早期終了時の状態を検証していない | REJECT |
|
|
98
|
+
| 取得・開始・登録・反映した状態の後片付けや重複実行を検証していない | REJECT |
|
|
99
|
+
| 共有状態や後続処理に影響する変更で、途中失敗後の再実行を検証していない | 警告。影響が主要経路なら REJECT |
|
|
100
|
+
| モックで確認した範囲と未確認の実連携範囲を区別していない | 警告。主要要件なら REJECT |
|
|
101
|
+
| 正常系、代表的な失敗経路、境界的な状態遷移をそれぞれ検証している | OK |
|
|
102
|
+
|
|
78
103
|
## テストデータとフィクスチャ
|
|
79
104
|
|
|
80
105
|
テストデータは、テストごとに必要最小限の事実を明示して生成する。共有フィクスチャの破壊的変更や、実契約と異なるモックはテストの信頼性を下げる。
|
|
@@ -335,6 +335,27 @@ steps:
|
|
|
335
335
|
report:
|
|
336
336
|
- name: qa-review.md
|
|
337
337
|
format: qa-review
|
|
338
|
+
- name: pure-review
|
|
339
|
+
edit: false
|
|
340
|
+
persona: pure-reviewer
|
|
341
|
+
policy: review
|
|
342
|
+
provider_options:
|
|
343
|
+
claude:
|
|
344
|
+
allowed_tools:
|
|
345
|
+
- Read
|
|
346
|
+
- Glob
|
|
347
|
+
- Grep
|
|
348
|
+
- Bash
|
|
349
|
+
- WebSearch
|
|
350
|
+
- WebFetch
|
|
351
|
+
rules:
|
|
352
|
+
- condition: approved
|
|
353
|
+
- condition: needs_fix
|
|
354
|
+
instruction: review-pure
|
|
355
|
+
output_contracts:
|
|
356
|
+
report:
|
|
357
|
+
- name: pure-review.md
|
|
358
|
+
format: pure-review
|
|
338
359
|
- name: coding-review
|
|
339
360
|
edit: false
|
|
340
361
|
persona: coding-reviewer
|
|
@@ -331,6 +331,27 @@ steps:
|
|
|
331
331
|
report:
|
|
332
332
|
- name: qa-review.md
|
|
333
333
|
format: qa-review
|
|
334
|
+
- name: pure-review
|
|
335
|
+
edit: false
|
|
336
|
+
persona: pure-reviewer
|
|
337
|
+
policy: review
|
|
338
|
+
provider_options:
|
|
339
|
+
claude:
|
|
340
|
+
allowed_tools:
|
|
341
|
+
- Read
|
|
342
|
+
- Glob
|
|
343
|
+
- Grep
|
|
344
|
+
- Bash
|
|
345
|
+
- WebSearch
|
|
346
|
+
- WebFetch
|
|
347
|
+
rules:
|
|
348
|
+
- condition: approved
|
|
349
|
+
- condition: needs_fix
|
|
350
|
+
instruction: review-pure
|
|
351
|
+
output_contracts:
|
|
352
|
+
report:
|
|
353
|
+
- name: pure-review.md
|
|
354
|
+
format: pure-review
|
|
334
355
|
- name: coding-review
|
|
335
356
|
edit: false
|
|
336
357
|
persona: coding-reviewer
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: default-high
|
|
2
|
-
description: フルスペック開発ワークフロー(計画 → テスト作成 → draft(チームリーダー実装 + AI 自己レビュー) → peer-review
|
|
2
|
+
description: フルスペック開発ワークフロー(計画 → テスト作成 → draft(チームリーダー実装 + AI 自己レビュー) → peer-review(並列レビュー + AP-2nd) → supervise → COMPLETE)
|
|
3
3
|
workflow_config:
|
|
4
4
|
provider_options:
|
|
5
5
|
codex:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: default-peer-review
|
|
2
|
-
description: default 系の Phase 2。並列レビュアー(arch + ai-antipattern-2nd + coding-review + supervise) ⇄ 修正 ループ。
|
|
2
|
+
description: default 系の Phase 2。並列レビュアー(arch + ai-antipattern-2nd + pure-review + coding-review + supervise) ⇄ 修正 ループ。
|
|
3
3
|
subworkflow:
|
|
4
4
|
callable: true
|
|
5
5
|
visibility: internal
|
|
@@ -72,6 +72,27 @@ steps:
|
|
|
72
72
|
report:
|
|
73
73
|
- name: ai-antipattern-review.md
|
|
74
74
|
format: ai-antipattern-review
|
|
75
|
+
- name: pure-review
|
|
76
|
+
edit: false
|
|
77
|
+
persona: pure-reviewer
|
|
78
|
+
policy: review
|
|
79
|
+
provider_options:
|
|
80
|
+
claude:
|
|
81
|
+
allowed_tools:
|
|
82
|
+
- Read
|
|
83
|
+
- Glob
|
|
84
|
+
- Grep
|
|
85
|
+
- Bash
|
|
86
|
+
- WebSearch
|
|
87
|
+
- WebFetch
|
|
88
|
+
rules:
|
|
89
|
+
- condition: approved
|
|
90
|
+
- condition: needs_fix
|
|
91
|
+
instruction: review-pure
|
|
92
|
+
output_contracts:
|
|
93
|
+
report:
|
|
94
|
+
- name: pure-review.md
|
|
95
|
+
format: pure-review
|
|
75
96
|
- name: coding-review
|
|
76
97
|
edit: false
|
|
77
98
|
persona: coding-reviewer
|
|
@@ -119,9 +140,9 @@ steps:
|
|
|
119
140
|
format: summary
|
|
120
141
|
use_judge: false
|
|
121
142
|
rules:
|
|
122
|
-
- condition: all("approved", "AI特有の問題なし", "approved", "すべて問題なし")
|
|
143
|
+
- condition: all("approved", "AI特有の問題なし", "approved", "approved", "すべて問題なし")
|
|
123
144
|
next: COMPLETE
|
|
124
|
-
- condition: any("needs_fix", "AI特有の問題あり", "needs_fix", "要求未達成、テスト失敗、ビルドエラー")
|
|
145
|
+
- condition: any("needs_fix", "AI特有の問題あり", "needs_fix", "needs_fix", "要求未達成、テスト失敗、ビルドエラー")
|
|
125
146
|
next: fix
|
|
126
147
|
- name: fix
|
|
127
148
|
edit: true
|