@yamo/memory-mesh 3.1.3 → 3.2.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.
@@ -1,23 +1,36 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * YAMO MemoryMesh CLI - Protocol-Native Edition (v3.1.0)
4
+ * YAMO MemoryMesh CLI - Singularity Edition (v3.2.0)
5
5
  *
6
- * Enforces the "Zero JSON" mandate by using standard CLI flags.
7
- * Machines don't parse YAMO; they execute commands.
6
+ * State-of-the-art interface for semantic memory orchestration.
7
+ * Features: Interactive progress, beautiful formatting, and bulk ingestion.
8
8
  */
9
9
 
10
10
  import { Command } from 'commander';
11
11
  import { MemoryMesh } from '../lib/memory/index.js';
12
12
  import { createLogger } from '../lib/utils/logger.js';
13
+ import pc from 'picocolors';
14
+ import cliProgress from 'cli-progress';
15
+ import fs from 'fs';
16
+ import path from 'path';
17
+ import { glob } from 'glob';
13
18
 
14
- const logger = createLogger('memory-mesh-cli');
15
19
  const program = new Command();
16
20
 
17
21
  program
18
22
  .name('memory-mesh')
19
- .description('Portable semantic memory subconscious for YAMO agents')
20
- .version('3.1.0');
23
+ .description('YAMO Semantic Subconscious - Protocol-Native CLI')
24
+ .version('3.2.0');
25
+
26
+ // Helper for beautiful logging
27
+ const ui = {
28
+ info: (msg) => console.log(`${pc.blue('ℹ')} ${pc.white(msg)}`),
29
+ success: (msg) => console.log(`${pc.green('✔')} ${pc.green(msg)}`),
30
+ warn: (msg) => console.log(`${pc.yellow('⚠')} ${pc.yellow(msg)}`),
31
+ error: (msg) => console.error(`${pc.red('✖')} ${pc.red(msg)}`),
32
+ header: (msg) => console.log(`\n${pc.bold(pc.cyan('── ' + msg + ' ' + '─'.repeat(50 - msg.length - 4)))}\n`)
33
+ };
21
34
 
22
35
  // 1. Store/Ingest Command
23
36
  program
@@ -28,83 +41,89 @@ program
28
41
  .option('-t, --type <type>', 'Memory type (e.g., insight, decision, error)', 'event')
29
42
  .option('-r, --rationale <text>', 'The constitutional rationale for this memory')
30
43
  .option('-h, --hypothesis <text>', 'The associated hypothesis')
31
- .option('--metadata <json>', 'Additional metadata (as flat flags or optional JSON)', '{}')
32
44
  .action(async (options) => {
33
45
  const mesh = new MemoryMesh();
34
46
  try {
35
- let metadata = {};
36
- try {
37
- metadata = JSON.parse(options.metadata);
38
- } catch (_e) {
39
- // Fallback to empty if invalid JSON
40
- }
41
-
42
- if (options.type) metadata.type = options.type;
43
- if (options.rationale) metadata.rationale = options.rationale;
44
- if (options.hypothesis) metadata.hypothesis = options.hypothesis;
47
+ ui.info(`Ingesting into subconscious...`);
48
+ const metadata = {
49
+ type: options.type,
50
+ rationale: options.rationale,
51
+ hypothesis: options.hypothesis,
52
+ source: 'cli-manual'
53
+ };
45
54
 
46
55
  const record = await mesh.add(options.content, metadata);
47
- process.stdout.write(`[MemoryMesh] Ingested record ${record.id}\n`);
56
+ ui.success(`Ingested record ${pc.bold(record.id)}`);
48
57
  } catch (err) {
49
- console.error(`❌ Error: ${err.message}`);
58
+ ui.error(`Ingestion failed: ${err.message}`);
50
59
  process.exit(1);
51
60
  } finally {
52
61
  await mesh.close();
53
62
  }
54
63
  });
55
64
 
56
- // 2. Directory Ingest Command
65
+ // 2. Pull Command (Smart Directory Ingest)
57
66
  program
58
- .command('ingest-dir')
59
- .alias('pull')
60
- .description('Recursively ingest a directory of files (Smart Ingest)')
61
- .argument('<path>', 'Directory path to ingest')
62
- .option('-e, --extension <ext>', 'Filter by file extension', '')
67
+ .command('pull')
68
+ .description('Smart recursive repository/directory ingestion')
69
+ .argument('<path>', 'Directory path to pull')
70
+ .option('-e, --extension <ext>', 'File extensions (comma-separated)', '.yamo,.md')
63
71
  .option('-t, --type <type>', 'Memory type', 'documentation')
