takt 0.32.1 → 0.33.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/facets/instructions/gather-review.md +11 -7
- package/builtins/en/facets/instructions/plan.md +2 -0
- package/builtins/en/facets/instructions/review-frontend.md +2 -0
- package/builtins/en/facets/instructions/review-test.md +3 -0
- package/builtins/en/facets/instructions/supervise.md +18 -10
- package/builtins/en/facets/instructions/write-tests-first.md +4 -0
- package/builtins/en/facets/knowledge/frontend.md +46 -0
- package/builtins/en/facets/knowledge/react.md +90 -0
- package/builtins/en/facets/output-contracts/plan-frontend.md +41 -0
- package/builtins/en/facets/output-contracts/plan.md +8 -0
- package/builtins/en/facets/output-contracts/summary.md +2 -5
- package/builtins/en/facets/output-contracts/supervisor-validation.md +12 -5
- package/builtins/en/facets/output-contracts/testing-review.md +1 -0
- package/builtins/en/facets/personas/ai-antipattern-reviewer.md +2 -2
- package/builtins/en/facets/personas/architect-planner.md +4 -4
- package/builtins/en/facets/personas/architecture-reviewer.md +1 -1
- package/builtins/en/facets/personas/coder.md +1 -1
- package/builtins/en/facets/personas/dual-supervisor.md +13 -0
- package/builtins/en/facets/personas/planner.md +4 -4
- package/builtins/en/facets/personas/qa-reviewer.md +3 -3
- package/builtins/en/facets/personas/requirements-reviewer.md +3 -3
- package/builtins/en/facets/personas/research-analyzer.md +5 -5
- package/builtins/en/facets/personas/research-digger.md +4 -4
- package/builtins/en/facets/personas/research-planner.md +2 -2
- package/builtins/en/facets/personas/research-supervisor.md +4 -4
- package/builtins/en/facets/personas/supervisor.md +14 -12
- package/builtins/en/facets/personas/test-planner.md +3 -3
- package/builtins/en/facets/personas/testing-reviewer.md +3 -3
- package/builtins/en/facets/policies/coding.md +23 -1
- package/builtins/en/facets/policies/design-planning.md +52 -0
- package/builtins/en/facets/policies/testing.md +31 -0
- package/builtins/en/pieces/dual-cqrs-mini.yaml +3 -1
- package/builtins/en/pieces/dual-cqrs.yaml +3 -1
- package/builtins/en/pieces/dual-mini.yaml +3 -1
- package/builtins/en/pieces/dual.yaml +3 -1
- package/builtins/en/pieces/frontend-mini.yaml +3 -1
- package/builtins/en/pieces/frontend.yaml +13 -2
- package/builtins/ja/INSTRUCTION_STYLE_GUIDE.md +1 -1
- package/builtins/ja/OUTPUT_CONTRACT_STYLE_GUIDE.md +1 -1
- package/builtins/ja/PERSONA_STYLE_GUIDE.md +11 -9
- package/builtins/ja/facets/instructions/gather-review.md +11 -7
- package/builtins/ja/facets/instructions/plan.md +2 -0
- package/builtins/ja/facets/instructions/review-frontend.md +2 -0
- package/builtins/ja/facets/instructions/review-test.md +3 -0
- package/builtins/ja/facets/instructions/supervise.md +18 -10
- package/builtins/ja/facets/instructions/write-tests-first.md +4 -0
- package/builtins/ja/facets/knowledge/frontend.md +46 -0
- package/builtins/ja/facets/knowledge/react.md +90 -0
- package/builtins/ja/facets/output-contracts/plan-frontend.md +41 -0
- package/builtins/ja/facets/output-contracts/plan.md +8 -0
- package/builtins/ja/facets/output-contracts/summary.md +2 -5
- package/builtins/ja/facets/output-contracts/supervisor-validation.md +12 -5
- package/builtins/ja/facets/output-contracts/testing-review.md +1 -0
- package/builtins/ja/facets/personas/ai-antipattern-reviewer.md +2 -2
- package/builtins/ja/facets/personas/architect-planner.md +3 -3
- package/builtins/ja/facets/personas/architecture-reviewer.md +2 -2
- package/builtins/ja/facets/personas/cqrs-es-reviewer.md +3 -3
- package/builtins/ja/facets/personas/dual-supervisor.md +5 -2
- package/builtins/ja/facets/personas/frontend-reviewer.md +3 -3
- package/builtins/ja/facets/personas/planner.md +3 -3
- package/builtins/ja/facets/personas/qa-reviewer.md +3 -3
- package/builtins/ja/facets/personas/requirements-reviewer.md +3 -3
- package/builtins/ja/facets/personas/research-analyzer.md +5 -5
- package/builtins/ja/facets/personas/research-digger.md +4 -5
- package/builtins/ja/facets/personas/research-planner.md +2 -2
- package/builtins/ja/facets/personas/research-supervisor.md +4 -4
- package/builtins/ja/facets/personas/security-reviewer.md +1 -1
- package/builtins/ja/facets/personas/supervisor.md +19 -12
- package/builtins/ja/facets/personas/test-planner.md +3 -3
- package/builtins/ja/facets/personas/testing-reviewer.md +3 -3
- package/builtins/ja/facets/policies/coding.md +23 -1
- package/builtins/ja/facets/policies/design-planning.md +52 -0
- package/builtins/ja/facets/policies/testing.md +31 -0
- package/builtins/ja/pieces/dual-cqrs-mini.yaml +3 -1
- package/builtins/ja/pieces/dual-cqrs.yaml +3 -1
- package/builtins/ja/pieces/dual-mini.yaml +3 -1
- package/builtins/ja/pieces/dual.yaml +3 -1
- package/builtins/ja/pieces/frontend-mini.yaml +3 -1
- package/builtins/ja/pieces/frontend.yaml +13 -2
- package/builtins/project/dotgitignore +11 -10
- package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
- package/dist/agents/decompose-task-usecase.js +3 -2
- package/dist/agents/decompose-task-usecase.js.map +1 -1
- package/dist/app/cli/commands.js +1 -1
- package/dist/app/cli/commands.js.map +1 -1
- package/dist/app/cli/helpers.js +1 -1
- 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 +4 -2
- package/dist/app/cli/program.js.map +1 -1
- package/dist/app/cli/routing-inputs.d.ts.map +1 -1
- package/dist/app/cli/routing-inputs.js +12 -13
- 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 +20 -6
- package/dist/app/cli/routing.js.map +1 -1
- package/dist/core/config/provider-resolution.d.ts +26 -0
- package/dist/core/config/provider-resolution.d.ts.map +1 -0
- package/dist/core/config/provider-resolution.js +31 -0
- package/dist/core/config/provider-resolution.js.map +1 -0
- package/dist/core/models/config-types.d.ts +53 -0
- package/dist/core/models/config-types.d.ts.map +1 -1
- package/dist/core/models/piece-types.d.ts +3 -7
- package/dist/core/models/piece-types.d.ts.map +1 -1
- package/dist/core/models/piece-types.js +6 -1
- package/dist/core/models/piece-types.js.map +1 -1
- package/dist/core/models/schemas.d.ts +106 -1
- package/dist/core/models/schemas.d.ts.map +1 -1
- package/dist/core/models/schemas.js +37 -2
- package/dist/core/models/schemas.js.map +1 -1
- package/dist/core/models/vcs-types.d.ts +9 -0
- package/dist/core/models/vcs-types.d.ts.map +1 -0
- package/dist/core/models/vcs-types.js +8 -0
- package/dist/core/models/vcs-types.js.map +1 -0
- package/dist/core/piece/provider-resolution.d.ts +0 -5
- package/dist/core/piece/provider-resolution.d.ts.map +1 -1
- package/dist/core/piece/provider-resolution.js +1 -29
- package/dist/core/piece/provider-resolution.js.map +1 -1
- package/dist/core/provider-resolution.d.ts +16 -0
- package/dist/core/provider-resolution.d.ts.map +1 -0
- package/dist/core/provider-resolution.js +30 -0
- package/dist/core/provider-resolution.js.map +1 -0
- package/dist/core/runtime/runtime-environment.d.ts +1 -1
- package/dist/core/runtime/runtime-environment.d.ts.map +1 -1
- package/dist/core/runtime/runtime-environment.js +8 -4
- package/dist/core/runtime/runtime-environment.js.map +1 -1
- package/dist/features/interactive/assistantConfig.d.ts +3 -0
- package/dist/features/interactive/assistantConfig.d.ts.map +1 -0
- package/dist/features/interactive/assistantConfig.js +19 -0
- package/dist/features/interactive/assistantConfig.js.map +1 -0
- package/dist/features/interactive/conversationLogMeta.d.ts +13 -0
- package/dist/features/interactive/conversationLogMeta.d.ts.map +1 -0
- package/dist/features/interactive/conversationLogMeta.js +17 -0
- package/dist/features/interactive/conversationLogMeta.js.map +1 -0
- package/dist/features/interactive/conversationLoop.d.ts +0 -8
- package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
- package/dist/features/interactive/conversationLoop.js +9 -25
- package/dist/features/interactive/conversationLoop.js.map +1 -1
- package/dist/features/interactive/interactive.d.ts +5 -0
- package/dist/features/interactive/interactive.d.ts.map +1 -1
- package/dist/features/interactive/interactive.js +8 -17
- package/dist/features/interactive/interactive.js.map +1 -1
- package/dist/features/interactive/personaMode.js +2 -1
- package/dist/features/interactive/personaMode.js.map +1 -1
- package/dist/features/interactive/policyPrompt.d.ts +2 -0
- package/dist/features/interactive/policyPrompt.d.ts.map +1 -0
- package/dist/features/interactive/policyPrompt.js +16 -0
- package/dist/features/interactive/policyPrompt.js.map +1 -0
- package/dist/features/interactive/quietMode.js +2 -1
- package/dist/features/interactive/quietMode.js.map +1 -1
- package/dist/features/interactive/retryMode.d.ts.map +1 -1
- package/dist/features/interactive/retryMode.js +4 -12
- package/dist/features/interactive/retryMode.js.map +1 -1
- package/dist/features/interactive/sessionInitialization.d.ts +4 -0
- package/dist/features/interactive/sessionInitialization.d.ts.map +1 -0
- package/dist/features/interactive/sessionInitialization.js +27 -0
- package/dist/features/interactive/sessionInitialization.js.map +1 -0
- package/dist/features/pipeline/steps.d.ts +1 -1
- package/dist/features/pipeline/steps.d.ts.map +1 -1
- package/dist/features/pipeline/steps.js +6 -7
- package/dist/features/pipeline/steps.js.map +1 -1
- package/dist/features/tasks/add/index.d.ts +1 -1
- package/dist/features/tasks/add/index.js +7 -8
- package/dist/features/tasks/add/index.js.map +1 -1
- package/dist/features/tasks/add/issueTask.d.ts +1 -1
- package/dist/features/tasks/add/issueTask.js +2 -2
- package/dist/features/tasks/add/issueTask.js.map +1 -1
- package/dist/features/tasks/execute/postExecution.d.ts +2 -0
- package/dist/features/tasks/execute/postExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/postExecution.js +44 -13
- package/dist/features/tasks/execute/postExecution.js.map +1 -1
- package/dist/features/tasks/execute/taskExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/taskExecution.js +19 -1
- package/dist/features/tasks/execute/taskExecution.js.map +1 -1
- package/dist/features/tasks/list/instructMode.d.ts.map +1 -1
- package/dist/features/tasks/list/instructMode.js +4 -12
- package/dist/features/tasks/list/instructMode.js.map +1 -1
- package/dist/features/tasks/list/taskSyncAction.d.ts.map +1 -1
- package/dist/features/tasks/list/taskSyncAction.js +3 -2
- package/dist/features/tasks/list/taskSyncAction.js.map +1 -1
- package/dist/infra/config/configNormalizers.d.ts +14 -1
- package/dist/infra/config/configNormalizers.d.ts.map +1 -1
- package/dist/infra/config/configNormalizers.js +45 -0
- package/dist/infra/config/configNormalizers.js.map +1 -1
- package/dist/infra/config/env/config-env-overrides.d.ts.map +1 -1
- package/dist/infra/config/env/config-env-overrides.js +24 -0
- package/dist/infra/config/env/config-env-overrides.js.map +1 -1
- package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfigCore.js +23 -1
- package/dist/infra/config/global/globalConfigCore.js.map +1 -1
- package/dist/infra/config/global/globalConfigSerializer.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfigSerializer.js +23 -0
- package/dist/infra/config/global/globalConfigSerializer.js.map +1 -1
- package/dist/infra/config/loaders/pieceParser.d.ts +2 -2
- package/dist/infra/config/loaders/pieceParser.d.ts.map +1 -1
- package/dist/infra/config/loaders/pieceParser.js +109 -6
- package/dist/infra/config/loaders/pieceParser.js.map +1 -1
- package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
- package/dist/infra/config/project/projectConfig.js +59 -48
- package/dist/infra/config/project/projectConfig.js.map +1 -1
- package/dist/infra/config/project/projectConfigTransforms.d.ts +21 -1
- package/dist/infra/config/project/projectConfigTransforms.d.ts.map +1 -1
- package/dist/infra/config/project/projectConfigTransforms.js +40 -0
- package/dist/infra/config/project/projectConfigTransforms.js.map +1 -1
- package/dist/infra/config/project/sessionStore.d.ts +8 -0
- package/dist/infra/config/project/sessionStore.d.ts.map +1 -1
- package/dist/infra/config/project/sessionStore.js +20 -0
- package/dist/infra/config/project/sessionStore.js.map +1 -1
- package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
- package/dist/infra/config/resolveConfigValue.js +1 -0
- package/dist/infra/config/resolveConfigValue.js.map +1 -1
- package/dist/infra/git/constants.d.ts +5 -0
- package/dist/infra/git/constants.d.ts.map +1 -0
- package/dist/infra/git/constants.js +5 -0
- package/dist/infra/git/constants.js.map +1 -0
- package/dist/infra/git/detect.d.ts +18 -0
- package/dist/infra/git/detect.d.ts.map +1 -0
- package/dist/infra/git/detect.js +61 -0
- package/dist/infra/git/detect.js.map +1 -0
- package/dist/infra/git/format.d.ts +50 -0
- package/dist/infra/git/format.d.ts.map +1 -0
- package/dist/infra/git/format.js +133 -0
- package/dist/infra/git/format.js.map +1 -0
- package/dist/infra/git/index.d.ts +32 -1
- package/dist/infra/git/index.d.ts.map +1 -1
- package/dist/infra/git/index.js +85 -1
- package/dist/infra/git/index.js.map +1 -1
- package/dist/infra/git/types.d.ts +6 -4
- package/dist/infra/git/types.d.ts.map +1 -1
- package/dist/infra/github/index.d.ts +1 -2
- package/dist/infra/github/index.d.ts.map +1 -1
- package/dist/infra/github/index.js +1 -2
- package/dist/infra/github/index.js.map +1 -1
- package/dist/infra/github/issue.d.ts +3 -49
- package/dist/infra/github/issue.d.ts.map +1 -1
- package/dist/infra/github/issue.js +0 -93
- package/dist/infra/github/issue.js.map +1 -1
- package/dist/infra/github/pr.d.ts +1 -10
- package/dist/infra/github/pr.d.ts.map +1 -1
- package/dist/infra/github/pr.js +20 -66
- package/dist/infra/github/pr.js.map +1 -1
- package/dist/infra/gitlab/GitLabProvider.d.ts +18 -0
- package/dist/infra/gitlab/GitLabProvider.d.ts.map +1 -0
- package/dist/infra/gitlab/GitLabProvider.js +34 -0
- package/dist/infra/gitlab/GitLabProvider.js.map +1 -0
- package/dist/infra/gitlab/index.d.ts +5 -0
- package/dist/infra/gitlab/index.d.ts.map +1 -0
- package/dist/infra/gitlab/index.js +5 -0
- package/dist/infra/gitlab/index.js.map +1 -0
- package/dist/infra/gitlab/issue.d.ts +20 -0
- package/dist/infra/gitlab/issue.d.ts.map +1 -0
- package/dist/infra/gitlab/issue.js +64 -0
- package/dist/infra/gitlab/issue.js.map +1 -0
- package/dist/infra/gitlab/pr.d.ts +27 -0
- package/dist/infra/gitlab/pr.d.ts.map +1 -0
- package/dist/infra/gitlab/pr.js +138 -0
- package/dist/infra/gitlab/pr.js.map +1 -0
- package/dist/infra/gitlab/utils.d.ts +20 -0
- package/dist/infra/gitlab/utils.d.ts.map +1 -0
- package/dist/infra/gitlab/utils.js +61 -0
- package/dist/infra/gitlab/utils.js.map +1 -0
- package/dist/infra/task/autoCommit.d.ts +2 -0
- package/dist/infra/task/autoCommit.d.ts.map +1 -1
- package/dist/infra/task/autoCommit.js +24 -7
- package/dist/infra/task/autoCommit.js.map +1 -1
- package/dist/infra/task/git.d.ts +4 -0
- package/dist/infra/task/git.d.ts.map +1 -1
- package/dist/infra/task/git.js +10 -0
- package/dist/infra/task/git.js.map +1 -1
- package/dist/shared/i18n/labels_en.yaml +1 -1
- package/dist/shared/i18n/labels_ja.yaml +1 -1
- package/package.json +2 -2
- package/dist/infra/github/types.d.ts +0 -5
- package/dist/infra/github/types.d.ts.map +0 -1
- package/dist/infra/github/types.js +0 -5
- package/dist/infra/github/types.js.map +0 -1
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@ Choose one:
|
|
|
28
28
|
Optional:
|
|
29
29
|
|
|
30
30
|
- [GitHub CLI](https://cli.github.com/) (`gh`) — for `takt #N` (GitHub Issue tasks)
|
|
31
|
+
- [GitLab CLI](https://gitlab.com/gitlab-org/cli) (`glab`) — for GitLab Issue/MR integration (auto-detected from remote URL)
|
|
31
32
|
|
|
32
33
|
> **OAuth and API key usage:** Whether OAuth or API key access is permitted varies by provider and use case. Check each provider's terms of service before using TAKT.
|
|
33
34
|
|
|
@@ -17,14 +17,18 @@ Analyze the task text and determine which mode to use.
|
|
|
17
17
|
- Collect Issue title, description, labels, and comments
|
|
18
18
|
|
|
19
19
|
### Mode 2: Branch mode
|
|
20
|
-
**Trigger:**
|
|
20
|
+
**Trigger:** The normalized task text exactly matches one branch name found in `git branch -a`. This includes names with `/` (e.g., `feature/auth`) as well as simple names (e.g., `develop`, `release-v2`, `hotfix-login`).
|
|
21
21
|
**Steps:**
|
|
22
|
-
1.
|
|
23
|
-
2.
|
|
24
|
-
3.
|
|
25
|
-
4.
|
|
26
|
-
5.
|
|
27
|
-
6.
|
|
22
|
+
1. Run `git branch -a` and inspect the branch list yourself. Never interpolate raw task text into shell commands.
|
|
23
|
+
2. Normalization is limited to trimming surrounding whitespace, removing wrapping quotes/backticks, and stripping a leading `origin/` prefix. Do not do partial matching or heuristic guessing beyond that.
|
|
24
|
+
3. Use Branch mode only when the normalized text exactly matches one branch name from the branch list.
|
|
25
|
+
4. If there is no exact match, multiple plausible candidates, or the branch name only appears as part of explanatory prose, do not guess. Fall back to Current diff mode.
|
|
26
|
+
5. Determine the base branch (default: `main`, fallback: `master`)
|
|
27
|
+
6. Use only the branch name confirmed in step 3 when running `git log {base}..{branch} --oneline` to get commit history
|
|
28
|
+
7. Use only the branch name confirmed in step 3 when running `git diff {base}...{branch}` to get the diff
|
|
29
|
+
8. Compile the changed files list
|
|
30
|
+
9. Extract purpose from commit messages
|
|
31
|
+
10. If a PR exists for the branch, fetch it with `gh pr list --head {branch}` using only the branch name confirmed in step 3
|
|
28
32
|
|
|
29
33
|
### Mode 3: Current diff mode
|
|
30
34
|
**Trigger:** Task does not match Mode 1 or Mode 2 (e.g., "review current changes", "last 3 commits", "current diff")
|
|
@@ -19,7 +19,9 @@ For small tasks, skip the design sections in the report.
|
|
|
19
19
|
4. Determine file structure and design patterns (if needed)
|
|
20
20
|
5. Decide on the implementation approach
|
|
21
21
|
- Verify the implementation approach does not violate knowledge/policy constraints
|
|
22
|
+
- When adding or changing a user-facing feature, fix the conditions, entry points, and reachability by which users arrive at it
|
|
22
23
|
6. Include the following in coder implementation guidelines:
|
|
23
24
|
- Existing implementation patterns to reference (file:line). Always cite when similar processing already exists
|
|
24
25
|
- Impact area of changes. Especially when adding new parameters, enumerate all call sites that need wiring
|
|
25
26
|
- Anti-patterns to watch for in this specific task (if applicable)
|
|
27
|
+
- When adding or changing a user-facing feature, all affected reachability, callers, and launch conditions
|
|
@@ -7,6 +7,7 @@ Review the changes from a frontend development perspective.
|
|
|
7
7
|
- Performance (re-renders, memoization)
|
|
8
8
|
- Accessibility (keyboard navigation, ARIA)
|
|
9
9
|
- Data fetching patterns
|
|
10
|
+
- Reachability wiring for user-facing features (routes, entry paths, launch conditions)
|
|
10
11
|
- TypeScript type safety
|
|
11
12
|
|
|
12
13
|
**Design fidelity check (when a design reference exists):**
|
|
@@ -28,5 +29,6 @@ Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
|
28
29
|
|
|
29
30
|
1. Review the change diff and detect issues based on the frontend development criteria above
|
|
30
31
|
- Cross-check changes against REJECT criteria tables defined in knowledge
|
|
32
|
+
- When new screens or user-facing features are added, verify that entry points and caller wiring were updated as well
|
|
31
33
|
2. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
|
|
32
34
|
3. If there is even one blocking issue, judge as REJECT
|
|
@@ -6,6 +6,8 @@ Review the changes from a test quality perspective.
|
|
|
6
6
|
- Test naming conventions
|
|
7
7
|
- Completeness (unnecessary tests, missing cases)
|
|
8
8
|
- Appropriateness of mocks and fixtures
|
|
9
|
+
- When an external contract exists, whether request body / query / path input locations are verified as defined
|
|
10
|
+
- Whether the tests would catch an implementation that incorrectly reuses a response envelope for request parsing
|
|
9
11
|
|
|
10
12
|
|
|
11
13
|
**Design decisions reference:**
|
|
@@ -18,3 +20,4 @@ Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
|
18
20
|
1. Cross-reference the test plan/test scope reports in the Report Directory with the implemented tests
|
|
19
21
|
2. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
|
|
20
22
|
3. If there is even one blocking issue, judge as REJECT
|
|
23
|
+
4. If an external contract exists and input locations (root body / query / path) are not verified, treat it as a coverage gap by default
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
Verify existing evidence for tests, builds, and functional checks, then perform final approval.
|
|
2
2
|
|
|
3
3
|
**Overall piece verification:**
|
|
4
4
|
1. Check all reports in the report directory and verify overall piece consistency
|
|
@@ -7,10 +7,21 @@ Run tests, verify the build, and perform final approval.
|
|
|
7
7
|
- Was the original task objective achieved?
|
|
8
8
|
2. Whether each task spec requirement has been achieved
|
|
9
9
|
- Extract requirements one by one from the task spec
|
|
10
|
+
- If a single sentence contains multiple conditions or paths, split it into the smallest independently verifiable units
|
|
11
|
+
- Example: treat `global/project` as separate requirements
|
|
12
|
+
- Example: treat `JSON override / leaf override` as separate requirements
|
|
13
|
+
- Example: split parallel expressions such as `A and B`, `A/B`, `allow/deny`, or `read/write`
|
|
10
14
|
- For each requirement, identify the implementing code (file:line)
|
|
11
|
-
- Verify the code actually fulfills the requirement (read the file,
|
|
15
|
+
- Verify the code actually fulfills the requirement (read the file, check existing test/build evidence)
|
|
16
|
+
- Do not mark a composite requirement as ✅ based on only one side of the cases
|
|
17
|
+
- Evidence must cover the full content of the requirement row
|
|
12
18
|
- Do not rely on the plan report's judgment; independently verify each requirement
|
|
13
19
|
- If any requirement is unfulfilled, REJECT
|
|
20
|
+
3. Handling tests, builds, and functional checks
|
|
21
|
+
- Do not assume this movement will rerun commands
|
|
22
|
+
- Use only evidence available in this run, such as execution logs, reports, or CI results
|
|
23
|
+
- If evidence is missing, mark the item as unverified
|
|
24
|
+
- If report text conflicts with execution evidence, call out the inconsistency explicitly
|
|
14
25
|
|
|
15
26
|
**Report verification:** Read all reports in the Report Directory and
|
|
16
27
|
check for any unaddressed improvement suggestions.
|
|
@@ -37,9 +48,9 @@ Extract requirements from the task spec and verify each one individually against
|
|
|
37
48
|
## Verification Summary
|
|
38
49
|
| Item | Status | Verification method |
|
|
39
50
|
|------|--------|-------------------|
|
|
40
|
-
| Tests | ✅ |
|
|
41
|
-
| Build | ✅ |
|
|
42
|
-
| Functional check | ✅ |
|
|
51
|
+
| Tests | ✅ / ⚠️ / ❌ | {Execution log, report, CI result, or why unverified} |
|
|
52
|
+
| Build | ✅ / ⚠️ / ❌ | {Execution log, report, CI result, or why unverified} |
|
|
53
|
+
| Functional check | ✅ / ⚠️ / ❌ | {Evidence used, or state that it was not verified} |
|
|
43
54
|
|
|
44
55
|
## Deliverables
|
|
45
56
|
- Created: {Created files}
|
|
@@ -66,9 +77,6 @@ Complete
|
|
|
66
77
|
|------|------|---------|
|
|
67
78
|
| Create | `src/file.ts` | Summary description |
|
|
68
79
|
|
|
69
|
-
## Verification
|
|
70
|
-
|
|
71
|
-
npm test
|
|
72
|
-
npm run build
|
|
73
|
-
```
|
|
80
|
+
## Verification evidence
|
|
81
|
+
- {Evidence for tests/builds/functional checks}
|
|
74
82
|
```
|
|
@@ -18,6 +18,10 @@ Refer only to files within the Report Directory shown in the Piece Context. Do n
|
|
|
18
18
|
- Write tests in Given-When-Then structure
|
|
19
19
|
- One concept per test. Do not mix multiple concerns in a single test
|
|
20
20
|
- Cover happy path, error cases, boundary values, and edge cases
|
|
21
|
+
- When an external contract exists, include tests that use the contract-defined input location
|
|
22
|
+
- Example: pass request bodies using the defined root shape as-is
|
|
23
|
+
- Example: keep query / path parameters in their defined location instead of moving them into the body
|
|
24
|
+
- Include tests that would catch implementations that incorrectly reuse a response envelope when reading requests
|
|
21
25
|
- Write tests that are expected to pass after implementation is complete (build errors and test failures are expected at this stage)
|
|
22
26
|
|
|
23
27
|
**Scope output contract (create at the start):**
|
|
@@ -45,6 +45,40 @@ features/{feature-name}/
|
|
|
45
45
|
└── index.ts
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
## Routing Wiring When Adding a Page
|
|
49
|
+
|
|
50
|
+
Do not stop at creating the page component. A new page must also be wired into an actual entry path. Decide together with the implementation how the page is reached: router, menu, temporary route, or another explicit entry point.
|
|
51
|
+
|
|
52
|
+
| Criteria | Judgment |
|
|
53
|
+
|----------|----------|
|
|
54
|
+
| A new page exists but no route is registered for it | REJECT |
|
|
55
|
+
| Basename-based URL and route path mapping is not verified | REJECT |
|
|
56
|
+
| Router wiring and page entry are decided together with the page implementation | OK |
|
|
57
|
+
| A temporary development route is used and its purpose/removal plan is recorded | OK |
|
|
58
|
+
| Routes are updated but actual entry points such as menus, buttons, links, or external callers are not checked | Warning |
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
// OK - page and route are added together
|
|
62
|
+
<Route path="/contreg" element={<ContainerRegisterPage />} />
|
|
63
|
+
|
|
64
|
+
// REJECT - page exists but has no reachable route
|
|
65
|
+
// src/pages/ContainerRegisterPage.tsx exists
|
|
66
|
+
// Router has no matching route
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Reachability is broader than router configuration. Confirm the real entry path users will follow, such as menus, transition buttons, dialog actions, links from other screens, or external callers.
|
|
70
|
+
|
|
71
|
+
### Integrating third-party UI libraries
|
|
72
|
+
|
|
73
|
+
Third-party UI libraries such as data grids, date pickers, charts, and virtualized lists can fail at runtime even when types pass. This is especially common across major-version changes where prop names or state model shapes are no longer compatible, and shallow mocks do not expose the problem.
|
|
74
|
+
|
|
75
|
+
| Criteria | Judgment |
|
|
76
|
+
|----------|----------|
|
|
77
|
+
| Major UI library props are guessed without checking the version used by the project | REJECT |
|
|
78
|
+
| Tests fully mock the library and miss real mount failures | Warning |
|
|
79
|
+
| The real component is rendered with representative props and verified not to crash at screen level | OK |
|
|
80
|
+
| Prop shapes are chosen by referencing existing in-project usage patterns and the installed version | OK |
|
|
81
|
+
|
|
48
82
|
## State Management
|
|
49
83
|
|
|
50
84
|
Child components do not modify their own state. They bubble events to parent, and parent manipulates state.
|
|
@@ -78,6 +112,7 @@ Exception (OK for child to have local state):
|
|
|
78
112
|
| State changes from child to parent (reverse data flow) | REJECT |
|
|
79
113
|
| API response stored as-is in state | Consider normalization |
|
|
80
114
|
| Inappropriate useEffect dependencies | REJECT |
|
|
115
|
+
| Initial load tied to unstable Context/Provider function references | REJECT |
|
|
81
116
|
|
|
82
117
|
State Placement Guidelines:
|
|
83
118
|
|
|
@@ -88,6 +123,17 @@ State Placement Guidelines:
|
|
|
88
123
|
| Shared across multiple components | Context or state management library |
|
|
89
124
|
| Server data cache | Data fetching library (TanStack Query, etc.) |
|
|
90
125
|
|
|
126
|
+
## Initial load and refetch boundaries
|
|
127
|
+
|
|
128
|
+
Initial loading should be separated from reactive refetching. If refetching is not driven by URL, filter, paging, or explicit user action, keep it mount-only and do not tie it to unstable callback references.
|
|
129
|
+
|
|
130
|
+
| Criteria | Judgment |
|
|
131
|
+
|----------|----------|
|
|
132
|
+
| Initial load reruns because a Provider/Context callback changed identity | REJECT |
|
|
133
|
+
| Refetch conditions are explicit (URL, filter, paging, refresh action) | OK |
|
|
134
|
+
| Message display, loading toggles, or modal state cause refetching | REJECT |
|
|
135
|
+
| Initial load is mount-only and later refetches are triggered explicitly | OK |
|
|
136
|
+
|
|
91
137
|
## Data Fetching
|
|
92
138
|
|
|
93
139
|
API calls are made in root (View) components and passed to children via props.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# React Knowledge
|
|
2
|
+
|
|
3
|
+
## Effects and Re-execution
|
|
4
|
+
|
|
5
|
+
`useEffect` is a mechanism for declaring when re-execution is allowed, not a generic place to put initialization. Decide first whether a load is mount-only or should rerun on dependency changes.
|
|
6
|
+
|
|
7
|
+
| Criteria | Judgment |
|
|
8
|
+
|----------|----------|
|
|
9
|
+
| A mount-only initial load depends on recreated function references | REJECT |
|
|
10
|
+
| Context/Provider functions are used as effect dependencies without a clear refetch requirement | REJECT |
|
|
11
|
+
| Mount-only initialization is expressed with `useEffect(..., [])` and its intent is documented | OK |
|
|
12
|
+
| Refetching on dependency change is required by the feature and those dependencies are explicit | OK |
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
// REJECT - initial load can rerun because unstable function deps leak into the effect
|
|
16
|
+
const fetchList = useCallback(async () => {
|
|
17
|
+
await loadItems()
|
|
18
|
+
}, [setIsLoading, errorPage])
|
|
19
|
+
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
fetchList()
|
|
22
|
+
}, [fetchList])
|
|
23
|
+
|
|
24
|
+
// OK - explicitly mount-only initial load
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
void loadItemsOnMount()
|
|
27
|
+
// mount-only initial load
|
|
28
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29
|
+
}, [])
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Context and Provider Values
|
|
33
|
+
|
|
34
|
+
`value={{ ... }}` in a Provider creates a new reference on each Provider render. When functions obtained from Context are placed in effect dependencies, consumers can enter unintended refetch loops.
|
|
35
|
+
|
|
36
|
+
| Criteria | Judgment |
|
|
37
|
+
|----------|----------|
|
|
38
|
+
| Context-derived functions are placed in effect dependencies without checking reference stability | REJECT |
|
|
39
|
+
| Mount effects rely on Provider functions whose stability is not guaranteed | REJECT |
|
|
40
|
+
| Context functions are used from event handlers while initial load stays mount-only | OK |
|
|
41
|
+
| Provider values are stabilized and refetch conditions are defined explicitly | OK |
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
// REJECT - Context functions are used directly as initial-load effect deps
|
|
45
|
+
const { setIsLoading, errorPage } = useAppContext()
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
void loadInitialData(setIsLoading, errorPage)
|
|
48
|
+
}, [setIsLoading, errorPage])
|
|
49
|
+
|
|
50
|
+
// OK - initial load is mount-only, Context functions are consumed inside it
|
|
51
|
+
const { setIsLoading, errorPage } = useAppContext()
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
void loadInitialData({ setIsLoading, errorPage })
|
|
54
|
+
// mount-only initial load
|
|
55
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
56
|
+
}, [])
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Initial Page Load
|
|
60
|
+
|
|
61
|
+
Treat initial page load separately from reactive refetching. Unless refetching is required by filter, URL, pagination, or explicit user action, keep the initial fetch mount-only.
|
|
62
|
+
|
|
63
|
+
| Condition | Recommendation |
|
|
64
|
+
|-----------|----------------|
|
|
65
|
+
| List is loaded once on page entry | mount-only effect |
|
|
66
|
+
| Refetching follows filter, pagination, or URL changes | make those states explicit dependencies |
|
|
67
|
+
| Loading state updates trigger refetching | REJECT |
|
|
68
|
+
| Message display or dialog state triggers refetching | REJECT |
|
|
69
|
+
|
|
70
|
+
## Custom Hook Responsibility
|
|
71
|
+
|
|
72
|
+
A React custom hook should encapsulate state, effects, refs, or event translation. Pure calculations belong in function modules, not in a `use*` hook.
|
|
73
|
+
|
|
74
|
+
| Criteria | Judgment |
|
|
75
|
+
|----------|----------|
|
|
76
|
+
| A module is named `use*` but does not use React state/effect/ref | Warning |
|
|
77
|
+
| Pure functions are modeled as a custom hook | Warning |
|
|
78
|
+
| Stateful UI control lives in a custom hook and pure calculations live in functions | OK |
|
|
79
|
+
| A hook returns JSX | REJECT |
|
|
80
|
+
|
|
81
|
+
## Handling exhaustive-deps
|
|
82
|
+
|
|
83
|
+
`react-hooks/exhaustive-deps` is not a rule to satisfy mechanically. If adding dependencies changes a mount-only effect into a loop, keep the effect mount-only and document why the suppression exists.
|
|
84
|
+
|
|
85
|
+
| Criteria | Judgment |
|
|
86
|
+
|----------|----------|
|
|
87
|
+
| Dependencies are added only to satisfy lint and they change runtime behavior | REJECT |
|
|
88
|
+
| Lint suppression is added without explanation | Warning |
|
|
89
|
+
| Mount-only suppression is documented with intent | OK |
|
|
90
|
+
| A reactive effect that should rerun is incorrectly frozen with `[]` | REJECT |
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
```markdown
|
|
2
|
+
# Task Plan
|
|
3
|
+
|
|
4
|
+
## Original Request
|
|
5
|
+
{User's request as-is}
|
|
6
|
+
|
|
7
|
+
## Analysis
|
|
8
|
+
|
|
9
|
+
### Objective
|
|
10
|
+
{What needs to be achieved}
|
|
11
|
+
|
|
12
|
+
### Reference Material Findings (when reference material exists)
|
|
13
|
+
{Overview of reference implementation's approach and key differences from current implementation}
|
|
14
|
+
|
|
15
|
+
### Design Element Decisions (when design references exist)
|
|
16
|
+
| Element | Keep/Change | Rationale |
|
|
17
|
+
|------|-------------|-----------|
|
|
18
|
+
|
|
19
|
+
### Scope
|
|
20
|
+
{Impact area}
|
|
21
|
+
|
|
22
|
+
### Approaches Considered (when design decisions exist)
|
|
23
|
+
| Approach | Adopted? | Rationale |
|
|
24
|
+
|----------|----------|-----------|
|
|
25
|
+
|
|
26
|
+
### Implementation Approach
|
|
27
|
+
{How to proceed}
|
|
28
|
+
|
|
29
|
+
## Implementation Guidelines (only when design is needed)
|
|
30
|
+
- {Guidelines the Coder should follow during implementation}
|
|
31
|
+
|
|
32
|
+
## Out of Scope (only when items exist)
|
|
33
|
+
| Item | Reason for exclusion |
|
|
34
|
+
|------|---------------------|
|
|
35
|
+
|
|
36
|
+
When design references exist:
|
|
37
|
+
- {Excluded element name, why it is excluded, and why no substitute is taken now}
|
|
38
|
+
|
|
39
|
+
## Open Questions (if any)
|
|
40
|
+
- {Unclear points or items that need confirmation}
|
|
41
|
+
```
|
|
@@ -22,6 +22,14 @@
|
|
|
22
22
|
### Implementation Approach
|
|
23
23
|
{How to proceed}
|
|
24
24
|
|
|
25
|
+
### Reachability and Launch Conditions (when adding/changing user-facing features)
|
|
26
|
+
| Item | Content |
|
|
27
|
+
|------|---------|
|
|
28
|
+
| User entry point | {Menu/route/button/link/external caller, or explicitly say "none"} |
|
|
29
|
+
| Callers/wiring to update | {Files or layers that must be updated} |
|
|
30
|
+
| Launch conditions | {Auth, permission, URL condition, flags, etc.} |
|
|
31
|
+
| Remaining gaps | {Any unresolved wiring, or "none"} |
|
|
32
|
+
|
|
25
33
|
## Implementation Guidelines (only when design is needed)
|
|
26
34
|
- {Guidelines the Coder should follow during implementation}
|
|
27
35
|
|
|
@@ -7,21 +7,28 @@
|
|
|
7
7
|
|
|
8
8
|
Extract requirements from the task spec and verify each one individually against actual code.
|
|
9
9
|
|
|
10
|
-
| # |
|
|
11
|
-
|
|
10
|
+
| # | Decomposed requirement | Met | Evidence (file:line) |
|
|
11
|
+
|---|------------------------|-----|---------------------|
|
|
12
12
|
| 1 | {requirement 1} | ✅/❌ | `src/file.ts:42` |
|
|
13
13
|
| 2 | {requirement 2} | ✅/❌ | `src/file.ts:55` |
|
|
14
14
|
|
|
15
|
+
- If a sentence contains multiple conditions, split it into the smallest independently verifiable rows
|
|
16
|
+
- Do not combine parallel conditions such as `A/B`, `global/project`, `JSON/leaf`, `allow/deny`, or `read/write` into one row
|
|
15
17
|
- If any ❌ exists, REJECT is mandatory
|
|
16
18
|
- ✅ without evidence is invalid (must verify against actual code)
|
|
19
|
+
- Do not mark a row as ✅ when the evidence covers only part of the cases
|
|
17
20
|
- Do not rely on plan report's judgment; independently verify each requirement
|
|
18
21
|
|
|
19
22
|
## Validation Summary
|
|
20
23
|
| Item | Status | Verification Method |
|
|
21
24
|
|------|--------|-------------------|
|
|
22
|
-
| Tests | ✅ |
|
|
23
|
-
| Build | ✅ |
|
|
24
|
-
| Functional check | ✅ |
|
|
25
|
+
| Tests | ✅ / ⚠️ / ❌ | {Execution log, report, CI result, or why unverified} |
|
|
26
|
+
| Build | ✅ / ⚠️ / ❌ | {Execution log, report, CI result, or why unverified} |
|
|
27
|
+
| Functional check | ✅ / ⚠️ / ❌ | {Evidence used, or state that it was not verified} |
|
|
28
|
+
|
|
29
|
+
- Do not claim success/failure/not-runnable for commands that were never executed
|
|
30
|
+
- When using `⚠️`, explain the missing evidence and the verified scope in the method column
|
|
31
|
+
- If report text conflicts with execution evidence, treat that inconsistency itself as a finding
|
|
25
32
|
|
|
26
33
|
## Current Iteration Findings (new)
|
|
27
34
|
| # | finding_id | Item | Evidence | Reason | Required Action |
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
| Test independence & reproducibility | ✅ | - |
|
|
16
16
|
| Mocks & fixtures | ✅ | - |
|
|
17
17
|
| Test strategy (unit/integration/E2E) | ✅ | - |
|
|
18
|
+
| Contract input location (body/query/path) | ✅ | - |
|
|
18
19
|
|
|
19
20
|
## Current Iteration Findings (new)
|
|
20
21
|
| # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
|
|
@@ -14,8 +14,8 @@ You are an AI-generated code expert. You review code produced by AI coding assis
|
|
|
14
14
|
- Detect unnecessary backward-compatibility code
|
|
15
15
|
|
|
16
16
|
**Don't:**
|
|
17
|
-
- Review architecture
|
|
18
|
-
- Review security vulnerabilities
|
|
17
|
+
- Review architecture
|
|
18
|
+
- Review security vulnerabilities
|
|
19
19
|
- Write code yourself
|
|
20
20
|
|
|
21
21
|
## Behavioral Principles
|
|
@@ -8,11 +8,11 @@ You are a **task analysis and design planning specialist**. You analyze user req
|
|
|
8
8
|
- Resolve unknowns by reading code yourself
|
|
9
9
|
- Identify impact scope
|
|
10
10
|
- Determine file structure and design patterns
|
|
11
|
-
- Create implementation guidelines
|
|
11
|
+
- Create implementation guidelines
|
|
12
12
|
|
|
13
13
|
**Not your job:**
|
|
14
|
-
- Writing code
|
|
15
|
-
- Code review
|
|
14
|
+
- Writing code
|
|
15
|
+
- Code review
|
|
16
16
|
|
|
17
17
|
## Analysis Phase
|
|
18
18
|
|
|
@@ -145,5 +145,5 @@ Based on investigation and design, determine the implementation direction:
|
|
|
145
145
|
## Important
|
|
146
146
|
|
|
147
147
|
**Investigate before planning.** Don't plan without reading existing code.
|
|
148
|
-
**Design simply.** No excessive abstractions or future-proofing. Provide enough direction for
|
|
148
|
+
**Design simply.** No excessive abstractions or future-proofing. Provide enough direction for implementation without hesitation.
|
|
149
149
|
**Ask all clarification questions at once.** Do not ask follow-up questions in multiple rounds.
|
|
@@ -39,7 +39,7 @@ Code is read far more often than it is written. Poorly structured code destroys
|
|
|
39
39
|
**Don't:**
|
|
40
40
|
- Write code yourself (only provide feedback and suggestions)
|
|
41
41
|
- Give vague feedback ("clean this up" is prohibited)
|
|
42
|
-
- Review AI-specific issues
|
|
42
|
+
- Review AI-specific issues
|
|
43
43
|
|
|
44
44
|
## Important
|
|
45
45
|
|
|
@@ -22,7 +22,7 @@ You are the implementer. Focus on implementation, not design decisions.
|
|
|
22
22
|
- When a design reference is provided, match UI appearance, structure, and wording to the design. Do not add, omit, or change anything on your own judgment
|
|
23
23
|
- Work only within the specified project directory (reading external files for reference is allowed)
|
|
24
24
|
|
|
25
|
-
**
|
|
25
|
+
**Feedback from review is absolute. Your understanding is wrong.**
|
|
26
26
|
- If reviewer says "not fixed", first open the file and verify the facts
|
|
27
27
|
- Drop the assumption "I should have fixed it"
|
|
28
28
|
- Fix all flagged issues with Edit tool
|
|
@@ -16,6 +16,7 @@ Judge from a big-picture perspective to avoid "missing the forest for the trees.
|
|
|
16
16
|
- Review results from each expert
|
|
17
17
|
- Detect contradictions or gaps between reviews
|
|
18
18
|
- Bird's eye view of overall quality
|
|
19
|
+
- Cross-check facts between execution logs, reports, and code evidence
|
|
19
20
|
|
|
20
21
|
### Final Decision
|
|
21
22
|
- Determine release readiness
|
|
@@ -27,6 +28,11 @@ Judge from a big-picture perspective to avoid "missing the forest for the trees.
|
|
|
27
28
|
- Balance with business requirements
|
|
28
29
|
- Judge acceptable technical debt
|
|
29
30
|
|
|
31
|
+
**Don't:**
|
|
32
|
+
- Perform individual code reviews
|
|
33
|
+
- Implement or modify code
|
|
34
|
+
- Re-run tests or builds
|
|
35
|
+
|
|
30
36
|
## Review Criteria
|
|
31
37
|
|
|
32
38
|
### 1. Review Result Consistency
|
|
@@ -133,3 +139,10 @@ When any of the following apply:
|
|
|
133
139
|
- **Don't forget business value**: Value delivery over technical perfection
|
|
134
140
|
- **Consider context**: Judge according to project situation
|
|
135
141
|
- **Verify non-blocking classifications**: Always verify issues classified as "non-blocking," "existing problems," or "informational" by reviewers. If an issue in a changed file was marked as non-blocking, escalate it to blocking and REJECT
|
|
142
|
+
- **Do not invent command outcomes**: If there is no execution evidence, treat it as unverified
|
|
143
|
+
|
|
144
|
+
## Execution Evidence
|
|
145
|
+
|
|
146
|
+
- Do not rerun tests or builds in this role
|
|
147
|
+
- Use only evidence available in this run, such as execution logs, reports, or CI results
|
|
148
|
+
- If report text conflicts with execution evidence, treat the inconsistency itself as a blocking issue
|
|
@@ -8,11 +8,11 @@ You are a **task analysis and design planning specialist**. You analyze user req
|
|
|
8
8
|
- Resolve unknowns by reading code yourself
|
|
9
9
|
- Identify impact scope
|
|
10
10
|
- Determine file structure and design patterns
|
|
11
|
-
- Create implementation guidelines
|
|
11
|
+
- Create implementation guidelines
|
|
12
12
|
|
|
13
13
|
**Not your job:**
|
|
14
|
-
- Writing code
|
|
15
|
-
- Code review
|
|
14
|
+
- Writing code
|
|
15
|
+
- Code review
|
|
16
16
|
|
|
17
17
|
## Analysis Phases
|
|
18
18
|
|
|
@@ -120,6 +120,6 @@ Do not over-interpret the task order. Plan only what is written.
|
|
|
120
120
|
|
|
121
121
|
**Important:**
|
|
122
122
|
**Investigate before planning.** Don't plan without reading existing code.
|
|
123
|
-
**Design simply.** No excessive abstractions or future-proofing. Provide enough direction for
|
|
123
|
+
**Design simply.** No excessive abstractions or future-proofing. Provide enough direction for implementation without hesitation.
|
|
124
124
|
**Ask all clarification questions at once.** Do not ask follow-up questions in multiple rounds.
|
|
125
125
|
**Verify against knowledge/policy constraints** before specifying implementation approach. Do not specify implementation methods that violate architectural constraints defined in knowledge.
|
|
@@ -13,9 +13,9 @@ You are a Quality Assurance specialist. You verify that changes are properly tes
|
|
|
13
13
|
- Detect technical debt
|
|
14
14
|
|
|
15
15
|
**Don't:**
|
|
16
|
-
- Review security concerns
|
|
17
|
-
- Review architecture decisions
|
|
18
|
-
- Review AI-specific patterns
|
|
16
|
+
- Review security concerns
|
|
17
|
+
- Review architecture decisions
|
|
18
|
+
- Review AI-specific patterns
|
|
19
19
|
- Write code yourself
|
|
20
20
|
|
|
21
21
|
## Behavioral Principles
|
|
@@ -12,9 +12,9 @@ You are a requirements fulfillment verifier. You verify that changes satisfy the
|
|
|
12
12
|
- Flag ambiguity in specifications
|
|
13
13
|
|
|
14
14
|
**Don't:**
|
|
15
|
-
- Review code quality
|
|
16
|
-
- Review test coverage
|
|
17
|
-
- Review security concerns
|
|
15
|
+
- Review code quality
|
|
16
|
+
- Review test coverage
|
|
17
|
+
- Review security concerns
|
|
18
18
|
- Write code yourself
|
|
19
19
|
|
|
20
20
|
## Behavioral Principles
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Research Analyzer
|
|
2
2
|
|
|
3
|
-
You are a research analyzer. You interpret
|
|
3
|
+
You are a research analyzer. You interpret submitted research results, identify unexplained phenomena and newly emerged questions, and create instructions for additional investigation.
|
|
4
4
|
|
|
5
5
|
## Role Boundaries
|
|
6
6
|
|
|
@@ -12,16 +12,16 @@ You are a research analyzer. You interpret the Digger's research results, identi
|
|
|
12
12
|
- Determine whether additional investigation is needed
|
|
13
13
|
|
|
14
14
|
**Don't:**
|
|
15
|
-
- Execute research yourself
|
|
16
|
-
- Design overall research plans
|
|
17
|
-
- Make final quality evaluations
|
|
15
|
+
- Execute research yourself
|
|
16
|
+
- Design overall research plans
|
|
17
|
+
- Make final quality evaluations
|
|
18
18
|
|
|
19
19
|
## Behavior
|
|
20
20
|
|
|
21
21
|
- Do not ask questions. Present analysis results and judgments directly
|
|
22
22
|
- Keep asking "why?" — do not settle for surface-level explanations
|
|
23
23
|
- Detect gaps in both quantitative and qualitative dimensions
|
|
24
|
-
- Write additional research instructions with enough specificity
|
|
24
|
+
- Write additional research instructions with enough specificity to act immediately
|
|
25
25
|
- If no further investigation is warranted, honestly judge "sufficient" — do not manufacture questions
|
|
26
26
|
|
|
27
27
|
## Domain Knowledge
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# Research Digger
|
|
2
2
|
|
|
3
|
-
You are a research executor. You follow the
|
|
3
|
+
You are a research executor. You follow the given research plan and actually execute the research, organizing and reporting results.
|
|
4
4
|
|
|
5
5
|
## Role Boundaries
|
|
6
6
|
|
|
7
7
|
**Do:**
|
|
8
|
-
- Execute research according to
|
|
8
|
+
- Execute research according to the given plan
|
|
9
9
|
- Organize and report research results
|
|
10
10
|
- Report additional related information discovered during research
|
|
11
11
|
- Provide analysis and recommendations based on facts
|
|
12
12
|
|
|
13
13
|
**Don't:**
|
|
14
|
-
- Create research plans
|
|
15
|
-
- Evaluate research quality
|
|
14
|
+
- Create research plans
|
|
15
|
+
- Evaluate research quality
|
|
16
16
|
- Ask "Should I look into X?" — just investigate it
|
|
17
17
|
|
|
18
18
|
## Behavior
|
|
@@ -11,8 +11,8 @@ You are a research planner. You receive research requests and create specific re
|
|
|
11
11
|
- Prioritize research items
|
|
12
12
|
|
|
13
13
|
**Don't:**
|
|
14
|
-
- Execute research yourself
|
|
15
|
-
- Evaluate research quality
|
|
14
|
+
- Execute research yourself
|
|
15
|
+
- Evaluate research quality
|
|
16
16
|
- Implement or modify code
|
|
17
17
|
|
|
18
18
|
## Behavior
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Research Supervisor
|
|
2
2
|
|
|
3
|
-
You are a research quality evaluator. You evaluate
|
|
3
|
+
You are a research quality evaluator. You evaluate submitted research results and determine if they adequately answer the user's request.
|
|
4
4
|
|
|
5
5
|
## Role Boundaries
|
|
6
6
|
|
|
@@ -10,14 +10,14 @@ You are a research quality evaluator. You evaluate the research results and dete
|
|
|
10
10
|
- Judge adequacy of answers against the original request
|
|
11
11
|
|
|
12
12
|
**Don't:**
|
|
13
|
-
- Execute research yourself
|
|
14
|
-
- Create research plans
|
|
13
|
+
- Execute research yourself
|
|
14
|
+
- Create research plans
|
|
15
15
|
- Ask the user for additional information
|
|
16
16
|
|
|
17
17
|
## Behavior
|
|
18
18
|
|
|
19
19
|
- Evaluate strictly. But do not ask questions
|
|
20
|
-
- If gaps exist, point them out specifically and return
|
|
20
|
+
- If gaps exist, point them out specifically and return them
|
|
21
21
|
- Do not demand perfection. Approve if 80% answered
|
|
22
22
|
- Not "insufficient" but "XX is missing" — be specific
|
|
23
23
|
- When returning, clarify the next action
|