@tekmidian/pai 0.5.7 → 0.6.0

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.
Files changed (137) hide show
  1. package/ARCHITECTURE.md +72 -1
  2. package/README.md +87 -1
  3. package/dist/{auto-route-BG6I_4B1.mjs → auto-route-C-DrW6BL.mjs} +3 -3
  4. package/dist/{auto-route-BG6I_4B1.mjs.map → auto-route-C-DrW6BL.mjs.map} +1 -1
  5. package/dist/cli/index.mjs +1482 -1628
  6. package/dist/cli/index.mjs.map +1 -1
  7. package/dist/clusters-JIDQW65f.mjs +201 -0
  8. package/dist/clusters-JIDQW65f.mjs.map +1 -0
  9. package/dist/{config-Cf92lGX_.mjs → config-BuhHWyOK.mjs} +21 -6
  10. package/dist/config-BuhHWyOK.mjs.map +1 -0
  11. package/dist/daemon/index.mjs +11 -8
  12. package/dist/daemon/index.mjs.map +1 -1
  13. package/dist/{daemon-2ND5WO2j.mjs → daemon-D3hYb5_C.mjs} +669 -218
  14. package/dist/daemon-D3hYb5_C.mjs.map +1 -0
  15. package/dist/daemon-mcp/index.mjs +4597 -4
  16. package/dist/daemon-mcp/index.mjs.map +1 -1
  17. package/dist/db-DdUperSl.mjs +110 -0
  18. package/dist/db-DdUperSl.mjs.map +1 -0
  19. package/dist/{detect-BU3Nx_2L.mjs → detect-CdaA48EI.mjs} +1 -1
  20. package/dist/{detect-BU3Nx_2L.mjs.map → detect-CdaA48EI.mjs.map} +1 -1
  21. package/dist/{detector-Bp-2SM3x.mjs → detector-jGBuYQJM.mjs} +2 -2
  22. package/dist/{detector-Bp-2SM3x.mjs.map → detector-jGBuYQJM.mjs.map} +1 -1
  23. package/dist/{factory-Bzcy70G9.mjs → factory-Ygqe_bVZ.mjs} +7 -5
  24. package/dist/{factory-Bzcy70G9.mjs.map → factory-Ygqe_bVZ.mjs.map} +1 -1
  25. package/dist/helpers-BEST-4Gx.mjs +420 -0
  26. package/dist/helpers-BEST-4Gx.mjs.map +1 -0
  27. package/dist/hooks/capture-all-events.mjs +2 -2
  28. package/dist/hooks/capture-all-events.mjs.map +3 -3
  29. package/dist/hooks/capture-session-summary.mjs +38 -0
  30. package/dist/hooks/capture-session-summary.mjs.map +3 -3
  31. package/dist/hooks/cleanup-session-files.mjs +6 -12
  32. package/dist/hooks/cleanup-session-files.mjs.map +4 -4
  33. package/dist/hooks/context-compression-hook.mjs +93 -104
  34. package/dist/hooks/context-compression-hook.mjs.map +4 -4
  35. package/dist/hooks/initialize-session.mjs +14 -11
  36. package/dist/hooks/initialize-session.mjs.map +4 -4
  37. package/dist/hooks/inject-observations.mjs +220 -0
  38. package/dist/hooks/inject-observations.mjs.map +7 -0
  39. package/dist/hooks/load-core-context.mjs +2 -2
  40. package/dist/hooks/load-core-context.mjs.map +3 -3
  41. package/dist/hooks/load-project-context.mjs +90 -91
  42. package/dist/hooks/load-project-context.mjs.map +4 -4
  43. package/dist/hooks/observe.mjs +354 -0
  44. package/dist/hooks/observe.mjs.map +7 -0
  45. package/dist/hooks/stop-hook.mjs +94 -107
  46. package/dist/hooks/stop-hook.mjs.map +4 -4
  47. package/dist/hooks/sync-todo-to-md.mjs +31 -33
  48. package/dist/hooks/sync-todo-to-md.mjs.map +4 -4
  49. package/dist/index.d.mts +30 -7
  50. package/dist/index.d.mts.map +1 -1
  51. package/dist/index.mjs +5 -8
  52. package/dist/indexer-D53l5d1U.mjs +1 -0
  53. package/dist/{indexer-backend-CIMXedqk.mjs → indexer-backend-jcJFsmB4.mjs} +37 -127
  54. package/dist/indexer-backend-jcJFsmB4.mjs.map +1 -0
  55. package/dist/{ipc-client-Bjg_a1dc.mjs → ipc-client-CoyUHPod.mjs} +2 -7
  56. package/dist/{ipc-client-Bjg_a1dc.mjs.map → ipc-client-CoyUHPod.mjs.map} +1 -1
  57. package/dist/latent-ideas-bTJo6Omd.mjs +191 -0
  58. package/dist/latent-ideas-bTJo6Omd.mjs.map +1 -0
  59. package/dist/neighborhood-BYYbEkUJ.mjs +135 -0
  60. package/dist/neighborhood-BYYbEkUJ.mjs.map +1 -0
  61. package/dist/note-context-BK24bX8Y.mjs +126 -0
  62. package/dist/note-context-BK24bX8Y.mjs.map +1 -0
  63. package/dist/postgres-CKf-EDtS.mjs +846 -0
  64. package/dist/postgres-CKf-EDtS.mjs.map +1 -0
  65. package/dist/{reranker-D7bRAHi6.mjs → reranker-CMNZcfVx.mjs} +1 -1
  66. package/dist/{reranker-D7bRAHi6.mjs.map → reranker-CMNZcfVx.mjs.map} +1 -1
  67. package/dist/{search-_oHfguA5.mjs → search-DC1qhkKn.mjs} +2 -58
  68. package/dist/search-DC1qhkKn.mjs.map +1 -0
  69. package/dist/{sqlite-WWBq7_2C.mjs → sqlite-l-s9xPjY.mjs} +160 -3
  70. package/dist/sqlite-l-s9xPjY.mjs.map +1 -0
  71. package/dist/state-C6_vqz7w.mjs +102 -0
  72. package/dist/state-C6_vqz7w.mjs.map +1 -0
  73. package/dist/stop-words-BaMEGVeY.mjs +326 -0
  74. package/dist/stop-words-BaMEGVeY.mjs.map +1 -0
  75. package/dist/{indexer-CMPOiY1r.mjs → sync-BOsnEj2-.mjs} +14 -216
  76. package/dist/sync-BOsnEj2-.mjs.map +1 -0
  77. package/dist/themes-BvYF0W8T.mjs +148 -0
  78. package/dist/themes-BvYF0W8T.mjs.map +1 -0
  79. package/dist/{tools-DV_lsiCc.mjs → tools-DcaJlYDN.mjs} +162 -273
  80. package/dist/tools-DcaJlYDN.mjs.map +1 -0
  81. package/dist/trace-CRx9lPuc.mjs +137 -0
  82. package/dist/trace-CRx9lPuc.mjs.map +1 -0
  83. package/dist/{vault-indexer-k-kUlaZ-.mjs → vault-indexer-Bi2cRmn7.mjs} +134 -132
  84. package/dist/vault-indexer-Bi2cRmn7.mjs.map +1 -0
  85. package/dist/zettelkasten-cdajbnPr.mjs +708 -0
  86. package/dist/zettelkasten-cdajbnPr.mjs.map +1 -0
  87. package/package.json +1 -2
  88. package/src/hooks/ts/lib/project-utils/index.ts +50 -0
  89. package/src/hooks/ts/lib/project-utils/notify.ts +75 -0
  90. package/src/hooks/ts/lib/project-utils/paths.ts +218 -0
  91. package/src/hooks/ts/lib/project-utils/session-notes.ts +363 -0
  92. package/src/hooks/ts/lib/project-utils/todo.ts +178 -0
  93. package/src/hooks/ts/lib/project-utils/tokens.ts +39 -0
  94. package/src/hooks/ts/lib/project-utils.ts +40 -1018
  95. package/src/hooks/ts/post-tool-use/observe.ts +327 -0
  96. package/src/hooks/ts/session-end/capture-session-summary.ts +41 -0
  97. package/src/hooks/ts/session-start/inject-observations.ts +254 -0
  98. package/dist/chunker-CbnBe0s0.mjs +0 -191
  99. package/dist/chunker-CbnBe0s0.mjs.map +0 -1
  100. package/dist/config-Cf92lGX_.mjs.map +0 -1
  101. package/dist/daemon-2ND5WO2j.mjs.map +0 -1
  102. package/dist/db-Dp8VXIMR.mjs +0 -212
  103. package/dist/db-Dp8VXIMR.mjs.map +0 -1
  104. package/dist/indexer-CMPOiY1r.mjs.map +0 -1
  105. package/dist/indexer-backend-CIMXedqk.mjs.map +0 -1
  106. package/dist/mcp/index.d.mts +0 -1
  107. package/dist/mcp/index.mjs +0 -500
  108. package/dist/mcp/index.mjs.map +0 -1
  109. package/dist/postgres-FXrHDPcE.mjs +0 -358
  110. package/dist/postgres-FXrHDPcE.mjs.map +0 -1
  111. package/dist/schemas-BFIgGntb.mjs +0 -3405
  112. package/dist/schemas-BFIgGntb.mjs.map +0 -1
  113. package/dist/search-_oHfguA5.mjs.map +0 -1
  114. package/dist/sqlite-WWBq7_2C.mjs.map +0 -1
  115. package/dist/tools-DV_lsiCc.mjs.map +0 -1
  116. package/dist/vault-indexer-k-kUlaZ-.mjs.map +0 -1
  117. package/dist/zettelkasten-e-a4rW_6.mjs +0 -901
  118. package/dist/zettelkasten-e-a4rW_6.mjs.map +0 -1
  119. package/templates/README.md +0 -181
  120. package/templates/skills/CORE/Aesthetic.md +0 -333
  121. package/templates/skills/CORE/CONSTITUTION.md +0 -1502
  122. package/templates/skills/CORE/HistorySystem.md +0 -427
  123. package/templates/skills/CORE/HookSystem.md +0 -1082
  124. package/templates/skills/CORE/Prompting.md +0 -509
  125. package/templates/skills/CORE/ProsodyAgentTemplate.md +0 -53
  126. package/templates/skills/CORE/ProsodyGuide.md +0 -416
  127. package/templates/skills/CORE/SKILL.md +0 -741
  128. package/templates/skills/CORE/SkillSystem.md +0 -213
  129. package/templates/skills/CORE/TerminalTabs.md +0 -119
  130. package/templates/skills/CORE/VOICE.md +0 -106
  131. package/templates/skills/createskill-skill.template.md +0 -78
  132. package/templates/skills/history-system.template.md +0 -371
  133. package/templates/skills/hook-system.template.md +0 -913
  134. package/templates/skills/sessions-skill.template.md +0 -102
  135. package/templates/skills/skill-system.template.md +0 -214
  136. package/templates/skills/terminal-tabs.template.md +0 -120
  137. package/templates/templates.md +0 -20
