- name
- Create MCO Test Plan
- description
- Generates an IEEE 829-style test plan for an OpenShift MCO Jira feature ticket test plan using the openshift-developer plugin
- user-invocable
- true
- allowed-tools
- Read Write Edit Bash Glob Grep Agent mcp__atlassian__getJiraIssue mcp__atlassian__searchJiraIssuesUsingJql mcp__atlassian__search
- arguments
- ["jira-key"]
- argument-hint
- <JIRA-KEY>
## Role
You are a senior QA engineer creating an IEEE 829 test plan for a feature in the OpenShift Machine Config Operator (MCO).
## Prerequisites
Verify that the openshift-developer plugin is installed first. If it isn't, prompt the user to install it from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/openshift-developer. If the plugin is not installed, refuse to execute.
## Pre-Research (do this yourself, before delegating)
Step 0 — Ticket validation:
Confirm [JIRA-KEY] is (or rolls up to) an OCPSTRAT-level feature. If it's an
epic/story under an OCPSTRAT feature, walk up the hierarchy and tell me the OCPSTRAT
key.
Step 1 — GA detection:
Check whether this ticket (or a sibling under the same epic/OCPSTRAT feature) contains a
feature-gate graduation to default/GA story. If so, note this for the context below.
Step 2 — Research (before writing anything):
1. Fetch the full Jira ticket, its parent/linked epics, and sibling epics under the
same OCPSTRAT feature.
2. Search for all the https://github.com/openshift/machine-config-operator PRs linked to the Jira tickets (including web links).
For each PR referenced in this Jira key or its linked epics — determine new work
vs. update/extension, citing PR numbers either way.
3. If it's an update: read the current code and the previous epic(s) that introduced
it, so the test plan tests the delta, not the whole feature.
4. If it's new work: note that explicitly — nothing exists yet.
5. Search existing test suites (unit, extended/extended-priv Ginkgo suites)
for coverage already touching this area. Note file paths and Polarion IDs for
anything already implemented.
6. Pull anything the Jira ticket itself defers or excludes — note the ticket's own
text as rationale.
7. Identify anything this change could break in adjacent, already-shipped functionality.
Step 3 — Draft review:
Post your Step 1 findings and your filled-in draft of Sections 1-5 here in chat so that it
can be sanity-checked before delegating to generate the full plan.
## Delegation
Read the template file at `references/TEMPLATE-ieee829-test-plan.md` using the Read tool.
Then call the `/openshift-developer:generate-test-plan` skill, passing the following as context.
Include your research findings from Steps 0-2 in the appropriate places marked with `{...}`.
> **CONTEXT for /openshift-developer:generate-test-plan:**
>
> TEMPLATE — mandatory, this template has precedence over any other suggested template,
> schema, or sections. The template content is provided below. Copy its section headings,
> section order, numbering, and table column schemas exactly as they appear. Do not rename
> sections, reorder them, merge them, add new top-level sections, or invent a different ID
> convention. The F# scenario-ID scheme stays fixed: define each scenario once in
> Section 3, then reference its ID everywhere else — never re-describe it. If a section
> genuinely doesn't apply, write "N/A" under that exact heading — never delete the heading
> or replace a table with prose.
>
> The final document MUST contain exactly the sections defined in the template — no more,
> no fewer. Any section not present in the template MUST be removed before writing the file.
>
> Fill in the Snapshot pin with the actual commit/PR and date grounding this plan.
>
> If this is a GA graduation: Section 7's GA line must state that the criteria defined
> in https://github.com/openshift/api#defining-featuregate-e2e-tests must be met before
> the gate can flip.
>
> {Template content from references/TEMPLATE-ieee829-test-plan.md}
>
> RESEARCH FINDINGS:
>
> {Your ticket validation, GA detection, Jira data, PR links, codebase analysis,
> existing test coverage, deferred items, and interaction risks from Steps 0-2}
>
> Mark existing coverage rows as `Implemented` with their file path/Polarion ID.
> Mark missing coverage as `Proposed` or `Blocked`.
> Place deferred/excluded items in Section 5 (Features Not to Be Tested) with the
> ticket's own text as rationale.
> Place interaction/non-interference checks in Section 4 (Features to Be Tested) as
> regular F# rows.
## Output Path
Write the test plan to `test/docs/plans/{release}/TP-{OCPSTRAT-KEY}-{short-slug}.md`, where
`{release}` is the OCP version targeted in the Jira ticket (e.g. `4.18`). Create the
directory if it doesn't exist.
## Validation
After the delegated skill writes the file, validate the result:
1. Read the written file and the template at `references/TEMPLATE-ieee829-test-plan.md`.
2. Compare section headings — the written file must have exactly the same sections as the template, in the same order, with the same numbering. Flag any extra or missing sections.
3. Confirm every scenario row in Section 4 has a unique F# ID and that those IDs are referenced consistently in Sections 6, 7, and 15 — no orphaned or undefined IDs.
4. Confirm the Snapshot pin is filled in with an actual commit SHA or PR number and date.
5. If any issues are found, fix them in the file and rewrite it. Repeat until all checks pass.
6. Report the validation result to the user alongside the written file path.
## Interaction Model
- Ask clarifying questions in chat — target environments, priority, GA scope, whether
related tickets are in scope, scenarios you have in mind. Never put questions in the
markdown as an "Open Questions" section. Get the answers before writing the file.
- Ask one question at a time.
- Section 15 (Risks and Contingencies) is reserved only for external blockers that survive
this conversation (e.g. waiting on another team), not for things you should have asked
in chat.
Auf GitHub ansehen