Agent skill

QA Planning

by WellApp-ai in WellApp-ai/Well

Generate QA Contract with numbered Gherkin scenarios (GN) and acceptance criteria (ACN)

MITAuto-check passedProduct & Project Management

Install QA Planning

skills CLI
$ npx skills add WellApp-ai/Well --skill qa-planning -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install WellApp-ai/Well qa-planning --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/WellApp-ai/Well.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cursor-rules/skills/qa-planning .claude/skills/qa-planning && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
qa-planning
GitHub stars
345
Token cost
~3.9k tokens
SKILL.md length
909 words
Files
1
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Generate QA Contract with numbered Gherkin scenarios (GN) and acceptance criteria (ACN)

  • Works in 11 steps: Identify ALL Data Sources (CRITICAL) → Define Pre-conditions Matrix (Given) → Map When (Method + Path) → …
  • Tasks that involve User stories
  • SKILL.md covers When to Use, Output: QA Contract, Instructions and Output Format: QA Contract
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

QA Planning is an agent skill from WellApp-ai/Well. Generate QA Contract with numbered Gherkin scenarios (GN) and acceptance criteria (ACN)

Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Product & Project Management, covering User stories. The repository describes itself as: No more Sundays on Finance. We build the infrastructure that retrieves, processes, and routes your financial and business data to your FinOps stack, so founders can ship, not… The licence is MIT.

When your agent uses it

  • Tasks that involve User stories

Example prompts

  • “/qa-planning”

Workflow steps

