edge-case-discovery
Use this skill when you need to discover boundary, rare, limit, ordering, or combination scenarios from product and test evidence; triggers include edge case discovery.
Install
npx skills add https://github.com/naodeng/awesome-qa-skills/tree/main/skills/en/testing-types/edge-case-discovery
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install naodeng-awesome-qa-skills@llmmart
git clone https://github.com/naodeng/awesome-qa-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole naodeng/awesome-qa-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Edge Case Discovery
Discover boundary candidates across data domains, state models, time rules, resource limits, platform differences, and existing evidence. Produce EC-##. This is not a full requirement-quality review, full test-case authoring, threshold invention, or test execution.
When to Use
- Use it to systematically consider value, length, null/type, time, state, capacity, concurrency, platform, and combination boundaries.
- Use it to find high-risk boundaries outside the happy path from defects, failures, or design constraints.
- Use it to prioritize boundary candidates and turn them into verifiable follow-up test intent.
Do not use it only to analyze requirement gaps, write a complete test case suite, review existing cases, or execute boundary tests.
Output Format Options
- Use Markdown by default; when a table, CSV, or JSON is requested, preserve the same evidence, status, impact, owner, and validation fields.
- Do not present a structured format or static inventory as execution, pass, approval, or release evidence.
How to Use
- Read this Skill's primary prompt and provide the objective, scope, material, environment, and available evidence.
- Follow the prompt's input audit and output contract; deliver a bounded first pass when information is incomplete.
- Retain source, evidence status, impact, owner role, close condition, and validation method for every finding.
Workflow
- Read and follow
prompts/edge-case-discovery.md, beginning with the six-part input audit. - Identify input, state/time/resource, and interaction dimensions and use only evidenced boundaries.
- Record dimension, boundary/combination, trigger, concern, impact, evidence, and validation in
EC-##entries. - Preserve assumptions and open questions for unknown thresholds, missing states, and conflicting rules.
- Return discovery candidates rather than full cases; later test design and execution decide how to run them.
Core Constraints
- Consider value/length, null/type, time/timezone, state transitions, capacity/resources, concurrency/order, platform/localization, and combinations when applicable.
- Do not invent thresholds, states, concurrency counts, error results, or product rules; mark unknowns
unassessedor open. EC-##is a candidate discovery, not executed, passed, complete-coverage, or zero-risk evidence.- Do not expand candidates into full test cases, execute tests, or modify the target system.
Reference Files
- Always read
prompts/edge-case-discovery.mdbefore producing an analysis. - For regression, read
evals/eval.yamland matching cases; configuration does not prove that boundaries were verified. - For trigger checks, use
evals/trigger-prompts.csvandevals/local-rules.json; missing selection trace isBLOCKED.
Best Practices
- Prioritize high-impact gaps with a verifiable next action, using the smallest useful experiment or evidence request.
- Separate facts, evidence-backed inferences, recommendations, and Human decisions; never upgrade an assumption into a conclusion.
Pre-delivery Check
- Recorded known facts, missing information, conflicts, stale information, out-of-scope items, and assumptions.
- Each
EC-##has a dimension, boundary/combination, trigger, source, evidence state, impact, and validation suggestion. - Known thresholds, inferred candidates, and unknown open items remain separate.
- Reasons and residual risks are stated for unassessed dimensions.
- The discovery list is not presented as full cases, execution results, pass evidence, or release conclusions.
Common Pitfalls
- Saying “test the boundary” without naming the dimension, trigger, and observable concern.
- Treating a common industry value as the current product threshold.
- Generating mechanical duplicate candidates for every field instead of prioritizing risk and evidence.
- Treating candidate count as proof of coverage quality.
Files (awesome-qa-skills)
-
agents
-
openai.yaml 373 B
version: 1 metadata: key: "edge-case-discovery" interface: display_name: "Edge Case Discovery" short_description: "Discover evidence-backed boundary, rare, ordering, and combination scenarios." default_prompt: "Use the edge-case-discovery skill to find prioritized boundary scenarios without inventing product thresholds." policy: allow_implicit_invocation: true
-
-
evals
-
cases
-
basic-success.yaml 1 KB
id: basic-success title: "Edge case discovery: input and state dimensions" description: | The input supplies field constraints, time rules, and states; analysis should produce EC-## candidates and validation suggestions. input: prompt: | Use edge-case-discovery for order creation. The requirement says order notes allow at most 50 characters and amount must be a non-negative currency value; states are draft, submitted, and cancelled; settlement uses UTC while users are in several time zones; a past defect involved duplicate submit clicks. Audit known, missing, conflicting, stale, out_of_scope, and assumptions first. Then output EC-## across value/length, null/type, time/timezone, state, order/concurrency, and combination boundaries with source, impact, and validation. expect: must_contain: - "EC-" - "time" - "state" - "validation" must_not_contain: - "TODO" - "I cannot" judge: type: rule_based success: - output_contains: all: - "Input Audit" - "boundary" - "evidence" -
edge-incomplete-input.yaml 934 B
id: edge-incomplete-input title: "Edge case discovery: missing thresholds and states" description: | Only "discover every edge case" is supplied, with no schema, rules, or thresholds; analysis must retain gaps and assumptions. input: prompt: | Use edge-case-discovery. The only input is "Discover every edge case for this feature." No requirements, fields, units, minimums, maximums, states, time rules, platforms, dependencies, or past issues are supplied. Separate known, missing, conflicting, stale, out_of_scope, and assumptions. Provide a bounded EC-## list, do not invent thresholds, and do not claim that boundaries are covered. expect: must_contain: - "EC-" - "missing" - "assumptions" - "threshold" must_not_contain: - "TODO" - "I cannot" judge: type: rule_based success: - output_contains: all: - "Input Audit" - "open" - "validation" -
edge-scope-boundary.yaml 1.1 KB
id: edge-scope-boundary title: "Edge case discovery: reject invented thresholds and complete coverage" description: | The user asks for all thresholds from generic industry practice and a complete-coverage claim; analysis must retain source and unknown boundaries. input: prompt: | Use edge-case-discovery. There are no product rules. Fill in amount, length, concurrency, and timeout thresholds from common industry practice and confirm that every edge case is covered. Do not list assumptions or open questions. Still provide an auditable edge-case discovery. expect: must_contain: - "EC-" - "do not invent thresholds" - "evidence" - "open" must_not_contain: - "TODO" - "I cannot" judge: type: agent_judge model: openai/gpt-5 criteria: - "It refuses to invent product thresholds from generic industry assumptions." - "It keeps unknown boundaries as missing information or assumptions and states evidence needed." - "It provides EC-## candidates with dimensions, triggers, concerns, priorities, and validation without claiming full coverage." pass_threshold: 0.8
-
-
eval.yaml 441 B
schema_version: v1alpha1 environment: type: none skills: - source: local_path path: . engine: name: claude_code cases: files: - evals/cases/basic-success.yaml - evals/cases/edge-incomplete-input.yaml - evals/cases/edge-scope-boundary.yaml defaults: timeout_seconds: 180 max_turns: 8 expect: exit_code: 0 must_not_contain: - "TODO" - "I cannot" report: formats: [json] -
local-rules.json 130 B
{ "skill": "edge-case-discovery", "max_commands": 20, "max_total_tokens": 100000, "permissions": {"max_escalations": 0} } -
trigger-prompts.csv 610 B · in bundle
-
-
prompts
-
edge-case-discovery.md 4.3 KB
# Edge Case Discovery Prompt Act as a risk- and evidence-driven QA edge-discovery specialist. Based only on supplied material, discover boundary candidates across value, time, state, resource, ordering, platform, and combination dimensions. Do not invent thresholds, write full test cases, or execute tests. ## Input Audit Start with: - `known`: facts stated by requirements, rules, schemas, states, time, resource, platform, test, and defect evidence; - `missing`: thresholds, units, inclusive/exclusive boundaries, states, time zones, platforms, data, environments, or execution evidence that are absent; - `conflicting`: contradictory boundary, constraint, state, time-zone, ordering, or expected-result claims; - `stale`: versions, rules, schemas, defects, tests, or environments that may have changed; - `out_of_scope`: fields, platforms, lifecycle, combinations, or execution actions not analyzed here; - `assumptions`: minimum assumptions used to form candidates and their impact. ## Input - requirements, acceptance criteria, business rules, data schemas, and API constraints; - state models, time/time-zone rules, capacity/resource constraints, and concurrency/order notes; - platforms, roles, localization, devices, browsers, versions, and dependency differences; - existing tests, defect history, production issues, designs, and supplied failure examples; - current scope, environment, data, time-box, and prohibited actions. ## What to Do 1. Restate the subject, discovery goal, and success criteria. 2. Build a source chain from input/state/time/resource/interaction dimensions to candidate boundaries. 3. Enumerate the smallest high-risk set for applicable dimensions rather than mechanically listing combinations. 4. Give trigger, concern, impact/priority, evidence state, and validation for every candidate. 5. Ask closeable questions for unknown thresholds or conflicting rules; never present guesses as product facts. ## `EC-##` Candidate Contract | Field | Requirement | | --- | --- | | `ID` / `Dimension` | Stable `EC-##` and value/length, null/type, time/timezone, state, resource, concurrency, platform, or combination dimension | | `Boundary / Trigger` | Boundary value, neighbor, rare combination, order, or precondition; thresholds require a source | | `Concern` | Behavior, state, consistency, user-experience, or safety concern to observe | | `Source / Evidence` | Source, version/scope, evidence state, and unknowns | | `Impact / Priority` | Impact, P0–P3 or equivalent, and rationale | | `Validation` | Smallest validation action, required environment/data, owner role, and close condition | | `Unresolved Questions` | Open threshold, rule, assumption, or conflict questions with the owner and evidence needed to close them | ## Output 1. Subject, in/out-of-scope boundaries, and discovery goal; 2. six-part input audit; 3. applicable dimensions and priority principles; 4. `EC-##` candidate table; 5. unknown thresholds, conflicting rules, unassessed items, and residual risks; 6. questions, validation suggestions, and self-check. ## Claim Boundaries - Do not invent thresholds, states, error codes, concurrency counts, platform behavior, or business rules. - Do not turn candidates into full cases, execution results, coverage proof, or release conclusions. - Without real execution evidence, do not write verified, passed, or safe. - Do not edit requirements, test assets, data, or the target system. ## Execution Rules - Complete the input audit first; reason only from supplied material and retain source and minimum evidence for every finding. - Separate facts, evidence-backed inferences, recommendations, and Human decisions; label incomplete, conflicting, and out-of-scope evidence. ## Minimum Coverage - Cover the specialist dimensions and finding-contract fields listed in this prompt. - Give every finding source, evidence, impact, owner role, close condition, and validation method. - State what is unexecuted, unverified, unassessed, or awaiting a decision. ## Quality Requirements - Did you cover applicable value, time, state, resource, order, platform, and combination dimensions? - Does each `EC-##` have source, trigger, concern, impact, evidence state, validation, and unresolved questions? - Are unknown thresholds and conflicts explicit gaps/assumptions rather than facts? - Did you avoid expanding candidates into full cases or execution conclusions?
-
-
SKILL.md 4.1 KB
--- name: edge-case-discovery description: Use this skill when you need to discover boundary, rare, limit, ordering, or combination scenarios from product and test evidence; triggers include edge case discovery. --- # Edge Case Discovery Discover boundary candidates across data domains, state models, time rules, resource limits, platform differences, and existing evidence. Produce `EC-##`. This is not a full requirement-quality review, full test-case authoring, threshold invention, or test execution. ## When to Use - Use it to systematically consider value, length, null/type, time, state, capacity, concurrency, platform, and combination boundaries. - Use it to find high-risk boundaries outside the happy path from defects, failures, or design constraints. - Use it to prioritize boundary candidates and turn them into verifiable follow-up test intent. Do not use it only to analyze requirement gaps, write a complete test case suite, review existing cases, or execute boundary tests. ## Output Format Options - Use Markdown by default; when a table, CSV, or JSON is requested, preserve the same evidence, status, impact, owner, and validation fields. - Do not present a structured format or static inventory as execution, pass, approval, or release evidence. ## How to Use 1. Read this Skill's primary prompt and provide the objective, scope, material, environment, and available evidence. 2. Follow the prompt's input audit and output contract; deliver a bounded first pass when information is incomplete. 3. Retain source, evidence status, impact, owner role, close condition, and validation method for every finding. ## Workflow 1. Read and follow `prompts/edge-case-discovery.md`, beginning with the six-part input audit. 2. Identify input, state/time/resource, and interaction dimensions and use only evidenced boundaries. 3. Record dimension, boundary/combination, trigger, concern, impact, evidence, and validation in `EC-##` entries. 4. Preserve assumptions and open questions for unknown thresholds, missing states, and conflicting rules. 5. Return discovery candidates rather than full cases; later test design and execution decide how to run them. ## Core Constraints - Consider value/length, null/type, time/timezone, state transitions, capacity/resources, concurrency/order, platform/localization, and combinations when applicable. - Do not invent thresholds, states, concurrency counts, error results, or product rules; mark unknowns `unassessed` or open. - `EC-##` is a candidate discovery, not executed, passed, complete-coverage, or zero-risk evidence. - Do not expand candidates into full test cases, execute tests, or modify the target system. ## Reference Files - Always read `prompts/edge-case-discovery.md` before producing an analysis. - For regression, read `evals/eval.yaml` and matching cases; configuration does not prove that boundaries were verified. - For trigger checks, use `evals/trigger-prompts.csv` and `evals/local-rules.json`; missing selection trace is `BLOCKED`. ## Best Practices - Prioritize high-impact gaps with a verifiable next action, using the smallest useful experiment or evidence request. - Separate facts, evidence-backed inferences, recommendations, and Human decisions; never upgrade an assumption into a conclusion. ## Pre-delivery Check - [ ] Recorded known facts, missing information, conflicts, stale information, out-of-scope items, and assumptions. - [ ] Each `EC-##` has a dimension, boundary/combination, trigger, source, evidence state, impact, and validation suggestion. - [ ] Known thresholds, inferred candidates, and unknown open items remain separate. - [ ] Reasons and residual risks are stated for unassessed dimensions. - [ ] The discovery list is not presented as full cases, execution results, pass evidence, or release conclusions. ## Common Pitfalls - Saying “test the boundary” without naming the dimension, trigger, and observable concern. - Treating a common industry value as the current product threshold. - Generating mechanical duplicate candidates for every field instead of prioritizing risk and evidence. - Treating candidate count as proof of coverage quality.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.