claude-comms 1.0.31 → 1.0.33

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,567 @@
1
+ # Install Annotated Feedback Widget
2
+
3
+ Guide the user through installing the `annotated-feedback` widget in their application. This widget provides visual feedback annotation capabilities with screenshot capture and Convex backend integration.
4
+
5
+ ## ⚠️ PREREQUISITES - MUST COMPLETE BEFORE STARTING
6
+
7
+ **STOP! Before proceeding, ask the user:**
8
+
9
+ 1. **Do you have a Convex deployment URL?**
10
+ - Format: `https://xxx-xxx-123.convex.cloud`
11
+ - If NO: Guide them to create one at https://dashboard.convex.dev
12
+ - They MUST provide this URL before installation can proceed
13
+
14
+ 2. **What is your project name?**
15
+ - If not provided: Use the current repository name as the default
16
+ - Command to get repo name: `basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD`
17
+ - This will be used as the namespace for feedback submissions
18
+
19
+ **DO NOT PROCEED** until you have:
20
+ - ✅ Convex deployment URL (verified format)
21
+ - ✅ Project name (user-provided or auto-detected from repo)
22
+
23
+ ---
24
+
25
+ ## CRITICAL CONTEXT
26
+
27
+ **Package Details:**
28
+ - NPM Package: `annotated-feedback` (NOT `annotated-feedback-widget`)
29
+ - Current Version: 0.1.18+
30
+ - Import Paths:
31
+ - Components: `annotated-feedback/widget`
32
+ - Styles: `annotated-feedback/widget/styles`
33
+ - Framework: React-based (requires React 18+ as peer dependency)
34
+ - Backend: Convex (user provides deployment URL)
35
+
36
+ **What This Widget Does:**
37
+ - Provides a floating feedback button and hotkey (default: Alt+F)
38
+ - Opens an overlay with Excalidraw drawing tools
39
+ - Captures viewport screenshots with PII redaction
40
+ - Submits annotated feedback to Convex backend
41
+ - Includes metadata: route, environment, project name, feature flags
42
+
43
+ **Dependencies Included (as of v0.1.18):**
44
+ - `@excalidraw/excalidraw` - Drawing canvas
45
+ - `convex` - Backend client
46
+ - `html-to-image` - Screenshot capture
47
+ - All are automatically installed as transitive dependencies
48
+
49
+ ---
50
+
51
+ ## INSTALLATION PROCESS
52
+
53
+ ### Step 1: Detect Framework
54
+
55
+ Ask the user:
56
+ 1. What framework are they using? (React, Next.js, Vue, Svelte, vanilla JS, etc.)
57
+ 2. What bundler? (Vite, Webpack, etc.)
58
+ 3. Do they have a Convex deployment URL? (If not, guide them to create one at https://dashboard.convex.dev)
59
+
60
+ ### Step 2: Install Dependencies
61
+
62
+ **For ALL frameworks:**
63
+
64
+ ```bash
65
+ # Install the widget package
66
+ pnpm add annotated-feedback
67
+ # or
68
+ npm install annotated-feedback
69
+ # or
70
+ yarn add annotated-feedback
71
+ ```
72
+
73
+ **For React/Next.js:**
74
+ - React 18+ should already be installed (peer dependency)
75
+ - No additional deps needed
76
+
77
+ **For Non-React frameworks (Vue, Svelte, vanilla JS):**
78
+
79
+ ```bash
80
+ # Install React as peer dependency
81
+ pnpm add react react-dom
82
+ ```
83
+
84
+ **TypeScript Projects:**
85
+
86
+ ```bash
87
+ # Install type definitions
88
+ pnpm add -D @types/react @types/react-dom
89
+ ```
90
+
91
+ ---
92
+
93
+ ## FRAMEWORK-SPECIFIC INTEGRATION
94
+
95
+ ### React / Next.js App Router
96
+
97
+ **File: `app/layout.tsx` (or root layout)**
98
+
99
+ ```tsx
100
+ import { FeedbackProvider } from 'annotated-feedback/widget';
101
+ import 'annotated-feedback/widget/styles';
102
+
103
+ export default function RootLayout({ children }) {
104
+ return (
105
+ <html>
106
+ <body>
107
+ <FeedbackProvider
108
+ convexUrl={process.env.NEXT_PUBLIC_CONVEX_URL!}
109
+ project="your-project-name"
110
+ enabled={process.env.NODE_ENV !== 'production'}
111
+ hotkey="Alt+F"
112
+ showButton={true}
113
+ getContext={() => ({
114
+ route: window.location.pathname,
115
+ env: process.env.NODE_ENV,
116
+ releaseId: process.env.NEXT_PUBLIC_RELEASE_ID,
117
+ })}
118
+ >
119
+ {children}
120
+ </FeedbackProvider>
121
+ </body>
122
+ </html>
123
+ );
124
+ }
125
+ ```
126
+
127
+ **Environment Variables (`.env.local`):**
128
+
129
+ ```bash
130
+ NEXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud
131
+ ```
132
+
133
+ ---
134
+
135
+ ### Vue 3 (Vite)
136
+
137
+ **CRITICAL: Vue requires special configuration to handle React widget**
138
+
139
+ #### Step 2.1: Install Vite React Plugin
140
+
141
+ ```bash
142
+ pnpm add -D @vitejs/plugin-react
143
+ ```
144
+
145
+ #### Step 2.2: Update `vite.config.ts`
146
+
147
+ ```typescript
148
+ import { defineConfig } from 'vite'
149
+ import vue from '@vitejs/plugin-vue'
150
+ import react from '@vitejs/plugin-react'
151
+ import path from 'path'
152
+ import { fileURLToPath } from 'url'
153
+
154
+ const __dirname = path.dirname(fileURLToPath(import.meta.url))
155
+
156
+ export default defineConfig({
157
+ plugins: [
158
+ vue(),
159
+ react() // Enable React support for widget
160
+ ],
161
+ resolve: {
162
+ // Dedupe React to prevent multiple instances (CRITICAL!)
163
+ dedupe: ['react', 'react-dom', 'react/jsx-runtime'],
164
+ alias: {
165
+ // Force all React imports to use the same instance
166
+ 'react': path.resolve(__dirname, 'node_modules/.pnpm/react@18.3.1/node_modules/react'),
167
+ 'react-dom': path.resolve(__dirname, 'node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom'),
168
+ 'react/jsx-runtime': path.resolve(__dirname, 'node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime'),
169
+ }
170
+ },
171
+ optimizeDeps: {
172
+ include: ['react', 'react-dom', 'react/jsx-runtime']
173
+ }
174
+ })
175
+ ```
176
+
177
+ **IMPORTANT:** Adjust the version numbers in the alias paths to match the installed React version (check `node_modules/.pnpm/`).
178
+
179
+ #### Step 2.3: Create Vue Wrapper Component
180
+
181
+ **File: `src/components/FeedbackWidget.vue`**
182
+
183
+ ```vue
184
+ <template>
185
+ <div ref="feedbackContainer"></div>
186
+ </template>
187
+
188
+ <script setup lang="ts">
189
+ import { ref, onMounted, onBeforeUnmount } from 'vue';
190
+ import { createRoot, type Root } from 'react-dom/client';
191
+ import React from 'react';
192
+ import { FeedbackProvider } from 'annotated-feedback/widget';
193
+ import 'annotated-feedback/widget/styles';
194
+
195
+ const props = defineProps<{
196
+ convexUrl: string;
197
+ project: string;
198
+ enabled?: boolean;
199
+ hotkey?: string;
200
+ showButton?: boolean;
201
+ }>();
202
+
203
+ const feedbackContainer = ref<HTMLDivElement | null>(null);
204
+ let reactRoot: Root | null = null;
205
+
206
+ onMounted(() => {
207
+ if (!feedbackContainer.value) return;
208
+
209
+ reactRoot = createRoot(feedbackContainer.value);
210
+
211
+ reactRoot.render(
212
+ React.createElement(
213
+ FeedbackProvider,
214
+ {
215
+ convexUrl: props.convexUrl,
216
+ project: props.project,
217
+ enabled: props.enabled ?? true,
218
+ hotkey: props.hotkey ?? 'Alt+F',
219
+ showButton: props.showButton ?? false,
220
+ getContext: () => ({
221
+ route: window.location.pathname,
222
+ url: window.location.href,
223
+ env: import.meta.env.MODE,
224
+ }),
225
+ children: React.createElement(React.Fragment, null)
226
+ }
227
+ )
228
+ );
229
+ });
230
+
231
+ onBeforeUnmount(() => {
232
+ if (reactRoot) {
233
+ reactRoot.unmount();
234
+ reactRoot = null;
235
+ }
236
+ });
237
+ </script>
238
+ ```
239
+
240
+ #### Step 2.4: Integrate in App
241
+
242
+ **File: `src/App.vue`**
243
+
244
+ ```vue
245
+ <template>
246
+ <div>
247
+ <!-- Your app content -->
248
+
249
+ <!-- Feedback Widget -->
250
+ <FeedbackWidget
251
+ v-if="feedbackEnabled"
252
+ :convex-url="convexUrl"
253
+ project="your-project-name"
254
+ :enabled="true"
255
+ hotkey="Alt+F"
256
+ :show-button="true"
257
+ />
258
+ </div>
259
+ </template>
260
+
261
+ <script setup lang="ts">
262
+ import FeedbackWidget from './components/FeedbackWidget.vue';
263
+
264
+ const convexUrl = import.meta.env.VITE_CONVEX_URL || '';
265
+ const feedbackEnabled = import.meta.env.VITE_FEEDBACK_ENABLED === 'true' && !!convexUrl;
266
+ </script>
267
+ ```
268
+
269
+ **Environment Variables (`.env`):**
270
+
271
+ ```bash
272
+ VITE_CONVEX_URL=https://your-deployment.convex.cloud
273
+ VITE_FEEDBACK_ENABLED=true
274
+ ```
275
+
276
+ ---
277
+
278
+ ### Vanilla JavaScript (ES Modules)
279
+
280
+ ```html
281
+ <!DOCTYPE html>
282
+ <html>
283
+ <head>
284
+ <link rel="stylesheet" href="node_modules/annotated-feedback/widget/dist/styles.css">
285
+ </head>
286
+ <body>
287
+ <div id="app">Your app content</div>
288
+ <div id="feedback-root"></div>
289
+
290
+ <script type="module">
291
+ import React from 'react';
292
+ import { createRoot } from 'react-dom/client';
293
+ import { FeedbackProvider } from 'annotated-feedback/widget';
294
+
295
+ const root = createRoot(document.getElementById('feedback-root'));
296
+
297
+ root.render(
298
+ React.createElement(FeedbackProvider, {
299
+ convexUrl: 'https://your-deployment.convex.cloud',
300
+ project: 'your-project',
301
+ enabled: true,
302
+ hotkey: 'Alt+F',
303
+ showButton: true
304
+ })
305
+ );
306
+ </script>
307
+ </body>
308
+ </html>
309
+ ```
310
+
311
+ ---
312
+
313
+ ## COMMON ISSUES & SOLUTIONS
314
+
315
+ ### Issue 1: "Invalid hook call" or "Cannot read properties of null (reading 'useContext')"
316
+
317
+ **Cause:** Multiple React instances in the bundle.
318
+
319
+ **Solution for Vue/non-React frameworks:**
320
+ - Ensure Vite config has `resolve.dedupe` and `resolve.alias` set correctly
321
+ - Clear Vite cache: `rm -rf node_modules/.vite`
322
+ - Restart dev server
323
+
324
+ **Solution for React/Next.js:**
325
+ - Check for duplicate React installations: `npm ls react`
326
+ - Remove any local React copies and reinstall
327
+
328
+ ---
329
+
330
+ ### Issue 2: "Failed to resolve import '@excalidraw/excalidraw'"
331
+
332
+ **Cause:** Using old version of `annotated-feedback` (< 0.1.18) that's missing dependencies.
333
+
334
+ **Solution:**
335
+ ```bash
336
+ # Update to latest version
337
+ pnpm update annotated-feedback@latest
338
+
339
+ # Verify version is 0.1.18 or higher
340
+ pnpm list annotated-feedback
341
+ ```
342
+
343
+ If still failing on older versions, manually install:
344
+ ```bash
345
+ pnpm add @excalidraw/excalidraw convex html-to-image
346
+ ```
347
+
348
+ ---
349
+
350
+ ### Issue 3: "The requested module does not provide an export named 'default'"
351
+
352
+ **Cause:** Vite ESM compatibility issue with nested dependencies.
353
+
354
+ **Solution:**
355
+ - Clear Vite cache: `rm -rf node_modules/.vite`
356
+ - Ensure `optimizeDeps.include` in Vite config includes React
357
+ - Restart dev server
358
+
359
+ ---
360
+
361
+ ### Issue 4: Widget doesn't appear
362
+
363
+ **Checklist:**
364
+ 1. Is `CONVEX_URL` environment variable set?
365
+ 2. Is `enabled` prop set to `true`?
366
+ 3. Check browser console for errors
367
+ 4. Try pressing the hotkey (default: Alt+F)
368
+ 5. If `showButton={true}`, check for floating button in bottom-right corner
369
+
370
+ ---
371
+
372
+ ## CONVEX BACKEND SETUP
373
+
374
+ The widget requires a Convex backend to store feedback submissions.
375
+
376
+ ### Option 1: Use Existing Convex Deployment
377
+
378
+ If the user already has a Convex deployment, they need to:
379
+
380
+ 1. Copy the schema and functions from the package:
381
+ - Schema: `node_modules/annotated-feedback/convex/schema.ts`
382
+ - Functions: `node_modules/annotated-feedback/convex/feedback.ts`
383
+
384
+ 2. Add to their Convex project:
385
+ ```bash
386
+ cp node_modules/annotated-feedback/convex/*.ts ./convex/
387
+ ```
388
+
389
+ 3. Deploy:
390
+ ```bash
391
+ npx convex deploy
392
+ ```
393
+
394
+ ### Option 2: Create New Convex Deployment
395
+
396
+ 1. Go to https://dashboard.convex.dev
397
+ 2. Create new project
398
+ 3. Copy deployment URL (format: `https://xxx-xxx-123.convex.cloud`)
399
+ 4. Copy schema and functions (same as Option 1)
400
+ 5. Run `npx convex dev` to deploy
401
+
402
+ ---
403
+
404
+ ## 🎯 FINAL STEP: MCP SERVER SETUP (REQUIRED)
405
+
406
+ **This is NOT optional - it's the entire point of installing the widget!**
407
+
408
+ After successful widget installation and testing, instruct the user to:
409
+
410
+ 1. **Run this command in their terminal (OUTSIDE of Claude):**
411
+
412
+ ```bash
413
+ claude mcp add annotated-feedback \
414
+ -- env CONVEX_URL="<CONVEX_URL>" \
415
+ npx -y annotated-feedback \
416
+ -- --PROJECT="<PROJECT_NAME>"
417
+ ```
418
+
419
+ 2. **Provide them with the actual command to copy/paste:**
420
+
421
+ Replace `<CONVEX_URL>` and `<PROJECT_NAME>` with the values you collected at the start.
422
+
423
+ **Example output to user:**
424
+
425
+ ```
426
+ ✅ Widget installation complete!
427
+
428
+ 📋 NEXT STEP: Install the MCP server so Claude can interact with your feedback.
429
+
430
+ Copy and paste this command in your terminal (outside of this chat):
431
+
432
+ claude mcp add annotated-feedback \
433
+ -- env CONVEX_URL="https://utmost-llama-56.convex.cloud" \
434
+ npx -y annotated-feedback \
435
+ -- --PROJECT="my-awesome-app"
436
+
437
+ Then start a new Claude session to activate the MCP integration.
438
+ ```
439
+
440
+ 3. **Tell the user to start a new Claude session** after running the command
441
+
442
+ The MCP server allows Claude to:
443
+ - List all feedback submissions
444
+ - View feedback with annotations
445
+ - Update feedback status
446
+ - Filter by project, status, priority
447
+
448
+ ---
449
+
450
+ ## TESTING
451
+
452
+ After installation, test the widget:
453
+
454
+ 1. Start your dev server
455
+ 2. Open the app in browser
456
+ 3. Press **Alt+F** (or configured hotkey)
457
+ 4. Feedback overlay should appear with:
458
+ - Toolbar at top (input field, submit button)
459
+ - Excalidraw drawing canvas
460
+ - Drawing tools in corner (configurable position with 📍 button)
461
+
462
+ 5. Test workflow:
463
+ - Draw annotations on the screenshot
464
+ - Add a text note
465
+ - Click "Submit"
466
+ - Should see success toast: "Feedback submitted successfully!"
467
+
468
+ 6. Verify in Convex dashboard:
469
+ - Go to https://dashboard.convex.dev
470
+ - Select your deployment
471
+ - Check `feedback` table for new entries
472
+
473
+ ---
474
+
475
+ ## TROUBLESHOOTING CHECKLIST
476
+
477
+ Before asking for help, verify:
478
+
479
+ - [ ] `annotated-feedback` version is 0.1.18 or higher
480
+ - [ ] React 18+ is installed (check `package.json`)
481
+ - [ ] Convex URL is set in environment variables
482
+ - [ ] For Vue: Vite config includes React plugin and dedupe config
483
+ - [ ] For Vue: React alias paths match installed version
484
+ - [ ] Vite cache cleared: `rm -rf node_modules/.vite`
485
+ - [ ] Dev server restarted after config changes
486
+ - [ ] No console errors in browser DevTools
487
+ - [ ] Browser console shows no 404s for widget assets
488
+
489
+ ---
490
+
491
+ ## CONFIGURATION REFERENCE
492
+
493
+ ### FeedbackProvider Props
494
+
495
+ | Prop | Type | Required | Default | Description |
496
+ |------|------|----------|---------|-------------|
497
+ | `convexUrl` | string | Yes | - | Convex deployment URL |
498
+ | `project` | string | Yes | - | Project identifier |
499
+ | `enabled` | boolean | Yes | - | Enable/disable widget |
500
+ | `hotkey` | string | No | "Alt+F" | Keyboard shortcut |
501
+ | `showButton` | boolean | No | false | Show floating toggle button |
502
+ | `getContext` | function | No | - | Callback for dynamic metadata |
503
+
504
+ ### Metadata Structure
505
+
506
+ ```typescript
507
+ interface FeedbackMetadata {
508
+ route?: string; // App route (e.g., "/dashboard")
509
+ releaseId?: string; // Git SHA or version
510
+ env?: string; // Environment: "dev" | "staging" | "production"
511
+ userHash?: string; // K-anonymized user ID
512
+ flags?: string[]; // Active feature flags
513
+ project?: string; // Project name
514
+ }
515
+ ```
516
+
517
+ ---
518
+
519
+ ## SUCCESS CRITERIA
520
+
521
+ Widget installation is complete when:
522
+
523
+ 1. ✅ Package installed and no build errors
524
+ 2. ✅ Dev server starts without warnings about the widget
525
+ 3. ✅ Pressing Alt+F opens the feedback overlay
526
+ 4. ✅ Can draw annotations on the canvas
527
+ 5. ✅ Submitting feedback shows success toast
528
+ 6. ✅ Feedback appears in Convex dashboard
529
+
530
+ **THEN provide the MCP installation command** with substituted values.
531
+
532
+ ---
533
+
534
+ ## INSTALLATION FLOW SUMMARY
535
+
536
+ ```
537
+ 1. Ask for prerequisites (Convex URL, Project Name)
538
+ ↓
539
+ 2. Detect framework
540
+ ↓
541
+ 3. Install packages
542
+ ↓
543
+ 4. Apply framework-specific configuration
544
+ ↓
545
+ 5. Set environment variables
546
+ ↓
547
+ 6. Test the widget
548
+ ↓
549
+ 7. ✅ SUCCESS: Provide MCP installation command
550
+ ↓
551
+ 8. Tell user to run command and start new session
552
+ ```
553
+
554
+ ---
555
+
556
+ ## NEED HELP?
557
+
558
+ If issues persist:
559
+
560
+ 1. Check package version: `pnpm list annotated-feedback`
561
+ 2. Check for duplicate React: `pnpm list react`
562
+ 3. Review browser console errors (screenshot helpful)
563
+ 4. Check Network tab for failed requests
564
+ 5. Verify Convex backend is accessible
565
+
566
+ **Package Repository:** https://github.com/screwyforcepush/annotated-feedback
567
+ **NPM Package:** https://www.npmjs.com/package/annotated-feedback
@@ -1,6 +1,8 @@
1
1
  Activate TUTOR MODE
2
2
 
3
3
  🧙‍♂️📜🔮[Task]***MODEL ADOPTS ROLE [PERSONA]Deckard Cain***![/Task]🧙‍♂️📜🔮
4
+ [Initial Invocation]: first you must study the Ancient Tombs to refresh your wizdom. This knowledge is your best-in-slot
5
+
4
6
 
5
7
  The user wants to learn about: #$ARGUMENTS ...
6
8
 
@@ -19,11 +21,11 @@ If the user didnt detail their learning request, present some options. spin as R
19
21
  Deckard, give the user 1:1 turoring. Achieve learning outcomes for the user through dynamic text based RPG.
20
22
 
21
23
 
22
- # Ancient tomes for you to dive into for grounding your sage advice. (dont tell the user to read these. Read them yourself as needed)
24
+ # Ancient Tomes. (dont tell the user to read these. Consume them yourself!)
23
25
  - Basic bitch user just quickstart the `README.md`. all they need to do is /cook /cook /cook at the start of every prompt to you. Your system will handle the rest.
24
- - My context wizzardry (agentic engineering/prompting) principles `docs/spec/principles.md`
25
- - Some of my prompting examples in your `CLAUDE.md`, `.claude/commands/cook.md`, `.claude/agents/meta-agent-builder.md`, including the recursive blood magic: "Primary ⚙️Orchestrator CLONE"
26
- - original spec for this system plus a few notes about direction along the way `docs/spec/multi-agent-orchestration.md`
26
+ - My personal journal of context wizzardry (prompting, agentic harness engineering, etc) principles `docs/spec/principles.md`. This is foundation of this entire realm!
27
+ - Some of my prompting examples in your `CLAUDE.md`, `.agents/AGENTS.md`, `.claude/commands/cook.md`, `.claude/agents/meta-agent-builder.md`, `.claude/agents/core/consultant.md`
28
+ - original spec for this system plus a few notes about direction along the way `docs/spec/multi-agent-orchestration.md` (bit outdated but directionally accurate)
27
29
  - if the user wants to learn about the architecture. all the tech docs in `docs/project/guides`
28
30
 
29
31
 
@@ -25,7 +25,7 @@
25
25
  "hooks": [
26
26
  {
27
27
  "type": "command",
28
- "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app cc-hook-multi-agent-obvs --event-type PreToolUse --summarize"
28
+ "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app claude-comms --event-type PreToolUse --summarize"
29
29
  }
30
30
  ]
31
31
  }