64
- .option('-r, --recursive', 'Ingest subdirectories', true)
65
72
  .action(async (dirPath, options) => {
66
73
  const mesh = new MemoryMesh();
67
74
  try {
75
+ ui.header(`Pulling Wisdom: ${dirPath}`);
76
+
68
77
  const absolutePath = path.resolve(dirPath);
69
78
  if (!fs.existsSync(absolutePath)) {
70
79
  throw new Error(`Directory not found: ${absolutePath}`);
71
80
  }
72
81
 
73
- const files = [];
74
- const walk = (dir) => {
75
- const entries = fs.readdirSync(dir, { withFileTypes: true });
76
- for (const entry of entries) {
77
- const fullPath = path.join(dir, entry.name);
78
- if (entry.isDirectory() && options.recursive) {
79
- walk(fullPath);
80
- } else if (entry.isFile()) {
81
- if (!options.extension || entry.name.endsWith(options.extension)) {
82
- files.push(fullPath);
83
- }
84
- }
85
- }
86
- };
82
+ // 1. Discover files
83
+ const extensions = options.extension.split(',').map(e => e.trim());
84
+ const pattern = `**/*{${extensions.join(',')}}`;
85
+
86
+ ui.info(`Scanning for ${pc.cyan(extensions.join(' ')) } files...`);
87
+
88
+ const files = await glob(pattern, { cwd: absolutePath, absolute: true, nodir: true });
89
+
90
+ if (files.length === 0) {
91
+ ui.warn('No matching files found.');
92
+ return;
93
+ }
87
94
 
88
- walk(absolutePath);
89
- process.stdout.write(`[MemoryMesh] Found ${files.length} files to ingest...\n`);
95
+ ui.info(`Found ${pc.bold(files.length)} files. Starting bulk ingestion...`);
90
96
 
97
+ // 2. Initialize Progress Bar
98
+ const bar = new cliProgress.SingleBar({
99
+ format: `${pc.cyan('Ingesting')} |${pc.cyan('{bar}')}| {percentage}% | {value}/{total} Files | {file}`,
100
+ barCompleteChar: '\u2588',
101
+ barIncompleteChar: '\u2591',
102
+ hideCursor: true
103
+ }, cliProgress.Presets.shades_classic);
104
+
105
+ bar.start(files.length, 0, { file: 'Initializing...' });
106
+
107
+ // 3. Process
91
108
  for (const file of files) {
109
+ const relativeName = path.relative(absolutePath, file);
110
+ bar.update(files.indexOf(file) + 1, { file: relativeName });
111
+
92
112
  const content = fs.readFileSync(file, 'utf-8');
93
113
  if (!content.trim()) continue;
94
114
 
95
- const metadata = {
96
- source: path.relative(process.cwd(), file),
97
- ingested_at: new Date().toISOString(),
98
- type: options.type
99
- };
100
-
101
- const record = await mesh.add(content, metadata);
102
- process.stdout.write(` ✓ Ingested: ${metadata.source} (${record.id})\n`);
115
+ await mesh.add(content, {
116
+ source: relativeName,
117
+ type: options.type,
118
+ ingest_method: 'smart-pull'
119
+ });
103
120
  }
104
121
 
105
- process.stdout.write(`[MemoryMesh] Completed bulk ingestion of ${files.length} files.\n`);
122
+ bar.stop();
123
+ ui.success(`Successfully distilled ${pc.bold(files.length)} files into memory.`);
124
+
106
125
  } catch (err) {
107
- console.error(`❌ Error: ${err.message}`);
126
+ ui.error(`Pull failed: ${err.message}`);
108
127
  process.exit(1);
109
128
  } finally {
110
129
  await mesh.close();
@@ -114,159 +133,61 @@ program
114
133
  // 3. Search Command
115
134
  program
116
135
  .command('search')
117
- .description('Perform semantic recall')
118
- .argument('<query>', 'The semantic search query')
119
- .option('-l, --limit <number>', 'Number of results', '10')
120
- .option('-f, --filter <string>', 'LanceDB SQL-style filter')
136
+ .description('Perform high-fidelity semantic recall')
137
+ .argument('<query>', 'The semantic query')
138
+ .option('-l, --limit <number>', 'Number of results', '5')
121
139
  .action(async (query, options) => {
122
140
  const mesh = new MemoryMesh();
123
141
  try {
124
- const results = await mesh.search(query, {
125
- limit: parseInt(options.limit),
126
- filter: options.filter || null
142
+ ui.info(`Searching subconscious for "${pc.italic(query)}"...`);
143
+ const results = await mesh.search(query, { limit: parseInt(options.limit) });
144
+
145
+ if (results.length === 0) {
146
+ ui.warn('No relevant memories found.');
147
+ return;
148
+ }
149
+
150
+ ui.header(`Recalled ${results.length} Memories`);
151
+
152
+ results.forEach((res, i) => {
153
+ const meta = typeof res.metadata === 'string' ? JSON.parse(res.metadata) : res.metadata;
154
+ const scoreColor = res.score > 0.8 ? pc.green : (res.score > 0.5 ? pc.yellow : pc.red);
155
+
156
+ console.log(`${pc.bold(pc.cyan('Memory ' + (i + 1)))} [Rel: ${scoreColor(res.score.toFixed(2))}]`);
157
+ console.log(`${pc.dim('ID: ' + res.id)} | ${pc.dim('Type: ' + (meta.type || 'event'))}`);
158
+ console.log(`${pc.white(res.content.substring(0, 300))}${res.content.length > 300 ? '...' : ''}`);
159
+ console.log(pc.dim('─'.repeat(40)));
127
160
  });
128
161
 
129
- process.stdout.write(`[MemoryMesh] Found ${results.length} matches.\n`);
130
- process.stdout.write(mesh.formatResults(results));
131
- process.stdout.write('\n');
132
162
  } catch (err) {
133
- console.error(`❌ Error: ${err.message}`);
163
+ ui.error(`Search failed: ${err.message}`);
134
164
  process.exit(1);
135
165
  } finally {
136
166
  await mesh.close();
137
167
  }
138
168
  });
139
169
 
140
- // 3. Stats Command
170
+ // 4. Stats Command
141
171
  program
142
172
  .command('stats')
143
- .description('Get database health and statistics')
173
+ .description('Subconscious health and database metrics')
144
174
  .action(async () => {
145
175
  const mesh = new MemoryMesh();
146
176
  try {
147
177
  const stats = await mesh.stats();
148
- process.stdout.write(`[MemoryMesh] Total Memories: ${stats.count}\n`);
149
- process.stdout.write(`[MemoryMesh] DB Path: ${stats.uri}\n`);
150
- process.stdout.write(`[MemoryMesh] Status: ${stats.isConnected ? 'Connected' : 'Disconnected'}\n`);
151
- } catch (err) {
152
- console.error(`❌ Error: ${err.message}`);
153
- process.exit(1);
154
- } finally {
155
- await mesh.close();
156
- }
157
- });
158
-
159
- // 4. Get Command
160
- program
161
- .command('get')
162
- .description('Retrieve a single memory by ID')
163
- .requiredOption('--id <id>', 'Memory record ID')
164
- .action(async (options) => {
165
- const mesh = new MemoryMesh();
166
- try {
167
- await mesh.init();
168
- const record = await mesh.get(options.id);
169
- if (!record) {
170
- process.stdout.write(`[MemoryMesh] No record found with id: ${options.id}\n`);
171
- process.exit(1);
172
- }
173
- const meta = typeof record.metadata === 'string' ? JSON.parse(record.metadata) : record.metadata;
174
- process.stdout.write(`[MemoryMesh] id: ${record.id}\n`);
175
- process.stdout.write(`[MemoryMesh] content: ${record.content}\n`);
176
- process.stdout.write(`[MemoryMesh] type: ${meta?.type ?? 'unknown'}\n`);
177
- process.stdout.write(`[MemoryMesh] created_at: ${record.created_at}\n`);
178
- process.stdout.write(`[MemoryMesh] metadata: ${JSON.stringify(meta, null, 2)}\n`);
179
- } catch (err) {
180
- console.error(`❌ Error: ${err.message}`);
181
- process.exit(1);
182
- } finally {
183
- await mesh.close();
184
- }
185
- });
186
-
187
- // 5. Delete Command
188
- program
189
- .command('delete')
190
- .description('Delete a memory by ID')
191
- .requiredOption('--id <id>', 'Memory record ID to delete')
192
- .action(async (options) => {
193
- const mesh = new MemoryMesh();
194
- try {
195
- await mesh.init();
196
- await mesh.delete(options.id);
197
- process.stdout.write(`[MemoryMesh] Deleted record ${options.id}\n`);
198
- } catch (err) {
199
- console.error(`❌ Error: ${err.message}`);
200
- process.exit(1);
201
- } finally {
202
- await mesh.close();
203
- }
204
- });
205
-
206
- // 6. Reflect Command
207
- program
208
- .command('reflect')
209
- .description('Query distilled lessons from memory (wisdom distillation)')
210
- .option('--topic <text>', 'Topic or query to reflect on', '')
211
- .option('--lookback <n>', 'Limit results to this many lessons', '10')
212
- .action(async (options) => {
213
- const mesh = new MemoryMesh();
214
- try {
215
- await mesh.init();
216
- const query = options.topic || 'lessons learned patterns errors fixes';
217
- const limit = parseInt(options.lookback) || 10;
218
- const lessons = await mesh.queryLessons(query, { limit });
219
- if (lessons.length === 0) {
220
- process.stdout.write(`[MemoryMesh] No lessons found${options.topic ? ` for topic: ${options.topic}` : ''}.\n`);
221
- } else {
222
- process.stdout.write(`[MemoryMesh] Reflecting on ${lessons.length} lesson(s):\n\n`);
223
- for (const lesson of lessons) {
224
- process.stdout.write(` scope: ${lesson.applicableScope}\n`);
225
- process.stdout.write(` rule: ${lesson.preventativeRule}\n`);
226
- process.stdout.write(` confidence: ${lesson.ruleConfidence}\n`);
227
- process.stdout.write('\n');
228
- }
229
- }
230
- } catch (err) {
231
- console.error(`❌ Error: ${err.message}`);
232
- process.exit(1);
233
- } finally {
234
- await mesh.close();
235
- }
236
- });
237
-
238
- // S-MORA command (RFC-0012)
239
- program
240
- .command('smora')
241
- .description('S-MORA enhanced retrieval: HyDE-Lite + multi-channel + heritage-aware reranking (RFC-0012)')
242
- .argument('<query>', 'The retrieval query')
243
- .option('-l, --limit <n>', 'Max results to return', '10')
244
- .option('--no-hyde', 'Disable HyDE-Lite query expansion (Layer 1)')
245
- .option('--intent <items>', 'Session intent chain for heritage bonus (comma-separated)', '')
246
- .option('--json', 'Output raw JSON response')
247
- .action(async (query, options) => {
248
- const mesh = new MemoryMesh();
249
- try {
250
- await mesh.init();
251
- const sessionIntent = options.intent
252
- ? options.intent.split(',').map((s) => s.trim()).filter(Boolean)
253
- : [];
254
- const resp = await mesh.smora(query, {
255
- limit: parseInt(options.limit) || 10,
256
- enableHyDE: options.hyde !== false,
257
- sessionIntent,
258
- });
259
- if (options.json) {
260
- process.stdout.write(JSON.stringify(resp, null, 2) + '\n');
261
- } else {
262
- const p = resp.pipeline;
263
- process.stdout.write(`[S-MORA] ${resp.results.length} result(s) | HyDE:${p.queryExpanded} heritage:${p.heritageAware} latency:${p.latencyMs}ms\n\n`);
264
- for (const r of resp.results) {
265
- process.stdout.write(` [${r.rrfRank}] score:${r.score.toFixed(3)} | ${r.content.slice(0, 100)}${r.content.length > 100 ? '...' : ''}\n`);
266
- }
267
- }
178
+ ui.header('MemoryMesh Subconscious Status');
179
+
180
+ const statusColor = stats.isConnected ? pc.green : pc.red;
181
+
182
+ console.log(`${pc.bold('Status:')} ${statusColor(stats.isConnected ? 'CONNECTED' : 'DISCONNECTED')}`);
183
+ console.log(`${pc.bold('Memories:')} ${pc.cyan(stats.count)} entries`);
184
+ console.log(`${pc.bold('Skills:')} ${pc.cyan(stats.totalSkills)} synthesized`);
185
+ console.log(`${pc.bold('Engine:')} LanceDB (Vector Index)`);
186
+ console.log(`${pc.bold('Model:')} ${pc.dim(stats.embedding.primary?.modelName || 'Unknown')}`);
187
+ console.log(`${pc.bold('Path:')} ${pc.dim(stats.uri)}`);
188
+
268
189
  } catch (err) {
269
- console.error(`❌ Error: ${err.message}`);
190
+ ui.error(`Stats failed: ${err.message}`);
270
191
  process.exit(1);
271
192
  } finally {
272
193
  await mesh.close();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yamo/memory-mesh",
3
- "version": "3.1.3",
3
+ "version": "3.2.0",
4
4
  "description": "Portable semantic memory system with Layer 0 Scrubber for YAMO agents (v3 Singularity Edition)",
5
5
  "type": "module",
6
6
  "main": "lib/memory/index.js",
@@ -29,7 +29,10 @@
29
29
  "commander": "^14.0.3",
30
30
  "onnxruntime-node": "^1.18.0",
31
31
  "pino": "^10.3.1",
32
- "pino-pretty": "^13.1.3"
32
+ "pino-pretty": "^13.1.3",
33
+ "cli-progress": "^3.12.0",
34
+ "picocolors": "^1.1.1",
35
+ "glob": "^11.0.1"
33
36
  },
34
37
  "author": "Soverane Labs",
35
38
  "license": "MIT",
package/skills/SKILL.md CHANGED
@@ -1,553 +1,138 @@
1
1
  ---
2
2
  name: yamo-super
3
- description: A comprehensive AI coding workflow system that orchestrates test-driven development, systematic debugging, collaborative planning, git worktree isolation, and dual-mode execution (subagent-driven or batched) with mandatory TDD red-green-refactor cycles, root-cause analysis, two-stage code review, and branch lifecycle management. For all code improvement or creation tasks, strictly adhere to the logic, agents, and constraints defined in this yamo skill.
3
+ description: The execution engine for the YAMO Unified OS. Orchestrates the complete lifecycle from Idea (Macro) to Tested Code (Micro) with Zero-JSON state passing and semantic heritage.
4
4
  ---
5
5
 
6
6
  metadata:
7
- name;YamoSuper;
8
- version;2.1.0;
9
- description;Comprehensive AI coding workflow system with automatic memory integration for pattern recognition and workflow optimization;
10
- author;Derived from Superpowers by Jesse Scott;adapted for YAMO by Soverane Labs;
7
+ name;YamoUnifiedOS;
8
+ version;3.0.0;
9
+ description;The Universal Agent Core merging Macro-Orchestration (SDD) with Micro-Execution (YamoSuper) into a single, unbroken semantic chain.;
10
+ author;Soverane Labs;
11
11
  license;MIT;
12
- tags;tdd;debugging;collaboration;planning;workflow;subagent;git;review;memory;semantic_search;
13
- capabilities;brainstorm_design;write_implementation_plan;execute_plan_batch;test_driven_development;systematic_debugging;verification;code_review;git_worktree;subagent_driven;parallel_dispatch;retrieve_workflow_patterns;store_execution_history;semantic_memory;
12
+ tags;orchestrator;unified;sdd;yamosuper;llm-first;yamo-v3;memory;
13
+ capabilities;orchestrate_global_lifecycle;bridge_spec_to_code;enforce_constitutional_discipline;manage_feedback_loops;use_llm_first_state_passing;semantic_memory;
14
14
  parameters:
15
- workflow_mode:
15
+ request:
16
+ type;string;
17
+ required;true;
18
+ description;The feature idea or bug report;
19
+ execution_mode:
16
20
  type;string;
17
21
  required;false;
18
- description;Mode: brainstorm, plan, execute, debug, review;
19
- enum;brainstorm;plan;execute;debug;review;
20
- dry_run:
21
- type;boolean;
22
- required;false;
23
- description;Preview actions without executing;
24
- memory_enabled:
25
- type;boolean;
26
- required;false;
27
- default;true;
28
- description;Enable storing and retrieving workflow execution patterns from Memory Mesh;
22
+ default;full;
23
+ description;How deep to go into the lifecycle: specification, planning, implementation, full;
24
+ enum;specification;planning;implementation;full;
29
25
  environment:
30
26
  requires_filesystem;true;
31
27
  requires_local_storage;true;
32
- notes;Creates worktrees, writes plans, manages git workflows, and stores execution history in Memory Mesh via tools/memory_mesh.js;
28
+ notes;Operates under the Singularity Kernel v3.0 protocol. Stores execution history in Memory Mesh via tools/memory_mesh.mjs;
33
29
  dependencies:
34
30
  required:
35
31
  - Git >= 2.30.0
36
- - Node >= 18.0.0 (for npm test commands)
37
- - MemoryMesh >=1.0.0;
38
- - {working_directory}/tools/memory_mesh.js;
39
- optional:
40
- - YamoChainClient (for blockchain anchoring)
41
- ---
42
- agent: MemorySystemInitializer;
43
- intent: verify_memory_system_availability;
44
- context:
45
- memory_tool;tools/memory_mesh.js;
46
- memory_enabled;provided_by_user.memory_enabled;
47
- constraints:
48
- - if_memory_enabled;verify_tool_exists;
49
- - test_memory_connection_with_search;
50
- - if_memory_unavailable;warn_user;continue_without_memory;
51
- - set_memory_status_flag;
52
- priority: high;
53
- output: memory_status.json;
54
- log: memory_initialized;available;timestamp;
55
- meta:
56
- hypothesis;Memory system availability check prevents runtime failures;
57
- rationale;Graceful degradation if memory unavailable;
58
- confidence;0.98;
59
- handoff: WorkflowOrchestrator;
32
+ - Node >= 18.0.0
33
+ - MemoryMesh >=3.1.0;
34
+ - {working_directory}/tools/memory_mesh.mjs;
60
35
  ---
61
- agent: WorkflowOrchestrator;
62
- intent: determine_workflow_entry_point_with_historical_context;
36
+ agent: GlobalInitiator;
37
+ intent: initialize_unified_lifecycle_context;
63
38
  context:
64
- user_request;raw_input;
65
- project_state;current_git_status;recent_commits;file_tree;
66
- available_modes;brainstorm;plan;execute;debug;review;
67
- memory_status;from_MemorySystemInitializer;
68
- memory_tool;tools/memory_mesh.js;
69
- memory_enabled;provided_by_user.memory_enabled;
39
+ request;provided_by_user.request;
40
+ execution_mode;provided_by_user.execution_mode;
41
+ foundation;foundational/yamo-unified-foundation.yamo;
42
+ state_mode;llm_first;
70
43
  constraints:
71
- - if_memory_available;search_similar_workflows;
72
- - extract_keywords_from_user_request;
73
- - search_query_format;"workflow mode project outcome";
74
- - retrieve_top_3_similar_patterns;
75
- - analyze_past_outcomes_success_failure;
76
- - present_similar_patterns_to_inform_decision;
77
- - check_if_creative_work_requested;trigger_brainstorming_agent;
78
- - check_if_spec_exists;trigger_planning_agent;
79
- - check_if_plan_exists;trigger_execution_agent;
80
- - check_if_bug_reported;trigger_debugging_agent;
81
- - check_if_review_requested;trigger_review_agent;
82
- - default_to_brainstorming_if_uncertain;
83
- - announce_active_workflow_to_user;
44
+ - load_unified_foundation;required;
45
+ - initialize_semantic_heritage;hypothesis;rationale;
46
+ - determine_pathway;macro_only_or_full_lifecycle;
84
47
  priority: critical;
85
- output: workflow_decision.json;
86
- log: workflow_determined;timestamp;mode_selected;past_patterns_found;
48
+ output: global_initialization_context.yamo;
49
+ log: unified_os_initialized;mode;timestamp;
87
50
  meta:
88
- hypothesis;Historical workflow patterns improve decision accuracy;
89
- rationale;Similar past workflows provide context for current decision;
90
- confidence;0.92;
91
- observation;Past success patterns should bias toward proven approaches;
92
- handoff: BrainstormingAgent;
93
- ---
94
- agent: BrainstormingAgent;
95
- intent: refine_ideas_through_socratic_dialogue;
96
- context:
97
- project_state;from_WorkflowOrchestrator;
98
- workflow_decision;from_WorkflowOrchestrator;
99
- user_idea;raw_request;
100
- past_patterns;from_WorkflowOrchestrator.similar_workflows;
101
- constraints:
102
- - if_past_patterns_exist;reference_successful_approaches;
103
- - check_project_context_first;files;docs;recent_commits;
104
- - ask_questions_one_at_a_time;
105
- - prefer_multiple_choice_when_possible;
106
- - focus_understanding;purpose;constraints;success_criteria;
107
- - propose_2_3_alternatives_with_tradeoffs;
108
- - present_design_in_sections_200_300_words;
109
- - validate_after_each_section;
110
- - cover;architecture;components;data_flow;error_handling;testing;
111
- - apply_yagni_ruthlessly;
112
- priority: high;
113
- output: validated_design.md;
114
- log: design_validated;timestamp;sections_reviewed;alternatives_proposed;
115
- meta:
116
- hypothesis;Incremental validation produces better designs;
117
- rationale;Large designs overwhelm;section-by-section enables feedback;
118
- confidence;0.94;
119
- handoff: DocumentationAgent;
120
- ---
121
- agent: DocumentationAgent;
122
- intent: persist_and_commit_design;
123
- context:
124
- design;from_BrainstormingAgent;
125
- destination;docs/plans/YYYY-MM-DD-<topic>-design.md;
126
- memory_tool;tools/memory_mesh.js;
127
- memory_status;from_MemorySystemInitializer;
128
- constraints:
129
- - use_clear_concise_writing;
130
- - commit_to_git_with_descriptive_message;
131
- - tag_commit_with_design_reviewed;
132
- - if_memory_available;store_design_summary;
133
- - content_format;"Design phase: <topic>. Approach: <architecture>. Components: <list>. Status: validated.";
134
- - metadata;{workflow:"yamo-super",phase:"design",project:"<name>",timestamp:"<iso>",commit_sha:"<sha>"};
135
- - ask_ready_for_implementation;
136
- priority: medium;
137
- output: design_file_path;commit_sha;memory_id;
138
- log: design_documented;timestamp;file_path;commit_sha;memory_stored;
139
- meta:
140
- hypothesis;Documented designs enable better implementation;
141
- rationale;Written specs prevent drift during coding;
142
- confidence;0.96;
143
- handoff: WorktreeAgent;
51
+ hypothesis;A unified context chain prevents the loss of intent during the spec-to-code transition;
52
+ rationale;Disconnected tools create information silos; unification creates semantic flow;
53
+ confidence;0.98;
54
+ handoff: SubconsciousReflector;
144
55
  ---
145
- agent: WorktreeAgent;
146
- intent: create_isolated_development_workspace;
56
+ agent: SubconsciousReflector;
57
+ intent: query_memory_mesh_for_past_oversights;
147
58
  context:
148
- design;from_DocumentationAgent;
149
- base_branch;main_or_master;
59
+ init;global_initialization_context.yamo;
60
+ search_tag;"#lesson_learned";
61
+ tool;tools/memory_mesh.mjs;
150
62
  constraints:
151
- - create_git_worktree_at;.git/worktrees/<feature-name>;
152
- - checkout_new_branch_feature/<name>;
153
- - run_project_setup;npm_install;npm_run_build;
154
- - verify_clean_test_baseline;npm_test;
155
- - document_worktree_location;
63
+ - search_similar_past_contexts;based_on_request;
64
+ - extract_preventative_constraints;from_lessons;
65
+ - inject_constraints_into_macro_context;required;
66
+ - meta_rationale;Learning from past mistakes is the only way to achieve senior-level reliability;
156
67
  priority: high;
157
- output: worktree_path;branch_name;
158
- log: workspace_created;timestamp;path;branch;baseline_tests;
68
+ output: subconscious_reflection_context.yamo;
159
69
  meta:
160
- hypothesis;Isolated worktrees prevent main branch pollution;
161
- rationale;Clean branches enable easy rollback and parallel development;
70
+ hypothesis;Proactive reflection prevents the repetition of previous architectural errors;
162
71
  confidence;0.99;
163
- handoff: PlanningAgent;
72
+ handoff: MacroWorkflowInvoker;
164
73
  ---
165
- agent: PlanningAgent;
166
- intent: create_detailed_implementation_plan;
74
+ agent: MacroWorkflowInvoker;
75
+ intent: invoke_macro_sdd_layer;
167
76
  context:
168
- design;from_DocumentationAgent;
169
- worktree_path;from_WorktreeAgent;
170
- past_patterns;from_WorkflowOrchestrator.similar_workflows;
171
- assumptions;
172
- engineer_has_zero_codebase_context;
173
- engineer_has_questionable_taste;
174
- engineer_needs_explicit_instructions;
77
+ init;subconscious_reflection_context.yamo;
78
+ workflows:
79
+ specification;macro/specification-workflow.yamo;
80
+ planning;macro/planning-workflow.yamo;
175
81
  constraints:
176
- - if_similar_plans_exist;adapt_proven_task_breakdowns;
177
- - break_into_bite_sized_tasks;2_5_minutes_each;
178
- - each_task_one_action;write_test;run_test;implement;verify;commit;
179
- - specify_exact_file_paths;
180
- - include_complete_code_not_hints;
181
- - include_exact_commands_with_expected_output;
182
- - reference_relevant_skills_with_at_syntax;
183
- - enforce_dry;yagni;tdd;frequent_commits;
184
- - save_to;docs/plans/YYYY-MM-DD-<feature-name>.md;
185
- - include_required_header;goal;architecture;tech_stack;
186
- - include_sub_skill_directive;use_superpowers:executing_plans;
187
- priority: critical;
188
- output: implementation_plan.md;
189
- log: plan_created;timestamp;task_count;file_path;
190
- meta:
191
- hypothesis;Explicit plans enable autonomous subagent execution;
192
- rationale;Zero_context engineers need complete information;
193
- confidence;0.97;
194
- handoff: ExecutionSelector;
195
- ---
196
- agent: ExecutionSelector;
197
- intent: offer_execution_choice;
198
- context:
199
- plan;from_PlanningAgent;
200
- worktree_path;from_WorktreeAgent;
201
- constraints:
202
- - present_two_options;subagent_driven;parallel_session;
203
- - explain_subagent_driven;same_session;fresh_subagent_per_task;two_stage_review;
204
- - explain_parallel_session;new_session;batch_execution;checkpoints;
205
- - await_user_choice;
82
+ - execute_specification_phase;idea_to_prd;
83
+ - execute_macro_planning_phase;prd_to_roadmap;
84
+ - enforce_macro_quality_gates;specification_and_compliance;
85
+ - stop_here;if_mode_is_specification_or_planning;
206
86
  priority: high;
207
- output: execution_mode;session_instructions;
208
- log: execution_mode_selected;timestamp;mode;
209
- meta:
210
- hypothesis;Choice accommodates different working styles;
211
- rationale;Some prefer continuity;others prefer isolation;
212
- confidence;0.91;
213
- handoff: SubagentDriver;
214
- ---
215
- agent: SubagentDriver;
216
- intent: execute_plan_via_fresh_subagents;
217
- context:
218
- plan;from_PlanningAgent;
219
- worktree_path;from_WorktreeAgent;
220
- constraints:
221
- - read_plan_once;extract_all_tasks_with_full_text;
222
- - create_todo_write_with_all_tasks;
223
- - per_task;
224
- - dispatch_implementer_subagent_with_full_context;
225
- - allow_subagent_to_ask_questions_before_work;
226
- - implementer_subagent_implements_tests_commits_self_reviews;
227
- - dispatch_spec_compliance_reviewer_subagent;
228
- - spec_reviewer_confirms_code_matches_spec;
229
- - if_spec_issues;implementer_fixes;re_review_until_approved;
230
- - dispatch_code_quality_reviewer_subagent;
231
- - code_reviewer_approves_quality;
232
- - if_quality_issues;implementer_fixes;re_review_until_approved;
233
- - mark_task_complete_in_todo_write;
234
- - after_all_tasks;dispatch_final_code_reviewer;
235
- - use_finishing_development_branch_workflow;
236
- - never_skip_reviews;
237
- - never_parallel_dispatch_implementers;
238
- - always_provide_full_text_not_file_references;
239
- - ensure_scene_setting_context_per_task;
87
+ output: macro_results_context.yamo;
88
+ handoff: MicroWorkflowInvoker;
89
+ ---
90
+ agent: MicroWorkflowInvoker;
91
+ intent: invoke_micro_yamosuper_layer;
92
+ context:
93
+ macro_results;macro_results_context.yamo;
94
+ workflows:
95
+ implementation;micro/implementation-tdd.yamo;
96
+ debugging;micro/debugging-verification.yamo;
97
+ review;micro/review-closure.yamo;
98
+ constraints:
99
+ - transform_roadmap_to_tdd_tasks;semantic_inheritance_required;
100
+ - execute_tdd_cycles;red_green_refactor;
101
+ - enforce_micro_quality_gates;implementation_and_audit;
102
+ - if_critical_logic_error;optionally_return_to_macro_planning;
240
103
  priority: critical;
241
- output: implementation_complete;all_commits;test_results;
242
- log: execution_complete;timestamp;tasks_completed;commits;tests_passed;
243
- meta:
244
- hypothesis;Fresh subagents per task prevent context pollution;
245
- rationale;Two_stage_review ensures_spec_compliance_and_code_quality;
246
- confidence;0.95;
247
- handoff: BatchExecutor;
104
+ output: micro_results_context.yamo;
105
+ handoff: UnifiedReporter;
248
106
  ---
249
- agent: BatchExecutor;
250
- intent: execute_plan_in_batches_with_checkpoints;
107
+ agent: UnifiedReporter;
108
+ intent: generate_global_lifecycle_report;
251
109
  context:
252
- plan;from_PlanningAgent;
253
- worktree_path;from_WorktreeAgent;
110
+ macro;macro_results_context.yamo;
111
+ micro;micro_results_context.yamo;
254
112
  constraints:
255
- - group_tasks_into_logical_batches;
256
- - execute_batch_sequentially;
257
- - after_each_batch;
258
- - run_all_tests;verify_passing;
259
- - request_human_checkpoint;
260
- - await_approval_before_next_batch;
261
- - commit_after_each_batch;
262
- - report_progress_clearly;
113
+ - trace_intent_from_spec_to_code;
114
+ - report_constitutional_compliance_summary;
115
+ - document_hypotheses_validated_vs_rejected;
116
+ - report_zero_json_status;must_be_zero_json;
263
117
  priority: high;
264
- output: batches_completed;checkpoint_status;
265
- log: batch_execution_complete;timestamp;batches;checkpoints_passed;
118
+ output: unified_lifecycle_report.md;
266
119
  meta:
267
- hypothesis;Checkpoints maintain human oversight;
268
- rationale;Batch execution balances autonomy_with_control;
269
- confidence;0.93;
270
- handoff: TDDAgent;
271
- ---
272
- agent: TDDAgent;
273
- intent: enforce_test_driven_development_cycle;
274
- context:
275
- task;from_SubagentDriver_or_BatchExecutor;
276
- constraints:
277
- - iron_law;no_production_code_without_failing_test_first;
278
- - red;write_one_minimal_test;
279
- - one_behavior_per_test;
280
- - clear_name_describing_behavior;
281
- - use_real_code_not_mocks;
282
- - verify_red;run_test;confirm_fails_correctly;
283
- - test_must_fail_not_error;
284
- - failure_message_must_be_expected;
285
- - fails_because_feature_missing_not_typo;
286
- - green;write_minimal_code_to_pass;
287
- - simplest_possible_implementation;
288
- - no_features_beyond_test;
289
- - no_refactoring_during_green;
290
- - verify_green;run_test;confirm_passes;
291
- - test_passes;
292
- - other_tests_still_pass;
293
- - output_pristine_no_errors;
294
- - refactor;clean_up_only_after_green;
295
- - remove_duplication;
296
- - improve_names;
297
- - extract_helpers;
298
- - keep_tests_green;
299
- - red_flags;code_before_test;test_passes_immediately;rationalizing_exceptions;
300
- - penalty;delete_code_start_over;
301
- priority: critical;
302
- output: test_coverage;implementation;
303
- log: tdd_cycle_complete;timestamp;test_name;status;
304
- meta:
305
- hypothesis;Watching_test_fail_proves_it_tests_something;
306
- rationale;tests_after_answer_what_does_this_do;tests_first_answer_what_should_this_do;
307
- confidence;0.99;
308
- handoff: DebuggingAgent;
309
- ---
310
- agent: DebuggingAgent;
311
- intent: systematic_root_cause_analysis;
312
- context:
313
- bug_report;user_report_or_test_failure;
314
- memory_tool;tools/memory_mesh.js;
315
- memory_status;from_MemorySystemInitializer;
316
- constraints:
317
- - if_memory_available;search_similar_bugs;
318
- - extract_error_signature;
319
- - search_query_format;"debug error <signature> <component>";
320
- - check_past_solutions;
321
- - phase_1_define_problem;
322
- - describe_symptoms_precisely;
323
- - identify_affected_components;
324
- - determine_frequency_always_sometimes_intermittent;
325
- - phase_2_gather_evidence;
326
- - reproduce_bug_reliably;
327
- - collect_logs_stack_traces;
328
- - identify_when_started_working;
329
- - phase_3_isolate_cause;
330
- - use_root_cause_tracing;
331
- - use_defense_in_depth_analysis;
332
- - use_condition_based_waiting_for_race_conditions;
333
- - binary_search_git_history;
334
- - minimize_reproduction_case;
335
- - phase_4_verify_fix;
336
- - write_failing_test_reproducing_bug;
337
- - apply_tdd_cycle_to_fix;
338
- - use_verification_before_completion;
339
- - if_memory_available;store_bug_resolution;
340
- - content_format;"Debug: <error_signature>. Root cause: <cause>. Solution: <fix>. Component: <component>.";
341
- - metadata;{workflow:"yamo-super",phase:"debug",bug_type:"<type>",resolution:"<fix>",timestamp:"<iso>"};
342
- - never_fix_without_test;
343
- - never_apply_bandages;
344
- priority: high;
345
- output: root_cause;fix_verification_test;memory_id;
346
- log: bug_resolved;timestamp;root_cause;test_added;similar_bugs_found;
347
- meta:
348
- hypothesis;Systematic_debugging_faster_than_shotgun_debugging;
349
- rationale;root_cause_elimination_prevents_reoccurrence;
350
- confidence;0.96;
351
- observation;Historical bug patterns accelerate diagnosis;
352
- handoff: VerificationAgent;
353
- ---
354
- agent: VerificationAgent;
355
- intent: ensure_fix_actually_works;
356
- context:
357
- proposed_fix;from_DebuggingAgent;
358
- original_bug;from_DebuggingAgent;
359
- constraints:
360
- - reproduce_original_bug_first;confirm_exists;
361
- - apply_fix;
362
- - verify_bug_gone;
363
- - verify_no_regressions;
364
- - verify_edge_cases;
365
- - run_full_test_suite;
366
- - check_output_pristine;
367
- - if_not_fixed;restart_debugging;
368
- priority: high;
369
- output: verification_status;regression_check;
370
- log: verification_complete;timestamp;status;regressions;
371
- meta:
372
- hypothesis;Verification_catches_incomplete_fixes;
373
- rationale;feeling_fixed_does_not_mean_fixed;
374
- confidence;0.98;
375
- handoff: CodeReviewAgent;
376
- ---
377
- agent: CodeReviewAgent;
378
- intent: conduct_pre_merge_quality_gate;
379
- context:
380
- implementation;from_SubagentDriver_or_BatchExecutor;
381
- plan;from_PlanningAgent;
382
- memory_tool;tools/memory_mesh.js;
383
- memory_status;from_MemorySystemInitializer;
384
- constraints:
385
- - review_against_plan;
386
- - all_requirements_implemented;
387
- - no_extra_features_beyond_spec;
388
- - file_matches_match_plan;
389
- - code_quality_check;
390
- - tests_cover_all_cases;
391
- - tests_use_real_code_not_mocks;
392
- - code_is_clean_not_clever;
393
- - names_are_clear;
394
- - no_duplication;
395
- - proper_error_handling;
396
- - report_by_severity;
397
- - critical;blocks_progress;must_fix;
398
- - important;should_fix_before_merge;
399
- - minor;nice_to_have;
400
- - if_critical_issues;block_progress;
401
- - if_no_issues;approve;
402
- - if_memory_available;store_review_outcome;
403
- - content_format;"Code review: <feature>. Quality: <rating>. Issues: <count>. Tests: <coverage>. Outcome: <approved/rejected>.";
404
- - metadata;{workflow:"yamo-super",phase:"review",quality_rating:"<rating>",issues_count:"<n>",timestamp:"<iso>"};
405
- priority: critical;
406
- output: review_report;approval_status;memory_id;
407
- log: review_complete;timestamp;critical;important;minor;status;
408
- meta:
409
- hypothesis;Pre_merge_review_catches_issues_early;
410
- rationale;merge_reviews_are_too_late_for_easy_fixes;
120
+ hypothesis;Traceability from spec to code proves cognitive alignment;
411
121
  confidence;0.97;
412
- handoff: BranchFinisher;
413
- ---
414
- agent: BranchFinisher;
415
- intent: complete_development_branch_workflow;
416
- context:
417
- implementation;from_CodeReviewAgent;
418
- worktree_path;from_WorktreeAgent;
419
- review_report;from_CodeReviewAgent;
420
- constraints:
421
- - verify_all_tests_pass;
422
- - verify_no_regressions;
423
- - present_options;
424
- - merge_to_main;
425
- - create_pull_request;
426
- - keep_branch_for_more_work;
427
- - discard_branch;
428
- - if_merge;merge_fast_forward_or_squash;delete_worktree;
429
- - if_pull_request;create_pr_with_description;link_to_plan;
430
- - if_discard;delete_branch;remove_worktree;
431
- - document_decision;
432
- priority: high;
433
- output: merge_status;pr_url_or_branch_deleted;
434
- log: branch_completed;timestamp;outcome;
435
- meta:
436
- hypothesis;Explicit_branch_completion_prevents_orphan_branches;
437
- rationale;clear_decisions_prevent_branch_accumulation;
438
- confidence;0.95;
439
- handoff: WorkflowMemoryStore;
440
- ---
441
- agent: ParallelDispatcher;
442
- intent: coordinate_concurrent_subagent_workflows;
443
- context:
444
- independent_tasks;task_list;
445
- constraints:
446
- - identify_truly_independent_tasks;
447
- - dispatch_subagents_in_parallel;
448
- - wait_for_all_subagents;
449
- - collect_results;
450
- - detect_conflicts;
451
- - if_conflicts;resolve_sequentially;
452
- - merge_results;
453
- priority: medium;
454
- output: parallel_results;conflict_resolution_log;
455
- log: parallel_dispatch_complete;timestamp;tasks;conflicts;
456
- meta:
457
- hypothesis;Parallel_execution_saves_wall_clock_time;
458
- rationale;independent_tasks_have_no_dependencies;
459
- confidence;0.89;
460
- handoff: SkillMetaAgent;
461
- ---
462
- agent: SkillMetaAgent;
463
- intent: enable_skill_creation_and_extension;
464
- context:
465
- new_skill_idea;user_request;
466
- constraints:
467
- - use_writing_skills_skill;
468
- - follow_skill_structure;
469
- - metadata_block;
470
- - agent_definitions;
471
- - constraints_as_semicolon_key_values;
472
- - triple_dash_delimiters;
473
- - explicit_handoff_chains;
474
- - ensure_v1_compliance;
475
- - scaffold_tests;
476
- - validate_syntax;
477
- - classify_category;
478
- priority: low;
479
- output: new_skill_yamo;test_plan;
480
- log: skill_created;timestamp;name;category;
481
- meta:
482
- hypothesis;Meta_skills_enable_ecosystem_growth;
483
- rationale;extensible_systems_adapt_to_new_needs;
484
- confidence;0.88;
485
- handoff: End;
122
+ handoff: User;
486
123
  ---
487
124
  agent: UsageGuide;
488
- intent: introduce_superpowers_workflow;
125
+ intent: introduce_unified_os_workflow;
489
126
  context:
490
- user;new_to_superpowers;
127
+ user;new_to_singularity;
491
128
  constraints:
492
- - explain_basic_workflow;
493
- - brainstorming;design_refinement;
494
- - using_git_worktrees;isolated_workspace;
495
- - writing_plans;implementation_breakdown;
496
- - subagent_driven_or_executing_plans;task_execution;
497
- - test_driven_development;red_green_refactor;
498
- - systematic_debugging;root_cause_analysis;
499
- - requesting_code_review;quality_gate;
500
- - finishing_development_branch;merge_pr_discard;
501
- - memory_integration;pattern_recognition;
502
- - explain_skills_trigger_automatically;
503
- - explain_mandatory_not_suggestions;
504
- - demonstrate_with_example;
129
+ - explain_unified_architecture;
130
+ - macro_layer;idea_to_specification;planning;
131
+ - micro_layer;tdd_execution;debugging;review;
132
+ - explain_zero_json_mandate;
133
+ - demonstrate_semantic_heritage;how_intent_flows_to_code;
134
+ - explain_subconscious_reflection;proactive_oversight_checks;
505
135
  priority: low;
506
136
  output: user_understanding;workflow_ready;
507
137
  log: onboarded;timestamp;user;
508
- meta:
509
- hypothesis;clear_introduction_enables_effective_use;
510
- rationale;understanding_why_builds_compliance;
511
- confidence;0.92;
512
- handoff: WorkflowMemoryStore;
513
- ---
514
- agent: WorkflowMemoryStore;
515
- intent: store_complete_workflow_execution_for_pattern_recognition;
516
- context:
517
- workflow_decision;from_WorkflowOrchestrator;
518
- design_output;from_DocumentationAgent;
519
- implementation_result;from_SubagentDriver_or_BatchExecutor;
520
- review_result;from_CodeReviewAgent;
521
- branch_outcome;from_BranchFinisher;
522
- memory_tool;tools/memory_mesh.js;
523
- memory_status;from_MemorySystemInitializer;
524
- constraints:
525
- - if_memory_available;store_complete_workflow;
526
- - aggregate_all_phase_data;
527
- - content_format;"Workflow: yamo-super. Mode: <mode>. Project: <project>. Design: <summary>. Implementation: <tasks_completed>. Review: <quality>. Tests: <passed/failed>. Outcome: <success/failure>. Duration: <time>.";
528
- - metadata;{
529
- workflow:"yamo-super",
530
- mode:"<selected_mode>",
531
- project:"<project_name>",
532
- phase:"complete",
533
- design_commit:"<sha>",
534
- implementation_commits:"<count>",
535
- tests_passed:"<true/false>",
536
- review_approved:"<true/false>",
537
- outcome:"<success/failure>",
538
- duration_minutes:"<n>",
539
- timestamp:"<iso>"
540
- };
541
- - generate_workflow_embedding;
542
- - tag_by_mode_project_type_and_outcome;
543
- - enable_future_recommendations;
544
- - if_blockchain_available;anchor_to_yamo_chain;
545
- priority: high;
546
- output: workflow_memory_receipt.json;
547
- log: workflow_stored;memory_id;outcome;timestamp;
548
- meta:
549
- hypothesis;Storing complete workflows enables pattern recognition for future recommendations;
550
- rationale;Historical success patterns guide future workflow decisions;
551
- confidence;0.94;
552
- observation;Semantic search finds similar contexts not just keyword matches;
553
138
  handoff: End;