@tekmidian/pai 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: Art
3
+ description: "Create visual content, diagrams, flowcharts, and AI-generated images. USE WHEN user wants to create visual content, illustrations, diagrams, art, header images, visualizations, mermaid charts, flowcharts, or any visual request."
4
+ ---
5
+
6
+ ## Art Skill
7
+
8
+ USE WHEN user wants to create visual content, illustrations, diagrams, art, header images, visualizations, mermaid charts, flowcharts, or any visual request.
9
+
10
+ ### Aesthetic
11
+
12
+ Tron-meets-Excalidraw — dark slate backgrounds, neon orange + cyan accents, hand-drawn sketch lines, subtle glows. Full details: fetch resource `pai://aesthetic`.
13
+
14
+ ### Workflow Routing by Content Type
15
+
16
+ | Request | Workflow |
17
+ |---------|----------|
18
+ | Unsure which format | `workflows/visualize.md` (adaptive orchestrator) |
19
+ | Blog header / editorial | `workflows/workflow.md` |
20
+ | Flowchart / sequence / state | `workflows/mermaid.md` |
21
+ | Architecture / system diagram | `workflows/technical-diagrams.md` |
22
+ | Classification grid | `workflows/taxonomies.md` |
23
+ | Timeline / chronological | `workflows/timelines.md` |
24
+ | 2x2 matrix / framework | `workflows/frameworks.md` |
25
+ | X vs Y comparison | `workflows/comparisons.md` |
26
+ | Annotated screenshot | `workflows/annotated-screenshots.md` |
27
+ | Quote card | `workflows/aphorisms.md` |
28
+ | Stats / big number | `workflows/stats.md` |
29
+
30
+ ### Image Generation
31
+
32
+ `bun run ${PAI_DIR}/Skills/art/tools/generate-ulart-image.ts --model nano-banana-pro --prompt "[PROMPT]" --size 2K`
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: Createskill
3
+ description: "Create, validate, update, or canonicalize a PAI skill. USE WHEN user wants to create, validate, update, or canonicalize a skill, OR mentions skill creation, new skill, build skill, skill compliance, or skill structure."
4
+ ---
5
+
6
+ ## Createskill Skill
7
+
8
+ USE WHEN user wants to create, validate, update, or canonicalize a skill, OR mentions skill creation, new skill, build skill, skill compliance, or skill structure.
9
+
10
+ Before creating any skill, READ the skill system spec: fetch resource `pai://skill-system`.
11
+
12
+ ### Naming Convention
13
+
14
+ All skill directories and workflow files use TitleCase (PascalCase). NEVER: `createskill`, `create-skill`, `create.md`.
15
+
16
+ ### Workflow Routing
17
+
18
+ | Trigger | Workflow |
19
+ |---------|----------|
20
+ | 'create a new skill' | `workflows/CreateSkill.md` |
21
+ | 'validate skill', 'check skill' | `workflows/ValidateSkill.md` |
22
+ | 'update skill', 'add workflow' | `workflows/UpdateSkill.md` |
23
+ | 'canonicalize', 'fix skill structure' | `workflows/CanonicalizeSkill.md` |
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: Journal
3
+ description: "Create, read, or search personal journal entries. USE WHEN user says 'journal', 'note to self', 'capture this thought', 'journal entry', 'I want to write down', 'reflect on', 'yaja', '/journal', OR wants to record a freeform observation, insight, or personal note."
4
+ ---
5
+
6
+ ## Journal Skill
7
+
8
+ USE WHEN user says 'journal', 'note to self', 'capture this thought', 'journal entry', 'I want to write down', 'reflect on', 'yaja', '/journal', OR wants to record a freeform observation, insight, or personal note.
9
+
10
+ ### Commands
11
+
12
+ | Command | Action |
13
+ |---------|--------|
14
+ | /journal | Create new entry |
15
+ | /journal read | Read today's entries |
16
+ | /journal search <query> | Search past entries |
17
+
18
+ ### Storage
19
+
20
+ `${PAI_DIR}/Journal/YYYY/MM/YYYY-MM-DD.md` — one file per day, entries appended with `---` separators.
21
+
22
+ ### Entry Format
23
+
24
+ `**HH:MM** — [content]\
25
+ \
26
+ #tags`
27
+
28
+ ### Auto-Tagging
29
+
30
+ Active project → `#project-name`, work → `#work`, mood → `#reflection`, idea → `#idea`, person → `#people`.
31
+
32
+ ### Rules
33
+
34
+ Append-only. Never edit or delete existing entries. Preserve the user's voice — do not paraphrase. Voice entries via WhatsApp: clean up filler words, confirm with `whatsapp_tts`.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: Name
3
+ description: "Name or rename the current session. USE WHEN user says '/name', 'name this session', 'rename session', OR wants to label what they're working on."
4
+ ---
5
+
6
+ ## Name Skill
7
+
8
+ USE WHEN user says '/name', 'name this session', 'rename session', OR wants to label what they're working on.
9
+
10
+ Call `aibroker_rename` with the provided name. Updates: AIBroker session registry, iTerm2 tab title, statusline display.
11
+
12
+ Usage: `/name <new name>` — immediately call `aibroker_rename`, no confirmation needed.
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: Observability
3
+ description: "Start, stop, or check the multi-agent observability dashboard. USE WHEN user says 'start observability', 'stop dashboard', 'restart observability', 'monitor agents', 'show agent activity', or needs to debug multi-agent workflows."
4
+ ---
5
+
6
+ ## Observability Skill
7
+
8
+ USE WHEN user says 'start observability', 'stop dashboard', 'restart observability', 'monitor agents', 'show agent activity', or needs to debug multi-agent workflows.
9
+
10
+ ### Commands
11
+
12
+ ```bash
13
+ ~/.claude/Skills/observability/manage.sh start # Start server + dashboard
14
+ ~/.claude/Skills/observability/manage.sh stop # Stop everything
15
+ ~/.claude/Skills/observability/manage.sh restart # Restart both
16
+ ~/.claude/Skills/observability/manage.sh status # Check status
17
+ ```
18
+
19
+ ### Access
20
+
21
+ Dashboard UI: http://localhost:5172 | Server API: http://localhost:4000
22
+
23
+ ### What It Monitors
24
+
25
+ Agent session starts/ends, tool calls across all agents, hook event execution, session timelines. Data source: `~/.claude/History/raw-outputs/YYYY-MM/YYYY-MM-DD_all-events.jsonl`.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Plan
3
+ description: "Plan tomorrow, the week, or the month based on open tasks and calendar. USE WHEN user says 'plan', 'what should I focus on', 'plan tomorrow', 'plan my week', 'what\\'s next', 'priorities', 'focus areas', '/plan', OR asks about upcoming work priorities or wants to set intentions for a time period."
4
+ ---
5
+
6
+ ## Plan Skill
7
+
8
+ USE WHEN user says 'plan', 'what should I focus on', 'plan tomorrow', 'plan my week', 'what\'s next', 'priorities', 'focus areas', '/plan', OR asks about upcoming work priorities or wants to set intentions for a time period.
9
+
10
+ ### Commands
11
+
12
+ | Subcommand | Scope |
13
+ |------------|-------|
14
+ | /plan tomorrow | Next day, DEFAULT |
15
+ | /plan week | Next 7 days |
16
+ | /plan month | Next 30 days |
17
+
18
+ ### Data Sources
19
+
20
+ Open TODO items `[ ]`, in-progress items `[~]`, calendar events, recent review data, journal insights tagged `#idea`, SeriousLetter pipeline.
21
+
22
+ ### Output Format
23
+
24
+ Must Do / Should Do / Could Do (3-5 focus items max). Calendar constraints. Energy note from journal. Second-person, specific ('Add journal table to federation.db', NOT 'work on PAI').
25
+
26
+ ### Rules
27
+
28
+ Never more than 7 focus items. Never plan without checking calendar first. Offer to save plan to journal.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: Research
3
+ description: "Web research, content extraction, and wisdom analysis via parallel agents. USE WHEN user says 'do research', 'extract wisdom', 'analyze content', 'find information about', or requests web/content research."
4
+ ---
5
+
6
+ ## Research Skill
7
+
8
+ USE WHEN user says 'do research', 'extract wisdom', 'analyze content', 'find information about', or requests web/content research.
9
+
10
+ ### Research Modes
11
+
12
+ - Quick: 1 agent per type, 2 min timeout
13
+ - Standard (default): 3 agents per type, 3 min timeout
14
+ - Extensive: 8 agents per type, 10 min timeout
15
+
16
+ ### Available Agents
17
+
18
+ `claude-researcher` (free, WebSearch), `perplexity-researcher` (PERPLEXITY_API_KEY), `gemini-researcher` (GOOGLE_API_KEY).
19
+
20
+ ### Workflow Routing
21
+
22
+ - Parallel research → read `${PAI_DIR}/Skills/research/workflows/conduct.md`
23
+ - Claude research (free) → `workflows/claude-research.md`
24
+ - Blocked content / CAPTCHA → escalate: WebFetch → BrightData → Apify
25
+ - YouTube URL → `fabric -y <URL>` then pattern
26
+ - Fabric patterns → 242+ patterns including: `extract_wisdom`, `summarize`, `create_threat_model`, `analyze_claims`, `improve_writing`
27
+
28
+ ### Fabric Usage
29
+
30
+ `fabric [input] -p [pattern]` or `fabric -u "URL" -p [pattern]` or `fabric -y "YOUTUBE_URL" -p [pattern]`
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: Review
3
+ description: "Weekly/daily/monthly review of work accomplished. USE WHEN user says 'review', 'what did I do', 'this week', 'weekly review', 'daily review', 'monthly review', 'what have we achieved', 'reflect', 'retrospective', 'recap', '/review', OR asks about accomplishments over a time period."
4
+ ---
5
+
6
+ ## Review Skill
7
+
8
+ USE WHEN user says 'review', 'what did I do', 'this week', 'weekly review', 'daily review', 'monthly review', 'what have we achieved', 'reflect', 'retrospective', 'recap', '/review', OR asks about accomplishments over a time period.
9
+
10
+ ### MANDATORY FIRST ACTIONS
11
+
12
+ When this skill triggers, first announce: "Running **PAI Review** for [period]..."
13
+
14
+ Then execute these steps IN ORDER before doing anything else. Do NOT call Calendar, Todoist, Gmail, or any external MCP until steps 1-4 are complete.
15
+
16
+ **Step 1: Find PAI session notes for the period.**
17
+
18
+ find ~/.claude/projects/*/Notes -name "*.md" 2>/dev/null | grep "YYYY-MM-DD"
19
+
20
+ Session notes are at ~/.claude/projects/*/Notes/NNNN - YYYY-MM-DD - Description.md. Read each matching file. These describe what was actually worked on.
21
+
22
+ **Step 2: Check git commits for the period.**
23
+
24
+ git log --after="YYYY-MM-DD" --before="YYYY-MM-DD" --oneline --all
25
+
26
+ Run this in ~/dev/ai/PAI/ and any other project directory found in session notes.
27
+
28
+ **Step 3: Check completed TODO items.**
29
+
30
+ Search for `[x]` items in Notes/TODO.md files of active projects.
31
+
32
+ **Step 4: Check journal entries.**
33
+
34
+ find ~/Daten/Cloud/Development/ai/PAI/Journal/ -name "YYYY-MM-DD*" 2>/dev/null
35
+
36
+ **Step 5 (ONLY AFTER 1-4): External sources.**
37
+
38
+ Now you may check: Calendar (gcal_list_events), Todoist (find-completed-tasks), SeriousLetter (sl_list_jobs). Gmail only if specifically relevant.
39
+
40
+ ### Period Selection
41
+
42
+ | Subcommand | Period |
43
+ |------------|--------|
44
+ | /review today | Today |
45
+ | /review week | Current week (Mon-Sun), DEFAULT if no period |
46
+ | /review month | Current calendar month |
47
+ | /review year | Current calendar year |
48
+
49
+ ### Output Rules
50
+
51
+ **Group by THEME, not chronology.** Sections: project themes, job search, personal, key decisions, numbers (sessions/commits/tasks).
52
+
53
+ Second person voice ("You built...", "You applied to..."). Concise but warm.
54
+
55
+ Highlight completed/shipped items. Briefly note unfinished work.
56
+
57
+ **WhatsApp:** Bold headers only, no markdown headers or code blocks, under 2000 chars.
58
+ **Voice (TTS):** 30-60 sec conversational summary, top 3-5 achievements, no asterisks/markdown.
@@ -0,0 +1,14 @@
1
+ ---
2
+ name: Route
3
+ description: "Detect which PAI project the current session belongs to. USE WHEN user says 'route', 'what project is this', 'tag this session', 'where does this belong', 'categorize this session', OR starting work in an unfamiliar directory needing to connect to a PAI project."
4
+ ---
5
+
6
+ ## Route Skill
7
+
8
+ USE WHEN user says 'route', 'what project is this', 'tag this session', 'where does this belong', 'categorize this session', OR starting work in an unfamiliar directory needing to connect to a PAI project.
9
+
10
+ Detects current session context, searches PAI memory semantically and by keyword, and suggests which PAI project to route the session to.
11
+
12
+ ### Workflow
13
+
14
+ Read CWD + project markers → search PAI memory → present top 3-5 matching projects with confidence → user picks → route and tag session.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: SearchHistory
3
+ description: "Search past sessions, history, and previous work by keyword. USE WHEN user says 'search history', 'find past', 'what did we do', 'when did we', OR asks about previous sessions, past work, or historical context."
4
+ ---
5
+
6
+ ## SearchHistory Skill
7
+
8
+ USE WHEN user says 'search history', 'find past', 'what did we do', 'when did we', OR asks about previous sessions, past work, or historical context.
9
+
10
+ ### Search Commands
11
+
12
+ ```bash
13
+ # Keyword search across all history and project notes
14
+ rg -i -l "$QUERY" ~/.claude/History/ ~/.claude/projects/*/Notes/
15
+
16
+ # Recent files (last 7 days)
17
+ find ~/.claude/projects/*/Notes -name "*.md" -mtime -7 | xargs ls -lt | head -10
18
+
19
+ # Search prompts (what did I ask about X?)
20
+ rg -i '"prompt":.*KEYWORD' ~/.claude/History/raw-outputs/
21
+ ```
22
+
23
+ ### Locations
24
+
25
+ | Content | Location |
26
+ |---------|----------|
27
+ | Session notes | `~/.claude/projects/*/Notes/*.md` |
28
+ | History sessions | `~/.claude/History/sessions/YYYY-MM/` |
29
+ | Learnings | `~/.claude/History/Learnings/YYYY-MM/` |
30
+ | Decisions | `~/.claude/History/Decisions/YYYY-MM/` |
31
+ | All prompts | `~/.claude/History/raw-outputs/YYYY-MM/*_all-events.jsonl` |
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Sessions
3
+ description: "Navigate sessions, projects, and switch working context. USE WHEN user says 'list sessions', 'where was I working', 'show my sessions', 'find session', 'continue work from', 'switch to project', 'open project', 'name project', 'work on X', 'show me what we did on X', OR asks about past sessions, previous work, or project navigation."
4
+ ---
5
+
6
+ ## Sessions Skill
7
+
8
+ USE WHEN user says 'list sessions', 'where was I working', 'show my sessions', 'find session', 'continue work from', 'switch to project', 'open project', 'name project', 'work on X', 'show me what we did on X', OR asks about past sessions, previous work, or project navigation.
9
+
10
+ ### Key Commands
11
+
12
+ | Command | Action |
13
+ |---------|--------|
14
+ | pai session active | Show currently open Claude Code sessions |
15
+ | pai session list | Full session list |
16
+ | pai search "keyword" | Find sessions by keyword |
17
+ | pai route <project> | Route notes to a project |
18
+ | pai route | Show current routing |
19
+ | pai route clear | Stop routing |
20
+ | pai open <project> --claude | Open project in new tab |
21
+ | pai name "Name" | Name current project |
22
+
23
+ ### Intent Routing
24
+
25
+ - 'Work on X' / 'Start working on kioskpilot' → `pai route <project>`, then read that project's TODO.md
26
+ - 'Show me sessions for PAI' / 'What did we do on X?' → `pai search <project>`
27
+ - 'List sessions' → run `pai session active` FIRST (show active tabs prominently), then `pai session list`
28
+ - 'Where are my notes going?' → `pai route` (no args)
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: Share
3
+ description: "Generate LinkedIn, X/Twitter, or Bluesky posts about completed work. USE WHEN user says 'share on linkedin', 'post about', 'write a tweet about', '/share', 'linkedin post', 'tweet this', 'publish to X', 'bluesky post', 'post to bluesky', OR wants to create social media content about their work."
4
+ ---
5
+
6
+ ## Share Skill
7
+
8
+ USE WHEN user says 'share on linkedin', 'post about', 'write a tweet about', '/share', 'linkedin post', 'tweet this', 'publish to X', 'bluesky post', 'post to bluesky', OR wants to create social media content about their work.
9
+
10
+ ### Commands
11
+
12
+ | Subcommand | Platform | Period |
13
+ |------------|----------|--------|
14
+ | /share linkedin week | LinkedIn | Current week |
15
+ | /share linkedin today | LinkedIn | Today |
16
+ | /share linkedin "topic" | LinkedIn | Topic-filtered |
17
+ | /share x | X/Twitter | Today |
18
+ | /share x "topic" | X/Twitter | Topic-filtered |
19
+ | /share bluesky | Bluesky | Today |
20
+
21
+ ### LinkedIn Rules
22
+
23
+ 1000-2000 chars, first-person builder voice, concrete hook opener, 3-5 hashtags at end. NEVER: 'leverage', 'synergy', 'excited to share'. YES: specific versions, numbers, performance deltas.
24
+
25
+ ### X/Twitter Rules
26
+
27
+ Max 280 chars, 0-2 hashtags, lead with the interesting thing. Thread format: 3-5 tweets numbered '1/' '2/' etc. Offer to post via `mcp__x__send_tweet` — ALWAYS ask before posting.
28
+
29
+ ### Bluesky Rules
30
+
31
+ Max 300 chars, no hashtags needed, warmer than X but still technical. Copy-paste only.
32
+
33
+ ### Content Rule
34
+
35
+ Always gather real data first. If no interesting content found, say so rather than inflate.
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: StoryExplanation
3
+ description: "Create numbered narrative story explanations of any content. USE WHEN user explicitly says '/story', 'create story explanation', 'run CSE', 'explain this as a story', 'story with links', 'deep story'. Do NOT activate on vague mentions of 'story'."
4
+ ---
5
+
6
+ ## StoryExplanation Skill
7
+
8
+ USE WHEN user explicitly says '/story', 'create story explanation', 'run CSE', 'explain this as a story', 'story with links', 'deep story'. Do NOT activate on vague mentions of 'story'.
9
+
10
+ ### Commands
11
+
12
+ | Command | Output |
13
+ |---------|--------|
14
+ | /story [content] | 8 numbered narrative points (default) |
15
+ | /story [N] [content] | N numbered points (3-50) |
16
+ | /story deep [content] | 20+ points deep dive |
17
+ | /story links [content] | N points with inline links |
18
+
19
+ ### Input Sources
20
+
21
+ URL (WebFetch), YouTube URL (`fabric -y <URL>`), file path (Read), pasted text (direct).
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: VaultConnect
3
+ description: "Find connections between two topics in the Obsidian vault. USE WHEN user says 'connect X and Y', 'how does X relate to Y', 'find path between', 'bridge topics', '/vault-connect', OR asks how two ideas are connected in the vault."
4
+ ---
5
+
6
+ ## VaultConnect Skill
7
+
8
+ USE WHEN user says 'connect X and Y', 'how does X relate to Y', 'find path between', 'bridge topics', '/vault-connect', OR asks how two ideas are connected in the vault.
9
+
10
+ Finds connections between two topics via the wikilink graph: direct links → 1-hop bridges → 2-hop paths. If no path found, offers to create a bridge note.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: VaultContext
3
+ description: "Load Obsidian vault context for a morning briefing. USE WHEN user says 'load vault context', 'brief me from Obsidian', 'morning briefing', '/vault-context', 'what am I working on', 'what\\'s in my vault'."
4
+ ---
5
+
6
+ ## VaultContext Skill
7
+
8
+ USE WHEN user says 'load vault context', 'brief me from Obsidian', 'morning briefing', '/vault-context', 'what am I working on', 'what\'s in my vault'.
9
+
10
+ Reads: daily note → open TODOs → PAI index (active projects) → HOME.md (focus areas) → recent insights. Synthesizes into morning briefing with Suggested First Action.
11
+
12
+ All vault skills work with the vault configured in `~/.config/pai/config.json` (`vaultPath` key).
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: VaultEmerge
3
+ description: "Surface emerging themes and clusters forming in the vault. USE WHEN user says 'what\\'s emerging', 'find patterns', 'emerging clusters', 'themes in vault', '/vault-emerge', 'new projects forming', 'what am I thinking about', 'recent themes'."
4
+ ---
5
+
6
+ ## VaultEmerge Skill
7
+
8
+ USE WHEN user says 'what\'s emerging', 'find patterns', 'emerging clusters', 'themes in vault', '/vault-emerge', 'new projects forming', 'what am I thinking about', 'recent themes'.
9
+
10
+ Finds notes modified in last 90 days sharing keywords but not yet linked to each other. Surfaces top 8-10 emerging clusters with note counts and folder diversity. Offers to create MOC (Map of Content) index notes for top clusters.
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: VaultOrphans
3
+ description: "Find and reconnect orphaned notes with zero inbound links. USE WHEN user says 'find orphans', 'orphaned notes', 'unlinked notes', 'vault orphans', '/vault-orphans', 'clean up vault graph', 'disconnected notes'."
4
+ ---
5
+
6
+ ## VaultOrphans Skill
7
+
8
+ USE WHEN user says 'find orphans', 'orphaned notes', 'unlinked notes', 'vault orphans', '/vault-orphans', 'clean up vault graph', 'disconnected notes'.
9
+
10
+ Finds notes with zero inbound wikilinks. Groups by top-level folder. Excludes expected orphan folders (PAI/, Daily Notes/). For each orphan, suggests connections to existing notes and drafts specific wikilink text.
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: VaultTrace
3
+ description: "Trace the evolution of an idea across vault notes over time. USE WHEN user says 'trace idea', 'how did X evolve', 'history of X in notes', 'when did I first write about', '/vault-trace', 'timeline of X', 'track idea evolution', 'idea history'."
4
+ ---
5
+
6
+ ## VaultTrace Skill
7
+
8
+ USE WHEN user says 'trace idea', 'how did X evolve', 'history of X in notes', 'when did I first write about', '/vault-trace', 'timeline of X', 'track idea evolution', 'idea history'.
9
+
10
+ Builds a chronological timeline of how an idea first appeared and evolved across vault notes. Extracts relevant excerpts. Identifies inflection points where framing shifted. Summarizes the evolution arc (first appearance → development → current state).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekmidian/pai",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "PAI Knowledge OS — Personal AI Infrastructure with federated memory and project management",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",
@@ -17,6 +17,7 @@
17
17
  "statusline-command.sh",
18
18
  "tab-color-command.sh",
19
19
  "scripts/build-hooks.mjs",
20
+ "scripts/build-skill-stubs.mjs",
20
21
  "src/hooks",
21
22
  "README.md",
22
23
  "LICENSE",
@@ -47,7 +48,7 @@
47
48
  "pai-daemon-mcp": "dist/daemon-mcp/index.mjs"
48
49
  },
49
50
  "scripts": {
50
- "build": "tsdown && node scripts/build-hooks.mjs",
51
+ "build": "tsdown && node scripts/build-hooks.mjs && node scripts/build-skill-stubs.mjs --sync",
51
52
  "dev": "tsdown --watch",
52
53
  "test": "vitest",
53
54
  "lint": "tsc --noEmit",