midas-mcp 4.0.0 → 5.0.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/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +70 -22
- package/dist/analyzer.js.map +1 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +185 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +38 -0
- package/dist/config.js.map +1 -1
- package/dist/docs/WHY.md +168 -0
- package/dist/docs/examples/brainlift-example.md +87 -0
- package/dist/docs/examples/gameplan-example.md +230 -0
- package/dist/docs/examples/prd-example.md +170 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +32 -2
- package/dist/server.js.map +1 -1
- package/dist/state/phase.d.ts +32 -0
- package/dist/state/phase.d.ts.map +1 -1
- package/dist/state/phase.js +25 -21
- package/dist/state/phase.js.map +1 -1
- package/dist/tools/analyze.d.ts +5 -0
- package/dist/tools/analyze.d.ts.map +1 -1
- package/dist/tools/analyze.js +21 -0
- package/dist/tools/analyze.js.map +1 -1
- package/dist/tools/cleanup.d.ts +53 -0
- package/dist/tools/cleanup.d.ts.map +1 -0
- package/dist/tools/cleanup.js +170 -0
- package/dist/tools/cleanup.js.map +1 -0
- package/dist/tools/examples.d.ts +30 -0
- package/dist/tools/examples.d.ts.map +1 -0
- package/dist/tools/examples.js +65 -0
- package/dist/tools/examples.js.map +1 -0
- package/dist/tools/hotfix.d.ts +69 -0
- package/dist/tools/hotfix.d.ts.map +1 -0
- package/dist/tools/hotfix.js +174 -0
- package/dist/tools/hotfix.js.map +1 -0
- package/dist/tools/index.d.ts +6 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/scope.d.ts +50 -0
- package/dist/tools/scope.d.ts.map +1 -0
- package/dist/tools/scope.js +277 -0
- package/dist/tools/scope.js.map +1 -0
- package/dist/tools/validate-docs.d.ts +65 -0
- package/dist/tools/validate-docs.d.ts.map +1 -0
- package/dist/tools/validate-docs.js +196 -0
- package/dist/tools/validate-docs.js.map +1 -0
- package/dist/tools/verify.d.ts +22 -0
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +65 -1
- package/dist/tools/verify.js.map +1 -1
- package/dist/tracker.d.ts +36 -0
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +134 -0
- package/dist/tracker.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +165 -40
- package/dist/tui.js.map +1 -1
- package/docs/WHY.md +168 -0
- package/docs/examples/brainlift-example.md +87 -0
- package/docs/examples/gameplan-example.md +230 -0
- package/docs/examples/prd-example.md +170 -0
- package/package.json +1 -1
package/dist/config.js
CHANGED
|
@@ -14,6 +14,7 @@ export function loadConfig() {
|
|
|
14
14
|
if (!existsSync(CONFIG_FILE)) {
|
|
15
15
|
return {
|
|
16
16
|
provider: 'anthropic',
|
|
17
|
+
skillLevel: 'intermediate',
|
|
17
18
|
createdAt: new Date().toISOString(),
|
|
18
19
|
lastUsed: new Date().toISOString(),
|
|
19
20
|
};
|
|
@@ -25,11 +26,16 @@ export function loadConfig() {
|
|
|
25
26
|
if (!parsed.provider) {
|
|
26
27
|
parsed.provider = 'anthropic';
|
|
27
28
|
}
|
|
29
|
+
// Ensure skillLevel field exists (migration)
|
|
30
|
+
if (!parsed.skillLevel) {
|
|
31
|
+
parsed.skillLevel = 'intermediate';
|
|
32
|
+
}
|
|
28
33
|
return parsed;
|
|
29
34
|
}
|
|
30
35
|
catch {
|
|
31
36
|
return {
|
|
32
37
|
provider: 'anthropic',
|
|
38
|
+
skillLevel: 'intermediate',
|
|
33
39
|
createdAt: new Date().toISOString(),
|
|
34
40
|
lastUsed: new Date().toISOString(),
|
|
35
41
|
};
|
|
@@ -192,4 +198,36 @@ export function listConfiguredProviders() {
|
|
|
192
198
|
const providers = ['anthropic', 'openai', 'google', 'xai'];
|
|
193
199
|
return providers.filter(p => !!getProviderApiKey(p));
|
|
194
200
|
}
|
|
201
|
+
// ============================================================================
|
|
202
|
+
// SKILL LEVEL
|
|
203
|
+
// ============================================================================
|
|
204
|
+
export function getSkillLevel() {
|
|
205
|
+
const config = loadConfig();
|
|
206
|
+
return config.skillLevel;
|
|
207
|
+
}
|
|
208
|
+
export function setSkillLevel(level) {
|
|
209
|
+
const config = loadConfig();
|
|
210
|
+
config.skillLevel = level;
|
|
211
|
+
saveConfig(config);
|
|
212
|
+
}
|
|
213
|
+
export function cycleSkillLevel() {
|
|
214
|
+
const levels = ['beginner', 'intermediate', 'advanced'];
|
|
215
|
+
const current = getSkillLevel();
|
|
216
|
+
const currentIdx = levels.indexOf(current);
|
|
217
|
+
const nextIdx = (currentIdx + 1) % levels.length;
|
|
218
|
+
const next = levels[nextIdx];
|
|
219
|
+
setSkillLevel(next);
|
|
220
|
+
return next;
|
|
221
|
+
}
|
|
222
|
+
// Get description for skill level
|
|
223
|
+
export function getSkillLevelDescription(level) {
|
|
224
|
+
switch (level) {
|
|
225
|
+
case 'beginner':
|
|
226
|
+
return 'Verbose prompts with explanations and examples';
|
|
227
|
+
case 'intermediate':
|
|
228
|
+
return 'Balanced prompts with key context';
|
|
229
|
+
case 'advanced':
|
|
230
|
+
return 'Terse prompts, skip obvious steps';
|
|
231
|
+
}
|
|
232
|
+
}
|
|
195
233
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AA0BpD,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,eAAe,EAAE,CAAC;IAElB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,cAAc;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,2CAA2C;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC;QAChC,CAAC;QACD,6CAA6C;QAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,cAAc;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,eAAe,EAAE,CAAC;IAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAoB;IACpD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,iBAAiB,CAAC,QAAoB;IACpD,MAAM,OAAO,GAA+B;QAC1C,SAAS,EAAE,mBAAmB;QAC9B,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,aAAa;KACnB,CAAC;IAEF,sBAAsB;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,oBAAoB;IACpB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAC,eAAe,CAAC;QAChD,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC;QAC1C,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC;QAC1C,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC;QACpC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,iBAAiB,CAAC,QAAoB,EAAE,MAAc;IACpE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YAAE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC;YAAC,MAAM;QACzD,KAAK,QAAQ;YAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAAC,MAAM;QACnD,KAAK,QAAQ;YAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAAC,MAAM;QACnD,KAAK,KAAK;YAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;YAAC,MAAM;IAC/C,CAAC;IACD,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,cAAc,CAAC,QAAoB,EAAE,GAAW;IAC9D,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7D,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC;YACE,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,eAAe,CAAC,QAAoB;IAClD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC;QAC9F,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC;QACzE,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;QAC7E,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;QAC/D;YACE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YACjD,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE1B,IAAI,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACnD,OAAO,CAAC,SAAS,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;gBAC3E,OAAO,CAAC,SAAS,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,6BAA6B;IAC7B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,uBAAuB;IACrC,MAAM,SAAS,GAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC7C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAiB,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,wBAAwB,CAAC,KAAiB;IACxD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,UAAU;YACb,OAAO,gDAAgD,CAAC;QAC1D,KAAK,cAAc;YACjB,OAAO,mCAAmC,CAAC;QAC7C,KAAK,UAAU;YACb,OAAO,mCAAmC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
package/dist/docs/WHY.md
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Why Each Step Matters
|
|
2
|
+
|
|
3
|
+
The Golden Code methodology isn't arbitrary. Each phase and step exists because skipping it causes predictable failures.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## PLAN Phase (formerly Eagle Sight)
|
|
8
|
+
|
|
9
|
+
**Why plan before building?** Because code without context is just syntax. The AI doesn't know your domain, your constraints, or your users. You do.
|
|
10
|
+
|
|
11
|
+
### IDEA
|
|
12
|
+
**Why define the core idea first?**
|
|
13
|
+
Most projects fail not from bad code but from solving the wrong problem. Spending 10 minutes clarifying "what problem, who for, why now" saves days of building the wrong thing.
|
|
14
|
+
|
|
15
|
+
*Skip this and you'll build something nobody needs.*
|
|
16
|
+
|
|
17
|
+
### RESEARCH
|
|
18
|
+
**Why scan the landscape?**
|
|
19
|
+
Whatever you're building, someone has probably solved 80% of it already. Libraries exist. Patterns exist. Anti-patterns exist. Knowing what's out there prevents reinventing wheels and repeating known mistakes.
|
|
20
|
+
|
|
21
|
+
*Skip this and you'll build from scratch what exists in a npm package.*
|
|
22
|
+
|
|
23
|
+
### BRAINLIFT
|
|
24
|
+
**Why document your edge?**
|
|
25
|
+
AI has read the entire internet. You have something it doesn't: your specific context, your domain expertise, your edge cases. The brainlift captures what makes YOUR project different from the generic solution.
|
|
26
|
+
|
|
27
|
+
*Skip this and the AI will give you generic Stack Overflow answers.*
|
|
28
|
+
|
|
29
|
+
### PRD
|
|
30
|
+
**Why define requirements formally?**
|
|
31
|
+
"I'll know it when I see it" is the enemy of shipping. A PRD creates a contract with yourself: these features, these constraints, this scope. It's the difference between "done" and "endless tweaking."
|
|
32
|
+
|
|
33
|
+
*Skip this and you'll never finish because the finish line keeps moving.*
|
|
34
|
+
|
|
35
|
+
### GAMEPLAN
|
|
36
|
+
**Why plan the build order?**
|
|
37
|
+
Some things depend on other things. Authentication before protected routes. Database schema before queries. The gameplan sequences work so you're never blocked waiting for yourself.
|
|
38
|
+
|
|
39
|
+
*Skip this and you'll context-switch constantly, building things before their dependencies.*
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## BUILD Phase
|
|
44
|
+
|
|
45
|
+
**Why follow a 7-step cycle?** Because jumping straight to code is how you end up debugging for hours. Each step reduces the blast radius of mistakes.
|
|
46
|
+
|
|
47
|
+
### RULES
|
|
48
|
+
**Why read project rules first?**
|
|
49
|
+
Every project has conventions: naming patterns, forbidden dependencies, required patterns. Reading rules before coding prevents "works but doesn't fit" code that has to be rewritten.
|
|
50
|
+
|
|
51
|
+
*Skip this and you'll write code that breaks project conventions.*
|
|
52
|
+
|
|
53
|
+
### INDEX
|
|
54
|
+
**Why index the codebase?**
|
|
55
|
+
You can't extend what you don't understand. Indexing gives you the mental map: where things live, how they connect, what patterns are used. This prevents duplicate implementations and inconsistent patterns.
|
|
56
|
+
|
|
57
|
+
*Skip this and you'll add a new auth system when one already exists.*
|
|
58
|
+
|
|
59
|
+
### READ
|
|
60
|
+
**Why read specific files?**
|
|
61
|
+
Indexing shows structure. Reading shows implementation. Before touching a file, understand what's already there. This prevents breaking existing functionality and reveals extension points.
|
|
62
|
+
|
|
63
|
+
*Skip this and you'll overwrite working code or duplicate logic.*
|
|
64
|
+
|
|
65
|
+
### RESEARCH
|
|
66
|
+
**Why research before implementing?**
|
|
67
|
+
The right library or pattern can turn 200 lines into 5. Documentation reveals edge cases you'd otherwise discover in production. Research is cheap; debugging is expensive.
|
|
68
|
+
|
|
69
|
+
*Skip this and you'll hand-roll what a library does better.*
|
|
70
|
+
|
|
71
|
+
### IMPLEMENT
|
|
72
|
+
**Why write tests first?**
|
|
73
|
+
The test defines what "working" means before you write the code. Test-first forces clear thinking about inputs, outputs, and edge cases. It's faster than test-after because you catch misunderstandings early.
|
|
74
|
+
|
|
75
|
+
*Skip this and you'll write code that "works" until it doesn't.*
|
|
76
|
+
|
|
77
|
+
### TEST
|
|
78
|
+
**Why run all tests after changes?**
|
|
79
|
+
Your change might break something unrelated. Running the full suite catches regressions before they escape to production. Fast feedback means small fixes; slow feedback means archaeology.
|
|
80
|
+
|
|
81
|
+
*Skip this and you'll ship bugs that worked yesterday.*
|
|
82
|
+
|
|
83
|
+
### DEBUG
|
|
84
|
+
**Why use the Tornado cycle?**
|
|
85
|
+
When stuck, random changes make things worse. The Tornado (Research + Logs + Tests) systematically narrows possibilities. Research finds known issues. Logs reveal actual behavior. Tests prove fixes work.
|
|
86
|
+
|
|
87
|
+
*Skip this and you'll thrash for hours making random changes.*
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## SHIP Phase
|
|
92
|
+
|
|
93
|
+
**Why have a formal ship process?** Because "it works on my machine" is not deployment. Production has constraints, users, and consequences that dev doesn't.
|
|
94
|
+
|
|
95
|
+
### REVIEW
|
|
96
|
+
**Why review before deploying?**
|
|
97
|
+
Fresh eyes catch what tired eyes miss. Security flaws, performance issues, edge cases, unclear code. Review is cheaper than incident response.
|
|
98
|
+
|
|
99
|
+
*Skip this and you'll deploy vulnerabilities.*
|
|
100
|
+
|
|
101
|
+
### DEPLOY
|
|
102
|
+
**Why have a deploy process?**
|
|
103
|
+
Manual deployment is error-prone and unrepeatable. CI/CD ensures the same steps every time: build, test, stage, production. Rollback is possible because you know what changed.
|
|
104
|
+
|
|
105
|
+
*Skip this and you'll deploy differently each time, with different bugs.*
|
|
106
|
+
|
|
107
|
+
### MONITOR
|
|
108
|
+
**Why monitor after deploy?**
|
|
109
|
+
Users don't file bug reports. They leave. Monitoring reveals what's actually happening: errors, latency, usage patterns. You'll know about problems before users complain.
|
|
110
|
+
|
|
111
|
+
*Skip this and you'll find out about outages from angry tweets.*
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## GROW Phase
|
|
116
|
+
|
|
117
|
+
**Why iterate formally?** Because version 1 is never right. Growth comes from learning what users actually do, not what you imagined they'd do.
|
|
118
|
+
|
|
119
|
+
### MONITOR
|
|
120
|
+
**Why track production health?**
|
|
121
|
+
Real load reveals real problems. Memory leaks, slow queries, race conditions—all appear under production load. Continuous monitoring catches degradation before failure.
|
|
122
|
+
|
|
123
|
+
*Skip this and you'll discover problems when everything crashes.*
|
|
124
|
+
|
|
125
|
+
### COLLECT
|
|
126
|
+
**Why gather feedback systematically?**
|
|
127
|
+
Users have needs they can't articulate. Analytics show what they actually do. Reviews reveal pain points. Bug reports expose edge cases. Collecting all signals gives the full picture.
|
|
128
|
+
|
|
129
|
+
*Skip this and you'll guess what users want instead of knowing.*
|
|
130
|
+
|
|
131
|
+
### TRIAGE
|
|
132
|
+
**Why prioritize formally?**
|
|
133
|
+
Everything can't be priority 1. Impact vs. effort analysis ensures you fix the right things first. Quick wins build momentum. Critical bugs get immediate attention.
|
|
134
|
+
|
|
135
|
+
*Skip this and you'll work on whatever's loudest, not what matters.*
|
|
136
|
+
|
|
137
|
+
### RETROSPECT
|
|
138
|
+
**Why review the cycle?**
|
|
139
|
+
Teams repeat mistakes they don't acknowledge. Retrospectives surface what worked, what broke, what surprised. This knowledge compounds across iterations.
|
|
140
|
+
|
|
141
|
+
*Skip this and you'll make the same mistakes next cycle.*
|
|
142
|
+
|
|
143
|
+
### PLAN_NEXT
|
|
144
|
+
**Why scope the next iteration?**
|
|
145
|
+
Unbounded work never ships. Defining the next iteration's scope—hypothesis, success metrics, boundaries—creates a finish line. You can always do more iterations.
|
|
146
|
+
|
|
147
|
+
*Skip this and you'll never ship version 2 because it keeps growing.*
|
|
148
|
+
|
|
149
|
+
### LOOP
|
|
150
|
+
**Why return to PLAN with context?**
|
|
151
|
+
Each cycle teaches you something. Carrying that context forward means version 2 builds on version 1's lessons. The brainlift grows. The PRD evolves. The gameplan improves.
|
|
152
|
+
|
|
153
|
+
*Skip this and every version starts from zero knowledge.*
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## The Meta-Why
|
|
158
|
+
|
|
159
|
+
The Golden Code methodology exists because AI is powerful but directionless. It can generate infinite code, but code isn't the goal—working software that solves real problems is.
|
|
160
|
+
|
|
161
|
+
Every step in this process answers the same question: **"What does the AI need to know to help me effectively?"**
|
|
162
|
+
|
|
163
|
+
- PLAN answers: What are we building and why?
|
|
164
|
+
- BUILD answers: How do we build it correctly?
|
|
165
|
+
- SHIP answers: How do we get it to users safely?
|
|
166
|
+
- GROW answers: How do we make it better?
|
|
167
|
+
|
|
168
|
+
Skip any step and you're asking the AI to guess. It will guess wrong.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Brainlift Example: Task Management CLI
|
|
2
|
+
|
|
3
|
+
This is an example brainlift document for a command-line task management tool.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What I'm Building
|
|
8
|
+
|
|
9
|
+
A CLI tool for developers who manage tasks in the terminal. Think todoist but keyboard-driven, git-like commands, and local-first with optional sync.
|
|
10
|
+
|
|
11
|
+
## The Problem
|
|
12
|
+
|
|
13
|
+
Existing task managers are either:
|
|
14
|
+
- **Too heavy**: Notion, Asana, Jira - overkill for personal todos
|
|
15
|
+
- **Too simple**: iOS reminders, Apple Notes - no filtering, no priority, no due dates
|
|
16
|
+
- **Wrong interface**: Web-based or mobile-first when I live in the terminal
|
|
17
|
+
|
|
18
|
+
I want to type `task add "Fix auth bug" -p high -d tomorrow` without leaving my workflow.
|
|
19
|
+
|
|
20
|
+
## Who It's For
|
|
21
|
+
|
|
22
|
+
Developers who:
|
|
23
|
+
- Already live in the terminal
|
|
24
|
+
- Have tried and abandoned heavyweight project management tools
|
|
25
|
+
- Want keyboard-driven, fast, local-first task management
|
|
26
|
+
- Need basic features (priorities, due dates, tags) without complexity
|
|
27
|
+
|
|
28
|
+
**Not for**: Teams, non-technical users, people who want GUI, or enterprise.
|
|
29
|
+
|
|
30
|
+
## What I Know That AI Doesn't
|
|
31
|
+
|
|
32
|
+
### My workflow context
|
|
33
|
+
I switch between 5-10 projects daily. I need project-scoped task views but also a "today across all projects" view. This isn't obvious from the problem statement.
|
|
34
|
+
|
|
35
|
+
### Implementation constraints
|
|
36
|
+
Must work offline-first. Sync is nice-to-have but not blocking. I travel often without reliable internet.
|
|
37
|
+
|
|
38
|
+
### Prior art that failed for me
|
|
39
|
+
- Taskwarrior: Too complex, syntax is confusing
|
|
40
|
+
- Todo.txt: Too simple, no due date handling
|
|
41
|
+
- GitHub Issues: Wrong tool for personal tasks
|
|
42
|
+
|
|
43
|
+
### Non-obvious requirements
|
|
44
|
+
1. Import from existing task managers (at minimum: CSV)
|
|
45
|
+
2. Must handle recurring tasks (daily standup notes, weekly reviews)
|
|
46
|
+
3. Shell completion is mandatory - I won't use it without tab-complete
|
|
47
|
+
4. Sub-second response time for all operations
|
|
48
|
+
|
|
49
|
+
## Key Decisions Already Made
|
|
50
|
+
|
|
51
|
+
- **Language**: Rust. Fast startup, single binary, easy distribution
|
|
52
|
+
- **Storage**: SQLite. Familiar, portable, handles my scale (thousands of tasks)
|
|
53
|
+
- **Config**: TOML in ~/.config/task/. Standard XDG paths
|
|
54
|
+
- **Output**: Colorized terminal tables, with --json for scripting
|
|
55
|
+
|
|
56
|
+
## Unknowns to Research
|
|
57
|
+
|
|
58
|
+
- Best approach for optional cloud sync without server maintenance
|
|
59
|
+
- How to handle recurring task recurrence rules (RRULE vs simpler?)
|
|
60
|
+
- Whether to support time-based reminders (requires daemon?)
|
|
61
|
+
|
|
62
|
+
## Success Looks Like
|
|
63
|
+
|
|
64
|
+
In 2 weeks:
|
|
65
|
+
- `task add/list/done/edit` working with priorities and due dates
|
|
66
|
+
- Tab completion for zsh/bash/fish
|
|
67
|
+
- Feels faster than opening any web app
|
|
68
|
+
|
|
69
|
+
In 1 month:
|
|
70
|
+
- Recurring tasks
|
|
71
|
+
- Basic filtering (`task list --due today --priority high`)
|
|
72
|
+
- Import from common formats
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Why This Document Matters
|
|
77
|
+
|
|
78
|
+
Without this brainlift:
|
|
79
|
+
- AI would suggest building a React web app (wrong interface)
|
|
80
|
+
- AI wouldn't know about my offline-first constraint
|
|
81
|
+
- AI might over-engineer sync before basics work
|
|
82
|
+
- AI wouldn't understand the "5-10 projects daily" context
|
|
83
|
+
|
|
84
|
+
With this brainlift, AI prompts can be specific:
|
|
85
|
+
- "Create the SQLite schema for tasks with project scoping"
|
|
86
|
+
- "Add --json flag to all output for scripting"
|
|
87
|
+
- "Implement recurring tasks using a simplified RRULE subset"
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# Gameplan Example: Task Management CLI
|
|
2
|
+
|
|
3
|
+
This is an example gameplan for building the task management CLI.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Tech Stack
|
|
8
|
+
|
|
9
|
+
| Component | Choice | Rationale |
|
|
10
|
+
|-----------|--------|-----------|
|
|
11
|
+
| Language | Rust | Fast startup, single binary, great CLI ecosystem |
|
|
12
|
+
| Database | SQLite + rusqlite | Embedded, zero config, handles my scale |
|
|
13
|
+
| CLI Framework | clap | Standard, derive macros, built-in completions |
|
|
14
|
+
| Output | tabled + colored | Clean tables, cross-platform color |
|
|
15
|
+
| Config | toml + directories | Standard config format, XDG paths |
|
|
16
|
+
| Testing | cargo test + assert_cmd | Built-in + CLI integration tests |
|
|
17
|
+
|
|
18
|
+
## Project Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
task-cli/
|
|
22
|
+
├── src/
|
|
23
|
+
│ ├── main.rs # Entry point, CLI routing
|
|
24
|
+
│ ├── cli.rs # Clap command definitions
|
|
25
|
+
│ ├── commands/ # Command implementations
|
|
26
|
+
│ │ ├── add.rs
|
|
27
|
+
│ │ ├── list.rs
|
|
28
|
+
│ │ ├── done.rs
|
|
29
|
+
│ │ ├── edit.rs
|
|
30
|
+
│ │ └── mod.rs
|
|
31
|
+
│ ├── db/ # Database operations
|
|
32
|
+
│ │ ├── schema.rs # SQL schema, migrations
|
|
33
|
+
│ │ ├── tasks.rs # Task CRUD
|
|
34
|
+
│ │ └── mod.rs
|
|
35
|
+
│ ├── models/ # Data structures
|
|
36
|
+
│ │ ├── task.rs
|
|
37
|
+
│ │ ├── priority.rs
|
|
38
|
+
│ │ └── mod.rs
|
|
39
|
+
│ └── output/ # Display formatting
|
|
40
|
+
│ ├── table.rs
|
|
41
|
+
│ ├── json.rs
|
|
42
|
+
│ └── mod.rs
|
|
43
|
+
├── tests/ # Integration tests
|
|
44
|
+
├── Cargo.toml
|
|
45
|
+
└── README.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Implementation Order
|
|
49
|
+
|
|
50
|
+
Order is critical. Each phase builds on the previous.
|
|
51
|
+
|
|
52
|
+
### Phase 1: Foundation (Days 1-2)
|
|
53
|
+
|
|
54
|
+
**Goal**: Skeleton that compiles and stores data
|
|
55
|
+
|
|
56
|
+
1. **Project setup**
|
|
57
|
+
- `cargo new task-cli`
|
|
58
|
+
- Add dependencies (clap, rusqlite, serde, toml)
|
|
59
|
+
- Create module structure
|
|
60
|
+
|
|
61
|
+
2. **Database schema**
|
|
62
|
+
```sql
|
|
63
|
+
CREATE TABLE tasks (
|
|
64
|
+
id INTEGER PRIMARY KEY,
|
|
65
|
+
title TEXT NOT NULL,
|
|
66
|
+
priority TEXT DEFAULT 'medium',
|
|
67
|
+
due_date TEXT,
|
|
68
|
+
project TEXT,
|
|
69
|
+
tags TEXT,
|
|
70
|
+
completed INTEGER DEFAULT 0,
|
|
71
|
+
created_at TEXT NOT NULL,
|
|
72
|
+
updated_at TEXT NOT NULL
|
|
73
|
+
);
|
|
74
|
+
```
|
|
75
|
+
- Schema creation on first run
|
|
76
|
+
- DB path resolution (XDG)
|
|
77
|
+
|
|
78
|
+
3. **Basic CLI structure**
|
|
79
|
+
- Parse `task add "title"`
|
|
80
|
+
- Parse `task list`
|
|
81
|
+
- No actual implementation yet
|
|
82
|
+
|
|
83
|
+
**Exit criteria**: `cargo run -- add "test"` creates a row in SQLite.
|
|
84
|
+
|
|
85
|
+
### Phase 2: Core CRUD (Days 3-5)
|
|
86
|
+
|
|
87
|
+
**Goal**: All four commands work with minimal options
|
|
88
|
+
|
|
89
|
+
4. **Add command**
|
|
90
|
+
- Accept title, --priority, --due, --project
|
|
91
|
+
- Parse relative dates ("tomorrow", "friday")
|
|
92
|
+
- Insert into database
|
|
93
|
+
- Return task ID
|
|
94
|
+
|
|
95
|
+
5. **List command**
|
|
96
|
+
- Query all incomplete tasks
|
|
97
|
+
- Basic table output
|
|
98
|
+
- Sort by due date, then priority
|
|
99
|
+
|
|
100
|
+
6. **Done command**
|
|
101
|
+
- Accept task ID
|
|
102
|
+
- Mark as completed
|
|
103
|
+
- Confirm with message
|
|
104
|
+
|
|
105
|
+
7. **Edit command**
|
|
106
|
+
- Accept task ID
|
|
107
|
+
- Update any field
|
|
108
|
+
- Show before/after
|
|
109
|
+
|
|
110
|
+
**Exit criteria**: Full add → list → edit → done flow works.
|
|
111
|
+
|
|
112
|
+
### Phase 3: Filtering & Output (Days 6-8)
|
|
113
|
+
|
|
114
|
+
**Goal**: Useful queries, multiple output formats
|
|
115
|
+
|
|
116
|
+
8. **Filtering**
|
|
117
|
+
- `--due today|tomorrow|week|overdue`
|
|
118
|
+
- `--priority high|medium|low`
|
|
119
|
+
- `--project <name>`
|
|
120
|
+
- `--tag <name>`
|
|
121
|
+
- Combine filters with AND logic
|
|
122
|
+
|
|
123
|
+
9. **Output formats**
|
|
124
|
+
- Colorized table (default)
|
|
125
|
+
- `--json` for scripting
|
|
126
|
+
- `--no-color` for piping
|
|
127
|
+
- `--quiet` for scripts (ID only)
|
|
128
|
+
|
|
129
|
+
10. **Sorting**
|
|
130
|
+
- `--sort due|priority|created`
|
|
131
|
+
- `--reverse` flag
|
|
132
|
+
|
|
133
|
+
**Exit criteria**: `task list --due today --priority high --json` works.
|
|
134
|
+
|
|
135
|
+
### Phase 4: Polish (Days 9-11)
|
|
136
|
+
|
|
137
|
+
**Goal**: Production-ready CLI UX
|
|
138
|
+
|
|
139
|
+
11. **Shell completions**
|
|
140
|
+
- Generate for bash, zsh, fish
|
|
141
|
+
- Include in build artifacts
|
|
142
|
+
- Document installation
|
|
143
|
+
|
|
144
|
+
12. **Error handling**
|
|
145
|
+
- Friendly error messages
|
|
146
|
+
- Consistent exit codes
|
|
147
|
+
- --debug flag for troubleshooting
|
|
148
|
+
|
|
149
|
+
13. **Help & docs**
|
|
150
|
+
- Command help text
|
|
151
|
+
- Man page generation
|
|
152
|
+
- README with examples
|
|
153
|
+
|
|
154
|
+
**Exit criteria**: Someone else can install and use it.
|
|
155
|
+
|
|
156
|
+
### Phase 5: Advanced Features (Days 12-14)
|
|
157
|
+
|
|
158
|
+
**Goal**: Recurring tasks, import/export
|
|
159
|
+
|
|
160
|
+
14. **Recurring tasks**
|
|
161
|
+
- `--recur daily|weekly|monthly`
|
|
162
|
+
- Store recurrence rule
|
|
163
|
+
- Create next instance on completion
|
|
164
|
+
|
|
165
|
+
15. **Import/Export**
|
|
166
|
+
- Import from CSV (title, due, priority)
|
|
167
|
+
- Export to JSON
|
|
168
|
+
- Backup/restore workflow
|
|
169
|
+
|
|
170
|
+
**Exit criteria**: Can migrate from todo.txt or CSV.
|
|
171
|
+
|
|
172
|
+
## Risks & Mitigations
|
|
173
|
+
|
|
174
|
+
| Risk | Impact | Mitigation |
|
|
175
|
+
|------|--------|------------|
|
|
176
|
+
| Date parsing complexity | Medium | Use chrono-english, limit to common formats |
|
|
177
|
+
| Shell completion setup is confusing | Low | Document clearly, provide install script |
|
|
178
|
+
| SQLite concurrent access | Low | Single-user tool, use WAL mode |
|
|
179
|
+
| Scope creep (sync, teams) | High | Defer to v2, stick to PRD non-goals |
|
|
180
|
+
|
|
181
|
+
## Dependencies
|
|
182
|
+
|
|
183
|
+
```toml
|
|
184
|
+
[dependencies]
|
|
185
|
+
clap = { version = "4", features = ["derive", "env"] }
|
|
186
|
+
rusqlite = { version = "0.31", features = ["bundled"] }
|
|
187
|
+
serde = { version = "1", features = ["derive"] }
|
|
188
|
+
serde_json = "1"
|
|
189
|
+
toml = "0.8"
|
|
190
|
+
chrono = "0.4"
|
|
191
|
+
chrono-english = "0.1"
|
|
192
|
+
tabled = "0.15"
|
|
193
|
+
colored = "2"
|
|
194
|
+
directories = "5"
|
|
195
|
+
thiserror = "1"
|
|
196
|
+
|
|
197
|
+
[dev-dependencies]
|
|
198
|
+
assert_cmd = "2"
|
|
199
|
+
predicates = "3"
|
|
200
|
+
tempfile = "3"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Time Estimates
|
|
204
|
+
|
|
205
|
+
| Phase | Days | Cumulative |
|
|
206
|
+
|-------|------|------------|
|
|
207
|
+
| Foundation | 2 | 2 |
|
|
208
|
+
| Core CRUD | 3 | 5 |
|
|
209
|
+
| Filtering & Output | 3 | 8 |
|
|
210
|
+
| Polish | 3 | 11 |
|
|
211
|
+
| Advanced | 3 | 14 |
|
|
212
|
+
|
|
213
|
+
**Buffer**: 2 days for unexpected issues.
|
|
214
|
+
**Total**: ~2 weeks to v1.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Why This Document Matters
|
|
219
|
+
|
|
220
|
+
Without this gameplan:
|
|
221
|
+
- Would build features in wrong order (polish before core works)
|
|
222
|
+
- No clear daily goals
|
|
223
|
+
- Dependencies would be ad-hoc, possibly wrong
|
|
224
|
+
- Time estimates would be guesses
|
|
225
|
+
|
|
226
|
+
With this gameplan:
|
|
227
|
+
- Clear sequence: foundation → CRUD → filtering → polish → advanced
|
|
228
|
+
- Each phase has exit criteria
|
|
229
|
+
- AI can suggest next task in sequence
|
|
230
|
+
- Risks are acknowledged upfront
|