Explain why each skill is available or blocked
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 45/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- typescript
- 领域
- cli
调研方向
首先跟踪现有的 intent list 命令及其面向人类和 JSON 的输出路径,然后查看 dependency #219 以了解按 skill 划分的 policy 表单。在实现之前定义最终的显式诊断面,同时保持正常输出不变并保留 agent 脱敏。完成的标准是验收标准能够区分每个列出的 policy 结果、排除项、未发现的条目以及隐藏审查行为。
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- TypeScript
- 星标
- 331
- 派生
- 22
- 平均合并
- 12 小时 17 分钟
- 30 天内合并 PR
- 51
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
TanStack/intent 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 5/5 一周以上 新手友好度 45/100
-
难度 4/5 3-5 天 新手友好度 48/100
-
难度 5/5 一周以上 新手友好度 35/100
-
难度 5/5 一周以上 新手友好度 45/100
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 84/100
bcgov/bc-wallet-mobile#4761 · 1 条评论 ·
-
external-issue to-triage
难度 2/5 1-3 小时 新手友好度 88/100
-
area-deployment area-integrations triage:bot-seen
难度 2/5 半天 新手友好度 86/100
-
难度 2/5 1-3 小时 新手友好度 82/100
-
refactor
难度 2/5 1-3 小时 新手友好度 84/100