tapps-agents 3.5.39__py3-none-any.whl → 3.5.40__py3-none-any.whl
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.
- tapps_agents/__init__.py +2 -2
- tapps_agents/agents/enhancer/agent.py +2728 -2728
- tapps_agents/agents/implementer/agent.py +35 -13
- tapps_agents/agents/reviewer/agent.py +43 -10
- tapps_agents/agents/reviewer/scoring.py +59 -68
- tapps_agents/agents/reviewer/tools/__init__.py +24 -0
- tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -0
- tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -0
- tapps_agents/beads/__init__.py +11 -0
- tapps_agents/beads/hydration.py +213 -0
- tapps_agents/beads/specs.py +206 -0
- tapps_agents/cli/commands/health.py +19 -3
- tapps_agents/cli/commands/simple_mode.py +842 -676
- tapps_agents/cli/commands/task.py +219 -0
- tapps_agents/cli/commands/top_level.py +13 -0
- tapps_agents/cli/main.py +658 -651
- tapps_agents/cli/parsers/top_level.py +1978 -1881
- tapps_agents/core/config.py +1622 -1622
- tapps_agents/core/init_project.py +3012 -2897
- tapps_agents/epic/markdown_sync.py +105 -0
- tapps_agents/epic/orchestrator.py +1 -2
- tapps_agents/epic/parser.py +427 -423
- tapps_agents/experts/adaptive_domain_detector.py +0 -2
- tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +15 -15
- tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +19 -44
- tapps_agents/health/checks/outcomes.backup_20260204_064058.py +324 -0
- tapps_agents/health/checks/outcomes.backup_20260204_064256.py +324 -0
- tapps_agents/health/checks/outcomes.backup_20260204_064600.py +324 -0
- tapps_agents/health/checks/outcomes.py +134 -46
- tapps_agents/health/orchestrator.py +12 -4
- tapps_agents/hooks/__init__.py +33 -0
- tapps_agents/hooks/config.py +140 -0
- tapps_agents/hooks/events.py +135 -0
- tapps_agents/hooks/executor.py +128 -0
- tapps_agents/hooks/manager.py +143 -0
- tapps_agents/session/__init__.py +19 -0
- tapps_agents/session/manager.py +256 -0
- tapps_agents/simple_mode/code_snippet_handler.py +382 -0
- tapps_agents/simple_mode/intent_parser.py +29 -4
- tapps_agents/simple_mode/orchestrators/base.py +185 -59
- tapps_agents/simple_mode/orchestrators/build_orchestrator.py +2667 -2642
- tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +2 -2
- tapps_agents/simple_mode/workflow_suggester.py +37 -3
- tapps_agents/workflow/agent_handlers/implementer_handler.py +18 -3
- tapps_agents/workflow/cursor_executor.py +2196 -2118
- tapps_agents/workflow/direct_execution_fallback.py +16 -3
- tapps_agents/workflow/message_formatter.py +2 -1
- tapps_agents/workflow/parallel_executor.py +43 -4
- tapps_agents/workflow/parser.py +375 -357
- tapps_agents/workflow/rules_generator.py +337 -337
- tapps_agents/workflow/skill_invoker.py +9 -3
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.40.dist-info}/METADATA +5 -1
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.40.dist-info}/RECORD +57 -53
- tapps_agents/agents/analyst/SKILL.md +0 -85
- tapps_agents/agents/architect/SKILL.md +0 -80
- tapps_agents/agents/debugger/SKILL.md +0 -66
- tapps_agents/agents/designer/SKILL.md +0 -78
- tapps_agents/agents/documenter/SKILL.md +0 -95
- tapps_agents/agents/enhancer/SKILL.md +0 -189
- tapps_agents/agents/implementer/SKILL.md +0 -117
- tapps_agents/agents/improver/SKILL.md +0 -55
- tapps_agents/agents/ops/SKILL.md +0 -64
- tapps_agents/agents/orchestrator/SKILL.md +0 -238
- tapps_agents/agents/planner/story_template.md +0 -37
- tapps_agents/agents/reviewer/templates/quality-dashboard.html.j2 +0 -150
- tapps_agents/agents/tester/SKILL.md +0 -71
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.40.dist-info}/WHEEL +0 -0
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.40.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.40.dist-info}/licenses/LICENSE +0 -0
- {tapps_agents-3.5.39.dist-info → tapps_agents-3.5.40.dist-info}/top_level.txt +0 -0
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
# Orchestrator Agent - Skill Definition
|
|
2
|
-
|
|
3
|
-
> NOTE: Cursor uses the canonical Skills in `.claude/skills/`.
|
|
4
|
-
> This file is framework documentation; prefer `.claude/skills/orchestrator/SKILL.md` for Cursor.
|
|
5
|
-
|
|
6
|
-
## Purpose
|
|
7
|
-
|
|
8
|
-
The Orchestrator Agent coordinates YAML-defined workflows and makes gate decisions. It is responsible for:
|
|
9
|
-
|
|
10
|
-
- Loading and executing workflows from YAML definitions
|
|
11
|
-
- Making gate decisions based on scoring and conditions
|
|
12
|
-
- Routing to appropriate workflows (Greenfield/Brownfield)
|
|
13
|
-
- Tracking workflow state and progress
|
|
14
|
-
- Coordinating agent execution within workflows
|
|
15
|
-
|
|
16
|
-
## Permissions
|
|
17
|
-
|
|
18
|
-
- **Read**: ✅
|
|
19
|
-
- **Write**: ❌
|
|
20
|
-
- **Edit**: ❌
|
|
21
|
-
- **Grep**: ✅
|
|
22
|
-
- **Glob**: ✅
|
|
23
|
-
- **Bash**: ❌
|
|
24
|
-
|
|
25
|
-
**Type**: Read-only agent (coordination only, no code modification)
|
|
26
|
-
|
|
27
|
-
## Commands
|
|
28
|
-
|
|
29
|
-
### `*workflow-list`
|
|
30
|
-
|
|
31
|
-
List all available workflows in the `workflows/` directory.
|
|
32
|
-
|
|
33
|
-
**Example:**
|
|
34
|
-
```bash
|
|
35
|
-
tapps-agents orchestrator *workflow-list
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
**Returns:**
|
|
39
|
-
```json
|
|
40
|
-
{
|
|
41
|
-
"workflows": [
|
|
42
|
-
{
|
|
43
|
-
"id": "example-feature-development",
|
|
44
|
-
"name": "Example Feature Development Workflow",
|
|
45
|
-
"description": "Standard workflow for new feature implementation",
|
|
46
|
-
"version": "1.0.0",
|
|
47
|
-
"type": "greenfield",
|
|
48
|
-
"file": "workflows/example-feature-development.yaml"
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### `*workflow-start {workflow_id}`
|
|
55
|
-
|
|
56
|
-
Start a workflow by ID.
|
|
57
|
-
|
|
58
|
-
**Example:**
|
|
59
|
-
```bash
|
|
60
|
-
tapps-agents orchestrator *workflow-start example-feature-development
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Returns:**
|
|
64
|
-
```json
|
|
65
|
-
{
|
|
66
|
-
"success": true,
|
|
67
|
-
"workflow_id": "example-feature-development",
|
|
68
|
-
"workflow_name": "Example Feature Development Workflow",
|
|
69
|
-
"status": "running",
|
|
70
|
-
"current_step": "requirements",
|
|
71
|
-
"message": "Workflow 'Example Feature Development Workflow' started"
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### `*workflow-status`
|
|
76
|
-
|
|
77
|
-
Get the current workflow execution status.
|
|
78
|
-
|
|
79
|
-
**Example:**
|
|
80
|
-
```bash
|
|
81
|
-
tapps-agents orchestrator *workflow-status
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**Returns:**
|
|
85
|
-
```json
|
|
86
|
-
{
|
|
87
|
-
"workflow_id": "example-feature-development",
|
|
88
|
-
"status": "running",
|
|
89
|
-
"current_step": "planning",
|
|
90
|
-
"current_step_details": {
|
|
91
|
-
"id": "planning",
|
|
92
|
-
"agent": "planner",
|
|
93
|
-
"action": "create_stories"
|
|
94
|
-
},
|
|
95
|
-
"completed_steps": ["requirements"],
|
|
96
|
-
"skipped_steps": [],
|
|
97
|
-
"artifacts_count": 1,
|
|
98
|
-
"can_proceed": true
|
|
99
|
-
}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### `*workflow-next`
|
|
103
|
-
|
|
104
|
-
Get information about the next step in the workflow.
|
|
105
|
-
|
|
106
|
-
**Example:**
|
|
107
|
-
```bash
|
|
108
|
-
tapps-agents orchestrator *workflow-next
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
**Returns:**
|
|
112
|
-
```json
|
|
113
|
-
{
|
|
114
|
-
"next_step": {
|
|
115
|
-
"id": "design",
|
|
116
|
-
"agent": "architect",
|
|
117
|
-
"action": "design_system",
|
|
118
|
-
"context_tier": 2,
|
|
119
|
-
"requires": ["requirements.md", "stories/"],
|
|
120
|
-
"creates": ["architecture.md"]
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### `*workflow-skip {step_id}`
|
|
126
|
-
|
|
127
|
-
Skip an optional step in the workflow.
|
|
128
|
-
|
|
129
|
-
**Example:**
|
|
130
|
-
```bash
|
|
131
|
-
tapps-agents orchestrator *workflow-skip review
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**Returns:**
|
|
135
|
-
```json
|
|
136
|
-
{
|
|
137
|
-
"success": true,
|
|
138
|
-
"message": "Step 'review' skipped",
|
|
139
|
-
"current_step": "testing"
|
|
140
|
-
}
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### `*workflow-resume`
|
|
144
|
-
|
|
145
|
-
Resume an interrupted workflow (loads state from persistence).
|
|
146
|
-
|
|
147
|
-
**Example:**
|
|
148
|
-
```bash
|
|
149
|
-
tapps-agents orchestrator *workflow-resume
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### `*gate {condition}`
|
|
153
|
-
|
|
154
|
-
Make a gate decision based on condition and scoring data.
|
|
155
|
-
|
|
156
|
-
**Example:**
|
|
157
|
-
```bash
|
|
158
|
-
tapps-agents orchestrator *gate --condition "scoring.passed == true" --scoring-data '{"passed": true, "overall_score": 85}'
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
**Returns:**
|
|
162
|
-
```json
|
|
163
|
-
{
|
|
164
|
-
"passed": true,
|
|
165
|
-
"condition": "scoring.passed == true",
|
|
166
|
-
"scoring": {
|
|
167
|
-
"passed": true,
|
|
168
|
-
"overall_score": 85
|
|
169
|
-
},
|
|
170
|
-
"message": "Gate passed"
|
|
171
|
-
}
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### `*help`
|
|
175
|
-
|
|
176
|
-
Show help for orchestrator commands.
|
|
177
|
-
|
|
178
|
-
## Workflow Integration
|
|
179
|
-
|
|
180
|
-
The Orchestrator Agent integrates with the Workflow Engine to:
|
|
181
|
-
|
|
182
|
-
1. **Load Workflows**: Parse YAML workflow definitions
|
|
183
|
-
2. **Execute Steps**: Coordinate agent execution for each step
|
|
184
|
-
3. **Track Artifacts**: Monitor artifact creation and dependencies
|
|
185
|
-
4. **Make Gates**: Evaluate conditions and scoring to determine workflow progression
|
|
186
|
-
5. **Handle Branching**: Route to different steps based on gate decisions
|
|
187
|
-
|
|
188
|
-
## Gate Decision Logic
|
|
189
|
-
|
|
190
|
-
The orchestrator evaluates gate conditions using:
|
|
191
|
-
|
|
192
|
-
- **Scoring Data**: Results from reviewer agent (overall_score, passed, etc.)
|
|
193
|
-
- **Conditions**: String expressions like "scoring.passed == true" or "overall_score >= 70"
|
|
194
|
-
- **Thresholds**: Minimum scores for passing gates
|
|
195
|
-
|
|
196
|
-
**Gate Outcomes:**
|
|
197
|
-
- **Pass**: Workflow proceeds to `on_pass` step
|
|
198
|
-
- **Fail**: Workflow loops back to `on_fail` step (typically for retry)
|
|
199
|
-
|
|
200
|
-
## Context Tier Usage
|
|
201
|
-
|
|
202
|
-
The orchestrator uses **Tier 1** context (minimal) since it only coordinates workflows and doesn't analyze code.
|
|
203
|
-
|
|
204
|
-
## Integration with Other Agents
|
|
205
|
-
|
|
206
|
-
The orchestrator coordinates:
|
|
207
|
-
|
|
208
|
-
- **Planner**: Creates stories and plans
|
|
209
|
-
- **Architect**: Designs system architecture
|
|
210
|
-
- **Implementer**: Generates code
|
|
211
|
-
- **Reviewer**: Reviews code and provides scoring
|
|
212
|
-
- **Tester**: Generates and runs tests
|
|
213
|
-
- **Debugger**: Analyzes errors
|
|
214
|
-
- **Documenter**: Generates documentation
|
|
215
|
-
|
|
216
|
-
## Example Workflow Execution
|
|
217
|
-
|
|
218
|
-
```yaml
|
|
219
|
-
# workflows/example-feature-development.yaml
|
|
220
|
-
workflow:
|
|
221
|
-
id: example-feature-development
|
|
222
|
-
steps:
|
|
223
|
-
- id: review
|
|
224
|
-
agent: reviewer
|
|
225
|
-
action: review_code
|
|
226
|
-
gate:
|
|
227
|
-
condition: "scoring.passed == true"
|
|
228
|
-
on_pass: testing
|
|
229
|
-
on_fail: implementation
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
**Execution Flow:**
|
|
233
|
-
1. Orchestrator starts workflow
|
|
234
|
-
2. Reviewer agent reviews code
|
|
235
|
-
3. Orchestrator evaluates gate: `scoring.passed == true`
|
|
236
|
-
4. If passed → proceed to testing
|
|
237
|
-
5. If failed → loop back to implementation
|
|
238
|
-
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# User Story Template
|
|
2
|
-
|
|
3
|
-
```yaml
|
|
4
|
-
story_id: <auto-generated>
|
|
5
|
-
title: <short descriptive title>
|
|
6
|
-
description: <detailed description>
|
|
7
|
-
epic: <epic or feature area>
|
|
8
|
-
domain: <business domain>
|
|
9
|
-
priority: <high|medium|low>
|
|
10
|
-
complexity: <1-5 estimate>
|
|
11
|
-
status: <draft|ready|in-progress|done>
|
|
12
|
-
created_at: <timestamp>
|
|
13
|
-
created_by: planner
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Acceptance Criteria
|
|
17
|
-
|
|
18
|
-
- [ ] Criterion 1
|
|
19
|
-
- [ ] Criterion 2
|
|
20
|
-
- [ ] Criterion 3
|
|
21
|
-
|
|
22
|
-
## Tasks
|
|
23
|
-
|
|
24
|
-
1. Task 1
|
|
25
|
-
2. Task 2
|
|
26
|
-
3. Task 3
|
|
27
|
-
|
|
28
|
-
## Technical Notes
|
|
29
|
-
|
|
30
|
-
(Technical considerations, dependencies, etc.)
|
|
31
|
-
|
|
32
|
-
## Dependencies
|
|
33
|
-
|
|
34
|
-
- Related stories: []
|
|
35
|
-
- Blocks: []
|
|
36
|
-
- Blocked by: []
|
|
37
|
-
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Quality Analysis Dashboard</title>
|
|
7
|
-
<style>
|
|
8
|
-
body {
|
|
9
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
|
|
10
|
-
max-width: 1200px;
|
|
11
|
-
margin: 0 auto;
|
|
12
|
-
padding: 20px;
|
|
13
|
-
background-color: #f5f5f5;
|
|
14
|
-
}
|
|
15
|
-
.header {
|
|
16
|
-
background: white;
|
|
17
|
-
padding: 20px;
|
|
18
|
-
border-radius: 8px;
|
|
19
|
-
margin-bottom: 20px;
|
|
20
|
-
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
|
21
|
-
}
|
|
22
|
-
.status {
|
|
23
|
-
display: inline-block;
|
|
24
|
-
padding: 8px 16px;
|
|
25
|
-
border-radius: 4px;
|
|
26
|
-
color: white;
|
|
27
|
-
font-weight: bold;
|
|
28
|
-
background-color: {{ status_color }};
|
|
29
|
-
margin: 10px 0;
|
|
30
|
-
}
|
|
31
|
-
.metrics {
|
|
32
|
-
display: grid;
|
|
33
|
-
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
34
|
-
gap: 20px;
|
|
35
|
-
margin-bottom: 20px;
|
|
36
|
-
}
|
|
37
|
-
.metric-card {
|
|
38
|
-
background: white;
|
|
39
|
-
padding: 20px;
|
|
40
|
-
border-radius: 8px;
|
|
41
|
-
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
|
42
|
-
}
|
|
43
|
-
.metric-label {
|
|
44
|
-
font-size: 14px;
|
|
45
|
-
color: #666;
|
|
46
|
-
margin-bottom: 8px;
|
|
47
|
-
}
|
|
48
|
-
.metric-value {
|
|
49
|
-
font-size: 32px;
|
|
50
|
-
font-weight: bold;
|
|
51
|
-
color: #333;
|
|
52
|
-
}
|
|
53
|
-
table {
|
|
54
|
-
width: 100%;
|
|
55
|
-
border-collapse: collapse;
|
|
56
|
-
background: white;
|
|
57
|
-
border-radius: 8px;
|
|
58
|
-
overflow: hidden;
|
|
59
|
-
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
|
60
|
-
}
|
|
61
|
-
th, td {
|
|
62
|
-
padding: 12px;
|
|
63
|
-
text-align: left;
|
|
64
|
-
border-bottom: 1px solid #ddd;
|
|
65
|
-
}
|
|
66
|
-
th {
|
|
67
|
-
background-color: #f8f9fa;
|
|
68
|
-
font-weight: 600;
|
|
69
|
-
}
|
|
70
|
-
.footer {
|
|
71
|
-
text-align: center;
|
|
72
|
-
color: #666;
|
|
73
|
-
margin-top: 40px;
|
|
74
|
-
font-size: 12px;
|
|
75
|
-
}
|
|
76
|
-
</style>
|
|
77
|
-
</head>
|
|
78
|
-
<body>
|
|
79
|
-
<div class="header">
|
|
80
|
-
<h1>Quality Analysis Dashboard</h1>
|
|
81
|
-
<p><strong>Generated:</strong> {{ generated_at }}</p>
|
|
82
|
-
<p><strong>Project:</strong> {{ project_name }}</p>
|
|
83
|
-
<p><strong>Version:</strong> {{ version }}</p>
|
|
84
|
-
<div class="status">{{ status_text }}</div>
|
|
85
|
-
<p><strong>Overall Score:</strong> {{ overall_score }}/100 (Threshold: {{ overall_threshold }})</p>
|
|
86
|
-
</div>
|
|
87
|
-
|
|
88
|
-
<div class="metrics">
|
|
89
|
-
<div class="metric-card">
|
|
90
|
-
<div class="metric-label">Complexity</div>
|
|
91
|
-
<div class="metric-value">{{ complexity_score }}</div>
|
|
92
|
-
</div>
|
|
93
|
-
<div class="metric-card">
|
|
94
|
-
<div class="metric-label">Security</div>
|
|
95
|
-
<div class="metric-value">{{ security_score }}</div>
|
|
96
|
-
</div>
|
|
97
|
-
<div class="metric-card">
|
|
98
|
-
<div class="metric-label">Maintainability</div>
|
|
99
|
-
<div class="metric-value">{{ maintainability_score }}</div>
|
|
100
|
-
</div>
|
|
101
|
-
<div class="metric-card">
|
|
102
|
-
<div class="metric-label">Test Coverage</div>
|
|
103
|
-
<div class="metric-value">{{ test_coverage_score }}</div>
|
|
104
|
-
</div>
|
|
105
|
-
<div class="metric-card">
|
|
106
|
-
<div class="metric-label">Performance</div>
|
|
107
|
-
<div class="metric-value">{{ performance_score }}</div>
|
|
108
|
-
</div>
|
|
109
|
-
<div class="metric-card">
|
|
110
|
-
<div class="metric-label">Linting</div>
|
|
111
|
-
<div class="metric-value">{{ linting_score }}</div>
|
|
112
|
-
</div>
|
|
113
|
-
<div class="metric-card">
|
|
114
|
-
<div class="metric-label">Type Checking</div>
|
|
115
|
-
<div class="metric-value">{{ type_checking_score }}</div>
|
|
116
|
-
</div>
|
|
117
|
-
</div>
|
|
118
|
-
|
|
119
|
-
{% if files %}
|
|
120
|
-
<h2>File-Level Analysis</h2>
|
|
121
|
-
<table>
|
|
122
|
-
<thead>
|
|
123
|
-
<tr>
|
|
124
|
-
<th>File</th>
|
|
125
|
-
<th>Overall Score</th>
|
|
126
|
-
<th>Complexity</th>
|
|
127
|
-
<th>Security</th>
|
|
128
|
-
<th>Maintainability</th>
|
|
129
|
-
</tr>
|
|
130
|
-
</thead>
|
|
131
|
-
<tbody>
|
|
132
|
-
{% for f in files %}
|
|
133
|
-
<tr>
|
|
134
|
-
<td>{{ f.file }}</td>
|
|
135
|
-
<td>{{ f.overall_score }}</td>
|
|
136
|
-
<td>{{ f.complexity_score }}</td>
|
|
137
|
-
<td>{{ f.security_score }}</td>
|
|
138
|
-
<td>{{ f.maintainability_score }}</td>
|
|
139
|
-
</tr>
|
|
140
|
-
{% endfor %}
|
|
141
|
-
</tbody>
|
|
142
|
-
</table>
|
|
143
|
-
{% endif %}
|
|
144
|
-
|
|
145
|
-
<div class="footer">
|
|
146
|
-
Generated by TappsCodingAgents Quality Analysis System
|
|
147
|
-
</div>
|
|
148
|
-
</body>
|
|
149
|
-
</html>
|
|
150
|
-
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tester
|
|
3
|
-
description: Generate and run tests for code. Use when creating unit tests, integration tests, or running test suites.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
|
|
5
|
-
model_profile: tester_profile
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Tester Agent
|
|
9
|
-
|
|
10
|
-
## Identity
|
|
11
|
-
|
|
12
|
-
You are a senior QA engineer focused on creating comprehensive, maintainable tests that ensure code quality and reliability.
|
|
13
|
-
|
|
14
|
-
## Instructions
|
|
15
|
-
|
|
16
|
-
1. Analyze code structure to identify test cases
|
|
17
|
-
2. Generate unit tests for all public functions and methods
|
|
18
|
-
3. Generate integration tests for module interactions
|
|
19
|
-
4. Follow project test patterns and conventions
|
|
20
|
-
5. Include edge cases and error handling
|
|
21
|
-
6. Mock external dependencies appropriately
|
|
22
|
-
7. Run tests and report coverage
|
|
23
|
-
|
|
24
|
-
## Capabilities
|
|
25
|
-
|
|
26
|
-
- **Test Generation**: Create unit and integration tests from code analysis
|
|
27
|
-
- **Test Execution**: Run pytest test suites
|
|
28
|
-
- **Coverage Reporting**: Track and report test coverage
|
|
29
|
-
- **Code Analysis**: Analyze code structure to identify test targets
|
|
30
|
-
|
|
31
|
-
## Commands
|
|
32
|
-
|
|
33
|
-
- `*test <file>` - Generate and run tests for a file
|
|
34
|
-
- `*generate-tests <file>` - Generate tests without running
|
|
35
|
-
- `*run-tests [path]` - Run existing tests
|
|
36
|
-
|
|
37
|
-
## Examples
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# Generate and run tests
|
|
41
|
-
*test calculator.py
|
|
42
|
-
|
|
43
|
-
# Generate integration tests
|
|
44
|
-
*test api.py --integration
|
|
45
|
-
|
|
46
|
-
# Generate tests only (don't run)
|
|
47
|
-
*generate-tests utils.py
|
|
48
|
-
|
|
49
|
-
# Run all tests
|
|
50
|
-
*run-tests
|
|
51
|
-
|
|
52
|
-
# Run specific test file
|
|
53
|
-
*run-tests tests/test_calculator.py
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Test Quality Standards
|
|
57
|
-
|
|
58
|
-
- **Coverage**: Target 80%+ coverage
|
|
59
|
-
- **Naming**: Descriptive test names (test_function_name_scenario)
|
|
60
|
-
- **Structure**: Arrange-Act-Assert pattern
|
|
61
|
-
- **Isolation**: Tests should be independent
|
|
62
|
-
- **Mocking**: Mock external dependencies
|
|
63
|
-
- **Documentation**: Include docstrings for complex tests
|
|
64
|
-
|
|
65
|
-
## Test Framework
|
|
66
|
-
|
|
67
|
-
Default: pytest
|
|
68
|
-
- Use pytest fixtures for setup/teardown
|
|
69
|
-
- Use pytest.mark for test categorization
|
|
70
|
-
- Use pytest.parametrize for parameterized tests
|
|
71
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|