@yamo/memory-mesh 2.0.1 → 2.1.1
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 +63 -14
- package/bin/setup.js +199 -0
- package/package.json +3 -2
- package/skills/SKILL.md +125 -32
package/README.md
CHANGED
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Portable, semantic memory system for AI agents with automatic Layer 0 sanitization.
|
|
4
4
|
|
|
5
|
+
Built on the [YAMO Protocol](https://github.com/yamo-protocol) for transparent agent collaboration with structured workflows and immutable provenance.
|
|
6
|
+
|
|
5
7
|
## Features
|
|
6
8
|
|
|
7
|
-
- **Persistent Vector Storage**: Powered by LanceDB.
|
|
8
|
-
- **Layer 0 Scrubber**: Automatically sanitizes, deduplicates, and cleans content.
|
|
9
|
+
- **Persistent Vector Storage**: Powered by LanceDB for semantic search.
|
|
10
|
+
- **Layer 0 Scrubber**: Automatically sanitizes, deduplicates, and cleans content before embedding.
|
|
9
11
|
- **Local Embeddings**: Runs 100% locally using ONNX (no API keys required).
|
|
10
12
|
- **Portable CLI**: Simple JSON-based interface for any agent or language.
|
|
13
|
+
- **YAMO Skills Integration**: Includes yamo-super workflow system with automatic memory learning.
|
|
14
|
+
- **Pattern Recognition**: Workflows automatically store and retrieve execution patterns for optimization.
|
|
11
15
|
|
|
12
16
|
## Installation
|
|
13
17
|
|
|
@@ -45,31 +49,45 @@ const results = await mesh.search('query');
|
|
|
45
49
|
To use MemoryMesh with your Claude Code skills (like `yamo-super`) in a new project:
|
|
46
50
|
|
|
47
51
|
### 1. Install the Package
|
|
48
|
-
This installs the heavy dependencies (LanceDB, ONNX) and binaries.
|
|
49
52
|
|
|
50
53
|
```bash
|
|
51
54
|
npm install @yamo/memory-mesh
|
|
52
|
-
# Or install locally if developing:
|
|
53
|
-
# npm install /path/to/memory-mesh
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
### 2. Setup
|
|
57
|
-
|
|
57
|
+
### 2. Run Setup
|
|
58
|
+
|
|
59
|
+
This installs YAMO skills to `~/.claude/skills/memory-mesh/` and tools to `./tools/`:
|
|
58
60
|
|
|
59
|
-
**Quick Setup:**
|
|
60
61
|
```bash
|
|
61
|
-
|
|
62
|
-
cp node_modules/@yamo/memory-mesh/bin/memory_mesh.js tools/memory_mesh.js
|
|
62
|
+
npx memory-mesh-setup
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
The setup script will:
|
|
66
|
+
- Copy YAMO skills (`yamo-super`, `scrubber`) to Claude Code
|
|
67
|
+
- Copy CLI tools to your project's `tools/` directory
|
|
68
|
+
- Prompt before overwriting existing files
|
|
69
|
+
|
|
70
|
+
### 3. Use the Skills
|
|
71
|
+
|
|
72
|
+
Your skills are now available in Claude Code with automatic memory integration:
|
|
67
73
|
|
|
68
74
|
```bash
|
|
69
|
-
|
|
75
|
+
# Use yamo-super workflow system
|
|
76
|
+
# Automatically retrieves similar past workflows and stores execution patterns
|
|
77
|
+
claude /yamo-super
|
|
78
|
+
|
|
79
|
+
# Use scrubber skill for content sanitization
|
|
80
|
+
claude /scrubber content="raw text"
|
|
70
81
|
```
|
|
71
82
|
|
|
72
|
-
|
|
83
|
+
**Memory Integration Features:**
|
|
84
|
+
- **Workflow Orchestrator**: Searches for similar past workflows before starting
|
|
85
|
+
- **Design Phase**: Stores validated designs with metadata
|
|
86
|
+
- **Debug Phase**: Retrieves similar bug patterns and stores resolutions
|
|
87
|
+
- **Review Phase**: Stores code review outcomes and quality metrics
|
|
88
|
+
- **Complete Workflow**: Stores full execution pattern for future optimization
|
|
89
|
+
|
|
90
|
+
YAMO agents will automatically find tools in `tools/memory_mesh.js` and `tools/scrubber.js`.
|
|
73
91
|
|
|
74
92
|
## Docker
|
|
75
93
|
|
|
@@ -78,3 +96,34 @@ docker run -v $(pwd)/data:/app/runtime/data \
|
|
|
78
96
|
yamo/memory-mesh store "Content"
|
|
79
97
|
```
|
|
80
98
|
|
|
99
|
+
## About YAMO Protocol
|
|
100
|
+
|
|
101
|
+
Memory Mesh is built on the **YAMO (Yet Another Markup for Orchestration) Protocol** - a structured language for transparent AI agent collaboration with immutable provenance tracking.
|
|
102
|
+
|
|
103
|
+
**YAMO Protocol Features:**
|
|
104
|
+
- **Structured Agent Workflows**: Semicolon-terminated constraints, explicit handoff chains
|
|
105
|
+
- **Meta-Reasoning Traces**: Hypothesis, rationale, confidence, and observation annotations
|
|
106
|
+
- **Blockchain Integration**: Immutable audit trails via Model Context Protocol (MCP)
|
|
107
|
+
- **Multi-Agent Coordination**: Designed for transparent collaboration across organizational boundaries
|
|
108
|
+
|
|
109
|
+
**Learn More:**
|
|
110
|
+
- **YAMO Protocol Organization**: [github.com/yamo-protocol](https://github.com/yamo-protocol)
|
|
111
|
+
- **Protocol Specification**: See the YAMO RFC documents for core syntax and semantics
|
|
112
|
+
- **Ecosystem**: Explore other YAMO-compliant tools and skills
|
|
113
|
+
|
|
114
|
+
Memory Mesh implements YAMO v2.1.0 compliance with:
|
|
115
|
+
- MemorySystemInitializer agent for graceful degradation
|
|
116
|
+
- Context passing between agents (`from_AgentName.output`)
|
|
117
|
+
- Structured logging with meta-reasoning
|
|
118
|
+
- Priority levels and constraint-based execution
|
|
119
|
+
- Automatic workflow pattern storage for continuous learning
|
|
120
|
+
|
|
121
|
+
**Related YAMO Projects:**
|
|
122
|
+
- [yamo-chain](https://github.com/yamo-protocol/yamo-protocol) - Blockchain integration for agent provenance
|
|
123
|
+
|
|
124
|
+
## Documentation
|
|
125
|
+
|
|
126
|
+
- **Architecture Guide**: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) - Comprehensive system architecture (1,118 lines)
|
|
127
|
+
- **Development Guide**: [CLAUDE.md](CLAUDE.md) - Guide for Claude Code development
|
|
128
|
+
- **Marketplace**: [.claude-plugin/marketplace.json](.claude-plugin/marketplace.json) - Plugin metadata
|
|
129
|
+
|
package/bin/setup.js
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Memory Mesh Setup Script
|
|
5
|
+
* Installs YAMO skills and tools into your project and Claude Code environment
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
9
|
+
import { dirname, join, resolve } from 'path';
|
|
10
|
+
import { existsSync, mkdirSync, copyFileSync, readdirSync, statSync, readFileSync } from 'fs';
|
|
11
|
+
import { homedir } from 'os';
|
|
12
|
+
import { createInterface } from 'readline';
|
|
13
|
+
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = dirname(__filename);
|
|
16
|
+
const packageRoot = resolve(__dirname, '..');
|
|
17
|
+
const FORCE_MODE = process.argv.includes('--force') || process.argv.includes('-f');
|
|
18
|
+
|
|
19
|
+
const COLORS = {
|
|
20
|
+
reset: '\x1b[0m',
|
|
21
|
+
bright: '\x1b[1m',
|
|
22
|
+
green: '\x1b[32m',
|
|
23
|
+
yellow: '\x1b[33m',
|
|
24
|
+
blue: '\x1b[34m',
|
|
25
|
+
red: '\x1b[31m'
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
function log(message, color = 'reset') {
|
|
29
|
+
console.log(`${COLORS[color]}${message}${COLORS.reset}`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function promptUser(question) {
|
|
33
|
+
const rl = createInterface({
|
|
34
|
+
input: process.stdin,
|
|
35
|
+
output: process.stdout
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return new Promise((resolve) => {
|
|
39
|
+
rl.question(`${COLORS.yellow}${question}${COLORS.reset} `, (answer) => {
|
|
40
|
+
rl.close();
|
|
41
|
+
resolve(answer.toLowerCase().trim());
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async function copyWithPrompt(src, dest, label) {
|
|
47
|
+
if (existsSync(dest) && !FORCE_MODE) {
|
|
48
|
+
const answer = await promptUser(`${label} already exists at ${dest}. Overwrite? (y/n)`);
|
|
49
|
+
if (answer !== 'y' && answer !== 'yes') {
|
|
50
|
+
log(` ⏭ Skipped ${label}`, 'yellow');
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
try {
|
|
56
|
+
copyFileSync(src, dest);
|
|
57
|
+
log(` ✓ Installed ${label}`, 'green');
|
|
58
|
+
return true;
|
|
59
|
+
} catch (error) {
|
|
60
|
+
log(` ✗ Failed to install ${label}: ${error.message}`, 'red');
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function installSkills() {
|
|
66
|
+
log('\n📦 Installing YAMO Skills...', 'blue');
|
|
67
|
+
|
|
68
|
+
const claudeSkillsDir = join(homedir(), '.claude', 'skills', 'memory-mesh');
|
|
69
|
+
|
|
70
|
+
// Check if Claude Code is installed
|
|
71
|
+
const claudeDir = join(homedir(), '.claude');
|
|
72
|
+
if (!existsSync(claudeDir)) {
|
|
73
|
+
log('⚠ Claude Code not detected (~/.claude not found)', 'yellow');
|
|
74
|
+
log(' Skills will be skipped. Install Claude Code first.', 'yellow');
|
|
75
|
+
return { installed: 0, skipped: 0 };
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Create skills directory
|
|
79
|
+
if (!existsSync(claudeSkillsDir)) {
|
|
80
|
+
mkdirSync(claudeSkillsDir, { recursive: true });
|
|
81
|
+
log(` ✓ Created ${claudeSkillsDir}`, 'green');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const skillsSourceDir = join(packageRoot, 'skills');
|
|
85
|
+
if (!existsSync(skillsSourceDir)) {
|
|
86
|
+
log(' ✗ Skills directory not found in package', 'red');
|
|
87
|
+
return { installed: 0, skipped: 0 };
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Copy all skill files
|
|
91
|
+
const skillFiles = readdirSync(skillsSourceDir).filter(f =>
|
|
92
|
+
f.endsWith('.md') || f.endsWith('.yamo')
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
let installed = 0;
|
|
96
|
+
let skipped = 0;
|
|
97
|
+
|
|
98
|
+
for (const file of skillFiles) {
|
|
99
|
+
const src = join(skillsSourceDir, file);
|
|
100
|
+
const dest = join(claudeSkillsDir, file);
|
|
101
|
+
const success = await copyWithPrompt(src, dest, file);
|
|
102
|
+
if (success) installed++;
|
|
103
|
+
else skipped++;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return { installed, skipped };
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async function installTools() {
|
|
110
|
+
log('\n🔧 Installing Tools...', 'blue');
|
|
111
|
+
|
|
112
|
+
const toolsDir = join(process.cwd(), 'tools');
|
|
113
|
+
|
|
114
|
+
// Create tools directory if it doesn't exist
|
|
115
|
+
if (!existsSync(toolsDir)) {
|
|
116
|
+
mkdirSync(toolsDir, { recursive: true });
|
|
117
|
+
log(` ✓ Created ${toolsDir}`, 'green');
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const toolFiles = [
|
|
121
|
+
{ src: 'memory_mesh.js', name: 'Memory Mesh CLI' },
|
|
122
|
+
{ src: 'scrubber.js', name: 'Scrubber CLI' }
|
|
123
|
+
];
|
|
124
|
+
|
|
125
|
+
let installed = 0;
|
|
126
|
+
let skipped = 0;
|
|
127
|
+
|
|
128
|
+
for (const { src, name } of toolFiles) {
|
|
129
|
+
const srcPath = join(packageRoot, 'bin', src);
|
|
130
|
+
const destPath = join(toolsDir, src);
|
|
131
|
+
|
|
132
|
+
if (!existsSync(srcPath)) {
|
|
133
|
+
log(` ✗ ${name} not found in package`, 'red');
|
|
134
|
+
skipped++;
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const success = await copyWithPrompt(srcPath, destPath, name);
|
|
139
|
+
if (success) installed++;
|
|
140
|
+
else skipped++;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return { installed, skipped };
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function showUsage() {
|
|
147
|
+
const pkg = JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf-8'));
|
|
148
|
+
|
|
149
|
+
log('\n✨ Setup Complete!', 'bright');
|
|
150
|
+
log('\nYAMO Skills installed to: ~/.claude/skills/memory-mesh/', 'blue');
|
|
151
|
+
log('Tools installed to: ./tools/', 'blue');
|
|
152
|
+
|
|
153
|
+
log('\n📚 Usage:', 'bright');
|
|
154
|
+
log(' • Use /yamo-super in Claude Code for workflow automation');
|
|
155
|
+
log(' • Use /scrubber skill for content sanitization');
|
|
156
|
+
log(' • Call tools/memory_mesh.js for memory operations');
|
|
157
|
+
|
|
158
|
+
log('\n🔗 Learn more:', 'bright');
|
|
159
|
+
log(' README: https://github.com/soverane-labs/memory-mesh');
|
|
160
|
+
log(` Version: ${pkg.version}`);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
async function main() {
|
|
164
|
+
log('\n╔════════════════════════════════════════╗', 'bright');
|
|
165
|
+
log('║ Memory Mesh Setup ║', 'bright');
|
|
166
|
+
log('║ Installing skills and tools... ║', 'bright');
|
|
167
|
+
log('╚════════════════════════════════════════╝', 'bright');
|
|
168
|
+
|
|
169
|
+
try {
|
|
170
|
+
// Install skills to ~/.claude/skills/memory-mesh/
|
|
171
|
+
const skillResults = await installSkills();
|
|
172
|
+
|
|
173
|
+
// Install tools to ./tools/
|
|
174
|
+
const toolResults = await installTools();
|
|
175
|
+
|
|
176
|
+
// Summary
|
|
177
|
+
const totalInstalled = skillResults.installed + toolResults.installed;
|
|
178
|
+
const totalSkipped = skillResults.skipped + toolResults.skipped;
|
|
179
|
+
|
|
180
|
+
log('\n' + '─'.repeat(40));
|
|
181
|
+
log(`✓ Installed: ${totalInstalled}`, 'green');
|
|
182
|
+
if (totalSkipped > 0) {
|
|
183
|
+
log(`⏭ Skipped: ${totalSkipped}`, 'yellow');
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (totalInstalled > 0) {
|
|
187
|
+
showUsage();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
log('');
|
|
191
|
+
process.exit(0);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
log(`\n✗ Setup failed: ${error.message}`, 'red');
|
|
194
|
+
log(` ${error.stack}`, 'red');
|
|
195
|
+
process.exit(1);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
main();
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yamo/memory-mesh",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Portable semantic memory system with Layer 0 Scrubber for YAMO agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/memory/index.js",
|
|
7
7
|
"types": "index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
9
|
"memory-mesh": "./bin/memory_mesh.js",
|
|
10
|
-
"scrubber": "./bin/scrubber.js"
|
|
10
|
+
"scrubber": "./bin/scrubber.js",
|
|
11
|
+
"memory-mesh-setup": "./bin/setup.js"
|
|
11
12
|
},
|
|
12
13
|
"files": [
|
|
13
14
|
"lib/",
|
package/skills/SKILL.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yamo-super
|
|
3
|
-
description: YamoSuper is a comprehensive AI coding workflow system that orchestrates the complete software development lifecycle through specialized agents managing brainstorming, git worktree isolation, implementation planning, dual execution modes (fresh-subagent-per-task with two-stage review or batch with checkpoints), strict test-driven development, systematic debugging, and pre-merge quality gates—all designed to enable autonomous execution while maintaining human oversight and enforcing YAGNI/DRY best practices.
|
|
3
|
+
description: YamoSuper is a comprehensive AI coding workflow system that orchestrates the complete software development lifecycle through specialized agents managing brainstorming, git worktree isolation, implementation planning, dual execution modes (fresh-subagent-per-task with two-stage review or batch with checkpoints), strict test-driven development, systematic debugging, and pre-merge quality gates—all designed to enable autonomous execution while maintaining human oversight and enforcing YAGNI/DRY best practices with persistent memory integration.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
For all code improvement or creation tasks, strictly adhere to the logic, agents, and constraints defined in this Yamo Skill:
|
|
7
7
|
|
|
8
8
|
metadata:
|
|
9
9
|
name;YamoSuper;
|
|
10
|
-
version;2.
|
|
11
|
-
description;Comprehensive AI coding workflow system
|
|
10
|
+
version;2.1.0;
|
|
11
|
+
description;Comprehensive AI coding workflow system with automatic memory integration for pattern recognition and workflow optimization;
|
|
12
12
|
author;Derived from Superpowers by Jesse Scott;adapted for YAMO by Soverane Labs;
|
|
13
13
|
license;MIT;
|
|
14
|
-
tags;tdd;debugging;collaboration;planning;workflow;subagent;git;review;memory;
|
|
15
|
-
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;
|
|
14
|
+
tags;tdd;debugging;collaboration;planning;workflow;subagent;git;review;memory;semantic_search;
|
|
15
|
+
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;
|
|
16
16
|
parameters:
|
|
17
17
|
workflow_mode:
|
|
18
18
|
type;string;
|
|
@@ -31,24 +31,51 @@ metadata:
|
|
|
31
31
|
environment:
|
|
32
32
|
requires_filesystem;true;
|
|
33
33
|
requires_local_storage;true;
|
|
34
|
-
notes;Creates worktrees, writes plans, manages git workflows, and stores execution history in Memory Mesh;
|
|
34
|
+
notes;Creates worktrees, writes plans, manages git workflows, and stores execution history in Memory Mesh via tools/memory_mesh.js;
|
|
35
35
|
dependencies:
|
|
36
36
|
required:
|
|
37
37
|
- Git >= 2.30.0
|
|
38
38
|
- Node >= 18.0.0 (for npm test commands)
|
|
39
39
|
- MemoryMesh >=1.0.0;
|
|
40
|
+
- tools/memory_mesh.js;
|
|
40
41
|
optional:
|
|
41
42
|
- YamoChainClient (for blockchain anchoring)
|
|
42
43
|
---
|
|
44
|
+
agent: MemorySystemInitializer;
|
|
45
|
+
intent: verify_memory_system_availability;
|
|
46
|
+
context:
|
|
47
|
+
memory_tool;tools/memory_mesh.js;
|
|
48
|
+
memory_enabled;provided_by_user.memory_enabled;
|
|
49
|
+
constraints:
|
|
50
|
+
- if_memory_enabled;verify_tool_exists;
|
|
51
|
+
- test_memory_connection_with_search;
|
|
52
|
+
- if_memory_unavailable;warn_user;continue_without_memory;
|
|
53
|
+
- set_memory_status_flag;
|
|
54
|
+
priority: high;
|
|
55
|
+
output: memory_status.json;
|
|
56
|
+
log: memory_initialized;available;timestamp;
|
|
57
|
+
meta:
|
|
58
|
+
hypothesis;Memory system availability check prevents runtime failures;
|
|
59
|
+
rationale;Graceful degradation if memory unavailable;
|
|
60
|
+
confidence;0.98;
|
|
61
|
+
handoff: WorkflowOrchestrator;
|
|
62
|
+
---
|
|
43
63
|
agent: WorkflowOrchestrator;
|
|
44
|
-
intent:
|
|
64
|
+
intent: determine_workflow_entry_point_with_historical_context;
|
|
45
65
|
context:
|
|
46
66
|
user_request;raw_input;
|
|
47
67
|
project_state;current_git_status;recent_commits;file_tree;
|
|
48
68
|
available_modes;brainstorm;plan;execute;debug;review;
|
|
49
|
-
|
|
69
|
+
memory_status;from_MemorySystemInitializer;
|
|
70
|
+
memory_tool;tools/memory_mesh.js;
|
|
50
71
|
memory_enabled;provided_by_user.memory_enabled;
|
|
51
72
|
constraints:
|
|
73
|
+
- if_memory_available;search_similar_workflows;
|
|
74
|
+
- extract_keywords_from_user_request;
|
|
75
|
+
- search_query_format;"workflow mode project outcome";
|
|
76
|
+
- retrieve_top_3_similar_patterns;
|
|
77
|
+
- analyze_past_outcomes_success_failure;
|
|
78
|
+
- present_similar_patterns_to_inform_decision;
|
|
52
79
|
- check_if_creative_work_requested;trigger_brainstorming_agent;
|
|
53
80
|
- check_if_spec_exists;trigger_planning_agent;
|
|
54
81
|
- check_if_plan_exists;trigger_execution_agent;
|
|
@@ -56,21 +83,25 @@ constraints:
|
|
|
56
83
|
- check_if_review_requested;trigger_review_agent;
|
|
57
84
|
- default_to_brainstorming_if_uncertain;
|
|
58
85
|
- announce_active_workflow_to_user;
|
|
59
|
-
- retrieve_similar_past_workflows;
|
|
60
86
|
priority: critical;
|
|
61
87
|
output: workflow_decision.json;
|
|
62
|
-
log: workflow_determined;timestamp;mode_selected;
|
|
88
|
+
log: workflow_determined;timestamp;mode_selected;past_patterns_found;
|
|
63
89
|
meta:
|
|
64
|
-
hypothesis;
|
|
65
|
-
rationale;
|
|
90
|
+
hypothesis;Historical workflow patterns improve decision accuracy;
|
|
91
|
+
rationale;Similar past workflows provide context for current decision;
|
|
92
|
+
confidence;0.92;
|
|
93
|
+
observation;Past success patterns should bias toward proven approaches;
|
|
66
94
|
handoff: BrainstormingAgent;
|
|
67
95
|
---
|
|
68
96
|
agent: BrainstormingAgent;
|
|
69
97
|
intent: refine_ideas_through_socratic_dialogue;
|
|
70
98
|
context:
|
|
71
99
|
project_state;from_WorkflowOrchestrator;
|
|
100
|
+
workflow_decision;from_WorkflowOrchestrator;
|
|
72
101
|
user_idea;raw_request;
|
|
102
|
+
past_patterns;from_WorkflowOrchestrator.similar_workflows;
|
|
73
103
|
constraints:
|
|
104
|
+
- if_past_patterns_exist;reference_successful_approaches;
|
|
74
105
|
- check_project_context_first;files;docs;recent_commits;
|
|
75
106
|
- ask_questions_one_at_a_time;
|
|
76
107
|
- prefer_multiple_choice_when_possible;
|
|
@@ -82,10 +113,11 @@ constraints:
|
|
|
82
113
|
- apply_yagni_ruthlessly;
|
|
83
114
|
priority: high;
|
|
84
115
|
output: validated_design.md;
|
|
85
|
-
log: design_validated;timestamp;sections_reviewed;
|
|
116
|
+
log: design_validated;timestamp;sections_reviewed;alternatives_proposed;
|
|
86
117
|
meta:
|
|
87
118
|
hypothesis;Incremental validation produces better designs;
|
|
88
119
|
rationale;Large designs overwhelm;section-by-section enables feedback;
|
|
120
|
+
confidence;0.94;
|
|
89
121
|
handoff: DocumentationAgent;
|
|
90
122
|
---
|
|
91
123
|
agent: DocumentationAgent;
|
|
@@ -93,17 +125,23 @@ intent: persist_and_commit_design;
|
|
|
93
125
|
context:
|
|
94
126
|
design;from_BrainstormingAgent;
|
|
95
127
|
destination;docs/plans/YYYY-MM-DD-<topic>-design.md;
|
|
128
|
+
memory_tool;tools/memory_mesh.js;
|
|
129
|
+
memory_status;from_MemorySystemInitializer;
|
|
96
130
|
constraints:
|
|
97
131
|
- use_clear_concise_writing;
|
|
98
132
|
- commit_to_git_with_descriptive_message;
|
|
99
133
|
- tag_commit_with_design_reviewed;
|
|
134
|
+
- if_memory_available;store_design_summary;
|
|
135
|
+
- content_format;"Design phase: <topic>. Approach: <architecture>. Components: <list>. Status: validated.";
|
|
136
|
+
- metadata;{workflow:"yamo-super",phase:"design",project:"<name>",timestamp:"<iso>",commit_sha:"<sha>"};
|
|
100
137
|
- ask_ready_for_implementation;
|
|
101
138
|
priority: medium;
|
|
102
|
-
output: design_file_path;commit_sha;
|
|
103
|
-
log: design_documented;timestamp;file_path;commit_sha;
|
|
139
|
+
output: design_file_path;commit_sha;memory_id;
|
|
140
|
+
log: design_documented;timestamp;file_path;commit_sha;memory_stored;
|
|
104
141
|
meta:
|
|
105
142
|
hypothesis;Documented designs enable better implementation;
|
|
106
143
|
rationale;Written specs prevent drift during coding;
|
|
144
|
+
confidence;0.96;
|
|
107
145
|
handoff: WorktreeAgent;
|
|
108
146
|
---
|
|
109
147
|
agent: WorktreeAgent;
|
|
@@ -119,10 +157,11 @@ constraints:
|
|
|
119
157
|
- document_worktree_location;
|
|
120
158
|
priority: high;
|
|
121
159
|
output: worktree_path;branch_name;
|
|
122
|
-
log: workspace_created;timestamp;path;branch;
|
|
160
|
+
log: workspace_created;timestamp;path;branch;baseline_tests;
|
|
123
161
|
meta:
|
|
124
162
|
hypothesis;Isolated worktrees prevent main branch pollution;
|
|
125
163
|
rationale;Clean branches enable easy rollback and parallel development;
|
|
164
|
+
confidence;0.99;
|
|
126
165
|
handoff: PlanningAgent;
|
|
127
166
|
---
|
|
128
167
|
agent: PlanningAgent;
|
|
@@ -130,11 +169,13 @@ intent: create_detailed_implementation_plan;
|
|
|
130
169
|
context:
|
|
131
170
|
design;from_DocumentationAgent;
|
|
132
171
|
worktree_path;from_WorktreeAgent;
|
|
172
|
+
past_patterns;from_WorkflowOrchestrator.similar_workflows;
|
|
133
173
|
assumptions;
|
|
134
174
|
engineer_has_zero_codebase_context;
|
|
135
175
|
engineer_has_questionable_taste;
|
|
136
176
|
engineer_needs_explicit_instructions;
|
|
137
177
|
constraints:
|
|
178
|
+
- if_similar_plans_exist;adapt_proven_task_breakdowns;
|
|
138
179
|
- break_into_bite_sized_tasks;2_5_minutes_each;
|
|
139
180
|
- each_task_one_action;write_test;run_test;implement;verify;commit;
|
|
140
181
|
- specify_exact_file_paths;
|
|
@@ -147,10 +188,11 @@ constraints:
|
|
|
147
188
|
- include_sub_skill_directive;use_superpowers:executing_plans;
|
|
148
189
|
priority: critical;
|
|
149
190
|
output: implementation_plan.md;
|
|
150
|
-
log: plan_created;timestamp;task_count;
|
|
191
|
+
log: plan_created;timestamp;task_count;file_path;
|
|
151
192
|
meta:
|
|
152
193
|
hypothesis;Explicit plans enable autonomous subagent execution;
|
|
153
194
|
rationale;Zero_context engineers need complete information;
|
|
195
|
+
confidence;0.97;
|
|
154
196
|
handoff: ExecutionSelector;
|
|
155
197
|
---
|
|
156
198
|
agent: ExecutionSelector;
|
|
@@ -169,6 +211,7 @@ log: execution_mode_selected;timestamp;mode;
|
|
|
169
211
|
meta:
|
|
170
212
|
hypothesis;Choice accommodates different working styles;
|
|
171
213
|
rationale;Some prefer continuity;others prefer isolation;
|
|
214
|
+
confidence;0.91;
|
|
172
215
|
handoff: SubagentDriver;
|
|
173
216
|
---
|
|
174
217
|
agent: SubagentDriver;
|
|
@@ -197,11 +240,12 @@ constraints:
|
|
|
197
240
|
- always_provide_full_text_not_file_references;
|
|
198
241
|
- ensure_scene_setting_context_per_task;
|
|
199
242
|
priority: critical;
|
|
200
|
-
output: implementation_complete;all_commits;
|
|
201
|
-
log: execution_complete;timestamp;tasks_completed;commits;
|
|
243
|
+
output: implementation_complete;all_commits;test_results;
|
|
244
|
+
log: execution_complete;timestamp;tasks_completed;commits;tests_passed;
|
|
202
245
|
meta:
|
|
203
246
|
hypothesis;Fresh subagents per task prevent context pollution;
|
|
204
247
|
rationale;Two_stage_review ensures_spec_compliance_and_code_quality;
|
|
248
|
+
confidence;0.95;
|
|
205
249
|
handoff: BatchExecutor;
|
|
206
250
|
---
|
|
207
251
|
agent: BatchExecutor;
|
|
@@ -211,7 +255,7 @@ context:
|
|
|
211
255
|
worktree_path;from_WorktreeAgent;
|
|
212
256
|
constraints:
|
|
213
257
|
- group_tasks_into_logical_batches;
|
|
214
|
-
-
|
|
258
|
+
- execute_batch_sequentially;
|
|
215
259
|
- after_each_batch;
|
|
216
260
|
- run_all_tests;verify_passing;
|
|
217
261
|
- request_human_checkpoint;
|
|
@@ -224,6 +268,7 @@ log: batch_execution_complete;timestamp;batches;checkpoints_passed;
|
|
|
224
268
|
meta:
|
|
225
269
|
hypothesis;Checkpoints maintain human oversight;
|
|
226
270
|
rationale;Batch execution balances autonomy_with_control;
|
|
271
|
+
confidence;0.93;
|
|
227
272
|
handoff: TDDAgent;
|
|
228
273
|
---
|
|
229
274
|
agent: TDDAgent;
|
|
@@ -261,13 +306,20 @@ log: tdd_cycle_complete;timestamp;test_name;status;
|
|
|
261
306
|
meta:
|
|
262
307
|
hypothesis;Watching_test_fail_proves_it_tests_something;
|
|
263
308
|
rationale;tests_after_answer_what_does_this_do;tests_first_answer_what_should_this_do;
|
|
309
|
+
confidence;0.99;
|
|
264
310
|
handoff: DebuggingAgent;
|
|
265
311
|
---
|
|
266
312
|
agent: DebuggingAgent;
|
|
267
313
|
intent: systematic_root_cause_analysis;
|
|
268
314
|
context:
|
|
269
315
|
bug_report;user_report_or_test_failure;
|
|
316
|
+
memory_tool;tools/memory_mesh.js;
|
|
317
|
+
memory_status;from_MemorySystemInitializer;
|
|
270
318
|
constraints:
|
|
319
|
+
- if_memory_available;search_similar_bugs;
|
|
320
|
+
- extract_error_signature;
|
|
321
|
+
- search_query_format;"debug error <signature> <component>";
|
|
322
|
+
- check_past_solutions;
|
|
271
323
|
- phase_1_define_problem;
|
|
272
324
|
- describe_symptoms_precisely;
|
|
273
325
|
- identify_affected_components;
|
|
@@ -286,14 +338,19 @@ constraints:
|
|
|
286
338
|
- write_failing_test_reproducing_bug;
|
|
287
339
|
- apply_tdd_cycle_to_fix;
|
|
288
340
|
- use_verification_before_completion;
|
|
341
|
+
- if_memory_available;store_bug_resolution;
|
|
342
|
+
- content_format;"Debug: <error_signature>. Root cause: <cause>. Solution: <fix>. Component: <component>.";
|
|
343
|
+
- metadata;{workflow:"yamo-super",phase:"debug",bug_type:"<type>",resolution:"<fix>",timestamp:"<iso>"};
|
|
289
344
|
- never_fix_without_test;
|
|
290
345
|
- never_apply_bandages;
|
|
291
346
|
priority: high;
|
|
292
|
-
output: root_cause;fix_verification_test;
|
|
293
|
-
log: bug_resolved;timestamp;root_cause;test_added;
|
|
347
|
+
output: root_cause;fix_verification_test;memory_id;
|
|
348
|
+
log: bug_resolved;timestamp;root_cause;test_added;similar_bugs_found;
|
|
294
349
|
meta:
|
|
295
350
|
hypothesis;Systematic_debugging_faster_than_shotgun_debugging;
|
|
296
351
|
rationale;root_cause_elimination_prevents_reoccurrence;
|
|
352
|
+
confidence;0.96;
|
|
353
|
+
observation;Historical bug patterns accelerate diagnosis;
|
|
297
354
|
handoff: VerificationAgent;
|
|
298
355
|
---
|
|
299
356
|
agent: VerificationAgent;
|
|
@@ -316,6 +373,7 @@ log: verification_complete;timestamp;status;regressions;
|
|
|
316
373
|
meta:
|
|
317
374
|
hypothesis;Verification_catches_incomplete_fixes;
|
|
318
375
|
rationale;feeling_fixed_does_not_mean_fixed;
|
|
376
|
+
confidence;0.98;
|
|
319
377
|
handoff: CodeReviewAgent;
|
|
320
378
|
---
|
|
321
379
|
agent: CodeReviewAgent;
|
|
@@ -323,6 +381,8 @@ intent: conduct_pre_merge_quality_gate;
|
|
|
323
381
|
context:
|
|
324
382
|
implementation;from_SubagentDriver_or_BatchExecutor;
|
|
325
383
|
plan;from_PlanningAgent;
|
|
384
|
+
memory_tool;tools/memory_mesh.js;
|
|
385
|
+
memory_status;from_MemorySystemInitializer;
|
|
326
386
|
constraints:
|
|
327
387
|
- review_against_plan;
|
|
328
388
|
- all_requirements_implemented;
|
|
@@ -341,12 +401,16 @@ constraints:
|
|
|
341
401
|
- minor;nice_to_have;
|
|
342
402
|
- if_critical_issues;block_progress;
|
|
343
403
|
- if_no_issues;approve;
|
|
404
|
+
- if_memory_available;store_review_outcome;
|
|
405
|
+
- content_format;"Code review: <feature>. Quality: <rating>. Issues: <count>. Tests: <coverage>. Outcome: <approved/rejected>.";
|
|
406
|
+
- metadata;{workflow:"yamo-super",phase:"review",quality_rating:"<rating>",issues_count:"<n>",timestamp:"<iso>"};
|
|
344
407
|
priority: critical;
|
|
345
|
-
output: review_report;approval_status;
|
|
408
|
+
output: review_report;approval_status;memory_id;
|
|
346
409
|
log: review_complete;timestamp;critical;important;minor;status;
|
|
347
410
|
meta:
|
|
348
411
|
hypothesis;Pre_merge_review_catches_issues_early;
|
|
349
412
|
rationale;merge_reviews_are_too_late_for_easy_fixes;
|
|
413
|
+
confidence;0.97;
|
|
350
414
|
handoff: BranchFinisher;
|
|
351
415
|
---
|
|
352
416
|
agent: BranchFinisher;
|
|
@@ -354,6 +418,7 @@ intent: complete_development_branch_workflow;
|
|
|
354
418
|
context:
|
|
355
419
|
implementation;from_CodeReviewAgent;
|
|
356
420
|
worktree_path;from_WorktreeAgent;
|
|
421
|
+
review_report;from_CodeReviewAgent;
|
|
357
422
|
constraints:
|
|
358
423
|
- verify_all_tests_pass;
|
|
359
424
|
- verify_no_regressions;
|
|
@@ -372,7 +437,8 @@ log: branch_completed;timestamp;outcome;
|
|
|
372
437
|
meta:
|
|
373
438
|
hypothesis;Explicit_branch_completion_prevents_orphan_branches;
|
|
374
439
|
rationale;clear_decisions_prevent_branch_accumulation;
|
|
375
|
-
|
|
440
|
+
confidence;0.95;
|
|
441
|
+
handoff: WorkflowMemoryStore;
|
|
376
442
|
---
|
|
377
443
|
agent: ParallelDispatcher;
|
|
378
444
|
intent: coordinate_concurrent_subagent_workflows;
|
|
@@ -392,6 +458,7 @@ log: parallel_dispatch_complete;timestamp;tasks;conflicts;
|
|
|
392
458
|
meta:
|
|
393
459
|
hypothesis;Parallel_execution_saves_wall_clock_time;
|
|
394
460
|
rationale;independent_tasks_have_no_dependencies;
|
|
461
|
+
confidence;0.89;
|
|
395
462
|
handoff: SkillMetaAgent;
|
|
396
463
|
---
|
|
397
464
|
agent: SkillMetaAgent;
|
|
@@ -416,6 +483,7 @@ log: skill_created;timestamp;name;category;
|
|
|
416
483
|
meta:
|
|
417
484
|
hypothesis;Meta_skills_enable_ecosystem_growth;
|
|
418
485
|
rationale;extensible_systems_adapt_to_new_needs;
|
|
486
|
+
confidence;0.88;
|
|
419
487
|
handoff: End;
|
|
420
488
|
---
|
|
421
489
|
agent: UsageGuide;
|
|
@@ -432,6 +500,7 @@ constraints:
|
|
|
432
500
|
- systematic_debugging;root_cause_analysis;
|
|
433
501
|
- requesting_code_review;quality_gate;
|
|
434
502
|
- finishing_development_branch;merge_pr_discard;
|
|
503
|
+
- memory_integration;pattern_recognition;
|
|
435
504
|
- explain_skills_trigger_automatically;
|
|
436
505
|
- explain_mandatory_not_suggestions;
|
|
437
506
|
- demonstrate_with_example;
|
|
@@ -441,22 +510,46 @@ log: onboarded;timestamp;user;
|
|
|
441
510
|
meta:
|
|
442
511
|
hypothesis;clear_introduction_enables_effective_use;
|
|
443
512
|
rationale;understanding_why_builds_compliance;
|
|
513
|
+
confidence;0.92;
|
|
444
514
|
handoff: WorkflowMemoryStore;
|
|
445
515
|
---
|
|
446
516
|
agent: WorkflowMemoryStore;
|
|
447
|
-
intent:
|
|
517
|
+
intent: store_complete_workflow_execution_for_pattern_recognition;
|
|
448
518
|
context:
|
|
449
519
|
workflow_decision;from_WorkflowOrchestrator;
|
|
450
|
-
|
|
451
|
-
|
|
520
|
+
design_output;from_DocumentationAgent;
|
|
521
|
+
implementation_result;from_SubagentDriver_or_BatchExecutor;
|
|
522
|
+
review_result;from_CodeReviewAgent;
|
|
523
|
+
branch_outcome;from_BranchFinisher;
|
|
524
|
+
memory_tool;tools/memory_mesh.js;
|
|
525
|
+
memory_status;from_MemorySystemInitializer;
|
|
452
526
|
constraints:
|
|
527
|
+
- if_memory_available;store_complete_workflow;
|
|
528
|
+
- aggregate_all_phase_data;
|
|
529
|
+
- content_format;"Workflow: yamo-super. Mode: <mode>. Project: <project>. Design: <summary>. Implementation: <tasks_completed>. Review: <quality>. Tests: <passed/failed>. Outcome: <success/failure>. Duration: <time>.";
|
|
530
|
+
- metadata;{
|
|
531
|
+
workflow:"yamo-super",
|
|
532
|
+
mode:"<selected_mode>",
|
|
533
|
+
project:"<project_name>",
|
|
534
|
+
phase:"complete",
|
|
535
|
+
design_commit:"<sha>",
|
|
536
|
+
implementation_commits:"<count>",
|
|
537
|
+
tests_passed:"<true/false>",
|
|
538
|
+
review_approved:"<true/false>",
|
|
539
|
+
outcome:"<success/failure>",
|
|
540
|
+
duration_minutes:"<n>",
|
|
541
|
+
timestamp:"<iso>"
|
|
542
|
+
};
|
|
453
543
|
- generate_workflow_embedding;
|
|
454
544
|
- tag_by_mode_project_type_and_outcome;
|
|
455
|
-
- store_execution_patterns;
|
|
456
545
|
- enable_future_recommendations;
|
|
457
|
-
|
|
546
|
+
- if_blockchain_available;anchor_to_yamo_chain;
|
|
547
|
+
priority: high;
|
|
458
548
|
output: workflow_memory_receipt.json;
|
|
459
|
-
log: workflow_stored;memory_id;
|
|
549
|
+
log: workflow_stored;memory_id;outcome;timestamp;
|
|
460
550
|
meta:
|
|
461
|
-
hypothesis;Storing workflows enables pattern recognition for future recommendations;
|
|
551
|
+
hypothesis;Storing complete workflows enables pattern recognition for future recommendations;
|
|
552
|
+
rationale;Historical success patterns guide future workflow decisions;
|
|
553
|
+
confidence;0.94;
|
|
554
|
+
observation;Semantic search finds similar contexts not just keyword matches;
|
|
462
555
|
handoff: End;
|