Skip to content
Back to skills

Test Catalog

ASecurity

Add or audit a Perldoc documentation header on an OSADO test module following the test catalog standard. Use when a user asks to "add header", "document", or "add catalog header" to a Perl test module.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 26, 2026
toolsgobashdocumentation

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 26, 2026

npx -y skills add mpagot/os-autoinst-distri-opensuse-skills --skill test-catalog --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Test Catalog?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Test Catalog
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mpagot-test-catalog/badge)](https://www.skillsdirectory.com/skills/mpagot-test-catalog)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: test-catalog
description: Add or audit a Perldoc documentation header on an OSADO test module following the test catalog standard. Use when a user asks to "add header", "document", or "add catalog header" to a Perl test module.
---

<instructions>
You are an expert in openQA test module documentation. Your goal is to ensure the provided Perl module has a correct Perldoc header following the test catalog documentation standard.

**Process:**

1.  **Identify File**: The user should have provided a filename (e.g., `tests/console/foo.pm`). If not, ask for it. Verify the file exists.
2.  **Analyze File**: Read the content of the target file (`read_file`).
      a. Understand its purpose to generate a "Summary" (1 line) and a "Description" (detailed).
      b. Summary could be already available as perl comment at the file beginning: reuse it for the perldoc.
      c. Identify used openQA variables searching for get_var, get_required_var or check_var.
      d. Explore dependency, look for called methods that are imported using `use` and are implemented in files in `lib/` folder.
3.  **Detect Maintainer**: Run the maintainer detection script:
    ```bash
    .gemini/skills/test-catalog/scripts/maintainer-detect.sh <path_to_file>
    ```
    If it exits 0, use the stdout value. If it exits 1, ask the user for the maintainer in format `Team Name <email@domain>`.
4.  **Load Template**: Read the header template from `assets/template.md`.
5.  **Construct Header**:
    *   **Copyright/License**: Keep as is.
    *   **Summary**: Insert your generated 1-line summary.
    *   **Maintainer**: Use the value from step 3. Ensure both the comment line `# Maintainer: <VALUE>` and the POD section `=head1 MAINTAINER` with the same value are present.
    *   **NAME**: Format as `[directory]/[filename].pm - [Short Description]`. The directory is relative to `tests/` (e.g., `console/foo.pm - Frobnicate the bar`).
    *   **DESCRIPTION**: Insert your generated detailed description. Ensure you list primary tasks as bullet points.
    *   **SETTINGS**:
        *   List all identified variables (from step 2c) using the `=item B<VAR_NAME>` format inside the `=over` / `=back` block.
        *   Provide a brief description for each variable based on its usage in the code.
        *   If the code implies a default value (e.g., `get_var('FOO', 0)`), mention it (e.g., "Defaults to 0.").
        *   If *no* variables are used, replace the entire `=over ... =back` block with: "This module does not require any specific configuration variables for its core functionality."
        *   Please also mention settings used in the used lib/ functions
6.  **Apply Header**:
    *   Check if the file already has a header.
    *   If it has a partial/incorrect header, replace it.
    *   If it has no header, prepend the new header to the top of the file.
    *   **Important**: Use `read_file` to ensure you don't overwrite code. Use `write_file` with the full content (header + original code) to apply changes.
7.  **Verify**: Run the audit script on the file:
    ```bash
    .gemini/skills/test-catalog/scripts/audit.sh <path_to_file>
    ```
    Additionally, perform project-standard verification:
    *   Check metadata (Summary, Maintainer, Copyright): `tools/check_metadata <path_to_file>`
    *   Check POD whitespace: `make test_pod_whitespace_rule`
    *   Check for POD errors: `perldoc -T -D <path_to_file>` (Verify that the output does not contain a "POD ERRORS" section)

8.  **Refine**: If the audit script fails (returns exit code 1) or any of the checks above show issues, read the output, fix the header in the file, and re-run step 7 until it passes.

**Rules:**
*   Do NOT modify the actual Perl code logic, only the documentation header.
*   The `NAME` section must include the directory relative to `tests/`.
*   The Maintainer value must be consistent between the comment line and the POD section.
</instructions>

Files in this skill

  • SKILL.md3.9 KB
  • assets/template.md584 B
  • scripts/audit.sh6.3 KB
  • scripts/maintainer-detect.sh2.4 KB
  • scripts/maintainers.map561 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.