oxsecurity/megalinter

implement

Implement a feature, bug fix, or code change in MegaLinter. Use whenever the user asks to add a feature, fix a bug, or make a code change - with or without a prior /design phase.

First seen Aug 3, 2026

Installation

$ npx skills add oxsecurity/megalinter --skill implement

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 Write Edit Bash WebSearch WebFetch
Declared agents claude-code
More metadata
internal
1

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,206 B
  • docs SUMMARY.md 195 B

History

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

SKILL.md

You are a developer working on the MegaLinter project.

Implement the requested changes. If a prior /design conversation exists, follow that specification. Otherwise, derive the implementation plan from the user's request and the existing codebase — explore with Glob/Grep before writing code.

Read .claude/rules/ for the conventions of the area you're touching:

  • descriptors.md — YAML descriptor schema and property coverage
  • python-style.md — Python conventions
  • documentation.md — Zensical markdown rules
  • generated-files.md — what NOT to edit
  • testing.md — test structure and fixtures

Process

  1. Understand what to implement. If /design produced a spec, follow it. Otherwise grep for relevant code and form a clear plan before writing.
  2. Pick the right specialist (prefer delegation when the work fits):

- Authoring/editing descriptors → use the descriptor-expert agent. - Brand-new linter → follow /add-linter. - Linter version bump → follow /update-linter-version. - New flavor → /add-flavor. New reporter → /add-reporter. - CVE / vulnerability → /fix-security-issue.

  1. Descriptor changes:

- Edit megalinter/descriptors/<lang>.megalinter-descriptor.yml. - Maximize property coverage — see the catalog in .claude/agents/descriptor-expert.md. - Always renovate-compatible pin: ``yaml install: dockerfile: - |- # renovate: datasource=pypi depName=tool-name ARG PIPTOOLVERSION=1.2.3 pip: - tool-name==${PIPTOOLVERSION} `` - For new linters, search the internet to gather: rules URL, configuration URL, inline-disable URL, ignore-file URL, SPDX license, IDE extensions, SARIF support, latest version, supported platforms.

  1. Python changes (megalinter/):

- PEP 8 + type hints where possible. - No docstrings on classes/methods. - Imports at the top only — no inline / conditional / try/except ImportError. - Config: megalinter.config.get(requestid, "VAR", default) — never os.environ. - Logging: logging module — never print(). - Custom linter classes extend megalinter.Linter and stay minimal. Override only what YAML can't express. - Reporters extend megalinter.reporters.Reporter with manageactivation() and produce_report(). - No defensive error handling for internal paths; validate only at system boundaries.

  1. Test fixtures: for any change affecting detection or error parsing, add/update files in .automation/test/<testfolder>/. Good file lints clean; bad file triggers clilinterrorsregex.
  2. Never edit generated files:

- linters//Dockerfile, flavors//Dockerfile, flavors//action.yml, flavors//flavor.json. - megalinter/tests/testmegalinter/linters/test.py files with the automatically @generated by .automation/build.py header. - docs/descriptors/. - Schemas under megalinter/descriptors/schemas/. - Change the source (descriptor YAML or .automation/build.py) instead.

  1. Build: after descriptor or build-logic changes, run make megalinter-build. Delegate to the build-runner agent if it gets complex. Never run make megalinter-build-with-doc — docs are owned by auto-update workflows; running it in a PR causes merge conflicts.
  2. Dependencies: after editing pyproject.toml, run uv lock. Prefer descriptor install: blocks for linter-specific runtime deps over editing the core Dockerfile.
  3. CHANGELOG: add a one-line user-facing entry under ## [beta] (master) in repo-root CHANGELOG.md. Write it for end users per .claude/rules/changelog.md — lead with the benefit or required action, no implementation details in user-facing sections. Internal-only changes (refactors, test suite, repo CI, build tooling) go under the Dev or CI sections, where technical detail is fine. Skip for:

- Routine linter version bumps (auto-upgrade workflow owns those). - CVE-ignore entries.

  1. Documentation: improve descriptor metadata (lintertext, linterrules_url, ide, examples) so the auto-generated docs/descriptors/* pages improve. Zensical: blank line after every heading, blank line before/after every list.

Continue iterating until the change is complete. Do not stop to ask whether to continue mid-task.

Important

  • Do not add abstractions, fallbacks, feature flags, or backwards-compatibility shims the change doesn't need.
  • Do not leave half-finished implementations or // removed placeholder comments.
  • Default to no comments — add one only when the WHY is non-obvious.
  • Linters are NOT installed locally. Final validation must happen inside Docker — that's the /test skill's job.

$ARGUMENTS