11 steps, taken from the step headings in SKILL.md.

  1. Identify ALL Data Sources (CRITICAL)
  2. Define Pre-conditions Matrix (Given)
  3. Map When (Method + Path)
  4. Define Then (Response Contract)
  5. Write Gherkin Scenarios (G#N)
  6. Build-time Static Scenarios (G#N)
  7. Middleware/Routing Scenarios (G#N)
  8. Frontend QA (Acceptance Criteria - AC#N)
  9. Integration Points
  10. Coverage Summary
  11. Artifact Validation (Poka-Yoke)

What it can do on your machine

Read from SKILL.md and the folder at commit c740217. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown, gherkin and typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

QA Planning loads about 3.9k tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 909 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~25
When it runs · the whole SKILL.md, loaded when a task matches
~3.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from WellApp-ai/Well at commit c740217, republished under its MIT licence (© WellApp-ai). 909 words, ~3,949 tokens.

Download SKILL.mdSave it as .claude/skills/qa-planning/SKILL.md (or your agent's skills folder).
name
qa-planning
description
Generate QA Contract with numbered Gherkin scenarios (G#N) and acceptance criteria (AC#N)

QA Planning Skill

Generate the QA Contract - exhaustive Gherkin BDD scenarios (G#N) for all data sources and acceptance criteria (AC#N) for frontend. This contract is consumed by Plan Mode and verified by qa-commit skill.

When to Use

  • During Ask mode Phase 2 (CONVERGE) for any feature work
  • Before implementation to define testable acceptance criteria
  • When documenting expected behavior for QA team

Output: QA Contract

The QA Contract is the primary artifact, consisting of:

  • G#1, G#2, ... - Numbered Gherkin scenarios (backend/data)
  • AC#1, AC#2, ... - Numbered acceptance criteria (frontend)

These IDs are referenced in Plan Mode's Commit Plan (Satisfies field) and verified by qa-commit skill.

Instructions

Phase 0: Identify ALL Data Sources (CRITICAL)

STOP. Before writing any Gherkin, exhaustively map ALL data sources for the feature.

Categorize each data source:

CategoryDescriptionGherkin Type
Runtime APIFetched at request time from serverAPI scenarios (G#N)
Build-time StaticGenerated during build, served as static filesBuild script scenarios (G#N)
DatabaseDirect DB queries (Hasura, Postgres)Query scenarios (G#N)
External APIThird-party servicesIntegration scenarios (G#N)
MiddlewareRequest routing, auth, transformsRouting scenarios (G#N)

Data Source Inventory Template:

markdown
## Data Source Inventory

### Runtime APIs
| Endpoint | Method | Auth | Resource | Status |
|----------|--------|------|----------|--------|
| `/v1/resource` | GET | Yes | Resource | Existing |
| `/public/resource` | GET | No | Resource | New |

### Build-time Static
| Output Path | Source | Generator | Content |
|-------------|--------|-----------|---------|
| `/components.json` | Codebase | Build script | Component metadata |
| `/charts/[slug].json` | Codebase | Build script | Chart config + examples |

### Database Queries
| Query | Source | Auth | Purpose |
|-------|--------|------|---------|
| `connectors` | Hasura | Yes | List connectors |

### Middleware
| Route | Behavior | Auth |
|-------|----------|------|
| `developers.*` | Rewrite to public routes | Skip |

### External APIs
| Service | Endpoint | Purpose |
|---------|----------|---------|
| (none for this feature) | | |

Validation: Count total data sources. If < 3 for a non-trivial feature, you likely missed something. Re-examine the feature scope.

Phase 2: Define Pre-conditions Matrix (Given)

For each service, treat it as a black box. Based on the contract interface or data model, list all pre-condition parameters:

markdown
### [Method] [Path] Pre-conditions

| Parameter | Type | Source | Possible Values |
|-----------|------|--------|-----------------|
| `Authorization` | header | request | valid_token, invalid_token, expired_token, missing |
| `id` | path | URL | existing_uuid, non_existing_uuid, malformed, deleted |
| `status` | query | URL | enum values from data model |
| `[field]` | body | JSON | valid, null, empty, wrong_type, too_long |

Sources:

  • header: Authorization, Content-Type, custom headers
  • path: URL parameters (:id, :slug)
  • query: Query string filters, pagination
  • body: Request payload fields
Phase 3: Map When (Method + Path)

Each scenario has exactly ONE action:

When [METHOD] [/path/to/resource]

Examples:

  • When GET /v1/connectors
  • When POST /v1/connectors
  • When GET /v1/connectors/{id}
  • When DELETE /v1/connectors/{id}
Phase 4: Define Then (Response Contract)

Specify expected response object. Response varies based on pre-conditions:

gherkin
Then status [code]
And response.[field] is [type]
And response.[field] equals [value]
And response.[field] in [array of valid values]
And response does NOT include [sensitive_field]

Response Schema Template:

typescript
// Success response
{
  data: {
    type: string,
    id: UUID,
    attributes: { ... }
  },
  meta?: { count: number }
}

// Error response
{
  error: {
    code: "NOT_FOUND" | "UNAUTHORIZED" | "VALIDATION_ERROR",
    message: string
  }
}
Phase 5: Write Gherkin Scenarios (G#N)

For each method+path, write scenarios covering all pre-condition combinations:

gherkin
Feature: [Resource] API

  @G#1
  Scenario: G#1.1 - [Method] [path] - happy path
    Given Authorization header is "Bearer valid_token"
    And [pre-condition 1]
    And [pre-condition 2]
    When [METHOD] [/path]
    Then status 200
    And response.data.id is UUID
    And response.data.attributes.[field] is [type]

  @G#2
  Scenario: G#1.2 - [Method] [path] - missing auth
    Given no Authorization header
    When [METHOD] [/path]
    Then status 401
    And response.error.code equals "UNAUTHORIZED"

  @G#3
  Scenario: G#1.3 - [Method] [path] - not found
    Given Authorization header is "Bearer valid_token"
    And id is "non_existing_uuid"
    When [METHOD] [/path/{id}]
    Then status 404
    And response.error.code equals "NOT_FOUND"

Numbering Convention:

  • G#N = Feature-level ID (G#1, G#2...)
  • G#N.M = Scenario within feature (G#1.1, G#1.2...)
  • Use @G#N tag for traceability

Coverage Matrix per Endpoint:

MethodRequired Scenarios
GET (list)Valid, filtered, paginated, empty, unauthorized
GET (detail)Found, not found, deleted, unauthorized, malformed ID
POSTValid, each validation error, conflict, unauthorized
PUT/PATCHValid, partial, not found, conflict, unauthorized
DELETESuccess, not found, unauthorized, cascade
Phase 6: Build-time Static Scenarios (G#N)

For build-time generated data, write scenarios verifying the build script:

Pre-conditions for Build Scripts:

ParameterTypePossible Values
Source file existsbooleantrue, false
Source file validbooleanvalid structure, malformed
Metadata completebooleanall fields, partial, missing
Export typeenumdefault, named, none

Template:

gherkin
Feature: [Resource] Build Extraction

  @G#N
  Scenario: G#N.1 - Extract [resource] with complete metadata
    Given [source file] exists at [path]
    And [source file] has valid [structure]
    And [metadata fields] are documented
    When build script runs
    Then [output.json] includes [resource] entry
    And entry has [required fields]

  @G#N
  Scenario: G#N.2 - Skip internal/private [resources]
    Given [source file] has underscore prefix
    When build script runs
    Then [output.json] does NOT include entry

  @G#N
  Scenario: G#N.3 - Handle missing optional fields
    Given [source file] exists
    And [optional field] is not documented
    When build script runs
    Then entry has [optional field] as null

Coverage Matrix for Build Scripts:

Source TypeRequired Scenarios
ComponentExtract props, extract examples, skip internal, handle missing docs
ChartExtract config schema, extract data schema, extract examples
DocsParse MDX, extract frontmatter, build navigation
Search IndexIndex all sources, handle empty content, validate structure
Phase 7: Middleware/Routing Scenarios (G#N)

For middleware and routing logic:

Pre-conditions:

ParameterTypePossible Values
Host headerstringsubdomain variants, main domain, unknown
Pathstringvalid routes, invalid routes
Auth stateenumauthenticated, unauthenticated

Template:

gherkin
Feature: Hostname Routing

  @G#N
  Scenario: G#N.1 - Route [subdomain] to [target]
    Given Host header is "[subdomain].domain.com"
    And path is "[path]"
    When request arrives at middleware
    Then rewrite to [target route group]
    And [skip/require] authentication

  @G#N
  Scenario: G#N.2 - Unknown subdomain redirect
    Given Host header is "unknown.domain.com"
    When request arrives at middleware
    Then redirect to [default domain]
Show full SKILL.md (411 more words)Show less
Phase 8: Frontend QA (Acceptance Criteria - AC#N)

For each UI component/screen, define numbered testable criteria using AC#N format:

IDScreenCriteriaTest MethodPriority
AC#1[Component]Renders without errorStorybookP0
AC#2[Component]Displays loading stateStorybookP0
AC#3[Component]Displays error state with retryStorybookP0
AC#4[Component]Displays empty state with CTAStorybookP1
AC#5[Component]Keyboard navigation worksBrowser MCPP1
AC#6[Component]Screen reader accessibleManualP1
AC#7[Component]Mobile responsiveBrowser MCPP2

Numbering Rules:

  • Use sequential IDs: AC#1, AC#2, AC#3...
  • IDs are feature-scoped (reset for each feature)
  • Include ID in first column for traceability

Data Source Mapping for AC: Each AC must indicate which data source it consumes:

IDScreenCriteriaData SourcePriority
AC#1ConnectorsListRenders listAPI: /public/connectorsP0
AC#2ComponentsListRenders listStatic: /components.jsonP0

State Coverage:

StateRequired Tests
InitialDefault render, correct layout
LoadingSkeleton/spinner visible, no interaction
SuccessData displayed correctly, actions enabled
ErrorError message visible, retry available
EmptyEmpty message visible, CTA available
Phase 9: Integration Points

Identify cross-cutting concerns:

ConcernTest Approach
Auth token handlingGherkin: expired token, refresh flow
Optimistic updatesFrontend: show immediate, rollback on error
Cache invalidationFrontend: data refreshes after mutation
Error boundariesFrontend: component failure doesn't crash app
Phase 10: Coverage Summary
markdown
## Coverage Summary

### Data Sources
| Category | Count | Items |
|----------|-------|-------|
| Runtime APIs | [N] | [list endpoints] |
| Build-time Static | [N] | [list outputs] |
| Middleware | [N] | [list routes] |
| Database | [N] | [list queries] |
| External APIs | [N] | [list services] |
| **Total** | [N] | |

### Gherkin Scenarios
| Category | Count | IDs |
|----------|-------|-----|
| API scenarios | [N] | G#1 - G#[N] |
| Build scenarios | [N] | G#[N] - G#[M] |
| Middleware scenarios | [N] | G#[M] - G#[P] |
| **Total** | [N] | |

### Frontend Acceptance
| Category | Count | IDs |
|----------|-------|-----|
| Acceptance criteria | [N] | AC#1 - AC#[N] |

### Validation Checklist
- [ ] Every data source has at least 1 G#N scenario
- [ ] Every AC#N maps to a data source
- [ ] All error cases covered (401, 404, 400, 500)
- [ ] Build scripts have extraction + skip + missing scenarios
- [ ] Middleware has all subdomain variants
Phase 11: Artifact Validation (Poka-Yoke)

Before Gate transition, validate artifacts silently. Only show output if validation fails.

Gate 1 Validation (DIVERGE -> CONVERGE)

Check:

  • All wireframes have status (OK/KO/DIG, or no comment = OK)
  • No orphan references (#{N} mentioned but not defined)
  • At least 1 wireframe validated (OK)
Gate 2 Validation (CONVERGE -> PLAN)

Check:

  • QA Contract has at least 1 G#N (Gherkin scenario)
  • QA Contract has at least 1 AC#N (acceptance criteria)
  • Each phase has at least 1 commit planned
  • No circular dependencies in phasing order
  • All G#N and AC#N are assigned to phases
Validation Output

If all pass: (silent, no output - proceed normally)

If validation fails:

R | [Feature] | VALIDATION ERROR
---
Cannot proceed to [NEXT_PHASE]:
- [Missing: wireframe #4 has no status]
- [Missing: QA Contract needs at least 1 G#N]

Fix: [Specific action to resolve]
Integration

This validation runs automatically before:

  • Gate 1 presentation (ask.mdc Phase 1 - DIVERGE)
  • Gate 2 presentation (ask.mdc Phase 2 - CONVERGE)

Output Format: QA Contract

markdown
## QA Contract: [Feature Name]

### Data Source Inventory

#### Runtime APIs
| Endpoint | Method | Auth | Resource | Status |
|----------|--------|------|----------|--------|
| `/v1/resource` | GET | Yes | Resource | Existing |
| `/public/resource` | GET | No | Resource | New |

#### Build-time Static
| Output Path | Source | Generator |
|-------------|--------|-----------|
| `/components.json` | Codebase | Build script |

#### Middleware
| Route Pattern | Behavior |
|---------------|----------|
| `developers.*` | Rewrite to public, skip auth |

---

### API Scenarios (G#1 - G#N)

#### G#1: [METHOD] [/path] ([Resource])

**Pre-conditions:**

| Parameter | Type | Possible Values |
|-----------|------|-----------------|
| `Authorization` | header | valid_token, invalid_token, missing |
| `id` | path | existing, non_existing, malformed |

**Scenarios:**

| ID | Given | When | Then |
|----|-------|------|------|
| G#1.1 | valid token | GET /path | 200, data array |
| G#1.2 | invalid token | GET /path | 401, UNAUTHORIZED |

---

### Build Scenarios (G#N - G#M)

#### G#N: [Resource] Extraction

**Pre-conditions:**

| Parameter | Type | Possible Values |
|-----------|------|-----------------|
| Source exists | boolean | true, false |
| Metadata complete | boolean | complete, partial |

**Scenarios:**

| ID | Given | When | Then |
|----|-------|------|------|
| G#N.1 | source exists, complete | Build runs | output.json includes entry |
| G#N.2 | internal file (underscore) | Build runs | output.json excludes entry |

---

### Middleware Scenarios (G#M - G#P)

#### G#M: Hostname Routing

| ID | Given (Host) | Given (Path) | Then |
|----|--------------|--------------|------|
| G#M.1 | developers.domain.com | /connectors | Rewrite to /(public), skip auth |
| G#M.2 | app.domain.com | /settings/* | Route to /(app), require auth |

---

### Response Schemas

```typescript
// Success
{ data: { type, id, attributes }, meta: { count } }

// Error
{ error: { code, message } }

// Static file
{ data: [{ slug, name, ... }], meta: { count } }

Frontend Acceptance Criteria
IDScreenCriteriaData SourcePriority
AC#1[Component]Renders listAPI: /public/xP0
AC#2[Component]Renders from staticStatic: /x.jsonP0

Coverage Summary
CategoryCountIDs
Runtime APIs[N]G#1 - G#[N]
Build Scripts[N]G#[N] - G#[M]
Middleware[N]G#[M] - G#[P]
Acceptance Criteria[N]AC#1 - AC#[N]
Total Scenarios[N]
Validation
  • Every data source has ≥1 G#N
  • Every AC#N maps to data source
  • Error cases covered (401, 404, 400)

## Consuming the QA Contract

This QA Contract is used by:
- **Plan Mode**: Maps G#N and AC#N to commits via "Satisfies" field
- **qa-commit skill**: Verifies implementation against assigned criteria
- **test-hardening skill**: Converts passed criteria to automated tests

## Invocation

Invoke manually with "use qa-planning skill" or follow Ask mode Phase 2 (CONVERGE) which references this skill.

## Related Skills

- `state-machine` - Defines states that need testing
- `bpmn-workflow` - Uses Gherkin scenarios for process documentation
- `qa-commit` - Verifies implementation against QA Contract
- `test-hardening` - Converts passed scenarios to automated tests

© WellApp-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in cursor-rules/skills/qa-planning of WellApp-ai/Well.

Open the folder on GitHubat commit c740217

Compare with similar skills

QA Planning next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

QA Planning compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
QA Planning this skillWellApp-ai/Well345—~3.9kAutomated safety check: PassMIT
User Story Writerdeanpeters/Product-Manager-Skills7.2k2 repos~2.9kAutomated safety check: PassCustom licence
Ralph Tui Create Beadssubsy/ralph-tui2.5k1 repos~2.6kAutomated safety check: PassMIT
Agile Product Owneralirezarezvani/claude-skills28k3 repos~3.2kAutomated safety check: PassMIT
Ralph Tui Create Beads Rustsubsy/ralph-tui2.5k1 repos~2.8kAutomated safety check: PassMIT
To Specbestofjs/bestofjs3.1k21 repos~757Automated safety check: PassMIT

Similar skills

  • User Story Writer

    deanpeters/Product-Manager-Skills

    Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.

    7.2k GitHub starsUsed in 2 repos~2.9k tokens
    Product & Project ManagementAuto-check passed
  • Ralph Tui Create Beads

    subsy/ralph-tui

    Convert PRDs to beads for ralph-tui execution. An agent skill from subsy/ralph-tui.

    2.5k GitHub starsUsed in 1 repo~2.6k tokens
    Product & Project ManagementAuto-check passed
  • Agile Product Owner

    alirezarezvani/claude-skills

    Writes INVEST-checked user stories with acceptance criteria, splits epics, plans sprints from velocity and ranks the backlog with a weighted score.

    28k GitHub starsUsed in 3 repos~3.2k tokens
    Product & Project ManagementAuto-check passed
  • Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI).

    2.5k GitHub starsUsed in 1 repo~2.8k tokens
    Product & Project ManagementAuto-check passed
  • To Spec

    bestofjs/bestofjs

    Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.

    3.1k GitHub starsUsed in 21 repos~757 tokens
    Product & Project ManagementAuto-check passed
  • Ralph Tui Create JSON

    subsy/ralph-tui

    Convert PRDs to prd.json format for ralph-tui execution. An agent skill from subsy/ralph-tui.

    2.5k GitHub starsUsed in 1 repo~2.6k tokens
    Product & Project ManagementAuto-check passed

More from WellApp-ai/Well

All 36 skills in this repo
  • Tech Divergence

    WellApp-ai/Well

    Evaluate technical options with scoring matrix, trigger Gate 4 for significant decisions

    345 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Ar Aging

    WellApp-ai/Well

    Produce an accounts-receivable aging report and surface overdue invoices for a Well workspace.

    345 GitHub stars~532 tokensUpdated 2 days ago
    Auto-check passed
  • Autonomous Loop

    WellApp-ai/Well

    Iterate until success or limit, composing existing skills with Jidoka integration

    345 GitHub stars~1k tokensUpdated 2 days ago
    Auto-check passed
  • Balance Sheet

    WellApp-ai/Well

    Build a balance sheet (bilan) from a Well workspace. An agent skill from WellApp-ai/Well.

    345 GitHub stars~534 tokensUpdated 2 days ago
    Auto-check passed
  • Bpmn Workflow

    WellApp-ai/Well

    Generate and maintain BPMN 2.0 diagrams linked to Gherkin scenarios

    345 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed
  • Cash Flow Forecast

    WellApp-ai/Well

    Forecast cash flow and runway for a Well workspace from booked invoices and collected bank transactions.

    345 GitHub stars~567 tokensUpdated 2 days ago
    Auto-check passed

Questions about QA Planning

What does QA Planning do?

Generate QA Contract with numbered Gherkin scenarios (GN) and acceptance criteria (ACN). QA Planning is an agent skill from WellApp-ai/Well.

When should I use QA Planning?

QA Planning fits situations like: tasks that involve User stories.

How do I install QA Planning in Claude Code?

Run `npx skills add WellApp-ai/Well --skill qa-planning -a claude-code`. Or copy the skill folder (cursor-rules/skills/qa-planning in WellApp-ai/Well) into .claude/skills/qa-planning in your project. Claude Code loads it when a task matches its description.

How do I install QA Planning in Codex?

Run `npx skills add WellApp-ai/Well --skill qa-planning -a codex`. Or copy the skill folder (cursor-rules/skills/qa-planning in WellApp-ai/Well) into .agents/skills/qa-planning in your project. Codex loads it when a task matches its description.

Can I use QA Planning in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add WellApp-ai/Well --skill qa-planning -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qa-planning, .gemini/skills/qa-planning, .github/skills/qa-planning and .opencode/skills/qa-planning in your project.

What does QA Planning need to run?

SKILL.md names no scripts, command-line tools or credentials: QA Planning is instructions for the agent only.

Does QA Planning access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is QA Planning safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does QA Planning use?

QA Planning is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does QA Planning use?

About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to QA Planning?

Skills that share tags, products or a category with QA Planning: User Story Writer (deanpeters/Product-Manager-Skills, 7.2k stars), Ralph Tui Create Beads (subsy/ralph-tui, 2.5k stars), Agile Product Owner (alirezarezvani/claude-skills, 28k stars) and Ralph Tui Create Beads Rust (subsy/ralph-tui, 2.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains QA Planning?

WellApp-ai (a GitHub organization) maintains it in WellApp-ai/Well, which has 345 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 7, 2026.

Source: WellApp-ai/Well on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.