Skip to content

Support reviewable per-skill permissions #219

Description

@LadyBluenotes

Problem

intent.skills currently permits packages as whole sources. Consumers cannot select one skill from a package without permitting its siblings, so they must use a broader package permission and express the narrower choice through exclusions.

User outcome

Consumers can explicitly permit selected skills from a package while preserving clear package and source-kind decisions.

In scope

  • Extend the permission model to support selected skills within a package.
  • Preserve package-level entries, npm and workspace source-kind matching, wildcard behavior, nearest non-null declaration inheritance, and intent.exclude precedence.
  • Preserve strict parsing: malformed entries fail the complete permission list and are reported together.
  • Keep package-level permissions valid and behaviorally compatible.
  • Apply per-skill permissions consistently to list, load, stale, install --map, and hook catalogs.
  • Extend the current redaction rule to per-skill permissions: humans can explicitly review hidden candidates outside agent sessions, while agent sessions receive counts without hidden source or skill identities.
  • Document the final permission grammar and its interaction with package-level entries, wildcards, inheritance, and exclusions.

Out of scope

  • Interactive permission editing.
  • Content locks, hashes, or byte-level verification.
  • Git sources.

Acceptance criteria

  • A consumer can permit selected skills from a package without permitting every skill in that package.
  • Existing package-level npm and workspace entries retain their current meaning.
  • Source-kind matching remains enforced for package-level and per-skill permissions.
  • intent.exclude continues to take precedence over permissions, including skill-level exclusions.
  • Permission inheritance retains the current nearest non-null declaration behavior.
  • Malformed entries fail the complete permission list and report all malformed entries together.
  • list, load, stale, install --map, and hook catalogs enforce the same per-skill decision.
  • Human review outside agent sessions can identify hidden candidates.
  • Agent sessions receive hidden counts without hidden source or skill identities.
  • Documentation includes valid examples and rejects ambiguous or unsupported forms.

Dependencies

None.

Open decision

Choose and document the per-skill permission syntax, including whether it extends the existing string grammar or uses a structured entry. The syntax must remain unambiguous for package names, source kinds, wildcards, and future source kinds.

Prior exploration

#204 explored this capability inside a broader installer, lockfile, and delivery change. This issue defines only the per-skill permission boundary and does not adopt that branch wholesale.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions