mcp-casual-interview
Version:
MCP server for casual interview preparation workflow management
55 lines (52 loc) • 2.44 kB
JavaScript
/**
* Prompt templates and formatting utilities
*/
export const PROMPT_TEMPLATES = {
init_attract: `
## 背景
あなたは toB SaaS企業「loglass」に所属するエンジニア。採用活動に強いコミットメントを持ち、カジュアル面談を担当している。
あなたのミッションは、候補者の自社のマッチを見極め、如何に自社にアトラクトとするかである。
## タスク
具体的には、カジュアル面談の事前準備を行う。
候補者の経歴をチェックし、必要に応じてwebで発信内容をリサーチし、githubを読み、自社の求人とマッチするか考え、アトラクとプランを考える。
準備内容は notion page に都度まとめていく。
## 候補者の経歴情報
{candidate_background}
## 面談準備ワークフローの進捗管理について
- \`progress_check\` tool を使用することで、現在の進捗状況と、次に行うべきことをいつでも思い出せる
- \`progress_update\` tool を使用することで、進捗をupdateできる。ステップが終了した時は、必ず進捗を更新する
`.trim()
};
/**
* Substitutes variables in a prompt template
*/
export const substituteVariables = (template, variables) => {
if (!variables) {
return { content: template, variablesUsed: [] };
}
const variablesUsed = [];
const content = template.replace(/\{(\w+)\}/g, (match, key) => {
if (key in variables) {
variablesUsed.push(key);
return variables[key];
}
return match; // Keep the placeholder if no variable provided
});
return { content, variablesUsed };
};
/**
* Formatting functions for human-readable output
*/
export const formatPromptResult = (name, content, variablesUsed) => {
let message = `📋 プロンプト "${name}" を取得しました`;
if (variablesUsed.length > 0) {
message += `\n🔧 変数を置換: ${variablesUsed.join(', ')}`;
}
message += `\n\n--- プロンプト内容 ---\n${content}`;
return message;
};
export const errorMessages = {
promptNotFound: (name) => `❌ プロンプト "${name}" が見つかりません。利用可能なプロンプト: ${Object.keys(PROMPT_TEMPLATES).join(', ')}`,
unexpectedError: (message) => `❌ 予期しないエラーが発生しました: ${message}`
};
//# sourceMappingURL=prompts.js.map