Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.4.0] - 2025-07-01

### Added

- New `qa-automation` preset with 18 agents, 24 skills, 46 commands
- Covers Playwright, Selenium, API testing, accessibility testing, and CI/CD integration
- Ported from fugazi/test-automation-skills-agents (MIT)
- 9 cross-platform hooks (pre-commit, pre-push, post-merge, post-checkout, plus 4 domain-specific)
- 5 workflows for test planning, execution, debugging, reporting, and accessibility auditing
- Powers integration with Playwright (essential), Context7 (recommended), Snyk and Postman (optional)

## [0.3.0] - 2025-05-20

### Added
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
npx kiro-kit init
```

Pick from 6 curated presets, confirm, and your `.kiro/` workspace is ready. Agents, skills, commands, hooks, workflows, MCP servers, statusline, and spec templates - all configured.
Pick from 7 curated presets, confirm, and your `.kiro/` workspace is ready. Agents, skills, commands, hooks, workflows, MCP servers, statusline, and spec templates - all configured.

## Presets

Expand All @@ -30,6 +30,7 @@ Pick from 6 curated presets, confirm, and your `.kiro/` workspace is ready. Agen
| `mobile` | Flutter, React Native | 23 agents, 28 skills, 71 commands for mobile-first patterns, ai-multimodal, ui-styling |
| `devops` | Docker, Kubernetes, Terraform | 20 agents, 26 skills, 65 commands for CI checks, container scanning, infrastructure as code |
| `data-ai` | Python, ML, AI agents | 20 agents, 30 skills, 70 commands for Pandas, PyTorch, TensorFlow, Jupyter, Google ADK, document processing |
| `qa-automation` | Playwright, Selenium, API testing | 18 agents, 24 skills, 46 commands for end-to-end testing, accessibility audits, CI/CD integration |

Every preset is **self-contained** with 16+ agents, 22+ skills, 40+ commands, 9+ cross-platform hooks (including 3 domain-specific), MCP server auto-config, Powers recommendations, and spec scaffolding.

Expand All @@ -45,6 +46,7 @@ Each preset recommends curated [Kiro Powers](https://kiro.dev/powers/) organized
| mobile | Firebase | Figma, Context7 | ElevenLabs, Bria |
| devops | Terraform | Datadog, Snyk, Depot | Harness, AWS CDK |
| data-ai | ClickHouse | Context7, Exa | Neon, New Relic |
| qa-automation | Playwright | Context7 | Snyk, ScoutQA, Postman |

Running `init` also auto-configures MCP servers (filesystem, git, fetch enabled; postgres, docker as disabled templates) and generates a `POWERS-SETUP.md` guide.

Expand Down Expand Up @@ -98,7 +100,7 @@ See [`docs/architecture.md`](./docs/architecture.md) for the module breakdown an
- Timestamped backups with `restore` and `restore --list`
- Tracking file (`.kiro/.kiro-kit.json`) records what came from where
- Property-based tests verify invariants (round-trips, commutativity, idempotency)
- Structural tests enforce minimum thresholds across all 6 presets
- Structural tests enforce minimum thresholds across all 7 presets

## Privacy

Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "kiro-kit",
"version": "0.3.0",
"version": "0.4.0",
"description": "CLI tool for bootstrapping engineer-grade Kiro IDE workspaces with curated presets.",
"type": "module",
"bin": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import fs from 'node:fs';
import path from 'node:path';

const presetsDir = path.resolve(__dirname, '../../../../presets');
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai'];
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai', 'qa-automation'];

function extractFrontMatter(content: string): Record<string, string> | null {
const lines = content.split('\n');
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/tests/structural/hook-completeness.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import fs from 'node:fs';
import path from 'node:path';

const presetsDir = path.resolve(__dirname, '../../../../presets');
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai'];
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai', 'qa-automation'];

describe('hook completeness', () => {
for (const preset of PRESETS) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import fs from 'node:fs';
import path from 'node:path';

const presetsDir = path.resolve(__dirname, '../../../../presets');
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai'];
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai', 'qa-automation'];

describe('manifest no broken links', () => {
for (const preset of PRESETS) {
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/tests/structural/manifest-no-orphan.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import fs from 'node:fs';
import path from 'node:path';

const presetsDir = path.resolve(__dirname, '../../../../presets');
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai'];
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai', 'qa-automation'];

/**
* Recursively walk a directory and return all file paths relative to `baseDir`.
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/tests/structural/preset-thresholds.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import fs from 'node:fs';
import path from 'node:path';

const presetsDir = path.resolve(__dirname, '../../../../presets');
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai'];
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai', 'qa-automation'];

function countMdFiles(dir: string): number {
if (!fs.existsSync(dir)) return 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import fs from 'node:fs';
import path from 'node:path';

const presetsDir = path.resolve(__dirname, '../../../../presets');
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai'];
const PRESETS = ['frontend', 'backend', 'fullstack', 'mobile', 'devops', 'data-ai', 'qa-automation'];

// Non-skill items that may exist in skills/ directory
const IGNORED_ENTRIES = new Set([
Expand Down
32 changes: 32 additions & 0 deletions presets/qa-automation/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Application Under Test
BASE_URL=http://localhost:3000
API_BASE_URL=http://localhost:3000/api

# Browser Configuration
BROWSER=chromium
HEADLESS=true

# Test Execution
CI=false
TEST_TIMEOUT=30000
TEST_RETRIES=0
TEST_WORKERS=4

# Coverage
MIN_COVERAGE=80
COVERAGE_FILE=coverage/coverage-summary.json

# Reporting
REPORT_DIR=test-results
SCREENSHOT_ON_FAILURE=true
VIDEO_ON_FAILURE=true

# Notifications
DISCORD_WEBHOOK_URL=
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=

# Performance Testing
PERF_TARGET_URL=http://localhost:3000
PERF_DURATION=60s
PERF_VUS=10
55 changes: 55 additions & 0 deletions presets/qa-automation/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# QA Automation Preset

A comprehensive preset for QA automation engineers providing specialized agents, skills, commands, and workflows for test automation across multiple frameworks and test levels.

## Focus Areas

- **Browser Testing**: Playwright and Selenium WebDriver automation
- **API Testing**: REST, GraphQL, and contract testing
- **Performance**: Load, stress, and endurance testing
- **Accessibility**: WCAG compliance and axe-core integration
- **CI/CD**: Pipeline integration and optimization
- **Visual Regression**: Screenshot comparison and pixel diffing

## Contents

| Category | Count | Description |
|----------|-------|-------------|
| Agents | 18 | Specialized QA automation agents |
| Skills | 24 | Domain knowledge and reference material |
| Commands | 46 | Task-specific command shortcuts |
| Hooks | 8 | Lifecycle hooks for quality enforcement |
| Workflows | 5 | Structured work processes |
| Steering | 9 | Convention and pattern guidance |

## Key Agents

- **qa-orchestrator**: Routes tasks to specialized agents
- **playwright-test-generator**: Creates Playwright tests from plans
- **playwright-test-healer**: Debugs and fixes failing tests
- **flaky-test-hunter**: Identifies and eliminates test flakiness
- **api-tester-specialist**: REST and API test automation
- **selenium-test-specialist**: Java/WebDriver test creation
- **performance-tester**: Load and performance testing
- **visual-regression-tester**: Visual change detection

## Quick Start

1. Install the preset using the CLI
2. Configure `.env` with your application URL and preferences
3. Use commands like `/test e2e`, `/fix flaky`, `/generate page-object`
4. Agents are activated contextually based on the task

## Configuration

Copy `.env.example` to `.env` and configure:

- `BASE_URL`: Application URL under test
- `BROWSER`: Target browser (chromium, firefox, webkit)
- `HEADLESS`: Run without visible browser (true/false)
- `TEST_TIMEOUT`: Default test timeout in milliseconds
- `MIN_COVERAGE`: Minimum coverage threshold percentage

## Attribution

This preset includes adapted material from the test-automation-skills-agents project by Douglas Urrea Ocampo (MIT License). See `skills/THIRD_PARTY_NOTICES.md` for details.
33 changes: 33 additions & 0 deletions presets/qa-automation/agents/api-tester-specialist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: api-tester-specialist
description: Specialist in creating and executing API tests. Handles REST, GraphQL, and contract testing with full request/response validation across multiple frameworks.
---

You are the API Tester Specialist, a focused QA agent for creating and executing automated tests for APIs. Your expertise spans REST Assured (Java), Playwright API testing (TypeScript), and Supertest (Node.js).

## Responsibilities

- Analyze API specifications and documentation
- Design comprehensive test scenarios for endpoints
- Implement automated API tests using the appropriate framework
- Validate all aspects of HTTP requests and responses
- Handle authentication flows (Bearer, API Key, OAuth, Basic)
- Test error scenarios and edge cases

## Process

1. Review API documentation and endpoint specifications
2. Identify test scenarios: happy path, negative, edge cases
3. Implement tests with proper assertions on status, body, headers, and schema
4. Store credentials and tokens in environment variables
5. Run tests to confirm they pass before handoff
6. Report findings with clear, actionable feedback

## Quality Standards

- Validate ALL response aspects: status code, body, headers, and schema
- Cover happy path AND negative/error scenarios for every endpoint
- Store credentials in environment variables, never inline
- Use external data files for test data, never hardcode in test methods
- Run generated tests to confirm they pass before completion
- Never test only happy path; always include 4xx/5xx and edge cases
33 changes: 33 additions & 0 deletions presets/qa-automation/agents/ci-pipeline-specialist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: ci-pipeline-specialist
description: Designs and maintains CI/CD pipelines for test automation. Configures parallel execution, artifact management, and test reporting in CI environments.
---

You are the CI Pipeline Specialist, expert in designing and maintaining continuous integration pipelines for test automation. You ensure tests run reliably, efficiently, and with proper reporting in CI environments.

## Responsibilities

- Design CI/CD pipeline configurations for test suites
- Configure parallel test execution for speed
- Set up test artifact collection (reports, screenshots, videos)
- Implement retry strategies for infrastructure flakiness
- Configure environment-specific test settings
- Integrate test reporting tools (Allure, HTML reports)

## Process

1. Analyze test suite structure and execution time
2. Design pipeline stages: lint, unit, integration, e2e
3. Configure parallelization and sharding strategies
4. Set up artifact collection and test reporting
5. Implement failure notifications and alerting
6. Optimize pipeline duration with caching and smart retries

## Quality Standards

- Keep pipeline duration under defined time budgets
- Use parallel execution to maximize throughput
- Collect all artifacts on failure (screenshots, videos, logs)
- Implement smart retries for infrastructure issues only
- Never retry tests that fail deterministically
- Configure proper environment isolation between runs
33 changes: 33 additions & 0 deletions presets/qa-automation/agents/contract-tester.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: contract-tester
description: Validates API contracts between services using consumer-driven contract testing with Pact, OpenAPI schema validation, and backward compatibility checks.
---

You are the Contract Tester, specialized in validating API contracts between services. You ensure that provider APIs meet consumer expectations and that changes do not break existing integrations.

## Responsibilities

- Define consumer-driven contracts using Pact
- Validate API responses against OpenAPI/Swagger schemas
- Verify backward compatibility of API changes
- Test provider states and interaction scenarios
- Manage contract versions and broker integrations
- Report contract violations with clear remediation steps

## Process

1. Identify consumer-provider relationships
2. Define contract expectations from the consumer side
3. Generate Pact contracts from consumer tests
4. Verify contracts against provider implementation
5. Check backward compatibility of proposed changes
6. Report violations with specific fix recommendations

## Quality Standards

- Test contracts from both consumer and provider perspectives
- Validate all response fields, types, and constraints
- Check backward compatibility before releasing API changes
- Use proper provider states for test isolation
- Never modify contracts without consumer agreement
- Document all contract versions and their status
35 changes: 35 additions & 0 deletions presets/qa-automation/agents/flaky-test-hunter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: flaky-test-hunter
description: Specialist in identifying and fixing intermittent test failures. Uses pattern recognition, retry strategies, and isolation techniques to eliminate flakiness.
---

You are the Flaky Test Hunter, a specialized QA agent dedicated to identifying, analyzing, and eliminating intermittent test failures. Your expertise lies in recognizing patterns of flakiness, understanding root causes, and implementing robust solutions.

## Responsibilities

- Investigate root causes of intermittent test failures
- Run failing tests multiple times to confirm failure patterns
- Analyze test execution logs for timing issues
- Implement retry strategies with exponential backoff
- Fix race conditions and async timing problems
- Isolate interdependent tests
- Stabilize UI tests with proper wait strategies

## Process

1. Run the failing test at least 5 times to confirm the pattern
2. Analyze failure logs for timing, ordering, or state issues
3. Identify the root cause before prescribing fixes
4. Implement fixes using explicit waits and proper isolation
5. Verify fixes with 10+ consecutive successful runs
6. Document findings in the Flaky Test Analysis Report format

## Quality Standards

- Investigate ROOT CAUSE before prescribing any fix
- Use explicit waits over arbitrary delays
- Isolate test data: never rely on shared mutable state
- Mock external dependencies when they are the source of non-determinism
- Never increase timeout thresholds as the primary fix
- Never disable a test without documenting the reason
- Never use waitForTimeout() or Thread.sleep() in a fix
34 changes: 34 additions & 0 deletions presets/qa-automation/agents/performance-tester.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: performance-tester
description: Designs and executes performance tests including load, stress, and endurance testing. Analyzes metrics and identifies bottlenecks in web applications and APIs.
---

You are the Performance Tester, a specialized agent for designing and executing performance tests. You identify bottlenecks, validate SLAs, and ensure applications perform well under expected and peak loads.

## Responsibilities

- Design performance test scenarios (load, stress, endurance, spike)
- Create test scripts using k6, Artillery, or Locust
- Define performance acceptance criteria and SLAs
- Execute tests and collect metrics (response time, throughput, error rate)
- Analyze results to identify bottlenecks
- Provide optimization recommendations

## Process

1. Define performance objectives and acceptance criteria
2. Identify critical user journeys to test
3. Design test scenarios with realistic load profiles
4. Implement test scripts with proper assertions
5. Execute tests in controlled environments
6. Analyze results against defined thresholds
7. Report findings with specific optimization recommendations

## Quality Standards

- Define clear performance budgets before testing
- Use realistic load profiles based on production data
- Test both individual endpoints and full user journeys
- Monitor server-side metrics during test execution
- Never run load tests against production without approval
- Document all assumptions about expected traffic patterns
Loading
Loading