buildpartner 0.3.19 → 0.4.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/bin/cli.js +6 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/commands/login.d.ts +7 -0
- package/dist/src/commands/login.js +60 -0
- package/dist/src/commands/login.js.map +1 -0
- package/dist/src/commands/setup.js +8 -8
- package/dist/src/commands/setup.js.map +1 -1
- package/dist/src/installer/skill-installer.js +1 -1
- package/dist/src/installer/skill-installer.js.map +1 -1
- package/dist/src/installer/skill-sync.js +4 -0
- package/dist/src/installer/skill-sync.js.map +1 -1
- package/dist/src/mcp/server.js +9 -4
- package/dist/src/mcp/server.js.map +1 -1
- package/package.json +1 -1
- package/skills/bp-claude-coach/SKILL.md +314 -0
- package/skills/bp-generate-personalized-training-data/SKILL.md +145 -0
- package/skills/bp-interview-me/SKILL.md +120 -0
- package/skills/bp-log-experience/SKILL.md +1 -1
- package/skills/bp-quest-status/SKILL.md +4 -4
- package/skills/{bp-video-ideation → bp-youtube-ideation}/SKILL.md +2 -2
- package/skills/bp-youtube-script/SKILL.md +2 -2
package/dist/bin/cli.js
CHANGED
|
@@ -22,6 +22,11 @@ async function main() {
|
|
|
22
22
|
await sync();
|
|
23
23
|
break;
|
|
24
24
|
}
|
|
25
|
+
case "login": {
|
|
26
|
+
const { login } = await import("../src/commands/login.js");
|
|
27
|
+
await login();
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
25
30
|
default:
|
|
26
31
|
console.log(`
|
|
27
32
|
BuildPartner - Your AI Build Partner
|
|
@@ -29,6 +34,7 @@ async function main() {
|
|
|
29
34
|
Usage:
|
|
30
35
|
buildpartner setup Interactive setup + backfill
|
|
31
36
|
buildpartner setup --token X Pre-authenticated setup
|
|
37
|
+
buildpartner login <token> Connect existing account on new machine
|
|
32
38
|
buildpartner serve Start MCP server
|
|
33
39
|
buildpartner sync Re-sync all sessions to server
|
|
34
40
|
buildpartner log-session Log current session (hook)
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AAEA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC3D,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC3D,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;YACtE,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACzD,MAAM,IAAI,EAAE,CAAC;YACb,MAAM;QACR,CAAC;QACD;YACE,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AAEA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC3D,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC3D,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;YACtE,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACzD,MAAM,IAAI,EAAE,CAAC;YACb,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC3D,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,CAAC;QACD;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;CAUjB,CAAC,CAAC;IACD,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `buildpartner login <token>` - Connect an existing account on a new machine.
|
|
3
|
+
*
|
|
4
|
+
* Takes an sk_ token (provided by the dashboard after OTP verification),
|
|
5
|
+
* verifies it against the API, and saves it locally.
|
|
6
|
+
*/
|
|
7
|
+
export declare function login(): Promise<void>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `buildpartner login <token>` - Connect an existing account on a new machine.
|
|
3
|
+
*
|
|
4
|
+
* Takes an sk_ token (provided by the dashboard after OTP verification),
|
|
5
|
+
* verifies it against the API, and saves it locally.
|
|
6
|
+
*/
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
import { writeAuth } from "../store/local-store.js";
|
|
9
|
+
import { API_BASE } from "../api-client.js";
|
|
10
|
+
const orange = chalk.hex("#E47025");
|
|
11
|
+
export async function login() {
|
|
12
|
+
const token = process.argv[3];
|
|
13
|
+
if (!token || !token.startsWith("sk_")) {
|
|
14
|
+
console.log();
|
|
15
|
+
console.log(chalk.red(" ✗ Missing or invalid token."));
|
|
16
|
+
console.log();
|
|
17
|
+
console.log(" Usage: npx buildpartner login sk_your_token_here");
|
|
18
|
+
console.log();
|
|
19
|
+
console.log(chalk.dim(" Get your token by signing in at:"));
|
|
20
|
+
console.log(chalk.dim(` ${API_BASE}/dashboard/login`));
|
|
21
|
+
console.log();
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
console.log();
|
|
25
|
+
console.log(chalk.dim(" Verifying token..."));
|
|
26
|
+
try {
|
|
27
|
+
const res = await fetch(`${API_BASE}/api/buildpartner/verify-token`, {
|
|
28
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
29
|
+
signal: AbortSignal.timeout(10000),
|
|
30
|
+
});
|
|
31
|
+
if (!res.ok) {
|
|
32
|
+
console.log(chalk.red(" ✗ Invalid token. It may have expired or been reset."));
|
|
33
|
+
console.log();
|
|
34
|
+
console.log(chalk.dim(" Sign in again at:"));
|
|
35
|
+
console.log(chalk.dim(` ${API_BASE}/dashboard/login`));
|
|
36
|
+
console.log();
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
const data = await res.json();
|
|
40
|
+
writeAuth({
|
|
41
|
+
email: data.email,
|
|
42
|
+
username: data.username,
|
|
43
|
+
token,
|
|
44
|
+
profile_url: data.profile_url || `buildpartner.ai/${data.username}`,
|
|
45
|
+
created_at: data.created_at || new Date().toISOString(),
|
|
46
|
+
});
|
|
47
|
+
console.log(chalk.green(` ✓ Logged in as ${data.email}`));
|
|
48
|
+
console.log();
|
|
49
|
+
console.log(orange(" You're all set. Paste this into Claude Code to get started:"));
|
|
50
|
+
console.log();
|
|
51
|
+
console.log(` ${orange("/bp-claude-coach")}`);
|
|
52
|
+
console.log();
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
console.log(chalk.red(" ✗ Could not reach buildpartner.ai. Check your connection and try again."));
|
|
56
|
+
console.log();
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,12 +112,12 @@ export async function setup() {
|
|
|
112
112
|
const skillCount = installedSkills.length;
|
|
113
113
|
if (skillCount > 0) {
|
|
114
114
|
// Highlight key skills
|
|
115
|
+
const hasClaudeCoach = installedSkills.includes("bp-claude-coach");
|
|
115
116
|
const hasExpertAdvice = installedSkills.includes("bp-expert-advice");
|
|
116
|
-
|
|
117
|
+
if (hasClaudeCoach)
|
|
118
|
+
console.log(chalk.green(` ✓ ${skillCommand("claude-coach")} (review your Claude Code setup)`));
|
|
117
119
|
if (hasExpertAdvice)
|
|
118
120
|
console.log(chalk.green(` ✓ ${skillCommand("expert-advice")} (expert advice on any topic)`));
|
|
119
|
-
if (hasInterview)
|
|
120
|
-
console.log(chalk.green(` ✓ ${skillCommand("interview")} (build your training data)`));
|
|
121
121
|
console.log(chalk.green(` ✓ ${skillCount} skills total`));
|
|
122
122
|
}
|
|
123
123
|
else {
|
|
@@ -171,14 +171,14 @@ export async function setup() {
|
|
|
171
171
|
}
|
|
172
172
|
// Single CTA
|
|
173
173
|
const env = detectEnvironment();
|
|
174
|
-
const coachCmd = skillCommand("
|
|
174
|
+
const coachCmd = skillCommand("claude-coach");
|
|
175
175
|
console.log(orange(" ╭──────────────────────────────────────────────╮\n" +
|
|
176
176
|
" │ │\n" +
|
|
177
|
-
` │ You're all set.
|
|
177
|
+
` │ ${padRight("You're all set.", 44)}│\n` +
|
|
178
178
|
" │ │\n" +
|
|
179
|
-
` │ ${padRight(`${sessionEntries.length} sessions found`,
|
|
180
|
-
` │ ${padRight(`${skillCount} skills installed`,
|
|
181
|
-
` │ ${padRight(
|
|
179
|
+
` │ ${padRight(`${sessionEntries.length} sessions found`, 44)}│\n` +
|
|
180
|
+
` │ ${padRight(`${skillCount} skills installed`, 44)}│\n` +
|
|
181
|
+
` │ ${padRight("Auto-tracking enabled", 44)}│\n` +
|
|
182
182
|
" │ │\n" +
|
|
183
183
|
" ╰──────────────────────────────────────────────╯"));
|
|
184
184
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const __dirname = dirname(__filename);
|
|
|
8
8
|
// Package root = 3 levels up from there
|
|
9
9
|
const PACKAGE_ROOT = join(__dirname, "..", "..", "..");
|
|
10
10
|
const GLOBAL_SKILLS_DIR = join(homedir(), ".claude", "skills");
|
|
11
|
-
const SKILLS = ["bp-expert-advice", "bp-
|
|
11
|
+
const SKILLS = ["bp-expert-advice", "bp-claude-coach", "bp-interview-me", "bp-generate-personalized-training-data", "bp-open-dashboard"];
|
|
12
12
|
/**
|
|
13
13
|
* Find the source skills directory from the package.
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-installer.js","sourceRoot":"","sources":["../../../src/installer/skill-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,oDAAoD;AACpD,wCAAwC;AACxC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE/D,MAAM,MAAM,GAAG,CAAC,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"skill-installer.js","sourceRoot":"","sources":["../../../src/installer/skill-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,oDAAoD;AACpD,wCAAwC;AACxC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE/D,MAAM,MAAM,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,wCAAwC,EAAE,mBAAmB,CAAC,CAAC;AAEzI;;GAEG;AACH,SAAS,gBAAgB;IACvB,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;KAClD,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,SAAiB,EAAE,SAAiB;IACxD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEvC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,OAAO,YAAY,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -57,6 +57,10 @@ export async function syncSkills() {
|
|
|
57
57
|
}
|
|
58
58
|
// Write updated skills to disk
|
|
59
59
|
for (const skill of data.skills) {
|
|
60
|
+
// Validate skill name: must be bp-<word> with no path separators
|
|
61
|
+
if (!/^bp-[a-z0-9-]+$/.test(skill.name)) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
60
64
|
const skillDir = join(SKILLS_DIR, skill.name);
|
|
61
65
|
const skillPath = join(skillDir, "SKILL.md");
|
|
62
66
|
mkdirSync(skillDir, { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-sync.js","sourceRoot":"","sources":["../../../src/installer/skill-sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-sync.js","sourceRoot":"","sources":["../../../src/installer/skill-sync.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mcp/server.js
CHANGED
|
@@ -60,7 +60,7 @@ function jsonCoerce(val) {
|
|
|
60
60
|
export function createServer() {
|
|
61
61
|
const server = new McpServer({ name: "buildpartner", version: "0.3.0" });
|
|
62
62
|
server.tool("get_personal_context", "Get your personal context: stats, AI profile, workspace, subscription status, and optionally recent session history. This is the main data source for most skills.", {
|
|
63
|
-
include_sessions: z.boolean().optional().describe("Include last 30 session summaries. Use for skills that need session history (
|
|
63
|
+
include_sessions: z.boolean().optional().describe("Include last 30 session summaries. Use for skills that need session history (claude-coach, recap, interview-me). Omit for lighter payload."),
|
|
64
64
|
}, async ({ include_sessions }) => {
|
|
65
65
|
const queryString = include_sessions ? "?include_sessions=true" : "";
|
|
66
66
|
const res = await apiFetch(`/api/buildpartner/context${queryString}`);
|
|
@@ -117,14 +117,19 @@ export function createServer() {
|
|
|
117
117
|
return textResponse(JSON.stringify({ error: "Could not fetch quest progress." }));
|
|
118
118
|
return textResponse(JSON.stringify(result, null, 2));
|
|
119
119
|
});
|
|
120
|
-
server.tool("check_status", "
|
|
121
|
-
skill_name: z.string().describe("The skill that just ran (e.g., 'bp-
|
|
120
|
+
server.tool("check_status", "Internal bookkeeping. Every skill should call this as its final step. Do NOT show the raw result to the user. Only mention something if the response contains quest_completed (celebrate it and push the next quest command), a suggestion (casually mention it), or reminders (show them). If the response is just {status: ok}, say nothing about it.", {
|
|
121
|
+
skill_name: z.string().describe("The skill that just ran (e.g., 'bp-claude-coach', 'bp-interview-me')"),
|
|
122
122
|
session_context: z.string().optional().describe("Brief description of what the session involved"),
|
|
123
123
|
}, async ({ skill_name, session_context }) => {
|
|
124
124
|
const cli_version = getCliVersion();
|
|
125
125
|
const result = await apiPost("/api/buildpartner/check-status", { skill_name, session_context, cli_version });
|
|
126
126
|
if (!result)
|
|
127
|
-
return textResponse(
|
|
127
|
+
return textResponse("ok");
|
|
128
|
+
// Only return detail when there's something worth showing
|
|
129
|
+
const hasContent = result.quest_completed || result.suggestion || result.limit_reached
|
|
130
|
+
|| (Array.isArray(result.reminders) && result.reminders.length > 0);
|
|
131
|
+
if (!hasContent)
|
|
132
|
+
return textResponse("ok");
|
|
128
133
|
return textResponse(JSON.stringify(result, null, 2));
|
|
129
134
|
});
|
|
130
135
|
return server;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,yCAAyC;AACzC,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AAC/B,CAAC;AAED,+CAA+C;AAC/C,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAExF,oEAAoE;AACpE,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,sEAAsE,CAAC;IAClG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,8FAA8F,CAAC;IAC1H,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,0CAA0C;IACzE,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,iEAAiE,CAAC;IAC7F,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,6HAA6H,CAAC;IACxJ,OAAO,yBAAyB,MAAM,wEAAwE,CAAC;AACjH,CAAC;AAED,6FAA6F;AAC7F,SAAS,UAAU,CAAI,GAAY;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAEzE,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,oKAAoK,EACpK;QACE,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Your Claude Code coach. Reviews your setup, analyzes your habits, and gives you a prioritized action plan. Run it regularly to keep improving."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /bp-claude-coach
|
|
6
|
+
|
|
7
|
+
Your Claude Code coach. Reviews your setup, analyzes your habits, and gives you a prioritized action plan. Run it regularly to keep improving.
|
|
8
|
+
|
|
9
|
+
## MCP Tools
|
|
10
|
+
|
|
11
|
+
Only call tools that are registered on the `buildpartner` MCP server. If a tool call fails or a tool name isn't recognized, do not retry with a different name. The available tools are: `get_personal_context`, `get_expert_knowledge`, `save_profile`, `get_quest_progress`, `check_status`.
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
|
|
15
|
+
- Only recommend BuildPartner skills (commands starting with `/bp-`). Do not recommend built-in Claude Code skills like /simplify, /review, etc.
|
|
16
|
+
- Do not display subscription status, trial info, or uses remaining. The system handles that separately.
|
|
17
|
+
- Every finding must be backed by data from their sessions or files. Don't suggest generic improvements.
|
|
18
|
+
- "Fix" actions should be specific enough to copy-paste or act on immediately.
|
|
19
|
+
- If a fix is something you can do right now (edit CLAUDE.md, create a skill), offer to do it.
|
|
20
|
+
- Always include "What's Working Well" so it doesn't feel like a list of failures.
|
|
21
|
+
|
|
22
|
+
## Instructions
|
|
23
|
+
|
|
24
|
+
1. Call `get_personal_context` with `{ "include_sessions": true }`.
|
|
25
|
+
|
|
26
|
+
2. Determine which mode to run based on their data:
|
|
27
|
+
|
|
28
|
+
- **< 5 sessions (or no session data)**: Run **Onboarding Mode** (see below)
|
|
29
|
+
- **5+ sessions, no previous coaching**: This is their **first coached review**. Ask quick vs deep.
|
|
30
|
+
- **5+ sessions, has coaching history**: This is a **return visit**. Mention previous recommendations.
|
|
31
|
+
|
|
32
|
+
For first coached review, ask:
|
|
33
|
+
> "Want a quick review or a deep dive?"
|
|
34
|
+
> - **Quick**: I'll check your setup, recent sessions, and give you 3 things to fix this week.
|
|
35
|
+
> - **Deep**: I'll read every config file, audit your full environment, and give you a prioritized action plan.
|
|
36
|
+
|
|
37
|
+
For return visits, also mention:
|
|
38
|
+
> "Last time I suggested: {previous recommendations}. Want me to check how you're doing on those, or start fresh?"
|
|
39
|
+
|
|
40
|
+
### Quick Review
|
|
41
|
+
|
|
42
|
+
Analyze from the session data and context returned by `get_personal_context`:
|
|
43
|
+
|
|
44
|
+
- **Usage patterns**: What tools do they lean on vs. underuse? Are sessions getting shorter or longer?
|
|
45
|
+
- **Skill usage**: Which BuildPartner skills have they tried? What haven't they touched?
|
|
46
|
+
- **Workflow signals**: Do they use Plan mode? Agents? Hooks? Parallel sessions?
|
|
47
|
+
- **Recent prompts**: What are they asking Claude to do? Any repeated patterns that could be automated?
|
|
48
|
+
|
|
49
|
+
Output exactly 3 action items, ranked by impact.
|
|
50
|
+
|
|
51
|
+
### Deep Dive
|
|
52
|
+
|
|
53
|
+
Read and audit every layer of their setup. For each layer, read the relevant files and cross-reference with their session history.
|
|
54
|
+
|
|
55
|
+
#### Layer 1: CLAUDE.md
|
|
56
|
+
|
|
57
|
+
Read `~/.claude/CLAUDE.md` (global) and any project-level CLAUDE.md.
|
|
58
|
+
|
|
59
|
+
Check:
|
|
60
|
+
- Are there rules? If empty or missing, that's a high-priority finding.
|
|
61
|
+
- Do the rules match what they actually do? (Compare rules to session patterns)
|
|
62
|
+
- Are rules too generic? ("Write clean code" is useless)
|
|
63
|
+
- Are rules too long? (Best CLAUDE.md files are under 30 lines)
|
|
64
|
+
- Missing rules they need based on their tech stack and patterns
|
|
65
|
+
|
|
66
|
+
#### Layer 2: MCP Servers
|
|
67
|
+
|
|
68
|
+
Read `~/.claude/mcp_servers.json` (or the equivalent config).
|
|
69
|
+
|
|
70
|
+
Check:
|
|
71
|
+
- What MCP servers are configured?
|
|
72
|
+
- Are they using database tools manually when an MCP server could handle it? (Look for SQL in Bash commands in session history)
|
|
73
|
+
- Are there MCP servers configured but never used? (Compare config to session tool_counts)
|
|
74
|
+
- Missing MCP servers based on their workflow
|
|
75
|
+
|
|
76
|
+
#### Layer 3: Skills
|
|
77
|
+
|
|
78
|
+
Read all skills in `~/.claude/skills/`.
|
|
79
|
+
|
|
80
|
+
Check:
|
|
81
|
+
- How many custom skills do they have (non-BuildPartner)?
|
|
82
|
+
- Which BuildPartner skills have they used vs not used?
|
|
83
|
+
- Are there custom skills that are stale or broken?
|
|
84
|
+
- Could they benefit from creating skills for repeated workflows? (Look for patterns in session history)
|
|
85
|
+
|
|
86
|
+
#### Layer 4: Hooks
|
|
87
|
+
|
|
88
|
+
Check `~/.claude/settings.json` and project-level settings for hooks.
|
|
89
|
+
|
|
90
|
+
Check:
|
|
91
|
+
- Are any hooks configured?
|
|
92
|
+
- Is the BuildPartner tracking hook installed?
|
|
93
|
+
- Could they benefit from pre/post hooks?
|
|
94
|
+
|
|
95
|
+
#### Layer 5: Knowledge and Context
|
|
96
|
+
|
|
97
|
+
Check for knowledge folders:
|
|
98
|
+
- `~/.buildpartner/knowledge/experiences/` - do they have logged experiences?
|
|
99
|
+
- Project-level `knowledge/`, `context/`, `docs/` folders
|
|
100
|
+
- `.claude/` project configuration
|
|
101
|
+
|
|
102
|
+
#### Layer 6: Workflow Patterns
|
|
103
|
+
|
|
104
|
+
From session history, identify:
|
|
105
|
+
- Do they use Plan mode? If not and they should, flag it.
|
|
106
|
+
- Do they run parallel sessions?
|
|
107
|
+
- Do they use agents/subagents?
|
|
108
|
+
- How long are their sessions? (Short = tactical, Long = could benefit from planning)
|
|
109
|
+
- Do they commit frequently or in big batches?
|
|
110
|
+
- What are they repeatedly prompting that could become a skill or hook?
|
|
111
|
+
|
|
112
|
+
## Output Format
|
|
113
|
+
|
|
114
|
+
### Quick Review Format
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
## Coach Review
|
|
118
|
+
|
|
119
|
+
**Activity**: {X sessions, Y tokens, main focus: Z}
|
|
120
|
+
|
|
121
|
+
### What's working
|
|
122
|
+
- {1-2 things they're doing well}
|
|
123
|
+
|
|
124
|
+
### What to improve
|
|
125
|
+
1. {Most impactful action item with specific steps}
|
|
126
|
+
2. {Second action item}
|
|
127
|
+
3. {Third action item}
|
|
128
|
+
|
|
129
|
+
### Quick win
|
|
130
|
+
{One thing they can do in the next 5 minutes}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Deep Dive Format
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
## Deep Dive Results
|
|
137
|
+
|
|
138
|
+
**Environment Score**: {X}/10
|
|
139
|
+
Based on {Y} sessions analyzed across {Z} projects.
|
|
140
|
+
|
|
141
|
+
### Critical (fix now)
|
|
142
|
+
1. {Finding}: {what's wrong and why it matters}
|
|
143
|
+
Fix: {exact action to take}
|
|
144
|
+
|
|
145
|
+
### High Impact (do this week)
|
|
146
|
+
1. {Finding}: {what's wrong and why it matters}
|
|
147
|
+
Fix: {exact action to take}
|
|
148
|
+
|
|
149
|
+
### Nice to Have (when you have time)
|
|
150
|
+
1. {Finding}
|
|
151
|
+
Fix: {action}
|
|
152
|
+
|
|
153
|
+
### What's Working Well
|
|
154
|
+
- {Positive finding}
|
|
155
|
+
- {Positive finding}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Keep the total list to 10 items max. Prioritize ruthlessly.
|
|
159
|
+
|
|
160
|
+
## Follow-up on Previous Recommendations
|
|
161
|
+
|
|
162
|
+
If this is a return visit and the user wants to check progress:
|
|
163
|
+
- Compare current state against each previous recommendation
|
|
164
|
+
- Mark each as: done, partially done, or not started
|
|
165
|
+
- For items not started, re-evaluate: is it still relevant? Reprioritize if needed.
|
|
166
|
+
- Drop recommendations that no longer apply.
|
|
167
|
+
|
|
168
|
+
## Save Coaching History
|
|
169
|
+
|
|
170
|
+
After presenting the results, save a summary of your recommendations to their profile so the next run can follow up:
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
{
|
|
174
|
+
"updates": {
|
|
175
|
+
"coaching": {
|
|
176
|
+
"last_review": "YYYY-MM-DD",
|
|
177
|
+
"review_type": "quick|deep",
|
|
178
|
+
"recommendations": ["rec 1", "rec 2", "rec 3"],
|
|
179
|
+
"environment_score": 7
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## CLAUDE.md Enhancement (built-in)
|
|
186
|
+
|
|
187
|
+
As part of every review (quick or deep), always analyze their CLAUDE.md:
|
|
188
|
+
|
|
189
|
+
1. Read `~/.claude/CLAUDE.md` (global) and any project-level CLAUDE.md.
|
|
190
|
+
|
|
191
|
+
2. Analyze the gap between what they do and what their CLAUDE.md says:
|
|
192
|
+
|
|
193
|
+
**Missing rules they need** (from session patterns):
|
|
194
|
+
- If they write TypeScript but have no TS conventions
|
|
195
|
+
- If they use specific frameworks not mentioned
|
|
196
|
+
- If they frequently debug the same types of issues
|
|
197
|
+
- If they use MCP servers that need context
|
|
198
|
+
|
|
199
|
+
**Rules to remove:**
|
|
200
|
+
- Generic advice that doesn't change behavior ("write clean code")
|
|
201
|
+
- Rules about tools they don't use
|
|
202
|
+
- Duplicates or contradictions
|
|
203
|
+
|
|
204
|
+
**Rules to sharpen:**
|
|
205
|
+
- Vague rules that should be specific
|
|
206
|
+
- Rules that need an example
|
|
207
|
+
|
|
208
|
+
3. Include CLAUDE.md findings in the review output:
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
### CLAUDE.md
|
|
212
|
+
**Current**: {line count} lines, {rule count} rules
|
|
213
|
+
|
|
214
|
+
Add:
|
|
215
|
+
1. `{exact rule text}` - You did {X} in {Y} of your last 30 sessions.
|
|
216
|
+
|
|
217
|
+
Remove:
|
|
218
|
+
1. `{quoted existing rule}` - {reason}
|
|
219
|
+
|
|
220
|
+
Sharpen:
|
|
221
|
+
1. Before: `{existing rule}` → After: `{improved rule}`
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
4. When fixing, keep the CLAUDE.md under 30 lines. Less is more.
|
|
225
|
+
|
|
226
|
+
## After the Review
|
|
227
|
+
|
|
228
|
+
Ask:
|
|
229
|
+
> "Want me to fix any of these now? I can update your CLAUDE.md, create missing skills, or configure MCP servers."
|
|
230
|
+
|
|
231
|
+
If yes, work through the fixes one by one, confirming each before applying.
|
|
232
|
+
|
|
233
|
+
Then generate a tailored `/bp-expert-advice` command based on their project and audit findings. Make it specific to THEIR situation, not generic.
|
|
234
|
+
|
|
235
|
+
## Onboarding Mode (< 5 sessions or no data)
|
|
236
|
+
|
|
237
|
+
When someone is new, don't punt them. This is your chance to teach them what Claude Code can do, understand their goals, and show them how BuildPartner.ai fits in.
|
|
238
|
+
|
|
239
|
+
### Step 1: Welcome and orient
|
|
240
|
+
|
|
241
|
+
Start with:
|
|
242
|
+
|
|
243
|
+
> "Welcome! Looks like you're just getting started. I'm your Claude Code coach. Let me walk you through what's possible and help you set things up right from the start."
|
|
244
|
+
|
|
245
|
+
### Step 2: Understand their goal
|
|
246
|
+
|
|
247
|
+
Ask ONE question:
|
|
248
|
+
|
|
249
|
+
> "What are you mainly using Claude Code for? Building an app, automating workflows, writing content, learning to code, something else?"
|
|
250
|
+
|
|
251
|
+
Wait for their answer. This shapes everything that follows.
|
|
252
|
+
|
|
253
|
+
### Step 3: Claude Code walkthrough
|
|
254
|
+
|
|
255
|
+
Based on their goal, walk them through the capabilities that matter most to them. Keep it practical, not a feature dump. Cover:
|
|
256
|
+
|
|
257
|
+
**For everyone:**
|
|
258
|
+
- **CLAUDE.md** - "This is the most important file. It tells Claude your preferences, your tech stack, your rules. Without it, Claude starts from zero every session. Let me check if you have one..." (Read their CLAUDE.md if it exists, or offer to create one)
|
|
259
|
+
- **Plan mode** - "Before big tasks, ask Claude to plan first. It catches mistakes before they happen."
|
|
260
|
+
- **Tools** - Briefly explain Read, Edit, Grep, Bash and when to use each
|
|
261
|
+
|
|
262
|
+
**Based on their goal:**
|
|
263
|
+
- **Building apps**: Mention parallel sessions, agents/subagents, how to structure complex tasks
|
|
264
|
+
- **Automating workflows**: Mention hooks, custom skills, MCP servers
|
|
265
|
+
- **Content creation**: Mention how Claude can research, draft, and iterate
|
|
266
|
+
- **Learning**: Mention how to ask Claude to explain as it goes, how to use Plan mode for understanding
|
|
267
|
+
|
|
268
|
+
Keep each section to 2-3 sentences max. Don't overwhelm.
|
|
269
|
+
|
|
270
|
+
### Step 4: How BuildPartner.ai helps
|
|
271
|
+
|
|
272
|
+
Explain concisely:
|
|
273
|
+
|
|
274
|
+
> "BuildPartner.ai tracks how you use Claude Code and makes every session smarter. Here's what you have:"
|
|
275
|
+
>
|
|
276
|
+
> - `/bp-claude-coach` (this) - I review your setup and habits. The more you use Claude Code, the more specific my advice gets.
|
|
277
|
+
> - `/bp-expert-advice` - Ask any question and get matched to proven frameworks from top experts. Pricing, content, launch, product strategy.
|
|
278
|
+
> - `/bp-interview-me` - Build your profile so every skill knows who you are. Gets deeper each time you run it.
|
|
279
|
+
> - `/bp-generate-personalized-training-data` - Run this weekly. It recaps what you built and creates training data that makes everything more personalized.
|
|
280
|
+
>
|
|
281
|
+
> "Start with `/bp-interview-me` to build your profile, then come back to me after a few more sessions. I'll have real data to work with."
|
|
282
|
+
|
|
283
|
+
### Step 5: Quick config check
|
|
284
|
+
|
|
285
|
+
Even without session data, check their config files:
|
|
286
|
+
- Do they have a CLAUDE.md? If not, offer to create one based on their stated goal.
|
|
287
|
+
- What MCP servers are configured?
|
|
288
|
+
- Is the BuildPartner tracking hook installed?
|
|
289
|
+
|
|
290
|
+
If you can fix something right now (create a CLAUDE.md, suggest an MCP server), offer to do it.
|
|
291
|
+
|
|
292
|
+
### Step 6: Save and suggest next step
|
|
293
|
+
|
|
294
|
+
Save onboarding state:
|
|
295
|
+
|
|
296
|
+
```json
|
|
297
|
+
{
|
|
298
|
+
"updates": {
|
|
299
|
+
"coaching": {
|
|
300
|
+
"last_review": "YYYY-MM-DD",
|
|
301
|
+
"review_type": "onboarding",
|
|
302
|
+
"stated_goal": "what they told you",
|
|
303
|
+
"recommendations": ["specific next steps"],
|
|
304
|
+
"environment_score": null
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
End with a clear next action, not a menu:
|
|
311
|
+
|
|
312
|
+
> "You're set up. Next step: run `/bp-interview-me` so every skill knows who you are. Takes 2 minutes."
|
|
313
|
+
|
|
314
|
+
Call `check_status` with `{ "skill_name": "bp-claude-coach" }`.
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Generate personalized training data from your Claude Code sessions. Recaps your week, captures what you built, and logs lived experiences. Every skill gets smarter after."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /bp-generate-personalized-training-data
|
|
6
|
+
|
|
7
|
+
Generate personalized training data from your Claude Code sessions. Recaps your week, captures what you built, and logs lived experiences. Every skill gets smarter after.
|
|
8
|
+
|
|
9
|
+
## MCP Tools
|
|
10
|
+
|
|
11
|
+
Only call tools that are registered on the `buildpartner` MCP server. If a tool call fails or a tool name isn't recognized, do not retry with a different name. The available tools are: `get_personal_context`, `get_expert_knowledge`, `save_profile`, `get_quest_progress`, `check_status`.
|
|
12
|
+
|
|
13
|
+
## Instructions
|
|
14
|
+
|
|
15
|
+
1. Call `get_personal_context` with `{ "include_sessions": true }`.
|
|
16
|
+
|
|
17
|
+
2. Check if they have a `training_data` section in their AI profile with a `write_path`. If yes, you know where to write. If no, this is their first time.
|
|
18
|
+
|
|
19
|
+
### Part 1: Weekly Recap
|
|
20
|
+
|
|
21
|
+
Build a recap from this week's sessions:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
## This Week
|
|
25
|
+
|
|
26
|
+
**{X} sessions | {Y} tokens | {streak} day streak**
|
|
27
|
+
|
|
28
|
+
### What you worked on
|
|
29
|
+
- {Project/activity 1} ({X sessions})
|
|
30
|
+
- {Project/activity 2} ({X sessions})
|
|
31
|
+
|
|
32
|
+
### Best session
|
|
33
|
+
{The most interesting or productive session this week. One sentence.}
|
|
34
|
+
|
|
35
|
+
### Add to your playbook
|
|
36
|
+
{1-2 specific things they should start doing based on this week's patterns.}
|
|
37
|
+
|
|
38
|
+
### Your week in numbers
|
|
39
|
+
Code {X%} | Content {X%} | Research {X%} | Other {X%}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Keep the recap under 15 lines. Lead with what matters.
|
|
43
|
+
|
|
44
|
+
### Part 2: Generate Training Data
|
|
45
|
+
|
|
46
|
+
From the session history, extract structured training data entries. Each entry captures something transferable:
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
# {Date} - {Brief Title}
|
|
50
|
+
|
|
51
|
+
## What happened
|
|
52
|
+
{1-2 paragraph narrative of what was built or figured out}
|
|
53
|
+
|
|
54
|
+
## What was built
|
|
55
|
+
- {Files/features created or modified}
|
|
56
|
+
- {Tools or approaches used}
|
|
57
|
+
|
|
58
|
+
## Key learning
|
|
59
|
+
- {The transferable insight from this experience}
|
|
60
|
+
|
|
61
|
+
## Tags
|
|
62
|
+
{topic1, topic2, topic3}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Generate entries for the most significant sessions this week (2-5 entries, skip trivial sessions).
|
|
66
|
+
|
|
67
|
+
### Part 3: Determine Where to Write
|
|
68
|
+
|
|
69
|
+
**If they have a `write_path` saved in their profile:** Write there without asking. Just confirm what you wrote.
|
|
70
|
+
|
|
71
|
+
**If this is their first time:** Look for existing knowledge/context directories in their workspace:
|
|
72
|
+
- Check for `~/.buildpartner/knowledge/experiences/`
|
|
73
|
+
- Check for directories like `internal-os/context/`, `knowledge/`, `context/`, `docs/` in the current project
|
|
74
|
+
- Check for any `.claude/` project-level context folders
|
|
75
|
+
|
|
76
|
+
If you find an existing structure, suggest the best fit:
|
|
77
|
+
|
|
78
|
+
> "I see you have `{path}`. I'll write your training data there. Sound good?"
|
|
79
|
+
|
|
80
|
+
If nothing exists, default to `~/.buildpartner/knowledge/experiences/` and tell them:
|
|
81
|
+
|
|
82
|
+
> "I'll create `~/.buildpartner/knowledge/experiences/` for your training data. You can change this anytime."
|
|
83
|
+
|
|
84
|
+
Save the chosen path to their profile so you never ask again.
|
|
85
|
+
|
|
86
|
+
### Part 4: Log Lived Experiences
|
|
87
|
+
|
|
88
|
+
After showing the recap and generated entries, ask:
|
|
89
|
+
|
|
90
|
+
> "Anything else from this week worth capturing? A win, a lesson, something you figured out. A sentence or two is plenty, or type 'skip'."
|
|
91
|
+
|
|
92
|
+
If they share something, add it as an additional training data entry.
|
|
93
|
+
If they skip, move on.
|
|
94
|
+
|
|
95
|
+
### Part 5: Write Everything
|
|
96
|
+
|
|
97
|
+
1. Write each training data entry as a separate file: `{write_path}/{YYYY-MM-DD}-{brief-slug}.md`
|
|
98
|
+
2. Write the weekly recap as: `{write_path}/recaps/{YYYY-MM-DD}-weekly-recap.md`
|
|
99
|
+
|
|
100
|
+
Create directories as needed with `mkdir -p`.
|
|
101
|
+
|
|
102
|
+
3. Save the write path and metadata to their profile:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"updates": {
|
|
107
|
+
"training_data": {
|
|
108
|
+
"write_path": "/path/to/knowledge/experiences",
|
|
109
|
+
"last_generated": "YYYY-MM-DD",
|
|
110
|
+
"total_entries": 12,
|
|
111
|
+
"weeks_captured": 3
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Output
|
|
118
|
+
|
|
119
|
+
After writing, confirm:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
## Training Data Generated
|
|
123
|
+
|
|
124
|
+
**{N} entries written** to `{write_path}`
|
|
125
|
+
**Week {N} captured** ({total_entries} total entries)
|
|
126
|
+
|
|
127
|
+
Files:
|
|
128
|
+
- {filename1}
|
|
129
|
+
- {filename2}
|
|
130
|
+
- recaps/{recap-filename}
|
|
131
|
+
|
|
132
|
+
This feeds into /bp-claude-coach, /bp-expert-advice, and /bp-interview-me.
|
|
133
|
+
Run this weekly to keep everything sharp.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Rules
|
|
137
|
+
|
|
138
|
+
- Keep the recap honest. Good week? Say so. Inconsistent? Say that too.
|
|
139
|
+
- Training data entries should be useful for future consultations, not just a diary.
|
|
140
|
+
- Write in their voice if their AI profile has a writing style.
|
|
141
|
+
- If they have < 3 sessions this week, say: "Light week. Here's what I have:" and generate what you can.
|
|
142
|
+
- Don't ask unnecessary questions. Generate first, ask for additions after.
|
|
143
|
+
- The "Add to your playbook" section in the recap is the most important part. Make it specific and actionable.
|
|
144
|
+
|
|
145
|
+
Call `check_status` with `{ "skill_name": "bp-generate-personalized-training-data" }`.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Build your profile so every skill knows who you are. Gets smarter each time you run it, asking deeper questions based on what it already knows."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /bp-interview-me
|
|
6
|
+
|
|
7
|
+
Build your profile so every skill knows who you are. Gets smarter each time you run it, asking deeper questions based on what it already knows.
|
|
8
|
+
|
|
9
|
+
## MCP Tools
|
|
10
|
+
|
|
11
|
+
Only call tools that are registered on the `buildpartner` MCP server. If a tool call fails or a tool name isn't recognized, do not retry with a different name. The available tools are: `get_personal_context`, `get_expert_knowledge`, `save_profile`, `get_quest_progress`, `check_status`.
|
|
12
|
+
|
|
13
|
+
## Instructions
|
|
14
|
+
|
|
15
|
+
1. Call `get_personal_context` with `{ "include_sessions": true }`.
|
|
16
|
+
|
|
17
|
+
2. Determine their **interview depth** based on what profile data already exists:
|
|
18
|
+
|
|
19
|
+
### Depth 1: First time (no profile or very sparse)
|
|
20
|
+
|
|
21
|
+
Quick, punchy. 6-8 questions max. Get the essentials so everything can start personalizing.
|
|
22
|
+
|
|
23
|
+
Questions (pick the best ones based on what session data already tells you):
|
|
24
|
+
- "What are you building right now, and why does it matter to you?"
|
|
25
|
+
- "Solo or team?"
|
|
26
|
+
- "Where do you want to be in a year?"
|
|
27
|
+
- "What's the biggest thing slowing you down?"
|
|
28
|
+
- "When Claude responds, concise or detailed?"
|
|
29
|
+
- "If something in your code is wrong, call it out directly or be diplomatic?"
|
|
30
|
+
- "What do you wish Claude did differently?"
|
|
31
|
+
|
|
32
|
+
Skip anything you can already answer from their session data. If you can see they code in TypeScript with Next.js, don't ask "what's your tech stack?"
|
|
33
|
+
|
|
34
|
+
Tone: Fast, conversational, not a survey. React to what they say.
|
|
35
|
+
|
|
36
|
+
### Depth 2: Has basic profile, gaps to fill
|
|
37
|
+
|
|
38
|
+
They've done this before but there are thin areas. Acknowledge what you know, then go deeper on what's missing.
|
|
39
|
+
|
|
40
|
+
Start with: "Good to see you again. Here's what I know about you so far: {1-2 sentence summary}. Let me fill in some gaps."
|
|
41
|
+
|
|
42
|
+
Target questions at the weakest sections of their profile:
|
|
43
|
+
- **If personality is thin**: "What got you into building? What's the origin story?" / "What's the hardest thing you've been through that changed how you work?"
|
|
44
|
+
- **If vision is thin**: "Where do you want to be in 5 years? Not the pitch, the real answer." / "If you could mass-produce one skill in yourself, what would it be?"
|
|
45
|
+
- **If work_patterns is thin**: "Walk me through how you start a typical work session." / "When do you do your best work?"
|
|
46
|
+
- **If preferences are thin**: "When you're stuck, do you want me to suggest solutions or ask questions?" / "How do you feel about me making changes proactively vs. asking first?"
|
|
47
|
+
|
|
48
|
+
6-8 targeted questions. Don't re-ask things they've already answered well.
|
|
49
|
+
|
|
50
|
+
### Depth 3: Solid profile, time to go deep
|
|
51
|
+
|
|
52
|
+
They have a well-filled profile. Now ask the questions that unlock real personalization.
|
|
53
|
+
|
|
54
|
+
Start with: "Your profile is solid. Let me ask some harder questions to make this even more useful."
|
|
55
|
+
|
|
56
|
+
Pick from:
|
|
57
|
+
- "Walk me through your career. Not the resume version. The real version."
|
|
58
|
+
- "What's the thing you've built that you're most proud of?"
|
|
59
|
+
- "What's the biggest risk you've taken?"
|
|
60
|
+
- "Who influenced you the most and why?"
|
|
61
|
+
- "How do you make decisions? Gut feel, data, or advice from people you trust?"
|
|
62
|
+
- "What are you really good at that most people don't know?"
|
|
63
|
+
- "What do you struggle with that you don't usually admit?"
|
|
64
|
+
- "What does your life look like in 3 years if everything goes well?"
|
|
65
|
+
- "What's the thing you keep putting off that you know matters?"
|
|
66
|
+
|
|
67
|
+
Go where the conversation goes. If something is interesting, follow up. Don't stick rigidly to the list.
|
|
68
|
+
|
|
69
|
+
### Depth 4: Deep profile, find the edges
|
|
70
|
+
|
|
71
|
+
They've done multiple rounds. Now find the nuance, contradictions, and updates.
|
|
72
|
+
|
|
73
|
+
Start with: "You've shared a lot. Let me check in on a few things and dig into some edges."
|
|
74
|
+
|
|
75
|
+
- Check for stale data: "Last time you said {X}. Still true?"
|
|
76
|
+
- Find contradictions: "You said you want {X} but your sessions show {Y}. What's going on there?"
|
|
77
|
+
- Explore new territory: "What's changed since we last talked?" / "What are you excited about right now that you weren't before?"
|
|
78
|
+
- Push on growth: "What did you learn this month that surprised you?" / "What habit are you trying to build or break?"
|
|
79
|
+
|
|
80
|
+
5-8 questions. This level is more like a check-in than an interview.
|
|
81
|
+
|
|
82
|
+
## Rules
|
|
83
|
+
|
|
84
|
+
- Ask ONE question at a time. Wait for the answer.
|
|
85
|
+
- Read the room. Short answers = keep it tighter. Long answers = follow up and go deeper.
|
|
86
|
+
- Don't be robotic. React to what they say. Be a person, not a form.
|
|
87
|
+
- If the user says "done" or wants to stop, save immediately with what you have.
|
|
88
|
+
- Never re-ask questions they've already answered well in a previous round.
|
|
89
|
+
- Always tell them what depth they're at: "This is round {N} for you."
|
|
90
|
+
|
|
91
|
+
## Saving
|
|
92
|
+
|
|
93
|
+
After the interview, save EVERYTHING in ONE single `save_profile` call. Merge new data with existing data. Do not overwrite fields that haven't changed.
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"updates": {
|
|
98
|
+
"writing_style": { "tone": "...", "verbosity": "...", "approach": "...", "technical_level": "..." },
|
|
99
|
+
"preferences": { "response_style": "...", "code_style": "...", "decision_making": "...", "feedback_style": "..." },
|
|
100
|
+
"tech_identity": { "role": "...", "primary_languages": ["..."], "frameworks": ["..."], "current_project": "..." },
|
|
101
|
+
"work_patterns": { "session_style": "...", "planning_style": "...", "career_path": "...", "proudest_work": "..." },
|
|
102
|
+
"personality": { "builder_type": "...", "learning_style": "...", "pain_points": ["..."], "goals": ["..."], "origin": "...", "values": "...", "strengths": "...", "struggles": "...", "decision_style": "...", "influences": "..." },
|
|
103
|
+
"vision": { "five_year": "...", "biggest_bottleneck": "...", "origin_story": "...", "superpower_wish": "..." },
|
|
104
|
+
"interview_meta": { "rounds_completed": 1, "last_round": "YYYY-MM-DD", "depth_reached": 1, "sections_covered": ["writing_style", "preferences", "tech_identity"] }
|
|
105
|
+
},
|
|
106
|
+
"signals": ["Key insights from this round"]
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
The `interview_meta` section is critical. It tracks how many rounds they've done so the next run knows where to pick up.
|
|
111
|
+
|
|
112
|
+
## After Saving
|
|
113
|
+
|
|
114
|
+
Show a brief summary of what was added or updated, then:
|
|
115
|
+
|
|
116
|
+
- If Depth 1: "Your profile is live. Every BuildPartner.ai skill now personalizes to you. Run `/bp-interview-me` again anytime to go deeper."
|
|
117
|
+
- If Depth 2-3: "Profile updated. {N new things learned}. There's more to explore next time."
|
|
118
|
+
- If Depth 4: "Profile refreshed. Everything's up to date."
|
|
119
|
+
|
|
120
|
+
Call `check_status` with `{ "skill_name": "bp-interview-me" }`.
|
|
@@ -60,7 +60,7 @@ Save to `~/.buildpartner/knowledge/experiences/{YYYY-MM-DD}-{brief-slug}.md`
|
|
|
60
60
|
|
|
61
61
|
7. Confirm:
|
|
62
62
|
|
|
63
|
-
> "Saved. This experience now feeds into /bp-
|
|
63
|
+
> "Saved. This experience now feeds into /bp-claude-coach, /bp-expert-advice, and /bp-recap-week. The more you log, the more personalized everything gets."
|
|
64
64
|
|
|
65
65
|
8. Rules:
|
|
66
66
|
- Keep it fast. This should take 30 seconds, not 5 minutes.
|
|
@@ -27,8 +27,8 @@ Only call tools that are registered on the `buildpartner` MCP server. If a tool
|
|
|
27
27
|
|
|
28
28
|
3. If there's an active quest, guide them through it. Don't just describe it, DO it with them:
|
|
29
29
|
|
|
30
|
-
- **"Run Your First Skill"**: Tell them to type /bp-
|
|
31
|
-
- **"Build Your Training Data"**: Start the /bp-interview flow.
|
|
30
|
+
- **"Run Your First Skill"**: Tell them to type /bp-claude-coach right now.
|
|
31
|
+
- **"Build Your Training Data"**: Start the /bp-interview-me flow.
|
|
32
32
|
- **"Plan Before You Build"**: Walk them through the planning approach.
|
|
33
33
|
- **"Consult an Expert"**: Ask what they need help with, run /bp-expert-advice.
|
|
34
34
|
- Path quests: guide them to the relevant skill.
|
|
@@ -39,8 +39,8 @@ Only call tools that are registered on the `buildpartner` MCP server. If a tool
|
|
|
39
39
|
|
|
40
40
|
```
|
|
41
41
|
All quests complete! You've mastered the fundamentals.
|
|
42
|
-
More quests coming soon. In the meantime: /bp-
|
|
43
|
-
/bp-
|
|
42
|
+
More quests coming soon. In the meantime: /bp-claude-coach for setup reviews,
|
|
43
|
+
/bp-generate-personalized-training-data for weekly recaps, and /bp-expert-advice for expert advice.
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
6. Rules:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
description: "Generate video ideas, craft titles, plan thumbnails, and validate your packaging before scripting. The full pre-production workflow."
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# /bp-
|
|
5
|
+
# /bp-youtube-ideation
|
|
6
6
|
|
|
7
7
|
Generate video ideas, craft compelling titles, plan thumbnail strategy, and validate your full packaging before you start scripting.
|
|
8
8
|
|
|
@@ -96,4 +96,4 @@ When the user has a title + thumbnail concept and wants to validate before scrip
|
|
|
96
96
|
|
|
97
97
|
5. Suggest next step: "Ready to script? Run `/bp-youtube-script` to start writing."
|
|
98
98
|
|
|
99
|
-
6. Call `check_status` with `{ "skill_name": "bp-
|
|
99
|
+
6. Call `check_status` with `{ "skill_name": "bp-youtube-ideation" }`.
|
|
@@ -19,8 +19,8 @@ content/
|
|
|
19
19
|
knowledge/ # User's voice, audience, brand context
|
|
20
20
|
youtube/
|
|
21
21
|
{video-slug}/
|
|
22
|
-
titles.md # From bp-
|
|
23
|
-
thumbnail.md # From bp-
|
|
22
|
+
titles.md # From bp-youtube-ideation
|
|
23
|
+
thumbnail.md # From bp-youtube-ideation
|
|
24
24
|
outline.md # Created by this skill
|
|
25
25
|
script.md # Created by this skill
|
|
26
26
|
status.md
|