claudes-office
Version:
CLI tool to initialize Claude's office in your project
403 lines (354 loc) • 15.6 kB
JavaScript
;
/**
* Prompt templates for meeting generation
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeetingPrompt = getMeetingPrompt;
const fs = __importStar(require("fs-extra"));
const path = __importStar(require("path"));
const commands_1 = require("../types/commands");
/**
* Get the appropriate prompt for a meeting type
* @param options - Meeting options
* @returns Prompt for the meeting
*/
async function getMeetingPrompt(options) {
// Try to load template from file
const templateFileName = `${options.type.toLowerCase()}.md`;
const templatePath = path.join(__dirname, '..', '..', 'template', 'claudes-office', 'meetings', 'templates', templateFileName);
let templateContent = '';
try {
if (await fs.pathExists(templatePath)) {
templateContent = await fs.readFile(templatePath, 'utf8');
}
}
catch (error) {
// If template file is not found, use default templates
console.warn(`Template not found: ${templatePath}`);
}
// If template was loaded from file, use it
if (templateContent) {
return fillTemplateVariables(templateContent, options);
}
// Otherwise, use built-in templates
switch (options.type) {
case commands_1.MeetingType.BRAINSTORM:
return getBrainstormTemplate(options);
case commands_1.MeetingType.PLANNING:
return getPlanningTemplate(options);
case commands_1.MeetingType.STANDUP:
return getStandupTemplate(options);
case commands_1.MeetingType.RETROSPECTIVE:
return getRetrospectiveTemplate(options);
case commands_1.MeetingType.DECISION:
return getDecisionTemplate(options);
case commands_1.MeetingType.REQUIREMENTS:
return getRequirementsTemplate(options);
case commands_1.MeetingType.CUSTOM:
default:
return getGenericTemplate(options);
}
}
/**
* Replace template variables with actual values
* @param template - Template string with placeholders
* @param options - Meeting options
* @returns Template with variables replaced
*/
function fillTemplateVariables(template, options) {
const participantsList = options.participants.join(', ');
const agendaItems = options.agenda.map(item => `- ${item}`).join('\n');
return template
.replace(/\{\{title\}\}/g, options.title)
.replace(/\{\{type\}\}/g, options.type)
.replace(/\{\{participants\}\}/g, participantsList)
.replace(/\{\{agenda\}\}/g, agendaItems)
.replace(/\{\{duration\}\}/g, options.duration.toString())
.replace(/\{\{date\}\}/g, new Date(options.date).toLocaleDateString())
.replace(/\{\{additionalContext\}\}/g, options.additionalContext || '');
}
/**
* Get a template for brainstorming meetings
* @param options - Meeting options
* @returns Brainstorming meeting prompt
*/
function getBrainstormTemplate(options) {
const participantsList = options.participants.join(', ');
const agendaItems = options.agenda.map(item => `- ${item}`).join('\n');
return `
You are a world-class meeting facilitator helping to generate a simulated brainstorming session. Please generate a realistic and engaging meeting transcript and minutes based on the following information:
# Meeting Information
- Title: ${options.title}
- Type: Brainstorming Session
- Participants: ${participantsList}
- Duration: ${options.duration} minutes
- Date: ${new Date(options.date).toLocaleDateString()}
# Agenda
${agendaItems || '- Open brainstorming on the main topic'}
# Instructions
1. Create a realistic brainstorming session where participants generate and build upon ideas
2. Include diverse perspectives and some creative tension
3. Follow a structure: introduction, ideation, discussion, and conclusion
4. Ensure key ideas and insights are captured
5. Include some unexpected creative breakthroughs
6. Make each participant have a distinct voice and perspective
7. Include moments of building on each other's ideas
# Output Format
Generate your response in the following format:
## Transcript
[Create a detailed, realistic transcript of the entire meeting]
## Minutes
[Create concise meeting minutes that capture key points, decisions, and action items]
## Summary
[Provide a brief 2-3 sentence summary of the meeting outcomes]
`;
}
/**
* Get a template for planning meetings
* @param options - Meeting options
* @returns Planning meeting prompt
*/
function getPlanningTemplate(options) {
const participantsList = options.participants.join(', ');
const agendaItems = options.agenda.map(item => `- ${item}`).join('\n');
return `
You are a world-class meeting facilitator helping to generate a simulated project planning session. Please generate a realistic and engaging meeting transcript and minutes based on the following information:
# Meeting Information
- Title: ${options.title}
- Type: Planning Session
- Participants: ${participantsList}
- Duration: ${options.duration} minutes
- Date: ${new Date(options.date).toLocaleDateString()}
# Agenda
${agendaItems || '- Project planning and roadmap discussion'}
# Instructions
1. Create a realistic planning session that establishes clear goals, timelines, and responsibilities
2. Include discussion of resources, constraints, and risk factors
3. Feature moments of clarification and problem-solving
4. Structure the meeting with an introduction, review of objectives, planning discussion, and action items
5. Ensure clear outcomes and next steps
6. Make each participant have a distinct voice and area of expertise/responsibility
7. Include some challenges that get resolved through discussion
# Output Format
Generate your response in the following format:
## Transcript
[Create a detailed, realistic transcript of the entire meeting]
## Minutes
[Create concise meeting minutes that capture key points, decisions, and action items]
## Summary
[Provide a brief 2-3 sentence summary of the meeting outcomes]
`;
}
/**
* Get a template for standup meetings
* @param options - Meeting options
* @returns Standup meeting prompt
*/
function getStandupTemplate(options) {
const participantsList = options.participants.join(', ');
return `
You are a world-class meeting facilitator helping to generate a simulated daily/weekly standup meeting. Please generate a realistic and engaging meeting transcript and minutes based on the following information:
# Meeting Information
- Title: ${options.title}
- Type: Standup Meeting
- Participants: ${participantsList}
- Duration: ${options.duration} minutes
- Date: ${new Date(options.date).toLocaleDateString()}
# Instructions
1. Create a realistic standup meeting where each participant briefly shares:
- What they accomplished since the last meeting
- What they're working on now
- Any blockers or issues they're facing
2. Keep each participant's update concise and focused
3. Include some brief problem-solving for blockers
4. Make each participant have a distinct voice and area of work
5. Structure: brief intro, individual updates, quick discussion of blockers, conclusion
# Output Format
Generate your response in the following format:
## Transcript
[Create a detailed, realistic transcript of the entire meeting]
## Minutes
[Create concise meeting minutes that capture key points, decisions, and action items]
## Summary
[Provide a brief 2-3 sentence summary of the meeting outcomes]
`;
}
/**
* Get a template for retrospective meetings
* @param options - Meeting options
* @returns Retrospective meeting prompt
*/
function getRetrospectiveTemplate(options) {
const participantsList = options.participants.join(', ');
const agendaItems = options.agenda.map(item => `- ${item}`).join('\n');
return `
You are a world-class meeting facilitator helping to generate a simulated project retrospective session. Please generate a realistic and engaging meeting transcript and minutes based on the following information:
# Meeting Information
- Title: ${options.title}
- Type: Retrospective
- Participants: ${participantsList}
- Duration: ${options.duration} minutes
- Date: ${new Date(options.date).toLocaleDateString()}
# Agenda
${agendaItems || '- Review what went well\n- Discuss what could be improved\n- Identify action items for future work'}
# Instructions
1. Create a realistic retrospective where the team honestly reviews their recent work
2. Include discussion of successes, challenges, and lessons learned
3. Structure around: what went well, what could be improved, and actionable next steps
4. Feature constructive feedback and problem-solving
5. Make the tone supportive but honest
6. Include some moments of self-reflection
7. Ensure the meeting ends with clear improvement actions
# Output Format
Generate your response in the following format:
## Transcript
[Create a detailed, realistic transcript of the entire meeting]
## Minutes
[Create concise meeting minutes that capture key points, decisions, and action items]
## Summary
[Provide a brief 2-3 sentence summary of the meeting outcomes]
`;
}
/**
* Get a template for decision-making meetings
* @param options - Meeting options
* @returns Decision meeting prompt
*/
function getDecisionTemplate(options) {
const participantsList = options.participants.join(', ');
const agendaItems = options.agenda.map(item => `- ${item}`).join('\n');
return `
You are a world-class meeting facilitator helping to generate a simulated decision-making meeting. Please generate a realistic and engaging meeting transcript and minutes based on the following information:
# Meeting Information
- Title: ${options.title}
- Type: Decision-Making Meeting
- Participants: ${participantsList}
- Duration: ${options.duration} minutes
- Date: ${new Date(options.date).toLocaleDateString()}
# Agenda
${agendaItems || '- Review options\n- Evaluate pros and cons\n- Make final decision'}
# Instructions
1. Create a realistic decision-making session where participants evaluate options and come to a conclusion
2. Include presentation of options with pros and cons
3. Feature discussion that weighs different perspectives and considerations
4. Include some respectful disagreement and negotiation
5. Structure the meeting: introduction, review of options, discussion, decision-making, and next steps
6. Ensure the meeting concludes with a clear decision and implementation plan
7. Make each participant have a distinct perspective and priority
# Output Format
Generate your response in the following format:
## Transcript
[Create a detailed, realistic transcript of the entire meeting]
## Minutes
[Create concise meeting minutes that capture key points, decisions, and action items]
## Summary
[Provide a brief 2-3 sentence summary of the meeting outcomes]
`;
}
/**
* Get a template for requirements gathering meetings
* @param options - Meeting options
* @returns Requirements meeting prompt
*/
function getRequirementsTemplate(options) {
const participantsList = options.participants.join(', ');
const agendaItems = options.agenda.map(item => `- ${item}`).join('\n');
return `
You are a world-class meeting facilitator helping to generate a simulated requirements gathering meeting. Please generate a realistic and engaging meeting transcript and minutes based on the following information:
# Meeting Information
- Title: ${options.title}
- Type: Requirements Gathering
- Participants: ${participantsList}
- Duration: ${options.duration} minutes
- Date: ${new Date(options.date).toLocaleDateString()}
# Agenda
${agendaItems || '- Identify key stakeholder needs\n- Document functional requirements\n- Discuss constraints and priorities'}
# Instructions
1. Create a realistic requirements gathering session that clarifies project needs
2. Include discovery questions and deeper exploration of requirements
3. Feature moments where participants realize unstated needs
4. Include clarification of priorities and must-haves vs. nice-to-haves
5. Structure the meeting: introduction, stakeholder needs, requirements discussion, prioritization, and next steps
6. Include discussion of technical constraints and feasibility
7. Ensure the meeting ends with clear documentation needs
# Output Format
Generate your response in the following format:
## Transcript
[Create a detailed, realistic transcript of the entire meeting]
## Minutes
[Create concise meeting minutes that capture key points, decisions, and action items]
## Summary
[Provide a brief 2-3 sentence summary of the meeting outcomes]
`;
}
/**
* Get a generic template for any meeting type
* @param options - Meeting options
* @returns Generic meeting prompt
*/
function getGenericTemplate(options) {
const participantsList = options.participants.join(', ');
const agendaItems = options.agenda.map(item => `- ${item}`).join('\n');
return `
You are a world-class meeting facilitator helping to generate a simulated meeting. Please generate a realistic and engaging meeting transcript and minutes based on the following information:
# Meeting Information
- Title: ${options.title}
- Participants: ${participantsList}
- Duration: ${options.duration} minutes
- Date: ${new Date(options.date).toLocaleDateString()}
# Agenda
${agendaItems || '- Meeting topics and discussion points'}
# Additional Context
${options.additionalContext || 'This is a general business meeting to discuss the specified agenda items.'}
# Instructions
1. Create a realistic meeting that addresses all agenda items
2. Include natural dialogue, discussion, and decision-making
3. Feature various perspectives and some productive disagreement
4. Structure the meeting with an introduction, main discussion, and conclusion
5. Ensure clear outcomes and next steps
6. Make each participant have a distinct voice and contribution
7. Balance discussion time appropriately among participants
# Output Format
Generate your response in the following format:
## Transcript
[Create a detailed, realistic transcript of the entire meeting]
## Minutes
[Create concise meeting minutes that capture key points, decisions, and action items]
## Summary
[Provide a brief 2-3 sentence summary of the meeting outcomes]
`;
}
//# sourceMappingURL=prompts.js.map