You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 as intent 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.
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.skills declaration in human explanation output when available.
Preserve normal intent list output when explanation mode is not requested, including the existing human notice that names unlisted packages.
Use intent list --why --show-hidden for detailed human review of hidden package and skill identities; --why without --show-hidden does 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-hidden identifies 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.
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.
Problem
intent listshows 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 inheritedintent.skills, wildcard matching, source kind, andintent.excluderules.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
intent list, proposed asintent list --why.intent.skillsdeclaration in human explanation output when available.intent listoutput when explanation mode is not requested, including the existing human notice that names unlisted packages.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.Out of scope
Acceptance criteria
Package-level explanations
intent list --why --show-hiddenidentifies why each human-reviewed hidden or excluded candidate is blocked.intent.skillsconfiguration path when available.--whywithout--show-hiddendoes not add hidden package, skill, path, or source identities beyond the existing human notice.Per-skill explanations
Dependencies
Open decision
Confirm whether
intent list --whyis the final surface or whether the explanation belongs in another explicit diagnostic mode. The defaultintent listoutput must remain concise either way.