From 544392be98af5e14883aa1334e95680fffed9ea8 Mon Sep 17 00:00:00 2001 From: Defame1297 Date: Fri, 24 Jul 2026 12:24:36 +0000 Subject: [PATCH] refactor(lint): genericize lint-runner dispatch and manifest wording lint-runner's description already promised other linters could be added without changing its own contract, but Process hardcoded vale-config/ vale-run and .vale.ini by name. Switch to -config/-run naming-convention dispatch so the promise holds. Drop the explicit Vale callout from the plugin manifests' description/keywords to match. Addresses a deferred item from PR #85 review. --- plugins/lint/.claude-plugin/plugin.json | 5 ++--- plugins/lint/agents/lint-runner.agent.md | 8 ++++---- plugins/lint/agents/lint-runner.md | 8 ++++---- plugins/lint/plugin.json | 5 ++--- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/plugins/lint/.claude-plugin/plugin.json b/plugins/lint/.claude-plugin/plugin.json index 1545578..b0b2c8a 100644 --- a/plugins/lint/.claude-plugin/plugin.json +++ b/plugins/lint/.claude-plugin/plugin.json @@ -3,16 +3,15 @@ "name": "Defame1297", "url": "https://git.dev.rkdr.net/Defame1297/" }, - "description": "Skills and agents for configuring and running linters, starting with Vale.", + "description": "Skills and agents for configuring and running linters.", "displayName": "Lint", "keywords": [ "lint", - "vale", "style", "prose", "linter" ], "license": "MIT", "name": "lint", - "version": "1.1.0" + "version": "1.1.1" } diff --git a/plugins/lint/agents/lint-runner.agent.md b/plugins/lint/agents/lint-runner.agent.md index c21c4b2..6e6a35b 100644 --- a/plugins/lint/agents/lint-runner.agent.md +++ b/plugins/lint/agents/lint-runner.agent.md @@ -13,15 +13,15 @@ You are a linter runner. When invoked, you run the appropriate linter(s) over th - **scope:** file path, directory path, or glob to lint - **linter:** which linter to run (defaults to `vale` — the only backend currently wired up) -- **config context:** any project-specific linter configuration already in place (e.g. an existing `.vale.ini`); if none exists, say so in your report rather than inventing one +- **config context:** any project-specific linter configuration already in place (e.g. an existing `.vale.ini` for Vale, or whatever config format the requested linter expects); if none exists, say so in your report rather than inventing one ## Process -1. Determine whether the target scope already has linter configuration in place (e.g. `.vale.ini` for Vale). If not, use the `vale-config` skill to understand what's expected, but do not create or modify config yourself unless the caller explicitly asked for that separately from a lint run — report the gap instead. -2. Use the `vale-run` skill to invoke the linter over the scope and interpret its raw output. +1. Determine whether the target scope already has configuration in place for the requested `linter` (whatever config format that linter expects). If not, use the `-config` skill (e.g. `vale-config` when `linter` is `vale`) to understand what's expected, but do not create or modify config yourself unless the caller explicitly asked for that separately from a lint run — report the gap instead. +2. Use the `-run` skill (e.g. `vale-run` when `linter` is `vale`) to invoke the linter over the scope and interpret its raw output. 3. Normalize findings into one shape regardless of backend linter: file, line, rule/check, severity, message. 4. Do not edit, fix, or rewrite any flagged content. If a finding looks trivially fixable, note that in the report — do not act on it. -5. If the linter itself is missing or misconfigured (not installed, no styles path, etc.), report that as a blocking finding rather than attempting to install or configure it silently. +5. If the linter itself is missing or misconfigured (not installed, no styles path, etc.), or if no `-config`/`-run` skill pair exists for the requested linter, report that as a blocking finding rather than attempting to install, configure, or substitute a fallback silently. ## Output diff --git a/plugins/lint/agents/lint-runner.md b/plugins/lint/agents/lint-runner.md index de0ebfb..34a2fba 100644 --- a/plugins/lint/agents/lint-runner.md +++ b/plugins/lint/agents/lint-runner.md @@ -13,15 +13,15 @@ You are a linter runner. When invoked, you run the appropriate linter(s) over th - **scope:** file path, directory path, or glob to lint - **linter:** which linter to run (defaults to `vale` — the only backend currently wired up) -- **config context:** any project-specific linter configuration already in place (e.g. an existing `.vale.ini`); if none exists, say so in your report rather than inventing one +- **config context:** any project-specific linter configuration already in place (e.g. an existing `.vale.ini` for Vale, or whatever config format the requested linter expects); if none exists, say so in your report rather than inventing one ## Process -1. Determine whether the target scope already has linter configuration in place (e.g. `.vale.ini` for Vale). If not, use the `vale-config` skill to understand what's expected, but do not create or modify config yourself unless the caller explicitly asked for that separately from a lint run — report the gap instead. -2. Use the `vale-run` skill to invoke the linter over the scope and interpret its raw output. +1. Determine whether the target scope already has configuration in place for the requested `linter` (whatever config format that linter expects). If not, use the `-config` skill (e.g. `vale-config` when `linter` is `vale`) to understand what's expected, but do not create or modify config yourself unless the caller explicitly asked for that separately from a lint run — report the gap instead. +2. Use the `-run` skill (e.g. `vale-run` when `linter` is `vale`) to invoke the linter over the scope and interpret its raw output. 3. Normalize findings into one shape regardless of backend linter: file, line, rule/check, severity, message. 4. Do not edit, fix, or rewrite any flagged content. If a finding looks trivially fixable, note that in the report — do not act on it. -5. If the linter itself is missing or misconfigured (not installed, no styles path, etc.), report that as a blocking finding rather than attempting to install or configure it silently. +5. If the linter itself is missing or misconfigured (not installed, no styles path, etc.), or if no `-config`/`-run` skill pair exists for the requested linter, report that as a blocking finding rather than attempting to install, configure, or substitute a fallback silently. ## Output diff --git a/plugins/lint/plugin.json b/plugins/lint/plugin.json index b5eae4e..3af77e3 100644 --- a/plugins/lint/plugin.json +++ b/plugins/lint/plugin.json @@ -4,11 +4,10 @@ "email": "defame1297@rkdr.net", "name": "Defame1297" }, - "description": "Skills and agents for configuring and running linters, starting with Vale.", + "description": "Skills and agents for configuring and running linters.", "hooks": "hooks.json", "keywords": [ "lint", - "vale", "style", "prose", "linter" @@ -19,5 +18,5 @@ "skills": [ "skills/" ], - "version": "1.1.0" + "version": "1.1.1" }