@damiangilgonzalez/harness 1.3.8 → 1.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  [![npm](https://img.shields.io/npm/v/@damiangilgonzalez/harness?color=63d68a&labelColor=12161c&label=npm)](https://www.npmjs.com/package/@damiangilgonzalez/harness)
10
10
  [![downloads](https://img.shields.io/npm/dm/@damiangilgonzalez/harness?color=63d68a&labelColor=12161c&label=downloads)](https://www.npmjs.com/package/@damiangilgonzalez/harness)
11
- [![skills](https://img.shields.io/badge/skills-290-63d68a?labelColor=12161c)](#the-catalog)
11
+ [![skills](https://img.shields.io/badge/skills-291-63d68a?labelColor=12161c)](#the-catalog)
12
12
  [![license](https://img.shields.io/badge/license-MIT-63d68a?labelColor=12161c)](LICENSE)
13
13
  [![stars](https://img.shields.io/github/stars/ericrisco/rsc-harness?color=63d68a&labelColor=12161c)](https://github.com/ericrisco/rsc-harness/stargazers)
14
14
 
@@ -202,7 +202,7 @@ $ rsc onboard
202
202
  ██████╗ ███████╗ ██████╗ ← animated gradient wordmark
203
203
  ██╔══██╗██╔════╝██╔════╝
204
204
  ██████╔╝███████╗██║
205
- 290 skills · one CLI · zero bloat
205
+ 291 skills · one CLI · zero bloat
206
206
 
207
207
  How technical should the conversation be?
208
208
  How much accompaniment do you want?
@@ -241,7 +241,7 @@ rsc add youtube-api remotion-video # …grow a channel, edit with Remotion
241
241
  rsc add fastapi --target claude,codex # install into several assistants at once
242
242
  rsc install --profile minimal # the base: orient + suggest + bro + unslop + show-me + eli5 + harness + init + teach
243
243
  rsc install --profile core # floor + the full SDD workflow
244
- rsc install --profile full # everything (all 290 skills)
244
+ rsc install --profile full # everything (all 291 skills)
245
245
  rsc install --profile full --without go
246
246
  rsc consult "I want to launch a SaaS" # recommend only, no install
247
247
  rsc registry refresh # write .rsc/skill-registry.{json,md}
@@ -383,7 +383,7 @@ just asks in plain language.
383
383
 
384
384
  ## The catalog
385
385
 
386
- 290 skills, grouped by what you're trying to do. Click any skill to read its
386
+ 291 skills, grouped by what you're trying to do. Click any skill to read its
387
387
  `SKILL.md`. It fires on its own when a task matches.
388
388
 
389
389
  ### 🧭 Core & control plane
@@ -423,11 +423,7 @@ Take a fuzzy intent to a shipped, verified change — phase by phase. `npx @dami
423
423
 
424
424
  [source-grounded-development](skills/source-grounded-development/) · [simplify-code](skills/simplify-code/)
425
425
 
426
- > The actual spec-first chain — clarify, specify, plan, break into tickets, build, verify, debug,
427
- > ship — now lives in the personal catalog below: `grill-with-docs`/`wayfinder` → `to-spec`
428
- > (+ `write-adr` for decisions) → `superpowers:writing-plans` → `superpowers:executing-plans`, or
429
- > `to-tickets` → `implement`, with `superpowers:systematic-debugging` for bugs and
430
- > `superpowers:verification-before-completion` before calling anything done. This section keeps
426
+ > The actual spec-first chain lives in the personal catalog below, phase by phase. This section keeps
431
427
  > the two skills that stay stack-agnostic in-phase regardless of which chain built the code:
432
428
  > grounding an implementation or review in current version-specific docs, and simplifying working
433
429
  > code without changing its behaviour.
@@ -523,17 +519,101 @@ Three engines + engine-agnostic disciplines. Every engine skill pins the current
523
519
 
524
520
  [knowledge-ops](skills/knowledge-ops/) · [codebase-onboarding](skills/codebase-onboarding/) · [research-ops](skills/research-ops/) · [continuous-learning](skills/continuous-learning/) · [skill-scout](skills/skill-scout/) · [context-budget](skills/context-budget/) · [roast-me](skills/roast-me/) · [show-me](skills/show-me/) · [eli5](skills/eli5/) · [fable-operator](skills/fable-operator/)
525
521
 
526
- ### 🇪🇸 Personal catalog — workflow (Spanish)
527
-
528
- The user's own 37-skill catalog, brought in as-is: bodies stay in Spanish, only each
529
- `description` was translated to English so Claude can still decide when to
530
- fire them. Split into a workflow half and an interface-design half.
531
-
532
- [grill-me](skills/grill-me/) · [grill-with-docs](skills/grill-with-docs/) · [grilling](skills/grilling/) · [wayfinder](skills/wayfinder/) · [to-spec](skills/to-spec/) · [to-tickets](skills/to-tickets/) · [to-questionnaire](skills/to-questionnaire/) · [implement](skills/implement/) · [revision-de-cambios](skills/revision-de-cambios/) · [code-review](skills/code-review/) · [research](skills/research/) · [prototype](skills/prototype/) · [domain-modeling](skills/domain-modeling/) · [handoff](skills/handoff/) · [write-adr](skills/write-adr/) · [wait-what](skills/wait-what/) · [writing-for-agents](skills/writing-for-agents/) · [claude-project-setup](skills/claude-project-setup/) · [muscle-memory](skills/muscle-memory/) · [teach](skills/teach/)
533
-
534
- ### 🇪🇸 Personal catalog — interface design (Spanish)
535
-
536
- [animar](skills/animar/) · [diseno-apple](skills/diseno-apple/) · [diseno-landing](skills/diseno-landing/) · [ingeniero-diseno-web](skills/ingeniero-diseno-web/) · [leyes-de-percepcion](skills/leyes-de-percepcion/) · [leyes-de-retencion](skills/leyes-de-retencion/) · [mejor-accesibilidad](skills/mejor-accesibilidad/) · [mejor-colores](skills/mejor-colores/) · [mejor-layout](skills/mejor-layout/) · [mejor-redaccion](skills/mejor-redaccion/) · [mejor-tipografia](skills/mejor-tipografia/) · [mejor-ui](skills/mejor-ui/) · [sitios-calidad-premio](skills/sitios-calidad-premio/) · [tastemaker](skills/tastemaker/) · [video-a-superprompt](skills/video-a-superprompt/) · [vocabulario-animacion](skills/vocabulario-animacion/) · [revision-interfaz](skills/revision-interfaz/)
522
+ ### 🇪🇸 Personal catalog — spec-driven development (Spanish)
523
+
524
+ The user's own 37-skill catalog, grouped by the phase of the cycle where each one is used.
525
+ The full guide, in Spanish, with one page per phase and a version for teaching: [`docs/skills/`](docs/skills/).
526
+ Bodies stay in Spanish; only each `description` was translated to English so Claude can still
527
+ decide when to fire them.
528
+
529
+ The source of truth is a written document, not a chat message. The chain, as the per-turn gate
530
+ routes it:
531
+
532
+ ![The philosophy: spec-driven development](docs/img/00-filosofia.svg)
533
+
534
+ Always: `superpowers:test-driven-development` and `superpowers:verification-before-completion`.
535
+ Bugs start at `superpowers:systematic-debugging`.
536
+
537
+ #### 1 · Plan
538
+
539
+ Everything before code. What comes out is a spec and a plan, not an idea.
540
+
541
+ ![Plan phase flow](docs/img/01-planificar.svg)
542
+
543
+ | Skill | What it does |
544
+ |---|---|
545
+ | [grill-with-docs](skills/grill-with-docs/) | Interrogates the plan and writes the glossary as it goes. The default way to ground an idea. |
546
+ | [wayfinder](skills/wayfinder/) | Only when the work does not fit one session: a map of decision tickets. |
547
+ | [to-spec](skills/to-spec/) | Turns the idea into a spec: what and why. `superpowers:brainstorming` is the alternative. |
548
+ | [write-adr](skills/write-adr/) | Records every hard-to-reverse decision under `docs/adr/`. |
549
+ | [research](skills/research/) | Investigates against primary sources and leaves the finding written and dated. |
550
+ | [to-questionnaire](skills/to-questionnaire/) | Turns a decision you cannot make alone into a questionnaire for whoever can. |
551
+ | [prototype](skills/prototype/) | A throwaway prototype to answer a design question. |
552
+ | [to-tickets](skills/to-tickets/) | Splits the work into one-sitting tickets. Used after `wayfinder`. |
553
+ | [claude-project-setup](skills/claude-project-setup/) | `CLAUDE.md`, rules, commands and agents. Once per repo. |
554
+
555
+ `grilling`, `grill-me` and `domain-modeling` are installed but rarely called by hand: they run
556
+ inside `grill-with-docs`.
557
+ [grilling](skills/grilling/) · [grill-me](skills/grill-me/) · [domain-modeling](skills/domain-modeling/)
558
+
559
+ #### 2 · Implement
560
+
561
+ ![Implement phase flow](docs/img/02-implementar.svg)
562
+
563
+ | Skill | What it does |
564
+ |---|---|
565
+ | [implement](skills/implement/) | Builds one ticket from `to-tickets`. Ordinary work runs `superpowers:executing-plans` instead. |
566
+
567
+ #### 3 · Interface
568
+
569
+ When the work touches a screen. Sixteen overlapping skills; pick the one that matches the job.
570
+
571
+ ![Interface chain flow](docs/img/03-interfaz.svg)
572
+
573
+ | Skill | What it does |
574
+ |---|---|
575
+ | [flujo-interfaz](skills/flujo-interfaz/) | The router: which design skill leads and in what order the rest follow. Start here when the work touches a screen. |
576
+ | [ingeniero-diseno-web](skills/ingeniero-diseno-web/) | Runs the whole job: art direction, a declared design system, checkpoints and a scored critique. |
577
+ | [diseno-landing](skills/diseno-landing/) | A conversion landing end to end: structure, copy and a strict visual system. |
578
+ | [sitios-calidad-premio](skills/sitios-calidad-premio/) | Cinematic sites: GSAP, one smooth-scroll engine, Three.js only with a purpose. |
579
+ | [animar](skills/animar/) | Decides in order whether to animate, why, with what, which properties, curve and duration. |
580
+ | [diseno-apple](skills/diseno-apple/) | Fluid, physical motion: springs, interruptibility, velocity hand-off, materials. |
581
+ | [mejor-layout](skills/mejor-layout/) | Grouping, alignment, reading order, breakpoints, RTL. |
582
+ | [mejor-tipografia](skills/mejor-tipografia/) | Scale, line height, variable fonts, wrapping, truncation, punctuation. |
583
+ | [mejor-colores](skills/mejor-colores/) | Ramps, semantic tokens, measured contrast, dark mode. |
584
+ | [mejor-accesibilidad](skills/mejor-accesibilidad/) | Native before ARIA, focus, keyboard, hit areas, forms. |
585
+ | [mejor-ui](skills/mejor-ui/) | Concentric radii, optical alignment, surfaces, icon transitions. |
586
+ | [mejor-redaccion](skills/mejor-redaccion/) | Voice and tone, verb buttons, errors that say how to fix them, empty states. |
587
+ | [tastemaker](skills/tastemaker/) | UI that does not look AI-made: pixel-measured colour, generated palettes. |
588
+ | [leyes-de-percepcion](skills/leyes-de-percepcion/) | Gestalt for interfaces: proximity, similarity, figure-ground, hierarchy. |
589
+ | [leyes-de-retencion](skills/leyes-de-retencion/) | Why people abandon a flow: Hick, Fitts, Miller, Jakob, Doherty, peak-end. |
590
+ | [vocabulario-animacion](skills/vocabulario-animacion/) | Reverse glossary: turns "that thing that bounces" into the exact term. |
591
+ | [video-a-superprompt](skills/video-a-superprompt/) | Turns a reference video into a detailed recreation prompt. |
592
+
593
+ #### 4 · Review and close
594
+
595
+ ![Review and close flow](docs/img/04-revisar.svg)
596
+
597
+ | The work | Order |
598
+ |---|---|
599
+ | Did not touch a screen | `code-review` |
600
+ | Touched a screen | `revision-de-cambios` → `revision-interfaz` → `code-review` |
601
+
602
+ | Skill | What it does |
603
+ |---|---|
604
+ | [code-review](skills/code-review/) | Two axes in parallel: the repo's standards and the spec. |
605
+ | [revision-de-cambios](skills/revision-de-cambios/) | Reviews the change, reads the removed lines and classifies each finding. Only if it touched a screen. |
606
+ | [revision-interfaz](skills/revision-interfaz/) | Runs the six `mejor-*` skills as one report with a verdict. Only if it touched a screen. |
607
+ | [handoff](skills/handoff/) | Compacts the session into a handoff document. Optional. |
608
+
609
+ #### 9 · Other
610
+
611
+ | Skill | What it does |
612
+ |---|---|
613
+ | [teach](skills/teach/) | Teaching across sessions. |
614
+ | [muscle-memory](skills/muscle-memory/) | A Python kata gym. |
615
+ | [wait-what](skills/wait-what/) | Handbrake: stop and restate. |
616
+ | [writing-for-agents](skills/writing-for-agents/) | How to write documents an agent consumes. |
537
617
 
538
618
  ---
539
619
 
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "version": "1.3.8",
2
+ "version": "1.3.10",
3
3
  "counts": {
4
- "skills": 290,
4
+ "skills": 291,
5
5
  "agents": 33,
6
6
  "commands": 43,
7
7
  "fixedCommands": 10
@@ -1861,6 +1861,24 @@
1861
1861
  ],
1862
1862
  "profiles": []
1863
1863
  },
1864
+ {
1865
+ "id": "flujo-interfaz",
1866
+ "description": "Use when work touches a screen — building or reshaping a landing, dashboard, app screen, component or prototype — to pick WHICH design skill leads and in what order the rest follow. Routes: direction first (diseno-landing or ingeniero-diseno-web), then motion, polish, originality and perception. NOT the review itself (that is `revision-interfaz`), NOT how the interface is wired (that is `ui-engineering`).",
1867
+ "tags": [
1868
+ "ui-design",
1869
+ "routing",
1870
+ "workflow"
1871
+ ],
1872
+ "recommends": [
1873
+ "ingeniero-diseno-web",
1874
+ "diseno-landing",
1875
+ "revision-interfaz"
1876
+ ],
1877
+ "profiles": [
1878
+ "ui",
1879
+ "full"
1880
+ ]
1881
+ },
1864
1882
  {
1865
1883
  "id": "flutter",
1866
1884
  "description": "Use when building, structuring, testing or optimizing a Flutter app — feature-first layering, Riverpod 3 or Bloc, typed go_router, freezed models, a dio data layer, Material 3, jank hunting, widget/golden tests. Targets Flutter 3.44 / Dart 3.12. NOT React Native (that is `react-native`), NOT Compose Multiplatform (that is `compose-multiplatform`).",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@damiangilgonzalez/harness",
3
- "version": "1.3.8",
3
+ "version": "1.3.10",
4
4
  "description": "A guided harness builder that turns your goal into a minimal, verified AI-agent setup using strict best practices.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -28,7 +28,7 @@ export const DOMAINS = [
28
28
  { title: 'Design & content craft', ids: ['design-loop', 'design', 'design-dna', 'presentations', 'course-storytelling', 'course-builder', 'technical-writing', 'translation-l10n'] },
29
29
  { title: 'Knowledge & meta', ids: ['knowledge-ops', 'codebase-onboarding', 'research-ops', 'continuous-learning', 'skill-scout', 'context-budget', 'roast-me', 'show-me', 'eli5', 'fable-operator'] },
30
30
  { title: 'Personal catalog — workflow (Spanish)', ids: ['grill-me', 'grill-with-docs', 'grilling', 'wayfinder', 'to-spec', 'to-tickets', 'to-questionnaire', 'implement', 'revision-de-cambios', 'code-review', 'research', 'prototype', 'domain-modeling', 'handoff', 'write-adr', 'wait-what', 'writing-for-agents', 'claude-project-setup', 'muscle-memory', 'teach'] },
31
- { title: 'Personal catalog — interface design (Spanish)', ids: ['animar', 'diseno-apple', 'diseno-landing', 'ingeniero-diseno-web', 'leyes-de-percepcion', 'leyes-de-retencion', 'mejor-accesibilidad', 'mejor-colores', 'mejor-layout', 'mejor-redaccion', 'mejor-tipografia', 'mejor-ui', 'sitios-calidad-premio', 'tastemaker', 'video-a-superprompt', 'vocabulario-animacion', 'revision-interfaz'] },
31
+ { title: 'Personal catalog — interface design (Spanish)', ids: ['flujo-interfaz', 'animar', 'diseno-apple', 'diseno-landing', 'ingeniero-diseno-web', 'leyes-de-percepcion', 'leyes-de-retencion', 'mejor-accesibilidad', 'mejor-colores', 'mejor-layout', 'mejor-redaccion', 'mejor-tipografia', 'mejor-ui', 'sitios-calidad-premio', 'tastemaker', 'video-a-superprompt', 'vocabulario-animacion', 'revision-interfaz'] },
32
32
  ];
33
33
 
34
34
  export function allDomainIds() {
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: flujo-interfaz
3
+ description: "Use when work touches a screen — building or reshaping a landing, dashboard, app screen, component or prototype — to pick WHICH design skill leads and in what order the rest follow. Routes: direction first (diseno-landing or ingeniero-diseno-web), then motion, polish, originality and perception. NOT the review itself (that is `revision-interfaz`), NOT how the interface is wired (that is `ui-engineering`)."
4
+ tags: ["ui-design", "routing", "workflow"]
5
+ profiles: [ui, full]
6
+ recommends: [ingeniero-diseno-web, diseno-landing, revision-interfaz]
7
+ ---
8
+
9
+ # Flujo de interfaz — quien manda en cada paso
10
+
11
+ Hay dieciseis skills de diseno y se solapan. Esta skill no disena nada: decide **cual toca** y en
12
+ que orden, para que ninguna pantalla se construya a ojo.
13
+
14
+ **El orden, en una linea:** que dice -> como se ve -> como se mueve -> pulido -> originalidad ->
15
+ psicologia.
16
+
17
+ La direccion la marca una skill, nunca el criterio del agente. Empezar a escribir CSS sin haber
18
+ elegido direccion es el error que esta skill existe para evitar.
19
+
20
+ ## Paso 1 · Direccion (obligatorio, elige UNA)
21
+
22
+ | Construyes | Skill | Por que esa |
23
+ |---|---|---|
24
+ | Una landing, una web de marketing | `diseno-landing` | Es la unica que habla de negocio: oferta, objeciones, FAQ, reversion de riesgo, SEO. Su Parte B ya trae las reglas visuales. |
25
+ | Cualquier otra cosa: dashboard, pantalla de app, prototipo, presentacion, visualizacion | `ingeniero-diseno-web` | Direccion de arte, design system declarado, 25 recetas ancladas y puntos de control que frenan a confirmar. |
26
+
27
+ Para una landing no uses `ingeniero-diseno-web`: `diseno-landing` ya la cubre entera. Se solapan
28
+ porque son de autores distintos que resolvieron lo mismo.
29
+
30
+ Si el usuario no sabe que aspecto quiere, `ingeniero-diseno-web` propone tres escuelas con
31
+ referencias reales antes de construir nada.
32
+
33
+ ## Paso 2 · Espectaculo, solo si toca
34
+
35
+ `sitios-calidad-premio` para un lanzamiento, un portafolio o algo que tiene que impresionar: GSAP,
36
+ un unico motor de scroll suave, Three.js solo con proposito.
37
+
38
+ En un dashboard o una herramienta de uso diario, saltatela: el espectaculo se paga en cada uso.
39
+
40
+ ## Paso 3 · Movimiento
41
+
42
+ - `animar` — decide en orden si debe animarse, con que proposito, herramienta, propiedades, curva y
43
+ duracion. Su puerta de frecuencia puede concluir que lo correcto es no animar.
44
+ - `diseno-apple` — solo si hay gestos, arrastre u hojas deslizantes: muelles con fisica real,
45
+ interrumpibilidad, traspaso de velocidad.
46
+ - `vocabulario-animacion` — cuando el usuario describe un efecto y no sabe como se llama.
47
+ - `video-a-superprompt` — cuando aporta un video de referencia.
48
+
49
+ ## Paso 4 · Pulido
50
+
51
+ `revision-interfaz` orquesta las seis `mejor-*` (layout, tipografia, colores, accesibilidad, ui,
52
+ redaccion) y consolida un unico informe ordenado por severidad. Invoca una `mejor-*` suelta solo
53
+ para una duda puntual de su terreno.
54
+
55
+ ## Paso 5 · Que no parezca de IA
56
+
57
+ `tastemaker` va despues del pulido, porque necesita algo que auditar, y antes que las leyes, porque
58
+ cambia estructura y no solo detalles. Tiene un modo auditar que no toca nada. Necesita Python.
59
+
60
+ ## Paso 6 · Psicologia
61
+
62
+ - `leyes-de-percepcion` — que ve el ojo primero y como se agrupan las cosas.
63
+ - `leyes-de-retencion` — por que se abandona un flujo a mitad. Su tabla sintoma -> ley es lo mas
64
+ rentable de las dieciseis.
65
+
66
+ ## Como se construye por dentro
67
+
68
+ La arquitectura de la interfaz —limites de componentes, estado en la URL o en el componente,
69
+ estados de carga, vacio y error, formularios, actualizacion optimista— es de `ui-engineering`, no
70
+ de las skills de diseno. Las mecanicas del framework son de `angular`, `react` o `nextjs`.
71
+
72
+ ## Atajos
73
+
74
+ | Situacion | Cadena |
75
+ |---|---|
76
+ | Landing nueva | `diseno-landing` -> `animar` -> `revision-interfaz` |
77
+ | Dashboard o pantalla nueva | `ingeniero-diseno-web` -> `revision-interfaz` |
78
+ | Pantalla que parece hecha por IA | `tastemaker` (auditar) -> `leyes-de-percepcion` |
79
+ | Un flujo pierde usuarios a mitad | `leyes-de-retencion` -> `mejor-redaccion` -> `mejor-accesibilidad` |
80
+ | Solo pulir lo que ya hay | `revision-interfaz` |
81
+
82
+ ## Donde encaja en la metodologia
83
+
84
+ Esta cadena vive **dentro** del paso de construir, no lo sustituye. El trabajo sigue llegando con
85
+ su spec escrita y su plan, y al cerrar se revisa igual: `revision-de-cambios` (que se ha roto),
86
+ `revision-interfaz` (como esta la pantalla) y `code-review` (si hace lo que pedia la spec), antes
87
+ de fusionar.
@@ -0,0 +1,32 @@
1
+ skill: flujo-interfaz
2
+
3
+ should_trigger:
4
+ - prompt: "Vamos a construir la pantalla de detalle de incidencia, por donde empiezo?"
5
+ why: "Trabajo que toca pantalla sin direccion elegida: flujo-interfaz decide que skill manda."
6
+ - prompt: "Tengo dieciseis skills de diseno y no se cual toca para esta pantalla."
7
+ why: "Disparador directo de flujo-interfaz: enrutar entre las skills de diseno."
8
+ - prompt: "Que skill de diseno uso para un dashboard nuevo?"
9
+ why: "La eleccion de direccion entre diseno-landing e ingeniero-diseno-web es de flujo-interfaz."
10
+ - prompt: "Empezamos el frontend de este modulo, cual es el orden de trabajo?"
11
+ why: "Pide el orden de la cadena de interfaz, que es lo que flujo-interfaz define."
12
+ - prompt: "Which design skill should lead this new app screen, and what comes after?"
13
+ why: "Disparador directo de flujo-interfaz en ingles: direccion primero, resto despues."
14
+
15
+ should_not_trigger:
16
+ - prompt: "Revisa esta pantalla y dame un informe ordenado por severidad."
17
+ route_to: "revision-interfaz"
18
+ why: "Revisar la pantalla es el trabajo de revision-interfaz, no de flujo-interfaz, que solo enruta."
19
+ - prompt: "Donde guardo el estado de este formulario, en la URL o en el componente?"
20
+ route_to: "ui-engineering"
21
+ why: "La arquitectura de la interfaz es el trabajo de ui-engineering, no de flujo-interfaz."
22
+ - prompt: "Genera la paleta de colores de la marca desde cero."
23
+ route_to: "mejor-colores"
24
+ why: "Generar la paleta es el trabajo de mejor-colores, no de flujo-interfaz."
25
+ - prompt: "Implementa el endpoint que devuelve las incidencias del tecnico."
26
+ route_to: "implement"
27
+ why: "Un ticket de backend es el trabajo de implement, no de flujo-interfaz."
28
+
29
+ capability:
30
+ - scenario: "El usuario va a construir una pantalla nueva y no sabe que skill de diseno manda."
31
+ must_include:
32
+ - "direccion"
@@ -33,9 +33,11 @@ The shape of the chain:
33
33
 
34
34
  - Still fuzzy, or an open question? Open with `grill-with-docs`; reach for `wayfinder` instead
35
35
  when the effort will not fit one sitting.
36
- - Once the shape is known, capture it as a spec, noting any call that would be costly to undo.
37
- - Size the build: a single sitting runs straight through its own plan-then-build pair; anything
38
- bigger, or anything that grew out of the wayfinding step, gets broken into tickets first.
36
+ - Once the shape is known, capture it as a spec, and give any call that would be costly to undo
37
+ its own ADR.
38
+ - Build from a written plan. Tickets are the exception: only work that grew out of the
39
+ wayfinding step is broken into them first. A screen also routes through `flujo-interfaz`.
40
+ - Review the finished change against the repo's standards and against the spec before merging.
39
41
 
40
42
  Two exceptions, and say out loud when you take one:
41
43
 
@@ -53,10 +55,11 @@ whole run — advance through the phases without re-asking.
53
55
  If a step's skill is not installed, offer to add it (§2) before routing. `implement` always
54
56
  pairs with test-driven development and a verification pass before anything is called done.
55
57
 
56
- Exact skill names and order: `grill-with-docs` or `wayfinder` -> `to-spec` (and `write-adr` for
57
- decisions) -> `superpowers:writing-plans` -> `superpowers:executing-plans`, or `to-tickets` ->
58
- `implement`. On Claude Code this rule also arrives as a per-turn hook; the brevity here is
59
- deduplication, not relaxation.
58
+ Exact skill names and order: `grill-with-docs` or `wayfinder` -> `superpowers:brainstorming` or
59
+ `to-spec` (and `write-adr` for decisions) -> `superpowers:writing-plans` ->
60
+ `superpowers:executing-plans` (after `wayfinder`: `to-tickets` -> `implement`) -> `code-review`.
61
+ On Claude Code this rule also arrives as a per-turn hook; the brevity here is deduplication,
62
+ not relaxation.
60
63
 
61
64
  ---
62
65
 
@@ -20,7 +20,7 @@ export function writeSkill(id, fromDir, toPath) {
20
20
  export function wireHook(paths, sourceMd, policy = {}) {
21
21
  const full = stripFrontmatter(readFileSync(sourceMd, 'utf8'));
22
22
  const body = policy.codeHooks === false
23
- ? `# rsc-suggest — always-on operations layer\n\nRead \`docs/wiki/harness/user-profile.md\` before acting. If the user wants to build, add or change something, route it through \`grill-with-docs\` or \`wayfinder\` then \`to-spec\` before any code, then build it with \`superpowers:writing-plans\` (or \`to-tickets\` then \`implement\` for ticket-sized work) — unless it is a one-line change, typo, or config bump, which skips the chain. Use \`orient\` to keep the user situated and \`suggest\` to offer a missing skill only when the current task needs it. Close with the configured orientation block.\n`
23
+ ? `# rsc-suggest — always-on operations layer\n\nRead \`docs/wiki/harness/user-profile.md\` before acting. If the user wants to build, add or change something, route it through \`grill-with-docs\` or \`wayfinder\`, then write the spec with \`superpowers:brainstorming\` or \`to-spec\` (decisions go to \`write-adr\`) before any code, then build it with \`superpowers:writing-plans\` (or \`to-tickets\` then \`implement\` when it came out of \`wayfinder\`), and review it with \`code-review\` before merging (si toca pantalla, \`flujo-interfaz\` dice que skill de diseno manda) — unless it is a one-line change, typo, or config bump, which skips the chain. Use \`orient\` to keep the user situated and \`suggest\` to offer a missing skill only when the current task needs it. Close with the configured orientation block.\n`
24
24
  : full;
25
25
  const block = `${MARK_START}\n${body}\n${MARK_END}`;
26
26
  let doc = existsSync(paths.hookTarget) ? readFileSync(paths.hookTarget, 'utf8') : '';
@@ -89,21 +89,25 @@ export function claimOnce(key, { dir = markerDir(), windowMs = 30_000, now = Dat
89
89
  // The workflow gate text lives here, not inline in userprompt-gate.mjs, so it has exactly one
90
90
  // definition: the hook emits it and `rsc doctor` measures it from the same constant. Anything
91
91
  // that reports a byte count for text it does not own drifts the moment the text changes.
92
- export const WORKFLOW_GATE_TEXT = `===== workflow gate (highest precedence) =====
93
- Before acting on this turn: if the user wants to BUILD, ADD or CHANGE something — in ANY
94
- language, judged by intent, not by keywords — route it through the chain below FIRST. No
95
- feature code is written by ANY skill until the what is clear and the user has approved it.
96
- 1. Not clear yet? -> \`grill-with-docs\` for a green idea or an open question; \`wayfinder\`
97
- when the work is too large to hold in one session.
98
- 2. Clear? -> \`to-spec\` writes the spec. Record every hard-to-reverse call with \`write-adr\`,
99
- which leaves its trail under docs/adr/.
100
- 3. Then build. Pick by size, and ask when unsure: ordinary work goes
101
- \`superpowers:writing-plans\` -> \`superpowers:executing-plans\`; work that came out of
102
- \`wayfinder\`, or too large for one plan, goes \`to-tickets\` -> \`implement\`, ticket by ticket.
103
- Always: \`superpowers:test-driven-development\`, and \`superpowers:verification-before-completion\`
104
- before calling anything done. Bugs enter through \`superpowers:systematic-debugging\`.
105
- One-line change, typo, or config bump? -> skip the chain, do it, say so.
106
- ==============================================
92
+ export const WORKFLOW_GATE_TEXT = `===== workflow gate · metodologia (maxima prioridad) =====
93
+ Si el usuario pide construir, anadir o cambiar algo (en cualquier idioma, se juzga la intencion),
94
+ sigue esta cadena ANTES de escribir codigo. Ninguna skill escribe codigo de una feature hasta que
95
+ el que esta claro y el usuario ha dado el visto bueno.
96
+ 1. Aclarar el que:
97
+ - Peticion concreta y acotada -> \`grill-with-docs\`.
98
+ - Tema amplio, o el usuario no sabe como abordarlo -> recomiendale \`wayfinder\`.
99
+ - \`superpowers:brainstorming\` vale para lo mismo si el usuario lo prefiere.
100
+ Cada decision dificil de revertir se registra con \`write-adr\`, en docs/adr/.
101
+ 2. Escribir la spec: \`to-spec\`, o \`superpowers:brainstorming\` para cerrarla por secciones.
102
+ Sin spec escrita no se programa.
103
+ 3. Construir: \`superpowers:writing-plans\` -> \`superpowers:executing-plans\`. Solo el trabajo que
104
+ salio de \`wayfinder\` va con \`to-tickets\` -> \`implement\`, ticket a ticket.
105
+ Si la tarea toca pantalla, invoca ademas \`flujo-interfaz\`: dice que skill de diseno manda.
106
+ 4. Antes de fusionar: \`code-review\` (estandares del repo + lo que pedia la spec).
107
+ Siempre: \`superpowers:test-driven-development\` y \`superpowers:verification-before-completion\`
108
+ antes de dar nada por terminado. Los bugs entran por \`superpowers:systematic-debugging\`.
109
+ Cambio de una linea, typo o ajuste de configuracion -> hazlo y di que te saltas la cadena.
110
+ ==========================================================
107
111
  `;
108
112
 
109
113
  /**