Skip to content

feat(integrations): a setup skill that proves pasu is in the path - #114

Open
CharmingGroot wants to merge 1 commit into
ci/envoy-e2efrom
feat/setup-skill
Open

CharmingGroot wants to merge 1 commit into
ci/envoy-e2efrom
feat/setup-skill

Conversation

@CharmingGroot

Copy link
Copy Markdown
Owner

Stacked on #113.

integrations/skills/pasu-setup/ is an agent skill that switches pasu on. It is onboarding, not a guard: a skill is instructions to a model, a model under prompt injection can ignore them, and so every decision stays in the pasu process and the kernel layer. The skill says so itself.

What it does

  1. Finds where the agent's LLM traffic goes: gateway configs, base-URL settings, provider format.
  2. Picks the front-end: reverse, ext_proc or LiteLLM.
  3. Drafts rules.yaml from default: deny and the agent's declared tools, then asks the user about each ask/deny.
  4. Wires the front-end from the tested integrations/ examples. It names the settings that must not change, and the three Envoy Gateway settings that switch pasu off silently.
  5. Proves pasu is in the path. This addresses the proxy-bypass gap from the opencode E2E: a pasu that is running but not in the path looks healthy and checks nothing.
    • Through the agent's own base URL, an embeddings call must come back as pasu's 403 (pasu_policy_block), not the provider's answer.
    • The same probe catches Envoy Gateway with processingMode left out or shadowMode on.
    • For LiteLLM, the probe is a test resident-number prompt, or the audit line.

The probe was checked against the binary: through pasu it got a 403 pasu_policy_block; the same request direct to the provider got a 200.

Install

Copy the directory into ~/.claude/skills/ or a project's .claude/skills/. This is documented in integrations/README.md.

Agent-specific hooks (Claude Code, opencode) are deliberately left out. CLAUDE.md keeps per-framework hooks off pasu's path.

🤖 Generated with Claude Code

A pasu that is running but not in the path looks healthy and checks nothing
(the proxy-bypass gap found in the opencode E2E). The skill walks an operator
from finding where the agent's LLM traffic goes to wiring the right
front-end, and ends with a probe through the agent's own base URL: an
embeddings call must come back as pasu's 403, not the provider's answer.

It is onboarding, not a guard. A skill is instructions to a model, and a
model under prompt injection can ignore them, so it decides nothing.

Signed-off-by: Ho Geun Choi <ohyes9711@gmail.com>
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