nori-ai 19.0.4 → 19.0.6

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 (54) hide show
  1. package/.claude/commands/nori-create-profile.md +136 -0
  2. package/.claude/commands/nori-debug.md +25 -0
  3. package/.claude/commands/nori-info.md +253 -0
  4. package/.claude/commands/nori-install-location.md +11 -0
  5. package/.claude/commands/nori-modify-registry-auth.md +111 -0
  6. package/.claude/commands/nori-modify-watchtower-auth.md +117 -0
  7. package/.claude/commands/nori-registry-download.md +14 -0
  8. package/.claude/commands/nori-registry-search.md +14 -0
  9. package/.claude/commands/nori-registry-upload.md +16 -0
  10. package/.claude/commands/nori-switch-profile.md +16 -0
  11. package/.claude/commands/nori-toggle-autoupdate.md +13 -0
  12. package/.claude/commands/nori-toggle-session-transcripts.md +13 -0
  13. package/.claude/settings.local.json +4 -1
  14. package/.nori-installed-version +1 -0
  15. package/build/src/cli/features/claude-code/hooks/config/autoupdate.d.ts.map +1 -1
  16. package/build/src/cli/features/claude-code/hooks/config/autoupdate.js +1 -1
  17. package/build/src/cli/features/claude-code/hooks/config/autoupdate.js.map +1 -1
  18. package/build/src/cli/features/claude-code/hooks/config/autoupdate.test.js +4 -4
  19. package/build/src/cli/features/claude-code/hooks/config/autoupdate.test.js.map +1 -1
  20. package/build/src/cli/features/claude-code/hooks/config/intercepted-slashcommands/format.d.ts +38 -0
  21. package/build/src/cli/features/claude-code/hooks/config/intercepted-slashcommands/format.d.ts.map +1 -1
  22. package/build/src/cli/features/claude-code/hooks/config/intercepted-slashcommands/format.js +50 -0
  23. package/build/src/cli/features/claude-code/hooks/config/intercepted-slashcommands/format.js.map +1 -1
  24. package/build/src/cli/features/claude-code/hooks/config/intercepted-slashcommands/format.test.js +133 -1
  25. package/build/src/cli/features/claude-code/hooks/config/intercepted-slashcommands/format.test.js.map +1 -1
  26. package/build/src/cli/features/claude-code/hooks/config/slash-command-intercept.js +3 -1
  27. package/build/src/cli/features/claude-code/hooks/config/statistics-notification.d.ts +3 -0
  28. package/build/src/cli/features/claude-code/hooks/config/statistics-notification.d.ts.map +1 -1
  29. package/build/src/cli/features/claude-code/hooks/config/statistics-notification.js +10883 -5
  30. package/build/src/cli/features/claude-code/hooks/config/statistics-notification.js.map +1 -1
  31. package/build/src/cli/features/claude-code/hooks/config/statistics-notification.test.js +26 -10
  32. package/build/src/cli/features/claude-code/hooks/config/statistics-notification.test.js.map +1 -1
  33. package/build/src/cli/features/claude-code/hooks/config/statistics.d.ts +3 -0
  34. package/build/src/cli/features/claude-code/hooks/config/statistics.d.ts.map +1 -1
  35. package/build/src/cli/features/claude-code/hooks/config/statistics.js +63 -5
  36. package/build/src/cli/features/claude-code/hooks/config/statistics.js.map +1 -1
  37. package/build/src/cli/features/claude-code/hooks/config/statistics.test.js +127 -47
  38. package/build/src/cli/features/claude-code/hooks/config/statistics.test.js.map +1 -1
  39. package/build/src/cli/features/claude-code/hooks/config/summarize-notification.d.ts +3 -0
  40. package/build/src/cli/features/claude-code/hooks/config/summarize-notification.d.ts.map +1 -1
  41. package/build/src/cli/features/claude-code/hooks/config/summarize-notification.js +159 -72
  42. package/build/src/cli/features/claude-code/hooks/config/summarize-notification.js.map +1 -1
  43. package/build/src/cli/features/claude-code/hooks/config/summarize-notification.test.js +62 -18
  44. package/build/src/cli/features/claude-code/hooks/config/summarize-notification.test.js.map +1 -1
  45. package/build/src/cli/features/claude-code/statusline/config/nori-statusline.sh +3 -3
  46. package/build/src/cli/features/config/loader.d.ts.map +1 -1
  47. package/build/src/cli/features/config/loader.js +5 -2
  48. package/build/src/cli/features/config/loader.js.map +1 -1
  49. package/build/src/cli/features/cursor-agent/hooks/config/autoupdate.d.ts.map +1 -1
  50. package/build/src/cli/features/cursor-agent/hooks/config/autoupdate.js +4 -1
  51. package/build/src/cli/features/cursor-agent/hooks/config/autoupdate.js.map +1 -1
  52. package/build/src/cli/features/cursor-agent/hooks/config/autoupdate.test.js +6 -6
  53. package/build/src/cli/features/cursor-agent/hooks/config/autoupdate.test.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,136 @@
