diff --git a/README.md b/README.md index c8e81efc..dde3cfc3 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ AI agents skip steps. Harnesses have a second problem: given only a skill list, they do not route eagerly enough, or correctly enough. Good skills sit unused. So this toolkit connects the skills, agents, and workflows we want directly into the harness, automatically. You don't have to understand what is here. Say what you want in plain English and you get all the value we have put into it: the right specialist with the right methodology, behind gates that demand exit codes, not assertions. -44 domain agents, 120 workflow skills, 86 hooks, 129 scripts. Agents carry knowledge, skills enforce methodology, hooks block incomplete work, scripts handle determinism. +44 domain agents, 119 workflow skills, 86 hooks, 129 scripts. Agents carry knowledge, skills enforce methodology, hooks block incomplete work, scripts handle determinism. Works across Claude Code (`/do`), Codex (`$do`), Factory (`/do`), Reasonix (`/do`). diff --git a/agents/typescript-frontend-engineer.md b/agents/typescript-frontend-engineer.md index e46f587a..f7a8e482 100644 --- a/agents/typescript-frontend-engineer.md +++ b/agents/typescript-frontend-engineer.md @@ -133,7 +133,7 @@ Load [typescript-frontend-engineer/references/engineering-rules.md](typescript-f | ViewTransition, page animation, shared element, navigation animation, view transition | `react-view-transitions.md` | Routes to the matching deep reference | | output format, errors, preferred patterns, anti-rationalization, hard boundaries, blockers, phases, death-loop | `engineering-rules.md` | Routes to the matching deep reference | | security, auth, XSS, CSRF, SSRF, Server Action auth, middleware bypass, or any vulnerability-related code | `nextjs-security.md` | Secure implementation patterns for Next.js and React | -| text/headline/label/microcopy animation | `skills/frontend/text-animation/references/roll-text.md` | Zero-npm roll/slot text pattern: standalone demo, extraction guide, knobs | +| text/headline/label/microcopy animation | `skills/frontend/distinctive-frontend-design/references/roll-text.md` | Zero-npm roll/slot text pattern: standalone demo, extraction guide, knobs | ## References diff --git a/agents/ui-design-engineer.md b/agents/ui-design-engineer.md index 6f05595f..6d8d26d5 100644 --- a/agents/ui-design-engineer.md +++ b/agents/ui-design-engineer.md @@ -156,7 +156,7 @@ Uses the **Implementation Schema**: ANALYZE (surface type, narrative brief, cont | animation, Framer Motion, transition, reduced motion, exit, AnimatePresence | `animation-patterns.md` | Framer Motion, CSS transitions, prefers-reduced-motion, exit animations, AnimatePresence, micro-interactions | | interaction states, hover, focus, disabled, loading, active, pressed | [interaction-state-coverage.md](ui-design-engineer/references/interaction-state-coverage.md) | 6-state matrix, transition timing bounds, element-by-element checklist | | AI slop, generic UI, AI-generated look, template look, default styling | [ai-slop-detection.md](ui-design-engineer/references/ai-slop-detection.md) | Purposeful gradients, contextual fonts and colors, spacing scale rules | -| text/headline/label/microcopy animation | `skills/frontend/text-animation/references/roll-text.md` | Zero-npm roll/slot text pattern: standalone demo, extraction guide, knobs | +| text/headline/label/microcopy animation | `skills/frontend/distinctive-frontend-design/references/roll-text.md` | Zero-npm roll/slot text pattern: standalone demo, extraction guide, knobs | ## Error Handling diff --git a/docs/docs-audit.md b/docs/docs-audit.md index 206365d8..2ac1a84a 100644 --- a/docs/docs-audit.md +++ b/docs/docs-audit.md @@ -16,7 +16,7 @@ Work order for follow-up PRs. Covers every `docs/` file outside the value-clarit | `what-didnt-work.md` | Future sessions, maintainers | Negative-results registry: failed experiments with evidence and decisions | None. Load-bearing for evidence-gated evolution; format is enforced and queryable. | keep | | `QUICKSTART.md` | New users | 30-second start: install, `/do`, mental model | Duplicates start-here.md (install, entry-point table, first commands, verify steps). No inbound links from README or any other doc; orphaned. Two starts confuse the funnel. | merge-into-start-here.md, then retire | | `REFERENCE.md` | Users wanting the full command list | "Everything in one place. Scan in 2 minutes." | Hand-maintained catalog; drifts from `INDEX.json` truth as components land. Only inbound link is QUICKSTART.md (itself a retire candidate). | rewrite: generate from `scripts/routing-manifest.py`; absorb QUICKSTART's "want the full list" pointer | -| `skills.md` | Users browsing the skill catalog | Full catalog of 120 skills by category | Hand-maintained; same drift risk as REFERENCE.md. README links it, so it must stay accurate. | rewrite: generate via `scripts/generate-skill-index.py` output (script, not prose pass) | +| `skills.md` | Users browsing the skill catalog | Full catalog of 119 skills by category | Hand-maintained; same drift risk as REFERENCE.md. README links it, so it must stay accurate. | rewrite: generate via `scripts/generate-skill-index.py` output (script, not prose pass) | | `for-claude-code.md` | LLMs operating in the repo | Machine-dense inventory: paths, schemas, conventions | Fit for purpose; value framing would be wasted on a machine audience. Minor: repo map lists `~/private-skills/` inside the repo tree, which misstates its location. | keep (fix the one map line in a follow-up) | | `for-linkedin.md` | Humans who enjoy the joke | Parody of AI-influencer launch posts | The AI patterns are the content. De-AI editing or value rewriting would destroy the parody. Counts (44/124/83) currently match validator truth. | keep | | `CITATIONS.md` | Maintainers | Provenance of patterns and prior art | None. Low traffic but cheap to keep and useful for "why is it built this way". | keep | diff --git a/docs/for-knowledge-workers.md b/docs/for-knowledge-workers.md index c72b9564..40b083a6 100644 --- a/docs/for-knowledge-workers.md +++ b/docs/for-knowledge-workers.md @@ -8,7 +8,7 @@ read_when: ## What This Gives You -You describe work in plain English. The system routes it to the right pipeline, with quality checks built in. 120 skills behind a single command, and you never need to know which one fired. +You describe work in plain English. The system routes it to the right pipeline, with quality checks built in. 119 skills behind a single command, and you never need to know which one fired. ## Interface diff --git a/docs/for-linkedin.md b/docs/for-linkedin.md index d0faf5e2..41d6a0dc 100644 --- a/docs/for-linkedin.md +++ b/docs/for-linkedin.md @@ -75,7 +75,7 @@ A year of daily use on real work. Finding gaps, filling them, watching the syste The result: - 44 domain specialist agents across languages, infrastructure, review, research, content -- 120 workflow skills covering everything from TDD to article writing to Reddit moderation +- 119 workflow skills covering everything from TDD to article writing to Reddit moderation - 83 lifecycle hooks that fire at session boundaries to inject context, capture learnings, enforce gates - A learning database that tracks patterns and graduates them into agent behavior - Parallel review pipelines that catch issues before they reach production diff --git a/scripts/migrate-skills-to-folders.py b/scripts/migrate-skills-to-folders.py index b9bead31..a224e125 100755 --- a/scripts/migrate-skills-to-folders.py +++ b/scripts/migrate-skills-to-folders.py @@ -65,7 +65,6 @@ # frontend/ "distinctive-frontend-design": "frontend", "frontend-slides": "frontend", - "text-animation": "frontend", "threejs-builder": "frontend", "webgl-card-effects": "frontend", # game/ diff --git a/skills/frontend/text-animation/SKILL.md b/skills/frontend/text-animation/SKILL.md deleted file mode 100644 index 86457458..00000000 --- a/skills/frontend/text-animation/SKILL.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -name: text-animation -promoted_to: distinctive-frontend-design -description: "Dependency-free kinetic typography: roll/slot text, reveals, typewriter, crossfade." -agent: typescript-frontend-engineer -user-invocable: false -allowed-tools: - - Read - - Write - - Bash - - Grep - - Glob - - Edit -routing: - triggers: - - text animation - - kinetic typography - - slot machine text - - animated headline - - rolling label - - rolling counter - pairs_with: - - html-artifact - - distinctive-frontend-design - complexity: Medium - category: frontend ---- - -# Text Animation Skill - -## Overview - -Animates text in HTML artifacts with zero runtime dependencies: per-character roll/slot transitions, split-letter reveals, typewriter, and crossfade swaps. Every pattern is vanilla JS + CSS, copied inline into the artifact and adapted to its content. - -## Iron Rule: Zero npm - -No npm packages, no CDN scripts, no build step, no external assets, ever. Every animation ships as inline ` - - -
-

- - -
- - - -``` - -## Extraction guide (for embedding in an artifact) - -1. Copy the three CSS rules under "Roll-text core" into the artifact's ` - -``` - -Usage: `revealText(document.querySelector('h1'))`. For scroll-triggered reveals, call it from an `IntersectionObserver` callback (see html-artifact `scrollytelling-patterns.md`). - -## 2. Typewriter - -Characters appear one at a time with a blinking caret. Use for terminal-style output or narrative emphasis. Returns a cancel function so a new run can interrupt the old. - -```html - - -``` - -Usage: `var stop = typeText(el, 'Booting...'); /* later */ stop();`. With `speed = 0` the interval still fires immediately, so reduced-motion users get near-instant text. - -## 3. Crossfade swap - -Old text fades out, new text fades in with a slight vertical drift. Use when whole phrases change (status lines, tab labels) and per-character motion would be noise. - -```html - - -``` - -Usage: `swapText(statusEl, 'Saved')`. Interruption-safe enough for status lines: a second call before `transitionend` re-adds `is-out` and the newest `next` wins because each call registers a fresh listener — if calls can arrive faster than 200ms, debounce them. - -## Choosing a pattern - -| Intent | Pattern | -|---|---| -| String-to-string transition, counters, labels | roll-text (see `roll-text.md`) | -| First-paint or on-scroll headline entrance | Split-letter reveal | -| Terminal output, narrative pacing | Typewriter | -| Phrase swaps where motion should stay quiet | Crossfade swap | diff --git a/skills/meta/html-artifact/SKILL.md b/skills/meta/html-artifact/SKILL.md index 32ce177e..ad14aa51 100644 --- a/skills/meta/html-artifact/SKILL.md +++ b/skills/meta/html-artifact/SKILL.md @@ -360,7 +360,7 @@ See `references/pptx-export.md` for the full layout table, THEME dict, CLI refer | Request mentions pptx, .pptx, powerpoint, editable deck, hand-off, corporate template | `references/pptx-export.md` | Phase 7 trigger conditions, layout types, THEME dict, CLI reference, failure modes | | Shape = `diagram` OR request contains "SVG", "architecture diagram", "flowchart", "sequence diagram" | `references/diagram-layering.md` | SVG layer order, masking rect technique, semantic color system for dark-theme diagrams | | Shape = `data-viz` OR request contains "infographic", "layout", "visualize data", "chart type" | `references/infographic-layouts.md` | 21 layout types with content-type pairings and 22 visual styles | -| Request mentions animated text, rolling/slot text, kinetic headline, typewriter | `../../frontend/text-animation/references/roll-text.md`, `../../frontend/text-animation/references/text-animation-patterns.md` | Zero-npm roll/slot text plus reveal, typewriter, crossfade patterns to inline | +| Request mentions animated text, rolling/slot text, kinetic headline, typewriter | `../../frontend/distinctive-frontend-design/references/roll-text.md`, `../../frontend/distinctive-frontend-design/references/text-animation-patterns.md` | Zero-npm roll/slot text plus reveal, typewriter, crossfade patterns to inline | ---