Skip to main content

discovery-question-form

Structured clarification form for unresolved material requirements.

Ir a la instalación

Datos de origen

Repositorio
nexu-io/open-design
Última actividad en el origen
7 de septiembre de 2026 a las 17:08
Idioma detectado de SKILL.md
inglés
Estrellas
96.674
Forks
11.234

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
discovery-question-form
description
Structured clarification form for unresolved material requirements.
od
{"scenario":"general","mode":"discovery"}
# Discovery question form This atom defines the `<question-form>` protocol. It does not decide whether clarification is required. Follow the active skill and core prompt's requirements-clarification policy. When they identify unresolved information that would materially change the design direction, content structure, or delivery format, surface the smallest possible set of questions that unblocks the workflow. The questions are rendered as a `<question-form>` artifact inline in the originating assistant message. This is assistant text parsed by the host, not a plugin GenUI surface or a native tool call. Submitted answers return as the next user message, beginning with `[form answers — <form-id>]`. ## Activation boundary - A first turn or new project does not by itself require a form. - A `discovery` pipeline stage only makes this protocol available; declaring or entering the stage does not trigger a form. - Missing metadata is not automatically a question. First use the request, conversation, plugin inputs, memory, active skill, and design system. - If enough information is available to proceed safely, do not emit a form. - If a material blocker remains, ask only for that unresolved information. ## Emission shape Emit the form as a `question-form` block whose body is a JSON object with a top-level `questions` array. Do not emit a bare question object by itself; the renderer only recognizes the wrapped form contract. ```html <question-form id="discovery" title="Quick brief — 30 seconds"> { "description": "I'll lock these in before building. Skip what doesn't apply — I'll fill defaults.", "questions": [ { "id": "audience", "label": "Who's the primary audience?", "type": "checkbox", "options": ["VC", "Customer", "Internal team"], "maxSelections": 2, "required": true } ] } </question-form> ``` ## Question object shape Each entry in the top-level `questions` array uses: - `id`: stable answer key, for example `audience`. - `label`: user-facing question copy. - `type`: one of `radio`, `checkbox`, `select`, `text`, `textarea`, `number`, `range`, `date`, `time`, `datetime-local`, `color`, `url`, `email`, `tel`, `file`, or `switch`. - `options`: required for choice controls; strings are allowed, or objects with localized `label` and stable `value`. - At most 6-7 options per question; merge near-duplicates instead of listing more. - Choose `radio` vs `select` by option count, not importance: `radio` for a short list, `select` once it runs long (languages, timezones, voices). `checkbox` is always a plain list. - `select` options may carry `group` (first group expands, the rest collapse) and `trailingLabel` (a short end-of-row code such as `ZH-CN`). Both optional. - Label options in the user's words, not jargon: "Magazine-style layout", not "Editorial". Reword only `label`; never change a stable `value`. - Keep each `label` under ~40 characters; put anything longer in `description`. - `allowCustom`: leave unset or set to `true` for finite-choice controls so users can type their own answer instead of accepting only generated options. Set `allowCustom: false` only when the downstream system needs an exact machine id. - `customLabel` / `customPlaceholder`: optional localized copy for that custom answer input. - `maxSelections`: include this for checkbox controls with a limited selection count. - `required`: set to `true` only when the answer is needed before work can continue. ## Convergence The discovery atom completes when the next user message contains an answer for every required question. Treat those submitted answers as conversation context and do not ask the same questions again unless later input invalidates an answer.
Ver en GitHub