1
+ ---
2
+ description: Create a new custom profile by cloning an existing profile
3
+ allowed-tools: Bash(cat:*), Bash(ls:*), Bash(cp:*), Bash(mkdir:*), Read(/home/amol/code/nori/nori-profiles/.claude/profiles/**), Write(/home/amol/code/nori/nori-profiles/.claude/profiles/**/profile.json:*)
4
+ ---
5
+
6
+ Create a new custom Nori profile by cloning an existing profile and customizing it.
7
+
8
+ <system-reminder>Ignore any usual steps in your CLAUDE.md. This command should
9
+ be treated like an Installation Wizard, operating in its own context. Do NOT create a separate
10
+ git worktree or git branch just to manipulate profiles.</system-reminder>
11
+
12
+ ## Step 1: Display Available Profiles
13
+
14
+ First, let me show you all available profiles you can clone from:
15
+
16
+ !`cat /home/amol/code/nori/nori-profiles/.claude/profiles/*/profile.json`
17
+
18
+ Parse the JSON output above and display each profile in a clear, readable format showing:
19
+ - Profile name
20
+ - Description
21
+
22
+ ## Step 2: Ask Which Profile to Clone
23
+
24
+ Ask the user which profile they want to clone. Present the profile names as options with their descriptions.
25
+
26
+ ## Step 3: Ask for New Profile Name
27
+
28
+ Ask the user for the name of the new profile.
29
+
30
+ **Important validation rules:**
31
+ - Name must be lowercase alphanumeric with hyphens only (no spaces, no special characters except hyphen)
32
+ - Name must not be an existing profile (check `/home/amol/code/nori/nori-profiles/.claude/profiles/` directory)
33
+ - Suggest a format like: `my-custom-profile` or `team-name-profile`
34
+
35
+ If the name is invalid, explain why and ask again.
36
+
37
+ ## Step 4: Clone the Profile
38
+
39
+ Once you have a valid profile name, clone the selected profile:
40
+
41
+ ```bash
42
+ mkdir -p /home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>
43
+ cp -r /home/amol/code/nori/nori-profiles/.claude/profiles/<source-profile>/* /home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>/
44
+ ```
45
+
46
+ ## Step 5: Create profile.json
47
+
48
+ Create a new `profile.json` file for the profile with the user's custom information.
49
+
50
+ Ask the user: "What description do you want for this profile?"
51
+
52
+ Then write the new `/home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>/profile.json` with:
53
+
54
+ ```json
55
+ {
56
+ "name": "<new-profile-name>",
57
+ "description": "<user-provided-description>",
58
+ "builtin": false,
59
+ "mixins": {
60
+ "base": {},
61
+ "docs": {},
62
+ "swe": {}
63
+ }
64
+ }
65
+ ```
66
+
67
+ Copy the mixins object exactly from the source profile's profile.json.
68
+
69
+ ## Step 6: Ask About CLAUDE.md Customization
70
+
71
+ Ask: "Would you like to customize the CLAUDE.md file for your new profile?"
72
+
73
+ If yes, ask what changes they want to make and apply them to `/home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>/CLAUDE.md`.
74
+
75
+ **Documentation:** For more information about CLAUDE.md configuration, see: https://docs.claude.com/en/docs/claude-code/settings
76
+
77
+ ## Step 7: Ask About Skills Customization
78
+
79
+ Ask: "Would you like to add or remove any skills from your new profile?"
80
+
81
+ If yes:
82
+ - Show the current skills in `/home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>/skills/`
83
+ - Ask what changes they want (add new skills, remove existing skills)
84
+ - Help them make the changes
85
+
86
+ **Documentation:** For more information about skills, see: https://docs.claude.com/en/docs/claude-code/skills
87
+
88
+ ## Step 8: Ask About Subagents Customization
89
+
90
+ Ask: "Would you like to add or remove any subagents from your new profile?"
91
+
92
+ If yes:
93
+ - Show the current subagents in `/home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>/subagents/`
94
+ - Ask what changes they want (add new subagents, remove existing subagents)
95
+ - Help them make the changes
96
+
97
+ **Documentation:** For more information about subagents, see: https://docs.claude.com/en/docs/claude-code/sub-agents
98
+
99
+ ## Step 9: Ask About Slash Commands Customization
100
+
101
+ Ask: "Would you like to add or remove any slash commands from your new profile?"
102
+
103
+ If yes:
104
+ - Show the current slash commands in `/home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>/slashcommands/`
105
+ - Ask what changes they want (add new commands, remove existing commands)
106
+ - Help them make the changes
107
+
108
+ **Documentation:** For more information about slash commands, see: https://docs.claude.com/en/docs/claude-code/slash-commands
109
+
110
+ ## Step 10: Summary and Next Steps
111
+
112
+ Once complete, display a summary:
113
+
114
+ ```
115
+ ✓ Profile "<new-profile-name>" created successfully!
116
+ ✓ Location: /home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>/
117
+
118
+ Your new profile includes:
119
+ - CLAUDE.md configuration
120
+ - <N> skills
121
+ - <N> subagents
122
+ - <N> slash commands
123
+
124
+ To use your new profile, run:
125
+ /nori-switch-profile
126
+
127
+ Or:
128
+ nori-ai switch-profile <new-profile-name>
129
+ ```
130
+
131
+ ## Important Notes
132
+
133
+ - All profiles are stored in `/home/amol/code/nori/nori-profiles/.claude/profiles/` which is the source of truth
134
+ - After switching to your new profile, you'll need to restart Claude Code to load the new configuration
135
+ - You can always edit your profile later by modifying files in `/home/amol/code/nori/nori-profiles/.claude/profiles/<new-profile-name>/`
136
+ - Custom profiles (builtin: false) are preserved during Nori upgrades
@@ -0,0 +1,25 @@
1
+ ---
2
+ description: Validate Nori Profiles installation and configuration
3
+ allowed-tools: Bash(nori-ai:*)
4
+ ---
5
+
6
+ !`nori-ai check`
7
+
8
+ This validates the Nori Profiles installation:
9
+
10
+ - Config file structure and credentials
11
+ - Server authentication (paid mode only)
12
+ - Hooks configuration in .claude/settings.json
13
+ - Subagent files in ~/.claude/agents/
14
+ - Slash command files in ~/.claude/commands/
15
+ - CLAUDE.md managed block
16
+
17
+ ## Troubleshooting
18
+
19
+ If you encounter installation issues, check the installer log file:
20
+
21
+ ```bash
22
+ cat /tmp/nori-installer.log
23
+ ```
24
+
25
+ This log contains detailed information about the installation process and any errors encountered.
@@ -0,0 +1,253 @@
1
+ ---
2
+ description: Display information about Nori Profiles features and capabilities
3
+ ---
4
+
5
+ Please read the following information about Nori Profiles and provide a clear, concise summary to me. After your summary, state: "I loaded the nori documentation. You can ask me for more help about how to use nori if you would like."
6
+
7
+ Suggest helpful follow-up questions like:
8
+
9
+ - "How do I switch between profiles?"
10
+ - "What skills are available and when should I use them?"
11
+ - "How do I use the Memorize and Recall skills?"
12
+ - "What's the difference between skills and subagents?"
13
+ - "How do I upgrade from free to paid?"
14
+
15
+ ---
16
+
17
+ # Nori Profiles Documentation
18
+
19
+ Nori enhances Claude Code with better context management, specialized workflows, and team collaboration features.
20
+
21
+ ## 1. Profile System
22
+
23
+ Profiles control Claude's behavior and autonomy level. Three built-in profiles are available:
24
+
25
+ ### 1.1 senior-swe (Default)
26
+
27
+ - **Behavior:** Co-pilot mode with high confirmation
28
+ - **Worktrees:** Asks user to create branch/worktree
29
+ - **Commits/PRs:** Always asks before committing or creating PRs
30
+ - **Best for:** Engineers who want control over git operations
31
+
32
+ ### 1.2 amol
33
+
34
+ - **Behavior:** Full autonomy with frequent commits
35
+ - **Worktrees:** Automatically creates worktrees
36
+ - **Commits/PRs:** Autonomous commits and PR creation
37
+ - **Best for:** Experienced users who want maximum productivity
38
+ - **Requires:** Paid tier
39
+
40
+ ### 1.3 product-manager
41
+
42
+ - **Behavior:** Full autonomy optimized for product managers
43
+ - **Best for:** Product managers and users focused on product requirements
44
+ - **Requires:** Paid tier
45
+
46
+ ### 1.4 Profile Management
47
+
48
+ - **Switch profiles:** `/nori-switch-profile` or `nori-ai switch-profile`
49
+ - **Custom profiles:** Create your own in `~/.claude/profiles/`
50
+ - **Source of truth:** All profiles stored in `~/.claude/profiles/`
51
+
52
+ **Available in:** Free and Paid
53
+
54
+ ## 2. Skills System
55
+
56
+ Skills are reusable workflows that guide Claude through complex tasks. Claude automatically references these from `/home/amol/code/nori/nori-profiles/.claude/skills/`.
57
+
58
+ ### 2.1 Free Tier Skills (13)
59
+
60
+ **Collaboration:**
61
+
62
+ - **using-skills** - How to use skills (mandatory reading)
63
+ - **brainstorming** - Refine ideas through Socratic questioning
64
+ - **finishing-a-development-branch** - Final checks before PRs
65
+ - **receiving-code-review** - Handle code review feedback with rigor
66
+ - **writing-plans** - Create comprehensive implementation plans
67
+ - **updating-noridocs** - Update documentation after code changes
68
+
69
+ **Testing & Debugging:**
70
+
71
+ - **test-driven-development** - RED-GREEN-REFACTOR TDD cycle
72
+ - **testing-anti-patterns** - What NOT to do when writing tests
73
+ - **systematic-debugging** - Four-phase debugging framework
74
+ - **root-cause-tracing** - Backward tracing technique
75
+
76
+ **Tools:**
77
+
78
+ - **using-git-worktrees** - Create isolated workspaces
79
+ - **using-screenshots** - Capture screen context
80
+ - **webapp-testing** - Playwright-based web testing
81
+
82
+ ### 2.2 Paid Tier Additional Skills (5)
83
+
84
+ **Knowledge Base:**
85
+
86
+ - **recall** - Search the knowledge base for relevant context
87
+ - **memorize** - Save important information for future sessions
88
+
89
+ **Noridocs (Server-side):**
90
+
91
+ - **read-noridoc** - Read server-side documentation by file path
92
+ - **write-noridoc** - Update server-side documentation
93
+ - **list-noridocs** - List available noridocs
94
+
95
+ ## 3. Specialized Subagents
96
+
97
+ Subagents are autonomous agents that handle complex, multi-step tasks.
98
+
99
+ ### 3.1 Free Tier Subagents (6)
100
+
101
+ - **nori-web-search-researcher** - Research modern information from the web
102
+ - **nori-codebase-analyzer** - Analyze specific components in detail
103
+ - **nori-codebase-locator** - Find files and components relevant to a task
104
+ - **nori-codebase-pattern-finder** - Find usage examples and patterns to model after
105
+ - **nori-initial-documenter** - Generate docs.md files for your codebase
106
+ - **nori-change-documenter** - Auto-document code changes
107
+
108
+ ### 3.2 Paid Tier Additional Subagents (1)
109
+
110
+ - **nori-knowledge-researcher** - Deep research using the persistent knowledge base (15 tool call budget)
111
+
112
+ ## 4. Hooks System
113
+
114
+ Hooks execute automatically in response to events like session start/end.
115
+
116
+ ### 4.1 Free Tier Hooks
117
+
118
+ - **Auto-update check** (SessionStart) - Notify when new Nori versions available
119
+ - **Desktop notifications** (Notification) - Alerts when Claude needs attention
120
+
121
+ ### 4.2 Paid Tier Additional Hooks
122
+
123
+ - **Conversation summarization** (SessionEnd) - Automatically save conversation summaries to knowledge base
124
+ - **Pre-compact preservation** (PreCompact) - Preserve context before conversation compaction
125
+ - **Summarization notification** - User notification before async summarization
126
+
127
+ ## 5. Knowledge Base (Paid Only)
128
+
129
+ Persistent memory and context across sessions, stored server-side.
130
+
131
+ ### 5.1 Core Skills
132
+
133
+ - **Memorize** - Save important information to the knowledge base
134
+ - **Recall** - Search using full-text, fuzzy, and vector search
135
+
136
+ ### 5.2 Automatic Conversation Tracking
137
+
138
+ - **SessionEnd hooks** - Automatically save conversation summaries when sessions end
139
+ - **PreCompact hooks** - Preserve context before Claude compacts the conversation
140
+ - All conversations become searchable for future reference
141
+
142
+ ### 5.3 Organization Analytics
143
+
144
+ - Comprehensive usage metrics for your team
145
+ - Track collaboration patterns and knowledge sharing
146
+
147
+ ## 6. Noridocs Documentation System
148
+
149
+ An opinionated documentation system with docs.md files in each folder.
150
+
151
+ ### 6.1 Free Tier (Local)
152
+
153
+ - **Format:** Overview, How it fits, Core Implementation, Things to Know
154
+ - **Updates:** Manual via updating-noridocs skill
155
+ - **Storage:** Part of codebase, tracked in git
156
+ - **Initialize:** `/nori-init-docs` to generate throughout codebase
157
+
158
+ ### 6.2 Paid Tier (Server-side)
159
+
160
+ - Everything in free tier, plus:
161
+ - **Server storage** with versioning
162
+ - **Skills:** read-noridoc, write-noridoc, list-noridocs
163
+ - **Automatic updates** via nori-change-documenter subagent
164
+
165
+ ## 7. Status Line
166
+
167
+ Real-time display of conversation metrics in your Claude Code interface.
168
+
169
+ ### 7.1 Displayed Metrics
170
+
171
+ - Git branch
172
+ - Active profile name (color-coded in yellow)
173
+ - Token usage and conversation costs
174
+ - Lines changed
175
+
176
+ ### 7.2 Rotating Tips
177
+
178
+ - 30 tips cycling hourly
179
+ - Best practices and feature reminders
180
+
181
+ **Available in:** Free and Paid
182
+
183
+ ## 8. CLAUDE.md Behavioral Instructions
184
+
185
+ Profile-specific instructions that guide Claude's behavior.
186
+
187
+ ### 8.1 Features
188
+
189
+ - **Managed block pattern** - Safe updates without destroying user content
190
+ - **Dynamic skills list** - Auto-generated from installed skills
191
+ - **Profile-specific workflows** - Tone, autonomy, git behavior
192
+ - **Location:** `~/.claude/CLAUDE.md`
193
+
194
+ **Available in:** Free and Paid
195
+
196
+ ## 9. Slash Commands
197
+
198
+ Custom commands available in Claude Code.
199
+
200
+ - `/nori-info` - Display this information (you're using it now!)
201
+ - `/nori-debug` - Validate Nori installation (`nori-ai check`)
202
+ - `/nori-install-location` - Display Nori installation directories
203
+ - `/nori-switch-profile` - Switch between profiles interactively
204
+ - `/nori-init-docs` - Generate documentation files throughout codebase
205
+
206
+ **Available in:** Free and Paid
207
+
208
+ ## 10. Installation & Upgrade
209
+
210
+ ### 10.1 Install (Free or Paid)
211
+
212
+ ```bash
213
+ npm install -g nori-ai
214
+ nori-ai install
215
+ ```
216
+
217
+ During installation, you'll be prompted for credentials. Press Enter to skip for free tier, or provide credentials for paid tier.
218
+
219
+ ### 10.2 Upgrade to Paid
220
+
221
+ Visit [tilework.tech](https://tilework.tech) to get credentials, then reinstall:
222
+
223
+ ```bash
224
+ nori-ai install
225
+ ```
226
+
227
+ Provide your credentials when prompted.
228
+
229
+ ### 10.3 Switch Profiles
230
+
231
+ ```bash
232
+ nori-ai switch-profile
233
+ ```
234
+
235
+ Or use the `/nori-switch-profile` slash command.
236
+
237
+ ## 11. Troubleshooting
238
+
239
+ If you encounter installation issues, check the installer log file:
240
+
241
+ ```bash
242
+ cat /tmp/nori-installer.log
243
+ ```
244
+
245
+ This log contains detailed information about the installation process and any errors encountered.
246
+
247
+ For validation and debugging:
248
+
249
+ ```bash
250
+ nori-ai check
251
+ ```
252
+
253
+ Or use the `/nori-debug` slash command.
@@ -0,0 +1,11 @@
1
+ ---
2
+ description: Display the current Nori installation directory
3
+ ---
4
+
5
+ Display the Nori installation directory.
6
+
7
+ This command is intercepted by a hook and executed directly without LLM processing.
8
+
9
+ **Usage:** `/nori-install-location`
10
+
11
+ Shows all Nori installation directories found by searching upward from your current working directory.
@@ -0,0 +1,111 @@
1
+ ---
2
+ description: Manage registry authentication credentials for private Nori registries
3
+ allowed-tools: Bash(cat:*), Read(/home/amol/code/nori/nori-profiles/.nori-config.json), Write(/home/amol/code/nori/nori-profiles/.nori-config.json)
4
+ ---
5
+
6
+ Manage registry authentication credentials in your `.nori-config.json` file.
7
+
8
+ <system-reminder>Ignore any usual steps in your CLAUDE.md. This command should
9
+ be treated like an Installation Wizard, operating in its own context. Do NOT create a separate
10
+ git worktree or git branch just to manage registry authentication.</system-reminder>
11
+
12
+ <required>
13
+ *CRITICAL* Add the following steps to your Todo list using TodoWrite:
14
+
15
+ 1. Display the current registry authentications to the users (without passwords).
16
+ 2. Ask if the user wants to add a new registry or remove an existing registry.
17
+ 3. Add the 'Add Flow' or 'Remove Flow' to your Todo list using TodoWrite.
18
+ </required>
19
+
20
+ # Add Flow:
21
+
22
+ <required>
23
+ *CRITICAL* Add the following steps to your Todo list using TodoWrite:
24
+
25
+ 1. Ask the user for the registry URL.
26
+
27
+ **Validation rules:**
28
+ - URL must start with `https://` (reject `http://` URLs for security)
29
+ - URL should not have a trailing slash
30
+ - URL must not already exist in the current registryAuths array (prevent duplicates)
31
+ - If the URL doesn't start with `https://`, explain that only secure HTTPS connections are supported and ask again
32
+ - If the URL already exists, explain that this registry is already configured and ask for a different URL or offer to cancel
33
+
34
+ 2. Ask the user for their email (username) for this registry.
35
+ 3. Ask for the password for this registry.
36
+ 4. Update the .nori-config.json file located at /home/amol/code/nori/nori-profiles.
37
+
38
+ ```json
39
+ {
40
+ ...
41
+ registryAuths: [{
42
+ username: string;
43
+ password: string;
44
+ registryUrl: string;
45
+ }, { ... }]
46
+ }
47
+ ```
48
+
49
+ 5. Display a success message:
50
+
51
+ ```
52
+ Registry authentication added successfully!
53
+
54
+ Registry: <registry-url>
55
+ Username: <username>
56
+
57
+ You can now access profiles from this private registry using:
58
+ /nori-registry-search
59
+ /nori-registry-download
60
+
61
+ This registry was added to /home/amol/code/nori/nori-profiles/.nori-config.json.
62
+ ```
63
+ </required>
64
+
65
+ # Remove Flow:
66
+
67
+ <required>
68
+ *CRITICAL* Add the following steps to your Todo list using TodoWrite:
69
+
70
+ 1. Display a numbered list of existing registries:
71
+ ```
72
+ 1. https://registry1.example.com (user1@example.com)
73
+ 2. https://registry2.example.com (user2@example.com)
74
+ ```
75
+
76
+ If there are no registries to remove, display:
77
+ ```
78
+ No registry authentications to remove.
79
+ ```
80
+ And end the wizard.
81
+
82
+ 2. Ask which registry to remove.
83
+ 3. Remove the selected registryAuth entry from the registryAuths array.
84
+ 4. Display a success message:
85
+ ```
86
+ Registry authentication removed successfully!
87
+
88
+ Removed: <registry-url>
89
+ ```
90
+
91
+ </required>
92
+
93
+ ## What is Registry Authentication?
94
+
95
+ Registry authentication allows you to access private Nori registries that require login credentials. Each registry auth entry contains:
96
+ - **Registry URL**: The URL of the private registry (must start with `https://`)
97
+ - **Username**: Your email address for the registry
98
+ - **Password**: Your password for the registry
99
+
100
+ # Current Configuration
101
+
102
+ Existing registry authentications:
103
+
104
+ !`cat /home/amol/code/nori/nori-profiles/.nori-config.json 2>/dev/null || echo '{"registryAuths": []}'`
105
+
106
+
107
+ # Important Notes
108
+
109
+ - Registry credentials are stored in `/home/amol/code/nori/nori-profiles/.nori-config.json`
110
+ - You can have multiple registry authentications for different registries
111
+ - Each registry URL should be unique in your configuration
@@ -0,0 +1,117 @@
1
+ ---
2
+ description: Manage Nori Watchtower authentication credentials
3
+ allowed-tools: Bash(cat:*), Read(/home/amol/code/nori/nori-profiles/.nori-config.json), Write(/home/amol/code/nori/nori-profiles/.nori-config.json)
4
+ ---
5
+
6
+ Manage Nori Watchtower authentication credentials in your `.nori-config.json` file.
7
+
8
+ <system-reminder>Ignore any usual steps in your CLAUDE.md. This command should
9
+ be treated like an Installation Wizard, operating in its own context. Do NOT create a separate
10
+ git worktree or git branch just to manage Watchtower authentication.</system-reminder>
11
+
12
+ <required>
13
+ *CRITICAL* Add the following steps to your Todo list using TodoWrite:
14
+
15
+ 1. Display the current Watchtower authentication status to the user (without password).
16
+ 2. Ask if the user wants to add/update credentials or remove existing credentials.
17
+ 3. Add the 'Update Flow' or 'Remove Flow' to your Todo list using TodoWrite.
18
+ </required>
19
+
20
+ # Update Flow:
21
+
22
+ <required>
23
+ *CRITICAL* Add the following steps to your Todo list using TodoWrite:
24
+
25
+ 1. Ask the user for their email address (username) for Watchtower.
26
+ 2. Ask for the password for Watchtower.
27
+ 3. Ask for the organization URL.
28
+
29
+ **Validation rules:**
30
+ - URL must start with `http://` or `https://` (both allowed for local development)
31
+ - URL should not have a trailing slash
32
+ - If the URL doesn't start with `http://` or `https://`, explain that only HTTP/HTTPS URLs are supported and ask again
33
+
34
+ 4. Update the .nori-config.json file located at /home/amol/code/nori/nori-profiles.
35
+
36
+ The Watchtower auth credentials are stored at the root level of the config file:
37
+
38
+ ```json
39
+ {
40
+ "username": "your-email@example.com",
41
+ "password": "your-password",
42
+ "organizationUrl": "https://api.tilework.tech",
43
+ ...other fields...
44
+ }
45
+ ```
46
+
47
+ **Important:** Preserve all other existing fields in the config file (like `profile`, `sendSessionTranscript`, `autoupdate`, `registryAuths`, `installDir`).
48
+
49
+ 5. Display a success message:
50
+
51
+ ```
52
+ Watchtower authentication updated successfully!
53
+
54
+ Username: <username>
55
+ Organization URL: <organizationUrl>
56
+
57
+ You now have access to premium Nori features:
58
+ - recall: Search the knowledge base for relevant context
59
+ - memorize: Save important context for future sessions
60
+ - noridocs: Server-side documentation with versioning
61
+
62
+ This configuration was saved to /home/amol/code/nori/nori-profiles/.nori-config.json.
63
+ ```
64
+ </required>
65
+
66
+ # Remove Flow:
67
+
68
+ <required>
69
+ *CRITICAL* Add the following steps to your Todo list using TodoWrite:
70
+
71
+ 1. Check if Watchtower credentials exist in the current config.
72
+
73
+ If there are no credentials to remove, display:
74
+ ```
75
+ No Watchtower authentication configured.
76
+ ```
77
+ And end the wizard.
78
+
79
+ 2. Ask the user to confirm they want to remove their Watchtower credentials.
80
+ 3. Remove the `username`, `password`, and `organizationUrl` fields from the config file.
81
+
82
+ **Important:** Preserve all other existing fields in the config file (like `profile`, `sendSessionTranscript`, `autoupdate`, `registryAuths`, `installDir`).
83
+
84
+ 4. Display a success message:
85
+ ```
86
+ Watchtower authentication removed successfully!
87
+
88
+ Premium features are no longer available. You can re-add credentials at any time using /nori-modify-watchtower-auth.
89
+ ```
90
+
91
+ </required>
92
+
93
+ ## What is Nori Watchtower?
94
+
95
+ Nori Watchtower is a backend service that enables shared knowledge features:
96
+ - **recall**: Search and recall past solutions across your team
97
+ - **memorize**: Save learnings for future sessions
98
+ - **noridocs**: Server-side documentation with versioning
99
+
100
+ If you have Watchtower credentials (you should have received them from Josh or Amol), you can use this command to configure access to these premium features.
101
+
102
+ # Current Configuration
103
+
104
+ Read the config file at `/home/amol/code/nori/nori-profiles/.nori-config.json` and display the current Watchtower authentication status:
105
+ - Username: <value or "not configured">
106
+ - Organization URL: <value or "not configured">
107
+ - Password: <"configured" if present, otherwise "not configured">
108
+
109
+ **Important:** Do NOT display the actual password value to the user.
110
+
111
+
112
+ # Important Notes
113
+
114
+ - Watchtower credentials are stored in `/home/amol/code/nori/nori-profiles/.nori-config.json`
115
+ - The password is stored in plain text in the config file - keep this file secure
116
+ - You can use `http://localhost:3000` for local development
117
+ - For production, use your organization's Watchtower URL (e.g., `https://api.tilework.tech`)
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: Download a profile package from the Nori registrar
3
+ allowed-tools: Bash(nori-ai:*)
4
+ ---
5
+
6
+ Download and install a profile package from the Nori package registrar.
7
+
8
+ Usage: /nori-registry-download <package-name>[@version]
9
+
10
+ Examples:
11
+ - /nori-registry-download my-profile
12
+ - /nori-registry-download my-profile@1.0.0
13
+
14
+ This command downloads the specified profile package and extracts it to your profiles directory.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: Search for profile packages in the Nori registrar
3
+ allowed-tools: Bash(nori-ai:*)
4
+ ---
5
+
6
+ Search the Nori package registrar for profile packages.
7
+
8
+ Usage: /nori-registry-search <query>
9
+
10
+ Examples:
11
+ - /nori-registry-search typescript
12
+ - /nori-registry-search react developer
13
+
14
+ This command searches the registrar and displays matching profile packages with their descriptions.