You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add an opt-in instruction-context static-analysis profile to skilllint that consumes a shared/versioned deterministic context model from Skill Lapidary rather than independently reimplementing host loading semantics.
skilllint already owns fast deterministic validation for agent plugins, skills and agents, with explicit rule provenance, severity, adapters, schemas and suppression. Skill Lapidary is developing a richer instruction-context model for repository-wide auditing.
There is a useful overlap, but only for facts that have deterministic falsifiers. skilllint should gain the structural checks while preserving the boundary:
import cycle or configured maximum import depth exceeded
warning
IC007 and IC013 should remain experimental until corpus evaluation demonstrates precision. A rule must not emit a semantic conclusion merely because text looks similar.
UX / configuration
These checks should not silently join the default fast path initially.
preferably, a generated/versioned L4 schema + host-profile artifact and L5 shared fixture corpus;
vendored generated data whose provenance/version is mechanically checked.
#202 L1's Source/Context Python records are an ownership seam inside Lapidary, not yet the cross-repository integration contract. skilllint must not import or vendor Lapidary's internal Tree, Composition, filesystem traversal, or current unversioned CLI JSON shape.
Copy/pasting the discovery implementation is not an acceptable long-term integration because it permits semantic drift between tools.
Non-goals
LLM calls from skilllint.
SQLite audit-store dependency.
HTML semantic audit reports.
Automatic rewriting/consolidation.
Turning recommendations or measurements into hard failures without documented authority/evidence.
Upstream boundary clarification — 2026-09-30
Skill Lapidary #202 was walked through with this consumer before freezing L1. The provider deliberately narrowed L1 to immutable Source/Context records plus source identity. Discovery workspace (Tree), mutable composition construction, filesystem/path policy and serialization remain private/later-slice concerns.
Cross-tool parity should compare L4/L5 structural facts, not Python object identity or Lapidary implementation objects.
skilllint remains free to use its own internal representation after validating the versioned upstream artifact, provided it does not reimplement host semantics.
Outcome
Add an opt-in instruction-context static-analysis profile to skilllint that consumes a shared/versioned deterministic context model from Skill Lapidary rather than independently reimplementing host loading semantics.
Upstream provider issue: https://github.com/Jamie-BitFlight/skill-lapidary/issues/202
Why
skilllint already owns fast deterministic validation for agent plugins, skills and agents, with explicit rule provenance, severity, adapters, schemas and suppression. Skill Lapidary is developing a richer instruction-context model for repository-wide auditing.
There is a useful overlap, but only for facts that have deterministic falsifiers. skilllint should gain the structural checks while preserving the boundary:
The two tools should not independently implement Claude/Codex/AGENTS loading semantics.
Architectural boundary
In scope for skilllint
Mechanically provable facts derived from a versioned effective-context graph:
Out of scope
Do not add rules claiming to determine:
Those remain Skill Lapidary concerns.
Proposed opt-in rule family
Use a dedicated family such as
ICxxx(Instruction Context). Final IDs/severities require normal rule-provenance review.Initial candidate set:
IC007 and IC013 should remain experimental until corpus evaluation demonstrates precision. A rule must not emit a semantic conclusion merely because text looks similar.
UX / configuration
These checks should not silently join the default fast path initially.
Provide an opt-in profile, for example:
{ "analysis": { "instruction-context": { "enabled": true, "hosts": ["claude-code", "codex"], "checks": ["references", "scope", "shadowing", "duplicates", "token-budget"] } } }and/or a CLI surface equivalent to:
skilllint check . --analysis instruction-contextThe exact CLI/config shape should follow current skilllint configuration architecture rather than this illustrative syntax.
Rules must still participate in the existing registry/provenance/severity/suppression/reporting architecture.
Planned slices
S1 — Consumer contract and profile plumbing.
S2 — Graph integrity checks.
S3 — Structural optimization/measurement checks.
S4 — Experimental architectural-smell checks.
S5 — Cross-tool conformance suite.
Acceptance criteria
skilllint checkwhen disabled.Performance requirements
This feature must preserve skilllint's fast-linter role:
Dependency strategy
Do not immediately couple skilllint's release lifecycle to an unpublished Skill Lapidary Python package. Acceptable first integrations include:
#202 L1's
Source/ContextPython records are an ownership seam inside Lapidary, not yet the cross-repository integration contract. skilllint must not import or vendor Lapidary's internalTree,Composition, filesystem traversal, or current unversioned CLI JSON shape.Copy/pasting the discovery implementation is not an acceptable long-term integration because it permits semantic drift between tools.
Non-goals
Upstream boundary clarification — 2026-09-30
Skill Lapidary #202 was walked through with this consumer before freezing L1. The provider deliberately narrowed L1 to immutable
Source/Contextrecords plus source identity. Discovery workspace (Tree), mutable composition construction, filesystem/path policy and serialization remain private/later-slice concerns.Consequences for this issue: