@spilno/herald-mcp 1.26.0 → 1.28.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.
package/README.md CHANGED
@@ -18,153 +18,159 @@ AI agents start fresh each session. Herald gives them memory:
18
18
  ## Quick Start
19
19
 
20
20
  ```bash
21
- cd your-project
21
+ # One command setup for Claude Desktop
22
22
  npx @spilno/herald-mcp init
23
+
24
+ # Or install globally
25
+ npm install -g @spilno/herald-mcp
26
+ herald-mcp init
23
27
  ```
24
28
 
25
- **What this does:**
26
- 1. Creates `.mcp.json` with Herald MCP configuration
27
- 2. Fetches learned patterns from CEDA (if any exist)
28
- 3. Creates/updates `CLAUDE.md` with patterns baked in
29
+ Done. Herald is now available to Claude.
30
+
31
+ ## Core Tools
29
32
 
30
- Company and project default to your folder name. Zero config.
33
+ | Tool | Purpose |
34
+ |------|---------|
35
+ | `herald_predict` | Generate structure from natural language |
36
+ | `herald_refine` | Refine predictions with feedback |
37
+ | `herald_patterns` | Query what worked before |
38
+ | `herald_reflect` | Capture patterns and antipatterns |
39
+ | `herald_feedback` | Reinforce helpful patterns |
31
40
 
32
- ## Init Options
41
+ ### Pattern Memory
33
42
 
34
- ```bash
35
- npx @spilno/herald-mcp init [options]
36
43
  ```
44
+ AI: herald_patterns()
45
+ → Returns: patterns that worked, antipatterns to avoid
37
46
 
38
- | Option | Description |
39
- |--------|-------------|
40
- | `--sync`, `-s` | Just sync patterns to CLAUDE.md (quick update) |
41
- | `--hookify` | Generate hookify rules for auto pattern reminders |
42
- | `--company`, `-c` | Override company (default: folder name) |
43
- | `--project`, `-p` | Override project (default: folder name) |
44
- | `--user`, `-u` | Override user (default: "default") |
45
- | `--force`, `-f` | Overwrite existing config |
46
- | `--help`, `-h` | Show help |
47
-
48
- **Examples:**
49
- ```bash
50
- # Basic setup (zero config)
51
- npx @spilno/herald-mcp init
47
+ AI: herald_predict("create safety assessment module")
48
+ → Returns: structured prediction based on accumulated patterns
52
49
 
53
- # Sync latest patterns to CLAUDE.md
54
- npx @spilno/herald-mcp init --sync
50
+ User: "That worked well"
51
+ AI: herald_reflect(feeling="success", insight="field grouping approach")
52
+ → Pattern captured, weight increased
53
+ ```
55
54
 
56
- # Add auto-reminder hooks
57
- npx @spilno/herald-mcp init --hookify
55
+ ## Session Flow
58
56
 
59
- # Custom context
60
- npx @spilno/herald-mcp init --company acme --project safety
61
- ```
57
+ ```bash
58
+ # Start a session
59
+ herald-mcp predict "create incident report module"
62
60
 
63
- ## Pattern Inheritance
61
+ # Refine iteratively
62
+ herald-mcp refine "add witness section"
63
+ herald-mcp refine "require photos for severity > 3"
64
64
 
65
- Patterns cascade from specific to broad:
65
+ # Accept when satisfied
66
+ herald-mcp observe yes
66
67
 
67
- ```
68
- user (your personal patterns)
69
- ↓ inherits from
70
- project (team patterns)
71
- ↓ inherits from
72
- company (org-wide patterns)
68
+ # Resume anytime
69
+ herald-mcp resume
73
70
  ```
74
71
 
75
- More specific patterns take precedence. If you have a pattern and your company has the same one, yours wins.
72
+ ## Configuration
76
73
 
