@tekmidian/pai 0.5.7 → 0.6.1
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.
- package/ARCHITECTURE.md +198 -47
- package/FEATURE.md +2 -2
- package/README.md +87 -1
- package/dist/{auto-route-BG6I_4B1.mjs → auto-route-C-DrW6BL.mjs} +3 -3
- package/dist/{auto-route-BG6I_4B1.mjs.map → auto-route-C-DrW6BL.mjs.map} +1 -1
- package/dist/cli/index.mjs +1482 -1628
- package/dist/cli/index.mjs.map +1 -1
- package/dist/clusters-JIDQW65f.mjs +201 -0
- package/dist/clusters-JIDQW65f.mjs.map +1 -0
- package/dist/{config-Cf92lGX_.mjs → config-BuhHWyOK.mjs} +21 -6
- package/dist/config-BuhHWyOK.mjs.map +1 -0
- package/dist/daemon/index.mjs +11 -8
- package/dist/daemon/index.mjs.map +1 -1
- package/dist/{daemon-2ND5WO2j.mjs → daemon-D3hYb5_C.mjs} +669 -218
- package/dist/daemon-D3hYb5_C.mjs.map +1 -0
- package/dist/daemon-mcp/index.mjs +4597 -4
- package/dist/daemon-mcp/index.mjs.map +1 -1
- package/dist/db-DdUperSl.mjs +110 -0
- package/dist/db-DdUperSl.mjs.map +1 -0
- package/dist/{detect-BU3Nx_2L.mjs → detect-CdaA48EI.mjs} +1 -1
- package/dist/{detect-BU3Nx_2L.mjs.map → detect-CdaA48EI.mjs.map} +1 -1
- package/dist/{detector-Bp-2SM3x.mjs → detector-jGBuYQJM.mjs} +2 -2
- package/dist/{detector-Bp-2SM3x.mjs.map → detector-jGBuYQJM.mjs.map} +1 -1
- package/dist/{factory-Bzcy70G9.mjs → factory-Ygqe_bVZ.mjs} +7 -5
- package/dist/{factory-Bzcy70G9.mjs.map → factory-Ygqe_bVZ.mjs.map} +1 -1
- package/dist/helpers-BEST-4Gx.mjs +420 -0
- package/dist/helpers-BEST-4Gx.mjs.map +1 -0
- package/dist/hooks/capture-all-events.mjs +2 -2
- package/dist/hooks/capture-all-events.mjs.map +3 -3
- package/dist/hooks/capture-session-summary.mjs +38 -0
- package/dist/hooks/capture-session-summary.mjs.map +3 -3
- package/dist/hooks/cleanup-session-files.mjs +6 -12
- package/dist/hooks/cleanup-session-files.mjs.map +4 -4
- package/dist/hooks/context-compression-hook.mjs +93 -104
- package/dist/hooks/context-compression-hook.mjs.map +4 -4
- package/dist/hooks/initialize-session.mjs +14 -11
- package/dist/hooks/initialize-session.mjs.map +4 -4
- package/dist/hooks/inject-observations.mjs +220 -0
- package/dist/hooks/inject-observations.mjs.map +7 -0
- package/dist/hooks/load-core-context.mjs +2 -2
- package/dist/hooks/load-core-context.mjs.map +3 -3
- package/dist/hooks/load-project-context.mjs +90 -91
- package/dist/hooks/load-project-context.mjs.map +4 -4
- package/dist/hooks/observe.mjs +354 -0
- package/dist/hooks/observe.mjs.map +7 -0
- package/dist/hooks/stop-hook.mjs +94 -107
- package/dist/hooks/stop-hook.mjs.map +4 -4
- package/dist/hooks/sync-todo-to-md.mjs +31 -33
- package/dist/hooks/sync-todo-to-md.mjs.map +4 -4
- package/dist/index.d.mts +30 -7
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +5 -8
- package/dist/indexer-D53l5d1U.mjs +1 -0
- package/dist/{indexer-backend-CIMXedqk.mjs → indexer-backend-jcJFsmB4.mjs} +37 -127
- package/dist/indexer-backend-jcJFsmB4.mjs.map +1 -0
- package/dist/{ipc-client-Bjg_a1dc.mjs → ipc-client-CoyUHPod.mjs} +2 -7
- package/dist/{ipc-client-Bjg_a1dc.mjs.map → ipc-client-CoyUHPod.mjs.map} +1 -1
- package/dist/latent-ideas-bTJo6Omd.mjs +191 -0
- package/dist/latent-ideas-bTJo6Omd.mjs.map +1 -0
- package/dist/neighborhood-BYYbEkUJ.mjs +135 -0
- package/dist/neighborhood-BYYbEkUJ.mjs.map +1 -0
- package/dist/note-context-BK24bX8Y.mjs +126 -0
- package/dist/note-context-BK24bX8Y.mjs.map +1 -0
- package/dist/postgres-CKf-EDtS.mjs +846 -0
- package/dist/postgres-CKf-EDtS.mjs.map +1 -0
- package/dist/{reranker-D7bRAHi6.mjs → reranker-CMNZcfVx.mjs} +1 -1
- package/dist/{reranker-D7bRAHi6.mjs.map → reranker-CMNZcfVx.mjs.map} +1 -1
- package/dist/{search-_oHfguA5.mjs → search-DC1qhkKn.mjs} +2 -58
- package/dist/search-DC1qhkKn.mjs.map +1 -0
- package/dist/{sqlite-WWBq7_2C.mjs → sqlite-l-s9xPjY.mjs} +160 -3
- package/dist/sqlite-l-s9xPjY.mjs.map +1 -0
- package/dist/state-C6_vqz7w.mjs +102 -0
- package/dist/state-C6_vqz7w.mjs.map +1 -0
- package/dist/stop-words-BaMEGVeY.mjs +326 -0
- package/dist/stop-words-BaMEGVeY.mjs.map +1 -0
- package/dist/{indexer-CMPOiY1r.mjs → sync-BOsnEj2-.mjs} +14 -216
- package/dist/sync-BOsnEj2-.mjs.map +1 -0
- package/dist/themes-BvYF0W8T.mjs +148 -0
- package/dist/themes-BvYF0W8T.mjs.map +1 -0
- package/dist/{tools-DV_lsiCc.mjs → tools-DcaJlYDN.mjs} +162 -273
- package/dist/tools-DcaJlYDN.mjs.map +1 -0
- package/dist/trace-CRx9lPuc.mjs +137 -0
- package/dist/trace-CRx9lPuc.mjs.map +1 -0
- package/dist/{vault-indexer-k-kUlaZ-.mjs → vault-indexer-Bi2cRmn7.mjs} +134 -132
- package/dist/vault-indexer-Bi2cRmn7.mjs.map +1 -0
- package/dist/zettelkasten-cdajbnPr.mjs +708 -0
- package/dist/zettelkasten-cdajbnPr.mjs.map +1 -0
- package/package.json +1 -2
- package/src/hooks/ts/lib/project-utils/index.ts +50 -0
- package/src/hooks/ts/lib/project-utils/notify.ts +75 -0
- package/src/hooks/ts/lib/project-utils/paths.ts +218 -0
- package/src/hooks/ts/lib/project-utils/session-notes.ts +363 -0
- package/src/hooks/ts/lib/project-utils/todo.ts +178 -0
- package/src/hooks/ts/lib/project-utils/tokens.ts +39 -0
- package/src/hooks/ts/lib/project-utils.ts +40 -1018
- package/src/hooks/ts/post-tool-use/observe.ts +327 -0
- package/src/hooks/ts/session-end/capture-session-summary.ts +41 -0
- package/src/hooks/ts/session-start/inject-observations.ts +254 -0
- package/dist/chunker-CbnBe0s0.mjs +0 -191
- package/dist/chunker-CbnBe0s0.mjs.map +0 -1
- package/dist/config-Cf92lGX_.mjs.map +0 -1
- package/dist/daemon-2ND5WO2j.mjs.map +0 -1
- package/dist/db-Dp8VXIMR.mjs +0 -212
- package/dist/db-Dp8VXIMR.mjs.map +0 -1
- package/dist/indexer-CMPOiY1r.mjs.map +0 -1
- package/dist/indexer-backend-CIMXedqk.mjs.map +0 -1
- package/dist/mcp/index.d.mts +0 -1
- package/dist/mcp/index.mjs +0 -500
- package/dist/mcp/index.mjs.map +0 -1
- package/dist/postgres-FXrHDPcE.mjs +0 -358
- package/dist/postgres-FXrHDPcE.mjs.map +0 -1
- package/dist/schemas-BFIgGntb.mjs +0 -3405
- package/dist/schemas-BFIgGntb.mjs.map +0 -1
- package/dist/search-_oHfguA5.mjs.map +0 -1
- package/dist/sqlite-WWBq7_2C.mjs.map +0 -1
- package/dist/tools-DV_lsiCc.mjs.map +0 -1
- package/dist/vault-indexer-k-kUlaZ-.mjs.map +0 -1
- package/dist/zettelkasten-e-a4rW_6.mjs +0 -901
- package/dist/zettelkasten-e-a4rW_6.mjs.map +0 -1
- package/templates/README.md +0 -181
- package/templates/skills/CORE/Aesthetic.md +0 -333
- package/templates/skills/CORE/CONSTITUTION.md +0 -1502
- package/templates/skills/CORE/HistorySystem.md +0 -427
- package/templates/skills/CORE/HookSystem.md +0 -1082
- package/templates/skills/CORE/Prompting.md +0 -509
- package/templates/skills/CORE/ProsodyAgentTemplate.md +0 -53
- package/templates/skills/CORE/ProsodyGuide.md +0 -416
- package/templates/skills/CORE/SKILL.md +0 -741
- package/templates/skills/CORE/SkillSystem.md +0 -213
- package/templates/skills/CORE/TerminalTabs.md +0 -119
- package/templates/skills/CORE/VOICE.md +0 -106
- package/templates/skills/createskill-skill.template.md +0 -78
- package/templates/skills/history-system.template.md +0 -371
- package/templates/skills/hook-system.template.md +0 -913
- package/templates/skills/sessions-skill.template.md +0 -102
- package/templates/skills/skill-system.template.md +0 -214
- package/templates/skills/terminal-tabs.template.md +0 -120
- 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
|
-
```
|