@nklisch/pi-clearance

Configurable auto-reviewer Pi extension for parsed, structural command policy

Packages

Package details

extensionskill

Install @nklisch/pi-clearance from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@nklisch/pi-clearance
Package
@nklisch/pi-clearance
Version
0.2.5
Published
Aug 23, 2026
Downloads
423/mo · 15/wk
Author
nklisch
License
MIT
Types
extension, skill
Size
34.5 MB
Dependencies
1 dependency · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ],
  "skills": [
    "./src/skill/clearance-tune/SKILL.md",
    "./src/skill/clearance-pack-authoring/SKILL.md"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

Note: Work in progress, expect large changes or updates, breaking things and non-functional features.

Pi Clearance

Pi Clearance is a Pi extension that structurally evaluates tool calls against a sealed deterministic policy, then dispatches only the review bucket through one global mode.

Mode

{ "version": 1 }
  • Off — review-bucket calls pass through and are audited; floor and explicit deterministic denies still block.
  • Ask — review-bucket calls prompt the human, with unattended block-and-log fallback.
  • Auto — model reviewer first, then human/block fallback.

The default runtime mode is ask; a default persisted config is only { "version": 1 }. Choosing Auto through /clearance, /clearance setup, /clearance settings, or /clearance mode auto shows the model/provider, prompt posture, context, and untrusted-context disclosure before writing global config.

User-owned global.json and project overlays written through Clearance are sparse: they contain version and only choices that differ from runtime defaults. Package installation does not read, create, repair, or rewrite user config.

Commands

/clearance
/clearance setup
/clearance mode [off|ask|auto]
/clearance settings
/clearance status
/clearance packs
/clearance scope
/clearance tune
/clearance why

The former profile and auto commands are removed with no aliases. Package installation makes contributed packs available but does not enable them or change Clearance config; user-owned packEnablement.enabledPackagePacks must explicitly enable them.

Safety model

  • Shell and typed Pi tools are analyzed structurally.
  • The sealed floor is always active and cannot be loosened.
  • Invalid config fails closed to floor-only policy.
  • Non-Bash tools bypass Clearance by default. Add exact names to global gatedTools to opt them into analysis and policy; Bash is always gated and cannot be listed.
  • unknownToolPosture remains an advanced config-file-only setting and defaults to allow, applying only to opted-in unknown tools.
  • Model decisions resolve one call and never become policy without Tune approval.

The non-Bash default bypass intentionally makes typed edit/read protections opt-in. This is a published behavioral break that must be called out in the next minor release; this package is not versioned or published by this change.

The built-in baseline includes the former default pack set plus network reads, typed network-research tools, and safe-home typed Pi file tools. Reviewer prompt postures (reviewer.strict, reviewer.default, reviewer.permissive) are confirm-backed settings selectors alongside reviewer model pinning; remaining advanced reviewer fields stay in user-owned config.

See docs/USER_GUIDE.md, docs/CONFIGURATION.md, docs/RULE_PACKS.md, docs/PACK_AUTHORING.md, and docs/REVIEWER_PROMPTS.md.