toolkit skill reference detect.md
3.9 kB · 70 lines
Markdown
at main

tilde-style: detect #

Scan for anti-patterns from the tilde.style list. Deterministic — no generation, just checks.

Prefer wiggle detect when it's available #

If this project has a wiggle binary built (a wiggle executable at the project root, or a tools/cmd/wiggle directory — check for either before falling back to a manual read), run wiggle detect first. It implements the deterministic subset of this checklist — AP-04, AP-05, AP-06, AP-07, G-03, G-04, G-07 — as a real static-analysis tool (golang.org/x/net/html + github.com/tdewolff/parse/v2/css, not regex), following the same styles/<name>/style.css convention this skill already prescribes for any project, not something specific to one site. It will not exist in every project this skill is used on — it originated in, and is currently most complete for, tilde.style's own repo — but check for it before doing these checks by hand. Whatever it doesn't cover (platform aesthetics, register collapse, dashboard-on-a-garden-site, and the rest below marked as needing judgment) still needs a manual read.

Anti-pattern checklist #

For each item, report: found / not found / not applicable. If found, give the line or element and the correction.

Universal (all tilde.style projects) #

# Anti-pattern Signal to look for
AP-01 Platform aesthetics imported wholesale Substack-style wide-margin serif with nothing else; Notion toggles; Linear dark chrome
AP-02 AI-palette with no metaphor anchor Purple gradients, slate+teal, glassmorphism without a grounding reference
AP-03 Conversational UI as the only surface Single <input> prompt as entire UI with no other navigation or spatial affordance
AP-04 Scale-first vocabulary Component names: feed, engagement, conversion, growth, metrics
AP-05 Authorless generation No DESIGN.md or style.md; no design intention on record
AP-06 Metaphor abandonment card, button, avatar as primary component names when a metaphor is active
AP-07 Motion without a still state animation or transition without @media (prefers-reduced-motion: reduce) counterpart
AP-08 Surveillance-shaped defaults Tracking pixels, engagement dashboard, A/B split on every interaction

Gardening-specific (when Gardening style is active) #

# Anti-pattern Signal to look for
G-01 Dashboard on a garden site Data table, metric grid, or KPI card in the Pond UX or Garden UX layer
G-02 Traffic-light health states Red/green status instead of opacity-based health pills
G-03 Fast snap animations transition-duration or animation-duration below .15s
G-04 Technology-named components chat_bubble, rag_result, embed_vector, message instead of metaphor names
G-05 Register collapse Status pills styled like pond bubbles; digest layer styled like chat layer
G-06 Single-mode dark-only No Teich-Morgen (light) default; dark mode only
G-07 Raw hex instead of tokens Hardcoded #2d6a4f instead of var(--pond-mid)

Reporting format #

AP-07 FOUND: `welcome-fade` animation has no prefers-reduced-motion counterpart.
  File: src/chat.css, line 42
  Fix: wrap in @media (prefers-reduced-motion: no-preference) { ... } and add:
       @media (prefers-reduced-motion: reduce) { .welcome-fade { animation: none; opacity: 1; } }

G-04 FOUND: class name `message-bubble` on main chat turn element.
  File: src/chat.html, line 88
  Fix: rename to `lernhappen` (knowledge surfacing from the pond) or `stone` (user message dropped in)

AP-05 FOUND: No DESIGN.md or style.md present.
  Fix: run /tilde-style init

What detect does NOT check #

  • Visual quality (run tend for metaphor-match review)
  • Contrast ratios (use impeccable's audit for a11y)
  • Whether the design is good (no tool can tell you that)