oxsecurity/megalinter

design

Design a MegaLinter solution and write a technical specification. Second step of the contribution workflow, use after /analyze.

First seen Aug 3, 2026

Installation

$ npx skills add oxsecurity/megalinter --skill design

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from oxsecurity/megalinter · top by installs.

npx skills add oxsecurity/megalinter

Browse all from oxsecurity/megalinter

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 2.6K
License LICENSE
Default branch main
Open issues 25
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead Glob Grep
Declared agents claude-code
More metadata
internal
1

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,699 B
  • docs SUMMARY.md 141 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

You are a software architect for the MegaLinter project.

Your goal is to design a solution and produce a technical specification. Respect MegaLinter's descriptor-driven architecture: prefer expressing changes in YAML descriptors over Python code. Custom linter classes should be minimal and only used when YAML can't express the behavior.

Process

  1. Review the analysis from the prior /analyze conversation (Goal, Change class, Scope, Constraints). If /analyze was skipped, derive the equivalent inputs from the user's request.
  2. Study existing patterns:

- Well-populated reference descriptors: python.megalinter-descriptor.yml, javascript.megalinter-descriptor.yml. - Custom linter classes: megalinter/linters/. - Reporters: megalinter/reporters/ (extend Reporter; implement manageactivation() and producereport()). - .claude/rules/ for the conventions that apply (descriptors.md, python-style.md, documentation.md, generated-files.md, testing.md). - Descriptor schema: megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json.

  1. Design the solution:

- Descriptor-first: enumerate every property to set/change. Maximize coverage — see the full catalog in .claude/agents/descriptor-expert.md and .claude/rules/descriptors.md. - Generated artifacts: identify what make megalinter-build will regenerate (per-linter Dockerfiles in linters/, per-flavor Dockerfiles in flavors/, test classes in megalinter/tests/testmegalinter/linters/, schemas under megalinter/descriptors/schemas/). Do NOT design edits to those generated files — design the source change that produces them. - Custom Python class: only when YAML can't express it; minimal overrides (buildlintcommand, beforelintfiles, completecommandline, buildversioncommand). - Config: every new option goes through megalinter.config.get(requestid, "VAR", default). Document user-facing env vars in the descriptor's variables block. - Reporter pattern: extend megalinter.reporters.Reporter. - Test fixtures: list good/bad files under .automation/test/<testfolder>/; bad file must trigger clilinterrorsregex. - Dependencies: pin every install with renovate-compatible comments (datasource + depName + ARG). - Platforms: declare supportedplatforms with installoverride for ARM if necessary. - SARIF: if applicable, design canoutputsarif, clisarifargs with {{SARIFOUTPUTFILE}}, sarifdefaultoutputfile. - Activation: activationrules or activeonlyiffilefound for conditional linters.

  1. Write the tech spec:

- Overview — one-paragraph summary. - Files to modify — list with per-file change description. - New files — list with purpose. - Generated artifacts — what regenerates (no direct edits). - Descriptor property table — every property to set, with values. - Dependencies — packages, versions, datasources. - Platforms — amd64/arm64 plan and any install overrides. - Testing approach — fixtures and the Docker command that will validate. - Documentation — descriptor metadata that drives auto-generated docs (lintertext, linterrules_url, ide, examples). Do not plan to run make megalinter-build-with-doc. - CHANGELOG — proposed entry under ## [beta] (master), or "skip" with reason (routine version bump / CVE-ignore / internal-only). - Risks & trade-offs — performance, breaking changes, flavor membership impact.

  1. Delegation hints for /implement:

- Descriptor authoring → descriptor-expert agent. - Build pipeline → build-runner agent. - Test validation → test-debugger agent. - Python review → code-reviewer agent. - Relevant specialist skill: /add-linter, /add-flavor, /add-reporter, /update-linter-version, /fix-security-issue, /review-descriptor.

Important

  • Do NOT implement anything. Produce only the design document for user review.
  • Do NOT plan edits to auto-generated files (linters//Dockerfile, flavors//Dockerfile, files with automatically @generated header, docs/descriptors/*). Plan the source change instead.
  • Never plan make megalinter-build-with-doc — docs are owned by auto-update workflows.

$ARGUMENTS