Skip to main content

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.

소스 정보

저장소
oxsecurity/megalinter
최근 소스 활동
2026년 8월 31일 18:22
감지된 SKILL.md 언어
영어
스타
2,650
포크
321

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
implement
description
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.
disable-model-invocation
true
allowed-tools
Read Glob Grep Write Edit Bash WebSearch WebFetch
argument-hint
[feature or change to implement]
model
sonnet
metadata
{"internal":true}
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`. 3. **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 PIP_TOOL_VERSION=1.2.3 pip: - tool-name==${PIP_TOOL_VERSION} ``` - 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. 4. **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(request_id, "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 `manage_activation()` and `produce_report()`. - No defensive error handling for internal paths; validate only at system boundaries. 5. **Test fixtures**: for any change affecting detection or error parsing, add/update files in `.automation/test/<test_folder>/`. Good file lints clean; bad file triggers `cli_lint_errors_regex`. 6. **Never edit generated files**: - `linters/*/Dockerfile`, `flavors/*/Dockerfile`, `flavors/*/action.yml`, `flavors/*/flavor.json`. - `megalinter/tests/test_megalinter/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. 7. **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. 8. **Dependencies**: after editing `pyproject.toml`, run `uv lock`. Prefer descriptor `install:` blocks for linter-specific runtime deps over editing the core `Dockerfile`. 9. **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. 10. **Documentation**: improve descriptor metadata (`linter_text`, `linter_rules_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
GitHub에서 보기