midas-mcp 1.0.0 → 1.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/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +235 -0
- package/dist/cli.js.map +1 -0
- package/dist/docs/brainlift.md +17 -0
- package/dist/docs/gameplan.md +18 -0
- package/dist/docs/prd.md +20 -0
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/tui.d.ts +2 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +404 -0
- package/dist/tui.js.map +1 -0
- package/docs/brainlift.md +17 -0
- package/docs/gameplan.md +18 -0
- package/docs/prd.md +20 -0
- package/package.json +1 -1
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function showHelp(): void;
|
|
2
|
+
export declare function showStatus(): void;
|
|
3
|
+
export declare function runInit(projectName: string): void;
|
|
4
|
+
export declare function runAudit(): void;
|
|
5
|
+
export declare function runDocsCheck(): void;
|
|
6
|
+
export declare function runCLI(args: string[]): 'interactive' | 'server' | 'handled';
|
|
7
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAiCA,wBAAgB,QAAQ,IAAI,IAAI,CAoB/B;AAED,wBAAgB,UAAU,IAAI,IAAI,CAmFjC;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAmBjD;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAmC/B;AAED,wBAAgB,YAAY,IAAI,IAAI,CAgCnC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAqC3E"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { loadState } from './state/phase.js';
|
|
2
|
+
import { startProject } from './tools/phase.js';
|
|
3
|
+
import { audit } from './tools/audit.js';
|
|
4
|
+
import { checkDocs } from './tools/docs.js';
|
|
5
|
+
// ANSI colors
|
|
6
|
+
const reset = '\x1b[0m';
|
|
7
|
+
const bold = '\x1b[1m';
|
|
8
|
+
const dim = '\x1b[2m';
|
|
9
|
+
const green = '\x1b[32m';
|
|
10
|
+
const yellow = '\x1b[33m';
|
|
11
|
+
const blue = '\x1b[34m';
|
|
12
|
+
const cyan = '\x1b[36m';
|
|
13
|
+
const white = '\x1b[37m';
|
|
14
|
+
function box(content, width = 50) {
|
|
15
|
+
const lines = content.split('\n');
|
|
16
|
+
const top = `┌${'─'.repeat(width - 2)}┐`;
|
|
17
|
+
const bottom = `└${'─'.repeat(width - 2)}┘`;
|
|
18
|
+
const padded = lines.map(l => {
|
|
19
|
+
const stripped = l.replace(/\x1b\[[0-9;]*m/g, '');
|
|
20
|
+
const padding = width - 4 - stripped.length;
|
|
21
|
+
return `│ ${l}${' '.repeat(Math.max(0, padding))} │`;
|
|
22
|
+
});
|
|
23
|
+
return [top, ...padded, bottom].join('\n');
|
|
24
|
+
}
|
|
25
|
+
function progressBar(current, total, width = 20) {
|
|
26
|
+
const filled = Math.round((current / total) * width);
|
|
27
|
+
const empty = width - filled;
|
|
28
|
+
return `${green}${'█'.repeat(filled)}${dim}${'░'.repeat(empty)}${reset}`;
|
|
29
|
+
}
|
|
30
|
+
export function showHelp() {
|
|
31
|
+
console.log(`
|
|
32
|
+
${bold}${cyan}MIDAS${reset} - Everything you vibecode turns to gold
|
|
33
|
+
|
|
34
|
+
${bold}Usage:${reset}
|
|
35
|
+
npx midas-mcp Interactive coach (recommended)
|
|
36
|
+
npx midas-mcp status Show current phase and progress
|
|
37
|
+
npx midas-mcp init <name> Initialize new project with Eagle Sight
|
|
38
|
+
npx midas-mcp audit Audit project against 12 ingredients
|
|
39
|
+
npx midas-mcp docs Check Eagle Sight docs completeness
|
|
40
|
+
npx midas-mcp server Start MCP server (for Cursor integration)
|
|
41
|
+
npx midas-mcp help Show this help
|
|
42
|
+
|
|
43
|
+
${bold}The Two Phases:${reset}
|
|
44
|
+
${yellow}EAGLE SIGHT${reset} Plan before building (Idea → Research → Brainlift → PRD → Gameplan)
|
|
45
|
+
${blue}BUILD${reset} Execute with the 7-step process
|
|
46
|
+
|
|
47
|
+
${bold}Learn more:${reset}
|
|
48
|
+
https://github.com/christiancattaneo/midas-mcp
|
|
49
|
+
`);
|
|
50
|
+
}
|
|
51
|
+
export function showStatus() {
|
|
52
|
+
const state = loadState(process.cwd());
|
|
53
|
+
const phase = state.current;
|
|
54
|
+
console.log('');
|
|
55
|
+
if (phase.phase === 'IDLE') {
|
|
56
|
+
console.log(box(`${dim}IDLE${reset} - No project started`));
|
|
57
|
+
console.log(`\n Run: ${cyan}npx midas-mcp init <project-name>${reset}\n`);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (phase.phase === 'EAGLE_SIGHT') {
|
|
61
|
+
const steps = ['IDEA', 'RESEARCH', 'BRAINLIFT', 'PRD', 'GAMEPLAN'];
|
|
62
|
+
const currentIdx = steps.indexOf(phase.step);
|
|
63
|
+
const progress = currentIdx + 1;
|
|
64
|
+
console.log(box(`${yellow}${bold}EAGLE SIGHT${reset} ${progressBar(progress, 5)} ${progress}/5`));
|
|
65
|
+
console.log('');
|
|
66
|
+
steps.forEach((step, i) => {
|
|
67
|
+
if (i < currentIdx) {
|
|
68
|
+
console.log(` ${green}✓${reset} ${dim}${step}${reset}`);
|
|
69
|
+
}
|
|
70
|
+
else if (i === currentIdx) {
|
|
71
|
+
console.log(` ${yellow}→${reset} ${bold}${step}${reset} ${dim}(current)${reset}`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.log(` ${dim}○ ${step}${reset}`);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
console.log('');
|
|
78
|
+
const nextActions = {
|
|
79
|
+
IDEA: 'Define your core idea. What problem are you solving?',
|
|
80
|
+
RESEARCH: 'Scan the landscape. What already exists?',
|
|
81
|
+
BRAINLIFT: 'Fill out docs/brainlift.md with YOUR unique insights',
|
|
82
|
+
PRD: 'Fill out docs/prd.md with requirements',
|
|
83
|
+
GAMEPLAN: 'Fill out docs/gameplan.md with your build plan',
|
|
84
|
+
};
|
|
85
|
+
console.log(` ${bold}Next:${reset} ${nextActions[phase.step]}\n`);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (phase.phase === 'BUILD') {
|
|
89
|
+
const steps = ['RULES_LOADED', 'CODEBASE_INDEXED', 'FILES_READ', 'RESEARCHING', 'IMPLEMENTING', 'TESTING', 'DEBUGGING'];
|
|
90
|
+
const currentIdx = steps.indexOf(phase.step);
|
|
91
|
+
const progress = currentIdx + 1;
|
|
92
|
+
console.log(box(`${blue}${bold}BUILD${reset} ${progressBar(progress, 7)} ${progress}/7`));
|
|
93
|
+
console.log('');
|
|
94
|
+
const stepLabels = {
|
|
95
|
+
RULES_LOADED: 'Load Rules',
|
|
96
|
+
CODEBASE_INDEXED: 'Index Codebase',
|
|
97
|
+
FILES_READ: 'Read Files',
|
|
98
|
+
RESEARCHING: 'Research',
|
|
99
|
+
IMPLEMENTING: 'Implement',
|
|
100
|
+
TESTING: 'Test',
|
|
101
|
+
DEBUGGING: 'Debug',
|
|
102
|
+
};
|
|
103
|
+
steps.forEach((step, i) => {
|
|
104
|
+
const label = stepLabels[step];
|
|
105
|
+
if (i < currentIdx) {
|
|
106
|
+
console.log(` ${green}✓${reset} ${dim}${label}${reset}`);
|
|
107
|
+
}
|
|
108
|
+
else if (i === currentIdx) {
|
|
109
|
+
console.log(` ${blue}→${reset} ${bold}${label}${reset} ${dim}(current)${reset}`);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
console.log(` ${dim}○ ${label}${reset}`);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
console.log('');
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (phase.phase === 'SHIPPED') {
|
|
119
|
+
console.log(box(`${green}${bold}SHIPPED${reset} ${progressBar(1, 1)} Done!`));
|
|
120
|
+
console.log(`\n Run ${cyan}npx midas-mcp audit${reset} to check production readiness.\n`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export function runInit(projectName) {
|
|
124
|
+
if (!projectName) {
|
|
125
|
+
console.log(`\n ${yellow}Usage:${reset} npx midas-mcp init <project-name>\n`);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const result = startProject({ projectName, projectPath: process.cwd() });
|
|
129
|
+
console.log('');
|
|
130
|
+
console.log(box(`${green}${bold}✓ Project Initialized${reset}`));
|
|
131
|
+
console.log('');
|
|
132
|
+
console.log(` ${bold}${projectName}${reset} is ready for Eagle Sight.\n`);
|
|
133
|
+
console.log(' Created:');
|
|
134
|
+
console.log(` ${dim}docs/brainlift.md${reset} - Your unique insights`);
|
|
135
|
+
console.log(` ${dim}docs/prd.md${reset} - Requirements`);
|
|
136
|
+
console.log(` ${dim}docs/gameplan.md${reset} - Build plan`);
|
|
137
|
+
console.log('');
|
|
138
|
+
console.log(` ${bold}Next:${reset} Fill out ${cyan}docs/brainlift.md${reset}`);
|
|
139
|
+
console.log(` Then run ${cyan}npx midas-mcp status${reset}\n`);
|
|
140
|
+
}
|
|
141
|
+
export function runAudit() {
|
|
142
|
+
const result = audit({ projectPath: process.cwd() });
|
|
143
|
+
console.log('');
|
|
144
|
+
console.log(box(`${bold}12 INGREDIENTS AUDIT${reset} Score: ${result.overall}%`));
|
|
145
|
+
console.log('');
|
|
146
|
+
const categories = [
|
|
147
|
+
{ name: 'CORE', items: ['1-frontend', '2-backend', '3-database', '4-authentication'] },
|
|
148
|
+
{ name: 'POWER', items: ['5-api-integrations', '6-state-management', '7-design-ux'] },
|
|
149
|
+
{ name: 'PROTECTION', items: ['8-testing', '9-security', '10-error-handling'] },
|
|
150
|
+
{ name: 'MASTERY', items: ['11-version-control', '12-deployment'] },
|
|
151
|
+
];
|
|
152
|
+
for (const cat of categories) {
|
|
153
|
+
console.log(` ${dim}${cat.name}${reset}`);
|
|
154
|
+
for (const item of cat.items) {
|
|
155
|
+
const score = result.scores[item];
|
|
156
|
+
const num = item.split('-')[0];
|
|
157
|
+
const name = item.split('-').slice(1).join(' ');
|
|
158
|
+
const icon = score.exists ? `${green}✓${reset}` : `${dim}○${reset}`;
|
|
159
|
+
const label = score.exists ? name : `${dim}${name}${reset}`;
|
|
160
|
+
console.log(` ${icon} ${num}. ${label}`);
|
|
161
|
+
}
|
|
162
|
+
console.log('');
|
|
163
|
+
}
|
|
164
|
+
const levelColors = {
|
|
165
|
+
functional: yellow,
|
|
166
|
+
integrated: blue,
|
|
167
|
+
protected: cyan,
|
|
168
|
+
production: green,
|
|
169
|
+
};
|
|
170
|
+
const color = levelColors[result.level] || white;
|
|
171
|
+
console.log(` Level: ${color}${bold}${result.level.toUpperCase()}${reset}\n`);
|
|
172
|
+
}
|
|
173
|
+
export function runDocsCheck() {
|
|
174
|
+
const result = checkDocs({ projectPath: process.cwd() });
|
|
175
|
+
console.log('');
|
|
176
|
+
console.log(box(`${bold}EAGLE SIGHT DOCS${reset}`));
|
|
177
|
+
console.log('');
|
|
178
|
+
const docs = [
|
|
179
|
+
{ name: 'brainlift.md', status: result.brainlift },
|
|
180
|
+
{ name: 'prd.md', status: result.prd },
|
|
181
|
+
{ name: 'gameplan.md', status: result.gameplan },
|
|
182
|
+
];
|
|
183
|
+
for (const doc of docs) {
|
|
184
|
+
if (!doc.status.exists) {
|
|
185
|
+
console.log(` ${dim}○${reset} ${dim}${doc.name}${reset} - not found`);
|
|
186
|
+
}
|
|
187
|
+
else if (!doc.status.complete) {
|
|
188
|
+
console.log(` ${yellow}◐${reset} ${doc.name} - incomplete`);
|
|
189
|
+
for (const issue of doc.status.issues) {
|
|
190
|
+
console.log(` ${dim}${issue}${reset}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
console.log(` ${green}✓${reset} ${doc.name}`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
console.log('');
|
|
198
|
+
if (result.ready) {
|
|
199
|
+
console.log(` ${green}${bold}Ready for BUILD phase!${reset}\n`);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
console.log(` ${yellow}Complete the docs to proceed to BUILD.${reset}\n`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
export function runCLI(args) {
|
|
206
|
+
const command = args[0];
|
|
207
|
+
switch (command) {
|
|
208
|
+
case 'help':
|
|
209
|
+
case '--help':
|
|
210
|
+
case '-h':
|
|
211
|
+
showHelp();
|
|
212
|
+
return 'handled';
|
|
213
|
+
case 'status':
|
|
214
|
+
showStatus();
|
|
215
|
+
return 'handled';
|
|
216
|
+
case 'init':
|
|
217
|
+
runInit(args[1]);
|
|
218
|
+
return 'handled';
|
|
219
|
+
case 'audit':
|
|
220
|
+
runAudit();
|
|
221
|
+
return 'handled';
|
|
222
|
+
case 'docs':
|
|
223
|
+
runDocsCheck();
|
|
224
|
+
return 'handled';
|
|
225
|
+
case 'server':
|
|
226
|
+
return 'server'; // Start MCP server
|
|
227
|
+
case undefined:
|
|
228
|
+
return 'interactive'; // No args = interactive mode
|
|
229
|
+
default:
|
|
230
|
+
console.log(`Unknown command: ${command}`);
|
|
231
|
+
console.log('Run: npx midas-mcp help');
|
|
232
|
+
return 'handled';
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Brainlift: my-project
|
|
2
|
+
|
|
3
|
+
## Contrarian Insights
|
|
4
|
+
- [What do YOU know that contradicts conventional wisdom?]
|
|
5
|
+
- [What have you learned from experience that AI can't know?]
|
|
6
|
+
|
|
7
|
+
## Domain Knowledge
|
|
8
|
+
- [Industry-specific context]
|
|
9
|
+
- [User behavior patterns you've observed]
|
|
10
|
+
|
|
11
|
+
## Hard-Won Lessons
|
|
12
|
+
- [What NOT to do based on past experience]
|
|
13
|
+
- [Hidden gotchas in this space]
|
|
14
|
+
|
|
15
|
+
## Current Context
|
|
16
|
+
- [Recent market changes]
|
|
17
|
+
- [Technology updates post-training-cutoff]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Gameplan: my-project
|
|
2
|
+
|
|
3
|
+
## Tech Stack
|
|
4
|
+
[Stack choice with justification]
|
|
5
|
+
|
|
6
|
+
## Architecture Overview
|
|
7
|
+
[High-level system design]
|
|
8
|
+
|
|
9
|
+
## Phase 1: Foundation
|
|
10
|
+
- [ ] Task 1
|
|
11
|
+
- [ ] Task 2
|
|
12
|
+
|
|
13
|
+
## Phase 2: Core Features
|
|
14
|
+
- [ ] Task 1
|
|
15
|
+
- [ ] Task 2
|
|
16
|
+
|
|
17
|
+
## Risk Mitigation
|
|
18
|
+
- Risk: [issue] → Mitigation: [solution]
|
package/dist/docs/prd.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# PRD: my-project
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
[One-paragraph description]
|
|
5
|
+
|
|
6
|
+
## Goals
|
|
7
|
+
1. [Primary goal]
|
|
8
|
+
2. [Secondary goal]
|
|
9
|
+
|
|
10
|
+
## Non-Goals
|
|
11
|
+
- [What you're explicitly NOT building]
|
|
12
|
+
|
|
13
|
+
## User Stories
|
|
14
|
+
- As a [user type], I want to [action] so that [benefit]
|
|
15
|
+
|
|
16
|
+
## Technical Requirements
|
|
17
|
+
- [Performance, security, integration requirements]
|
|
18
|
+
|
|
19
|
+
## Success Metrics
|
|
20
|
+
- [How you'll measure success]
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { createServer } from './server.js';
|
|
4
|
-
|
|
4
|
+
import { runCLI } from './cli.js';
|
|
5
|
+
import { runInteractive } from './tui.js';
|
|
6
|
+
async function startMCPServer() {
|
|
5
7
|
const server = createServer();
|
|
6
8
|
const transport = new StdioServerTransport();
|
|
7
9
|
await server.connect(transport);
|
|
8
|
-
// Log to stderr (stdout is for MCP protocol)
|
|
9
10
|
console.error('Midas MCP server running');
|
|
10
11
|
}
|
|
12
|
+
async function main() {
|
|
13
|
+
const args = process.argv.slice(2);
|
|
14
|
+
const result = runCLI(args);
|
|
15
|
+
switch (result) {
|
|
16
|
+
case 'handled':
|
|
17
|
+
process.exit(0);
|
|
18
|
+
break;
|
|
19
|
+
case 'server':
|
|
20
|
+
await startMCPServer();
|
|
21
|
+
break;
|
|
22
|
+
case 'interactive':
|
|
23
|
+
await runInteractive();
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
11
27
|
main().catch((error) => {
|
|
12
28
|
console.error('Fatal error:', error);
|
|
13
29
|
process.exit(1);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;IACV,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/tui.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAwVA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA8EpD"}
|
package/dist/tui.js
ADDED
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
import { watch, existsSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { loadState, saveState } from './state/phase.js';
|
|
4
|
+
import { checkDocs } from './tools/docs.js';
|
|
5
|
+
import { exec } from 'child_process';
|
|
6
|
+
// ANSI codes
|
|
7
|
+
const ESC = '\x1b';
|
|
8
|
+
const reset = `${ESC}[0m`;
|
|
9
|
+
const bold = `${ESC}[1m`;
|
|
10
|
+
const dim = `${ESC}[2m`;
|
|
11
|
+
const green = `${ESC}[32m`;
|
|
12
|
+
const yellow = `${ESC}[33m`;
|
|
13
|
+
const blue = `${ESC}[34m`;
|
|
14
|
+
const cyan = `${ESC}[36m`;
|
|
15
|
+
const white = `${ESC}[37m`;
|
|
16
|
+
const bgBlue = `${ESC}[44m`;
|
|
17
|
+
const clearScreen = `${ESC}[2J${ESC}[H`;
|
|
18
|
+
// Prompts for each step
|
|
19
|
+
const STEP_PROMPTS = {
|
|
20
|
+
// Eagle Sight
|
|
21
|
+
'EAGLE_SIGHT:IDEA': {
|
|
22
|
+
action: 'Define your core idea',
|
|
23
|
+
prompt: `I'm starting a new project. Help me clarify:
|
|
24
|
+
1. What problem am I solving?
|
|
25
|
+
2. Who is it for?
|
|
26
|
+
3. Why now?
|
|
27
|
+
|
|
28
|
+
Ask me clarifying questions before we proceed.`,
|
|
29
|
+
},
|
|
30
|
+
'EAGLE_SIGHT:RESEARCH': {
|
|
31
|
+
action: 'Research the landscape',
|
|
32
|
+
prompt: `Research the landscape for my project idea.
|
|
33
|
+
Find:
|
|
34
|
+
1. Existing solutions
|
|
35
|
+
2. What they do well
|
|
36
|
+
3. What they miss
|
|
37
|
+
4. Technical approaches used
|
|
38
|
+
|
|
39
|
+
Summarize findings.`,
|
|
40
|
+
},
|
|
41
|
+
'EAGLE_SIGHT:BRAINLIFT': {
|
|
42
|
+
action: 'Fill out docs/brainlift.md',
|
|
43
|
+
prompt: `Review my brainlift.md and help me strengthen it.
|
|
44
|
+
Ask me questions to extract:
|
|
45
|
+
1. Contrarian insights I have
|
|
46
|
+
2. Domain knowledge AI lacks
|
|
47
|
+
3. Hard-won lessons from experience
|
|
48
|
+
4. Current context you might miss`,
|
|
49
|
+
},
|
|
50
|
+
'EAGLE_SIGHT:PRD': {
|
|
51
|
+
action: 'Fill out docs/prd.md',
|
|
52
|
+
prompt: `Review my PRD and help me improve it.
|
|
53
|
+
Check for:
|
|
54
|
+
1. Clear goals
|
|
55
|
+
2. Explicit non-goals
|
|
56
|
+
3. Complete user stories
|
|
57
|
+
4. Technical requirements
|
|
58
|
+
5. Success metrics
|
|
59
|
+
|
|
60
|
+
Ask clarifying questions.`,
|
|
61
|
+
},
|
|
62
|
+
'EAGLE_SIGHT:GAMEPLAN': {
|
|
63
|
+
action: 'Fill out docs/gameplan.md',
|
|
64
|
+
prompt: `Review my gameplan and help me refine it.
|
|
65
|
+
Verify:
|
|
66
|
+
1. Tech stack justified
|
|
67
|
+
2. Phases are logical
|
|
68
|
+
3. Tasks are specific
|
|
69
|
+
4. Risks identified
|
|
70
|
+
|
|
71
|
+
Suggest improvements.`,
|
|
72
|
+
},
|
|
73
|
+
// Build
|
|
74
|
+
'BUILD:RULES_LOADED': {
|
|
75
|
+
action: 'Load user rules',
|
|
76
|
+
prompt: `Read and understand user rules.
|
|
77
|
+
Research each for complete understanding.
|
|
78
|
+
Ask me any clarifying questions.
|
|
79
|
+
Make todos of all tasks.
|
|
80
|
+
Don't start yet.`,
|
|
81
|
+
},
|
|
82
|
+
'BUILD:CODEBASE_INDEXED': {
|
|
83
|
+
action: 'Index the codebase',
|
|
84
|
+
prompt: `Index this codebase structure.
|
|
85
|
+
Understand the architecture.
|
|
86
|
+
Note key files and patterns.
|
|
87
|
+
Summarize what you find.`,
|
|
88
|
+
},
|
|
89
|
+
'BUILD:FILES_READ': {
|
|
90
|
+
action: 'Read relevant files',
|
|
91
|
+
prompt: `Read the files relevant to my current task.
|
|
92
|
+
Understand the implementation details.
|
|
93
|
+
Note patterns to follow.
|
|
94
|
+
Identify integration points.`,
|
|
95
|
+
},
|
|
96
|
+
'BUILD:RESEARCHING': {
|
|
97
|
+
action: 'Research docs and APIs',
|
|
98
|
+
prompt: `Research the documentation for the libraries/APIs I'm using.
|
|
99
|
+
Find:
|
|
100
|
+
1. Best practices
|
|
101
|
+
2. Common pitfalls
|
|
102
|
+
3. Code examples
|
|
103
|
+
4. Security considerations`,
|
|
104
|
+
},
|
|
105
|
+
'BUILD:IMPLEMENTING': {
|
|
106
|
+
action: 'Write code with tests',
|
|
107
|
+
prompt: `Continue todos, do each comprehensively.
|
|
108
|
+
Write the test file FIRST.
|
|
109
|
+
Then implement to make tests pass.
|
|
110
|
+
Each function should do ONE thing.
|
|
111
|
+
Run tests after each file.`,
|
|
112
|
+
},
|
|
113
|
+
'BUILD:TESTING': {
|
|
114
|
+
action: 'Run and fix tests',
|
|
115
|
+
prompt: `Run all tests.
|
|
116
|
+
Fix any failures.
|
|
117
|
+
Add edge case tests.
|
|
118
|
+
Verify no regressions.
|
|
119
|
+
Commit when green.`,
|
|
120
|
+
},
|
|
121
|
+
'BUILD:DEBUGGING': {
|
|
122
|
+
action: 'Debug with Tornado cycle',
|
|
123
|
+
prompt: `I'm stuck on a bug. Help me with the Tornado cycle:
|
|
124
|
+
1. RESEARCH: Look up relevant docs
|
|
125
|
+
2. LOGS: Add strategic console.logs
|
|
126
|
+
3. TESTS: Write test to reproduce
|
|
127
|
+
|
|
128
|
+
Let's start with research.`,
|
|
129
|
+
},
|
|
130
|
+
// Idle/Shipped
|
|
131
|
+
'IDLE': {
|
|
132
|
+
action: 'Start a new project',
|
|
133
|
+
prompt: `I want to start a new project.
|
|
134
|
+
Help me through Eagle Sight:
|
|
135
|
+
1. Clarify my idea
|
|
136
|
+
2. Research landscape
|
|
137
|
+
3. Document my brainlift
|
|
138
|
+
4. Write the PRD
|
|
139
|
+
5. Create the gameplan`,
|
|
140
|
+
},
|
|
141
|
+
'SHIPPED': {
|
|
142
|
+
action: 'Run production audit',
|
|
143
|
+
prompt: `My project is shipped. Run a production readiness audit.
|
|
144
|
+
Check all 12 ingredients:
|
|
145
|
+
1-4: Core (Frontend, Backend, Database, Auth)
|
|
146
|
+
5-7: Power (APIs, State, Design)
|
|
147
|
+
8-10: Protection (Testing, Security, Errors)
|
|
148
|
+
11-12: Mastery (Git, Deployment)`,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
function getPhaseKey(phase) {
|
|
152
|
+
if (phase.phase === 'IDLE' || phase.phase === 'SHIPPED') {
|
|
153
|
+
return phase.phase;
|
|
154
|
+
}
|
|
155
|
+
return `${phase.phase}:${phase.step}`;
|
|
156
|
+
}
|
|
157
|
+
function progressBar(current, total, width = 20) {
|
|
158
|
+
const filled = Math.round((current / total) * width);
|
|
159
|
+
const empty = width - filled;
|
|
160
|
+
return `${green}${'█'.repeat(filled)}${dim}${'░'.repeat(empty)}${reset}`;
|
|
161
|
+
}
|
|
162
|
+
function copyToClipboard(text) {
|
|
163
|
+
return new Promise((resolve, reject) => {
|
|
164
|
+
const proc = exec('pbcopy', (err) => {
|
|
165
|
+
if (err)
|
|
166
|
+
reject(err);
|
|
167
|
+
else
|
|
168
|
+
resolve();
|
|
169
|
+
});
|
|
170
|
+
proc.stdin?.write(text);
|
|
171
|
+
proc.stdin?.end();
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
function drawUI(phase, projectPath) {
|
|
175
|
+
const lines = [];
|
|
176
|
+
const width = 54;
|
|
177
|
+
const hLine = '═'.repeat(width - 2);
|
|
178
|
+
const hLineLight = '─'.repeat(width - 4);
|
|
179
|
+
lines.push(`${cyan}╔${hLine}╗${reset}`);
|
|
180
|
+
lines.push(`${cyan}║${reset} ${bold}${white}MIDAS${reset} ${dim}- Elite Vibecoding Coach${reset}${' '.repeat(width - 36)}${cyan}║${reset}`);
|
|
181
|
+
lines.push(`${cyan}╠${hLine}╣${reset}`);
|
|
182
|
+
lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
|
|
183
|
+
if (phase.phase === 'IDLE') {
|
|
184
|
+
lines.push(`${cyan}║${reset} ${dim}No project initialized${reset}${' '.repeat(width - 27)}${cyan}║${reset}`);
|
|
185
|
+
lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
|
|
186
|
+
lines.push(`${cyan}║${reset} Run: ${yellow}npx midas-mcp init <name>${reset}${' '.repeat(width - 35)}${cyan}║${reset}`);
|
|
187
|
+
}
|
|
188
|
+
else if (phase.phase === 'EAGLE_SIGHT') {
|
|
189
|
+
const steps = ['IDEA', 'RESEARCH', 'BRAINLIFT', 'PRD', 'GAMEPLAN'];
|
|
190
|
+
const currentIdx = steps.indexOf(phase.step);
|
|
191
|
+
const progress = currentIdx + 1;
|
|
192
|
+
lines.push(`${cyan}║${reset} ${yellow}${bold}EAGLE SIGHT${reset} ${progressBar(progress, 5)} ${progress}/5${' '.repeat(width - 44)}${cyan}║${reset}`);
|
|
193
|
+
lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
|
|
194
|
+
for (let i = 0; i < steps.length; i++) {
|
|
195
|
+
const step = steps[i];
|
|
196
|
+
let icon, label;
|
|
197
|
+
if (i < currentIdx) {
|
|
198
|
+
icon = `${green}✓${reset}`;
|
|
199
|
+
label = `${dim}${step}${reset}`;
|
|
200
|
+
}
|
|
201
|
+
else if (i === currentIdx) {
|
|
202
|
+
icon = `${yellow}→${reset}`;
|
|
203
|
+
label = `${bold}${step}${reset} ${dim}(current)${reset}`;
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
icon = `${dim}○${reset}`;
|
|
207
|
+
label = `${dim}${step}${reset}`;
|
|
208
|
+
}
|
|
209
|
+
const padding = width - 8 - step.length - (i === currentIdx ? 10 : 0);
|
|
210
|
+
lines.push(`${cyan}║${reset} ${icon} ${label}${' '.repeat(Math.max(0, padding))}${cyan}║${reset}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
else if (phase.phase === 'BUILD') {
|
|
214
|
+
const steps = ['RULES_LOADED', 'CODEBASE_INDEXED', 'FILES_READ', 'RESEARCHING', 'IMPLEMENTING', 'TESTING', 'DEBUGGING'];
|
|
215
|
+
const labels = {
|
|
216
|
+
RULES_LOADED: 'Load Rules',
|
|
217
|
+
CODEBASE_INDEXED: 'Index Codebase',
|
|
218
|
+
FILES_READ: 'Read Files',
|
|
219
|
+
RESEARCHING: 'Research',
|
|
220
|
+
IMPLEMENTING: 'Implement',
|
|
221
|
+
TESTING: 'Test',
|
|
222
|
+
DEBUGGING: 'Debug',
|
|
223
|
+
};
|
|
224
|
+
const currentIdx = steps.indexOf(phase.step);
|
|
225
|
+
const progress = currentIdx + 1;
|
|
226
|
+
lines.push(`${cyan}║${reset} ${blue}${bold}BUILD${reset} ${progressBar(progress, 7)} ${progress}/7${' '.repeat(width - 38)}${cyan}║${reset}`);
|
|
227
|
+
lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
|
|
228
|
+
for (let i = 0; i < steps.length; i++) {
|
|
229
|
+
const step = steps[i];
|
|
230
|
+
const label = labels[step];
|
|
231
|
+
let icon, text;
|
|
232
|
+
if (i < currentIdx) {
|
|
233
|
+
icon = `${green}✓${reset}`;
|
|
234
|
+
text = `${dim}${label}${reset}`;
|
|
235
|
+
}
|
|
236
|
+
else if (i === currentIdx) {
|
|
237
|
+
icon = `${blue}→${reset}`;
|
|
238
|
+
text = `${bold}${label}${reset} ${dim}(current)${reset}`;
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
icon = `${dim}○${reset}`;
|
|
242
|
+
text = `${dim}${label}${reset}`;
|
|
243
|
+
}
|
|
244
|
+
const padding = width - 8 - label.length - (i === currentIdx ? 10 : 0);
|
|
245
|
+
lines.push(`${cyan}║${reset} ${icon} ${text}${' '.repeat(Math.max(0, padding))}${cyan}║${reset}`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
else if (phase.phase === 'SHIPPED') {
|
|
249
|
+
lines.push(`${cyan}║${reset} ${green}${bold}SHIPPED${reset} ${progressBar(1, 1)}${' '.repeat(width - 40)}${cyan}║${reset}`);
|
|
250
|
+
lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
|
|
251
|
+
lines.push(`${cyan}║${reset} ${green}✓${reset} Project complete!${' '.repeat(width - 23)}${cyan}║${reset}`);
|
|
252
|
+
}
|
|
253
|
+
lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
|
|
254
|
+
lines.push(`${cyan}╠${hLine}╣${reset}`);
|
|
255
|
+
// Get current prompt
|
|
256
|
+
const key = getPhaseKey(phase);
|
|
257
|
+
const stepData = STEP_PROMPTS[key] || { action: 'Continue', prompt: 'What would you like to do?' };
|
|
258
|
+
lines.push(`${cyan}║${reset} ${bold}NEXT:${reset} ${stepData.action}${' '.repeat(Math.max(0, width - 10 - stepData.action.length))}${cyan}║${reset}`);
|
|
259
|
+
lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
|
|
260
|
+
lines.push(`${cyan}║${reset} ${dim}Paste this in Cursor:${reset}${' '.repeat(width - 26)}${cyan}║${reset}`);
|
|
261
|
+
lines.push(`${cyan}║${reset} ${dim}┌${hLineLight}┐${reset} ${cyan}║${reset}`);
|
|
262
|
+
// Wrap prompt text
|
|
263
|
+
const promptLines = stepData.prompt.split('\n');
|
|
264
|
+
for (const pLine of promptLines.slice(0, 4)) {
|
|
265
|
+
const truncated = pLine.slice(0, width - 10);
|
|
266
|
+
const padding = width - 8 - truncated.length;
|
|
267
|
+
lines.push(`${cyan}║${reset} ${dim}│${reset} ${truncated}${' '.repeat(Math.max(0, padding))}${dim}│${reset} ${cyan}║${reset}`);
|
|
268
|
+
}
|
|
269
|
+
if (promptLines.length > 4) {
|
|
270
|
+
lines.push(`${cyan}║${reset} ${dim}│ ...${' '.repeat(width - 13)}│${reset} ${cyan}║${reset}`);
|
|
271
|
+
}
|
|
272
|
+
lines.push(`${cyan}║${reset} ${dim}└${hLineLight}┘${reset} ${cyan}║${reset}`);
|
|
273
|
+
lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
|
|
274
|
+
lines.push(`${cyan}╠${hLine}╣${reset}`);
|
|
275
|
+
lines.push(`${cyan}║${reset} ${dim}[c]${reset} Copy prompt ${dim}[n]${reset} Next step ${dim}[b]${reset} Back ${dim}[q]${reset} Quit ${cyan}║${reset}`);
|
|
276
|
+
lines.push(`${cyan}╚${hLine}╝${reset}`);
|
|
277
|
+
return lines.join('\n');
|
|
278
|
+
}
|
|
279
|
+
function advancePhase(projectPath) {
|
|
280
|
+
const state = loadState(projectPath);
|
|
281
|
+
const phase = state.current;
|
|
282
|
+
if (phase.phase === 'IDLE') {
|
|
283
|
+
state.current = { phase: 'EAGLE_SIGHT', step: 'IDEA' };
|
|
284
|
+
}
|
|
285
|
+
else if (phase.phase === 'EAGLE_SIGHT') {
|
|
286
|
+
const steps = ['IDEA', 'RESEARCH', 'BRAINLIFT', 'PRD', 'GAMEPLAN'];
|
|
287
|
+
const idx = steps.indexOf(phase.step);
|
|
288
|
+
if (idx < steps.length - 1) {
|
|
289
|
+
state.current = { phase: 'EAGLE_SIGHT', step: steps[idx + 1] };
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
state.current = { phase: 'BUILD', step: 'RULES_LOADED' };
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
else if (phase.phase === 'BUILD') {
|
|
296
|
+
const steps = ['RULES_LOADED', 'CODEBASE_INDEXED', 'FILES_READ', 'RESEARCHING', 'IMPLEMENTING', 'TESTING', 'DEBUGGING'];
|
|
297
|
+
const idx = steps.indexOf(phase.step);
|
|
298
|
+
if (idx < steps.length - 1) {
|
|
299
|
+
state.current = { phase: 'BUILD', step: steps[idx + 1] };
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
state.current = { phase: 'SHIPPED' };
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
saveState(projectPath, state);
|
|
306
|
+
return state.current;
|
|
307
|
+
}
|
|
308
|
+
function goBackPhase(projectPath) {
|
|
309
|
+
const state = loadState(projectPath);
|
|
310
|
+
const phase = state.current;
|
|
311
|
+
if (phase.phase === 'EAGLE_SIGHT') {
|
|
312
|
+
const steps = ['IDEA', 'RESEARCH', 'BRAINLIFT', 'PRD', 'GAMEPLAN'];
|
|
313
|
+
const idx = steps.indexOf(phase.step);
|
|
314
|
+
if (idx > 0) {
|
|
315
|
+
state.current = { phase: 'EAGLE_SIGHT', step: steps[idx - 1] };
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if (phase.phase === 'BUILD') {
|
|
319
|
+
const steps = ['RULES_LOADED', 'CODEBASE_INDEXED', 'FILES_READ', 'RESEARCHING', 'IMPLEMENTING', 'TESTING', 'DEBUGGING'];
|
|
320
|
+
const idx = steps.indexOf(phase.step);
|
|
321
|
+
if (idx > 0) {
|
|
322
|
+
state.current = { phase: 'BUILD', step: steps[idx - 1] };
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
state.current = { phase: 'EAGLE_SIGHT', step: 'GAMEPLAN' };
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
else if (phase.phase === 'SHIPPED') {
|
|
329
|
+
state.current = { phase: 'BUILD', step: 'DEBUGGING' };
|
|
330
|
+
}
|
|
331
|
+
saveState(projectPath, state);
|
|
332
|
+
return state.current;
|
|
333
|
+
}
|
|
334
|
+
export async function runInteractive() {
|
|
335
|
+
const projectPath = process.cwd();
|
|
336
|
+
// Set up raw mode for single keypress
|
|
337
|
+
if (process.stdin.isTTY) {
|
|
338
|
+
process.stdin.setRawMode(true);
|
|
339
|
+
}
|
|
340
|
+
process.stdin.resume();
|
|
341
|
+
process.stdin.setEncoding('utf8');
|
|
342
|
+
let state = loadState(projectPath);
|
|
343
|
+
let phase = state.current;
|
|
344
|
+
let message = '';
|
|
345
|
+
const render = () => {
|
|
346
|
+
console.log(clearScreen);
|
|
347
|
+
console.log(drawUI(phase, projectPath));
|
|
348
|
+
if (message) {
|
|
349
|
+
console.log(`\n ${message}`);
|
|
350
|
+
message = '';
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
render();
|
|
354
|
+
// Watch for docs changes
|
|
355
|
+
const docsPath = join(projectPath, 'docs');
|
|
356
|
+
let watcher = null;
|
|
357
|
+
if (existsSync(docsPath)) {
|
|
358
|
+
watcher = watch(docsPath, { recursive: true }, () => {
|
|
359
|
+
// Re-check docs completeness
|
|
360
|
+
const docs = checkDocs({ projectPath });
|
|
361
|
+
if (docs.ready && phase.phase === 'EAGLE_SIGHT') {
|
|
362
|
+
message = `${green}✓${reset} Docs complete! Press [n] to start BUILD.`;
|
|
363
|
+
render();
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
process.stdin.on('data', async (key) => {
|
|
368
|
+
if (key === 'q' || key === '\u0003') { // q or Ctrl+C
|
|
369
|
+
console.log(clearScreen);
|
|
370
|
+
console.log(`\n ${cyan}Midas${reset} signing off. Happy vibecoding!\n`);
|
|
371
|
+
watcher?.close();
|
|
372
|
+
process.exit(0);
|
|
373
|
+
}
|
|
374
|
+
if (key === 'c') {
|
|
375
|
+
const stepKey = getPhaseKey(phase);
|
|
376
|
+
const prompt = STEP_PROMPTS[stepKey]?.prompt || '';
|
|
377
|
+
try {
|
|
378
|
+
await copyToClipboard(prompt);
|
|
379
|
+
message = `${green}✓${reset} Prompt copied to clipboard!`;
|
|
380
|
+
}
|
|
381
|
+
catch {
|
|
382
|
+
message = `${yellow}!${reset} Could not copy. Manually copy the prompt above.`;
|
|
383
|
+
}
|
|
384
|
+
render();
|
|
385
|
+
}
|
|
386
|
+
if (key === 'n') {
|
|
387
|
+
phase = advancePhase(projectPath);
|
|
388
|
+
message = `${green}→${reset} Advanced to next step`;
|
|
389
|
+
render();
|
|
390
|
+
}
|
|
391
|
+
if (key === 'b') {
|
|
392
|
+
phase = goBackPhase(projectPath);
|
|
393
|
+
message = `${yellow}←${reset} Went back one step`;
|
|
394
|
+
render();
|
|
395
|
+
}
|
|
396
|
+
if (key === 'r') {
|
|
397
|
+
state = loadState(projectPath);
|
|
398
|
+
phase = state.current;
|
|
399
|
+
message = `${blue}↻${reset} Refreshed`;
|
|
400
|
+
render();
|
|
401
|
+
}
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
//# sourceMappingURL=tui.js.map
|
package/dist/tui.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Brainlift: my-project
|
|
2
|
+
|
|
3
|
+
## Contrarian Insights
|
|
4
|
+
- [What do YOU know that contradicts conventional wisdom?]
|
|
5
|
+
- [What have you learned from experience that AI can't know?]
|
|
6
|
+
|
|
7
|
+
## Domain Knowledge
|
|
8
|
+
- [Industry-specific context]
|
|
9
|
+
- [User behavior patterns you've observed]
|
|
10
|
+
|
|
11
|
+
## Hard-Won Lessons
|
|
12
|
+
- [What NOT to do based on past experience]
|
|
13
|
+
- [Hidden gotchas in this space]
|
|
14
|
+
|
|
15
|
+
## Current Context
|
|
16
|
+
- [Recent market changes]
|
|
17
|
+
- [Technology updates post-training-cutoff]
|
package/docs/gameplan.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Gameplan: my-project
|
|
2
|
+
|
|
3
|
+
## Tech Stack
|
|
4
|
+
[Stack choice with justification]
|
|
5
|
+
|
|
6
|
+
## Architecture Overview
|
|
7
|
+
[High-level system design]
|
|
8
|
+
|
|
9
|
+
## Phase 1: Foundation
|
|
10
|
+
- [ ] Task 1
|
|
11
|
+
- [ ] Task 2
|
|
12
|
+
|
|
13
|
+
## Phase 2: Core Features
|
|
14
|
+
- [ ] Task 1
|
|
15
|
+
- [ ] Task 2
|
|
16
|
+
|
|
17
|
+
## Risk Mitigation
|
|
18
|
+
- Risk: [issue] → Mitigation: [solution]
|
package/docs/prd.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# PRD: my-project
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
[One-paragraph description]
|
|
5
|
+
|
|
6
|
+
## Goals
|
|
7
|
+
1. [Primary goal]
|
|
8
|
+
2. [Secondary goal]
|
|
9
|
+
|
|
10
|
+
## Non-Goals
|
|
11
|
+
- [What you're explicitly NOT building]
|
|
12
|
+
|
|
13
|
+
## User Stories
|
|
14
|
+
- As a [user type], I want to [action] so that [benefit]
|
|
15
|
+
|
|
16
|
+
## Technical Requirements
|
|
17
|
+
- [Performance, security, integration requirements]
|
|
18
|
+
|
|
19
|
+
## Success Metrics
|
|
20
|
+
- [How you'll measure success]
|