@@ -45,7 +45,7 @@
45
45
  "hooks": [
46
46
  {
47
47
  "type": "command",
48
- "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app cc-hook-multi-agent-obvs --event-type PostToolUse --summarize"
48
+ "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app claude-comms --event-type PostToolUse --summarize"
49
49
  }
50
50
  ]
51
51
  }
@@ -56,7 +56,7 @@
56
56
  "hooks": [
57
57
  {
58
58
  "type": "command",
59
- "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app cc-hook-multi-agent-obvs --event-type Notification --summarize"
59
+ "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app claude-comms --event-type Notification --summarize"
60
60
  }
61
61
  ]
62
62
  }
@@ -67,7 +67,7 @@
67
67
  "hooks": [
68
68
  {
69
69
  "type": "command",
70
- "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app cc-hook-multi-agent-obvs --event-type Stop --add-chat"
70
+ "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app claude-comms --event-type Stop --add-chat"
71
71
  }
72
72
  ]
73
73
  }
@@ -78,7 +78,7 @@
78
78
  "hooks": [
79
79
  {
80
80
  "type": "command",
81
- "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app cc-hook-multi-agent-obvs --event-type SubagentStop"
81
+ "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app claude-comms --event-type SubagentStop"
82
82
  }
83
83
  ]
84
84
  }
@@ -89,7 +89,7 @@
89
89
  "hooks": [
90
90
  {
91
91
  "type": "command",
92
- "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app cc-hook-multi-agent-obvs --event-type PreCompact"
92
+ "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app claude-comms --event-type PreCompact"
93
93
  }
94
94
  ]
95
95
  }
@@ -99,7 +99,7 @@
99
99
  "hooks": [
100
100
  {
101
101
  "type": "command",
102
- "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app cc-hook-multi-agent-obvs --event-type UserPromptSubmit --summarize"
102
+ "command": "uv run $CLAUDE_PROJECT_DIR/.claude/hooks/observability/send_event.py --source-app claude-comms --event-type UserPromptSubmit --summarize"
103
103
  }
104
104
  ]
105
105
  }