brainforge-ai 1.2.0 → 1.2.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 +863 -703
- package/dist/cli.js +47 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/defensePack.d.ts +2 -0
- package/dist/commands/defensePack.d.ts.map +1 -0
- package/dist/commands/defensePack.js +269 -0
- package/dist/commands/defensePack.js.map +1 -0
- package/dist/commands/difficulty.d.ts +2 -0
- package/dist/commands/difficulty.d.ts.map +1 -0
- package/dist/commands/difficulty.js +177 -0
- package/dist/commands/difficulty.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +53 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +24 -1
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/init.d.ts +6 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +64 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/professorCheck.d.ts +2 -0
- package/dist/commands/professorCheck.d.ts.map +1 -0
- package/dist/commands/professorCheck.js +203 -0
- package/dist/commands/professorCheck.js.map +1 -0
- package/dist/commands/simplify.d.ts +2 -0
- package/dist/commands/simplify.d.ts.map +1 -0
- package/dist/commands/simplify.js +174 -0
- package/dist/commands/simplify.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +105 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/study.d.ts +2 -0
- package/dist/commands/study.d.ts.map +1 -0
- package/dist/commands/study.js +193 -0
- package/dist/commands/study.js.map +1 -0
- package/dist/commands/update.js +2 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/core/dashboard.d.ts +41 -0
- package/dist/core/dashboard.d.ts.map +1 -1
- package/dist/core/dashboard.js +121 -0
- package/dist/core/dashboard.js.map +1 -1
- package/dist/core/dashboardTemplate.d.ts.map +1 -1
- package/dist/core/dashboardTemplate.js +748 -317
- package/dist/core/dashboardTemplate.js.map +1 -1
- package/dist/core/fileSystem.d.ts.map +1 -1
- package/dist/core/fileSystem.js +175 -0
- package/dist/core/fileSystem.js.map +1 -1
- package/dist/core/templates.d.ts.map +1 -1
- package/dist/core/templates.js +525 -191
- package/dist/core/templates.js.map +1 -1
- package/package.json +5 -1
package/dist/cli.js
CHANGED
|
@@ -9,6 +9,12 @@ const updateDashboard_1 = require("./commands/updateDashboard");
|
|
|
9
9
|
const serve_1 = require("./commands/serve");
|
|
10
10
|
const help_1 = require("./commands/help");
|
|
11
11
|
const update_1 = require("./commands/update");
|
|
12
|
+
const status_1 = require("./commands/status");
|
|
13
|
+
const simplify_1 = require("./commands/simplify");
|
|
14
|
+
const professorCheck_1 = require("./commands/professorCheck");
|
|
15
|
+
const study_1 = require("./commands/study");
|
|
16
|
+
const difficulty_1 = require("./commands/difficulty");
|
|
17
|
+
const defensePack_1 = require("./commands/defensePack");
|
|
12
18
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
19
|
const pkg = require('../package.json');
|
|
14
20
|
const program = new commander_1.Command();
|
|
@@ -19,8 +25,10 @@ program
|
|
|
19
25
|
program
|
|
20
26
|
.command('init')
|
|
21
27
|
.description('Initialize BrainForge in the current directory')
|
|
22
|
-
.
|
|
23
|
-
|
|
28
|
+
.option('-y, --yes', 'Skip prompts and use defaults (non-interactive)')
|
|
29
|
+
.option('--preset <name>', 'Use a preset configuration: student')
|
|
30
|
+
.action(async (opts) => {
|
|
31
|
+
await (0, init_1.initCommand)(opts);
|
|
24
32
|
});
|
|
25
33
|
program
|
|
26
34
|
.command('doctor')
|
|
@@ -59,6 +67,43 @@ program
|
|
|
59
67
|
.action(() => {
|
|
60
68
|
(0, help_1.helpCommand)();
|
|
61
69
|
});
|
|
70
|
+
program
|
|
71
|
+
.command('status')
|
|
72
|
+
.description('Show a compact summary of the current BrainForge project')
|
|
73
|
+
.action(async () => {
|
|
74
|
+
await (0, status_1.statusCommand)();
|
|
75
|
+
});
|
|
76
|
+
program
|
|
77
|
+
.command('simplify')
|
|
78
|
+
.description('Generate a prompt to simplify code to match the project code level')
|
|
79
|
+
.action(() => {
|
|
80
|
+
(0, simplify_1.simplifyCommand)();
|
|
81
|
+
});
|
|
82
|
+
program
|
|
83
|
+
.command('professor-check')
|
|
84
|
+
.description('Generate a prompt to detect suspiciously AI-generated code patterns')
|
|
85
|
+
.action(() => {
|
|
86
|
+
(0, professorCheck_1.professorCheckCommand)();
|
|
87
|
+
});
|
|
88
|
+
program
|
|
89
|
+
.command('study')
|
|
90
|
+
.description('Initialize Study Mode files to help understand and explain the project')
|
|
91
|
+
.action(async () => {
|
|
92
|
+
await (0, study_1.studyCommand)();
|
|
93
|
+
});
|
|
94
|
+
program
|
|
95
|
+
.command('difficulty')
|
|
96
|
+
.alias('analyze-difficulty')
|
|
97
|
+
.description('Generate a difficulty analysis workflow for studying important files')
|
|
98
|
+
.action(async () => {
|
|
99
|
+
await (0, difficulty_1.difficultyCommand)();
|
|
100
|
+
});
|
|
101
|
+
program
|
|
102
|
+
.command('defense-pack')
|
|
103
|
+
.description('Generate an oral defense and presentation preparation workflow')
|
|
104
|
+
.action(async () => {
|
|
105
|
+
await (0, defensePack_1.defensePackCommand)();
|
|
106
|
+
});
|
|
62
107
|
program
|
|
63
108
|
.command('version')
|
|
64
109
|
.description('Show version information')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,8CAAkD;AAClD,oDAAwD;AACxD,gEAAoE;AACpE,4CAAgD;AAChD,0CAA8C;AAC9C,8CAAkD;AAClD,8DAA8D;AAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CACV,yGAAyG,CAC1G;KACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defensePack.d.ts","sourceRoot":"","sources":["../../src/commands/defensePack.ts"],"names":[],"mappings":"AAMA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4DxD"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.defensePackCommand = defensePackCommand;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const config_1 = require("../core/config");
|
|
11
|
+
const logger_1 = require("../utils/logger");
|
|
12
|
+
async function defensePackCommand() {
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
if (!(0, config_1.configExists)(cwd)) {
|
|
15
|
+
logger_1.logger.error('BrainForge not initialized. Run: brainforge init');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const config = (0, config_1.readConfig)(cwd);
|
|
19
|
+
const brainDir = (0, config_1.getBrainforgeDir)(cwd);
|
|
20
|
+
const studyDir = path_1.default.join(brainDir, 'study');
|
|
21
|
+
logger_1.logger.title('⚡ BrainForge Defense Pack');
|
|
22
|
+
logger_1.logger.divider();
|
|
23
|
+
logger_1.logger.info(`Project: ${chalk_1.default.white(config.projectName)}`);
|
|
24
|
+
console.log();
|
|
25
|
+
await fs_extra_1.default.ensureDir(path_1.default.join(brainDir, 'reports'));
|
|
26
|
+
await fs_extra_1.default.ensureDir(studyDir);
|
|
27
|
+
const reportPath = path_1.default.join(brainDir, 'reports', 'defense-pack.md');
|
|
28
|
+
const commandPath = path_1.default.join(brainDir, 'commands', 'defense-pack.md');
|
|
29
|
+
const oralPath = path_1.default.join(studyDir, 'oral-defense.md');
|
|
30
|
+
if (!fs_extra_1.default.existsSync(reportPath)) {
|
|
31
|
+
await fs_extra_1.default.writeFile(reportPath, generateDefensePackTemplate(config.projectName));
|
|
32
|
+
console.log(chalk_1.default.green(' ✔ Created: ') + chalk_1.default.gray('.brainforge/reports/defense-pack.md'));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log(chalk_1.default.gray(' ○ Exists: ') + chalk_1.default.gray('.brainforge/reports/defense-pack.md'));
|
|
36
|
+
}
|
|
37
|
+
if (!fs_extra_1.default.existsSync(oralPath)) {
|
|
38
|
+
await fs_extra_1.default.writeFile(oralPath, generateOralDefenseTemplate());
|
|
39
|
+
console.log(chalk_1.default.green(' ✔ Created: ') + chalk_1.default.gray('.brainforge/study/oral-defense.md'));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
console.log(chalk_1.default.gray(' ○ Exists: ') + chalk_1.default.gray('.brainforge/study/oral-defense.md'));
|
|
43
|
+
}
|
|
44
|
+
await fs_extra_1.default.writeFile(commandPath, generateDefensePackCommand(config));
|
|
45
|
+
console.log(chalk_1.default.green(' ✔ Written: ') + chalk_1.default.gray('.brainforge/commands/defense-pack.md'));
|
|
46
|
+
console.log();
|
|
47
|
+
logger_1.logger.divider();
|
|
48
|
+
logger_1.logger.success('Defense Pack workflow ready.');
|
|
49
|
+
console.log();
|
|
50
|
+
console.log(chalk_1.default.bold.white(' Paste this prompt into your AI tool:'));
|
|
51
|
+
console.log();
|
|
52
|
+
console.log(chalk_1.default.yellow(' ────────────────────────────────────────────────────────'));
|
|
53
|
+
console.log(chalk_1.default.white(' /defense-pack'));
|
|
54
|
+
console.log(chalk_1.default.gray(''));
|
|
55
|
+
console.log(chalk_1.default.gray(' Read .brainforge/commands/defense-pack.md for full instructions.'));
|
|
56
|
+
console.log(chalk_1.default.yellow(' ────────────────────────────────────────────────────────'));
|
|
57
|
+
console.log();
|
|
58
|
+
console.log(chalk_1.default.gray(' The AI will generate:'));
|
|
59
|
+
console.log(chalk_1.default.gray(' - 30-second / 1-minute / 5-minute project explanations'));
|
|
60
|
+
console.log(chalk_1.default.gray(' - Architecture explanation in simple terms'));
|
|
61
|
+
console.log(chalk_1.default.gray(' - Professor questions with suggested answers'));
|
|
62
|
+
console.log(chalk_1.default.gray(' - Demo script for presentation'));
|
|
63
|
+
console.log(chalk_1.default.gray(' - Final presentation checklist'));
|
|
64
|
+
console.log();
|
|
65
|
+
}
|
|
66
|
+
function generateDefensePackTemplate(projectName) {
|
|
67
|
+
return `# Defense Pack — ${projectName}
|
|
68
|
+
|
|
69
|
+
_Generated by \`brainforge defense-pack\`. Run \`/defense-pack\` in your AI tool to fill this in._
|
|
70
|
+
|
|
71
|
+
## Project summary
|
|
72
|
+
|
|
73
|
+
### 30-second explanation
|
|
74
|
+
|
|
75
|
+
_To be filled._
|
|
76
|
+
|
|
77
|
+
### 1-minute explanation
|
|
78
|
+
|
|
79
|
+
_To be filled._
|
|
80
|
+
|
|
81
|
+
### 5-minute explanation
|
|
82
|
+
|
|
83
|
+
_To be filled._
|
|
84
|
+
|
|
85
|
+
## Problem and solution
|
|
86
|
+
|
|
87
|
+
_To be filled._
|
|
88
|
+
|
|
89
|
+
## Main features
|
|
90
|
+
|
|
91
|
+
_To be filled._
|
|
92
|
+
|
|
93
|
+
## Architecture explained simply
|
|
94
|
+
|
|
95
|
+
_To be filled._
|
|
96
|
+
|
|
97
|
+
## Folder structure explained
|
|
98
|
+
|
|
99
|
+
_To be filled._
|
|
100
|
+
|
|
101
|
+
## Database / API / UI explanation
|
|
102
|
+
|
|
103
|
+
_Only sections relevant to the project stack._
|
|
104
|
+
|
|
105
|
+
## What each important file does
|
|
106
|
+
|
|
107
|
+
| File | Role | How to explain it |
|
|
108
|
+
|------|------|------------------|
|
|
109
|
+
| _To be filled_ | | |
|
|
110
|
+
|
|
111
|
+
## Difficult parts to revise
|
|
112
|
+
|
|
113
|
+
| Topic | Why it is difficult | How to explain simply |
|
|
114
|
+
|-------|-------------------|----------------------|
|
|
115
|
+
| _To be filled_ | | |
|
|
116
|
+
|
|
117
|
+
## Professor questions and answers
|
|
118
|
+
|
|
119
|
+
| Question | Suggested answer |
|
|
120
|
+
|----------|-----------------|
|
|
121
|
+
| _To be filled_ | |
|
|
122
|
+
|
|
123
|
+
## Demo script
|
|
124
|
+
|
|
125
|
+
_To be filled._
|
|
126
|
+
|
|
127
|
+
## What to say if asked "Did you use AI?"
|
|
128
|
+
|
|
129
|
+
_To be filled._
|
|
130
|
+
|
|
131
|
+
## Final checklist before presentation
|
|
132
|
+
|
|
133
|
+
- [ ] I can explain the project goal
|
|
134
|
+
- [ ] I can explain the architecture
|
|
135
|
+
- [ ] I can explain the important files
|
|
136
|
+
- [ ] I can run the project
|
|
137
|
+
- [ ] I can answer likely questions
|
|
138
|
+
`;
|
|
139
|
+
}
|
|
140
|
+
function generateOralDefenseTemplate() {
|
|
141
|
+
return `# Oral Defense Preparation
|
|
142
|
+
|
|
143
|
+
## 30-second project explanation
|
|
144
|
+
|
|
145
|
+
_To be filled by /defense-pack._
|
|
146
|
+
|
|
147
|
+
## 1-minute project explanation
|
|
148
|
+
|
|
149
|
+
_To be filled._
|
|
150
|
+
|
|
151
|
+
## 5-minute project explanation
|
|
152
|
+
|
|
153
|
+
_To be filled._
|
|
154
|
+
|
|
155
|
+
## Architecture explanation
|
|
156
|
+
|
|
157
|
+
_To be filled._
|
|
158
|
+
|
|
159
|
+
## Main features
|
|
160
|
+
|
|
161
|
+
_To be filled._
|
|
162
|
+
|
|
163
|
+
## What I built myself
|
|
164
|
+
|
|
165
|
+
_To be filled._
|
|
166
|
+
|
|
167
|
+
## What I should be ready to explain
|
|
168
|
+
|
|
169
|
+
_To be filled._
|
|
170
|
+
`;
|
|
171
|
+
}
|
|
172
|
+
function generateDefensePackCommand(config) {
|
|
173
|
+
return `# /defense-pack
|
|
174
|
+
|
|
175
|
+
**Objective:** Generate a complete presentation and oral defense preparation document.
|
|
176
|
+
|
|
177
|
+
## Context to Read First
|
|
178
|
+
|
|
179
|
+
Read these files (skip gracefully if they don't exist):
|
|
180
|
+
|
|
181
|
+
- \`.brainforge/brain.md\`
|
|
182
|
+
- \`.brainforge/project.md\`
|
|
183
|
+
- \`.brainforge/roadmap.md\`
|
|
184
|
+
- \`.brainforge/phases/\` (all phase files)
|
|
185
|
+
- \`.brainforge/memory/architecture.md\`
|
|
186
|
+
- \`.brainforge/memory/learning-notes.md\`
|
|
187
|
+
- \`.brainforge/reports/difficulty-report.md\`
|
|
188
|
+
- \`.brainforge/reports/professor-check.md\`
|
|
189
|
+
|
|
190
|
+
## Project Info
|
|
191
|
+
|
|
192
|
+
- **Project:** ${config.projectName}
|
|
193
|
+
- **Stack:** ${config.stack.join(', ')}
|
|
194
|
+
- **Code level:** ${config.codeLevel}
|
|
195
|
+
- **User level:** ${config.userLevel}
|
|
196
|
+
- **Academic:** ${config.isAcademic ? 'Yes' : 'No'}
|
|
197
|
+
|
|
198
|
+
## Steps
|
|
199
|
+
|
|
200
|
+
1. Read all available context files
|
|
201
|
+
2. Generate all sections of the Defense Pack
|
|
202
|
+
3. Write results to \`.brainforge/reports/defense-pack.md\`
|
|
203
|
+
4. Update \`.brainforge/study/oral-defense.md\` with the 30s / 1min / 5min explanations
|
|
204
|
+
|
|
205
|
+
## Output Format
|
|
206
|
+
|
|
207
|
+
Write to \`.brainforge/reports/defense-pack.md\`:
|
|
208
|
+
|
|
209
|
+
\`\`\`md
|
|
210
|
+
# Defense Pack — ${config.projectName}
|
|
211
|
+
|
|
212
|
+
## Project summary
|
|
213
|
+
|
|
214
|
+
### 30-second explanation
|
|
215
|
+
[One clear sentence anyone can understand]
|
|
216
|
+
|
|
217
|
+
### 1-minute explanation
|
|
218
|
+
[3-4 sentences: problem, solution, main features, tech used]
|
|
219
|
+
|
|
220
|
+
### 5-minute explanation
|
|
221
|
+
[Full story: context, problem, solution, architecture, features, demo flow]
|
|
222
|
+
|
|
223
|
+
## Problem and solution
|
|
224
|
+
[What problem does the project solve? For whom?]
|
|
225
|
+
|
|
226
|
+
## Main features
|
|
227
|
+
[Bullet list of core features]
|
|
228
|
+
|
|
229
|
+
## Architecture explained simply
|
|
230
|
+
[Simple diagram or description — no jargon]
|
|
231
|
+
|
|
232
|
+
## Folder structure explained
|
|
233
|
+
[Each folder and what it contains]
|
|
234
|
+
|
|
235
|
+
## Database / API / UI explanation
|
|
236
|
+
[Only sections relevant to: ${config.stack.join(', ')}]
|
|
237
|
+
|
|
238
|
+
## What each important file does
|
|
239
|
+
| File | Role | How to explain it |
|
|
240
|
+
|
|
241
|
+
## Difficult parts to revise
|
|
242
|
+
| Topic | Why it is difficult | How to explain simply |
|
|
243
|
+
|
|
244
|
+
## Professor questions and answers
|
|
245
|
+
| Question | Suggested answer |
|
|
246
|
+
|
|
247
|
+
## Demo script
|
|
248
|
+
Step 1: [Show...]
|
|
249
|
+
Step 2: [Navigate to...]
|
|
250
|
+
Step 3: [Demonstrate...]
|
|
251
|
+
|
|
252
|
+
## What to say if asked "Did you use AI?"
|
|
253
|
+
Give an honest, ethical answer:
|
|
254
|
+
- AI was used as an assistant for structure, review, and learning
|
|
255
|
+
- The student understands the code and can defend the choices
|
|
256
|
+
- Do not encourage lying
|
|
257
|
+
- Example: "Yes, I used AI as a tool to help structure my work and review my code,
|
|
258
|
+
similar to how a developer uses Stack Overflow. I wrote and understand all the code."
|
|
259
|
+
|
|
260
|
+
## Final checklist before presentation
|
|
261
|
+
- [ ] I can explain the project goal
|
|
262
|
+
- [ ] I can explain the architecture
|
|
263
|
+
- [ ] I can explain every important file
|
|
264
|
+
- [ ] I can run the project without errors
|
|
265
|
+
- [ ] I can answer the professor questions above
|
|
266
|
+
\`\`\`
|
|
267
|
+
`;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=defensePack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defensePack.js","sourceRoot":"","sources":["../../src/commands/defensePack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"difficulty.d.ts","sourceRoot":"","sources":["../../src/commands/difficulty.ts"],"names":[],"mappings":"AAMA,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiDvD"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.difficultyCommand = difficultyCommand;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const config_1 = require("../core/config");
|
|
11
|
+
const logger_1 = require("../utils/logger");
|
|
12
|
+
async function difficultyCommand() {
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
if (!(0, config_1.configExists)(cwd)) {
|
|
15
|
+
logger_1.logger.error('BrainForge not initialized. Run: brainforge init');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const config = (0, config_1.readConfig)(cwd);
|
|
19
|
+
const brainDir = (0, config_1.getBrainforgeDir)(cwd);
|
|
20
|
+
logger_1.logger.title('⚡ BrainForge Difficulty Analysis');
|
|
21
|
+
logger_1.logger.divider();
|
|
22
|
+
logger_1.logger.info(`Project: ${chalk_1.default.white(config.projectName)}`);
|
|
23
|
+
console.log();
|
|
24
|
+
await fs_extra_1.default.ensureDir(path_1.default.join(brainDir, 'reports'));
|
|
25
|
+
const reportPath = path_1.default.join(brainDir, 'reports', 'difficulty-report.md');
|
|
26
|
+
const commandPath = path_1.default.join(brainDir, 'commands', 'analyze-difficulty.md');
|
|
27
|
+
if (!fs_extra_1.default.existsSync(reportPath)) {
|
|
28
|
+
await fs_extra_1.default.writeFile(reportPath, generateDifficultyReportTemplate(config.projectName));
|
|
29
|
+
console.log(chalk_1.default.green(' ✔ Created: ') + chalk_1.default.gray('.brainforge/reports/difficulty-report.md'));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.log(chalk_1.default.gray(' ○ Exists: ') + chalk_1.default.gray('.brainforge/reports/difficulty-report.md'));
|
|
33
|
+
}
|
|
34
|
+
await fs_extra_1.default.writeFile(commandPath, generateAnalyzeDifficultyCommand(config));
|
|
35
|
+
console.log(chalk_1.default.green(' ✔ Written: ') + chalk_1.default.gray('.brainforge/commands/analyze-difficulty.md'));
|
|
36
|
+
console.log();
|
|
37
|
+
logger_1.logger.divider();
|
|
38
|
+
logger_1.logger.success('Difficulty analysis workflow ready.');
|
|
39
|
+
console.log();
|
|
40
|
+
console.log(chalk_1.default.bold.white(' Paste this prompt into your AI tool:'));
|
|
41
|
+
console.log();
|
|
42
|
+
console.log(chalk_1.default.yellow(' ────────────────────────────────────────────────────────'));
|
|
43
|
+
console.log(chalk_1.default.white(' /analyze-difficulty'));
|
|
44
|
+
console.log(chalk_1.default.gray(''));
|
|
45
|
+
console.log(chalk_1.default.gray(' Read .brainforge/commands/analyze-difficulty.md for full instructions.'));
|
|
46
|
+
console.log(chalk_1.default.yellow(' ────────────────────────────────────────────────────────'));
|
|
47
|
+
console.log();
|
|
48
|
+
console.log(chalk_1.default.gray(' The AI will:'));
|
|
49
|
+
console.log(chalk_1.default.gray(' - Score every important file from 1–10'));
|
|
50
|
+
console.log(chalk_1.default.gray(' - Flag concepts you need to review'));
|
|
51
|
+
console.log(chalk_1.default.gray(' - Update .brainforge/study/file-map.md'));
|
|
52
|
+
console.log(chalk_1.default.gray(' - Update .brainforge/memory/learning-notes.md'));
|
|
53
|
+
console.log();
|
|
54
|
+
}
|
|
55
|
+
function generateDifficultyReportTemplate(projectName) {
|
|
56
|
+
return `# Difficulty Report — ${projectName}
|
|
57
|
+
|
|
58
|
+
_Generated by \`brainforge difficulty\`. Run \`/analyze-difficulty\` in your AI tool to fill this in._
|
|
59
|
+
|
|
60
|
+
## Summary
|
|
61
|
+
|
|
62
|
+
- **Overall difficulty:** _To be filled_
|
|
63
|
+
- **Risk for oral defense:** _To be filled_
|
|
64
|
+
|
|
65
|
+
## File Difficulty Map
|
|
66
|
+
|
|
67
|
+
| File | Difficulty /10 | Reason | Concepts needed | Defense risk |
|
|
68
|
+
|------|---------------:|--------|-----------------|-------------|
|
|
69
|
+
| _To be filled_ | | | | |
|
|
70
|
+
|
|
71
|
+
## Top files to study first
|
|
72
|
+
|
|
73
|
+
1. _To be filled_
|
|
74
|
+
2.
|
|
75
|
+
3.
|
|
76
|
+
|
|
77
|
+
## Too advanced patterns
|
|
78
|
+
|
|
79
|
+
| File | Pattern | Why difficult | Simpler alternative |
|
|
80
|
+
|------|---------|--------------|-------------------|
|
|
81
|
+
| _To be filled_ | | | |
|
|
82
|
+
|
|
83
|
+
## Concepts to review
|
|
84
|
+
|
|
85
|
+
| Concept | Files | Priority |
|
|
86
|
+
|---------|-------|----------|
|
|
87
|
+
| _To be filled_ | | |
|
|
88
|
+
|
|
89
|
+
## Recommended study plan
|
|
90
|
+
|
|
91
|
+
1. _To be filled_
|
|
92
|
+
2.
|
|
93
|
+
3.
|
|
94
|
+
`;
|
|
95
|
+
}
|
|
96
|
+
function generateAnalyzeDifficultyCommand(config) {
|
|
97
|
+
return `# /analyze-difficulty
|
|
98
|
+
|
|
99
|
+
**Objective:** Scan the project codebase, score file complexity, and produce a difficulty report.
|
|
100
|
+
|
|
101
|
+
## Context to Read First
|
|
102
|
+
|
|
103
|
+
- \`.brainforge/brain.md\`
|
|
104
|
+
- \`.brainforge/memory/coding-style.md\`
|
|
105
|
+
- \`.brainforge/memory/architecture.md\`
|
|
106
|
+
|
|
107
|
+
## Project Info
|
|
108
|
+
|
|
109
|
+
- **Project:** ${config.projectName}
|
|
110
|
+
- **Stack:** ${config.stack.join(', ')}
|
|
111
|
+
- **Code level:** ${config.codeLevel}
|
|
112
|
+
- **User level:** ${config.userLevel}
|
|
113
|
+
|
|
114
|
+
## Steps
|
|
115
|
+
|
|
116
|
+
1. Scan all source files in the project (exclude node_modules, dist, .git)
|
|
117
|
+
2. For each file, compute a difficulty score 1–10 using the criteria below
|
|
118
|
+
3. Identify patterns that would be hard to explain to a professor
|
|
119
|
+
4. Generate a recommended study plan
|
|
120
|
+
5. Write results to \`.brainforge/reports/difficulty-report.md\`
|
|
121
|
+
6. Update \`.brainforge/study/file-map.md\`
|
|
122
|
+
7. Update \`.brainforge/study/concepts-to-review.md\`
|
|
123
|
+
8. Update \`.brainforge/memory/learning-notes.md\` with files to understand
|
|
124
|
+
|
|
125
|
+
## Difficulty Scoring Criteria
|
|
126
|
+
|
|
127
|
+
Score each file from 1 (trivial) to 10 (very hard):
|
|
128
|
+
|
|
129
|
+
| Factor | Points |
|
|
130
|
+
|--------|--------|
|
|
131
|
+
| Multiple responsibilities in one file | +1-2 |
|
|
132
|
+
| Async / database / API logic | +1 |
|
|
133
|
+
| Authentication / session / security logic | +1-2 |
|
|
134
|
+
| Advanced TypeScript (generics, utility types) | +1-2 |
|
|
135
|
+
| Complex state management | +1 |
|
|
136
|
+
| Hidden side effects | +1 |
|
|
137
|
+
| External services integration | +1 |
|
|
138
|
+
| Testing / mocking complexity | +1 |
|
|
139
|
+
| Architecture patterns (middleware, DI, etc.) | +1-2 |
|
|
140
|
+
| Large file (>200 lines) | +1 |
|
|
141
|
+
|
|
142
|
+
## Output Format
|
|
143
|
+
|
|
144
|
+
Write to \`.brainforge/reports/difficulty-report.md\`:
|
|
145
|
+
|
|
146
|
+
\`\`\`md
|
|
147
|
+
## Summary
|
|
148
|
+
Overall difficulty: beginner | intermediate | advanced | professional
|
|
149
|
+
Risk for oral defense: low | medium | high
|
|
150
|
+
|
|
151
|
+
## File Difficulty Map
|
|
152
|
+
| File | Difficulty /10 | Reason | Concepts needed | Defense risk |
|
|
153
|
+
|
|
154
|
+
## Top files to study first
|
|
155
|
+
1.
|
|
156
|
+
2.
|
|
157
|
+
3.
|
|
158
|
+
|
|
159
|
+
## Too advanced patterns
|
|
160
|
+
| File | Pattern | Why difficult | Simpler alternative |
|
|
161
|
+
|
|
162
|
+
## Concepts to review
|
|
163
|
+
| Concept | Files | Priority |
|
|
164
|
+
|
|
165
|
+
## Recommended study plan
|
|
166
|
+
1.
|
|
167
|
+
2.
|
|
168
|
+
3.
|
|
169
|
+
\`\`\`
|
|
170
|
+
|
|
171
|
+
Also update:
|
|
172
|
+
- \`.brainforge/study/file-map.md\` — add each file with difficulty and must-understand flag
|
|
173
|
+
- \`.brainforge/study/concepts-to-review.md\` — add key concepts
|
|
174
|
+
- \`.brainforge/memory/learning-notes.md\` — add files to understand section
|
|
175
|
+
`;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=difficulty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"difficulty.js","sourceRoot":"","sources":["../../src/commands/difficulty.ts"],"names":[],"mappings":";;;;;AAMA,8CAiDC;AAvDD,wDAA0B;AAC1B,gDAAwB;AACxB,kDAA0B;AAC1B,2CAA4E;AAC5E,4CAAyC;AAElC,KAAK,UAAU,iBAAiB;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAC,IAAA,qBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;QACvB,eAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,GAAG,CAAC,CAAC;IAEvC,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACjD,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,IAAI,CAAC,YAAY,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAE7E,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,gCAAgC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACrG,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,kBAAE,CAAC,SAAS,CAAC,WAAW,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAErG,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4DAA4D,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4DAA4D,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,gCAAgC,CAAC,WAAmB;IAC3D,OAAO,yBAAyB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC5C,CAAC;AACF,CAAC;AAED,SAAS,gCAAgC,CAAC,MAAsF;IAC9H,OAAO;;;;;;;;;;;;iBAYQ,MAAM,CAAC,WAAW;eACpB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClB,MAAM,CAAC,SAAS;oBAChB,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DnC,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAaA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAaA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA6InD"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -43,7 +43,7 @@ async function doctorCommand() {
|
|
|
43
43
|
checks.push({ label: 'config.json valid', ok: false, detail: String(e) });
|
|
44
44
|
}
|
|
45
45
|
// Required directories
|
|
46
|
-
const dirs = ['memory', 'phases', 'agents', 'commands', 'dashboard'];
|
|
46
|
+
const dirs = ['memory', 'phases', 'agents', 'commands', 'dashboard', 'reports'];
|
|
47
47
|
for (const dir of dirs) {
|
|
48
48
|
const exists = fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', dir));
|
|
49
49
|
checks.push({ label: `.brainforge/${dir}/`, ok: exists });
|
|
@@ -60,6 +60,58 @@ async function doctorCommand() {
|
|
|
60
60
|
const exists = fs_extra_1.default.existsSync(path_1.default.join(cwd, f));
|
|
61
61
|
checks.push({ label: `${f} in root`, ok: exists });
|
|
62
62
|
}
|
|
63
|
+
// Extended memory files
|
|
64
|
+
const extMemoryFiles = [
|
|
65
|
+
'memory/project-context.md',
|
|
66
|
+
'memory/constraints.md',
|
|
67
|
+
'memory/learning-notes.md',
|
|
68
|
+
];
|
|
69
|
+
for (const f of extMemoryFiles) {
|
|
70
|
+
const exists = fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', f));
|
|
71
|
+
checks.push({ label: `.brainforge/${f}`, ok: exists });
|
|
72
|
+
}
|
|
73
|
+
// Reports README
|
|
74
|
+
checks.push({
|
|
75
|
+
label: '.brainforge/reports/README.md',
|
|
76
|
+
ok: fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', 'reports', 'README.md')),
|
|
77
|
+
});
|
|
78
|
+
// v1.2 — Router agent
|
|
79
|
+
checks.push({
|
|
80
|
+
label: '.brainforge/agents/brainforge-router.md',
|
|
81
|
+
ok: fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', 'agents', 'brainforge-router.md')),
|
|
82
|
+
detail: fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', 'agents', 'brainforge-router.md'))
|
|
83
|
+
? undefined
|
|
84
|
+
: 'Run: brainforge update',
|
|
85
|
+
});
|
|
86
|
+
// v1.2 — Agents README
|
|
87
|
+
checks.push({
|
|
88
|
+
label: '.brainforge/agents/README.md',
|
|
89
|
+
ok: fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', 'agents', 'README.md')),
|
|
90
|
+
detail: fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', 'agents', 'README.md'))
|
|
91
|
+
? undefined
|
|
92
|
+
: 'Run: brainforge update',
|
|
93
|
+
});
|
|
94
|
+
// v1.2 — Study mode (recommended, not required)
|
|
95
|
+
const studyEnabled = fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', 'study'));
|
|
96
|
+
checks.push({
|
|
97
|
+
label: '.brainforge/study/ (Study Mode)',
|
|
98
|
+
ok: studyEnabled,
|
|
99
|
+
detail: studyEnabled ? undefined : 'Recommended: brainforge study',
|
|
100
|
+
});
|
|
101
|
+
// v1.2 — Defense pack report (recommended)
|
|
102
|
+
const defenseExists = fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', 'reports', 'defense-pack.md'));
|
|
103
|
+
checks.push({
|
|
104
|
+
label: '.brainforge/reports/defense-pack.md',
|
|
105
|
+
ok: defenseExists,
|
|
106
|
+
detail: defenseExists ? undefined : 'Recommended: brainforge defense-pack',
|
|
107
|
+
});
|
|
108
|
+
// v1.2 — Difficulty report (recommended)
|
|
109
|
+
const diffExists = fs_extra_1.default.existsSync(path_1.default.join(cwd, '.brainforge', 'reports', 'difficulty-report.md'));
|
|
110
|
+
checks.push({
|
|
111
|
+
label: '.brainforge/reports/difficulty-report.md',
|
|
112
|
+
ok: diffExists,
|
|
113
|
+
detail: diffExists ? undefined : 'Recommended: brainforge difficulty',
|
|
114
|
+
});
|
|
63
115
|
}
|
|
64
116
|
// Git repo
|
|
65
117
|
const hasGit = await (0, git_1.isGitRepo)(cwd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";;;;;AAaA,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAoEA,wBAAgB,WAAW,IAAI,IAAI,CAmGlC"}
|