Skip to content

Review permission changes during repeat installs #221

Description

@LadyBluenotes

Problem

Once interactive permission setup exists, later intent install runs need to distinguish current decisions from newly discovered and no-longer-discovered candidates. Repeating the full first-run flow would create noise, while applying policy edits without review would make configuration changes hard to audit.

User outcome

A repeat install shows meaningful permission changes, preserves unchanged decisions, and requires confirmation before it edits policy.

In scope

  • Compare the effective intent.skills policy with the current discovered package and skill candidates.
  • Show newly discovered packages and skills separately from unchanged candidates.
  • State whether each new candidate is controlled by an explicit package entry, the per-skill rules from Support reviewable per-skill permissions #219, a wildcard, allow-all mode, absent migration mode, empty deny-all mode, or intent.exclude.
  • Show configured packages or skills that are no longer discovered without claiming they are uninstalled.
  • Preserve unchanged permission decisions without asking the human to select them again.
  • Preserve the documented meaning of package-level entries, wildcards, allow-all mode, absent migration mode, empty deny-all mode, inheritance, and exclusions.
  • Report a candidate already permitted by a broader rule without presenting it as a required new permission decision; allow the human to narrow the broader rule as an explicit policy change.
  • Require explicit confirmation before adding, removing, or changing policy entries.
  • Do not remove configured-but-undiscovered entries automatically.
  • Explain whether the run changes permissions, guidance, both, or neither.

Out of scope

  • Byte-level content drift.
  • Content locks, hashes, or lockfile state.
  • Delivery, placement, or synchronization state.
  • Git sources.

Acceptance criteria

  • Repeat install reports newly discovered packages and skills separately from unchanged candidates.
  • Each new candidate shows whether the current policy permits or blocks it and which policy form controls that result.
  • The controlling result accounts for intent.exclude after intent.skills permission is evaluated.
  • Repeat install reports configured packages or skills that are no longer discovered using "not discovered" language.
  • Unchanged permission decisions are retained without reasking for them.
  • Existing package-level entries, wildcards, allow-all mode, absent migration mode, and empty deny-all mode keep their documented meaning.
  • A candidate already covered by a broader permission is not presented as requiring a redundant permission entry.
  • The command never adds a new explicit permission entry without confirmation.
  • The command never removes a configured-but-undiscovered entry without confirmation.
  • Permission additions, removals, and changes are previewed before confirmation.
  • Canceling a review leaves the configured permissions unchanged.
  • A failed validation or write does not leave a partial permission update.
  • The result distinguishes permission changes from guidance changes.
  • The review does not claim to detect content, byte, lockfile, or delivery drift.

Dependencies

Prior exploration

#204 explored repeat install together with accepted-content and delivery deltas. This issue is limited to permission configuration and discovery changes.

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