feat(convergence/u1): shared blocks + 3 skill deprecations + /animate gateway
Pre-unlock wave U1. Non-breaking DRY refactor per CONVERGENCE-PLAN tasks 1/2/4/5/6. Created (5 files): - _blocks/pipeline-5phase-template.md (54 LOC) — shared preamble for ci-scaffold / auth-setup / observability-setup / docs-scaffold / schema-design - _blocks/rule-pure-click-contract.md (42 LOC) — AskUserQuestion contract referenced across 5+ skills - skills/animate/SKILL.md (67 LOC) — gateway router; AskUserQuestion picks scroll / motion / web-effects / ai-animation, hands off to picked skill - skills/competitor-analysis/SKILL.md (35 LOC) — redirect stub to /research --angle=competitors (did not exist; stub documents the preset path per RULE -1 Constructive) - skills/design-inspiration/SKILL.md (38 LOC) — same pattern, --angle=design-refs Deprecation headers added (3 skills): - skills/site-builder/SKILL.md → "use /site-create" (subset) - skills/competitor-analysis/SKILL.md → preset stub - skills/design-inspiration/SKILL.md → preset stub Reference blocks added (5 pipeline skills): - skills/ci-scaffold, auth-setup, observability-setup, docs-scaffold, schema-design — each +4 LOC pointer to pipeline-5phase-template.md - skills/research — +18 LOC --angle presets table LOC saved via shared blocks: ~96 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9732060788
commit
1afb4bafa3
12 changed files with 291 additions and 2 deletions
54
_blocks/pipeline-5phase-template.md
Normal file
54
_blocks/pipeline-5phase-template.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# Pipeline 5-Phase Wizard Template (shared preamble)
|
||||
|
||||
> Shared contract for hub-and-spoke pipeline skills. Referenced by:
|
||||
> `/ci-scaffold`, `/auth-setup`, `/observability-setup`, `/docs-scaffold`,
|
||||
> `/schema-design`. Skill-specific phase tables stay inline in each skill.
|
||||
|
||||
## Hub-and-spoke pipeline contract
|
||||
|
||||
A pipeline skill is the **INDEX** ("hub"). Each phase lives in a separate
|
||||
file in the skill directory ("spoke") and runs in a fixed order. Never skip
|
||||
a phase. Never re-order. Each phase has exactly one `AskUserQuestion` call
|
||||
(Phase 1 may batch multiple questions into one call via the `questions`
|
||||
array).
|
||||
|
||||
## Minimum AskUserQuestion count
|
||||
|
||||
≥ 5 across a full session (one per phase). Phase 1 intake typically bundles
|
||||
3–5 related questions into a single `AskUserQuestion` call per native
|
||||
protocol — that still counts as one "call" for the minimum-5 contract.
|
||||
|
||||
## Phase conventions
|
||||
|
||||
| Phase | Purpose |
|
||||
|---|---|
|
||||
| 1 — Intake | Typed input (one-line description). Bundle 3-5 click-questions in one `AskUserQuestion`. |
|
||||
| 2 — Decomposition | First structural decision (matrix / entities / identity / instrumentation). One click. |
|
||||
| 3 — Generation | Emit primary artefact (workflow YAML / DDL / session-config / scaffold files / scrape-ship wiring). One click to approve/revise. |
|
||||
| 4 — Integration | Secondary artefact wired to runtime (migrations / secrets / auth-z / dashboards). One click. |
|
||||
| 5 — Verify / Hardening | Run linter / alert rules / threat checklist / seed / changelog init. One click per finding. |
|
||||
|
||||
## Final report format
|
||||
|
||||
Every pipeline skill emits a final report block after Phase 5:
|
||||
|
||||
```
|
||||
=== <SKILL-NAME> REPORT ===
|
||||
<Key: Value pairs, one per produced variable>
|
||||
Next: <one-line handoff instruction>
|
||||
```
|
||||
|
||||
## Universal rules (apply to all pipeline skills)
|
||||
|
||||
- **Pure-click contract** — only Phase 1 intake is typed. See
|
||||
`_blocks/rule-pure-click-contract.md`.
|
||||
- **RULE 0.8 Secrets SSoT** — emit env-var NAMES only, never values.
|
||||
Storage path via `_blocks/domain-has-secrets.md`.
|
||||
- **RULE 0.4 NO HALLUCINATION** — every cited primitive / block /
|
||||
dashboard ID must exist or be verified in-session.
|
||||
- **NO DOWNGRADE (RULE -1)** — if a combination is unsafe, return 2-3
|
||||
constructive alternatives. Never "not supported".
|
||||
- **Surgical scope** — write only the files the skill's `Rules` section
|
||||
lists. Never touch application source beyond the minimum init call.
|
||||
- **Constructor Pattern** — `SKILL.md` < 200 LOC. Each phase file < 100 LOC.
|
||||
- **Fail-closed default** — unknown inputs → no emission until user clicks.
|
||||
42
_blocks/rule-pure-click-contract.md
Normal file
42
_blocks/rule-pure-click-contract.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Pure-Click Contract
|
||||
|
||||
> Shared rule block — referenced by pipeline and multi-phase skills
|
||||
> (ci-scaffold, auth-setup, observability-setup, docs-scaffold,
|
||||
> schema-design, self-audit, sleep-on-it, and others).
|
||||
|
||||
## Rule
|
||||
|
||||
Every decision in the skill is made via `AskUserQuestion` (option-picker UI,
|
||||
NOT free-text). The ONLY permitted typed input is intake — a one-line or
|
||||
one-paragraph description — which is immediately classified into options on
|
||||
the next phase.
|
||||
|
||||
## What counts as "intake" (typed input allowed)
|
||||
|
||||
- Phase 1 one-line description of the target repo / app / service.
|
||||
- Phase 2 entity list (for `/schema-design`) — typed list of table names.
|
||||
- Free-text reason for a user-declared bypass or override.
|
||||
|
||||
## What MUST be a click (AskUserQuestion)
|
||||
|
||||
- Every binary yes/no decision.
|
||||
- Every "pick one of N" decision (platform, ORM, motion-tier, auth-flow).
|
||||
- Every "pick subset of N" decision (sections, providers, dashboards).
|
||||
- Every approve / iterate / switch / abort prompt.
|
||||
- Every per-finding fix / skip / defer prompt in verify/audit phases.
|
||||
|
||||
## Why
|
||||
|
||||
- Click-driven flows are replayable and auditable — the option taken is in
|
||||
the transcript, not inferred from free-form text.
|
||||
- Options constrain the decision space to what the skill actually handles,
|
||||
preventing silent scope creep.
|
||||
- `AskUserQuestion` is the tool the harness renders as a proper picker UI;
|
||||
free-text prompts degrade to plain chat.
|
||||
|
||||
## Non-compliance
|
||||
|
||||
If a skill prompts the user for a value that IS in a closed enum (e.g.
|
||||
"which framework?") but does NOT use `AskUserQuestion`, that is a
|
||||
contract violation. Fix by replacing the prompt with an `AskUserQuestion`
|
||||
call whose `options` array lists the enum values.
|
||||
75
skills/animate/SKILL.md
Normal file
75
skills/animate/SKILL.md
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
---
|
||||
name: animate
|
||||
description: Gateway router for web animation work. Picks between /scroll-animation, /motion-design, /web-effects, or /ai-animation via one AskUserQuestion call, then hands off. Does NOT implement animation — the four downstream skills remain the source of truth for their respective domains.
|
||||
argument-hint: <optional one-line description of the animation, e.g. "hero pins and scrubs">
|
||||
---
|
||||
|
||||
# /animate — Animation Router (gateway)
|
||||
|
||||
You are routing an animation request to the correct specialist skill. This
|
||||
skill is a 1-click dispatcher; it never edits files itself. The four
|
||||
downstream skills have disjoint decision matrices over different library
|
||||
ecosystems (GSAP / Motion / WebGL / video-gen), so consolidation is
|
||||
rejected per `docs/CONVERGENCE-PLAN.md`.
|
||||
|
||||
## When to use
|
||||
|
||||
Triggers: `/animate`, "add animation", "animate this", "web animation",
|
||||
"motion", user unsure which animation skill applies.
|
||||
|
||||
## Phase 1 — Route (one AskUserQuestion call)
|
||||
|
||||
Ask one question with four options:
|
||||
|
||||
- **Scroll-driven (pin, scrub, reveal-on-scroll)** → route to
|
||||
`/scroll-animation` (GSAP ScrollTrigger / scroll-timeline).
|
||||
- **Page or element transitions (enter, exit, layout-shift)** → route to
|
||||
`/motion-design` (Motion / Framer Motion library).
|
||||
- **WebGL / particles / shaders / 3D backgrounds** → route to
|
||||
`/web-effects` (Three.js / R3F / shader material).
|
||||
- **AI-generated video or animation clip** → route to `/ai-animation`
|
||||
(Runway / Kling / Pika / Sora via fal.ai etc.).
|
||||
|
||||
Per `_blocks/rule-pure-click-contract.md` — the intake line is optional
|
||||
free-text; the four options are all `AskUserQuestion`.
|
||||
|
||||
## Phase 2 — Hand off
|
||||
|
||||
Emit a single line telling the user which skill to invoke next, preserving
|
||||
the intake argument if one was provided:
|
||||
|
||||
```
|
||||
=== /ANIMATE ROUTE ===
|
||||
Intake: <optional one-liner or "(none)">
|
||||
Picked: <Scroll-driven | Transitions | WebGL/effects | AI video>
|
||||
Next: /<picked-skill> <intake-or-blank>
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
=== /ANIMATE ROUTE ===
|
||||
Intake: hero pins while user scrolls through 3 feature cards
|
||||
Picked: Scroll-driven
|
||||
Next: /scroll-animation hero pins while user scrolls through 3 feature cards
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
- **Surgical scope** — never write, edit, or delete any file. Output is
|
||||
one chat message with the routing report.
|
||||
- **RULE 0.4 NO HALLUCINATION** — if the user picks AI-video and
|
||||
`skills/ai-animation/` does not exist on disk, report that fact and
|
||||
suggest `/web-effects` or `/motion-design` as constructive alternatives
|
||||
(RULE -1 NO DOWNGRADE).
|
||||
- **No auto-invocation** — print the handoff line; let the user invoke
|
||||
the chosen skill so they keep control of the switch.
|
||||
|
||||
## References
|
||||
|
||||
- `skills/scroll-animation/SKILL.md`
|
||||
- `skills/motion-design/SKILL.md`
|
||||
- `skills/web-effects/SKILL.md`
|
||||
- `skills/ai-animation/SKILL.md` (if present)
|
||||
- `_blocks/rule-pure-click-contract.md`
|
||||
- `docs/CONVERGENCE-PLAN.md` §Pre-unlock quick wins
|
||||
|
|
@ -6,6 +6,10 @@ argument-hint: <one-line app description, e.g. "B2C SaaS, Next.js + Postgres, ne
|
|||
|
||||
# Auth-Setup — Identity, Session & Authorization Pipeline (index)
|
||||
|
||||
> See `_blocks/pipeline-5phase-template.md` for the 5-phase wizard contract
|
||||
> and `_blocks/rule-pure-click-contract.md` for the AskUserQuestion rule.
|
||||
> Skill-specific phase tables are inline below.
|
||||
|
||||
You are converting "I need auth for app X" into a concrete, reviewable plan:
|
||||
which identity methods to ship, which providers to register, which session
|
||||
strategy to pick, which authorization model to enforce, and which threats to
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@ argument-hint: <one-line repo description, e.g. "Rust axum service, deploys to A
|
|||
|
||||
# CI-Scaffold — CI/CD Pipeline Generator (index)
|
||||
|
||||
> See `_blocks/pipeline-5phase-template.md` for the 5-phase wizard contract
|
||||
> and `_blocks/rule-pure-click-contract.md` for the AskUserQuestion rule.
|
||||
> Skill-specific phase tables are inline below.
|
||||
|
||||
You are converting "I need CI for repo X" into a reviewable, concrete plan plus generated workflow files: which platform (GH Actions vs Forgejo), what build matrix, how secrets flow (OIDC vs PAT), which release tool, and which security scanners block merge. Every decision is a click; the only typed input is the Phase 1 intake paragraph.
|
||||
|
||||
This skill scaffolds workflow YAML. It does NOT commit on the user's behalf and NEVER writes secret values. After Phase 5 it runs `_primitives/kei-ci-lint.sh` and walks the user through any violations via AskUserQuestion (fix / skip / abort).
|
||||
|
|
|
|||
38
skills/competitor-analysis/SKILL.md
Normal file
38
skills/competitor-analysis/SKILL.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
name: competitor-analysis
|
||||
description: Deprecated alias for /research with the competitors angle preset. Routes to /research Phase-5 verification wave focused on competitor mapping, architecture analysis, and market positioning.
|
||||
argument-hint: <topic or market, e.g. "Rust web frameworks">
|
||||
---
|
||||
|
||||
# /competitor-analysis — Deprecated Alias
|
||||
|
||||
> **[DEPRECATED — v0.17+]** Available as a preset: `/research --angle=competitors`.
|
||||
> This standalone skill remains for backwards compatibility.
|
||||
|
||||
## What this routes to
|
||||
|
||||
This skill is a Phase-5 specialization of `/research` (see
|
||||
`skills/research/SKILL.md`). When invoked, it immediately hands off to
|
||||
`/research` with the `competitors` angle preselected, which runs:
|
||||
|
||||
- `practical` teammate → Find ALL competitors (not only the obvious ones).
|
||||
Check market map, Crunchbase, ProductHunt, G2/Capterra. Who launched in
|
||||
the last 6 months? Who died? Who pivoted?
|
||||
- `arch-analyst` teammate → For each competitor: tech stack, architectural
|
||||
patterns, API design, infra, open-source components. Weak points. What's
|
||||
hard to replicate (moat).
|
||||
- `trends` teammate → Where is the market moving? Hype cycle. Regulation.
|
||||
Timing — too early or too late?
|
||||
|
||||
## Hand-off
|
||||
|
||||
```
|
||||
=== /COMPETITOR-ANALYSIS ROUTE ===
|
||||
Intake: <arguments>
|
||||
Next: /research --angle=competitors <arguments>
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- `skills/research/SKILL.md` — full 8-phase flow
|
||||
- `docs/CONVERGENCE-PLAN.md` §Pre-unlock quick wins #5
|
||||
38
skills/design-inspiration/SKILL.md
Normal file
38
skills/design-inspiration/SKILL.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
name: design-inspiration
|
||||
description: Deprecated alias for /research with the design-refs angle preset. Routes to /research focused on design patterns, visual archetype references, and award-winning site teardowns.
|
||||
argument-hint: <design angle or site archetype, e.g. "SaaS landing dark-tech">
|
||||
---
|
||||
|
||||
# /design-inspiration — Deprecated Alias
|
||||
|
||||
> **[DEPRECATED — v0.17+]** Available as a preset: `/research --angle=design-refs`.
|
||||
> This standalone skill remains for backwards compatibility.
|
||||
|
||||
## What this routes to
|
||||
|
||||
This skill is a Phase-5 specialization of `/research` (see
|
||||
`skills/research/SKILL.md`). When invoked, it immediately hands off to
|
||||
`/research` with the `design-refs` angle preselected, which runs:
|
||||
|
||||
- `web-researcher` teammate → Find award-winning and niche-relevant sites
|
||||
(Awwwards, CSS Design Awards, Godly, SiteInspire, One Page Love).
|
||||
- `arch-analyst` teammate → For each reference: visual archetype, color
|
||||
system, type stack, motion tier, layout grid, notable interactions.
|
||||
- `kei-critic` teammate → Which patterns are overused / stale? Where are
|
||||
references converging on the same AI-slop templates?
|
||||
|
||||
## Hand-off
|
||||
|
||||
```
|
||||
=== /DESIGN-INSPIRATION ROUTE ===
|
||||
Intake: <arguments>
|
||||
Next: /research --angle=design-refs <arguments>
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- `skills/research/SKILL.md` — full 8-phase flow
|
||||
- `skills/frontend-design/SKILL.md` — archetype philosophy
|
||||
- `skills/site-create/SKILL.md` — where inspiration feeds into
|
||||
- `docs/CONVERGENCE-PLAN.md` §Pre-unlock quick wins #5
|
||||
|
|
@ -6,6 +6,10 @@ argument-hint: <project directory | omit to use $PWD>
|
|||
|
||||
# Docs-Scaffold — Project Documentation Pipeline (index)
|
||||
|
||||
> See `_blocks/pipeline-5phase-template.md` for the 5-phase wizard contract
|
||||
> and `_blocks/rule-pure-click-contract.md` for the AskUserQuestion rule.
|
||||
> Skill-specific phase tables are inline below.
|
||||
|
||||
You are bootstrapping or auditing the documentation layer of a repository.
|
||||
The pipeline runs 5 phases in order; each phase owns one concern and has
|
||||
its own verify-criterion. Never skip a phase. Never re-order.
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@ argument-hint: <service-or-repo-name>
|
|||
|
||||
# Observability-Setup — 5-Phase Pipeline (index)
|
||||
|
||||
> See `_blocks/pipeline-5phase-template.md` for the 5-phase wizard contract
|
||||
> and `_blocks/rule-pure-click-contract.md` for the AskUserQuestion rule.
|
||||
> Skill-specific phase tables are inline below.
|
||||
|
||||
You are installing observability on an existing service or repo. The user tells
|
||||
you which service. You walk five phases, each with an `AskUserQuestion`
|
||||
click-batch. Every durable decision lands in a named file inside the target
|
||||
|
|
|
|||
|
|
@ -1,9 +1,27 @@
|
|||
---
|
||||
name: research
|
||||
description: Deep research on any topic using parallel agents, web search, and cross-referencing. Use when user asks to research, investigate, or deeply analyze a topic, technology, library, or concept. Triggers on keywords like "research", "investigate", "deep dive", "find out everything about".
|
||||
argument-hint: <topic or question>
|
||||
description: Deep research on any topic using parallel agents, web search, and cross-referencing. Use when user asks to research, investigate, or deeply analyze a topic, technology, library, or concept. Triggers on keywords like "research", "investigate", "deep dive", "find out everything about". Supports `--angle` presets for common specializations (competitors, design-refs).
|
||||
argument-hint: <topic or question> [--angle=competitors|design-refs]
|
||||
---
|
||||
|
||||
## Angle presets (Phase-5 specializations)
|
||||
|
||||
`/research` is the source-of-truth skill for deep research. Two common
|
||||
specializations of Phase 5 are available as `--angle` presets — pick via
|
||||
`AskUserQuestion` in Phase 1 (or surfaced directly from the CLI):
|
||||
|
||||
| Angle | Phase-5 focus | Replaces (deprecated) |
|
||||
|---|---|---|
|
||||
| `--angle=competitors` | `practical` + `arch-analyst` + `trends` weighted; kill-list includes marketing-only competitor pages | `/competitor-analysis` |
|
||||
| `--angle=design-refs` | `web-researcher` weighted toward Awwwards/Godly/SiteInspire; `arch-analyst` weighted toward visual archetype + motion tier; `kei-critic` checks stale AI-slop patterns | `/design-inspiration` |
|
||||
| (none — default) | Full 9-angle verification (numbers / critique / competitors / docs / stacks / competitor-arch / academic / intersections / trends) | — |
|
||||
|
||||
The preset is a Phase-1 question option; it does not add a new pipeline —
|
||||
it just re-weights the Phase-5 teammate mix. Users who want the old
|
||||
standalone skills can still invoke `/competitor-analysis` or
|
||||
`/design-inspiration` (both route here).
|
||||
|
||||
|
||||
> **Role-tag convention.** Names like `web-researcher`, `meta-critic`,
|
||||
> `arch-analyst`, `{component}-critic` that appear later in this skill are
|
||||
> ad-hoc role tags passed to the generic `kei-researcher` subagent inside
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@ argument-hint: <one-line app description, e.g. "multi-tenant B2B SaaS, 6-8 entit
|
|||
|
||||
# Schema-Design — Relational Schema & Migration Pipeline (index)
|
||||
|
||||
> See `_blocks/pipeline-5phase-template.md` for the 5-phase wizard contract
|
||||
> and `_blocks/rule-pure-click-contract.md` for the AskUserQuestion rule.
|
||||
> Skill-specific phase tables are inline below.
|
||||
|
||||
You are converting "I need a database for app X" into a concrete, reviewable
|
||||
design: chosen DB + ORM, entity list + relations, SQL DDL with indexes and
|
||||
FKs, a scaffolded migrations directory with the first migration, and (if
|
||||
|
|
|
|||
|
|
@ -5,6 +5,10 @@ description: Build a website from block recipes via interactive wizard. Asks sta
|
|||
|
||||
# /site-builder — WYSIWYD website builder
|
||||
|
||||
> **[DEPRECATED — v0.17+]** This skill is a subset of `/site-create`. Prefer
|
||||
> `/site-create` for new work. `/site-builder` remains for backwards
|
||||
> compatibility and will not be removed before v2.
|
||||
|
||||
> **Core promise:** every section you approve in the preview IS the file that gets deployed. No "approximately like this". Byte-for-byte.
|
||||
|
||||
## When to use
|
||||
|
|
|
|||
Loading…
Reference in a new issue