Files
github-copilot/.github/skills/branch-review-check-testlink/SKILL.md
T
ВяткинАртём e5dc08987d feat: Add new agents and skills for Docker, TestLink, and OpenWrt
- Introduced "Docker Build & Test Engineer" agent for building and testing Docker images.
- Added "TestLink Autotest Engineer" agent for generating and verifying autotests from TestLink cases.
- Created "Branch Review Engineer" agent for reviewing branch diffs and proposing improvements.
- Developed "OpenWrt VPN & Network Engineer" agent for designing and implementing OpenWrt networking with VPN.
- Established a structured directory for agents, skills, prompts, instructions, and hooks under `.github/`.
- Implemented detailed skills for branch review processes, including reading code, analyzing improvements, and applying changes.
- Added skills for OpenWrt network discovery, VPN routing, and hardening.
- Created README files for better documentation and navigation of the repository structure.
2026-04-08 09:47:18 +03:00

133 lines
4.5 KiB
Markdown

---
name: branch-review-check-testlink
description: "Open a TestLink test case via MCP and verify that the changed autotest in the branch covers all required steps and expected results. Use when: review autotest against TestLink, compare test implementation with TestLink case, verify coverage of written test, проверить автотест по TestLink, сверить тест с тест-кейсом, проверить что автотест покрывает шаги тест-кейса."
argument-hint: "TestLink test case ID or changed test file/scope"
---
# Branch Review: Check TestLink Coverage
This skill verifies that a written autotest actually checks everything required by the authoritative TestLink test case.
## When to Use
- The branch adds or changes autotests tied to a TestLink case
- The user explicitly asks to compare a test file with a TestLink case
- The diff contains a recognizable TestLink reference such as `KMD-123`, `PRJ-42`, or a comment, marker, title, docstring, or test name that maps to a test case
## Core Rule
Do not assume that a test is complete just because it exists.
You must fetch the TestLink case via MCP, read the written autotest, and compare:
- preconditions
- scenario steps
- expected results
- negative and branching behavior when the TestLink case requires it
## Procedure
### Step 1 — Resolve the TestLink Case ID
Find the most reliable case identifier in this order:
1. explicit user-provided case ID
2. exact TestLink ID found in changed test code, comments, docstrings, titles, markers, fixture names, or nearby docs
3. exact TestLink ID found in commit or branch-related text already provided in context
Accepted formats:
- numeric internal ID, for example `1831`
- external ID, for example `KMD-1831`
If there is no reliable ID, stop this skill and report:
- no TestLink case could be resolved from the branch
- what evidence was checked
### Step 2 — Fetch the Authoritative Test Case
Call TestLink MCP to load the case.
Use:
- `external_id` for prefixed identifiers such as `KMD-1831`
- `test_case_id` for plain numeric identifiers
Extract at minimum:
- `id` and `external_id`
- `name`
- `summary`
- `preconditions`
- `steps[].step_number`
- `steps[].actions`
- `steps[].expected_results`
If the case is not found, report it and stop this skill.
### Step 3 — Read the Written Test Thoroughly
Read the changed test file and any directly related helpers or fixtures that are necessary to understand what is actually asserted.
Determine:
- what setup the test performs
- what actions it executes
- what it asserts explicitly
- what it only implies but does not verify
- what parts of the TestLink case are not covered at all
Be strict here:
- execution of a step is not the same as verification of a result
- logging or comments are not assertions
- helper names do not count as coverage unless the underlying assertion is visible or can be traced with confidence
### Step 4 — Build a Coverage Matrix
Map the TestLink case to the written test.
For every TestLink step, classify coverage as one of:
- `Covered` — the test clearly performs the step and verifies the expected result
- `Partial` — the test performs the step but misses all or part of the required verification
- `Missing` — the step or expected result is not covered
- `Unclear` — likely covered indirectly, but the assertion path cannot be confirmed from the code
Also assess preconditions:
- fully represented
- partially represented
- missing
### Step 5 — Produce Review Findings
Output findings focused on concrete gaps.
Template:
```md
## TestLink Coverage Check
Case: <external_id or id> — <title>
Source test: <file or symbol>
### Coverage Summary
- Preconditions: covered/partial/missing
- Steps covered: X/Y
- Partial: N
- Missing: N
- Unclear: N
### Coverage Matrix
1. Step <N>: <short action>
- expected: <short expected result>
- status: Covered | Partial | Missing | Unclear
- evidence: <test function / assertion / helper>
### Gaps
1. <gap title>
- why it matters: ...
- recommended fix: ...
- safe to auto-apply: yes/no
```
## Review Guidance
- Treat `Missing` and `Partial` coverage as review findings
- Escalate to `Critical` when a missing check can hide a regression in the core scenario
- Escalate to `Important` when the flow exists but the expected result is not asserted
- Put naming-only or traceability-only improvements into `Optional` unless they block reliable mapping to TestLink
Do not edit files in this skill. It only produces coverage analysis for the proposal stage.