luigidemasi opened a new issue, #72:
URL: https://github.com/apache/camel-kit/issues/72

   > Imported from 
[luigidemasi/camel-kit#132](https://github.com/luigidemasi/camel-kit/issues/132),
 opened by [luigidemasi](https://github.com/luigidemasi) on 2026-07-05.
   > Closed by 
[luigidemasi/camel-kit#134](https://github.com/luigidemasi/camel-kit/pull/134), 
merged on 2026-07-05.
   
   ---
   
   ## Description
   
   Add Pi (https://pi.dev, `@earendil-works/pi-coding-agent`) as a first-class 
Camel-Kit agent target, mirroring the GitHub Copilot CLI integration 
(luigidemasi/camel-kit#129 / PR luigidemasi/camel-kit#130): registry 
descriptor, instruction files, skills install, safety guardrail, MCP config, 
doctor validation, and post-init UX text.
   
   Behavior below was verified against the Pi source at v0.80.3 (commit 
`ee24a9ec`).
   
   ## Proposed artifacts
   
   | Copilot artifact | Pi equivalent |
   |---|---|
   | `.github/copilot-instructions.md` / `AGENTS.md` | `AGENTS.md` reused as-is 
(Pi reads it natively, walk-up concatenation) |
   | `.github/skills/` | `.pi/skills/` — native SKILL.md support; internal 
skills annotated `disable-model-invocation: true` |
   | `.github/mcp.json` | `.mcp.json` consumed by the `pi-mcp-adapter` package 
(`mcpServers` key; allowlists via `directTools`, denials via `excludeTools`) |
   | `.github/hooks/*.json` | `.pi/extensions/camel-kit-guard.ts` — one static 
guard extension interpreting a generated JSON policy file (`tool_call` event, 
`{ block: true, reason }`) |
   | `.github/agents/*.agent.md` | Deferred for v1 — Pi has no native subagents 
(upstream design decision) |
   | Doctor validation | Validate adapter config against a pinned schema; 
headless probes **must** run `pi -a` (see constraints) |
   | Post-init text | `pi` → `/trust` → `/skill:camel-start`; `pi install 
npm:pi-mcp-adapter` |
   
   ## Key constraints (source-verified, v0.80.3)
   
   - Pi's skill parser acts on only `name`, `description`, 
`disable-model-invocation`. `user-invocable` is ignored (emit it anyway — 
harmless, future-proof) and `allowed-tools` is documented but **not 
implemented**.
   - Internal skills cannot be fully hidden: `/skill:name` expansion is 
unconditional and autocomplete lists all skills. `disable-model-invocation: 
true` is the maximum achievable.
   - **Trust gate:** headless runs (`pi -p`) with the default 
`defaultProjectTrust: "ask"` silently skip ALL project `.pi/` resources. 
Doctor/CI must use `pi -a` and assert resources are actually loaded in-session 
(e.g., `--mode json` events), not just exit code 0.
   - MCP requires the third-party `pi-mcp-adapter`; pin the tested Pi + adapter 
versions in `distribution.properties` (skills must not hardcode versions).
   
   ## Open questions to resolve during implementation
   
   1. pi-mcp-adapter config precedence: merge vs replace for same-name servers 
across config levels
   2. Whether the ~200-token `mcp` proxy tool persists when `directTools` 
promotes tools to first-class
   3. Skills placement: `.pi/skills/` vs the cross-agent `.agents/skills/`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to