@compilr-dev/sdk 0.7.6 → 0.7.8

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/index.d.ts CHANGED
@@ -61,7 +61,7 @@ export type { AskUserQuestion, AskUserInput, AskUserResult, AskUserHandler, AskU
61
61
  export { createPlatformTools, createProjectTools, createWorkItemTools, createDocumentTools, createPlanTools, createBacklogTools, createAnchorTools, createArtifactTools, createEpisodeTools, ProjectAnchorStore, } from './platform/index.js';
62
62
  export type { ProjectAnchorStoreConfig } from './platform/index.js';
63
63
  export { STEP_ORDER, GUIDED_STEP_CRITERIA, getNextStep, isValidTransition, getStepCriteria, formatStepDisplay, getStepNumber, } from './platform/index.js';
64
- export { platformSkills, designSkill, sketchSkill, prdSkill, refineSkill, refineItemSkill, architectureSkill, sessionNotesSkill, buildSkill, scaffoldSkill, outlineSkill, literatureReviewSkill, draftSectionSkill, peerReviewSkill, researchScaffoldSkill, businessVisionSkill, marketAnalysisSkill, competitorAnalysisSkill, financialModelSkill, pitchOutlineSkill, businessReviewSkill, } from './skills/index.js';
64
+ export { platformSkills, designSkill, sketchSkill, prdSkill, refineSkill, refineItemSkill, architectureSkill, sessionNotesSkill, buildSkill, scaffoldSkill, outlineSkill, literatureReviewSkill, draftSectionSkill, peerReviewSkill, researchScaffoldSkill, businessVisionSkill, marketAnalysisSkill, competitorAnalysisSkill, financialModelSkill, pitchOutlineSkill, businessReviewSkill, brandSetupSkill, contentStrategySkill, contentCalendarSkill, createContentSkill, contentReviewSkill, curriculumDesignSkill, lessonPlanSkill, assessmentDesignSkill, courseReviewSkill, } from './skills/index.js';
65
65
  export { ACTION_REGISTRY, getActionsForContext, getActionById, resolveActionPrompt, buildContextSummary, getSuggestedRole, } from './actions/index.js';
66
66
  export type { ActionContext, ActionDefinition } from './actions/index.js';
67
67
  export { PROJECT_TYPES, getProjectTypeConfig, getEnrichedProjectTypeConfig, getProjectTypesByCategory, generalConfig, softwareConfig, researchConfig, businessPlanConfig, contentConfig, techDocsConfig, courseConfig, ACTION_META_REGISTRY, SKILL_META_REGISTRY, resolveActionMeta, getSkillMeta, getAllSkillMeta, } from './project-types/index.js';
package/dist/index.js CHANGED
@@ -139,7 +139,7 @@ export { STEP_ORDER, GUIDED_STEP_CRITERIA, getNextStep, isValidTransition, getSt
139
139
  // =============================================================================
140
140
  // Platform Skills (platform-specific prompt expansions)
141
141
  // =============================================================================
142
- export { platformSkills, designSkill, sketchSkill, prdSkill, refineSkill, refineItemSkill, architectureSkill, sessionNotesSkill, buildSkill, scaffoldSkill, outlineSkill, literatureReviewSkill, draftSectionSkill, peerReviewSkill, researchScaffoldSkill, businessVisionSkill, marketAnalysisSkill, competitorAnalysisSkill, financialModelSkill, pitchOutlineSkill, businessReviewSkill, } from './skills/index.js';
142
+ export { platformSkills, designSkill, sketchSkill, prdSkill, refineSkill, refineItemSkill, architectureSkill, sessionNotesSkill, buildSkill, scaffoldSkill, outlineSkill, literatureReviewSkill, draftSectionSkill, peerReviewSkill, researchScaffoldSkill, businessVisionSkill, marketAnalysisSkill, competitorAnalysisSkill, financialModelSkill, pitchOutlineSkill, businessReviewSkill, brandSetupSkill, contentStrategySkill, contentCalendarSkill, createContentSkill, contentReviewSkill, curriculumDesignSkill, lessonPlanSkill, assessmentDesignSkill, courseReviewSkill, } from './skills/index.js';
143
143
  // =============================================================================
144
144
  // Contextual Actions (skill invocations with context)
145
145
  // =============================================================================
@@ -120,6 +120,7 @@ export class SQLiteDocumentRepository {
120
120
  'research-model': 0,
121
121
  'business-model': 0,
122
122
  'brand-model': 0,
123
+ 'curriculum-model': 0,
123
124
  };
124
125
  for (const row of results) {
125
126
  counts[row.doc_type] = row.count;
@@ -18,6 +18,7 @@ const DOC_TYPE_ENUM = [
18
18
  'research-model',
19
19
  'business-model',
20
20
  'brand-model',
21
+ 'curriculum-model',
21
22
  ];
22
23
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
23
24
  export function createDocumentTools(config) {
@@ -19,7 +19,7 @@ export type WorkItemType = 'feature' | 'bug' | 'tech-debt' | 'chore';
19
19
  export type WorkItemStatus = 'backlog' | 'in_progress' | 'completed' | 'skipped';
20
20
  export type WorkItemPriority = 'critical' | 'high' | 'medium' | 'low';
21
21
  export type GuidedStep = 'plan' | 'implement' | 'test' | 'commit' | 'review';
22
- export type DocumentType = 'prd' | 'architecture' | 'design' | 'notes' | 'plan' | 'app-model' | 'research-model' | 'business-model' | 'brand-model';
22
+ export type DocumentType = 'prd' | 'architecture' | 'design' | 'notes' | 'plan' | 'app-model' | 'research-model' | 'business-model' | 'brand-model' | 'curriculum-model';
23
23
  export type PlanStatus = 'draft' | 'approved' | 'in_progress' | 'completed' | 'abandoned';
24
24
  export interface Project {
25
25
  id: number;
@@ -58,6 +58,17 @@ export const ACTION_META_REGISTRY = {
58
58
  'business-vision': { id: 'business-vision', label: 'Vision', icon: 'Target', description: 'Define your business' },
59
59
  'market-analysis': { id: 'market-analysis', label: 'Market', icon: 'TrendingUp', description: 'Analyze the market' },
60
60
  'competitor-analysis': { id: 'competitor-analysis', label: 'Competitors', icon: 'Swords', description: 'Map competition' },
61
+ // ── Content & Marketing actions ───────────────────────────────────────────
62
+ 'brand-setup': { id: 'brand-setup', label: 'Brand', icon: 'Palette', description: 'Set up brand identity' },
63
+ 'content-strategy': { id: 'content-strategy', label: 'Strategy', icon: 'Target', description: 'Define pillars' },
64
+ 'content-calendar': { id: 'content-calendar', label: 'Calendar', icon: 'Calendar', description: 'Plan content' },
65
+ 'create-content': { id: 'create-content', label: 'Create', icon: 'PenTool', description: 'Write content' },
66
+ 'content-review': { id: 'content-review', label: 'Review', icon: 'CheckCircle', description: 'Check quality' },
67
+ // ── Course / Training actions ─────────────────────────────────────────────
68
+ 'curriculum-design': { id: 'curriculum-design', label: 'Curriculum', icon: 'School', description: 'Define structure' },
69
+ 'lesson-plan': { id: 'lesson-plan', label: 'Lessons', icon: 'BookOpen', description: 'Plan lessons' },
70
+ 'assessment-design': { id: 'assessment-design', label: 'Assess', icon: 'ClipboardCheck', description: 'Create assessments' },
71
+ 'course-review': { id: 'course-review', label: 'Review', icon: 'CheckCircle', description: 'Quality check' },
61
72
  'financial-model': { id: 'financial-model', label: 'Financials', icon: 'DollarSign', description: 'Build projections' },
62
73
  'pitch-outline': { id: 'pitch-outline', label: 'Pitch', icon: 'Rocket', description: 'Structure a pitch' },
63
74
  'business-review': { id: 'business-review', label: 'Review', icon: 'ShieldCheck', description: 'Validate the plan' },
@@ -577,47 +577,47 @@ export const courseConfig = {
577
577
  {
578
578
  id: 'curriculum',
579
579
  label: 'Curriculum',
580
- description: 'Define learning objectives',
580
+ description: 'Define modules and learning objectives',
581
581
  completionCheck: 'has-document',
582
- completionDocType: 'syllabus',
582
+ completionDocType: 'curriculum-model',
583
583
  },
584
584
  {
585
585
  id: 'lessons',
586
- label: 'Lessons',
587
- description: 'Create lesson content',
586
+ label: 'Lesson Plans',
587
+ description: 'Break modules into lessons',
588
588
  completionCheck: 'has-workitems',
589
589
  },
590
590
  {
591
- id: 'exercises',
592
- label: 'Exercises',
593
- description: 'Create practice exercises',
591
+ id: 'content',
592
+ label: 'Content',
593
+ description: 'Write lesson materials',
594
594
  completionCheck: 'has-workitems',
595
595
  },
596
596
  {
597
597
  id: 'assessment',
598
598
  label: 'Assessment',
599
- description: 'Create quizzes and tests',
599
+ description: 'Create exercises and quizzes',
600
600
  completionCheck: 'manual',
601
601
  },
602
- ],
603
- suggestedAgents: [
604
- { role: 'instructor', label: 'Instructor', description: 'Course design and lesson planning' },
605
602
  {
606
- role: 'content-designer',
607
- label: 'Content Designer',
608
- description: 'Exercise and assessment creation',
603
+ id: 'review',
604
+ label: 'Review',
605
+ description: 'Pedagogical quality review',
606
+ completionCheck: 'manual',
609
607
  },
610
- { role: 'reviewer', label: 'Reviewer', description: 'Content review and quality assurance' },
608
+ ],
609
+ suggestedAgents: [
610
+ { role: 'instructor', label: 'Instructor', description: 'Curriculum design, sequencing, pedagogy' },
611
+ { role: 'content-designer', label: 'Content Designer', description: 'Lesson planning, exercises, assessments' },
612
+ { role: 'reviewer', label: 'Reviewer', description: 'Pedagogical quality, balance, coverage' },
611
613
  ],
612
614
  documentTemplates: [
613
- { type: 'syllabus', label: 'Syllabus', description: 'Course overview and objectives' },
614
- { type: 'lesson', label: 'Lesson', description: 'Lesson content' },
615
- { type: 'exercise', label: 'Exercise', description: 'Practice exercise' },
616
- { type: 'assessment', label: 'Assessment', description: 'Quiz or test' },
615
+ { type: 'curriculum-model', label: 'Curriculum', description: 'Course structure, modules, lessons, assessments' },
616
+ { type: 'notes', label: 'Lesson Notes', description: 'Lesson content and materials' },
617
617
  { type: 'session-notes', label: 'Session Notes', description: 'Summary of work done' },
618
618
  ],
619
- projectActions: ['session-notes'],
620
- workItemActions: ['explain'],
619
+ projectActions: ['curriculum-design', 'lesson-plan', 'assessment-design', 'course-review', 'session-notes'],
620
+ workItemActions: ['refine-item', 'explain'],
621
621
  workItemLabels: {
622
622
  feature: { short: 'LS', full: 'Lesson' },
623
623
  bug: { short: 'FX', full: 'Fix' },
@@ -625,34 +625,36 @@ export const courseConfig = {
625
625
  chore: { short: 'TK', full: 'Task' },
626
626
  },
627
627
  systemPromptContext: 'This is an educational project. The user is creating a course or training material. Focus on clear explanations, progressive complexity, and effective learning design.',
628
- systemPromptSection: `## Project Context: Course / Training Material
628
+ systemPromptSection: `## Project Context: Course / Training
629
629
 
630
- You are assisting with an educational project. Your role is to help the user create an effective, well-structured learning experience.
630
+ You are assisting with an educational project. Your role is to help the user create an effective, well-structured curriculum. You are a **curriculum designer**, not a subject matter expert — the user provides domain knowledge via the Knowledge Base.
631
+
632
+ ### Curriculum Model
633
+ This project uses a Curriculum Model that tracks the course structure: modules (with learning objectives), lessons (typed: theory, hands-on, demo, discussion, reading), and assessments (quiz, exercise, project). Always read the model before making suggestions.
631
634
 
632
635
  ### Workflow
633
- 1. **Curriculum Design** — Define learning objectives, prerequisites, progression
634
- 2. **Module Structure** — Organize into modules/lessons with clear scope
635
- 3. **Content Creation** — Write lessons with explanations, examples, visuals
636
- 4. **Exercises** — Create practice activities, coding challenges, projects
637
- 5. **Assessment** — Design quizzes, tests, rubrics
638
- 6. **Review** — Pedagogical review, difficulty calibration, accessibility
636
+ 1. **Curriculum Design** — Define modules, learning objectives, prerequisites, progression
637
+ 2. **Lesson Plans** — Break modules into typed lessons with time estimates
638
+ 3. **Content** — Write lesson materials (user provides domain expertise, you help structure)
639
+ 4. **Assessment** — Design quizzes, exercises, projects linked to objectives
640
+ 5. **Review** — Check pedagogical quality, balance, coverage
639
641
 
640
642
  ### Work Items
641
- - **Lesson** (type: feature) — a lesson or module to create
642
- - **Fix** (type: bug) — corrections, confusing explanations to clarify
643
- - **Refactor** (type: tech-debt) — restructuring content flow or difficulty curve
644
- - **Task** (type: chore) — formatting, media assets, publishing
645
-
646
- ### Writing Conventions
647
- - Start every lesson with clear learning objectives (use Bloom's taxonomy)
648
- - Build knowledge progressivelyprerequisites before advanced concepts
649
- - Include hands-on exercises for every concept taught
650
- - Use varied examplesabstract + concrete, simple + complex
651
- - Provide "check your understanding" moments before moving forward
652
- - Consider different learning styles (reading, doing, watching)
643
+ - **Lesson** (type: feature) — a lesson to develop
644
+ - **Fix** (type: bug) — corrections, unclear explanations
645
+ - **Refactor** (type: tech-debt) — restructuring content flow
646
+ - **Task** (type: chore) — formatting, media, publishing
647
+
648
+ ### Pedagogical Principles
649
+ - Every module needs clear learning objectives (what can the student DO after?)
650
+ - Balance theory and practice at least 40% hands-on
651
+ - Build progressively prerequisites before advanced concepts
652
+ - Assess what you teach every objective should be testable
653
+ - Vary lesson types to maintain engagement
654
+ - Check time balance modules should be roughly similar in length
653
655
 
654
656
  ### Team Agents
655
- - **Instructor** — curriculum design, lesson planning, pedagogy
656
- - **Writer** — content creation, explanations, narratives
657
- - **Reviewer** — accuracy, difficulty assessment, completeness`,
657
+ - **Instructor** — curriculum design, sequencing, pedagogy
658
+ - **Content Designer** — lesson planning, exercises, assessments
659
+ - **Reviewer** — pedagogical quality, balance, difficulty calibration`,
658
660
  };
@@ -113,6 +113,17 @@ export const SKILL_META_REGISTRY = {
113
113
  'financial-model': { id: 'financial-model', label: 'Financial Model', description: 'Build revenue and cost projections', icon: 'DollarSign', category: 'analysis' },
114
114
  'pitch-outline': { id: 'pitch-outline', label: 'Pitch Outline', description: 'Structure an investor pitch', icon: 'Rocket', category: 'planning' },
115
115
  'business-review': { id: 'business-review', label: 'Business Review', description: 'Validate the business plan', icon: 'ShieldCheck', category: 'analysis' },
116
+ // ── Content & Marketing Skills ───────────────────────────────────────────
117
+ 'brand-setup': { id: 'brand-setup', label: 'Brand Setup', description: 'Define brand identity, voice, and visual guidelines', icon: 'Palette', category: 'planning' },
118
+ 'content-strategy': { id: 'content-strategy', label: 'Content Strategy', description: 'Define content pillars and cadence', icon: 'Target', category: 'planning' },
119
+ 'content-calendar': { id: 'content-calendar', label: 'Content Calendar', description: 'Plan content for a period', icon: 'Calendar', category: 'planning' },
120
+ 'create-content': { id: 'create-content', label: 'Create Content', description: 'Write copy and visual brief', icon: 'PenTool', category: 'development' },
121
+ 'content-review': { id: 'content-review', label: 'Content Review', description: 'Review for brand consistency', icon: 'CheckCircle', category: 'analysis' },
122
+ // ── Course / Training Skills ─────────────────────────────────────────────
123
+ 'curriculum-design': { id: 'curriculum-design', label: 'Curriculum', description: 'Define modules and learning objectives', icon: 'School', category: 'planning' },
124
+ 'lesson-plan': { id: 'lesson-plan', label: 'Lesson Plan', description: 'Break modules into lessons', icon: 'BookOpen', category: 'planning' },
125
+ 'assessment-design': { id: 'assessment-design', label: 'Assessment', description: 'Create quizzes and exercises', icon: 'ClipboardCheck', category: 'planning' },
126
+ 'course-review': { id: 'course-review', label: 'Course Review', description: 'Pedagogical quality check', icon: 'CheckCircle', category: 'analysis' },
116
127
  // ── Builtin Skills (agents library) ──────────────────────────────────────
117
128
  'code-review': {
118
129
  id: 'code-review',
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Business Plan Skills
3
+ *
4
+ * business-vision, market-analysis, competitor-analysis, financial-model, pitch-outline, business-review
5
+ */
6
+ export declare const businessVisionSkill: import("@compilr-dev/agents").Skill;
7
+ export declare const marketAnalysisSkill: import("@compilr-dev/agents").Skill;
8
+ export declare const competitorAnalysisSkill: import("@compilr-dev/agents").Skill;
9
+ export declare const financialModelSkill: import("@compilr-dev/agents").Skill;
10
+ export declare const pitchOutlineSkill: import("@compilr-dev/agents").Skill;
11
+ export declare const businessReviewSkill: import("@compilr-dev/agents").Skill;
@@ -0,0 +1,341 @@
1
+ /**
2
+ * Business Plan Skills
3
+ *
4
+ * business-vision, market-analysis, competitor-analysis, financial-model, pitch-outline, business-review
5
+ */
6
+ import { defineSkill } from '@compilr-dev/agents';
7
+ export const businessVisionSkill = defineSkill({
8
+ name: 'business-vision',
9
+ description: 'Define the business identity, problem, solution, and value proposition',
10
+ prompt: `You are in BUSINESS VISION MODE. Help the user define and articulate their business idea.
11
+
12
+ ## Step 1: Assess Current State
13
+ 1. Use \`business_model_get\` with scope: "identity" to check if a model exists
14
+ 2. Report what's already defined
15
+
16
+ ## Step 2: Gather Core Information
17
+ Ask in batches (only what's not already defined):
18
+ - **Business name** and tagline
19
+ - **Problem**: What specific pain point do your target customers experience?
20
+ - **Solution**: How does your product/service solve this?
21
+ - **Unique value**: Why you instead of alternatives? What's the unfair advantage?
22
+ - **Target customer**: Who specifically are you building for?
23
+ - **Stage**: idea, pre-seed, seed, series-a, growth, or established?
24
+ - **Industry/sector**
25
+
26
+ ## Step 3: Craft the Value Proposition
27
+ Help refine the problem-solution-uniqueValue into a compelling narrative:
28
+ - Problem should be specific and relatable
29
+ - Solution should directly address the problem
30
+ - Unique value should differentiate from ALL alternatives (including doing nothing)
31
+
32
+ ## Step 4: Save to Model
33
+ - \`business_model_update\` with op: "set_identity" for name, tagline, mission, stage, industry, sector
34
+ - \`business_model_update\` with op: "set_value_proposition" for problem, solution, uniqueValue, targetCustomer
35
+
36
+ ## Step 5: Suggest Next Steps
37
+ After saving, suggest:
38
+ - "Run /market-analysis to size your market and define customer segments"
39
+ - "Run /competitor-analysis to map the competitive landscape"
40
+
41
+ ## Rules
42
+ - Interactive — ask questions, don't assume
43
+ - Push back on vague answers ("everyone" is not a target customer)
44
+ - A good value proposition is specific, measurable, and defensible`,
45
+ tags: ['business', 'planning', 'vision'],
46
+ });
47
+ export const marketAnalysisSkill = defineSkill({
48
+ name: 'market-analysis',
49
+ description: 'Analyze market size, trends, and customer segments',
50
+ prompt: `You are in MARKET ANALYSIS MODE. Help the user understand their market.
51
+
52
+ ## Step 1: Assess Current State
53
+ 1. Use \`business_model_get\` with scope: "overview" for context
54
+ 2. Use \`business_model_get\` with scope: "market" for existing market data
55
+ 3. Check Knowledge Base for market research sources
56
+
57
+ ## Step 2: Define Customer Segments
58
+ For each segment:
59
+ - Name and description
60
+ - Estimated size (number of potential customers or revenue opportunity)
61
+ - Key pain points (what problems they face)
62
+ - Willingness to pay
63
+
64
+ Save each: \`business_model_update\` with op: "segment_add", segment: { name, description, size, painPoints, willingness }
65
+
66
+ ## Step 3: Market Sizing
67
+ Guide through TAM/SAM/SOM:
68
+ - **TAM** (Total Addressable Market): If everyone who could use your product did, how big is the market?
69
+ - **SAM** (Serviceable Addressable Market): Realistically, which portion can you reach?
70
+ - **SOM** (Serviceable Obtainable Market): In the first 1-3 years, what share can you capture?
71
+
72
+ Each should have a value (e.g., "$4.2B"), description, and source.
73
+ Save: \`business_model_update\` with op: "set_market_size", market_size: { tam: {...}, sam: {...}, som: {...} }
74
+
75
+ ## Step 4: Trends and Growth
76
+ - Identify 3-5 market trends relevant to the business
77
+ - Estimate market growth rate
78
+ Save: \`business_model_update\` with op: "set_market_size", market_size: { trends: [...], growthRate: "..." }
79
+
80
+ ## Step 5: Generate Work Items
81
+ Create Milestone work items for:
82
+ - "Validate segment: [name]" for each segment (priority: high)
83
+ - "Source market data" if TAM/SAM/SOM need better sources (priority: medium)
84
+
85
+ ## Rules
86
+ - Always ask for sources — investors will ask "where did you get that number?"
87
+ - Challenge unrealistic sizing (a $100B TAM for a niche SaaS is suspicious)
88
+ - Bottom-up sizing is more credible than top-down
89
+ - Distinguish between potential customers and paying customers`,
90
+ tags: ['business', 'analysis', 'market'],
91
+ });
92
+ export const competitorAnalysisSkill = defineSkill({
93
+ name: 'competitor-analysis',
94
+ description: 'Map the competitive landscape — identify competitors, strengths, weaknesses, positioning',
95
+ prompt: `You are in COMPETITOR ANALYSIS MODE. Help the user understand their competition.
96
+
97
+ ## Step 1: Assess Current State
98
+ 1. Use \`business_model_get\` with scope: "competitors" for existing data
99
+ 2. Read Knowledge Base for competitor research, reports, articles
100
+ 3. Use \`business_model_get\` with scope: "identity" for context on the business
101
+
102
+ ## Step 2: Identify Competitors
103
+ For each competitor (guide user to list 3-8):
104
+ - Direct competitors (same product, same market)
105
+ - Indirect competitors (different product, same problem)
106
+ - Potential competitors (could enter the market)
107
+
108
+ ## Step 3: Analyze Each Competitor
109
+ For each, gather:
110
+ - **Name** and brief description
111
+ - **Strengths** (2-4): what they do well
112
+ - **Weaknesses** (2-4): where they fall short
113
+ - **Market position**: leader, challenger, niche, or emerging
114
+ - **Pricing** model/range
115
+ - **URL** (if applicable)
116
+
117
+ Save each: \`business_model_update\` with op: "competitor_add", competitor: { name, description, strengths, weaknesses, marketPosition, pricing, url }
118
+
119
+ ## Step 4: Define Competitive Advantages
120
+ Based on the competitor analysis, what are YOUR advantages?
121
+ - What do you do that no competitor does?
122
+ - Where are the gaps in the market?
123
+ - What would be hard for competitors to replicate?
124
+
125
+ Save: \`business_model_update\` with op: "set_competitive_advantages", advantages: [...]
126
+
127
+ ## Step 5: Positioning Matrix
128
+ Help the user define a 2D positioning matrix:
129
+ - Ask: "What are the two most important dimensions in your market?" (e.g., price vs. features, simplicity vs. power, general vs. specialized)
130
+ - Define axes with labels
131
+ - Score each competitor (0-100) on both axes
132
+ - Score the user's business position
133
+
134
+ Save positioning: \`business_model_update\` op: "set_positioning", positioning: { xAxis: "Domain Specialization", yAxis: "Multi-Agent Capability", xLow: "General", xHigh: "Specialized", yLow: "Single", yHigh: "Multi-Agent", selfX: 85, selfY: 90 }
135
+
136
+ Then update each competitor with position: \`business_model_update\` op: "competitor_update", competitor_id: "...", updates: { positionX: 30, positionY: 70 }
137
+
138
+ This generates a visual positioning chart in the Business Model Viewer.
139
+
140
+ ## Step 6: Generate Work Items
141
+ Create work items for:
142
+ - "Deep-dive: [competitor name]" for competitors needing more research (type: Research)
143
+ - "Validate advantage: [advantage]" for unproven competitive claims (type: Research)
144
+
145
+ ## Rules
146
+ - "We have no competitors" is always wrong — there's always an alternative (even doing nothing)
147
+ - Be honest about competitor strengths — investors will know
148
+ - Focus on defensible advantages, not features that can be copied
149
+ - Include both current competitors and potential future entrants`,
150
+ tags: ['business', 'analysis', 'competition'],
151
+ });
152
+ export const financialModelSkill = defineSkill({
153
+ name: 'financial-model',
154
+ description: 'Build revenue forecasts, cost structure, and break-even analysis',
155
+ prompt: `You are in FINANCIAL MODEL MODE. Help the user build financial projections.
156
+
157
+ ## Step 1: Assess Current State
158
+ 1. Use \`business_model_get\` with scope: "financials" for existing projections
159
+ 2. Use \`business_model_get\` with scope: "canvas" for revenue streams and cost structure
160
+ 3. Use \`business_model_get\` with scope: "overview" for business context
161
+
162
+ ## Step 2: Define Revenue Streams
163
+ For each revenue stream (if not already defined):
164
+ - Name, type (subscription, one-time, usage, etc.)
165
+ - Projected revenue
166
+ Save: \`business_model_update\` op: "revenue_stream_add"
167
+
168
+ ## Step 3: Build Revenue Forecasts
169
+ For each revenue stream, guide through assumptions:
170
+ - Number of customers per period
171
+ - Average revenue per customer
172
+ - Growth rate
173
+ - Seasonality or ramp-up time
174
+
175
+ Save forecasts: \`business_model_update\` op: "forecast_add", financials_field: { type: "revenue", period, category, amount }
176
+
177
+ Use realistic time horizons:
178
+ - Startup: monthly for Year 1, quarterly for Years 2-3
179
+ - Growth stage: quarterly for 3 years
180
+ - Established: yearly for 5 years
181
+
182
+ ## Step 4: Define Cost Structure
183
+ Guide through expense categories:
184
+ - **Fixed costs**: salaries, rent, subscriptions, insurance
185
+ - **Variable costs**: hosting, transaction fees, marketing spend (scales with revenue)
186
+
187
+ Save each: \`business_model_update\` op: "cost_item_add"
188
+ Save forecasts: \`business_model_update\` op: "forecast_add", financials_field: { type: "expense", period, category, amount }
189
+
190
+ ## Step 5: Break-Even Analysis
191
+ Calculate:
192
+ - Monthly burn rate (total fixed + variable costs)
193
+ - Monthly revenue at steady state
194
+ - Break-even point (when cumulative revenue > cumulative costs)
195
+
196
+ Save: \`business_model_update\` op: "set_financials_fields", financials_field: { breakEvenPoint: "Month 18", fundingNeeds: "$2M", useOfFunds: "70% product, 20% marketing, 10% ops" }
197
+
198
+ ## Step 6: Document Assumptions
199
+ List all key assumptions made:
200
+ - Customer acquisition rate
201
+ - Churn rate
202
+ - Pricing changes
203
+ - Hiring timeline
204
+
205
+ Save: \`business_model_update\` op: "set_financials_fields", financials_field: { assumptions: [...] }
206
+
207
+ ## Rules
208
+ - Always state assumptions explicitly — hidden assumptions kill credibility
209
+ - Use conservative estimates (investors multiply your timeline by 2x)
210
+ - Revenue should be bottoms-up (customers × price), not top-down (% of TAM)
211
+ - Include a "what if" scenario: what happens if growth is 50% slower?
212
+ - Round to meaningful numbers — $1.2M not $1,237,849`,
213
+ tags: ['business', 'analysis', 'financial'],
214
+ });
215
+ export const pitchOutlineSkill = defineSkill({
216
+ name: 'pitch-outline',
217
+ description: 'Structure an investor pitch or executive summary from the Business Model',
218
+ prompt: `You are in PITCH OUTLINE MODE. Help the user create a compelling pitch from their Business Model.
219
+
220
+ ## Step 1: Assess Readiness
221
+ 1. Use \`business_model_get\` with scope: "full" to review the complete model
222
+ 2. Check completeness: identity, value prop, market, competitors, financials
223
+ 3. If major gaps exist, note them and suggest which skills to run first
224
+
225
+ ## Step 2: Choose Format
226
+ Ask the user:
227
+ - **Elevator pitch** (30 seconds — 3 sentences)
228
+ - **Executive summary** (1 page — for email/document)
229
+ - **Pitch deck narrative** (10-12 slides — investor presentation)
230
+
231
+ ## Step 3: Structure the Pitch
232
+ For a pitch deck (adapt for other formats):
233
+
234
+ 1. **Problem** — The pain point (from valueProposition.problem)
235
+ 2. **Solution** — Your approach (from valueProposition.solution)
236
+ 3. **Market** — Size and opportunity (from market TAM/SAM/SOM)
237
+ 4. **Product** — What you've built / will build
238
+ 5. **Business Model** — How you make money (from canvas.revenueStreams)
239
+ 6. **Traction** — What you've achieved so far (milestones, users, revenue)
240
+ 7. **Competition** — Why you win (from competitors + competitiveAdvantages)
241
+ 8. **Team** — Why this team (from team)
242
+ 9. **Financials** — Projections and key metrics (from financials)
243
+ 10. **The Ask** — What you need (from financials.fundingNeeds + useOfFunds)
244
+
245
+ ## Step 4: Draft the Narrative
246
+ For each section:
247
+ - Write 2-3 sentences that tell a story
248
+ - Lead with the strongest point
249
+ - Use specific numbers, not vague claims
250
+ - Save as a project document
251
+
252
+ ## Step 5: Generate Work Items
253
+ Create Milestone work items:
254
+ - "Draft: [section name]" for each pitch section
255
+ - "Prepare: supporting data" for claims that need evidence
256
+
257
+ ## Rules
258
+ - The pitch tells a STORY, not a list of facts
259
+ - Start with emotion (the problem), end with opportunity (the ask)
260
+ - Every claim should be backed by data from the Business Model
261
+ - If financials are weak, lead with market size and traction instead
262
+ - The ask should be specific: "$X for Y months to achieve Z"`,
263
+ tags: ['business', 'writing', 'pitch'],
264
+ });
265
+ export const businessReviewSkill = defineSkill({
266
+ name: 'business-review',
267
+ description: 'Validate the business plan — find gaps, weak assumptions, and missing elements',
268
+ prompt: `You are in BUSINESS REVIEW MODE. Critically evaluate the business plan like an investor would.
269
+
270
+ ## Step 1: Load and Assess
271
+ 1. Use \`business_model_get\` with scope: "full" to read everything
272
+ 2. Run \`business_model_validate\` for structural issues
273
+
274
+ ## Step 2: Completeness Check
275
+ Score each section (Complete / Partial / Missing):
276
+ - Identity & Value Proposition
277
+ - Market Analysis (TAM/SAM/SOM, segments)
278
+ - Competitive Analysis (competitors, advantages)
279
+ - Business Model Canvas (revenue, costs, channels, partnerships)
280
+ - Financial Projections (revenue, expenses, break-even)
281
+ - Go-to-Market (phases, strategy)
282
+ - Team
283
+
284
+ Present a scorecard: "7/7 complete" or "5/7 — missing Financials and GTM"
285
+
286
+ ## Step 3: Assumption Audit
287
+ For each key assumption:
288
+ - Is it stated explicitly?
289
+ - Is there evidence supporting it?
290
+ - What happens if it's wrong?
291
+
292
+ Flag assumptions that are:
293
+ - **Optimistic** — "We'll capture 10% of the market in Year 1" (unlikely for most startups)
294
+ - **Unvalidated** — claims without data or customer evidence
295
+ - **Risky** — single points of failure
296
+
297
+ ## Step 4: Competitive Blind Spots
298
+ - Are there competitors missing from the analysis?
299
+ - Are competitive advantages truly defensible?
300
+ - What would a well-funded competitor do to beat you?
301
+ - Is the pricing competitive given the alternatives?
302
+
303
+ ## Step 5: Financial Reality Check
304
+ - Do revenue projections match the market sizing? (can't project $100M revenue in a $50M SAM)
305
+ - Is the cost structure realistic? (engineering salaries, cloud costs, marketing spend)
306
+ - Is the break-even timeline achievable with the stated funding?
307
+ - What's the burn rate, and how long does the funding last?
308
+
309
+ ## Step 6: Generate Review Report
310
+ Structure as:
311
+
312
+ ### Scorecard
313
+ Section-by-section completeness
314
+
315
+ ### Strengths (what's compelling)
316
+ 2-3 strongest elements
317
+
318
+ ### Critical Issues (must fix)
319
+ Problems that would stop an investor
320
+
321
+ ### Major Issues (should fix)
322
+ Significant weaknesses
323
+
324
+ ### Recommendations
325
+ Prioritized action items
326
+
327
+ Write report to a project document.
328
+
329
+ ## Step 7: Create Work Items
330
+ - Type "Issue" (bug) for critical and major issues
331
+ - Type "Research" (tech-debt) for unvalidated assumptions
332
+ - Type "Milestone" (feature) for missing sections
333
+
334
+ ## Rules
335
+ - Be constructive but honest — sugar-coating helps nobody
336
+ - Think like an investor: "Would I put money into this?"
337
+ - Every issue should have a specific recommendation
338
+ - Acknowledge what's strong — it builds credibility for the critique
339
+ - Focus on the 3-5 things that matter most, not a list of 20 nitpicks`,
340
+ tags: ['business', 'review', 'validation'],
341
+ });
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Content & Marketing Skills
3
+ *
4
+ * brand-setup, content-strategy, content-calendar, create-content, content-review
5
+ */
6
+ export declare const brandSetupSkill: import("@compilr-dev/agents").Skill;
7
+ export declare const contentStrategySkill: import("@compilr-dev/agents").Skill;
8
+ export declare const contentCalendarSkill: import("@compilr-dev/agents").Skill;
9
+ export declare const createContentSkill: import("@compilr-dev/agents").Skill;
10
+ export declare const contentReviewSkill: import("@compilr-dev/agents").Skill;