Receber por email
← Voltar para o catálogo

ln-523-auto-test-planner

Plans automated tests (E2E/Integration/Unit) using Risk-Based Testing after manual testing. Use when Story needs a test task with prioritized scenarios.

497estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add levnikolaevich/claude-code-skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/ln-523-auto-test-planner/svg)](https://www.skillteca.com.br/skills/ln-523-auto-test-planner)

Skills relacionadas

Ver todas de Automação →

Alerta por categoria

Receba novas skills de Automação toda segunda

1 email curto, só com as skills novas de Automação. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa
Paths: File paths (references/, ../ln-*) are relative to this skill directory.

Automated Test Planner

Type: L3 Worker

Creates Story test task with comprehensive automated test coverage (E2E/Integration/Unit) based on Risk-Based Testing methodology and REAL manual testing results.

Inputs

| Input | Required | Source | Description | |-------|----------|--------|-------------| | storyId | Yes | args, git branch, kanban, user | Story to process |

Resolution: Story Resolution Chain. Status filter: To Review

Purpose & Scope

  • Create comprehensive test task for Story automation
  • Calculate risk-based priorities (Impact x Probability)
  • Generate 11-section test plan from manual test results
  • Delegate to ln-301-task-creator (CREATE) or ln-302-task-replanner (REPLAN)
  • NOT for: manual testing, research, or orchestration

When to Use

  • Use when implementation work is done and automated test coverage must be planned
  • All implementation Tasks in Story status = Done
  • ln-521 research: uses if available, generates minimal inline research if missing
  • ln-522 manual testing: uses if available, marks as 'skipped by policy' if missing

Automation: Supports autoApprove: true in managed runs to skip manual confirmation.

Workflow

Phase 0: Tools Config

MANDATORY READ: Load references/environment_state_contract.md, references/storage_mode_detection.md, and references/input_resolution_pattern.md

Extract: task_provider = Task Management → Provider (linear | file).

Phase 1: Discovery (Automated)

  1. Resolve storyId: Run Story Resolution Chain per guide (status filter: [To Review]).
  2. Auto-discover Team ID from docs/tasks/kanban_board.md (see CLAUDE.md "Configuration Auto-Discovery")

Phase 2: Story + Tasks Analysis (NO Dialog)

Step 0: Study Project Test Files

  1. Scan for test-related files:
  2. tests/README.md (commands, setup, environment)
  3. Test configs (jest.config.js, vitest.config.ts, pytest.ini)
  4. Existing test structure (tests/, __tests__/ directories)
  5. Coverage config (.coveragerc, coverage.json)
  6. Extract: test commands, framework, patterns, coverage thresholds
  7. Ensures test planning aligns with project practices

Step 1: Load Research and Manual Test Results

  1. Fetch Story (must have label "user-story"):
  2. IF task_provider = linear: get_issue(storyId) — extract Story.id (UUID, NOT short ID)
  3. IF task_provider = file: Read story.md — extract Story metadata
  4. Load research comment (from ln-521): "## Test Research: {Feature}"
  5. IF task_provider = linear: list_comments(issueId=storyId) → find matching comment
  6. IF task_provider = file: Glob("docs/tasks/epics//stories//comments/*.md") → find matching comment
  7. IF research comment not found: generate 3-5 bullet points of key test areas based on Story AC and task descriptions (inline, no external research).
  8. Load manual test results comment (from ln-522): "## Manual Testing Results"
  9. Same approach as research comment above
  10. IF manual test results not found: skip manual test coverage analysis. Note in output: 'Manual testing: skipped by policy (simplified mode).'
  11. Parse sections: AC results (PASS/FAIL), Edge Cases, Error Handling, Integration flows
  12. Map to test design: PASSED AC -> E2E, Edge cases -> Unit, Errors -> Error handling, Flows -> Integration

Step 2: Analyze Story + Tasks

  1. Parse Story: Goal, Test Strategy, Technical Notes
  2. Fetch all child Tasks (status = Done):
  3. IF task_provider = linear: list_issues(parentId=Story.id, state="Done")
  4. IF task_provider = file: Glob("docs/tasks/epics//stories//tasks/*.md") → filter by Status: Done
  5. Analyze each Task:
  6. Components implemented
  7. Business logic added
  8. Integration points created
  9. Conditional branches (if/else/switch)
  10. Identify what needs testing

Phase 3: Parsing Strategy for Manual Test Results

Process: Locate Linear comment with "Manual Testing Results" header -> Verify Format Version 1.0 -> Extract structured sections (Acceptance Criteria, Test Results by AC, Edge Cases, Error Handling, Integration Testing) using regex -> Validate (at least 1 PASSED AC, AC count matches Story, completeness check) -> Map parsed data to test design structure

Error Handling: Missing comment -> use fallback (inline research or skip per Phase 2 logic), Missing format version -> WARNING (try legacy parsing), Required section missing -> use fallback, No PASSED AC -> ERROR (fix implementation)

Phase 4: Risk-Based Test Planning (Automated)

MANDATORY READ: Load references/risk_based_testing_guide.md for scoring and usefulness gates. Conditional read: load references/risk_based_testing_methodology.md only when planning a full test strategy or when the risk/usefulness decision is ambiguous.

E2E-First Approach: Prioritize by business risk (Priority = Impact x Probability), not coverage metrics.

Workflow:

Step 1: Risk Assessment

Calculate Priority for each scenario from manual testing:

Priority = Business Impact (1-5) x Probability (1-5)

Decision Criteria:

  • Priority ≥15 -> MUST test
  • Priority 9-14 -> SHOULD test if not covered
  • Priority <=8 -> SKIP (manual testing sufficient)

Step 2: E2E Test Selection (2-5): Baseline 2 (positive + negative) ALWAYS + 0-3 additional (Priority ≥15 only)

Step 3: Unit Test Selection (0-15): DEFAULT 0. Add ONLY for complex business logic (Priority ≥15): financial, security, algorithms

Step 4: Integration Test Selection: DEFAULT 0. Add ONLY if E2E gaps AND Priority ≥15: rollback, concurrency, external API errors

Step 5: Validation: Each test passes Usefulness Criteria (Priority ≥15, Confidence ROI, Behavioral, Predictive, Specific, Non-Duplicative)

Phase 5: Test Task Generation (Automated)

Generates complete test task per test_task_template.md (11 sections):

Sections 1-7: Context, Risk Matrix, E2E/Integration/Unit Tests (with Priority scores + justifications), Coverage, DoD

Section 8: Existing Tests to Fix (analysis of affected tests from implementation tasks)

Section 9: Infrastructure Changes (packages, Docker, configs - based on test dependencies)

Section 10: Documentation Updates (README, CHANGELOG, tests/README, config docs)

Section 11: Legacy Code Cleanup (unsupported patterns, backward compat, dead code)

Shows preview for review.

Phase 6: Confirmation & Delegation

Step 1: Preview generated test plan (always displayed for transparency)

Step 2: Confirmation logic:

  • autoApprove: true -> proceed automatically
  • Manual run -> prompt user to type "confirm"

Step 3: Check for existing test task

  • IF task_provider = linear: list_issues(parentId=Story.id, label="tests")
  • IF task_provider = file: Glob("docs/tasks/epics//stories//tasks/*.md") → filter by Labels: containing tests

Decision:

  • Count = 0 -> CREATE MODE (Step 4a)
  • Count >= 1 -> REPLAN MODE (Step 4b)

Step 4a: CREATE MODE (if Count = 0)

Managed delegation sequence:

  1. Compute childRunId = {parent_run_id}--ln-301--{storyId}
  2. Compute childSummaryArtifactPath = .hex-skills/runtime-artifacts/runs/{parent_run_id}/task-plan/ln-301--{storyId}.json
  3. Materialize child manifest at .hex-skills/test-planning/ln-301--{storyId}_manifest.json
  4. Start task-plan-worker-runtime with both transport inputs
  5. Checkpoint child_run metadata in PHASE_6_DELEGATE_TASK_PLAN
  6. Invoke ln-301-task-creator with --run-id and --summary-artifact-path
  7. Read only the resulting child task-plan artifact

Pass to worker:

  • taskType, teamId, storyData (Story.id, title, AC, Technical Notes, Context)
  • researchFindings (from ln-521 comment)
  • manualTestResults (from ln-522 comment)
  • testPlan (e2eTests, integrationTests, unitTests, riskPriorityMatrix)
  • infrastructureChanges, do
Compartilhar X LinkedIn