Skip to content

feat(skills): add least-privilege-plan skill#114

Open
webeventualsapp-cpu wants to merge 1 commit into
runxhq:mainfrom
webeventualsapp-cpu:feat/least-privilege-plan-skill
Open

feat(skills): add least-privilege-plan skill#114
webeventualsapp-cpu wants to merge 1 commit into
runxhq:mainfrom
webeventualsapp-cpu:feat/least-privilege-plan-skill

Conversation

@webeventualsapp-cpu

Copy link
Copy Markdown

Summary

  • Add a read-only least-privilege-plan skill
  • Compare declared grants with bounded, receipt-derived run history
  • Classify grants as keep, reduce, revoke, or needs_human_review
  • Include evidence, rationale, and operational risk for each decision
  • Add inline and standalone harness coverage (2 fixture cases)

Files Added

  • skills/least-privilege-plan/SKILL.md — Full skill definition with procedure, output schema, worked example, edge cases, and stop conditions
  • skills/least-privilege-plan/X.yaml — Execution profile with readonly sandbox, typed inputs, and structured outputs
  • skills/least-privilege-plan/run.mjs — Deterministic CLI runner that produces structured JSON grant plans
  • skills/least-privilege-plan/fixtures/over-granted-plan-reduces.yaml — Harness case: over-granted permissions are reduced/revoked
  • skills/least-privilege-plan/fixtures/minimal-grants-unchanged.yaml — Harness case: minimal grants confirmed unchanged

How it differs from least-privilege-auditor

The auditor skill diffs granted scopes against receipt-backed usage and proposes attenuation (narrowing existing grants). The plan skill takes declared or proposed grants and produces a forward-looking plan that ensures only the minimum necessary permissions are granted before authority is applied. The plan classifies each grant with operational risk assessment and evidence trail.

Validation

  • run.mjs tested locally with both fixture inputs (plan_proposed and no_change cases)
  • Output matches the declared schema in SKILL.md
  • Skill is read-only and stops before applying any authority changes

Resolves auscaster/frantic-board#81

Add a read-only least-privilege-plan skill that compares declared grants against bounded, receipt-derived run history and classifies each grant as keep, reduce, revoke, or needs_human_review. Includes evidence, rationale, and operational risk for each decision.

- SKILL.md: full procedure, output schema, worked example, edge cases

- X.yaml: execution profile with readonly sandbox and typed inputs

- run.mjs: deterministic CLI runner producing structured JSON output

- fixtures: over-granted-plan-reduces and minimal-grants-unchanged harness cases

Refs auscaster/frantic-board#81

Signed-off-by: webeventualsapp-cpu <webeventualsapp@gmail.com>
@auscaster

Copy link
Copy Markdown
Collaborator

Thanks for pushing the skill PR. The PR is the source/provenance trail; Frantic is the review and payment surface.

Next step: submit the delivery on the matching bounty page:

https://gofrantic.com/bounties/37

Before delivering, publish with the current runx login path and include the live registry public_url in the Frantic artifact block:

npx --yes @runxhq/cli@latest login --provider github --for publish
npx --yes @runxhq/cli@latest registry publish ./skills/least-privilege-plan/SKILL.md --registry https://api.runx.ai

Do not paste Connect session URLs, agent tokens, or payout secrets into GitHub.

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.

Frantic bounty #37: runx skill: least-privilege grant plan

2 participants