diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 8fbf1e5..e8c3751 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,44 +13,15 @@ "state": { "type": "markdown", "state": { - "file": "templates/tmpl_generic_note.md", - "mode": "preview", - "source": true - }, - "icon": "lucide-file", - "title": "tmpl_generic_note" - } - }, - { - "id": "c0f905cef89022ce", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "100 inbox/Untitled.md", + "file": "300 areas/350 AI/Pi Agent Extensions & Skills.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Untitled" - } - }, - { - "id": "c6fd063107736636", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "000 daily/1778841999-CBOE.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "1778841999-CBOE" + "title": "Pi Agent Extensions & Skills" } } - ], - "currentTab": 2 + ] } ], "direction": "vertical" @@ -200,8 +171,8 @@ "state": { "type": "calendar", "state": {}, - "icon": "lucide-ghost", - "title": "calendar" + "icon": "calendar-with-checkmark", + "title": "Calendar" } } ] @@ -224,38 +195,37 @@ "templater-obsidian:Templater": false } }, - "active": "7066c9273c6fb936", + "active": "845a8e3995ad4a8a", "lastOpenFiles": [ + "000 daily/1778841999-CBOE.md", + "inbox/1778841999-CBOE.md", "100 inbox/Untitled 2.md", "100 inbox/Untitled 1.md", "300 areas/350 AI/Pi Agent Extensions & Skills.md", - "000 daily/1778841999-CBOE.md", - "000 daily", - "templates/Daily_Note_Template.md", - "inbox/1778841999-CBOE.md", - "inbox", "100 inbox/Untitled.md", - "300 areas/350 AI", - "templates/tmpl_generic_note.md", - "300 areas", - "100 inbox/Pi Agent Extensions & Skills.md", - "daily", - "templates/tmpl_media_resource.md", - "templates/tmpl_technical_snippet.md", - "Untitled.canvas", - "templates/tmpl_project.md", + "100 inbox/1778493481-VJZL.md", + "inbox/1778841999-CBOE.md~", "100 inbox/1778533395-ZAPX.md", "100 inbox/1778535439-NWLI.md", "100 inbox/1778545221-MOBT.md", "100 inbox/1778553013-ARYX.md", "100 inbox/1778553155-TGHR.md", "100 inbox/1778553635-RFCE.md", - "100 inbox/1778493481-VJZL.md", + "templates/Daily_Note_Template.md", + "daily", + "inbox", + "templates/tmpl_media_resource.md", + "templates/tmpl_technical_snippet.md", + "Untitled.canvas", + "templates/tmpl_project.md", + "templates/tmpl_generic_note.md", "400 resources/460 Family Archive", "400 resources/450 Recipes", "400 resources/440 Code Cheats Snips CLI", "200 projects/260 Build Create Make", "200 projects/250 IOT", + "200 projects/240 Web Sites", + "300 areas/395 Food", "300 areas/390 Dev Ops Computers.md", "300 areas/350 AI.md", "templates/ai_dev_ops.md", diff --git a/300 areas/350 AI/Pi Agent Extensions & Skills.md b/300 areas/350 AI/Pi Agent Extensions & Skills.md index 965618b..d982c59 100644 --- a/300 areas/350 AI/Pi Agent Extensions & Skills.md +++ b/300 areas/350 AI/Pi Agent Extensions & Skills.md @@ -1,11 +1,6 @@ --- -<<<<<<< HEAD -created: 2026-05-15 18:53 -modified: 2026-05-15 18:53 -======= -created: 2026-05-15 17:41 -modified: 2026-05-15 18:43 ->>>>>>> a3638409a9875f695e34d88eba07364c79f53ef4 +created: 2026-05-16 +modified: 2026-05-16 type: note tags: - ai @@ -30,12 +25,13 @@ aliases: [] | Extension | Source | Purpose | |---|---|---| | **pi-config** | `~/.agents` | `/config-add`, `/config-remove`, `/config-show`, `/config-setup` — manage which extensions/skills are active in a project | -| **tavily-search** | Gitea | `tavily_search` — web search via Tavily API (AI-optimized, replaces need for Google Search) | -| **web-fetch** | `~/.agents` | `web_fetch` — fetch any URL and return clean markdown (HTML, PDF, JS-rendered pages with Jina fallback) | -| **ask-user-question** | `~/.agents` | `ask_user_question` — LLM can present structured multiple-choice / text questions with keyboard UI | +| **tavily-search** | Gitea | `tavily_search` — web search via Tavily API (AI-optimized) | +| **web-fetch** | `~/.agents` | `web_fetch` — fetch any URL and return clean markdown (HTML, PDF, JS-rendered with Jina fallback) | +| **ask-user-question** | `~/.agents` | `ask_user_question` — LLM presents structured multiple-choice / text questions with keyboard UI | | **video-extract** | `~/.agents` | `video_extract` — extract frames from YouTube/local video + full Gemini analysis (requires ffmpeg + yt-dlp + GEMINI_API_KEY) | | **filechanges** | `~/.agents` | `/filechanges`, `/filechanges-accept`, `/filechanges-decline` — tracks every file LLM edits/writes, diff review, revert | | **pi-subagents** (tintinweb v0.7.1) | `~/.agents` | Spawn child Pi agents for delegated tasks (scout, researcher, worker) | +| **pi-prompt-template-model** | npm (global) | Model-switching prompt templates with frontmatter. See [[#Prompt Templates]] section below | | **pi-graphify** | `~/.agents` | Knowledge graph tools: build, query, path tracing, explain, watch, add, update | | **plannotator** | `~/.agents` | Interactive plan review with browser UI, annotations, code review | | **caveman** | `~/.agents` | Ultra-compressed communication mode | @@ -58,11 +54,59 @@ aliases: [] --- +## Prompt Templates + +Prompt templates are `.md` files in `~/.pi/agent/prompts/` with YAML frontmatter. Each defines a slash command that auto-switches model, thinking level, and injects skills — then restores your previous model when done. + +### Installed Templates + +| Command | Model | Thinking | Use | +|---|---|---|---| +| `/quick` | deepseek-v4-flash | — | Fast, cheap tasks | +| `/deep` | kimi-k2.5 | high | Deep analysis, architecture | +| `/review` | kimi-k2.5 | medium | Code review | +| `/nix-check` | qwen-2.5 | low | Run checks + analyze | +| `/research` | deepseek-v4-flash | — | Web research, synthesize | + +### How to use + +``` +/quick what's the weather? +/deep design the architecture for this feature +/review review the changes in this file +/nix-check analyze the nix flake check output +/research find alternatives to this approach +``` + +### Template format + +```yaml +--- +description: Quick task — fast model, minimal thinking +model: openrouter/deepseek-v4-flash +restore: true +--- +$@ +``` + +Key frontmatter fields: +- **`model`** — provider/model-id or comma-separated fallback list +- **`thinking`** — off, minimal, low, medium, high, xhigh +- **`restore`** — (default true) restore previous model when done +- **`skill`** — auto-inject a skill +- **`deterministic`** — run a command/script before the LLM turn (e.g. `nix eval .#checks`) + +### Adding new templates + +Create a new `.md` file in `~/.pi/agent/prompts/` with frontmatter. The filename becomes the command name. Restart Pi or run any extension command to pick them up. + +--- + ## Configuration Files ### Global (`~/.pi/agent/settings.json`) - Nix store symlink — managed via `/etc/nixos/home/sam/home.nix` -- Contains: providers (opencode-go, openrouter, google), packages (pi-memctx, Gitea) +- Contains: providers (opencode-go, openrouter, google), packages (pi-memctx, pi-prompt-template-model, Gitea) - **Read-only** — cannot be modified by `pi install` or `/config-add` ### Project (`/.pi/settings.json`) @@ -81,6 +125,11 @@ aliases: [] | Command | What it does | |---|---| +| `/quick ` | Fast model for quick tasks | +| `/deep ` | Powerful model with extended thinking | +| `/review ` | Thorough code review | +| `/nix-check ` | Nix-specific analysis | +| `/research ` | Web research and synthesis | | `/config-setup` | One-shot: creates `.pi/`, `settings.json`, memory vault in current folder | | `/config-add ext ` | Activate an extension from `~/.agents` | | `/config-add skill ` | Activate a skill from `~/.agents` | @@ -103,12 +152,14 @@ aliases: [] | **bash-guard** (amosblomqvist) | ❌ Too aggressive — would interrupt flow | | **google-image-search** (amosblomqvist) | ❌ Would need Google Search API + CSE setup | | **pdf-reader** (amosblomqvist) | ⏳ Bookmarked — Python + pymupdf setup needed | +| **notify** (mitsuhiko) | ⏳ Minor QoL — desktop notifications on task complete | --- ## Tasks +- [ ] Rebuild NixOS to activate Google provider + ffmpeg/yt-dlp + pi-prompt-template-model +- [ ] Run `/reload` in Pi to activate filechanges and new templates +- [ ] Add more prompt templates to `~/.pi/agent/prompts/` as needed +- [ ] Verify video-extract works with Gemini - [ ] Clean up workspace-map.json entries for any stale memory packs -- [ ] Run `/reload` in Pi to activate filechanges -- [ ] Add ffmpeg + yt-dlp to home.nix (done — needs rebuild) -- [ ] Verify video-extract works with Gemini (GEMINI_API_KEY configured via Google provider)