77
- ## MCP Resources
74
+ ### Claude Desktop / Claude Code
75
+
76
+ ```json
77
+ {
78
+ "mcpServers": {
79
+ "herald": {
80
+ "command": "npx",
81
+ "args": ["@spilno/herald-mcp"],
82
+ "env": {
83
+ "HERALD_API_URL": "https://getceda.com"
84
+ }
85
+ }
86
+ }
87
+ }
88
+ ```
78
89
 
79
- Herald exposes patterns as MCP resources (auto-readable by Claude Code):
90
+ ### Environment Variables
80
91
 
81
- | Resource | Description |
82
- |----------|-------------|
83
- | `herald://patterns` | Learned patterns for current context |
84
- | `herald://context` | Current configuration (company/project/user) |
92
+ | Variable | Required | Description |
93
+ |----------|----------|-------------|
94
+ | `HERALD_API_URL` | Yes | CEDA server (default: https://getceda.com) |
95
+ | `HERALD_COMPANY` | No | Multi-tenant company context |
96
+ | `HERALD_PROJECT` | No | Project context |
97
+ | `HERALD_USER` | No | User context |
85
98
 
86
- ## Core Tools
99
+ ## Multi-Tenant Isolation
87
100
 
88
- | Tool | Purpose |
89
- |------|---------|
90
- | `herald_patterns` | Query what worked before (with inheritance) |
91
- | `herald_reflect` | Capture patterns and antipatterns |
92
- | `herald_predict` | Generate structure from natural language |
93
- | `herald_refine` | Refine predictions with feedback |
94
- | `herald_feedback` | Reinforce helpful patterns |
95
-
96
- ### Pattern Capture
97
-
98
- When something works or fails, capture it:
101
+ Patterns are isolated by context:
99
102
 
100
103
  ```
101
- User: "Herald reflect - that was smooth"
102
- Claude: "What specifically worked?"
103
- User: "The ASCII visualization approach"
104
- → Pattern captured, available in future sessions
104
+ Company A patterns Only visible to Company A
105
+ Project X patterns → Only visible to Project X users
105
106
  ```
106
107
 
107
- ```
108
- User: "Herald reflect - that was rough"
109
- Claude: "What went wrong?"
110
- User: "Forgot to check existing tests before refactoring"
111
- → Antipattern captured, Claude will avoid this
108
+ Set context via environment or headers:
109
+ ```bash
110
+ export HERALD_COMPANY=acme
111
+ export HERALD_PROJECT=safety-modules
112
112
  ```
113
113
 
114
- ## Hookify Integration
114
+ ## Herald Context Sync
115
115
 
116
- Add auto-reminders with `--hookify`:
116
+ Herald instances share insights across contexts:
117
117
 
118
- ```bash
119
- npx @spilno/herald-mcp init --hookify
120
- ```
118
+ | Tool | Purpose |
119
+ |------|---------|
120
+ | `herald_context_status` | Check status of Herald instances |
121
+ | `herald_share_insight` | Share pattern to other contexts |
122
+ | `herald_query_insights` | Query shared insights |
123
+ | `herald_sync` | Flush local buffer to cloud |
121
124
 
122
- This creates rules in `.claude/` that:
123
- - **On prompt**: Remind to check patterns at session start
124
- - **On session end**: Remind to capture patterns before leaving
125
+ ## Chat Mode
125
126
 
126
- Requires [hookify plugin](https://github.com/anthropics/claude-code/tree/main/plugins/hookify).
127
+ For humans who prefer conversation:
127
128
 
128
- ## Configuration
129
+ ```bash
130
+ herald-mcp chat
131
+ ```
129
132
 
130
- ### Files Created
133
+ ```
134
+ You: I need a permit-to-work module
135
+ Herald: I've designed a Permit-to-Work module with 5 sections...
131
136
 
132
- | File | Purpose |
133
- |------|---------|
134
- | `.mcp.json` | MCP server configuration for Claude Code |
135
- | `CLAUDE.md` | Project instructions with baked patterns |
136
- | `.claude/hookify.*.local.md` | Auto-reminder rules (if --hookify) |
137
+ You: Add gas testing checklist
138
+ Herald: Added gas testing to Pre-Work Safety section...
137
139
 
138
- ### Environment Variables
140
+ You: Perfect
141
+ Herald: Module accepted and saved.
142
+ ```
139
143
 
140
- | Variable | Default | Description |
141
- |----------|---------|-------------|
142
- | `CEDA_URL` | https://getceda.com | CEDA backend URL |
143
- | `HERALD_COMPANY` | folder name | Company context |
144
- | `HERALD_PROJECT` | folder name | Project context |
145
- | `HERALD_USER` | "default" | User context |
144
+ ## Command Reference
146
145
 
147
- ## How It Works
146
+ ```bash
147
+ herald-mcp init # Setup for Claude Desktop
148
+ herald-mcp chat # Interactive conversation mode
149
+ herald-mcp predict <signal> # Generate prediction
150
+ herald-mcp refine <signal> # Refine current prediction
151
+ herald-mcp resume # Resume last session
152
+ herald-mcp observe <yes|no> # Accept or reject prediction
153
+ herald-mcp new # Start fresh session
154
+ herald-mcp health # Check CEDA connection
155
+ herald-mcp stats # Show loaded patterns
156
+ ```
157
+
158
+ ## Architecture
148
159
 
149
160
  ```
150
161
  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
151
- Claude │────▶│ Herald │────▶│ CEDA │
152
- Code │ │ (MCP) │ │ (Pattern │
153
- │◀────│ │◀────│ Memory) │
162
+ AI Agent │────▶│ Herald │────▶│ CEDA │
163
+ (Claude/ │ │ (MCP) │ │ (Pattern │
164
+ Devin/etc) │◀────│ │◀────│ Memory) │
154
165
  └─────────────┘ └─────────────┘ └─────────────┘
155
-
156
- ┌──────┴──────┐
157
- Patterns │
158
- └───────────▶│ Antipatterns│
159
- (auto-reads Inheritance
160
- resources) └─────────────┘
166
+
167
+ ┌──────┴──────┐
168
+ │ Patterns │
169
+ Antipatterns│
170
+ Feedback
171
+ └─────────────┘
161
172
  ```
162
173
 
163
- 1. **Session Start**: Claude reads `herald://patterns` resource
164
- 2. **During Work**: Patterns guide behavior
165
- 3. **Session End**: Capture new patterns with `herald_reflect`
166
- 4. **Next Session**: New patterns available automatically
167
-
168
174
  ## What is CEDA?
169
175
 
170
176
  CEDA (Cognitive Event-Driven Architecture) is pattern memory for AI:
@@ -187,4 +193,4 @@ MIT
187
193
 
188
194
  ---
189
195
 
190
- *Herald v1.25.0 — Pattern memory for AI agents*
196
+ *Herald v1.20.0 — Pattern memory for AI agents*
@@ -10,12 +10,7 @@
10
10
  export interface InitOptions {
11
11
  force?: boolean;
12
12
  help?: boolean;
13
- company?: string;
14
- project?: string;
15
- user?: string;
16
13
  noClaudeMd?: boolean;
17
- sync?: boolean;
18
- hookify?: boolean;
19
14
  }
20
15
  export declare function parseInitArgs(args: string[]): InitOptions;
21
16
  export declare function runInit(args?: string[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAqDH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAyBzD;AA+CD,wBAAsB,OAAO,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAyIhE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAqDH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAezD;AAED,wBAAsB,OAAO,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8HhE"}
package/dist/cli/init.js CHANGED
@@ -10,20 +10,24 @@
10
10
  import { existsSync, mkdirSync, writeFileSync, readFileSync } from "fs";
11
11
  import { join, basename } from "path";
12
12
  import { updateClaudeMdContent, fetchLearnedPatterns } from "./templates/claude-md.js";
13
- import { getHookifyRulesContent } from "./templates/hookify-rules.js";
14
- function buildHeraldConfig(company, project) {
13
+ /**
14
+ * CEDA-67: Simplified config - tags derived from cwd at runtime
15
+ * No need for HERALD_COMPANY/PROJECT - context is AI-native
16
+ */
17
+ function buildHeraldConfig() {
15
18
  return {
16
19
  mcpServers: {
17
20
  herald: {
18
21
  command: "npx",
19
22
  args: ["@spilno/herald-mcp@latest"],
20
23
  env: {
21
- CEDA_URL: "https://getceda.com",
22
- HERALD_COMPANY: company,
23
- HERALD_PROJECT: project
24
+ CEDA_URL: "https://getceda.com"
25
+ // No HERALD_COMPANY/PROJECT - context tags derived from folder path
24
26
  }
25
27
  }
26
- }
28
+ },
29
+ // Required for project-level MCP servers to load properly
30
+ enableAllProjectMcpServers: true
27
31
  };
28
32
  }
29
33
  function printInitHelp() {
@@ -36,21 +40,16 @@ Usage:
36
40
 
37
41
  That's it. Company and project default to folder name.
38
42
 
39
- Options:
40
- --sync, -s Sync patterns to CLAUDE.md (quick update, no full init)
41
- --hookify Generate hookify rules for auto pattern reminders
42
- --company, -c Override company (default: folder name)
43
- --project, -p Override project (default: folder name)
44
- --user, -u Override user (default: "default")
45
- --force, -f Overwrite existing config
43
+ Options (optional):
44
+ --force, -f Clean slate - overwrite entire config (not merge)
46
45
  --no-claude-md Skip CLAUDE.md modification
47
46
  --help, -h Show this help
48
47
 
49
- Examples:
48
+ Context is derived automatically from your folder path - no configuration needed.
49
+
50
+ Example:
51
+ cd my-project
50
52
  npx @spilno/herald-mcp@latest init
51
- npx @spilno/herald-mcp@latest init --sync # Just sync patterns
52
- npx @spilno/herald-mcp@latest init --hookify # Add auto-reminders
53
- npx @spilno/herald-mcp@latest init --company goprint
54
53
 
55
54
  Then start Claude Code and say "herald health" to verify.
56
55
  `);
@@ -65,140 +64,93 @@ export function parseInitArgs(args) {
65
64
  else if (arg === "--force" || arg === "-f") {
66
65
  options.force = true;
67
66
  }
68
- else if (arg === "--company" || arg === "-c") {
69
- options.company = args[++i];
70
- }
71
- else if (arg === "--project" || arg === "-p") {
72
- options.project = args[++i];
73
- }
74
- else if (arg === "--user" || arg === "-u") {
75
- options.user = args[++i];
76
- }
77
67
  else if (arg === "--no-claude-md") {
78
68
  options.noClaudeMd = true;
79
69
  }
80
- else if (arg === "--sync" || arg === "-s") {
81
- options.sync = true;
82
- }
83
- else if (arg === "--hookify") {
84
- options.hookify = true;
85
- }
86
70
  }
87
71
  return options;
88
72
  }
89
- async function runSyncPatterns(cwd, claudeMdPath, options) {
90
- const projectName = basename(cwd);
91
- const mcpJsonPath = join(cwd, ".mcp.json");
92
- // Try to get context from .mcp.json, fall back to folder name
93
- let company = options.company || projectName;
94
- let project = options.project || projectName;
95
- let user = options.user || "default";
96
- if (existsSync(mcpJsonPath)) {
97
- try {
98
- const mcpConfig = JSON.parse(readFileSync(mcpJsonPath, "utf-8"));
99
- const heraldEnv = mcpConfig.mcpServers?.herald?.env || {};
100
- company = options.company || heraldEnv.HERALD_COMPANY || projectName;
101
- project = options.project || heraldEnv.HERALD_PROJECT || projectName;
102
- user = options.user || heraldEnv.HERALD_USER || "default";
103
- }
104
- catch { /* ignore */ }
105
- }
106
- const context = { company, project, user };
107
- const cedaUrl = "https://getceda.com";
108
- console.log(`Syncing patterns for ${user}→${project}→${company}...`);
109
- const learnedPatterns = await fetchLearnedPatterns(cedaUrl, company, project, user);
110
- if (!learnedPatterns) {
111
- console.log("Failed to fetch patterns from CEDA");
112
- return;
113
- }
114
- const totalPatterns = learnedPatterns.patterns.length + learnedPatterns.antipatterns.length;
115
- console.log(`Found ${totalPatterns} patterns (${learnedPatterns.patterns.length} success, ${learnedPatterns.antipatterns.length} antipatterns)`);
116
- let existingClaudeMd = null;
117
- if (existsSync(claudeMdPath)) {
118
- existingClaudeMd = readFileSync(claudeMdPath, "utf-8");
119
- }
120
- const updatedClaudeMd = updateClaudeMdContent(existingClaudeMd, context, projectName, learnedPatterns);
121
- writeFileSync(claudeMdPath, updatedClaudeMd, "utf-8");
122
- console.log(`✓ CLAUDE.md updated with ${totalPatterns} patterns`);
123
- console.log(`\nPatterns are now baked into CLAUDE.md for offline access.`);
124
- }
125
73
  export async function runInit(args = []) {
126
74
  const options = parseInitArgs(args);
127
75
  if (options.help) {
128
76
  printInitHelp();
129
77
  return;
130
78
  }
79
+ // CEDA-67: Simplified setup - no company/project config needed
131
80
  const cwd = process.cwd();
132
81
  const projectName = basename(cwd);
133
- const mcpJsonPath = join(cwd, ".mcp.json");
82
+ const claudeDir = join(cwd, ".claude");
83
+ const settingsPath = join(claudeDir, "settings.local.json");
134
84
  const claudeMdPath = join(cwd, "CLAUDE.md");
135
- // Quick sync mode: just update CLAUDE.md with latest patterns
136
- if (options.sync) {
137
- return runSyncPatterns(cwd, claudeMdPath, options);
138
- }
139
- // Zero-config: derive from folder name, flags override
140
- const company = options.company || projectName;
141
- const project = options.project || projectName;
85
+ // Derive context tags from path for CLAUDE.md display
86
+ const contextTags = cwd.split("/").filter(p => p && !p.startsWith(".") && !["Users", "Documents", "home"].includes(p)).slice(-3);
142
87
  const context = {
143
- company,
144
- project,
145
- user: options.user || "default",
88
+ company: contextTags[0] || projectName,
89
+ project: contextTags.slice(-1)[0] || projectName,
90
+ user: process.env.USER || "default",
146
91
  };
147
- // Check for old herald configs and warn about migration
148
- const oldClaudeDir = join(cwd, ".claude");
149
- const oldSettingsPath = join(oldClaudeDir, "settings.local.json");
92
+ // Check for old herald configs and warn
93
+ const oldSettingsPath = join(claudeDir, "settings.json");
150
94
  if (existsSync(oldSettingsPath)) {
151
95
  try {
152
96
  const oldConfig = JSON.parse(readFileSync(oldSettingsPath, "utf-8"));
153
97
  if (oldConfig.mcpServers?.herald) {
154
- console.log("⚠️ Found old Herald config in .claude/settings.local.json");
155
- console.log(" This location is no longer supported. Migrating to .mcp.json");
98
+ console.log("⚠️ Found old Herald config in settings.json - will use settings.local.json instead");
156
99
  }
157
100
  }
158
101
  catch { /* ignore */ }
159
102
  }
160
- if (existsSync(mcpJsonPath) && !options.force) {
103
+ if (existsSync(settingsPath) && !options.force) {
161
104
  console.log(`
162
- .mcp.json already exists.
105
+ .claude/settings.local.json already exists.
163
106
 
164
107
  To view current config:
165
- cat .mcp.json
108
+ cat .claude/settings.local.json
166
109
 
167
110
  To overwrite:
168
111
  npx @spilno/herald-mcp init --force
169
112
  `);
170
113
  return;
171
114
  }
172
- const heraldConfig = buildHeraldConfig(company, project);
115
+ if (!existsSync(claudeDir)) {
116
+ mkdirSync(claudeDir, { recursive: true });
117
+ console.log("Created .claude directory");
118
+ }
119
+ const heraldConfig = buildHeraldConfig();
173
120
  let finalConfig = heraldConfig;
174
- if (existsSync(mcpJsonPath)) {
121
+ if (existsSync(settingsPath) && !options.force) {
122
+ // Merge mode: preserve existing config, add/update Herald
175
123
  try {
176
- const existingContent = readFileSync(mcpJsonPath, "utf-8");
124
+ const existingContent = readFileSync(settingsPath, "utf-8");
177
125
  const existingConfig = JSON.parse(existingContent);
178
126
  finalConfig = {
179
127
  ...existingConfig,
180
128
  mcpServers: {
181
129
  ...existingConfig.mcpServers,
182
130
  ...heraldConfig.mcpServers
183
- }
131
+ },
132
+ enableAllProjectMcpServers: true
184
133
  };
185
- console.log("Merging with existing .mcp.json");
134
+ console.log("Merging with existing settings.local.json");
186
135
  }
187
136
  catch {
188
- console.log("Overwriting invalid .mcp.json");
137
+ console.log("Overwriting invalid settings.local.json");
189
138
  }
190
139
  }
191
- writeFileSync(mcpJsonPath, JSON.stringify(finalConfig, null, 2) + "\n", "utf-8");
192
- console.log(" Created .mcp.json");
140
+ else if (options.force && existsSync(settingsPath)) {
141
+ console.log("Overwriting existing settings.local.json (--force)");
142
+ }
143
+ writeFileSync(settingsPath, JSON.stringify(finalConfig, null, 2) + "\n", "utf-8");
144
+ console.log("✓ Created .claude/settings.local.json");
193
145
  if (!options.noClaudeMd) {
194
146
  let existingClaudeMd = null;
195
147
  if (existsSync(claudeMdPath)) {
196
148
  existingClaudeMd = readFileSync(claudeMdPath, "utf-8");
197
149
  }
198
- // Fetch learned patterns from CEDA
150
+ // Fetch learned patterns from CEDA (using derived tags as context)
199
151
  const cedaUrl = "https://getceda.com";
200
152
  console.log("Fetching learned patterns from CEDA...");
201
- const learnedPatterns = await fetchLearnedPatterns(cedaUrl, company, project);
153
+ const learnedPatterns = await fetchLearnedPatterns(cedaUrl, context.company, context.project);
202
154
  if (learnedPatterns) {
203
155
  const totalPatterns = learnedPatterns.patterns.length + learnedPatterns.antipatterns.length;
204
156
  if (totalPatterns > 0) {
@@ -214,27 +166,11 @@ To overwrite:
214
166
  console.log("Created CLAUDE.md with Herald integration");
215
167
  }
216
168
  }
217
- // Generate hookify rules if requested
218
- if (options.hookify) {
219
- const claudeDir = join(cwd, ".claude");
220
- if (!existsSync(claudeDir)) {
221
- mkdirSync(claudeDir, { recursive: true });
222
- }
223
- const hookifyRules = getHookifyRulesContent();
224
- for (const rule of hookifyRules) {
225
- const rulePath = join(claudeDir, rule.filename);
226
- writeFileSync(rulePath, rule.content, "utf-8");
227
- }
228
- console.log(`✓ Created ${hookifyRules.length} hookify rules in .claude/`);
229
- console.log(" - Pattern check reminder on prompts");
230
- console.log(" - Pattern capture reminder on session end");
231
- }
232
169
  console.log(`
233
170
  ✓ Herald configured
234
171
 
235
- Company: ${company}
236
- Project: ${project}
237
- Backend: https://getceda.com
172
+ Context tags: ${contextTags.join(" → ")}
173
+ Backend: https://getceda.com
238
174
 
239
175
  Next: Start Claude Code in this directory.
240
176
  Say "herald health" to verify.
@@ -242,6 +178,8 @@ Next: Start Claude Code in this directory.
242
178
  Capture patterns:
243
179
  Say "Herald reflect - that was smooth"
244
180
  Claude asks what worked → you answer → saved.
181
+
182
+ Tags are derived from your folder path - no configuration needed.
245
183
  `);
246
184
  }
247
185
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAsB,MAAM,0BAA0B,CAAC;AAE3G;;;GAGG;AACH,SAAS,iBAAiB;IACxB,OAAO;QACL,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,2BAA2B,CAAC;gBACnC,GAAG,EAAE;oBACH,QAAQ,EAAE,qBAAqB;oBAC/B,oEAAoE;iBACrE;aACF;SACF;QACD,0DAA0D;QAC1D,0BAA0B,EAAE,IAAI;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBb,CAAC,CAAC;AACH,CAAC;AASD,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YACpC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAiB,EAAE;IAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,aAAa,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,+DAA+D;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE5C,sDAAsD;IACtD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC5C,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACvE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEZ,MAAM,OAAO,GAAkB;QAC7B,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW;QACtC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW;QAChD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS;KACpC,CAAC;IAEF,wCAAwC;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC;;;;;;;;CAQf,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC;IACzC,IAAI,WAAW,GAAG,YAAY,CAAC;IAE/B,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/C,0DAA0D;QAC1D,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAEnD,WAAW,GAAG;gBACZ,GAAG,cAAc;gBACjB,UAAU,EAAE;oBACV,GAAG,cAAc,CAAC,UAAU;oBAC5B,GAAG,YAAY,CAAC,UAAU;iBAC3B;gBACD,0BAA0B,EAAE,IAAI;aACjC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IAED,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAErD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,gBAAgB,GAAkB,IAAI,CAAC;QAC3C,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,gBAAgB,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAED,mEAAmE;QACnE,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9F,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC;YAC5F,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,8BAA8B,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,IAAI,SAAS,CAAC,CAAC;QACpH,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;;;kBAGI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;CAWxC,CAAC,CAAC;AACH,CAAC"}
@@ -13,17 +13,15 @@ export interface LearnedPatterns {
13
13
  patterns: Array<{
14
14
  insight: string;
15
15
  reinforcement?: string;
16
- scope?: string;
17
16
  }>;
18
17
  antipatterns: Array<{
19
18
  insight: string;
20
19
  warning?: string;
21
- scope?: string;
22
20
  }>;
23
21
  }
24
22
  export declare const HERALD_SECTION_MARKER = "## Herald Integration";
25
23
  export declare const HERALD_SECTION_TEMPLATE = "## Herald Integration\n\nYou have Herald MCP tools available. USE THEM.\n\n### On Session Start\n- Call `herald_patterns()` to learn from past sessions\n- Review antipatterns below BEFORE starting work\n\n### Pattern Capture\n- When things go WRONG: \"Herald reflect - that was rough\"\n- When things go WELL: \"Herald reflect - that was smooth\"\n- For deep analysis: \"Herald simulate\"\n\n### Context\n- Company: {{company}}\n- Project: {{project}}\n- User: {{user}}\n\n{{learned_patterns}}\n";
26
24
  export declare function renderHeraldSection(context: HeraldContext, learnedPatterns?: LearnedPatterns): string;
27
- export declare function fetchLearnedPatterns(cedaUrl: string, company: string, project: string, user?: string): Promise<LearnedPatterns | null>;
25
+ export declare function fetchLearnedPatterns(cedaUrl: string, company: string, project: string): Promise<LearnedPatterns | null>;
28
26
  export declare function updateClaudeMdContent(existingContent: string | null, context: HeraldContext, projectName: string, learnedPatterns?: LearnedPatterns): string;
29
27
  //# sourceMappingURL=claude-md.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,eAAO,MAAM,uBAAuB,ofAmBnC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,CAkCrG;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAkDjC;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,eAAe,GAChC,MAAM,CAaR"}
1
+ {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAED,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,eAAO,MAAM,uBAAuB,ofAmBnC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,CA+BrG;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAsBjC;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,eAAe,GAChC,MAAM,CAaR"}