Skip to content

Commit 626f02e

Browse files
drnclaude
andcommitted
Symlink agents/AGENTS.md to ~/.claude/CLAUDE.md
Replace programmatic write of global CLAUDE.md with a repo-managed file and symlink, matching the pattern used for skills and custom agents. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 71c1a40 commit 626f02e

File tree

2 files changed

+21
-33
lines changed

2 files changed

+21
-33
lines changed

agents/AGENTS.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## TTS Notifications
2+
3+
**ALWAYS speak aloud when completing ANY task or waiting for user input.** This is mandatory.
4+
5+
**First, check if on a call:**
6+
```bash
7+
mic-check # returns "active" (exit 0) or "inactive" (exit 1)
8+
```
9+
If mic is **active**, skip TTS entirely — user is in a call. Do not speak.
10+
11+
When mic is inactive, use TTS:
12+
```
13+
Tool: mcp__tts__openai_tts
14+
Speed: 1.4
15+
Words: 2-4 max (e.g., "Done", "Updated config", "Need input")
16+
```
17+
18+
Do this BEFORE moving to the next task. If you forget, you're not following instructions.

cli/commands/install/agents.go

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,6 @@ import (
99
"github.com/drn/dots/pkg/path"
1010
)
1111

12-
// ttsInstructions is the global CLAUDE.md content for TTS notifications
13-
const ttsInstructions = `## TTS Notifications
14-
15-
**ALWAYS speak aloud when completing ANY task or waiting for user input.** This is mandatory.
16-
17-
**First, check if on a call:**
18-
` + "```bash" + `
19-
mic-check # returns "active" (exit 0) or "inactive" (exit 1)
20-
` + "```" + `
21-
If mic is **active**, skip TTS entirely — user is in a call. Do not speak.
22-
23-
When mic is inactive, use TTS:
24-
` + "```" + `
25-
Tool: mcp__tts__openai_tts
26-
Speed: 1.4
27-
Words: 2-4 max (e.g., "Done", "Updated config", "Need input")
28-
` + "```" + `
29-
30-
Do this BEFORE moving to the next task. If you forget, you're not following instructions.
31-
`
32-
3312
// Agents - Installs agent skills and custom agents for Claude Code and Codex
3413
func (i Install) Agents() {
3514
log.Action("Install Agents")
@@ -58,23 +37,14 @@ func (i Install) Agents() {
5837
}
5938
link.Soft(skillsSource, path.FromHome(".agents/skills"))
6039

61-
// Install global CLAUDE.md with TTS instructions
62-
installClaudeMD()
40+
// Symlink global CLAUDE.md
41+
claudeMDSource := path.FromDots("agents/AGENTS.md")
42+
link.Soft(claudeMDSource, path.FromHome(".claude/CLAUDE.md"))
6343

6444
// Install TTS MCP server in global settings
6545
installTTSServer()
6646
}
6747

68-
// installClaudeMD writes ~/.claude/CLAUDE.md with TTS instructions
69-
func installClaudeMD() {
70-
target := path.FromHome(".claude/CLAUDE.md")
71-
if err := os.WriteFile(target, []byte(ttsInstructions), 0644); err != nil {
72-
log.Error("Failed to write ~/.claude/CLAUDE.md: %s", err.Error())
73-
return
74-
}
75-
log.Info("Installed ~/.claude/CLAUDE.md")
76-
}
77-
7848
// installTTSServer adds the TTS MCP server to ~/.claude/settings.json
7949
func installTTSServer() {
8050
settingsPath := path.FromHome(".claude/settings.json")

0 commit comments

Comments
 (0)