Explain why each skill is available or blocked
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- cli
Línea de trabajo
Empieza siguiendo el comando existente intent list y sus rutas de salida humana y JSON, y después revisa la dependencia #219 para consultar el formulario de políticas por skill. Define la superficie de diagnóstico explícita final antes de la implementación, manteniendo sin cambios la salida normal y conservando la redacción para agentes. Se considera terminado cuando los criterios de aceptación distinguen cada resultado de política listado, las exclusiones, las entradas no descubiertas y el comportamiento de revisión oculta.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
intent list shows available skills and can show hidden source summaries, but it does not identify the exact policy decision that made a package or skill available or blocked. Consumers must reconstruct the result from inherited intent.skills, wildcard matching, source kind, and intent.exclude rules.
User outcome
A human can inspect a skill-level diagnostic in human-readable or JSON form and understand why each relevant skill is available, blocked, or not discovered.
In scope
- Add an opt-in human-readable explanation mode for
intent list, proposed asintent list --why. - Add corresponding structured JSON fields with stable decision categories.
- Identify the controlling policy result for explicit package permission, wildcard permission, allow-all mode, absent migration mode, empty deny-all mode, package exclusion, skill exclusion, package not listed, source-kind mismatch, and configured-but-not-discovered entries.
- Add per-skill permission explanations after #219 defines that policy form.
- Report exclusion as the controlling result when a discovered package is both excluded and not listed; preserve the current suppression of the unlisted-source notice for explicitly excluded packages.
- Include the configuration file that owns the effective inherited
intent.skillsdeclaration in human explanation output when available. - Preserve normal
intent listoutput when explanation mode is not requested, including the existing human notice that names unlisted packages. - Use
intent list --why --show-hiddenfor detailed human review of hidden package and skill identities;--whywithout--show-hiddendoes not add hidden identities beyond the existing notice. - Preserve agent redaction regardless of flags: agent sessions receive hidden counts and reasons without hidden package, skill, path, or source identities.
Out of scope
- Changing permission semantics.
- Content hashes, byte drift, or lockfile state.
- Delivery, placement, hook execution, or synchronization state.
- Git source implementation.
Acceptance criteria
Package-level explanations
- Human-readable explanation output identifies why each listed skill is available under the current package-level policy.
-
intent list --why --show-hiddenidentifies why each human-reviewed hidden or excluded candidate is blocked. - JSON explanation output identifies the package, skill when known, availability result, and stable controlling decision category.
- Output distinguishes explicit package permission, wildcard permission, allow-all mode, absent migration mode, and empty deny-all mode.
- Output distinguishes package exclusion, skill exclusion, package-not-listed, and source-kind-mismatch results.
- Exclusion is reported as the controlling result when it removes a package or skill, including a package that is also not listed.
- Configured packages that were not discovered use "not discovered" language rather than claiming they are not installed.
- Human explanation output includes the effective
intent.skillsconfiguration path when available. - Normal human and JSON output remain compatible when explanation mode is not requested.
- The existing default human notice for unlisted packages remains unchanged.
-
--whywithout--show-hiddendoes not add hidden package, skill, path, or source identities beyond the existing human notice. - Agent sessions do not receive hidden package names, skill names, paths, or source identities, even when explanation or hidden-review flags are passed.
- Source-kind-mismatch details are available only in explicit human hidden review.
- The diagnostic does not report content, byte, lockfile, or delivery state.
Per-skill explanations
- After #219 is complete, output distinguishes an explicit per-skill permission from a package-level permission.
- After #219 is complete, configured skills that were not discovered use "not discovered" language.
Dependencies
- #219 for the two per-skill explanation criteria. Package-level explanations can ship independently.
Open decision
Confirm whether intent list --why is the final surface or whether the explanation belongs in another explicit diagnostic mode. The default intent list output must remain concise either way.
- Lenguaje dominante
- TypeScript
- Estrellas
- 331
- Forks
- 22
- Merge medio
- 12 h 17 min
- PR fusionados (30 d)
- 51
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TanStack/intent
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
Todos los issues de TanStack/intent
Issues similares
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100