Commit cab3b4ceda40
Changed files (5)
dots
pi
agent
extensions
dots/config/claude/skills/CodeReview/SKILL.md
@@ -15,6 +15,7 @@ Orchestrates code reviews with specialized focus areas using subagent-based revi
| **security** | `reviewer-security` | OWASP, injection, auth, secrets, untrusted input |
| **performance** | `reviewer-performance` | Complexity, allocations, caching, concurrency |
| **nix** | `reviewer-nix` | Nix idioms, module patterns, eval cost, reproducibility |
+| **architecture** | `oracle` | Code structure, dependencies, trade-offs, design patterns |
| **full** | all of the above | Parallel execution of all focus areas |
## Workflow Routing
dots/config/claude/skills/CORE/SKILL.md
@@ -99,6 +99,10 @@ Explicit permission to:
- **Markdown > XML:** NEVER use XML-style tags in prompts. Use markdown headers instead.
- **Analysis vs Action:** If asked to analyze, do analysis only - don't change things unless asked
+## Formatting Rules
+
+- **File references as links:** When referencing files, format as markdown links: `[filename.el:42](relative/path/to/filename.el#L42)`. Use `#L42-L50` for ranges. Paths relative to project root.
+
## File Organization
- **Scratchpad** (`~/.config/claude/scratchpad/`) - Temporary files only. Delete when done.
@@ -110,6 +114,14 @@ Explicit permission to:
- Never create `backups/` directories inside skills
- Never use `.bak` suffixes
+**Saving to AI Storage (on demand):**
+When the user asks to save, remember, or document work (keywords: "save this", "ai storage", "save session", "save learning"), write to `~/.local/share/ai/` — **NOT** to Claude's memory system (`~/.claude/projects/.../memory/`). Follow the templates in `history-system.md`. Quick rules:
+- **Session**: `~/.local/share/ai/sessions/YYYY-MM/YYYY-MM-DD-description.md`
+- **Learning**: `~/.local/share/ai/learnings/YYYY-MM/YYYY-MM-DD-description.md`
+- **Research**: `~/.local/share/ai/research/YYYY-MM/YYYY-MM-DD-description.md`
+- Use `**Tool:** claude-code` (not `claude` or `pi`)
+- Match the format of recent entries written by Pi — read one first if unsure
+
## Security Protocols
**Quick Security Checklist:**
dots/config/claude/skills/Git/SKILL.md
@@ -1,6 +1,6 @@
---
name: Git
-description: Git version control best practices and workflows. USE WHEN working with git commands, commits, branches, pull requests, rebasing, or version control operations.
+description: Git version control best practices and workflows. USE WHEN working with git commands, commits, branches, rebasing, or version control operations. For GitHub PR management, see the GitHub skill.
---
# Git Best Practices
@@ -36,6 +36,11 @@ When the user's request matches specific Git operations, route to the appropriat
- For general git advice or commit creation, continue with this main skill
- For advanced operations, refer to `Advanced.md`
+## Related Skills
+
+- **GitHub**: For PR management, CI checks, reviews, and issue operations
+- **UsingGitWorktrees**: For creating isolated worktrees
+
## Commit Message Philosophy
**Focus on WHY, not WHAT**
dots/config/claude/skills/Journal/README.md
@@ -0,0 +1,5 @@
+# Journal
+
+This directory contains compiled Emacs Lisp tools (`.elc`) used by the journelly Emacs package for journal operations. These are Emacs-side integrations, not pi skills.
+
+The tools are invoked by Emacs, not by pi directly.
dots/pi/agent/extensions/subagent-commands.ts
@@ -84,6 +84,34 @@ export default function (pi: ExtensionAPI) {
},
});
+ // /oracle - Deep analysis and debugging
+ pi.registerCommand("oracle", {
+ description: "Deep analysis, debugging, and architecture investigation with oracle agent",
+ handler: async (args, ctx) => {
+ if (!args.trim()) {
+ ctx.ui.notify("Usage: /oracle <question or problem>", "error");
+ return;
+ }
+
+ ctx.ui.notify("Dispatching oracle agent...", "info");
+ pi.sendUserMessage(`Use the subagent tool to run the oracle agent with this task: ${args}`);
+ },
+ });
+
+ // /research - Technical research with web search
+ pi.registerCommand("research", {
+ description: "Technical research with web search, GitHub, and Stack Overflow via researcher agent",
+ handler: async (args, ctx) => {
+ if (!args.trim()) {
+ ctx.ui.notify("Usage: /research <topic or question>", "error");
+ return;
+ }
+
+ ctx.ui.notify("Dispatching researcher agent...", "info");
+ pi.sendUserMessage(`Use the subagent tool to run the researcher agent with this task: ${args}`);
+ },
+ });
+
// /subagent-help - Show available agents
pi.registerCommand("subagent-help", {
description: "Show available subagents and usage",
@@ -97,6 +125,8 @@ export default function (pi: ExtensionAPI) {
- \`/implement <query>\` - Full workflow: scout → planner → worker
- \`/scout-and-plan <query>\` - Planning only: scout → planner
- \`/review-code <query>\` - Code review: scout → reviewer
+- \`/oracle <query>\` - Deep analysis, debugging, architecture investigation
+- \`/research <query>\` - Technical research with web search
## Available Agents
@@ -104,6 +134,8 @@ export default function (pi: ExtensionAPI) {
- **planner** (Sonnet) - Creates implementation plans
- **reviewer** (Sonnet) - Code review
- **worker** (Sonnet) - General purpose, full capabilities
+- **oracle** (Opus) - Deep analysis, debugging, architecture decisions
+- **researcher** (Sonnet) - Technical research with web/GitHub/SO search
## Direct Tool Usage