qa-skills 3.0.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 +168 -0
- package/bin/cli.js +42 -0
- package/dist/agents/registry.d.ts +5 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +101 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/types.d.ts +9 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/dependencies.d.ts +21 -0
- package/dist/dependencies.d.ts.map +1 -0
- package/dist/dependencies.js +125 -0
- package/dist/dependencies.js.map +1 -0
- package/dist/installer.d.ts +25 -0
- package/dist/installer.d.ts.map +1 -0
- package/dist/installer.js +437 -0
- package/dist/installer.js.map +1 -0
- package/dist/scaffold.d.ts +27 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +182 -0
- package/dist/scaffold.js.map +1 -0
- package/package.json +40 -0
- package/skills/qa-accessibility-test-writer/SKILL.md +127 -0
- package/skills/qa-accessibility-test-writer/references/axe-core-patterns.md +349 -0
- package/skills/qa-accessibility-test-writer/references/best-practices.md +184 -0
- package/skills/qa-accessibility-test-writer/references/wcag-tests.md +331 -0
- package/skills/qa-api-contract-curator/SKILL.md +104 -0
- package/skills/qa-api-contract-curator/references/breaking-changes.md +363 -0
- package/skills/qa-api-contract-curator/references/openapi-structure.md +404 -0
- package/skills/qa-browser-data-collector/SKILL.md +132 -0
- package/skills/qa-browser-data-collector/references/data-collection-checklist.md +91 -0
- package/skills/qa-browser-data-collector/references/playwright-mcp-patterns.md +113 -0
- package/skills/qa-bug-ticket-creator/SKILL.md +148 -0
- package/skills/qa-bug-ticket-creator/references/bug-report-format.md +149 -0
- package/skills/qa-bug-ticket-creator/references/severity-guide.md +81 -0
- package/skills/qa-bug-ticket-creator/templates/bug-ticket-template.md +39 -0
- package/skills/qa-changelog-analyzer/SKILL.md +134 -0
- package/skills/qa-changelog-analyzer/references/git-analysis-patterns.md +138 -0
- package/skills/qa-changelog-analyzer/references/impact-mapping.md +120 -0
- package/skills/qa-clickup-integration/SKILL.md +166 -0
- package/skills/qa-clickup-integration/references/api-patterns.md +102 -0
- package/skills/qa-clickup-integration/references/field-mapping.md +71 -0
- package/skills/qa-codeceptjs-writer/SKILL.md +136 -0
- package/skills/qa-codeceptjs-writer/references/best-practices.md +207 -0
- package/skills/qa-codeceptjs-writer/references/config.md +255 -0
- package/skills/qa-codeceptjs-writer/references/patterns.md +285 -0
- package/skills/qa-coverage-analyzer/SKILL.md +166 -0
- package/skills/qa-coverage-analyzer/references/best-practices.md +142 -0
- package/skills/qa-coverage-analyzer/references/coverage-dimensions.md +155 -0
- package/skills/qa-coverage-analyzer/references/tools.md +204 -0
- package/skills/qa-cypress-writer/SKILL.md +134 -0
- package/skills/qa-cypress-writer/references/assertions.md +121 -0
- package/skills/qa-cypress-writer/references/best-practices.md +82 -0
- package/skills/qa-cypress-writer/references/config.md +121 -0
- package/skills/qa-cypress-writer/references/patterns.md +170 -0
- package/skills/qa-data-factory/SKILL.md +126 -0
- package/skills/qa-data-factory/references/factory-patterns.md +164 -0
- package/skills/qa-data-factory/references/faker-guide.md +131 -0
- package/skills/qa-diagram-generator/SKILL.md +125 -0
- package/skills/qa-diagram-generator/references/c4-model.md +53 -0
- package/skills/qa-diagram-generator/references/charts.md +58 -0
- package/skills/qa-diagram-generator/references/class-diagram.md +85 -0
- package/skills/qa-diagram-generator/references/er-diagram.md +69 -0
- package/skills/qa-diagram-generator/references/flowchart.md +92 -0
- package/skills/qa-diagram-generator/references/from-screenshot.md +45 -0
- package/skills/qa-diagram-generator/references/gantt.md +49 -0
- package/skills/qa-diagram-generator/references/journey.md +50 -0
- package/skills/qa-diagram-generator/references/mindmap.md +75 -0
- package/skills/qa-diagram-generator/references/sequence.md +69 -0
- package/skills/qa-diagram-generator/references/state-diagram.md +56 -0
- package/skills/qa-discovery-interview/SKILL.md +182 -0
- package/skills/qa-discovery-interview/references/completeness-checklist.md +53 -0
- package/skills/qa-discovery-interview/references/conflict-patterns.md +101 -0
- package/skills/qa-discovery-interview/references/qa-categories.md +147 -0
- package/skills/qa-discovery-interview/templates/qa-brief-template.md +168 -0
- package/skills/qa-environment-checker/SKILL.md +142 -0
- package/skills/qa-environment-checker/references/dependency-matrix.md +101 -0
- package/skills/qa-environment-checker/references/health-checks.md +209 -0
- package/skills/qa-environment-checker/templates/env-readiness-template.md +64 -0
- package/skills/qa-flaky-detector/SKILL.md +153 -0
- package/skills/qa-flaky-detector/references/ci-analysis.md +140 -0
- package/skills/qa-flaky-detector/references/flaky-patterns.md +247 -0
- package/skills/qa-github-issues-enhanced/SKILL.md +175 -0
- package/skills/qa-github-issues-enhanced/references/issue-templates.md +425 -0
- package/skills/qa-github-issues-enhanced/references/label-taxonomy.md +130 -0
- package/skills/qa-github-issues-enhanced/references/workflow-patterns.md +188 -0
- package/skills/qa-httpx-writer/SKILL.md +138 -0
- package/skills/qa-httpx-writer/references/assertions.md +195 -0
- package/skills/qa-httpx-writer/references/best-practices.md +140 -0
- package/skills/qa-httpx-writer/references/config.md +212 -0
- package/skills/qa-httpx-writer/references/patterns.md +262 -0
- package/skills/qa-jest-writer/SKILL.md +131 -0
- package/skills/qa-jest-writer/references/assertions.md +125 -0
- package/skills/qa-jest-writer/references/best-practices.md +136 -0
- package/skills/qa-jest-writer/references/config.md +134 -0
- package/skills/qa-jest-writer/references/patterns.md +172 -0
- package/skills/qa-jira-integration/SKILL.md +135 -0
- package/skills/qa-jira-integration/references/api-patterns.md +143 -0
- package/skills/qa-jira-integration/references/field-mapping.md +79 -0
- package/skills/qa-jira-integration/references/xray-integration.md +85 -0
- package/skills/qa-jmeter-writer/SKILL.md +171 -0
- package/skills/qa-jmeter-writer/references/best-practices.md +157 -0
- package/skills/qa-jmeter-writer/references/config.md +204 -0
- package/skills/qa-jmeter-writer/references/patterns.md +242 -0
- package/skills/qa-junit5-writer/SKILL.md +157 -0
- package/skills/qa-junit5-writer/references/assertions.md +118 -0
- package/skills/qa-junit5-writer/references/config.md +97 -0
- package/skills/qa-junit5-writer/references/patterns.md +162 -0
- package/skills/qa-k6-writer/SKILL.md +155 -0
- package/skills/qa-k6-writer/references/best-practices.md +236 -0
- package/skills/qa-k6-writer/references/config.md +219 -0
- package/skills/qa-k6-writer/references/patterns.md +304 -0
- package/skills/qa-linear-integration/SKILL.md +137 -0
- package/skills/qa-linear-integration/references/api-patterns.md +249 -0
- package/skills/qa-linear-integration/references/field-mapping.md +121 -0
- package/skills/qa-locust-writer/SKILL.md +151 -0
- package/skills/qa-locust-writer/references/best-practices.md +126 -0
- package/skills/qa-locust-writer/references/config.md +170 -0
- package/skills/qa-locust-writer/references/patterns.md +235 -0
- package/skills/qa-manual-test-designer/SKILL.md +145 -0
- package/skills/qa-manual-test-designer/references/exploratory-charters.md +138 -0
- package/skills/qa-manual-test-designer/references/personas.md +146 -0
- package/skills/qa-manual-test-designer/templates/exploratory-charter-template.md +47 -0
- package/skills/qa-manual-test-designer/templates/test-case-template.md +31 -0
- package/skills/qa-mobile-test-writer/SKILL.md +144 -0
- package/skills/qa-mobile-test-writer/references/best-practices.md +214 -0
- package/skills/qa-mobile-test-writer/references/config.md +309 -0
- package/skills/qa-mobile-test-writer/references/patterns.md +304 -0
- package/skills/qa-nfr-analyst/SKILL.md +177 -0
- package/skills/qa-nfr-analyst/references/iso-25010-model.md +159 -0
- package/skills/qa-nfr-analyst/references/owasp-wstg-baseline.md +202 -0
- package/skills/qa-nfr-analyst/references/wcag-checklist.md +184 -0
- package/skills/qa-nfr-analyst/templates/owasp-checklist-template.md +89 -0
- package/skills/qa-nfr-analyst/templates/wcag-checklist-template.md +48 -0
- package/skills/qa-orchestrator/SKILL.md +132 -0
- package/skills/qa-orchestrator/references/handoff-chains.md +105 -0
- package/skills/qa-orchestrator/references/pipeline-modes.md +115 -0
- package/skills/qa-orchestrator/references/scheduler-rules.md +84 -0
- package/skills/qa-pact-writer/SKILL.md +133 -0
- package/skills/qa-pact-writer/references/best-practices.md +100 -0
- package/skills/qa-pact-writer/references/config.md +135 -0
- package/skills/qa-pact-writer/references/patterns.md +161 -0
- package/skills/qa-plan-creator/SKILL.md +139 -0
- package/skills/qa-plan-creator/references/introduction-plan.md +43 -0
- package/skills/qa-plan-creator/references/migration-plan.md +44 -0
- package/skills/qa-plan-creator/references/onboarding-plan.md +46 -0
- package/skills/qa-plan-creator/references/performance-plan.md +44 -0
- package/skills/qa-plan-creator/references/regression-plan.md +45 -0
- package/skills/qa-plan-creator/references/release-plan.md +45 -0
- package/skills/qa-plan-creator/references/sprint-plan.md +44 -0
- package/skills/qa-plan-creator/references/test-plan.md +59 -0
- package/skills/qa-plan-creator/references/uat-plan.md +43 -0
- package/skills/qa-plan-creator/templates/checklist-template.md +36 -0
- package/skills/qa-plan-creator/templates/regression-checklist-template.md +49 -0
- package/skills/qa-plan-creator/templates/release-checklist-template.md +46 -0
- package/skills/qa-plan-creator/templates/test-plan-template.md +74 -0
- package/skills/qa-playwright-py-writer/SKILL.md +156 -0
- package/skills/qa-playwright-py-writer/references/best-practices.md +194 -0
- package/skills/qa-playwright-py-writer/references/config.md +195 -0
- package/skills/qa-playwright-py-writer/references/patterns.md +212 -0
- package/skills/qa-playwright-ts-writer/SKILL.md +151 -0
- package/skills/qa-playwright-ts-writer/references/assertions.md +109 -0
- package/skills/qa-playwright-ts-writer/references/best-practices.md +191 -0
- package/skills/qa-playwright-ts-writer/references/config.md +144 -0
- package/skills/qa-playwright-ts-writer/references/patterns.md +171 -0
- package/skills/qa-pytest-writer/SKILL.md +145 -0
- package/skills/qa-pytest-writer/references/assertions.md +149 -0
- package/skills/qa-pytest-writer/references/best-practices.md +97 -0
- package/skills/qa-pytest-writer/references/config.md +176 -0
- package/skills/qa-pytest-writer/references/patterns.md +251 -0
- package/skills/qa-qase-integration/SKILL.md +149 -0
- package/skills/qa-qase-integration/references/api-reference.md +354 -0
- package/skills/qa-qase-integration/references/ci-integration.md +196 -0
- package/skills/qa-qase-integration/references/field-mapping.md +157 -0
- package/skills/qa-requirements-generator/SKILL.md +152 -0
- package/skills/qa-requirements-generator/references/iso-29148-structure.md +153 -0
- package/skills/qa-requirements-generator/references/requirement-patterns.md +278 -0
- package/skills/qa-rest-assured-writer/SKILL.md +137 -0
- package/skills/qa-rest-assured-writer/references/best-practices.md +50 -0
- package/skills/qa-rest-assured-writer/references/config.md +124 -0
- package/skills/qa-rest-assured-writer/references/patterns.md +192 -0
- package/skills/qa-risk-analyzer/SKILL.md +158 -0
- package/skills/qa-risk-analyzer/references/impact-analysis.md +133 -0
- package/skills/qa-risk-analyzer/references/risk-factors.md +123 -0
- package/skills/qa-robot-framework-writer/SKILL.md +147 -0
- package/skills/qa-robot-framework-writer/references/best-practices.md +249 -0
- package/skills/qa-robot-framework-writer/references/config.md +204 -0
- package/skills/qa-robot-framework-writer/references/libraries.md +273 -0
- package/skills/qa-robot-framework-writer/references/patterns.md +216 -0
- package/skills/qa-security-test-writer/SKILL.md +123 -0
- package/skills/qa-security-test-writer/references/best-practices.md +155 -0
- package/skills/qa-security-test-writer/references/owasp-top10.md +331 -0
- package/skills/qa-security-test-writer/references/zap-config.md +258 -0
- package/skills/qa-selenium-java-writer/SKILL.md +143 -0
- package/skills/qa-selenium-java-writer/references/best-practices.md +59 -0
- package/skills/qa-selenium-java-writer/references/config.md +143 -0
- package/skills/qa-selenium-java-writer/references/patterns.md +170 -0
- package/skills/qa-selenium-py-writer/SKILL.md +150 -0
- package/skills/qa-selenium-py-writer/references/best-practices.md +175 -0
- package/skills/qa-selenium-py-writer/references/config.md +224 -0
- package/skills/qa-selenium-py-writer/references/patterns.md +255 -0
- package/skills/qa-shortcut-integration/SKILL.md +143 -0
- package/skills/qa-shortcut-integration/references/api-patterns.md +126 -0
- package/skills/qa-shortcut-integration/references/field-mapping.md +66 -0
- package/skills/qa-spec-auditor/SKILL.md +162 -0
- package/skills/qa-spec-auditor/references/audit-checklist.md +144 -0
- package/skills/qa-spec-auditor/references/drift-patterns.md +207 -0
- package/skills/qa-spec-writer/SKILL.md +143 -0
- package/skills/qa-spec-writer/references/gherkin-guide.md +253 -0
- package/skills/qa-spec-writer/references/specification-patterns.md +274 -0
- package/skills/qa-spring-test-writer/SKILL.md +170 -0
- package/skills/qa-spring-test-writer/references/best-practices.md +57 -0
- package/skills/qa-spring-test-writer/references/config.md +179 -0
- package/skills/qa-spring-test-writer/references/patterns.md +235 -0
- package/skills/qa-supertest-writer/SKILL.md +150 -0
- package/skills/qa-supertest-writer/references/assertions.md +192 -0
- package/skills/qa-supertest-writer/references/best-practices.md +102 -0
- package/skills/qa-supertest-writer/references/config.md +166 -0
- package/skills/qa-supertest-writer/references/patterns.md +242 -0
- package/skills/qa-task-creator/SKILL.md +142 -0
- package/skills/qa-task-creator/references/linking-patterns.md +127 -0
- package/skills/qa-task-creator/references/task-types.md +169 -0
- package/skills/qa-task-creator/templates/task-template.md +24 -0
- package/skills/qa-test-doc-compiler/SKILL.md +114 -0
- package/skills/qa-test-doc-compiler/references/agile-tailoring.md +220 -0
- package/skills/qa-test-doc-compiler/references/iso-29119-3-documents.md +302 -0
- package/skills/qa-test-healer/SKILL.md +101 -0
- package/skills/qa-test-healer/references/diagnosis-patterns.md +142 -0
- package/skills/qa-test-healer/references/fix-strategies.md +177 -0
- package/skills/qa-test-reporter/SKILL.md +130 -0
- package/skills/qa-test-reporter/references/best-practices.md +162 -0
- package/skills/qa-test-reporter/references/iso-29119-reports.md +236 -0
- package/skills/qa-test-reporter/references/report-formats.md +287 -0
- package/skills/qa-test-reviewer/SKILL.md +142 -0
- package/skills/qa-test-reviewer/references/anti-patterns.md +268 -0
- package/skills/qa-test-reviewer/references/review-checklist.md +93 -0
- package/skills/qa-test-strategy/SKILL.md +133 -0
- package/skills/qa-test-strategy/references/entry-exit-criteria.md +176 -0
- package/skills/qa-test-strategy/references/risk-matrix.md +102 -0
- package/skills/qa-test-strategy/references/testing-types.md +143 -0
- package/skills/qa-testcase-from-docs/SKILL.md +161 -0
- package/skills/qa-testcase-from-docs/references/test-case-format.md +196 -0
- package/skills/qa-testcase-from-docs/references/test-design-techniques.md +126 -0
- package/skills/qa-testcase-from-docs/templates/test-case-template.md +31 -0
- package/skills/qa-testcase-from-ui/SKILL.md +109 -0
- package/skills/qa-testcase-from-ui/references/ui-element-patterns.md +126 -0
- package/skills/qa-testcase-from-ui/references/visual-analysis-guide.md +146 -0
- package/skills/qa-testcase-from-ui/templates/test-case-template.md +31 -0
- package/skills/qa-visual-regression-writer/SKILL.md +175 -0
- package/skills/qa-visual-regression-writer/references/best-practices.md +154 -0
- package/skills/qa-visual-regression-writer/references/config.md +220 -0
- package/skills/qa-visual-regression-writer/references/patterns.md +213 -0
- package/skills/qa-vitest-writer/SKILL.md +141 -0
- package/skills/qa-vitest-writer/references/assertions.md +105 -0
- package/skills/qa-vitest-writer/references/best-practices.md +62 -0
- package/skills/qa-vitest-writer/references/config.md +127 -0
- package/skills/qa-vitest-writer/references/patterns.md +141 -0
- package/skills/qa-webdriverio-writer/SKILL.md +145 -0
- package/skills/qa-webdriverio-writer/references/best-practices.md +176 -0
- package/skills/qa-webdriverio-writer/references/config.md +240 -0
- package/skills/qa-webdriverio-writer/references/patterns.md +269 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Git Diff Parsing Patterns
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Parse git diff output to extract changed files, classify change types, and map to modules. Used by qa-changelog-analyzer for impact analysis.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Git Diff Commands
|
|
10
|
+
|
|
11
|
+
### Staged Changes (Pre-Commit)
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
git diff --name-only --cached
|
|
15
|
+
git diff --stat --cached
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Committed Changes
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Last commit
|
|
22
|
+
git diff --name-only HEAD~1..HEAD
|
|
23
|
+
|
|
24
|
+
# Last N commits
|
|
25
|
+
git diff --name-only HEAD~5..HEAD
|
|
26
|
+
|
|
27
|
+
# Specific commit range
|
|
28
|
+
git diff --name-only abc123..def456
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Branch Comparison
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# PR: feature branch vs main
|
|
35
|
+
git diff --name-only origin/main...HEAD
|
|
36
|
+
|
|
37
|
+
# Branch vs branch
|
|
38
|
+
git diff --name-only base_branch..feature_branch
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### With Rename Detection
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
git diff --name-only -M50% base..HEAD
|
|
45
|
+
git diff --find-renames base..HEAD
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 2. Parsing Output
|
|
51
|
+
|
|
52
|
+
### Name-Only Format
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
src/auth/login.ts
|
|
56
|
+
src/auth/session.ts
|
|
57
|
+
tests/auth/login.spec.ts
|
|
58
|
+
config/env.example
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- One path per line
|
|
62
|
+
- Use `git status -s` for staged + unstaged with status prefix (`A`, `M`, `D`, `R`)
|
|
63
|
+
|
|
64
|
+
### Stat Format
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
src/auth/login.ts | 12 +++++----
|
|
68
|
+
src/auth/session.ts | 5 +++++
|
|
69
|
+
2 files changed, 17 insertions(+), 4 deletions(-)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
- Parse for file paths and change magnitude
|
|
73
|
+
- Useful for prioritization (more changes = higher impact)
|
|
74
|
+
|
|
75
|
+
### Change Type Detection
|
|
76
|
+
|
|
77
|
+
| Git Status | Meaning | Action |
|
|
78
|
+
|------------|---------|--------|
|
|
79
|
+
| `A` or `??` (new) | Added | Need new tests |
|
|
80
|
+
| `M` | Modified | Run existing; check for updates |
|
|
81
|
+
| `D` | Deleted | Remove/update related tests |
|
|
82
|
+
| `R` or `R100` | Renamed | Update imports in tests |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 3. File-to-Module Mapping
|
|
87
|
+
|
|
88
|
+
### Directory-Based
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
src/auth/login.ts → auth
|
|
92
|
+
src/auth/session.ts → auth
|
|
93
|
+
src/api/users.ts → api
|
|
94
|
+
packages/core/utils.ts → core
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- Use first path segment after `src/`, `packages/`, `lib/`, etc.
|
|
98
|
+
- Configurable per project
|
|
99
|
+
|
|
100
|
+
### Package/Import-Based (JS/TS)
|
|
101
|
+
|
|
102
|
+
- Parse `package.json` name
|
|
103
|
+
- Use import path: `@/auth` → auth
|
|
104
|
+
- Monorepo: `packages/auth` → auth
|
|
105
|
+
|
|
106
|
+
### Python
|
|
107
|
+
|
|
108
|
+
- `src.auth.login` → auth
|
|
109
|
+
- Directory: `src/auth/` → auth
|
|
110
|
+
|
|
111
|
+
### Config Override
|
|
112
|
+
|
|
113
|
+
- `impact-mapping.json` or `.qa-mapping` for custom mappings
|
|
114
|
+
- Override automatic detection when structure is non-standard
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 4. Exclusions
|
|
119
|
+
|
|
120
|
+
Common exclusions from impact analysis:
|
|
121
|
+
|
|
122
|
+
- `node_modules/`, `vendor/`, `__pycache__/`
|
|
123
|
+
- Generated files: `*.generated.ts`, `dist/`, `build/`
|
|
124
|
+
- Lock files: `package-lock.json`, `yarn.lock` (optional; may affect env)
|
|
125
|
+
- Docs only: `*.md`, `docs/` (optional; no test impact)
|
|
126
|
+
- Test files themselves: include in "tests to run" but not "modules affected"
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 5. Edge Cases
|
|
131
|
+
|
|
132
|
+
| Case | Handling |
|
|
133
|
+
|------|----------|
|
|
134
|
+
| Binary files | Skip or flag; no line-level analysis |
|
|
135
|
+
| Submodule changes | Treat as config; may need integration tests |
|
|
136
|
+
| Merge commits | Use `-m` or first parent; avoid duplicate counting |
|
|
137
|
+
| Large diff | Summarize by module; avoid listing every file |
|
|
138
|
+
| No git repo | Return error; require valid git context |
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Mapping Code Changes to Test Recommendations
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Map code changes to concrete test recommendations: tests to run, tests to update, and tests to add. Used by qa-changelog-analyzer to produce actionable output.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Tests to Run (Regression Scope)
|
|
10
|
+
|
|
11
|
+
### Direct Mapping
|
|
12
|
+
|
|
13
|
+
Changed file → tests that cover it:
|
|
14
|
+
|
|
15
|
+
| Source | Method | Example |
|
|
16
|
+
|--------|--------|---------|
|
|
17
|
+
| Coverage report | Istanbul, JaCoCo, coverage.py | `auth/login.ts` → `login.spec.ts` |
|
|
18
|
+
| Path convention | `tests/<module>/` or `*.spec.ts` | `auth/` → `tests/auth/*` |
|
|
19
|
+
| Import grep | `import.*from.*auth` in tests | Find test files importing changed module |
|
|
20
|
+
|
|
21
|
+
### Priority Levels
|
|
22
|
+
|
|
23
|
+
- **Must run:** Direct unit/integration tests for changed modules
|
|
24
|
+
- **Should run:** Integration tests that use changed APIs/components
|
|
25
|
+
- **Optional:** Full suite, E2E, smoke (if risk threshold exceeded)
|
|
26
|
+
|
|
27
|
+
### Downstream Impact
|
|
28
|
+
|
|
29
|
+
- If `auth/session.ts` changed → check who imports it
|
|
30
|
+
- API changes → integration tests for API consumers
|
|
31
|
+
- DB schema → migration tests, repository tests
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 2. Tests to Update
|
|
36
|
+
|
|
37
|
+
### When Source Diverged
|
|
38
|
+
|
|
39
|
+
- Assertions expect old behavior
|
|
40
|
+
- Selectors target removed/changed elements
|
|
41
|
+
- Mocks no longer match API shape
|
|
42
|
+
|
|
43
|
+
### Detection Hints
|
|
44
|
+
|
|
45
|
+
- Test file in same module as changed source
|
|
46
|
+
- Test imports changed file
|
|
47
|
+
- Test name suggests coverage of changed functionality
|
|
48
|
+
|
|
49
|
+
### Recommendation Format
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
- **tests/auth/login.spec.ts** — `login.ts` changed; verify assertions match new validation logic
|
|
53
|
+
- **tests/api/users.integration.spec.ts** — `users.ts` response shape changed; update expectations
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 3. Tests to Add
|
|
59
|
+
|
|
60
|
+
### New Files
|
|
61
|
+
|
|
62
|
+
- New source file with no corresponding test
|
|
63
|
+
- New module/component
|
|
64
|
+
- New API endpoint
|
|
65
|
+
|
|
66
|
+
### Uncovered Code Paths
|
|
67
|
+
|
|
68
|
+
- New branches, error handlers, edge cases in modified files
|
|
69
|
+
- Use coverage report: new lines with 0% coverage
|
|
70
|
+
|
|
71
|
+
### Recommendation Format
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
- **Add unit tests for** `src/auth/oauth.ts` — new file, no coverage
|
|
75
|
+
- **Add integration test for** `POST /api/v2/users` — new endpoint
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 4. Tests to Remove
|
|
81
|
+
|
|
82
|
+
### Deleted Source
|
|
83
|
+
|
|
84
|
+
- Source file deleted → tests that only cover it are obsolete
|
|
85
|
+
- Remove or repurpose tests
|
|
86
|
+
|
|
87
|
+
### Deprecated Features
|
|
88
|
+
|
|
89
|
+
- Feature removed → remove feature-specific tests
|
|
90
|
+
- Keep shared setup/utilities if still used
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 5. Config and Environment Changes
|
|
95
|
+
|
|
96
|
+
| Change | Recommendation |
|
|
97
|
+
|--------|----------------|
|
|
98
|
+
| `.env`, `config/*` | Run env-specific tests; validate config loading |
|
|
99
|
+
| `package.json`, `requirements.txt` | Run install + smoke; may affect dependencies |
|
|
100
|
+
| CI config (`.github/`, `Jenkinsfile`) | Validate pipeline; run full suite once |
|
|
101
|
+
| Dockerfile, k8s | Integration/E2E in target environment |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 6. Task Handoff to qa-task-creator
|
|
106
|
+
|
|
107
|
+
Format suggestions for qa-task-creator:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
## Tasks
|
|
111
|
+
|
|
112
|
+
1. **Add:** Unit tests for `src/auth/oauth.ts` (new file)
|
|
113
|
+
2. **Update:** `tests/auth/login.spec.ts` — assertions for new validation
|
|
114
|
+
3. **Remove:** `tests/legacy/deprecated.spec.ts` — source deleted
|
|
115
|
+
4. **Run:** Regression scope (see Must Run list above)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- Each task is self-contained with file/module reference
|
|
119
|
+
- Link to change impact report for context
|
|
120
|
+
- Use labels: `qa`, `development`, `test-coverage`
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-clickup-integration
|
|
3
|
+
description: ClickUp integration for creating tasks, managing lists/spaces, and tracking QA workflows via REST API.
|
|
4
|
+
dependencies:
|
|
5
|
+
recommended:
|
|
6
|
+
- qa-bug-ticket-creator
|
|
7
|
+
- qa-task-creator
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# QA ClickUp Integration
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Integrate QA workflow with ClickUp for task management. Create and manage tasks, lists, folders, and spaces; attach QA metadata via custom fields; and sync bug reports and work tasks from qa-bug-ticket-creator and qa-task-creator into ClickUp.
|
|
15
|
+
|
|
16
|
+
## Primary Target
|
|
17
|
+
|
|
18
|
+
**ClickUp** via REST API. Base URL: `https://api.clickup.com/api/v2`.
|
|
19
|
+
|
|
20
|
+
## Features
|
|
21
|
+
|
|
22
|
+
### Task Management
|
|
23
|
+
|
|
24
|
+
| Feature | Description |
|
|
25
|
+
| ------- | ----------- |
|
|
26
|
+
| **Create tasks** | POST to list; set name, description, assignees, status, priority |
|
|
27
|
+
| **Update tasks** | PUT to modify existing tasks |
|
|
28
|
+
| **Get task** | GET task by ID for status checks |
|
|
29
|
+
| **Subtasks** | Create subtasks for test steps or breakdown |
|
|
30
|
+
| **Checklists** | Add checklist items for acceptance criteria |
|
|
31
|
+
| **Attachments** | Attach screenshots, logs, HAR files |
|
|
32
|
+
|
|
33
|
+
### Hierarchy
|
|
34
|
+
|
|
35
|
+
| Level | API | Use |
|
|
36
|
+
| ----- | --- | --- |
|
|
37
|
+
| **Space** | GET /api/v2/team/{team_id}/space | QA workspace or project |
|
|
38
|
+
| **Folder** | GET /api/v2/space/{space_id}/folder | Feature or module grouping |
|
|
39
|
+
| **List** | GET /api/v2/folder/{folder_id}/list | Sprint, release, or backlog |
|
|
40
|
+
| **Task** | POST /api/v2/list/{list_id}/task | Individual work item |
|
|
41
|
+
|
|
42
|
+
### QA Metadata
|
|
43
|
+
|
|
44
|
+
| Custom Field | Purpose |
|
|
45
|
+
| ------------ | ------- |
|
|
46
|
+
| **Severity** | Blocker / Critical / Major / Minor / Trivial |
|
|
47
|
+
| **Test Type** | Unit / Integration / E2E / Performance / Security |
|
|
48
|
+
| **Coverage** | Requirement or module coverage reference |
|
|
49
|
+
| **Environment** | OS, browser, app version |
|
|
50
|
+
| **Component** | Affected area (auth, checkout, API) |
|
|
51
|
+
|
|
52
|
+
### Relationships
|
|
53
|
+
|
|
54
|
+
- **Blocking** — Task A blocks Task B
|
|
55
|
+
- **Waiting on** — Task A waits on Task B
|
|
56
|
+
- **Linked** — Related tasks for traceability
|
|
57
|
+
|
|
58
|
+
### Tags and Priorities
|
|
59
|
+
|
|
60
|
+
- **Tags** — `bug`, `test-coverage`, `flaky`, `docs`, component tags
|
|
61
|
+
- **Priority** — Urgent (1), High (2), Normal (3), Low (4)
|
|
62
|
+
|
|
63
|
+
## Authentication
|
|
64
|
+
|
|
65
|
+
| Variable | Description |
|
|
66
|
+
| -------- | ----------- |
|
|
67
|
+
| `CLICKUP_API_TOKEN` | Personal API token (starts with `pk_`) from .env |
|
|
68
|
+
|
|
69
|
+
**Header:** `Authorization: <token>`
|
|
70
|
+
|
|
71
|
+
Generate tokens at: ClickUp Settings → Apps → API Token.
|
|
72
|
+
|
|
73
|
+
## Key API Endpoints
|
|
74
|
+
|
|
75
|
+
| Method | Endpoint | Use |
|
|
76
|
+
| ------ | -------- | --- |
|
|
77
|
+
| POST | `/api/v2/list/{list_id}/task` | Create task |
|
|
78
|
+
| GET | `/api/v2/task/{task_id}` | Get task details |
|
|
79
|
+
| PUT | `/api/v2/task/{task_id}` | Update task |
|
|
80
|
+
| GET | `/api/v2/team/{team_id}/space` | List spaces |
|
|
81
|
+
| GET | `/api/v2/space/{space_id}/folder` | List folders |
|
|
82
|
+
| GET | `/api/v2/folder/{folder_id}/list` | List lists |
|
|
83
|
+
| POST | `/api/v2/task/{task_id}/attachment` | Add attachment |
|
|
84
|
+
|
|
85
|
+
See `references/api-patterns.md` for request/response examples.
|
|
86
|
+
|
|
87
|
+
## Integration with QA Skills
|
|
88
|
+
|
|
89
|
+
| Skill | Integration |
|
|
90
|
+
| ----- | ----------- |
|
|
91
|
+
| **qa-bug-ticket-creator** | Create ClickUp tasks from bug reports; map severity, component, evidence |
|
|
92
|
+
| **qa-task-creator** | Create ClickUp tasks from coverage gaps, spec findings, fix tasks |
|
|
93
|
+
| **qa-test-reporter** | Attach test reports as task attachments; link failures to tasks |
|
|
94
|
+
|
|
95
|
+
### Handoff Flow
|
|
96
|
+
|
|
97
|
+
1. **Bug report** → qa-bug-ticket-creator structures report → qa-clickup-integration creates task in target list
|
|
98
|
+
2. **Fix task** → qa-task-creator generates task → qa-clickup-integration creates task, links to bug task
|
|
99
|
+
3. **Coverage gap** → qa-coverage-analyzer output → qa-task-creator → qa-clickup-integration
|
|
100
|
+
|
|
101
|
+
## Trigger Phrases
|
|
102
|
+
|
|
103
|
+
- "Create ClickUp task from [bug report / test failure]"
|
|
104
|
+
- "Add task to ClickUp list [name]"
|
|
105
|
+
- "Sync bug to ClickUp with severity and evidence"
|
|
106
|
+
- "Create ClickUp task from coverage gap"
|
|
107
|
+
- "Link fix task to bug in ClickUp"
|
|
108
|
+
- "Attach screenshot to ClickUp task [id]"
|
|
109
|
+
- "Get ClickUp task status for [id]"
|
|
110
|
+
|
|
111
|
+
## Workflow
|
|
112
|
+
|
|
113
|
+
1. **Input** — Bug report, task description, coverage gap, or user request
|
|
114
|
+
2. **Resolve target** — Team ID, Space, Folder, List (from user or config)
|
|
115
|
+
3. **Map fields** — Map QA fields to ClickUp task fields per `references/field-mapping.md`
|
|
116
|
+
4. **Create/update** — POST or PUT via REST API
|
|
117
|
+
5. **Attach** — Add screenshots, logs when provided
|
|
118
|
+
6. **Link** — Set blocking/waiting-on when paired with bug or fix task
|
|
119
|
+
|
|
120
|
+
## Scope
|
|
121
|
+
|
|
122
|
+
**Can do (autonomous):**
|
|
123
|
+
- Create and update tasks in specified lists
|
|
124
|
+
- Map severity, priority, component, test type to ClickUp fields
|
|
125
|
+
- Add subtasks, checklists, attachments
|
|
126
|
+
- Set task relationships (blocking, waiting on)
|
|
127
|
+
- Resolve space/folder/list from user input or config
|
|
128
|
+
- Integrate with qa-bug-ticket-creator and qa-task-creator output
|
|
129
|
+
|
|
130
|
+
**Cannot do (requires confirmation):**
|
|
131
|
+
- Create spaces, folders, or lists (assume they exist)
|
|
132
|
+
- Override user-specified list or assignee
|
|
133
|
+
- Set custom fields without workspace configuration
|
|
134
|
+
|
|
135
|
+
**Will not do (out of scope):**
|
|
136
|
+
- Modify production or test code
|
|
137
|
+
- Delete tasks or archives (user responsibility)
|
|
138
|
+
- Create ClickUp workspaces or teams
|
|
139
|
+
|
|
140
|
+
## Quality Checklist
|
|
141
|
+
|
|
142
|
+
- [ ] Task includes name, description, and appropriate priority
|
|
143
|
+
- [ ] QA metadata (severity, test type, component) mapped per field-mapping
|
|
144
|
+
- [ ] Attachments added when evidence provided
|
|
145
|
+
- [ ] No hardcoded secrets; token from .env
|
|
146
|
+
- [ ] List ID resolved before create; task ID validated before update
|
|
147
|
+
- [ ] Relationships set when linking bug to fix task
|
|
148
|
+
- [ ] Error handling for 401, 404, 429 (rate limit)
|
|
149
|
+
|
|
150
|
+
## Troubleshooting
|
|
151
|
+
|
|
152
|
+
| Symptom | Likely Cause | Fix |
|
|
153
|
+
| ------- | ------------ | --- |
|
|
154
|
+
| 401 Unauthorized | Token missing or invalid | Check `CLICKUP_API_TOKEN` in .env; regenerate if expired |
|
|
155
|
+
| 404 Not Found | Invalid list_id or task_id | Verify IDs; use GET to list spaces/folders/lists |
|
|
156
|
+
| 429 Rate limit | Too many requests | Implement backoff; batch operations |
|
|
157
|
+
| Custom field not applied | Field ID wrong or not configured | Check workspace custom fields; use correct field ID |
|
|
158
|
+
| Attachment fails | File size or format | ClickUp limits; use supported formats (png, jpg, txt, etc.) |
|
|
159
|
+
| Wrong list | List ID from wrong folder | Resolve full hierarchy: team → space → folder → list |
|
|
160
|
+
|
|
161
|
+
## Reference Files
|
|
162
|
+
|
|
163
|
+
| Topic | File |
|
|
164
|
+
| ----- | ---- |
|
|
165
|
+
| API patterns: tasks, lists, spaces, custom fields | `references/api-patterns.md` |
|
|
166
|
+
| Mapping QA fields to ClickUp task fields | `references/field-mapping.md` |
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# ClickUp API Patterns
|
|
2
|
+
|
|
3
|
+
## Base URL and Auth
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
Base: https://api.clickup.com/api/v2
|
|
7
|
+
Header: Authorization: <CLICKUP_API_TOKEN>
|
|
8
|
+
Content-Type: application/json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Hierarchy Resolution
|
|
12
|
+
|
|
13
|
+
1. **Team** — `GET /api/v2/team` returns teams; use `team_id` for spaces
|
|
14
|
+
2. **Space** — `GET /api/v2/team/{team_id}/space` returns spaces
|
|
15
|
+
3. **Folder** — `GET /api/v2/space/{space_id}/folder` returns folders (archived: false)
|
|
16
|
+
4. **List** — `GET /api/v2/folder/{folder_id}/list` returns lists
|
|
17
|
+
|
|
18
|
+
## Create Task
|
|
19
|
+
|
|
20
|
+
**POST** `/api/v2/list/{list_id}/task`
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"name": "Login fails when password contains special chars",
|
|
25
|
+
"description": "**Expected:** User can log in with special chars in password.\n**Actual:** 500 error.\n**Steps:** 1. Go to /login 2. Enter user@test.com + pass!@# 3. Submit",
|
|
26
|
+
"assignees": [12345],
|
|
27
|
+
"tags": ["bug", "auth"],
|
|
28
|
+
"status": "to do",
|
|
29
|
+
"priority": 2,
|
|
30
|
+
"due_date": 1709856000000,
|
|
31
|
+
"custom_task_ids": false,
|
|
32
|
+
"notify_all": false
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Response:** Task object with `id`, `url`, `status`, etc.
|
|
37
|
+
|
|
38
|
+
## Get Task
|
|
39
|
+
|
|
40
|
+
**GET** `/api/v2/task/{task_id}`
|
|
41
|
+
|
|
42
|
+
Returns full task including custom fields, subtasks, checklists.
|
|
43
|
+
|
|
44
|
+
## Update Task
|
|
45
|
+
|
|
46
|
+
**PUT** `/api/v2/task/{task_id}`
|
|
47
|
+
|
|
48
|
+
Same body shape as create; only include fields to update.
|
|
49
|
+
|
|
50
|
+
## Custom Fields
|
|
51
|
+
|
|
52
|
+
Custom fields are workspace-specific. Use `GET /api/v2/list/{list_id}/field` to list available fields.
|
|
53
|
+
|
|
54
|
+
Example custom field in task:
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"custom_fields": [
|
|
58
|
+
{
|
|
59
|
+
"id": "abc123",
|
|
60
|
+
"value": "Critical"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Subtasks
|
|
67
|
+
|
|
68
|
+
Create subtask: **POST** `/api/v2/list/{list_id}/task` with `parent` set to parent task ID.
|
|
69
|
+
|
|
70
|
+
Or add via task update with subtasks array.
|
|
71
|
+
|
|
72
|
+
## Checklists
|
|
73
|
+
|
|
74
|
+
**POST** `/api/v2/task/{task_id}/checklist`
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"name": "Acceptance Criteria",
|
|
79
|
+
"items": [
|
|
80
|
+
{ "name": "User can log in with special chars" },
|
|
81
|
+
{ "name": "Error message is user-friendly" }
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Attachments
|
|
87
|
+
|
|
88
|
+
**POST** `/api/v2/task/{task_id}/attachment`
|
|
89
|
+
|
|
90
|
+
`Content-Type: multipart/form-data` with file.
|
|
91
|
+
|
|
92
|
+
Supported: png, jpg, gif, pdf, txt, log, har, etc.
|
|
93
|
+
|
|
94
|
+
## Task Relationships
|
|
95
|
+
|
|
96
|
+
- **Linked tasks** — Use `linking` in task body or separate linking API
|
|
97
|
+
- **Blocking** — Set via custom workflow or dependency field if configured
|
|
98
|
+
|
|
99
|
+
## Rate Limits
|
|
100
|
+
|
|
101
|
+
- Typical: 100 requests per minute per token
|
|
102
|
+
- 429 response: retry with exponential backoff
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# QA Field to ClickUp Mapping
|
|
2
|
+
|
|
3
|
+
## Standard Task Fields
|
|
4
|
+
|
|
5
|
+
| QA Field | ClickUp Field | Notes |
|
|
6
|
+
| -------- | ------------- | ----- |
|
|
7
|
+
| Title | `name` | Direct mapping |
|
|
8
|
+
| Description | `description` | Markdown supported |
|
|
9
|
+
| Severity | `priority` or custom | 1=Urgent, 2=High, 3=Normal, 4=Low |
|
|
10
|
+
| Priority (P1–P5) | `priority` | P1→1, P2→2, P3→3, P4/P5→4 |
|
|
11
|
+
| Component | `tags` | Add as tag, e.g. `auth`, `checkout` |
|
|
12
|
+
| Assignee | `assignees` | Array of member IDs |
|
|
13
|
+
| Due date | `due_date` | Unix ms |
|
|
14
|
+
| Status | `status` | Must match list status names |
|
|
15
|
+
|
|
16
|
+
## QA-Specific → ClickUp Custom Fields
|
|
17
|
+
|
|
18
|
+
Configure these custom fields in your ClickUp workspace, then map by field ID:
|
|
19
|
+
|
|
20
|
+
| QA Field | Custom Field Type | Example Value |
|
|
21
|
+
| -------- | ----------------- | ------------- |
|
|
22
|
+
| Severity (ISO) | Dropdown | Blocker, Critical, Major, Minor, Trivial |
|
|
23
|
+
| Test Type | Dropdown | Unit, Integration, E2E, Performance, Security |
|
|
24
|
+
| Coverage | Text/URL | Requirement ID or module path |
|
|
25
|
+
| Environment | Text | "Chrome 120, Windows 11, v2.1.0" |
|
|
26
|
+
| Expected Result | Long text | From bug report template |
|
|
27
|
+
| Actual Result | Long text | From bug report template |
|
|
28
|
+
| Steps to Reproduce | Long text | Numbered steps |
|
|
29
|
+
| Evidence | Attachment | Screenshots, logs via attachment API |
|
|
30
|
+
|
|
31
|
+
## Bug Report Template Mapping
|
|
32
|
+
|
|
33
|
+
| Bug Report Field | ClickUp Target |
|
|
34
|
+
| ---------------- | -------------- |
|
|
35
|
+
| Title | `name` |
|
|
36
|
+
| Expected Result | `description` or custom field |
|
|
37
|
+
| Actual Result | `description` or custom field |
|
|
38
|
+
| Steps to Reproduce | `description` or checklist |
|
|
39
|
+
| Environment | Custom field or `description` |
|
|
40
|
+
| Evidence | Attachments |
|
|
41
|
+
| Severity | `priority` + custom field |
|
|
42
|
+
| Priority | `priority` |
|
|
43
|
+
| Component/Module | `tags` |
|
|
44
|
+
|
|
45
|
+
## Task Creator Output Mapping
|
|
46
|
+
|
|
47
|
+
| Task Field | ClickUp Target |
|
|
48
|
+
| ---------- | -------------- |
|
|
49
|
+
| Title | `name` |
|
|
50
|
+
| Description | `description` |
|
|
51
|
+
| Acceptance criteria | Checklist |
|
|
52
|
+
| Labels (task, qa, component) | `tags` |
|
|
53
|
+
| Links (Fixes #N) | `description` (inline) or custom URL field |
|
|
54
|
+
| Task type | `tags` (e.g. `development`, `qa`, `documentation`) |
|
|
55
|
+
|
|
56
|
+
## Tag Conventions
|
|
57
|
+
|
|
58
|
+
| QA Source | Suggested Tags |
|
|
59
|
+
| --------- | --------------- |
|
|
60
|
+
| Bug | `bug`, `{component}` |
|
|
61
|
+
| Coverage gap | `test-coverage`, `{component}` |
|
|
62
|
+
| Flaky test | `flaky`, `{component}` |
|
|
63
|
+
| Fix task | `fix`, `development` |
|
|
64
|
+
| QA task | `qa`, `testing` |
|
|
65
|
+
| Documentation | `docs`, `documentation` |
|
|
66
|
+
|
|
67
|
+
## Resolving Field IDs
|
|
68
|
+
|
|
69
|
+
1. Use ClickUp API: `GET /api/v2/list/{list_id}/field`
|
|
70
|
+
2. Or: Workspace Settings → Custom Fields → copy field ID from URL or API
|
|
71
|
+
3. Store mapping in config or pass via user input for workspace-specific setups
|