takt 0.33.1 → 0.34.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 +29 -22
- package/builtins/en/config.yaml +8 -8
- package/builtins/en/facets/instructions/architecture-audit-plan.md +13 -0
- package/builtins/en/facets/instructions/architecture-audit-review.md +15 -0
- package/builtins/en/facets/instructions/architecture-audit-supervise.md +14 -0
- package/builtins/en/facets/instructions/architecture-audit-team-leader.md +22 -0
- package/builtins/en/facets/instructions/dual-team-leader-implement.md +8 -2
- package/builtins/en/facets/instructions/e2e-audit-plan.md +13 -0
- package/builtins/en/facets/instructions/e2e-audit-review.md +16 -0
- package/builtins/en/facets/instructions/e2e-audit-supervise.md +11 -0
- package/builtins/en/facets/instructions/e2e-audit-team-leader.md +22 -0
- package/builtins/en/facets/instructions/plan.md +3 -0
- package/builtins/en/facets/instructions/review-requirements.md +12 -7
- package/builtins/en/facets/instructions/supervise.md +4 -2
- package/builtins/en/facets/instructions/team-leader-implement.md +3 -2
- package/builtins/en/facets/instructions/unit-audit-plan.md +13 -0
- package/builtins/en/facets/instructions/unit-audit-review.md +16 -0
- package/builtins/en/facets/instructions/unit-audit-supervise.md +11 -0
- package/builtins/en/facets/instructions/unit-audit-team-leader.md +22 -0
- package/builtins/en/facets/knowledge/architecture.md +93 -0
- package/builtins/en/facets/knowledge/cqrs-es.md +64 -5
- package/builtins/en/facets/output-contracts/architecture-audit-plan.md +26 -0
- package/builtins/en/facets/output-contracts/architecture-audit.md +38 -0
- package/builtins/en/facets/output-contracts/{security-audit.md → audit-security.md} +15 -0
- package/builtins/en/facets/output-contracts/e2e-audit-plan.md +26 -0
- package/builtins/en/facets/output-contracts/e2e-audit.md +41 -0
- package/builtins/en/facets/output-contracts/plan.md +8 -0
- package/builtins/en/facets/output-contracts/requirements-review.md +10 -8
- package/builtins/en/facets/output-contracts/supervisor-validation.md +8 -0
- package/builtins/en/facets/output-contracts/unit-audit-plan.md +26 -0
- package/builtins/en/facets/output-contracts/unit-audit.md +41 -0
- package/builtins/en/facets/personas/planner.md +7 -0
- package/builtins/en/facets/personas/requirements-reviewer.md +7 -0
- package/builtins/en/facets/personas/supervisor.md +10 -0
- package/builtins/en/facets/policies/coding.md +87 -0
- package/builtins/en/{piece-categories.yaml → workflow-categories.yaml} +17 -15
- package/builtins/en/workflows/audit-architecture-backend.yaml +83 -0
- package/builtins/en/workflows/audit-architecture-dual.yaml +87 -0
- package/builtins/en/workflows/audit-architecture-frontend.yaml +87 -0
- package/builtins/en/workflows/audit-architecture.yaml +75 -0
- package/builtins/en/workflows/audit-e2e.yaml +92 -0
- package/builtins/en/{pieces/security-audit.yaml → workflows/audit-security.yaml} +10 -10
- package/builtins/en/workflows/audit-unit.yaml +94 -0
- package/builtins/en/{pieces → workflows}/backend-cqrs-mini.yaml +5 -5
- package/builtins/en/{pieces → workflows}/backend-cqrs.yaml +5 -5
- package/builtins/en/{pieces → workflows}/backend-mini.yaml +5 -5
- package/builtins/en/{pieces → workflows}/backend.yaml +5 -5
- package/builtins/en/{pieces → workflows}/compound-eye.yaml +4 -4
- package/builtins/en/{pieces → workflows}/deep-research.yaml +5 -5
- package/builtins/en/{pieces → workflows}/default.yaml +5 -5
- package/builtins/en/{pieces → workflows}/dual-cqrs-mini.yaml +5 -5
- package/builtins/en/{pieces → workflows}/dual-cqrs.yaml +5 -5
- package/builtins/en/{pieces → workflows}/dual-mini.yaml +5 -5
- package/builtins/en/{pieces → workflows}/dual.yaml +23 -7
- package/builtins/en/{pieces → workflows}/frontend-mini.yaml +5 -5
- package/builtins/en/{pieces → workflows}/frontend.yaml +5 -5
- package/builtins/en/{pieces → workflows}/magi.yaml +4 -4
- package/builtins/en/{pieces → workflows}/research.yaml +5 -5
- package/builtins/en/{pieces → workflows}/review-backend-cqrs.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-backend.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-default.yaml +5 -5
- package/builtins/en/{pieces → workflows}/review-dual-cqrs.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-dual.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-fix-backend-cqrs.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-fix-backend.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-fix-default.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-fix-dual-cqrs.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-fix-dual.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-fix-frontend.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-fix-takt-default.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-frontend.yaml +4 -4
- package/builtins/en/{pieces → workflows}/review-takt-default.yaml +5 -5
- package/builtins/en/{pieces → workflows}/takt-default.yaml +5 -5
- package/builtins/en/{pieces → workflows}/terraform.yaml +5 -5
- package/builtins/ja/config.yaml +8 -8
- package/builtins/ja/facets/instructions/architecture-audit-plan.md +13 -0
- package/builtins/ja/facets/instructions/architecture-audit-review.md +15 -0
- package/builtins/ja/facets/instructions/architecture-audit-supervise.md +14 -0
- package/builtins/ja/facets/instructions/architecture-audit-team-leader.md +22 -0
- package/builtins/ja/facets/instructions/dual-team-leader-implement.md +8 -2
- package/builtins/ja/facets/instructions/e2e-audit-plan.md +13 -0
- package/builtins/ja/facets/instructions/e2e-audit-review.md +16 -0
- package/builtins/ja/facets/instructions/e2e-audit-supervise.md +11 -0
- package/builtins/ja/facets/instructions/e2e-audit-team-leader.md +22 -0
- package/builtins/ja/facets/instructions/plan.md +3 -0
- package/builtins/ja/facets/instructions/review-requirements.md +12 -7
- package/builtins/ja/facets/instructions/supervise.md +4 -2
- package/builtins/ja/facets/instructions/team-leader-implement.md +3 -2
- package/builtins/ja/facets/instructions/unit-audit-plan.md +13 -0
- package/builtins/ja/facets/instructions/unit-audit-review.md +16 -0
- package/builtins/ja/facets/instructions/unit-audit-supervise.md +11 -0
- package/builtins/ja/facets/instructions/unit-audit-team-leader.md +22 -0
- package/builtins/ja/facets/knowledge/architecture.md +93 -0
- package/builtins/ja/facets/knowledge/cqrs-es.md +66 -6
- package/builtins/ja/facets/output-contracts/architecture-audit-plan.md +26 -0
- package/builtins/ja/facets/output-contracts/architecture-audit.md +38 -0
- package/builtins/ja/facets/output-contracts/{security-audit.md → audit-security.md} +15 -0
- package/builtins/ja/facets/output-contracts/e2e-audit-plan.md +26 -0
- package/builtins/ja/facets/output-contracts/e2e-audit.md +41 -0
- package/builtins/ja/facets/output-contracts/plan.md +8 -0
- package/builtins/ja/facets/output-contracts/requirements-review.md +10 -8
- package/builtins/ja/facets/output-contracts/supervisor-validation.md +8 -0
- package/builtins/ja/facets/output-contracts/unit-audit-plan.md +26 -0
- package/builtins/ja/facets/output-contracts/unit-audit.md +41 -0
- package/builtins/ja/facets/personas/planner.md +8 -0
- package/builtins/ja/facets/personas/requirements-reviewer.md +7 -0
- package/builtins/ja/facets/personas/supervisor.md +6 -0
- package/builtins/ja/facets/policies/coding.md +87 -0
- package/builtins/ja/{piece-categories.yaml → workflow-categories.yaml} +17 -15
- package/builtins/ja/workflows/audit-architecture-backend.yaml +83 -0
- package/builtins/ja/workflows/audit-architecture-dual.yaml +87 -0
- package/builtins/ja/workflows/audit-architecture-frontend.yaml +87 -0
- package/builtins/ja/workflows/audit-architecture.yaml +75 -0
- package/builtins/ja/workflows/audit-e2e.yaml +92 -0
- package/builtins/ja/{pieces/security-audit.yaml → workflows/audit-security.yaml} +10 -10
- package/builtins/ja/workflows/audit-unit.yaml +94 -0
- package/builtins/ja/{pieces → workflows}/backend-cqrs-mini.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/backend-cqrs.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/backend-mini.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/backend.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/compound-eye.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/deep-research.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/default.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/dual-cqrs-mini.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/dual-cqrs.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/dual-mini.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/dual.yaml +23 -7
- package/builtins/ja/{pieces → workflows}/frontend-mini.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/frontend.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/magi.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/research.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/review-backend-cqrs.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-backend.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-default.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/review-dual-cqrs.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-dual.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-fix-backend-cqrs.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-fix-backend.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-fix-default.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-fix-dual-cqrs.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-fix-dual.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-fix-frontend.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-fix-takt-default.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-frontend.yaml +4 -4
- package/builtins/ja/{pieces → workflows}/review-takt-default.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/takt-default.yaml +5 -5
- package/builtins/ja/{pieces → workflows}/terraform.yaml +5 -5
- package/builtins/schemas/decomposition.json +1 -5
- package/builtins/schemas/more-parts.json +1 -5
- package/builtins/skill/SKILL.md +54 -52
- package/builtins/skill/references/engine.md +45 -45
- package/builtins/skill/references/yaml-schema.md +46 -38
- package/builtins/skill-codex/SKILL.md +48 -46
- package/builtins/skill-codex/references/engine.md +32 -32
- package/builtins/skill-codex/references/yaml-schema.md +46 -38
- package/dist/agents/decompose-task-usecase.d.ts +3 -1
- package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
- package/dist/agents/decompose-task-usecase.js +2 -112
- package/dist/agents/decompose-task-usecase.js.map +1 -1
- package/dist/agents/judge-status-usecase.d.ts +11 -0
- package/dist/agents/judge-status-usecase.d.ts.map +1 -1
- package/dist/agents/judge-status-usecase.js +37 -31
- package/dist/agents/judge-status-usecase.js.map +1 -1
- package/dist/agents/judge-utils.d.ts +6 -0
- package/dist/agents/judge-utils.d.ts.map +1 -1
- package/dist/agents/judge-utils.js +12 -0
- package/dist/agents/judge-utils.js.map +1 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +10 -2
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/structured-caller/contracts.d.ts +18 -0
- package/dist/agents/structured-caller/contracts.d.ts.map +1 -0
- package/dist/agents/structured-caller/contracts.js +2 -0
- package/dist/agents/structured-caller/contracts.js.map +1 -0
- package/dist/agents/structured-caller/default-structured-caller.d.ts +19 -0
- package/dist/agents/structured-caller/default-structured-caller.d.ts.map +1 -0
- package/dist/agents/structured-caller/default-structured-caller.js +25 -0
- package/dist/agents/structured-caller/default-structured-caller.js.map +1 -0
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +19 -0
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -0
- package/dist/agents/structured-caller/prompt-based-structured-caller.js +137 -0
- package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -0
- package/dist/agents/structured-caller/shared.d.ts +5 -0
- package/dist/agents/structured-caller/shared.d.ts.map +1 -0
- package/dist/agents/structured-caller/shared.js +36 -0
- package/dist/agents/structured-caller/shared.js.map +1 -0
- package/dist/agents/structured-caller.d.ts +4 -0
- package/dist/agents/structured-caller.d.ts.map +1 -0
- package/dist/agents/structured-caller.js +3 -0
- package/dist/agents/structured-caller.js.map +1 -0
- package/dist/agents/team-leader-structured-output.d.ts +19 -0
- package/dist/agents/team-leader-structured-output.d.ts.map +1 -0
- package/dist/agents/team-leader-structured-output.js +152 -0
- package/dist/agents/team-leader-structured-output.js.map +1 -0
- package/dist/agents/types.d.ts +2 -2
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/app/cli/commands.js +31 -14
- package/dist/app/cli/commands.js.map +1 -1
- package/dist/app/cli/helpers.d.ts +1 -0
- package/dist/app/cli/helpers.d.ts.map +1 -1
- package/dist/app/cli/helpers.js +8 -0
- package/dist/app/cli/helpers.js.map +1 -1
- package/dist/app/cli/program.d.ts.map +1 -1
- package/dist/app/cli/program.js +2 -1
- package/dist/app/cli/program.js.map +1 -1
- package/dist/app/cli/routing-inputs.d.ts +2 -2
- package/dist/app/cli/routing-inputs.d.ts.map +1 -1
- package/dist/app/cli/routing-inputs.js +11 -8
- package/dist/app/cli/routing-inputs.js.map +1 -1
- package/dist/app/cli/routing.d.ts.map +1 -1
- package/dist/app/cli/routing.js +12 -4
- package/dist/app/cli/routing.js.map +1 -1
- package/dist/core/models/config-schemas.d.ts +674 -0
- package/dist/core/models/config-schemas.d.ts.map +1 -0
- package/dist/core/models/config-schemas.js +143 -0
- package/dist/core/models/config-schemas.js.map +1 -0
- package/dist/core/models/config-types.d.ts +7 -2
- package/dist/core/models/config-types.d.ts.map +1 -1
- package/dist/core/models/part.d.ts +0 -2
- package/dist/core/models/part.d.ts.map +1 -1
- package/dist/core/models/piece-types.d.ts +8 -0
- package/dist/core/models/piece-types.d.ts.map +1 -1
- package/dist/core/models/piece-types.js +2 -0
- package/dist/core/models/piece-types.js.map +1 -1
- package/dist/core/models/schema-base.d.ts +493 -0
- package/dist/core/models/schema-base.d.ts.map +1 -0
- package/dist/core/models/schema-base.js +201 -0
- package/dist/core/models/schema-base.js.map +1 -0
- package/dist/core/models/schemas.d.ts +4 -1638
- package/dist/core/models/schemas.d.ts.map +1 -1
- package/dist/core/models/schemas.js +4 -563
- package/dist/core/models/schemas.js.map +1 -1
- package/dist/core/models/workflow-schemas.d.ts +1723 -0
- package/dist/core/models/workflow-schemas.d.ts.map +1 -0
- package/dist/core/models/workflow-schemas.js +217 -0
- package/dist/core/models/workflow-schemas.js.map +1 -0
- package/dist/core/piece/engine/ArpeggioRunner.d.ts +2 -6
- package/dist/core/piece/engine/ArpeggioRunner.d.ts.map +1 -1
- package/dist/core/piece/engine/ArpeggioRunner.js +2 -1
- package/dist/core/piece/engine/ArpeggioRunner.js.map +1 -1
- package/dist/core/piece/engine/MovementExecutor.d.ts +2 -6
- package/dist/core/piece/engine/MovementExecutor.d.ts.map +1 -1
- package/dist/core/piece/engine/MovementExecutor.js +2 -1
- package/dist/core/piece/engine/MovementExecutor.js.map +1 -1
- package/dist/core/piece/engine/OptionsBuilder.d.ts +1 -0
- package/dist/core/piece/engine/OptionsBuilder.d.ts.map +1 -1
- package/dist/core/piece/engine/OptionsBuilder.js +13 -34
- package/dist/core/piece/engine/OptionsBuilder.js.map +1 -1
- package/dist/core/piece/engine/ParallelRunner.d.ts +2 -6
- package/dist/core/piece/engine/ParallelRunner.d.ts.map +1 -1
- package/dist/core/piece/engine/ParallelRunner.js +109 -55
- package/dist/core/piece/engine/ParallelRunner.js.map +1 -1
- package/dist/core/piece/engine/PieceEngine.d.ts +1 -1
- package/dist/core/piece/engine/PieceEngine.d.ts.map +1 -1
- package/dist/core/piece/engine/PieceEngine.js +11 -10
- package/dist/core/piece/engine/PieceEngine.js.map +1 -1
- package/dist/core/piece/engine/TeamLeaderRunner.d.ts +0 -7
- package/dist/core/piece/engine/TeamLeaderRunner.d.ts.map +1 -1
- package/dist/core/piece/engine/TeamLeaderRunner.js +9 -6
- package/dist/core/piece/engine/TeamLeaderRunner.js.map +1 -1
- package/dist/core/piece/engine/parallel-logger.d.ts.map +1 -1
- package/dist/core/piece/engine/parallel-logger.js +2 -0
- package/dist/core/piece/engine/parallel-logger.js.map +1 -1
- package/dist/core/piece/engine/team-leader-common.d.ts.map +1 -1
- package/dist/core/piece/engine/team-leader-common.js +6 -3
- package/dist/core/piece/engine/team-leader-common.js.map +1 -1
- package/dist/core/piece/evaluation/RuleEvaluator.d.ts +6 -3
- package/dist/core/piece/evaluation/RuleEvaluator.d.ts.map +1 -1
- package/dist/core/piece/evaluation/RuleEvaluator.js +16 -14
- package/dist/core/piece/evaluation/RuleEvaluator.js.map +1 -1
- package/dist/core/piece/instruction/InstructionBuilder.d.ts +4 -4
- package/dist/core/piece/instruction/InstructionBuilder.js +9 -9
- package/dist/core/piece/instruction/InstructionBuilder.js.map +1 -1
- package/dist/core/piece/instruction/instruction-context.d.ts +1 -1
- package/dist/core/piece/instruction/instruction-context.js +5 -5
- package/dist/core/piece/instruction/instruction-context.js.map +1 -1
- package/dist/core/piece/part-definition-validator.d.ts.map +1 -1
- package/dist/core/piece/part-definition-validator.js +3 -6
- package/dist/core/piece/part-definition-validator.js.map +1 -1
- package/dist/core/piece/phase-runner.d.ts +6 -1
- package/dist/core/piece/phase-runner.d.ts.map +1 -1
- package/dist/core/piece/phase-runner.js.map +1 -1
- package/dist/core/piece/provider-resolution.d.ts +0 -2
- package/dist/core/piece/provider-resolution.d.ts.map +1 -1
- package/dist/core/piece/provider-resolution.js +0 -2
- package/dist/core/piece/provider-resolution.js.map +1 -1
- package/dist/core/piece/status-judgment-phase.d.ts.map +1 -1
- package/dist/core/piece/status-judgment-phase.js +2 -2
- package/dist/core/piece/status-judgment-phase.js.map +1 -1
- package/dist/core/piece/types.d.ts +7 -9
- package/dist/core/piece/types.d.ts.map +1 -1
- package/dist/core/runtime/runtime-environment.d.ts.map +1 -1
- package/dist/core/runtime/runtime-environment.js +15 -0
- package/dist/core/runtime/runtime-environment.js.map +1 -1
- package/dist/features/config/deploySkill.js +1 -1
- package/dist/features/config/deploySkill.js.map +1 -1
- package/dist/features/config/deploySkillCodex.js +1 -1
- package/dist/features/config/deploySkillCodex.js.map +1 -1
- package/dist/features/config/deploySkillInternal.js +5 -5
- package/dist/features/config/deploySkillInternal.js.map +1 -1
- package/dist/features/config/ejectBuiltin.d.ts +3 -3
- package/dist/features/config/ejectBuiltin.d.ts.map +1 -1
- package/dist/features/config/ejectBuiltin.js +53 -28
- package/dist/features/config/ejectBuiltin.js.map +1 -1
- package/dist/features/pieceSelection/index.d.ts.map +1 -1
- package/dist/features/pieceSelection/index.js +32 -31
- package/dist/features/pieceSelection/index.js.map +1 -1
- package/dist/features/pipeline/execute.d.ts.map +1 -1
- package/dist/features/pipeline/execute.js +9 -3
- package/dist/features/pipeline/execute.js.map +1 -1
- package/dist/features/pipeline/steps.d.ts.map +1 -1
- package/dist/features/pipeline/steps.js +25 -19
- package/dist/features/pipeline/steps.js.map +1 -1
- package/dist/features/prompt/preview.d.ts.map +1 -1
- package/dist/features/prompt/preview.js +9 -4
- package/dist/features/prompt/preview.js.map +1 -1
- package/dist/features/tasks/add/index.d.ts +2 -0
- package/dist/features/tasks/add/index.d.ts.map +1 -1
- package/dist/features/tasks/add/index.js +9 -8
- package/dist/features/tasks/add/index.js.map +1 -1
- package/dist/features/tasks/add/issueTask.d.ts +1 -0
- package/dist/features/tasks/add/issueTask.d.ts.map +1 -1
- package/dist/features/tasks/add/issueTask.js +1 -1
- package/dist/features/tasks/add/issueTask.js.map +1 -1
- package/dist/features/tasks/add/worktree-settings.d.ts.map +1 -1
- package/dist/features/tasks/add/worktree-settings.js +10 -8
- package/dist/features/tasks/add/worktree-settings.js.map +1 -1
- package/dist/features/tasks/execute/pieceExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/pieceExecution.js +28 -27
- package/dist/features/tasks/execute/pieceExecution.js.map +1 -1
- package/dist/features/tasks/execute/postExecution.js +5 -5
- package/dist/features/tasks/execute/postExecution.js.map +1 -1
- package/dist/features/tasks/execute/resolveTask.d.ts +1 -1
- package/dist/features/tasks/execute/resolveTask.d.ts.map +1 -1
- package/dist/features/tasks/execute/resolveTask.js +10 -9
- package/dist/features/tasks/execute/resolveTask.js.map +1 -1
- package/dist/features/tasks/execute/runAllTasks.d.ts +3 -0
- package/dist/features/tasks/execute/runAllTasks.d.ts.map +1 -0
- package/dist/features/tasks/execute/runAllTasks.js +81 -0
- package/dist/features/tasks/execute/runAllTasks.js.map +1 -0
- package/dist/features/tasks/execute/selectAndExecute.d.ts.map +1 -1
- package/dist/features/tasks/execute/selectAndExecute.js +2 -1
- package/dist/features/tasks/execute/selectAndExecute.js.map +1 -1
- package/dist/features/tasks/execute/taskExecution.d.ts +0 -7
- package/dist/features/tasks/execute/taskExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/taskExecution.js +17 -95
- package/dist/features/tasks/execute/taskExecution.js.map +1 -1
- package/dist/features/tasks/execute/taskResultHandler.js +1 -1
- package/dist/features/tasks/execute/taskResultHandler.js.map +1 -1
- package/dist/features/tasks/execute/types.d.ts +3 -1
- package/dist/features/tasks/execute/types.d.ts.map +1 -1
- package/dist/features/tasks/index.d.ts +2 -1
- package/dist/features/tasks/index.d.ts.map +1 -1
- package/dist/features/tasks/index.js +2 -1
- package/dist/features/tasks/index.js.map +1 -1
- package/dist/features/tasks/list/listNonInteractive.d.ts.map +1 -1
- package/dist/features/tasks/list/listNonInteractive.js +6 -2
- package/dist/features/tasks/list/listNonInteractive.js.map +1 -1
- package/dist/features/tasks/list/requeueHelpers.d.ts.map +1 -1
- package/dist/features/tasks/list/requeueHelpers.js +2 -1
- package/dist/features/tasks/list/requeueHelpers.js.map +1 -1
- package/dist/features/tasks/list/taskRetryActions.d.ts.map +1 -1
- package/dist/features/tasks/list/taskRetryActions.js +12 -11
- package/dist/features/tasks/list/taskRetryActions.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/claude/client.d.ts.map +1 -1
- package/dist/infra/claude/client.js +2 -13
- package/dist/infra/claude/client.js.map +1 -1
- package/dist/infra/claude/executor.d.ts +1 -1
- package/dist/infra/claude/executor.d.ts.map +1 -1
- package/dist/infra/claude/executor.js +47 -27
- package/dist/infra/claude/executor.js.map +1 -1
- package/dist/infra/claude/options-builder.d.ts.map +1 -1
- package/dist/infra/claude/options-builder.js +2 -0
- package/dist/infra/claude/options-builder.js.map +1 -1
- package/dist/infra/claude/stream-converter.d.ts.map +1 -1
- package/dist/infra/claude/stream-converter.js +26 -0
- package/dist/infra/claude/stream-converter.js.map +1 -1
- package/dist/infra/claude/types.d.ts +23 -0
- package/dist/infra/claude/types.d.ts.map +1 -1
- package/dist/infra/codex/client.d.ts.map +1 -1
- package/dist/infra/codex/client.js +1 -0
- package/dist/infra/codex/client.js.map +1 -1
- package/dist/infra/codex/types.d.ts +2 -0
- package/dist/infra/codex/types.d.ts.map +1 -1
- package/dist/infra/codex/types.js.map +1 -1
- package/dist/infra/config/configKeyAliases.d.ts +17 -0
- package/dist/infra/config/configKeyAliases.d.ts.map +1 -0
- package/dist/infra/config/configKeyAliases.js +82 -0
- package/dist/infra/config/configKeyAliases.js.map +1 -0
- package/dist/infra/config/configNormalizers.d.ts +7 -6
- package/dist/infra/config/configNormalizers.d.ts.map +1 -1
- package/dist/infra/config/configNormalizers.js +25 -10
- package/dist/infra/config/configNormalizers.js.map +1 -1
- package/dist/infra/config/env/config-env-overrides.d.ts +6 -3
- package/dist/infra/config/env/config-env-overrides.d.ts.map +1 -1
- package/dist/infra/config/env/config-env-overrides.js +5 -194
- package/dist/infra/config/env/config-env-overrides.js.map +1 -1
- package/dist/infra/config/env/config-env-shared.d.ts +16 -0
- package/dist/infra/config/env/config-env-shared.d.ts.map +1 -0
- package/dist/infra/config/env/config-env-shared.js +62 -0
- package/dist/infra/config/env/config-env-shared.js.map +1 -0
- package/dist/infra/config/env/global-current-env-specs.d.ts +3 -0
- package/dist/infra/config/env/global-current-env-specs.d.ts.map +1 -0
- package/dist/infra/config/env/global-current-env-specs.js +63 -0
- package/dist/infra/config/env/global-current-env-specs.js.map +1 -0
- package/dist/infra/config/env/global-legacy-env-specs.d.ts +3 -0
- package/dist/infra/config/env/global-legacy-env-specs.d.ts.map +1 -0
- package/dist/infra/config/env/global-legacy-env-specs.js +122 -0
- package/dist/infra/config/env/global-legacy-env-specs.js.map +1 -0
- package/dist/infra/config/env/project-current-env-specs.d.ts +3 -0
- package/dist/infra/config/env/project-current-env-specs.d.ts.map +1 -0
- package/dist/infra/config/env/project-current-env-specs.js +35 -0
- package/dist/infra/config/env/project-current-env-specs.js.map +1 -0
- package/dist/infra/config/env/project-legacy-env-specs.d.ts +3 -0
- package/dist/infra/config/env/project-legacy-env-specs.d.ts.map +1 -0
- package/dist/infra/config/env/project-legacy-env-specs.js +80 -0
- package/dist/infra/config/env/project-legacy-env-specs.js.map +1 -0
- package/dist/infra/config/global/globalConfigCore.d.ts +4 -0
- package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfigCore.js +67 -38
- package/dist/infra/config/global/globalConfigCore.js.map +1 -1
- package/dist/infra/config/global/globalConfigSerializer.js +9 -9
- package/dist/infra/config/global/globalConfigSerializer.js.map +1 -1
- package/dist/infra/config/issuePath.d.ts +2 -0
- package/dist/infra/config/issuePath.d.ts.map +1 -0
- package/dist/infra/config/issuePath.js +6 -0
- package/dist/infra/config/issuePath.js.map +1 -0
- package/dist/infra/config/loaders/agentLoader.d.ts +1 -1
- package/dist/infra/config/loaders/agentLoader.js +3 -3
- package/dist/infra/config/loaders/agentLoader.js.map +1 -1
- package/dist/infra/config/loaders/pieceCategories.d.ts +3 -3
- package/dist/infra/config/loaders/pieceCategories.d.ts.map +1 -1
- package/dist/infra/config/loaders/pieceCategories.js +53 -17
- package/dist/infra/config/loaders/pieceCategories.js.map +1 -1
- package/dist/infra/config/loaders/pieceLoadWarning.d.ts +2 -0
- package/dist/infra/config/loaders/pieceLoadWarning.d.ts.map +1 -0
- package/dist/infra/config/loaders/pieceLoadWarning.js +22 -0
- package/dist/infra/config/loaders/pieceLoadWarning.js.map +1 -0
- package/dist/infra/config/loaders/pieceParser.d.ts.map +1 -1
- package/dist/infra/config/loaders/pieceParser.js +6 -14
- package/dist/infra/config/loaders/pieceParser.js.map +1 -1
- package/dist/infra/config/loaders/pieceResolver.d.ts +25 -22
- package/dist/infra/config/loaders/pieceResolver.d.ts.map +1 -1
- package/dist/infra/config/loaders/pieceResolver.js +80 -72
- package/dist/infra/config/loaders/pieceResolver.js.map +1 -1
- package/dist/infra/config/paths.d.ts +6 -2
- package/dist/infra/config/paths.d.ts.map +1 -1
- package/dist/infra/config/paths.js +11 -3
- package/dist/infra/config/paths.js.map +1 -1
- package/dist/infra/config/project/projectConfig.d.ts +2 -6
- package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
- package/dist/infra/config/project/projectConfig.js +39 -65
- package/dist/infra/config/project/projectConfig.js.map +1 -1
- package/dist/infra/config/project/projectConfigTransforms.d.ts +0 -1
- package/dist/infra/config/project/projectConfigTransforms.d.ts.map +1 -1
- package/dist/infra/config/project/projectConfigTransforms.js +0 -5
- package/dist/infra/config/project/projectConfigTransforms.js.map +1 -1
- package/dist/infra/config/project/projectConfigValidation.d.ts +2 -0
- package/dist/infra/config/project/projectConfigValidation.d.ts.map +1 -0
- package/dist/infra/config/project/projectConfigValidation.js +17 -0
- package/dist/infra/config/project/projectConfigValidation.js.map +1 -0
- 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 +93 -5
- package/dist/infra/config/providerOptions.js.map +1 -1
- package/dist/infra/config/providerOptionsContract.d.ts +14 -0
- package/dist/infra/config/providerOptionsContract.d.ts.map +1 -0
- package/dist/infra/config/providerOptionsContract.js +80 -0
- package/dist/infra/config/providerOptionsContract.js.map +1 -0
- package/dist/infra/config/resolutionCache.d.ts +3 -0
- package/dist/infra/config/resolutionCache.d.ts.map +1 -1
- package/dist/infra/config/resolutionCache.js +9 -0
- package/dist/infra/config/resolutionCache.js.map +1 -1
- package/dist/infra/config/resolveConfigValue.d.ts +6 -0
- package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
- package/dist/infra/config/resolveConfigValue.js +97 -16
- 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/tracedConfigLegacyEnvAdapter.d.ts +4 -0
- package/dist/infra/config/traced/tracedConfigLegacyEnvAdapter.d.ts.map +1 -0
- package/dist/infra/config/traced/tracedConfigLegacyEnvAdapter.js +47 -0
- package/dist/infra/config/traced/tracedConfigLegacyEnvAdapter.js.map +1 -0
- package/dist/infra/config/traced/tracedConfigLoader.d.ts +32 -0
- package/dist/infra/config/traced/tracedConfigLoader.d.ts.map +1 -0
- package/dist/infra/config/traced/tracedConfigLoader.js +153 -0
- package/dist/infra/config/traced/tracedConfigLoader.js.map +1 -0
- package/dist/infra/config/traced/tracedConfigRuntimeBridge.d.ts +3 -0
- package/dist/infra/config/traced/tracedConfigRuntimeBridge.d.ts.map +1 -0
- package/dist/infra/config/traced/tracedConfigRuntimeBridge.js +135 -0
- package/dist/infra/config/traced/tracedConfigRuntimeBridge.js.map +1 -0
- package/dist/infra/config/traced/tracedConfigSchema.d.ts +5 -0
- package/dist/infra/config/traced/tracedConfigSchema.d.ts.map +1 -0
- package/dist/infra/config/traced/tracedConfigSchema.js +215 -0
- package/dist/infra/config/traced/tracedConfigSchema.js.map +1 -0
- package/dist/infra/cursor/client.js +1 -1
- package/dist/infra/cursor/client.js.map +1 -1
- package/dist/infra/git/detect.d.ts +1 -1
- package/dist/infra/git/detect.d.ts.map +1 -1
- package/dist/infra/git/detect.js +2 -2
- package/dist/infra/git/detect.js.map +1 -1
- package/dist/infra/git/index.d.ts +2 -2
- package/dist/infra/git/index.d.ts.map +1 -1
- package/dist/infra/git/index.js +8 -8
- package/dist/infra/git/index.js.map +1 -1
- package/dist/infra/git/types.d.ts +5 -5
- package/dist/infra/git/types.d.ts.map +1 -1
- package/dist/infra/github/GitHubProvider.d.ts +7 -7
- package/dist/infra/github/GitHubProvider.d.ts.map +1 -1
- package/dist/infra/github/GitHubProvider.js +14 -14
- package/dist/infra/github/GitHubProvider.js.map +1 -1
- package/dist/infra/github/issue.d.ts +3 -3
- package/dist/infra/github/issue.d.ts.map +1 -1
- package/dist/infra/github/issue.js +11 -9
- package/dist/infra/github/issue.js.map +1 -1
- package/dist/infra/github/pr.d.ts +4 -4
- package/dist/infra/github/pr.d.ts.map +1 -1
- package/dist/infra/github/pr.js +11 -11
- package/dist/infra/github/pr.js.map +1 -1
- package/dist/infra/gitlab/GitLabProvider.d.ts +5 -5
- package/dist/infra/gitlab/GitLabProvider.d.ts.map +1 -1
- package/dist/infra/gitlab/GitLabProvider.js +10 -10
- package/dist/infra/gitlab/GitLabProvider.js.map +1 -1
- package/dist/infra/gitlab/issue.d.ts +1 -1
- package/dist/infra/gitlab/issue.d.ts.map +1 -1
- package/dist/infra/gitlab/issue.js +3 -3
- package/dist/infra/gitlab/issue.js.map +1 -1
- package/dist/infra/gitlab/pr.d.ts +4 -4
- package/dist/infra/gitlab/pr.d.ts.map +1 -1
- package/dist/infra/gitlab/pr.js +8 -8
- package/dist/infra/gitlab/pr.js.map +1 -1
- package/dist/infra/gitlab/utils.d.ts +1 -1
- package/dist/infra/gitlab/utils.d.ts.map +1 -1
- package/dist/infra/gitlab/utils.js +4 -4
- package/dist/infra/gitlab/utils.js.map +1 -1
- package/dist/infra/providers/claude.d.ts +1 -0
- package/dist/infra/providers/claude.d.ts.map +1 -1
- package/dist/infra/providers/claude.js +2 -0
- package/dist/infra/providers/claude.js.map +1 -1
- package/dist/infra/providers/codex.d.ts +1 -0
- package/dist/infra/providers/codex.d.ts.map +1 -1
- package/dist/infra/providers/codex.js +2 -0
- package/dist/infra/providers/codex.js.map +1 -1
- package/dist/infra/providers/copilot.d.ts +1 -0
- package/dist/infra/providers/copilot.d.ts.map +1 -1
- package/dist/infra/providers/copilot.js +1 -0
- package/dist/infra/providers/copilot.js.map +1 -1
- package/dist/infra/providers/cursor.d.ts +1 -0
- package/dist/infra/providers/cursor.d.ts.map +1 -1
- package/dist/infra/providers/cursor.js +1 -0
- package/dist/infra/providers/cursor.js.map +1 -1
- package/dist/infra/providers/mock.d.ts +1 -0
- package/dist/infra/providers/mock.d.ts.map +1 -1
- package/dist/infra/providers/mock.js +1 -0
- package/dist/infra/providers/mock.js.map +1 -1
- package/dist/infra/providers/opencode.d.ts +1 -0
- 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/types.d.ts +1 -0
- package/dist/infra/providers/types.d.ts.map +1 -1
- package/dist/infra/resources/index.d.ts +1 -1
- package/dist/infra/resources/index.js +1 -1
- package/dist/infra/task/display.js +2 -2
- package/dist/infra/task/display.js.map +1 -1
- package/dist/infra/task/index.d.ts +2 -1
- package/dist/infra/task/index.d.ts.map +1 -1
- package/dist/infra/task/index.js +2 -1
- package/dist/infra/task/index.js.map +1 -1
- package/dist/infra/task/listSerializer.d.ts +41 -0
- package/dist/infra/task/listSerializer.d.ts.map +1 -0
- package/dist/infra/task/listSerializer.js +51 -0
- package/dist/infra/task/listSerializer.js.map +1 -0
- package/dist/infra/task/schema.d.ts +208 -12
- package/dist/infra/task/schema.d.ts.map +1 -1
- package/dist/infra/task/schema.js +78 -5
- package/dist/infra/task/schema.js.map +1 -1
- package/dist/infra/task/store.d.ts.map +1 -1
- package/dist/infra/task/store.js +2 -2
- package/dist/infra/task/store.js.map +1 -1
- package/dist/shared/i18n/labels_en.yaml +6 -6
- package/dist/shared/i18n/labels_ja.yaml +6 -6
- package/dist/shared/prompts/en/perform_agent_system_prompt.md +6 -6
- package/dist/shared/prompts/en/perform_builtin_agent_system_prompt.md +1 -1
- package/dist/shared/prompts/en/perform_judge_message.md +1 -1
- package/dist/shared/prompts/en/perform_phase1_message.md +9 -9
- package/dist/shared/prompts/en/perform_phase2_message.md +2 -2
- package/dist/shared/prompts/en/score_instruct_system_prompt.md +7 -7
- package/dist/shared/prompts/en/score_interactive_policy.md +10 -10
- package/dist/shared/prompts/en/score_interactive_system_prompt.md +9 -9
- package/dist/shared/prompts/en/score_retry_system_prompt.md +8 -8
- package/dist/shared/prompts/en/score_summary_system_prompt.md +4 -4
- package/dist/shared/prompts/ja/perform_agent_system_prompt.md +6 -6
- package/dist/shared/prompts/ja/perform_builtin_agent_system_prompt.md +1 -1
- package/dist/shared/prompts/ja/perform_judge_message.md +1 -1
- package/dist/shared/prompts/ja/perform_phase1_message.md +9 -9
- package/dist/shared/prompts/ja/perform_phase2_message.md +2 -2
- package/dist/shared/prompts/ja/score_instruct_system_prompt.md +7 -7
- package/dist/shared/prompts/ja/score_interactive_policy.md +10 -10
- package/dist/shared/prompts/ja/score_interactive_system_prompt.md +9 -9
- package/dist/shared/prompts/ja/score_retry_system_prompt.md +8 -8
- package/dist/shared/prompts/ja/score_summary_system_prompt.md +7 -7
- package/dist/shared/types/provider.d.ts +20 -0
- package/dist/shared/types/provider.d.ts.map +1 -1
- package/dist/shared/ui/StreamDisplay.d.ts.map +1 -1
- package/dist/shared/ui/StreamDisplay.js +2 -0
- package/dist/shared/ui/StreamDisplay.js.map +1 -1
- package/dist/shared/utils/slackWebhook.js +2 -2
- package/dist/shared/utils/slackWebhook.js.map +1 -1
- package/dist/shared/utils/text.d.ts +4 -0
- package/dist/shared/utils/text.d.ts.map +1 -1
- package/dist/shared/utils/text.js +29 -0
- package/dist/shared/utils/text.js.map +1 -1
- package/package.json +3 -2
- package/builtins/en/pieces/fill-e2e.yaml +0 -239
- package/builtins/en/pieces/fill-unit.yaml +0 -269
- package/builtins/ja/pieces/fill-e2e.yaml +0 -239
- package/builtins/ja/pieces/fill-unit.yaml +0 -269
- package/dist/agents/ai-judge.d.ts +0 -15
- package/dist/agents/ai-judge.d.ts.map +0 -1
- package/dist/agents/ai-judge.js +0 -23
- package/dist/agents/ai-judge.js.map +0 -1
- /package/builtins/en/facets/instructions/{security-audit-plan.md → audit-security-plan.md} +0 -0
- /package/builtins/en/facets/instructions/{security-audit-review.md → audit-security-review.md} +0 -0
- /package/builtins/en/facets/instructions/{security-audit-supervise.md → audit-security-supervise.md} +0 -0
- /package/builtins/en/facets/instructions/{security-audit-team-leader.md → audit-security-team-leader.md} +0 -0
- /package/builtins/ja/facets/instructions/{security-audit-plan.md → audit-security-plan.md} +0 -0
- /package/builtins/ja/facets/instructions/{security-audit-review.md → audit-security-review.md} +0 -0
- /package/builtins/ja/facets/instructions/{security-audit-supervise.md → audit-security-supervise.md} +0 -0
- /package/builtins/ja/facets/instructions/{security-audit-team-leader.md → audit-security-team-leader.md} +0 -0
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**T**AKT **A**gent **K**oordination **T**opology — Give your AI coding agents structured review loops, managed prompts, and guardrails — so they deliver quality code, not just code.
|
|
6
6
|
|
|
7
|
-
TAKT runs AI agents (Claude Code, Codex, OpenCode, Cursor, GitHub Copilot CLI) through YAML-defined workflows with built-in review cycles. You talk to AI to define what you want, queue tasks, and let TAKT handle the execution — planning, implementation, multi-stage review, and fix loops — all governed by declarative
|
|
7
|
+
TAKT runs AI agents (Claude Code, Codex, OpenCode, Cursor, GitHub Copilot CLI) through YAML-defined workflows with built-in review cycles. You talk to AI to define what you want, queue tasks, and let TAKT handle the execution — planning, implementation, multi-stage review, and fix loops — all governed by declarative workflow files.
|
|
8
8
|
|
|
9
9
|
TAKT is built with TAKT itself (dogfooding).
|
|
10
10
|
|
|
@@ -14,7 +14,7 @@ TAKT is built with TAKT itself (dogfooding).
|
|
|
14
14
|
|
|
15
15
|
**Practical** — A tool for daily development, not demos. Talk to AI to refine requirements, queue tasks, and run them. Worktree isolation on task execution, PR creation, and retry on failure.
|
|
16
16
|
|
|
17
|
-
**Reproducible** — Execution paths are declared in YAML, keeping results consistent.
|
|
17
|
+
**Reproducible** — Execution paths are declared in YAML, keeping results consistent. Workflows are shareable — a workflow built by one team member can be used by anyone else to run the same quality process. Every step is logged in NDJSON for full traceability from task to PR.
|
|
18
18
|
|
|
19
19
|
**Multi-agent** — Orchestrate multiple agents with different personas, permissions, and review criteria. Run parallel reviewers, route failures back to implementers, aggregate results with declarative rules. Prompts are managed as independent facets (persona, policy, knowledge, instruction) that compose freely across workflows ([Faceted Prompting](./docs/faceted-prompting.md)).
|
|
20
20
|
|
|
@@ -45,7 +45,7 @@ npm install -g takt
|
|
|
45
45
|
```
|
|
46
46
|
$ takt
|
|
47
47
|
|
|
48
|
-
Select
|
|
48
|
+
Select workflow:
|
|
49
49
|
❯ 🎼 default (current)
|
|
50
50
|
📁 🚀 Quick Start/
|
|
51
51
|
📁 🎨 Frontend/
|
|
@@ -67,7 +67,7 @@ What would you like to do?
|
|
|
67
67
|
Continue conversation
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
Choosing "Queue as task" saves the task to `.takt/tasks/`. Run `takt run` to execute — TAKT creates an isolated worktree, runs the
|
|
70
|
+
Choosing "Queue as task" saves the task to `.takt/tasks/`. Run `takt run` to execute — TAKT creates an isolated worktree, runs the workflow (plan → implement → review → fix loop), and offers to create a PR when done.
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
73
|
# Execute queued tasks
|
|
@@ -81,7 +81,7 @@ takt add #12
|
|
|
81
81
|
takt run
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
> **"Execute now"** runs the
|
|
84
|
+
> **"Execute now"** runs the workflow directly in your current directory without worktree isolation. Useful for quick experiments, but note that changes go straight into your working tree.
|
|
85
85
|
|
|
86
86
|
### Manage results
|
|
87
87
|
|
|
@@ -92,16 +92,16 @@ takt list
|
|
|
92
92
|
|
|
93
93
|
## How It Works
|
|
94
94
|
|
|
95
|
-
TAKT uses a music metaphor — the name itself comes from the German word for "beat" or "baton stroke," used in conducting to keep an orchestra in time.
|
|
95
|
+
TAKT uses a music metaphor — the name itself comes from the German word for "beat" or "baton stroke," used in conducting to keep an orchestra in time. User-facing terminology uses **workflow** and **step**, while the internal canonical names remain **piece** and **movement** for backward compatibility.
|
|
96
96
|
|
|
97
|
-
A
|
|
97
|
+
A workflow is defined by a sequence of steps. Public YAML examples use `steps` and `initial_step`, while legacy `movements` and `initial_movement` are still accepted as compatibility aliases. Each step specifies a persona (who), permissions (what's allowed), and rules (what happens next). Here's a minimal example:
|
|
98
98
|
|
|
99
99
|
```yaml
|
|
100
100
|
name: plan-implement-review
|
|
101
|
-
|
|
101
|
+
initial_step: plan
|
|
102
102
|
max_movements: 10
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
steps:
|
|
105
105
|
- name: plan
|
|
106
106
|
persona: planner
|
|
107
107
|
edit: false
|
|
@@ -127,18 +127,22 @@ movements:
|
|
|
127
127
|
next: implement # ← fix loop
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
-
Rules determine the next
|
|
130
|
+
Rules determine the next step. `COMPLETE` ends the workflow successfully, `ABORT` ends with failure. See the [Workflow Guide](./docs/pieces.md) for the full schema, parallel steps, and rule condition types.
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
Workflow files live in `workflows/` as the official directory name. TAKT still accepts legacy `pieces/` directories and `--piece` / legacy YAML keys as compatibility input, but normal docs and UI use `workflow` / `step`.
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
When the same workflow name exists in multiple locations, TAKT resolves in this order: `.takt/workflows/` → `.takt/pieces/` → `~/.takt/workflows/` → `~/.takt/pieces/` → builtins.
|
|
135
|
+
|
|
136
|
+
## Recommended Workflows
|
|
137
|
+
|
|
138
|
+
| Workflow | Use Case |
|
|
135
139
|
|-------|----------|
|
|
136
140
|
| `default` | Standard development. Test-first with AI antipattern review and parallel review (architecture + supervisor). |
|
|
137
141
|
| `frontend-mini` | Frontend-focused mini configuration. |
|
|
138
142
|
| `backend-mini` | Backend-focused mini configuration. |
|
|
139
143
|
| `dual-mini` | Frontend + backend mini configuration. |
|
|
140
144
|
|
|
141
|
-
See the [Builtin Catalog](./docs/builtin-catalog.md) for all
|
|
145
|
+
See the [Builtin Catalog](./docs/builtin-catalog.md) for all workflows and personas.
|
|
142
146
|
|
|
143
147
|
## Key Commands
|
|
144
148
|
|
|
@@ -148,7 +152,7 @@ See the [Builtin Catalog](./docs/builtin-catalog.md) for all pieces and personas
|
|
|
148
152
|
| `takt run` | Execute all pending tasks |
|
|
149
153
|
| `takt list` | Manage task branches (merge, retry, instruct, delete) |
|
|
150
154
|
| `takt #N` | Execute GitHub Issue as task |
|
|
151
|
-
| `takt eject` | Copy builtin
|
|
155
|
+
| `takt eject` | Copy builtin workflows/facets for customization |
|
|
152
156
|
| `takt repertoire add` | Install a repertoire package from GitHub |
|
|
153
157
|
|
|
154
158
|
See the [CLI Reference](./docs/cli-reference.md) for all commands and options.
|
|
@@ -177,10 +181,10 @@ See the [Configuration Guide](./docs/configuration.md) for all options, provider
|
|
|
177
181
|
|
|
178
182
|
## Customization
|
|
179
183
|
|
|
180
|
-
### Custom
|
|
184
|
+
### Custom workflows
|
|
181
185
|
|
|
182
186
|
```bash
|
|
183
|
-
takt eject default # Copy builtin to ~/.takt/
|
|
187
|
+
takt eject default # Copy builtin workflow to ~/.takt/workflows/ and edit
|
|
184
188
|
```
|
|
185
189
|
|
|
186
190
|
### Custom personas
|
|
@@ -192,9 +196,9 @@ Create a Markdown file in `~/.takt/personas/`:
|
|
|
192
196
|
You are a code reviewer specialized in security.
|
|
193
197
|
```
|
|
194
198
|
|
|
195
|
-
Reference it in your
|
|
199
|
+
Reference it in your workflow: `persona: my-reviewer`
|
|
196
200
|
|
|
197
|
-
See the [
|
|
201
|
+
See the [Workflow Guide](./docs/pieces.md) and [Agent Guide](./docs/agents.md) for details.
|
|
198
202
|
|
|
199
203
|
## CI/CD
|
|
200
204
|
|
|
@@ -220,25 +224,28 @@ See the [CI/CD Guide](./docs/ci-cd.md) for full setup instructions.
|
|
|
220
224
|
```
|
|
221
225
|
~/.takt/ # Global config
|
|
222
226
|
├── config.yaml # Provider, model, language, etc.
|
|
223
|
-
├──
|
|
227
|
+
├── workflows/ # User workflow definitions
|
|
224
228
|
├── facets/ # User facets (personas, policies, knowledge, etc.)
|
|
225
229
|
└── repertoire/ # Installed repertoire packages
|
|
226
230
|
|
|
227
231
|
.takt/ # Project-level
|
|
228
232
|
├── config.yaml # Project config
|
|
233
|
+
├── workflows/ # Project workflow overrides
|
|
229
234
|
├── facets/ # Project facets
|
|
230
235
|
├── tasks.yaml # Pending tasks
|
|
231
236
|
├── tasks/ # Task specifications
|
|
232
237
|
└── runs/ # Execution reports, logs, context
|
|
233
238
|
```
|
|
234
239
|
|
|
240
|
+
Legacy `pieces/` directories are still read for compatibility, but `workflows/` is the canonical name in current docs and CLI output.
|
|
241
|
+
|
|
235
242
|
## API Usage
|
|
236
243
|
|
|
237
244
|
```typescript
|
|
238
245
|
import { PieceEngine, loadPiece } from 'takt';
|
|
239
246
|
|
|
240
247
|
const config = loadPiece('default');
|
|
241
|
-
if (!config) throw new Error('
|
|
248
|
+
if (!config) throw new Error('Workflow not found');
|
|
242
249
|
|
|
243
250
|
const engine = new PieceEngine(config, process.cwd(), 'My task');
|
|
244
251
|
engine.on('movement:complete', (movement, response) => {
|
|
@@ -254,9 +261,9 @@ await engine.run();
|
|
|
254
261
|
|----------|-------------|
|
|
255
262
|
| [CLI Reference](./docs/cli-reference.md) | All commands and options |
|
|
256
263
|
| [Configuration](./docs/configuration.md) | Global and project settings |
|
|
257
|
-
| [
|
|
264
|
+
| [Workflow Guide](./docs/pieces.md) | Creating and customizing workflows |
|
|
258
265
|
| [Agent Guide](./docs/agents.md) | Custom agent configuration |
|
|
259
|
-
| [Builtin Catalog](./docs/builtin-catalog.md) | All builtin
|
|
266
|
+
| [Builtin Catalog](./docs/builtin-catalog.md) | All builtin workflows and personas |
|
|
260
267
|
| [Faceted Prompting](./docs/faceted-prompting.md) | Prompt design methodology |
|
|
261
268
|
| [Repertoire Packages](./docs/repertoire.md) | Installing and sharing packages |
|
|
262
269
|
| [Task Management](./docs/task-management.md) | Task queuing, execution, isolation |
|
package/builtins/en/config.yaml
CHANGED
|
@@ -34,8 +34,8 @@ language: en # UI language: en | ja
|
|
|
34
34
|
# notification_sound: true # Master switch for sounds
|
|
35
35
|
# notification_sound_events: # Per-event sound toggle (unset means true)
|
|
36
36
|
# iteration_limit: true
|
|
37
|
-
#
|
|
38
|
-
#
|
|
37
|
+
# workflow_complete: true
|
|
38
|
+
# workflow_abort: true
|
|
39
39
|
# run_complete: true
|
|
40
40
|
# run_abort: true
|
|
41
41
|
# logging:
|
|
@@ -82,12 +82,12 @@ language: en # UI language: en | ja
|
|
|
82
82
|
# runtime:
|
|
83
83
|
# prepare: [node, gradle, ./custom-script.sh]
|
|
84
84
|
|
|
85
|
-
#
|
|
86
|
-
#
|
|
85
|
+
# Workflow-level overrides
|
|
86
|
+
# workflow_overrides:
|
|
87
87
|
# quality_gates:
|
|
88
88
|
# - "All tests pass"
|
|
89
89
|
# quality_gates_edit_only: true
|
|
90
|
-
#
|
|
90
|
+
# steps:
|
|
91
91
|
# review:
|
|
92
92
|
# quality_gates:
|
|
93
93
|
# - "No security vulnerabilities"
|
|
@@ -116,8 +116,8 @@ language: en # UI language: en | ja
|
|
|
116
116
|
# Misc
|
|
117
117
|
# bookmarks_file: ~/.takt/preferences/bookmarks.yaml # Bookmark file location
|
|
118
118
|
|
|
119
|
-
#
|
|
120
|
-
#
|
|
119
|
+
# Workflow list / categories
|
|
120
|
+
# enable_builtin_workflows: true # Enable built-in workflows from builtins/{lang}/workflows
|
|
121
121
|
# disabled_builtins:
|
|
122
122
|
# - magi # Built-in piece names to disable
|
|
123
|
-
#
|
|
123
|
+
# workflow_categories_file: ~/.takt/preferences/workflow-categories.yaml # Category definition file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Audit the project architecture before making changes.
|
|
2
|
+
|
|
3
|
+
**What to do:**
|
|
4
|
+
1. Enumerate the main modules, layers, boundaries, and public entry points using Read, Glob, and Grep
|
|
5
|
+
2. Identify the dependency directions, shared abstractions, and major call chains
|
|
6
|
+
3. Build an audit scope that covers all modules relevant to structure, ownership, and wiring
|
|
7
|
+
4. Highlight modules with higher architectural risk (boundary leaks, giant files, scattered logic, coupling hotspots)
|
|
8
|
+
5. Prepare an audit order that reviews the highest-risk modules first
|
|
9
|
+
|
|
10
|
+
**Important:**
|
|
11
|
+
- Start from full module and boundary enumeration, not from a few suspicious files
|
|
12
|
+
- Focus on structure and wiring, not style-only comments
|
|
13
|
+
- If the architecture cannot be inferred from code alone, state the missing evidence explicitly
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Re-audit the modules or boundaries that were judged insufficient in the previous architecture audit.
|
|
2
|
+
|
|
3
|
+
**Important:** Refer to these reports:
|
|
4
|
+
- Plan report: {report:01-architecture-audit-plan.md}
|
|
5
|
+
- Audit report: {report:02-architecture-audit.md}
|
|
6
|
+
|
|
7
|
+
**What to do:**
|
|
8
|
+
1. Read the flagged modules, boundaries, and call chains in full
|
|
9
|
+
2. Re-check the structural claims and identify what was previously skipped or weakly evidenced
|
|
10
|
+
3. Update the audit result with concrete file evidence, explicit scope coverage, and missing-item reasons where applicable
|
|
11
|
+
|
|
12
|
+
**Strictly prohibited:**
|
|
13
|
+
- Modifying production code
|
|
14
|
+
- Claiming a boundary or dependency direction is valid without file evidence
|
|
15
|
+
- Skipping a flagged module because it "looks standard"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Verify the completeness and quality of the architecture audit itself.
|
|
2
|
+
|
|
3
|
+
**Important:** Refer to these reports:
|
|
4
|
+
- Plan report: {report:01-architecture-audit-plan.md}
|
|
5
|
+
- Audit report: {report:02-architecture-audit.md}
|
|
6
|
+
|
|
7
|
+
**Verification procedure:**
|
|
8
|
+
1. Cross-check the module inventory from the plan against the audited modules in the audit report
|
|
9
|
+
2. Reject if important modules or boundaries remain unaudited
|
|
10
|
+
3. Reject if key dependency directions, wiring paths, ownership boundaries, or call chains from the plan are missing from the audit result without an explicit reason
|
|
11
|
+
4. Verify the audit report includes concrete structural evidence, not just design opinions
|
|
12
|
+
5. Verify the report includes the enumeration commands used and that they are sufficient to support the claimed scope
|
|
13
|
+
6. Sample-read a few high-risk modules yourself to confirm the structural claims are credible
|
|
14
|
+
7. Require re-audit if findings or suggested issue titles are too vague to file directly
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Decompose the architecture audit, assign modules to each part, and execute in parallel.
|
|
2
|
+
|
|
3
|
+
**Important:** Refer to the plan report: {report:01-architecture-audit-plan.md}
|
|
4
|
+
|
|
5
|
+
**What to do:**
|
|
6
|
+
1. Review the module inventory and architectural risk areas from the plan report
|
|
7
|
+
2. Split the audit into 3 groups by module or boundary
|
|
8
|
+
3. Assign exclusive ownership to each part so every relevant module is audited once
|
|
9
|
+
|
|
10
|
+
**Each part's instruction MUST include:**
|
|
11
|
+
- Assigned module and file list
|
|
12
|
+
- The boundaries and call chains to verify
|
|
13
|
+
- Required audit procedure:
|
|
14
|
+
1. Read the assigned files in full
|
|
15
|
+
2. Trace dependency direction, entry points, and shared abstractions
|
|
16
|
+
3. Record structural findings with concrete file evidence
|
|
17
|
+
- Completion criteria: every assigned module has been audited and all findings are reported with evidence
|
|
18
|
+
|
|
19
|
+
**Constraints:**
|
|
20
|
+
- Each part is read-only
|
|
21
|
+
- Do not audit files outside the assignment
|
|
22
|
+
- Prefer evidence from code structure and call chains over style-only comments
|
|
@@ -10,6 +10,8 @@ Analyze the implementation task and, if decomposition is appropriate, split into
|
|
|
10
10
|
- If few files are involved, or the task is a rename/refactoring, implement in a single part
|
|
11
11
|
|
|
12
12
|
2. If decomposing: prioritize splitting along frontend and backend boundaries
|
|
13
|
+
- **If design references exist and backend changes are not explicitly required, do not decompose.** Visual structure, copy, spacing, and styling are tightly coupled, and splitting them increases design drift risk
|
|
14
|
+
- **If design references exist, keep all UI components of the same screen in the same part.** Do not split headers, filters, cards, banners, and modals of one screen across different parts
|
|
13
15
|
- Splitting between frontend (UI, components, styles) and backend (API, logic, data layer) is the most natural decomposition axis
|
|
14
16
|
- When API contracts (request/response types) are defined, parallel implementation works well
|
|
15
17
|
- When API contracts are undecided, implement backend first in one part and defer frontend
|
|
@@ -24,9 +26,13 @@ Analyze the implementation task and, if decomposition is appropriate, split into
|
|
|
24
26
|
- **Reference-only files** (read-only, modification prohibited)
|
|
25
27
|
- **Implementation task** (what and how to implement)
|
|
26
28
|
- **Completion criteria** (implementation of responsible files is complete)
|
|
29
|
+
- When design references exist, each part instruction must also include:
|
|
30
|
+
- **Design references** (which files are the primary source of truth)
|
|
31
|
+
- **Elements to verify** (layout, copy, color, spacing, and navigation flow)
|
|
27
32
|
- If tests are already written, instruct parts to implement so existing tests pass
|
|
28
|
-
-
|
|
33
|
+
- Refer to Quality Gates and plan any required verification as a dedicated single verification part
|
|
34
|
+
- Do not make parallel implementation parts run duplicate full-build or full-test checks
|
|
29
35
|
|
|
30
36
|
**Constraints:**
|
|
31
|
-
-
|
|
37
|
+
- If tests or build verification are needed, run them as a dedicated single verification part after dependent implementation parts are complete
|
|
32
38
|
- Do not modify files outside your responsibility (causes conflicts)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Audit the target for E2E coverage before making changes.
|
|
2
|
+
|
|
3
|
+
**What to do:**
|
|
4
|
+
1. Enumerate all user entry points, major routes, task flows, and failure paths from the codebase
|
|
5
|
+
2. Read the existing E2E tests and map which flows and scenarios are already covered
|
|
6
|
+
3. Build a complete list of auditable user flows and scenario variants
|
|
7
|
+
4. Identify missing E2E scenarios and prioritize them by user impact and regression risk
|
|
8
|
+
5. Prepare an implementation order that covers the highest-risk missing scenarios first
|
|
9
|
+
|
|
10
|
+
**Important:**
|
|
11
|
+
- Start from complete route and flow enumeration, not from a few obvious pages
|
|
12
|
+
- Include unhappy paths, permission differences, and recovery paths when relevant
|
|
13
|
+
- If a flow cannot be audited from local code and tests alone, state the missing evidence explicitly
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Re-audit the routes or scenarios that were judged insufficient in the previous E2E audit.
|
|
2
|
+
|
|
3
|
+
**Important:** Review the supervisor's verification results and understand:
|
|
4
|
+
- Unaudited flows or scenarios
|
|
5
|
+
- Coverage claims lacking evidence
|
|
6
|
+
- Specific feedback on issue quality or scope
|
|
7
|
+
|
|
8
|
+
**What to do:**
|
|
9
|
+
1. Read the flagged route-related code and corresponding E2E tests in full
|
|
10
|
+
2. Re-check the coverage claims for the flagged scenarios and identify what was previously skipped or weakly evidenced
|
|
11
|
+
3. Update the audit result in issue-ready form with concrete evidence, explicit scope coverage, and missing-item reasons where applicable
|
|
12
|
+
|
|
13
|
+
**Strictly prohibited:**
|
|
14
|
+
- Modifying E2E tests or production code
|
|
15
|
+
- Claiming a scenario is covered without citing the actual test evidence
|
|
16
|
+
- Skipping a flagged route because it "looks fine"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Verify the completeness and quality of the E2E audit itself.
|
|
2
|
+
|
|
3
|
+
**Important:** Refer to the audit plan report: {report:01-e2e-audit-plan.md}
|
|
4
|
+
|
|
5
|
+
**Verification procedure:**
|
|
6
|
+
1. Cross-check the full route and flow inventory in the plan against the audited scenarios in the audit report
|
|
7
|
+
2. Reject if any important entry point, user flow, unhappy path, permission variant, or recovery path from the plan is missing from the audit result without an explicit reason
|
|
8
|
+
3. Verify the audit report includes concrete evidence for covered and missing scenarios, not just high-level claims
|
|
9
|
+
4. Verify the report includes the enumeration commands used and that they are sufficient to support the claimed scope
|
|
10
|
+
5. Sample-read a few high-risk routes and corresponding tests yourself to validate the coverage claims
|
|
11
|
+
6. Require re-audit if issue titles, priorities, or recommended actions are too vague to be filed directly
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Decompose the E2E audit, assign flows to each part, and execute in parallel.
|
|
2
|
+
|
|
3
|
+
**Important:** Refer to the plan report: {report:01-e2e-audit-plan.md}
|
|
4
|
+
|
|
5
|
+
**What to do:**
|
|
6
|
+
1. Review the user flow list, existing scenarios, and risk areas from the plan report
|
|
7
|
+
2. Split the audit into 3 groups by feature area or route cluster
|
|
8
|
+
3. Assign exclusive ownership so every audited flow is reviewed once
|
|
9
|
+
|
|
10
|
+
**Each part's instruction MUST include:**
|
|
11
|
+
- Assigned routes, entry points, and corresponding E2E files
|
|
12
|
+
- The happy paths, failure paths, and permission variants to verify
|
|
13
|
+
- Required audit procedure:
|
|
14
|
+
1. Read the relevant code for the assigned flows
|
|
15
|
+
2. Read the corresponding E2E tests in full
|
|
16
|
+
3. Record covered and missing scenarios with concrete evidence
|
|
17
|
+
- Completion criteria: every assigned flow has been audited and findings are reported in issue-ready form
|
|
18
|
+
|
|
19
|
+
**Constraints:**
|
|
20
|
+
- Each part is read-only
|
|
21
|
+
- Do not modify E2E tests or production code
|
|
22
|
+
- Do not audit routes outside the assignment
|
|
@@ -14,6 +14,9 @@ For small tasks, skip the design sections in the report.
|
|
|
14
14
|
1. Understand the task requirements
|
|
15
15
|
- **When reference material points to an external implementation, determine whether it is a "bug fix clue" or a "design approach to adopt". If narrowing scope beyond the reference material's intent, include the rationale in the plan report**
|
|
16
16
|
- **For each requirement, determine "change needed / not needed". If "not needed", cite the relevant code (file:line) as evidence. Claiming "already correct" without evidence is prohibited**
|
|
17
|
+
- **Limit requirements to explicit requirements and implicit requirements that follow directly from them. Do not turn general best practices or future extensions into requirements**
|
|
18
|
+
- **When decomposing requirements, split only as far as needed to make them independently verifiable. Do not jump from decomposition into new requirements**
|
|
19
|
+
- **When adding an implicit requirement, state which explicit requirement it is derived from in the plan report**
|
|
17
20
|
2. Investigate code to resolve unknowns
|
|
18
21
|
3. Identify the impact area
|
|
19
22
|
4. Determine file structure and design patterns (if needed)
|
|
@@ -14,14 +14,19 @@ Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
|
14
14
|
|
|
15
15
|
**Previous finding tracking (required):**
|
|
16
16
|
- First, extract open findings from "Previous Response"
|
|
17
|
-
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
|
17
|
+
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved / reopened`
|
|
18
18
|
- If status is `persists`, provide concrete unresolved evidence (file/line)
|
|
19
19
|
|
|
20
20
|
## Judgment Procedure
|
|
21
21
|
|
|
22
|
-
1.
|
|
23
|
-
2.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
1. Read `order.md`, the task body, `plan.md`, and `coder-decisions.md`, then extract the requirements one by one
|
|
23
|
+
2. If a sentence contains multiple conditions or paths, split it into the smallest independently verifiable units
|
|
24
|
+
- Do not keep `A/B`, `global/project`, `JSON/leaf`, `allow/deny`, or `read/write` in a single row
|
|
25
|
+
3. For each requirement, identify the implementing code (file:line)
|
|
26
|
+
4. Classify each requirement as `satisfied / unmet / unverified`
|
|
27
|
+
- Do not mark a row `satisfied` without concrete code evidence
|
|
28
|
+
- Do not mark a row `satisfied` when only part of the cases is covered
|
|
29
|
+
5. List out-of-scope changes and judge whether they are justified or unnecessary
|
|
30
|
+
6. Reclassify prior findings into `new / persists / resolved / reopened`
|
|
31
|
+
7. For each detected issue, classify it as blocking/non-blocking based on the Policy's scope table and judgment rules
|
|
32
|
+
8. If there is even one blocking issue in `new`, `persists`, or `reopened`, judge as REJECT
|
|
@@ -10,7 +10,7 @@ Verify existing evidence for tests, builds, and functional checks, then perform
|
|
|
10
10
|
- Read `order.md` and extract required behavior and prohibitions
|
|
11
11
|
- Read `plan.md` and confirm intended approach and scope
|
|
12
12
|
- Read `coder-decisions.md` and confirm why the implementation moved in that direction
|
|
13
|
-
- Do not treat prior review conclusions as authoritative unless they align with all three and the code
|
|
13
|
+
- Do not treat prior review conclusions or requirements-review conclusions as authoritative unless they align with all three and the code
|
|
14
14
|
3. Whether each task spec requirement has been achieved
|
|
15
15
|
- Extract requirements one by one from the task spec
|
|
16
16
|
- If a single sentence contains multiple conditions or paths, split it into the smallest independently verifiable units
|
|
@@ -31,7 +31,7 @@ Verify existing evidence for tests, builds, and functional checks, then perform
|
|
|
31
31
|
5. Handling tests, builds, and functional checks
|
|
32
32
|
- Do not assume this movement will rerun commands
|
|
33
33
|
- Use only evidence available in this run, such as execution logs, reports, or CI results
|
|
34
|
-
- If evidence is missing, mark the item as unverified
|
|
34
|
+
- If evidence is missing, mark the item as unverified rather than successful
|
|
35
35
|
- If report text conflicts with execution evidence, call out the inconsistency explicitly
|
|
36
36
|
|
|
37
37
|
**Report verification:** Read all reports in the Report Directory and
|
|
@@ -54,6 +54,7 @@ Extract requirements from the task spec and verify each one individually against
|
|
|
54
54
|
|
|
55
55
|
- If any ❌ exists, REJECT is mandatory
|
|
56
56
|
- ✅ without evidence is invalid (must verify against actual code)
|
|
57
|
+
- Do not mark a row as ✅ when only part of the cases is verified
|
|
57
58
|
- Do not rely on plan report's judgment; independently verify each requirement
|
|
58
59
|
|
|
59
60
|
## Re-evaluation of Prior Findings
|
|
@@ -63,6 +64,7 @@ Extract requirements from the task spec and verify each one individually against
|
|
|
63
64
|
|
|
64
65
|
- If final judgment differs from prior review conclusions, explain why with evidence
|
|
65
66
|
- If marking `false_positive` or `overreach`, state whether it conflicts with the task objective, the plan, or both
|
|
67
|
+
- If overturning a requirements-review conclusion, explain why with concrete evidence
|
|
66
68
|
|
|
67
69
|
## Verification Summary
|
|
68
70
|
| Item | Status | Verification method |
|
|
@@ -22,8 +22,9 @@ Analyze the implementation task and, if decomposition is appropriate, split into
|
|
|
22
22
|
- **Implementation task** (what and how to implement)
|
|
23
23
|
- **Completion criteria** (implementation of responsible files is complete)
|
|
24
24
|
- If tests are already written, instruct parts to implement so existing tests pass
|
|
25
|
-
-
|
|
25
|
+
- Refer to Quality Gates and plan any required verification as a dedicated single verification part
|
|
26
|
+
- Do not make parallel implementation parts run duplicate full-build or full-test checks
|
|
26
27
|
|
|
27
28
|
**Constraints:**
|
|
28
|
-
-
|
|
29
|
+
- If tests or build verification are needed, run them as a dedicated single verification part after dependent implementation parts are complete
|
|
29
30
|
- Do not modify files outside your responsibility (causes conflicts)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Audit the target for unit test coverage before making changes.
|
|
2
|
+
|
|
3
|
+
**What to do:**
|
|
4
|
+
1. Enumerate the target production files, exported APIs, internal branches, error paths, boundary checks, and state transitions using Read, Glob, and Grep
|
|
5
|
+
2. Read existing unit tests and map which behaviors are already covered
|
|
6
|
+
3. Build a complete inventory of auditable behaviors for each target file
|
|
7
|
+
4. Identify missing unit tests and prioritize them by regression risk
|
|
8
|
+
5. Prepare an implementation order that covers the highest-risk gaps first
|
|
9
|
+
|
|
10
|
+
**Important:**
|
|
11
|
+
- Start from complete enumeration, not from a few obvious gaps
|
|
12
|
+
- Do not stop after identifying a handful of missing tests
|
|
13
|
+
- If the scope is unclear, state exactly which files or behaviors need clarification
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Re-audit the files or behaviors that were judged insufficient in the previous unit audit.
|
|
2
|
+
|
|
3
|
+
**Important:** Review the supervisor's verification results and understand:
|
|
4
|
+
- Unaudited files or behaviors
|
|
5
|
+
- Coverage claims lacking evidence
|
|
6
|
+
- Specific feedback on issue quality or scope
|
|
7
|
+
|
|
8
|
+
**What to do:**
|
|
9
|
+
1. Read the flagged production files and corresponding tests in full
|
|
10
|
+
2. Re-check the coverage claims for the flagged behaviors and identify what was previously skipped or weakly evidenced
|
|
11
|
+
3. Update the audit result in issue-ready form with concrete evidence, explicit scope coverage, and missing-item reasons where applicable
|
|
12
|
+
|
|
13
|
+
**Strictly prohibited:**
|
|
14
|
+
- Modifying tests or production code
|
|
15
|
+
- Claiming a behavior is covered without citing the actual test evidence
|
|
16
|
+
- Skipping a flagged file or behavior because it "looks fine"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Verify the completeness and quality of the unit test audit itself.
|
|
2
|
+
|
|
3
|
+
**Important:** Refer to the audit plan report: {report:01-unit-audit-plan.md}
|
|
4
|
+
|
|
5
|
+
**Verification procedure:**
|
|
6
|
+
1. Cross-check the full target inventory in the plan against the audited files and behaviors in the audit report
|
|
7
|
+
2. Reject if any production file, exported API, branch, error path, boundary check, or state transition from the plan is missing from the audit result without an explicit reason
|
|
8
|
+
3. Verify the audit report includes concrete evidence for both covered and missing behaviors, not just conclusions
|
|
9
|
+
4. Verify the report includes the enumeration commands used and that they are sufficient to support the claimed scope
|
|
10
|
+
5. Sample-read a few target production files and corresponding tests yourself to confirm the coverage claims are credible
|
|
11
|
+
6. Require re-audit if issue titles, priorities, or recommended actions are too vague to be filed directly
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Decompose the unit audit, assign files to each part, and execute in parallel.
|
|
2
|
+
|
|
3
|
+
**Important:** Refer to the plan report: {report:01-unit-audit-plan.md}
|
|
4
|
+
|
|
5
|
+
**What to do:**
|
|
6
|
+
1. Review the production file list, existing tests, and audited behavior inventory from the plan report
|
|
7
|
+
2. Split the audit into 3 groups by module or test area
|
|
8
|
+
3. Assign exclusive ownership so every target file and behavior is audited once
|
|
9
|
+
|
|
10
|
+
**Each part's instruction MUST include:**
|
|
11
|
+
- Assigned production files and corresponding test files
|
|
12
|
+
- The behaviors, branches, error paths, and boundary checks to verify
|
|
13
|
+
- Required audit procedure:
|
|
14
|
+
1. Read every assigned production file in full
|
|
15
|
+
2. Read the corresponding unit tests in full
|
|
16
|
+
3. Record covered and missing behaviors with concrete file evidence
|
|
17
|
+
- Completion criteria: every assigned target has been audited and findings are reported in issue-ready form
|
|
18
|
+
|
|
19
|
+
**Constraints:**
|
|
20
|
+
- Each part is read-only
|
|
21
|
+
- Do not modify tests or production code
|
|
22
|
+
- Do not audit files outside the assignment
|
|
@@ -104,6 +104,99 @@ Prohibited patterns:
|
|
|
104
104
|
- Error handling centralized (no try-catch scattered everywhere)
|
|
105
105
|
- Business logic not leaking into Controller/View
|
|
106
106
|
|
|
107
|
+
## Resolve at the Boundary
|
|
108
|
+
|
|
109
|
+
Values such as config, options, providers, permissions, and paths should be resolved at the boundary before entering the core flow. Main processing should assume values are already resolved and should not keep asking config sources.
|
|
110
|
+
|
|
111
|
+
| Criteria | Judgment |
|
|
112
|
+
|----------|----------|
|
|
113
|
+
| Create a resolved object such as `ExecutionContext` or `ResolvedOptions` at the entry point | OK |
|
|
114
|
+
| Orchestration layers handle only resolved values | OK |
|
|
115
|
+
| Lower layers reload global/project/env and resolve the same value again | REJECT |
|
|
116
|
+
| Separate resolution functions exist for display and execution | REJECT |
|
|
117
|
+
| Unresolved options are passed deep and later fixed with `??` | REJECT |
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
// REJECT - Execution layer knows config sources directly
|
|
121
|
+
async function executePiece(options) {
|
|
122
|
+
const engine = new PieceEngine({
|
|
123
|
+
provider: options.provider ?? globalConfig.provider,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
class AgentRunner {
|
|
128
|
+
run(step, options) {
|
|
129
|
+
const provider = options.provider ?? resolveProviderFromConfig();
|
|
130
|
+
return getProvider(provider).call();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// OK - Resolve at the boundary, use resolved values internally
|
|
135
|
+
async function executePiece(options) {
|
|
136
|
+
const context = resolveExecutionContext(options);
|
|
137
|
+
const engine = new PieceEngine(context);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
class AgentRunner {
|
|
141
|
+
run(step, options) {
|
|
142
|
+
return getProvider(options.resolvedProvider).call();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Tell, Don't Ask
|
|
148
|
+
|
|
149
|
+
Do not make lower layers inspect config sources and decide for themselves. Upper layers should tell them what to use by passing resolved values. Separate value selection from execution.
|
|
150
|
+
|
|
151
|
+
| Pattern | Judgment |
|
|
152
|
+
|---------|----------|
|
|
153
|
+
| Upper layer passes a value such as `resolvedProvider` | OK |
|
|
154
|
+
| Lower layer inspects `options` and resolves on its own | REJECT |
|
|
155
|
+
| Execution object exposes only `run()` after `setup(config)` | OK |
|
|
156
|
+
| Runtime branches call `getGlobalConfig()` during execution | REJECT |
|
|
157
|
+
|
|
158
|
+
### Anti-Corruption Layer
|
|
159
|
+
|
|
160
|
+
Precedence resolution and external config formats belong in a dedicated boundary layer. Pass only normalized internal values into the core model.
|
|
161
|
+
|
|
162
|
+
| Pattern | Judgment |
|
|
163
|
+
|---------|----------|
|
|
164
|
+
| Encapsulate YAML/env/CLI differences in a resolver/adapter | OK |
|
|
165
|
+
| Domain layer directly handles env var names or config key strings | REJECT |
|
|
166
|
+
| Conversion from external form to internal form is centralized in one place | OK |
|
|
167
|
+
| Same normalization logic is copied in multiple places | REJECT |
|
|
168
|
+
|
|
169
|
+
### Phase Separation
|
|
170
|
+
|
|
171
|
+
Separate input, interpretation, execution, and output into distinct stages. Iterative processing should, as much as possible, receive already interpreted input in bulk and then repeat only execution.
|
|
172
|
+
|
|
173
|
+
| Criteria | Judgment |
|
|
174
|
+
|----------|----------|
|
|
175
|
+
| Convert raw input into a `Resolved*` type at the boundary before entering the core flow | OK |
|
|
176
|
+
| Loop body handles only execution on resolved data | OK |
|
|
177
|
+
| Config/env/options are interpreted inside every iteration | REJECT |
|
|
178
|
+
| Each iteration packs `input -> interpret -> execute -> output` into one function | REJECT |
|
|
179
|
+
| Even when optimization requires incremental handling, interpretation is isolated in a dedicated method | OK |
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// REJECT - Each iteration also interprets input
|
|
183
|
+
for (const item of items) {
|
|
184
|
+
const resolved = resolveItem(item, rawOptions, config);
|
|
185
|
+
const result = execute(resolved);
|
|
186
|
+
output(result);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// OK - Interpret first, iterations only execute
|
|
190
|
+
const resolvedItems = items.map((item) => resolveItem(item, rawOptions, config));
|
|
191
|
+
|
|
192
|
+
for (const item of resolvedItems) {
|
|
193
|
+
const result = execute(item);
|
|
194
|
+
output(result);
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Even when interpretation must happen incrementally, keep `nextRawInput()`, `resolveInput()`, and `executeResolved()` as separate responsibilities. Performance constraints may compress phases, but must not mix responsibilities.
|
|
199
|
+
|
|
107
200
|
## Code Quality Detection
|
|
108
201
|
|
|
109
202
|
**Explanatory Comment (What/How) Detection Criteria:**
|