← roadmap

intersight

keep priority P2 effort S wave 2

What it does: A single-skill Claude Code plugin (skill design-analyze) with ZERO MCP servers. It orchestrates a 7-phase pipeline that extracts a website’s design system into W3C DTCG 2025.10 JSON (with intersight:* extensions): Phase 0 preflight (Dembrandt/Playwright dep checks, mandatory fail-closed robots.txt compliance, optional intercache lookup), Phase 1 setup (navigate, SPA-quiescence wait, bot-challenge detection, viewport 1440x900, content hash), Phase 2 Dembrandt CLI baseline (npx dembrandt --dtcg --json-only), Phase 3 DOM/CSS extraction via 7 deterministic JS scripts run through Playwright MCP browser_evaluate (custom properties, colors, typography, spacing, shadows/borders, breakpoints, component inventory), Phase 4 structural (a11y tree), Phase 5 visual (screenshot + Claude vision layout analysis), Phase 6 interaction states (hover/focus, full depth only), Phase 7 synthesis merging all sources into DTCG with a defined precedence (custom-properties primary, Dembrandt for names, computed colors fill gaps). Three depth modes (tokens/standard/full), three output formats (json/markdown/tokens-only), multi-page support, per-URL caching. Philosophy is explicit composition-over-capability and scripts-over-prompts.

Rationale: This is a mature, tightly-scoped composition plugin that already embodies several 2025-2026 frontier patterns rather than lacking them. It registers zero eager MCP tools and consumes peer MCPs (Playwright, intercache) — exactly the answer to the MCP context-bloat backlash. Its core design bet (“scripts over prompts”: deterministic JS extraction islands, LLM reserved for synthesis and vision) is a textbook deterministic-skeleton + LLM-island architecture. The documented --snapshot-mode none discipline (16-40 Playwright calls per run, only one needs the a11y tree, ~70-80% token savings) is precisely the token-economics-as-survival framing the SOTA notes flag as direct ROI. Graceful per-phase degradation with phases_completed tracking is good reliability hygiene. The gaps that exist (schema validation, version drift) are surgical, not architectural — they do not justify modernize or deprecate.

SOTA gap: Schema-conformance is enforced only by prose instructions, not programmatically. The plugin emits JSON claiming $schema: designtokens.org/schemas/2025.10 and a defined token shape, but Phase 7 synthesis is Claude assembling that structure by following markdown — no validator runs against the schema before the file is written. The frontier idea it lacks is grammar-constrained / deterministic structured output (Pre3, IterGen, draft-conditioned decoding; the same family as the StructuredOutput contract): a post-synthesis ajv validation pass against the DTCG 2025.10 schema (and the intersight:* extension shape) would guarantee machine-parseable output without relying on the model never drifting. Secondary gap: no reliability-science framing (stochastic vision + merge with no cross-run determinism check), though that is minor at this plugin’s scope.

Redundancy: No true redundancy. Closest overlap is interbrowse:teardown (a UX-teardown skill that also has a “Design System Analysis” phase) — but teardown’s design analysis is qualitative/prose (Claude describes palette, typography, spacing in words from screenshots), whereas intersight produces deterministic, machine-parseable DTCG tokens from the live DOM. They are complementary: teardown should CONSUME intersight’s structured token output instead of re-deriving palette/typography in prose. interform:distinctive-design is generative/opinionated (how to design distinctively), not extractive — no overlap. tldr-swinton/intermap are code recon, not design extraction. Recommend a one-line cross-reference between teardown and intersight, not a merge.

Actions:

  • Fix version drift: replace the hardcoded tool_version: "0.1.0" in skills/analyze/SKILL.md (2 places: meta and markdown footer) and scripts/extraction/schema.json with the plugin.json version (0.1.5), and update scripts/bump-version.sh to sweep these locations so they never desync again.
  • Add a programmatic schema-validation step at the end of Phase 7 (e.g. ajv against the DTCG 2025.10 schema plus the intersight extension shape) so output is guaranteed machine-parseable rather than prose-assembled — closing the deterministic-structured-output gap; record any validation failures in intersight:meta.warnings.
  • Add a one-line interop note in SKILL.md (and reciprocally suggest for interbrowse:teardown) so teardown consumes intersight’s DTCG output for its design-system phase instead of re-deriving it qualitatively — eliminates the soft overlap.
  • Optional reliability hardening: document/normalize the stochastic surfaces (Claude-vision layout analysis, color-merge precedence) so repeated runs on the same content_hash produce stable token sets — or note expected variance in meta.