@felixgeelhaar/cclint
Version:
Catch CLAUDE.md drift before Claude misbehaves. Lints CLAUDE.md, skills, subagents, and hooks for Claude Code projects.
31 lines • 1.33 kB
TypeScript
import type { Rule } from '../domain/Rule.js';
import { ContextFile } from '../domain/ContextFile.js';
import { Violation } from '../domain/Violation.js';
/**
* Validates Claude Code plugin manifests: the plugin descriptor
* (`.claude-plugin/plugin.json`) and the marketplace listing
* (`marketplace.json`).
*
* @remarks
* A malformed manifest silently breaks plugin discovery/installation, so this
* rule checks the invariants Claude Code relies on: parseable JSON, a required
* `name`, a SemVer `version`, well-formed resource path references, and the
* shape of a marketplace's `plugins` array. It is a pure rule — it reasons only
* over the already-read {@link ContextFile} content and performs no IO.
*/
export declare class PluginManifestRule implements Rule {
readonly id = "plugin-manifest";
readonly description = "Validates Claude Code plugin.json and marketplace.json manifests";
appliesTo(file: ContextFile): boolean;
lint(file: ContextFile): Violation[];
private isMarketplace;
private validatePlugin;
private validateMarketplace;
private validateMarketplaceEntry;
private requireName;
private validateVersion;
private validateOptionalString;
private validatePathField;
private validatePathString;
}
//# sourceMappingURL=PluginManifestRule.d.ts.map