Files
fn_registry/docs/capabilities/INDEX.md
T
egutierrez 626d06327c feat(registry): add playwright capability group (6 TS browser fns)
New domain `browser` under frontend/functions/ with 6 Playwright helpers:
- pw_launch_browser: chromium + context + page bootstrap with storageState
  support and baseUrl navigation.
- pw_kanban_login: authenticates a Page against /api/auth/login; sets the
  kanban_session cookie via shared storageState; verifies login page no
  longer visible after navigation.
- pw_drag_drop: human-like pointer drag (mousedown + activateOffset +
  stepped move + mouseup) compatible with @dnd-kit/core's 8px activation
  threshold; supports hoverMs for time-based dropzones.
- pw_keyboard_sequence: ordered focus/type/press/wait steps for scripting
  realistic input flows (typing then arrow-key navigating autocompletes).
- pw_wait_predicate: thin wrapper over page.waitForFunction with friendlier
  defaults and custom error messages.
- pw_assert_class: poll-based assertion that a Locator has/lacks a CSS
  class within a timeout; useful for visual-state checks.

Each function ships with vitest tests (5-8 cases each) covering both happy
and error paths, plus self-documenting .md (Ejemplo + Cuando usarla +
Gotchas + frontmatter with params/output schema).

Adds frontend/functions/package.json with `"type": "module"` so consumers
can ESM-import the .ts files from anywhere in the registry (Playwright's
tsx loader respects nearest package.json).

Capability page docs/capabilities/playwright.md documents the group with
a canonical end-to-end example, frontiers, prerequisites, and gotchas.
Index updated.

First consumer (issue 0088): apps/kanban requester-input.spec.ts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:57:30 +02:00

47 lines
2.3 KiB
Markdown

# Capability Groups
Indice de grupos de capacidades del registry. Cada grupo agrupa >=3 funciones que comparten dominio operativo. Lee la pagina madre del grupo ANTES de buscar funciones sueltas — desbloqueas el conjunto entero en un solo read.
## Como leer este indice
| Columna | Que |
|---|---|
| Grupo | Tag canonico. Coincide con el slug del archivo `<grupo>.md` |
| N | Numero de funciones en el grupo (auditado por `fn doctor capabilities`) |
| Que cubre | Frase corta — accion principal |
## Grupos vigentes
| Grupo | N | Que cubre |
|---|---|---|
| [bigquery](bigquery.md) | 26 | _(editar — promovido automaticamente)_ |
| [nlp](nlp.md) | 33 | _(editar — promovido automaticamente)_ |
| [docker](docker.md) | 38 | _(editar — promovido automaticamente)_ |
| [android](android.md) | 37 | _(editar — promovido automaticamente)_ |
| [metabase](metabase.md) | 106 | _(editar — promovido automaticamente)_ |
| [doctor](doctor.md) | 11 | Diagnostico read-only del registry: artefactos, servicios, drift, funciones huerfanas |
| [notebook](notebook.md) | 5 | Operar Jupyter Lab colaborativo (discover/read/exec/write/kernel) |
| [cpp-windows](cpp-windows.md) | 7 | Compilar, desplegar, lanzar y verificar apps C++ en Windows desde WSL2 |
| [git](git.md) | 19 | Operaciones git y Gitea: clonar, commit, push/pull, hooks, TBD, webhooks, sync entre PCs |
| [playwright](playwright.md) | 6 | E2E browser: launch chromium, login kanban, drag dnd-kit, keyboard sequence, wait predicate, assert class |
## Como anadir grupo
1. Reservar tag plano (sin prefijos). Ej: `metabase`, `android-emu`, `deploy`.
2. Anadir el tag al frontmatter `.md` de >=3 funciones afines (`fn index` lo registra).
3. Crear `docs/capabilities/<grupo>.md` con plantilla:
- Lista de funciones (ID + firma corta).
- 1-2 ejemplos canonicos de uso.
- Fronteras (que NO hace el grupo).
4. Anadir fila a la tabla "Grupos vigentes" arriba.
5. Correr `fn doctor capabilities` para auditar drift tag<->doc.
## Minimo por grupo
- **3 funciones**: minimo para crear pagina madre.
- **<3 funciones**: tag sigue valido para FTS pero no genera pagina madre.
## Auto-generacion
`fn doctor capabilities --update` reescribe la tabla "Funciones" de cada pagina preservando bloques curated ("Ejemplo canonico", "Fronteras", "Notas"). Las secciones curated nunca se sobrescriben.