CommunityProgramación y desarrollogithub.com

labs-graduation

Sacar una funcionalidad de Control UI Labs, ya sea activada por defecto o aún desactivada por defecto. Úsalo cuando se te pida promover, graduar o enviar una funcionalidad de Labs.

¿Qué es labs-graduation?

Esta skill automatiza el proceso de graduar una funcionalidad de Labs en Control UI, eliminando su interruptor experimental y convirtiéndola en una funcionalidad normal del producto. Es útil para desarrolladores que necesitan promover funcionalidades desde el laboratorio de Control UI hacia la experiencia principal del usuario, siguiendo un proceso estandarizado que incluye medir costos o riesgos en rutas reales, resolver defectos conocidos de antemano y asegurar que los usuarios sigan teniendo una forma de activar la funcionalidad desde la interfaz. Soporta plataformas como Control UI y sus plugins, y se basa en la documentación de decisiones previas (como Swarm, Tool Search, Advisor) para guiar cada paso. La skill guía al agente a través de las fases de decisión (si dejar Labs y si activar por defecto), la implementación del cambio (modificar defaults, eliminar entradas de Labs, actualizar documentación, regenerar archivos generados, probar la actualización) y la prueba en el PR (capturas de pantalla, pruebas E2E, verificación de claims).

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/labs-graduation

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Graduar una funcionalidad de Labs

La graduación elimina el interruptor de Labs de una funcionalidad y la convierte en una funcionalidad normal. Dos decisiones separadas, tomadas por el propietario antes de cualquier código:

  1. Dejar Labs: la funcionalidad obtiene un hogar permanente (su propia página de configuración o de plugin) y pierde la redacción de Labs.
  2. Valor predeterminado: activada por defecto, o aún desactivada por defecto.

Son independientes. #197029 primero probó ambas, luego envió solo la primera: Advisor salió de Labs pero permaneció desactivado. Pregunta cuál se desea; no asumas que "graduar" significa "activado por defecto".

Precedentes: Swarm activado por defecto (#136514), Tool Search activado por defecto (#154068), interfaz de plugin nativa activada sin opt-in de Labs (de50262a1f96), funcionalidades de Labs trasladadas a Configuración (#145460), Advisor fuera de Labs y aún desactivado (#197029).

Antes del PR

  • Mide el costo o riesgo en la ruta real si la funcionalidad cuesta dinero o tokens, o cambia el comportamiento de usuarios que nunca optaron. Los números actuales de mocks o pruebas unitarias no son prueba. #197074 fusionó una afirmación de costo de caché de un mock que los proveedores en vivo refutaron, y fue revertido en #197175. Usa la medición en vivo que los propios PRs de la funcionalidad ya establecieron, y pon los números en el cuerpo del PR.
  • Resuelve los defectos conocidos primero. La graduación de Advisor esperó sus correcciones de caché fork (#197203, #197223, #197224, #197226) porque si se hubiera activado por defecto, habría cobrado a cada usuario el costo no cacheado.
  • Encuentra la ruta de activación que permanece. Después de que desaparezca la fila de Labs, los usuarios aún deben poder activar la funcionalidad desde la interfaz. Un plugin empaquetado usa Configuración → Plugins → → Activar; una funcionalidad central necesita su página de configuración. Agrega un interruptor solo si no existe ninguno.

El cambio

  1. Valor predeterminado. Cámbialo solo si el propietario eligió activado por defecto: enabledByDefault de un plugin empaquetado en openclaw.plugin.json, o el valor predeterminado de configuración central. Un false explícito existente (o el valor de exclusión de la funcionalidad) debe seguir funcionando, y un true existente debe permanecer activado. Nunca agregues una migración que reescriba la configuración guardada para cambiar la elección de alguien.
  2. Labs. Elimina la entrada de ui/src/pages/labs/labs-registry.ts y todo lo que solo ella usaba: filas o slots de labs-page.tsx, entradas de labs-feature-state.ts, cadenas y pruebas.
  3. Documentación. Mueve la sección de la funcionalidad fuera de docs/concepts/experimental-features.md a su propia página de referencia. Deja una nota de un párrafo allí con el ancla antigua, diciendo que se graduó, su valor predeterminado y dónde activarla. Actualiza la lista "Labs incluye..." y la tabla "Indicadores documentados actualmente".
  4. Redacción. Elimina "Experimental" y "OpenClaw Labs" de la descripción del manifiesto, descripción del paquete, README, resumen del plugin y cualquier texto dirigido al usuario o al modelo, como prefijos de prompt.
  5. Archivos generados. Regenera, nunca combines manualmente: pnpm config:docs:gen, pnpm plugins:inventory:gen. Los artefactos de localización de Control UI (*.meta.json, *.tm.jsonl, catalog-fallbacks.json) se quedan fuera del PR según ui/AGENTS.md; el flujo de trabajo de actualización de localización los actualiza. pnpm ui:i18n:verify debe pasar.
  6. Prueba de actualización. Solo para un cambio de valor predeterminado: demuestra en una actualización real que ninguna entrada guardada obtiene el nuevo valor predeterminado, que un explícito desactivado permanece desactivado y que un explícito activado permanece activado. Un valor predeterminado que permanece igual no necesita caso de actualización; #197029 eliminó el que había construido para la activación por defecto.

Prueba en el PR

  • Capturas de pantalla de Control UI, revisadas para datos privados antes de subirlas: Labs antes y después, y la ruta de activación funcionando en una puerta de enlace real. Adjúntalas con gh pr comment <n> --attach '<archivo>#<texto alternativo>'.
  • La ruta de activación probada de extremo a extremo: el interruptor guarda la configuración esperada y surte efecto sin necesidad de reinicio.
  • Las pruebas de la funcionalidad y las pruebas de la página de Labs pasan; el trinquete de líneas de prueba no crece.
  • Las afirmaciones de la documentación coinciden con el código. ClawSweeper detectó la afirmación de Advisor de "como máximo una revisión por everyMinutes", que era falsa con everyToolCalls activado.

Después de la fusión

La nueva ubicación solo aparece en las compilaciones que incluyen la fusión. Indica a los usuarios la ruta exacta y que las compilaciones más antiguas aún muestran el interruptor de Labs.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills and agent Templates when requested; add Templates; install, verify, update, uninstall, publish, or sync skills.

Skills relacionados