@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.
- package/bin/memory_mesh.js +107 -186
- package/package.json +5 -2
- package/skills/SKILL.md +93 -508
package/bin/memory_mesh.js
CHANGED
|
@@ -1,23 +1,36 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* YAMO MemoryMesh CLI -
|
|
4
|
+
* YAMO MemoryMesh CLI - Singularity Edition (v3.2.0)
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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('
|
|
20
|
-
.version('3.
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
56
|
+
ui.success(`Ingested record ${pc.bold(record.id)}`);
|
|
48
57
|
} catch (err) {
|
|
49
|
-
|
|
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
|
|
65
|
+
// 2. Pull Command (Smart Directory Ingest)
|
|
57
66
|
program
|
|
58
|
-
.command('
|
|
59
|
-
.
|
|
60
|
-
.
|
|
61
|
-
.
|
|
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
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
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
|
-
|
|
96
|
-
source:
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
|
|
122
|
+
bar.stop();
|
|
123
|
+
ui.success(`Successfully distilled ${pc.bold(files.length)} files into memory.`);
|
|
124
|
+
|
|
106
125
|
} catch (err) {
|
|
107
|
-
|
|
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
|
|
119
|
-
.option('-l, --limit <number>', 'Number of results', '
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
170
|
+
// 4. Stats Command
|
|
141
171
|
program
|
|
142
172
|
.command('stats')
|
|
143
|
-
.description('
|
|
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
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
console.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
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.
|
|
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:
|
|
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;
|
|
8
|
-
version;
|
|
9
|
-
description;
|
|
10
|
-
author;
|
|
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;
|
|
13
|
-
capabilities;
|
|
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
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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;
|
|
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
|
|
37
|
-
- MemoryMesh >=1.0
|
|
38
|
-
- {working_directory}/tools/memory_mesh.
|
|
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:
|
|
62
|
-
intent:
|
|
36
|
+
agent: GlobalInitiator;
|
|
37
|
+
intent: initialize_unified_lifecycle_context;
|
|
63
38
|
context:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
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:
|
|
86
|
-
log:
|
|
48
|
+
output: global_initialization_context.yamo;
|
|
49
|
+
log: unified_os_initialized;mode;timestamp;
|
|
87
50
|
meta:
|
|
88
|
-
hypothesis;
|
|
89
|
-
rationale;
|
|
90
|
-
confidence;0.
|
|
91
|
-
|
|
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:
|
|
146
|
-
intent:
|
|
56
|
+
agent: SubconsciousReflector;
|
|
57
|
+
intent: query_memory_mesh_for_past_oversights;
|
|
147
58
|
context:
|
|
148
|
-
|
|
149
|
-
|
|
59
|
+
init;global_initialization_context.yamo;
|
|
60
|
+
search_tag;"#lesson_learned";
|
|
61
|
+
tool;tools/memory_mesh.mjs;
|
|
150
62
|
constraints:
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
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:
|
|
158
|
-
log: workspace_created;timestamp;path;branch;baseline_tests;
|
|
68
|
+
output: subconscious_reflection_context.yamo;
|
|
159
69
|
meta:
|
|
160
|
-
hypothesis;
|
|
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:
|
|
72
|
+
handoff: MacroWorkflowInvoker;
|
|
164
73
|
---
|
|
165
|
-
agent:
|
|
166
|
-
intent:
|
|
74
|
+
agent: MacroWorkflowInvoker;
|
|
75
|
+
intent: invoke_macro_sdd_layer;
|
|
167
76
|
context:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
-
|
|
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:
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
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:
|
|
242
|
-
|
|
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:
|
|
250
|
-
intent:
|
|
107
|
+
agent: UnifiedReporter;
|
|
108
|
+
intent: generate_global_lifecycle_report;
|
|
251
109
|
context:
|
|
252
|
-
|
|
253
|
-
|
|
110
|
+
macro;macro_results_context.yamo;
|
|
111
|
+
micro;micro_results_context.yamo;
|
|
254
112
|
constraints:
|
|
255
|
-
-
|
|
256
|
-
-
|
|
257
|
-
-
|
|
258
|
-
|
|
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:
|
|
265
|
-
log: batch_execution_complete;timestamp;batches;checkpoints_passed;
|
|
118
|
+
output: unified_lifecycle_report.md;
|
|
266
119
|
meta:
|
|
267
|
-
hypothesis;
|
|
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:
|
|
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:
|
|
125
|
+
intent: introduce_unified_os_workflow;
|
|
489
126
|
context:
|
|
490
|
-
user;
|
|
127
|
+
user;new_to_singularity;
|
|
491
128
|
constraints:
|
|
492
|
-
-
|
|
493
|
-
-
|
|
494
|
-
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
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;
|