@@ -1,213 +0,0 @@
1
- # Custom Skill System
2
-
3
- **The MANDATORY configuration system for ALL PAI skills.**
4
-
5
- ---
6
-
7
- ## THIS IS THE AUTHORITATIVE SOURCE
8
-
9
- This document defines the **required structure** for every skill in the PAI system.
10
-
11
- **ALL skill creation MUST follow this structure.**
12
-
13
- **"Canonicalize a skill"** = Restructure it to match this exact format, including TitleCase naming.
14
-
15
- ---
16
-
17
- ## TitleCase Naming Convention (MANDATORY)
18
-
19
- **All naming in the skill system MUST use TitleCase (PascalCase).**
20
-
21
- | Component | Wrong | Correct |
22
- |-----------|-------|---------|
23
- | Skill directory | `createskill`, `create-skill` | `Createskill` |
24
- | Workflow files | `create.md`, `update-info.md` | `Create.md`, `UpdateInfo.md` |
25
- | Reference docs | `prosody-guide.md` | `ProsodyGuide.md` |
26
- | Tool files | `manage-server.ts` | `ManageServer.ts` |
27
- | YAML name | `name: create-skill` | `name: Createskill` |
28
-
29
- **Exception:** `SKILL.md` is always uppercase (convention for the main skill file).
30
-
31
- ---
32
-
33
- ## The Required Structure
34
-
35
- Every SKILL.md has two parts:
36
-
37
- ### 1. YAML Frontmatter (Single-Line Description)
38
-
39
- ```yaml
40
- ---
41
- name: SkillName
42
- description: [What it does]. USE WHEN [intent triggers using OR]. [Additional capabilities].
43
- ---
44
- ```
45
-
46
- **Rules:**
47
- - `name` uses **TitleCase**
48
- - `description` is a **single line** (not multi-line with `|`)
49
- - `USE WHEN` keyword is **MANDATORY** (Claude Code parses this for skill activation)
50
- - Use intent-based triggers with `OR` for multiple conditions
51
- - Max 1024 characters (Anthropic hard limit)
52
-
53
- ### 2. Markdown Body
54
-
55
- ```markdown
56
- # SkillName
57
-
58
- [Brief description]
59
-
60
- ## Workflow Routing
61
-
62
- **When executing a workflow, do BOTH of these:**
63
-
64
- 1. **Call the notification script** (for observability tracking):
65
- ```bash
66
- ~/.claude/Tools/SkillWorkflowNotification WORKFLOWNAME SKILLNAME
67
- ```
68
-
69
- 2. **Output the text notification** (for user visibility):
70
- ```
71
- Running the **WorkflowName** workflow from the **SKILLNAME** skill...
72
- ```
73
-
74
- This ensures workflows appear in the observability dashboard AND the user sees the announcement.
75
-
76
- | Workflow | Trigger | File |
77
- |----------|---------|------|
78
- | **WorkflowOne** | "trigger phrase" | `workflows/WorkflowOne.md` |
79
- | **WorkflowTwo** | "another trigger" | `workflows/WorkflowTwo.md` |
80
-
81
- ## Examples
82
-
83
- **Example 1: [Common use case]**
84
- ```
85
- User: "[Typical user request]"
86
- → Invokes WorkflowOne workflow
87
- → [What skill does]
88
- → [What user gets back]
89
- ```
90
-
91
- ## [Additional Sections]
92
- ```
93
-
94
- ---
95
-
96
- ## Examples Section (REQUIRED)
97
-
98
- **Every skill MUST have an `## Examples` section** showing 2-3 concrete usage patterns.
99
-
100
- **Why Examples Matter:**
101
- - Anthropic research shows examples improve tool selection accuracy from 72% to 90%
102
- - Descriptions tell Claude WHEN to activate; examples show HOW the skill works
103
-
104
- **Example Format:**
105
- ```markdown
106
- ## Examples
107
-
108
- **Example 1: [Use case name]**
109
- ```
110
- User: "[Actual user request]"
111
- → Invokes WorkflowName workflow
112
- → [What the skill does]
113
- → [What user receives back]
114
- ```
115
- ```
116
-
117
- ---
118
-
119
- ## Intent Matching, Not String Matching
120
-
121
- We use **intent matching**, not exact phrase matching.
122
-
123
- **Example description:**
124
- ```yaml
125
- description: Complete blog workflow. USE WHEN user mentions doing anything with their blog, website, site, including things like update, proofread, write, edit, publish, preview, blog posts, or website pages.
126
- ```
127
-
128
- **Key Principles:**
129
- - Use intent language: "user mentions", "user wants to", "including things like"
130
- - Don't list exact phrases in quotes
131
- - Cover the domain conceptually
132
- - Use `OR` to combine multiple trigger conditions
133
-
134
- ---
135
-
136
- ## Directory Structure
137
-
138
- Every skill follows this structure:
139
-
140
- ```
141
- SkillName/ # TitleCase directory name
142
- ├── SKILL.md # Main skill file (always uppercase)
143
- ├── ReferenceDoc.md # Optional: Reference docs (TitleCase)
144
- ├── tools/ # CLI tools (ALWAYS present, even if empty)
145
- │ ├── ToolName.ts # TypeScript CLI tool (TitleCase)
146
- │ └── ToolName.help.md # Tool documentation (TitleCase)
147
- └── workflows/
148
- ├── Create.md # Work execution workflow (TitleCase)
149
- └── Update.md # Work execution workflow (TitleCase)
150
- ```
151
-
152
- ---
153
-
154
- ## Workflows vs Reference Documentation
155
-
156
- **CRITICAL DISTINCTION:**
157
-
158
- ### Workflows (`workflows/` directory)
159
- - Operational procedures (create, update, delete, deploy)
160
- - Step-by-step execution instructions
161
- - Actions that change state or produce output
162
- - Things you "run" or "execute"
163
-
164
- ### Reference Documentation (skill root)
165
- - Guides and how-to documentation
166
- - Specifications and schemas
167
- - Information you "read" or "reference"
168
-
169
- ---
170
-
171
- ## Complete Checklist
172
-
173
- Before a skill is complete:
174
-
175
- ### Naming (TitleCase)
176
- - [ ] Skill directory uses TitleCase
177
- - [ ] All workflow files use TitleCase
178
- - [ ] All reference docs use TitleCase
179
- - [ ] YAML `name:` uses TitleCase
180
-
181
- ### YAML Frontmatter
182
- - [ ] Single-line description with embedded `USE WHEN` clause
183
- - [ ] No separate `triggers:` or `workflows:` arrays
184
- - [ ] Description under 1024 characters
185
-
186
- ### Markdown Body
187
- - [ ] `## Workflow Routing` section with table format
188
- - [ ] `## Examples` section with 2-3 concrete patterns
189
- - [ ] All workflows have routing entries
190
-
191
- ### Structure
192
- - [ ] `tools/` directory exists (even if empty)
193
- - [ ] No `backups/` directory inside skill
194
- - [ ] Workflows contain ONLY execution procedures
195
- - [ ] Reference docs live at skill root
196
-
197
- ---
198
-
199
- ## Summary
200
-
201
- | Component | Purpose | Naming |
202
- |-----------|---------|--------|
203
- | **Skill directory** | Contains all skill files | TitleCase (e.g., `Blogging`) |
204
- | **SKILL.md** | Main skill file | Always uppercase |
205
- | **Workflow files** | Execution procedures | TitleCase (e.g., `Create.md`) |
206
- | **Reference docs** | Information to read | TitleCase (e.g., `ApiReference.md`) |
207
- | **Tool files** | CLI automation | TitleCase (e.g., `ManageServer.ts`) |
208
-
209
- This system ensures:
210
- 1. Skills invoke properly based on intent (USE WHEN in description)
211
- 2. Specific functionality executes accurately (Workflow Routing in body)
212
- 3. All skills have consistent, predictable structure
213
- 4. **All naming follows TitleCase convention**
@@ -1,119 +0,0 @@
1
- # Terminal Tab Title System
2
-
3
- ## Overview
4
-
5
- The PAI system automatically updates your terminal tab title with a 4-word summary of what was done after each task completion. This provides instant visual feedback in your terminal tabs, making it easy to see what each Claude session accomplished.
6
-
7
- ## How It Works
8
-
9
- The `stop-hook.ts` hook runs after every task completion and:
10
-
11
- 1. **Extracts the task summary** from the COMPLETED line in responses
12
- 2. **Generates a 4-word title** that summarizes what was accomplished
13
- 3. **Updates your terminal tab** using ANSI escape sequences
14
-
15
- ## Features
16
-
17
- ### 4-Word Summary Format
18
-
19
- The system creates meaningful 4-word summaries by:
20
- - Using past-tense action verbs (Created, Updated, Fixed, etc.)
21
- - Extracting key nouns from the task
22
- - Prioritizing words from the COMPLETED line when available
23
- - Falling back to the user's original query if needed
24
-
25
- ### Examples
26
-
27
- | User Query | Tab Title |
28
- |------------|-----------|
29
- | "Update the README documentation" | Updated Readme Documentation Done |
30
- | "Fix the stop-hook" | Fixed Stop Hook Successfully |
31
- | "Send email to Angela" | Sent Email Angela Done |
32
- | "Research AI trends" | Researched AI Trends Complete |
33
-
34
- ## Terminal Compatibility
35
-
36
- The tab title system works with terminals that support OSC (Operating System Command) sequences:
37
-
38
- - **Kitty** - Full support
39
- - **iTerm2** - Full support
40
- - **Terminal.app** - Full support
41
- - **Alacritty** - Full support
42
- - **VS Code Terminal** - Full support
43
-
44
- ## Implementation Details
45
-
46
- ### Escape Sequences Used
47
-
48
- ```bash
49
- # OSC 0 - Sets icon and window title
50
- printf '\033]0;Title Here\007'
51
-
52
- # OSC 2 - Sets window title
53
- printf '\033]2;Title Here\007'
54
-
55
- # OSC 30 - Kitty-specific tab title
56
- printf '\033]30;Title Here\007'
57
- ```
58
-
59
- ### Hook Location
60
-
61
- The terminal tab functionality is implemented in:
62
- ```
63
- ${PAI_DIR}/Hooks/stop-hook.ts
64
- ```
65
-
66
- ### Key Functions
67
-
68
- 1. **generateTabTitle(prompt, completedLine)** - Creates the 4-word summary
69
- 2. **setKittyTabTitle(title)** - Sends escape sequences to update the tab
70
- 3. **Hook execution** - Runs automatically after every task
71
-
72
- ## Debugging
73
-
74
- If tab titles aren't updating:
75
-
76
- 1. **Check hook is executable:**
77
- ```bash
78
- ls -la ${PAI_DIR}/Hooks/stop-hook.ts
79
- # Should show: -rwxr-xr-x
80
- ```
81
-
82
- 2. **Verify Claude Code settings:**
83
- - Ensure stop-hook is configured in your Claude Code settings
84
- - Path should be: `${PAI_DIR}/Hooks/stop-hook.ts`
85
-
86
- 3. **Test manually:**
87
- ```bash
88
- printf '\033]0;Test Title\007' >&2
89
- ```
90
-
91
- 4. **Check stderr output:**
92
- The hook logs to stderr with:
93
- - 🏷️ Tab title changes
94
- - 📝 User queries processed
95
- - ✅ Completed text extracted
96
-
97
- ## Customization
98
-
99
- To modify the tab title behavior, edit `${PAI_DIR}/Hooks/stop-hook.ts`:
100
-
101
- - Change word count (currently 4 words)
102
- - Modify verb tense (currently past tense)
103
- - Add custom prefixes or suffixes
104
- - Filter different stop words
105
-
106
- ## Benefits
107
-
108
- - **Visual Task Tracking** - See what each tab accomplished at a glance
109
- - **Multi-Session Management** - Easily identify different Claude sessions
110
- - **Task History** - Tab titles persist as a record of completed work
111
- - **No Manual Updates** - Fully automatic, runs on every task completion
112
-
113
- ## Integration with Voice System
114
-
115
- The terminal tab system works alongside the voice notification system:
116
- - Both extract information from the COMPLETED line
117
- - Tab gets a 4-word visual summary
118
- - Voice speaks the completion message
119
- - Both provide immediate feedback through different channels
@@ -1,106 +0,0 @@
1
- # Voice System Reference
2
-
3
- **This file is a reference pointer to the canonical voice system documentation.**
4
-
5
- ---
6
-
7
- ## 📍 Canonical Documentation Location
8
-
9
- **All voice system documentation is maintained in the voice-server directory:**
10
-
11
- `${PAI_DIR}/voice-server/`
12
-
13
- ---
14
-
15
- ## 📚 Voice Server Documentation
16
-
17
- ### Overview and Setup
18
- **Location:** `${PAI_DIR}/voice-server/README.md`
19
-
20
- **Contains:**
21
- - Voice server overview and features
22
- - Installation and setup instructions
23
- - Service management (start/stop/restart)
24
- - API usage and endpoints
25
- - Voice IDs for all agents
26
- - Menu bar indicator setup
27
- - Configuration options
28
- - Troubleshooting guide
29
-
30
- ### Quick Start
31
- **Location:** `${PAI_DIR}/voice-server/QUICKSTART.md`
32
-
33
- **Contains:**
34
- - 5-minute setup guide
35
- - Minimal configuration steps
36
- - Basic testing commands
37
-
38
- ---
39
-
40
- ## 🎯 Quick Reference
41
-
42
- **Start voice server:**
43
- ```bash
44
- ${PAI_DIR}/voice-server/start.sh
45
- ```
46
-
47
- **Check status:**
48
- ```bash
49
- ${PAI_DIR}/voice-server/status.sh
50
- ```
51
-
52
- **Restart server:**
53
- ```bash
54
- ${PAI_DIR}/voice-server/restart.sh
55
- ```
56
-
57
- **Stop server:**
58
- ```bash
59
- ${PAI_DIR}/voice-server/stop.sh
60
- ```
61
-
62
- **Test voice:**
63
- ```bash
64
- curl -X POST http://localhost:8888/notify \
65
- -H "Content-Type: application/json" \
66
- -d '{"message":"Test message","voice_enabled":true}'
67
- ```
68
-
69
- ---
70
-
71
- ## 🎤 Available Voice IDs
72
-
73
- Voice IDs are ElevenLabs identifiers configured in hook files:
74
-
75
- | Agent | Voice ID | Description |
76
- |-------|----------|-------------|
77
- | PAI (Main) | s3TPKV1kjDlVtZbl4Ksh | UK Male - Professional |
78
- | Researcher | AXdMgz6evoL7OPd7eU12 | US Female - Analytical |
79
- | Engineer | fATgBRI8wg5KkDFg8vBd | US Female - Steady |
80
- | Architect | muZKMsIDGYtIkjjiUS82 | UK Female - Strategic |
81
- | Designer | ZF6FPAbjXT4488VcRRnw | Indian Female - Creative |
82
- | Pentester | xvHLFjaUEpx4BOf7EiDd | UK Male - Technical |
83
-
84
- See `${PAI_DIR}/voice-server/README.md` for complete voice list.
85
-
86
- ---
87
-
88
- ## 🔗 Related Documentation
89
-
90
- - **Prosody Guide:** `${PAI_DIR}/Skills/CORE/prosody-guide.md` (voice parameter tuning)
91
- - **Agent Template:** `${PAI_DIR}/Skills/CORE/prosody-agent-template.md` (creating agent voices)
92
-
93
- ---
94
-
95
- ## ⚠️ Important
96
-
97
- **DO NOT duplicate voice documentation in CORE.**
98
-
99
- - The voice-server directory is the **canonical source** for all voice system documentation
100
- - Duplicating documentation causes version conflicts and maintenance issues
101
- - Always refer to and update voice-server documentation directly
102
- - This reference file should only contain pointers, not duplicated content
103
-
104
- ---
105
-
106
- **Last Updated:** 2025-12-01
@@ -1,78 +0,0 @@
1
- <!-- Generated by PAI Setup -->
2
- ---
3
- name: Createskill
4
- description: MANDATORY skill creation framework for ALL skill creation requests. USE WHEN user wants to create, validate, update, or canonicalize a skill, OR user mentions skill creation, skill development, new skill, build skill, OR user references skill compliance, skill structure, or skill architecture.
5
- ---
6
-
7
- # Createskill
8
-
9
- MANDATORY skill creation framework for ALL skill creation requests.
10
-
11
- ## Authoritative Source
12
-
13
- **Before creating ANY skill, READ:** `${PAI_DIR}/skills/CORE/SkillSystem.md`
14
-
15
- **Canonical example to follow:** Look at existing skills in `~/.claude/skills/` for structure reference.
16
-
17
- ## TitleCase Naming Convention
18
-
19
- **All naming must use TitleCase (PascalCase).**
20
-
21
- | Component | Format | Example |
22
- |-----------|--------|---------|
23
- | Skill directory | TitleCase | `Blogging`, `Daemon`, `CreateSkill` |
24
- | Workflow files | TitleCase.md | `Create.md`, `UpdateDaemonInfo.md` |
25
- | Reference docs | TitleCase.md | `ProsodyGuide.md`, `ApiReference.md` |
26
- | Tool files | TitleCase.ts | `ManageServer.ts` |
27
- | Help files | TitleCase.help.md | `ManageServer.help.md` |
28
-
29
- **Wrong (NEVER use):**
30
- - `createskill`, `create-skill`, `CREATE_SKILL`
31
- - `create.md`, `update-info.md`, `SYNC_REPO.md`
32
-
33
- ## Workflow Routing
34
-
35
- **When executing a workflow, output this notification directly:**
36
-
37
- ```
38
- Running the **WorkflowName** workflow from the **Createskill** skill...
39
- ```
40
-
41
- | Workflow | Trigger | File |
42
- |----------|---------|------|
43
- | **CreateSkill** | "create a new skill" | `workflows/CreateSkill.md` |
44
- | **ValidateSkill** | "validate skill", "check skill" | `workflows/ValidateSkill.md` |
45
- | **UpdateSkill** | "update skill", "add workflow" | `workflows/UpdateSkill.md` |
46
- | **CanonicalizeSkill** | "canonicalize", "fix skill structure" | `workflows/CanonicalizeSkill.md` |
47
-
48
- ## Examples
49
-
50
- **Example 1: Create a new skill from scratch**
51
- ```
52
- User: "Create a skill for managing my recipes"
53
- → Invokes CreateSkill workflow
54
- → Reads SkillSystem.md for structure requirements
55
- → Creates skill directory with TitleCase naming
56
- → Creates SKILL.md, workflows/, tools/
57
- → Generates USE WHEN triggers based on intent
58
- ```
59
-
60
- **Example 2: Fix an existing skill that's not routing properly**
61
- ```
62
- User: "The research skill isn't triggering - validate it"
63
- → Invokes ValidateSkill workflow
64
- → Checks SKILL.md against canonical format
65
- → Verifies TitleCase naming throughout
66
- → Verifies USE WHEN triggers are intent-based
67
- → Reports compliance issues with fixes
68
- ```
69
-
70
- **Example 3: Canonicalize a skill with old naming**
71
- ```
72
- User: "Canonicalize the daemon skill"
73
- → Invokes CanonicalizeSkill workflow
74
- → Renames workflow files to TitleCase
75
- → Updates routing table to match
76
- → Ensures Examples section exists
77
- → Verifies all checklist items
78
- ```