Skip to content

feat(orchestrate): consent-gated permission-rule installer + onboarding flow — v1.6.0 - #71

Merged
choiyounggi merged 1 commit into
mainfrom
feat/permission-onboarding
Aug 9, 2026
Merged

feat(orchestrate): consent-gated permission-rule installer + onboarding flow — v1.6.0#71
choiyounggi merged 1 commit into
mainfrom
feat/permission-onboarding

Conversation

@choiyounggi

Copy link
Copy Markdown
Owner

Follows up #70. That PR documented the coordinator permission requirement; this one automates the fix at onboarding — consent-gated, never silent (a plugin silently widening user permissions is the supply-chain escalation pattern guardrails exists to stop).

What

  • skills/orchestrate/scripts/install-permission-rules.sh (new) — merges the three worker-management permissions.allow path rules + one autoMode.allow classifier-context rule into a Claude Code settings.json. Idempotent (already-present → no-op, no backup); --check read-only probe (0 present / 4 absent / 3 malformed); refuses a malformed target untouched (a broken settings.json silently disables all its settings); backs up before modifying; atomic tmp+mv with post-write jq validation; seeds autoMode.allow as ["$defaults", rule] fresh but append-only on an existing list (a user who removed $defaults did so deliberately); embeds the real $HOME (permission rules don't expand ~); cache glob covers any marketplace/version. safe-cleanup.sh deliberately excluded.
  • SKILL.md Preflight — onboarding flow: probe with --check → on absent, ask the user once (showing exactly what would be added) → on explicit yes run the installer → on no or classifier-block, fall back to the pasteable snippet and continue. A later DENY re-offers and stops — never works around the block.
  • README EN/KO — setup note updated to describe the onboarding ask.
  • Releaseplugin.json + marketplace.json1.6.0 (the updater keys on the version string; shipping under an unchanged version is never pulled).

Verification

  • New bats suite tests/install-permission-rules.bats: 12 tests (fresh install, merge-preserving, idempotency, autoMode append-only, malformed refusal, backup, --check ×3, missing jq, usage, default target). Mutation-proofed (seeding change → red → restored).
  • Full suite: 447/447 green.
  • Independent test-quality-auditor: PASS (verified via real-settings md5 that no test touches the actual ~/.claude/settings.json); its one non-blocking gap (default-target path) closed with test 12.

@choiyounggi
choiyounggi merged commit fa89dc2 into main Aug 9, 2026
2 checks passed
@choiyounggi
choiyounggi deleted the feat/permission-onboarding branch August 9, 2026 08:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant