/** * AgentSkills.io spec-compliance detection for Claude skills. * * Claude is a large superset of the AgentSkills.io spec. a16n's IR is * spec-shaped, so any Claude-only feature is a portability hazard at ingest — * regardless of the destination harness. This module observes (never mutates) * a parsed SKILL.md and reports the non-spec features it uses. * * Scope is deliberately narrow: only features that are BOTH outside the spec * AND unmodelled by a16n's IR, so their runtime behavior is lost on ingest. * `paths` and `disable-model-invocation` are non-spec but modelled, so they are * not reported. `hooks` is excluded too — skills declaring hooks are skipped * outright before detection runs (see the disposition rule in `discover.ts`). * * Every feature here must be able to trigger a warning on its own. Reporting a * loss is this module's job; cataloguing every construct that depends on that * loss is linting the author's file, which is not. That rule is why `$1` and * `$name` are absent despite being real Claude features: neither can occur * without `$ARGUMENTS`, `arguments:`, or `argument-hint:` already reporting it. */ /** A Claude feature that is outside the AgentSkills.io spec and unmodelled by a16n's IR. */ export interface NonSpecFeature { /** Stable identifier, used to pin test coverage to this list. */ id: string; /** Human-readable name, as it appears in the advisory warning. */ label: string; } /** * Every reportable non-spec feature, in the order detections are reported. * * Single source of truth: the detector, its tests, and the plugin README all * derive from this list rather than restating it. */ export declare const NON_SPEC_FEATURES: NonSpecFeature[]; /** * Detect the non-spec features used by a Claude skill. * * @param frontmatter - Parsed SKILL.md frontmatter, as produced by gray-matter * @param body - SKILL.md body content * @returns Labels of detected features, deduplicated, in `NON_SPEC_FEATURES` order */ export declare function detectNonSpecFeatures(frontmatter: Record, body: string): string[]; //# sourceMappingURL=spec-compliance.d.ts.map