@compilr-dev/sdk 0.7.7 → 0.7.9
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 +1 -1
- package/dist/index.js +1 -1
- package/dist/platform/sqlite/document-repository.js +2 -0
- package/dist/platform/tools/document-tools.js +2 -0
- package/dist/platform/types.d.ts +2 -2
- package/dist/project-types/action-meta.js +11 -0
- package/dist/project-types/configs.d.ts +1 -0
- package/dist/project-types/configs.js +130 -43
- package/dist/project-types/index.d.ts +1 -1
- package/dist/project-types/index.js +3 -2
- package/dist/project-types/skill-meta.js +11 -0
- package/dist/skills/book-skills.d.ts +10 -0
- package/dist/skills/book-skills.js +195 -0
- package/dist/skills/business-skills.d.ts +11 -0
- package/dist/skills/business-skills.js +341 -0
- package/dist/skills/content-skills.d.ts +10 -0
- package/dist/skills/content-skills.js +184 -0
- package/dist/skills/course-skills.d.ts +9 -0
- package/dist/skills/course-skills.js +164 -0
- package/dist/skills/index.d.ts +1 -1
- package/dist/skills/index.js +1 -1
- package/dist/skills/platform-skills.d.ts +11 -35
- package/dist/skills/platform-skills.js +38 -1933
- package/dist/skills/research-skills.d.ts +10 -0
- package/dist/skills/research-skills.js +569 -0
- package/dist/skills/software-skills.d.ts +14 -0
- package/dist/skills/software-skills.js +838 -0
- package/package.json +1 -1
|
@@ -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;
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content & Marketing Skills
|
|
3
|
+
*
|
|
4
|
+
* brand-setup, content-strategy, content-calendar, create-content, content-review
|
|
5
|
+
*/
|
|
6
|
+
import { defineSkill } from '@compilr-dev/agents';
|
|
7
|
+
export const brandSetupSkill = defineSkill({
|
|
8
|
+
name: 'brand-setup',
|
|
9
|
+
description: 'Define brand identity, visual guidelines, voice, audience, and content strategy',
|
|
10
|
+
prompt: `You are in BRAND SETUP MODE. Guide the user through building their Brand Model step by step.
|
|
11
|
+
|
|
12
|
+
## Step 1: Brand Identity
|
|
13
|
+
1. Use \`brand_model_get\` with scope: "overview" to check existing state
|
|
14
|
+
2. Ask for: brand name, tagline, 2-3 sentence description
|
|
15
|
+
3. Save: \`brand_model_update\` op: "set_brand_identity"
|
|
16
|
+
|
|
17
|
+
## Step 2: Values & Mission
|
|
18
|
+
Ask for 3-5 core values and an optional mission statement.
|
|
19
|
+
Save: \`brand_model_update\` op: "set_brand_identity" with values and mission
|
|
20
|
+
|
|
21
|
+
## Step 3: Color Palette
|
|
22
|
+
Ask for brand colors with their roles (primary, secondary, accent, background, text).
|
|
23
|
+
For each: \`brand_model_update\` op: "add_color", color: { role, name, hex }
|
|
24
|
+
|
|
25
|
+
## Step 4: Font Hierarchy
|
|
26
|
+
Ask what fonts the brand uses. Map to roles: title, subtitle, heading, subheading, body, caption.
|
|
27
|
+
For each: \`brand_model_update\` op: "add_font", font: { role, family, weight }
|
|
28
|
+
|
|
29
|
+
## Step 5: Visual Styles
|
|
30
|
+
Ask about photography style, graphic/illustration style, icon style.
|
|
31
|
+
Save each: \`brand_model_update\` op: "set_photography_style" / "set_graphic_style" / "set_icon_style", style_value: "..."
|
|
32
|
+
|
|
33
|
+
## Step 6: Brand Voice
|
|
34
|
+
Ask about:
|
|
35
|
+
- Tone (formal, casual, playful, authoritative, empathetic, technical, inspirational)
|
|
36
|
+
- Persona ("a knowledgeable friend who explains without jargon")
|
|
37
|
+
- Words/phrases to USE and AVOID
|
|
38
|
+
- 1-3 writing samples that represent the brand voice
|
|
39
|
+
Save: \`brand_model_update\` op: "set_voice", voice: { tone, persona, doUse, dontUse, writingSamples }
|
|
40
|
+
|
|
41
|
+
## Step 7: Audience Personas
|
|
42
|
+
For each target persona: name, role/title, pain points, platforms they use.
|
|
43
|
+
Save: \`brand_model_update\` op: "add_persona", persona: { name, role, painPoints, platforms }
|
|
44
|
+
|
|
45
|
+
## Step 8: Platforms
|
|
46
|
+
For each platform: id (linkedin, instagram, twitter, blog, newsletter), formats, cadence, tone adjustment.
|
|
47
|
+
Save: \`brand_model_update\` op: "add_platform", platform: { id, active: true, formats, postsPerWeek, toneDelta }
|
|
48
|
+
|
|
49
|
+
## Step 9: Content Pillars
|
|
50
|
+
Define 3-5 thematic pillars with example topics and weight %.
|
|
51
|
+
Save: \`brand_model_update\` op: "add_pillar", pillar: { name, description, exampleTopics, weight }
|
|
52
|
+
|
|
53
|
+
## Step 10: Validation
|
|
54
|
+
Run \`brand_model_validate\` to check completeness. Report gaps and ask if user wants to fill them.
|
|
55
|
+
|
|
56
|
+
## Rules
|
|
57
|
+
- This is INTERACTIVE — ask one section at a time, don't overwhelm
|
|
58
|
+
- If the user already has brand guidelines, they can paste them and you extract the data
|
|
59
|
+
- Skip sections the user doesn't have answers for — they can complete later
|
|
60
|
+
- After each section, confirm what was saved before moving on`,
|
|
61
|
+
tags: ['content', 'brand', 'setup'],
|
|
62
|
+
});
|
|
63
|
+
export const contentStrategySkill = defineSkill({
|
|
64
|
+
name: 'content-strategy',
|
|
65
|
+
description: 'Define or refine content pillars and per-platform cadence',
|
|
66
|
+
prompt: `You are in CONTENT STRATEGY MODE. Help the user plan their content approach.
|
|
67
|
+
|
|
68
|
+
## Step 1: Assess
|
|
69
|
+
1. Use \`brand_model_get\` scope: "strategy" for existing pillars
|
|
70
|
+
2. Use \`brand_model_get\` scope: "audience" for personas and platforms
|
|
71
|
+
|
|
72
|
+
## Step 2: Define/Refine Pillars
|
|
73
|
+
- What are the 3-5 themes you want to publish about?
|
|
74
|
+
- For each: name, description, example topics, weight (% of content calendar)
|
|
75
|
+
- Weights should sum to ~100%
|
|
76
|
+
|
|
77
|
+
Save: \`brand_model_update\` op: "add_pillar" or "update_pillar"
|
|
78
|
+
|
|
79
|
+
## Step 3: Platform Cadence
|
|
80
|
+
For each active platform, confirm or set posting frequency.
|
|
81
|
+
Save: \`brand_model_update\` op: "update_platform", updates: { postsPerWeek }
|
|
82
|
+
|
|
83
|
+
## Step 4: Generate Work Items
|
|
84
|
+
Create initial content piece work items based on pillars and cadence.`,
|
|
85
|
+
tags: ['content', 'strategy', 'planning'],
|
|
86
|
+
});
|
|
87
|
+
export const contentCalendarSkill = defineSkill({
|
|
88
|
+
name: 'content-calendar',
|
|
89
|
+
description: 'Generate content piece work items for a specific period',
|
|
90
|
+
prompt: `You are in CONTENT CALENDAR MODE. Plan content for a specific period.
|
|
91
|
+
|
|
92
|
+
## Step 1: Assess
|
|
93
|
+
1. Read Brand Model: pillars, platforms, cadence
|
|
94
|
+
2. Ask: "What period? (e.g., next 2 weeks, this month)"
|
|
95
|
+
|
|
96
|
+
## Step 2: Generate Calendar
|
|
97
|
+
- Distribute pieces across pillars per their weights
|
|
98
|
+
- Respect per-platform cadence (postsPerWeek)
|
|
99
|
+
- Generate topic ideas for each piece
|
|
100
|
+
- Balance content types (carousel, article, thread, etc.)
|
|
101
|
+
|
|
102
|
+
## Step 3: Create Work Items
|
|
103
|
+
For each content piece:
|
|
104
|
+
- Type: "feature" (displayed as "Content Piece")
|
|
105
|
+
- Title: "[Platform] Topic Title"
|
|
106
|
+
- Description: pillar, format, key points to cover
|
|
107
|
+
- Priority: based on timing
|
|
108
|
+
|
|
109
|
+
Present the calendar as a table before creating work items.`,
|
|
110
|
+
tags: ['content', 'calendar', 'planning'],
|
|
111
|
+
});
|
|
112
|
+
export const createContentSkill = defineSkill({
|
|
113
|
+
name: 'create-content',
|
|
114
|
+
description: 'Write copy and generate visual brief for a content piece',
|
|
115
|
+
prompt: `You are in CONTENT CREATION MODE. Create a complete content piece.
|
|
116
|
+
|
|
117
|
+
## Step 1: Read Context
|
|
118
|
+
1. \`brand_model_get\` scope: "voice" — tone, persona, do/don't
|
|
119
|
+
2. \`brand_model_get\` scope: "visual" — colors, fonts, styles
|
|
120
|
+
3. \`brand_model_get\` scope: "audience" — persona and platform conventions
|
|
121
|
+
4. Read the work item for topic, platform, format details
|
|
122
|
+
|
|
123
|
+
## Step 2: Write Copy
|
|
124
|
+
Based on the platform and format:
|
|
125
|
+
- **Headline** — attention-grabbing, on-brand
|
|
126
|
+
- **Body** — main content, matching brand voice
|
|
127
|
+
- **CTA** — clear call-to-action
|
|
128
|
+
- **Hashtags** — platform-appropriate
|
|
129
|
+
- **Slides** (for carousels) — per-slide heading + body
|
|
130
|
+
|
|
131
|
+
## Step 3: Visual Brief
|
|
132
|
+
Generate a detailed visual brief using Brand Model:
|
|
133
|
+
- Layout description (format, dimensions)
|
|
134
|
+
- Color usage (which brand colors where)
|
|
135
|
+
- Font usage (which font roles for which text)
|
|
136
|
+
- Image direction (photography style, subject, mood)
|
|
137
|
+
- Key text elements (text that must appear in the visual)
|
|
138
|
+
|
|
139
|
+
## Step 4: Assemble
|
|
140
|
+
Write everything as structured markdown in the work item description.
|
|
141
|
+
|
|
142
|
+
## Rules
|
|
143
|
+
- ALWAYS read the Brand Model voice section before writing
|
|
144
|
+
- Never use words from the "don't use" list
|
|
145
|
+
- Adapt tone per platform (use toneDelta if defined)
|
|
146
|
+
- The visual brief should be specific enough for a designer to execute`,
|
|
147
|
+
tags: ['content', 'creation', 'writing'],
|
|
148
|
+
});
|
|
149
|
+
export const contentReviewSkill = defineSkill({
|
|
150
|
+
name: 'content-review',
|
|
151
|
+
description: 'Review content for voice consistency, brand alignment, and platform conventions',
|
|
152
|
+
prompt: `You are in CONTENT REVIEW MODE. Review a content piece as the brand's quality gate.
|
|
153
|
+
|
|
154
|
+
## Step 1: Read References
|
|
155
|
+
1. \`brand_model_get\` scope: "voice" — tone, do/don't, persona
|
|
156
|
+
2. \`brand_model_get\` scope: "visual" — brand visual guidelines
|
|
157
|
+
3. Read the content piece (work item description)
|
|
158
|
+
|
|
159
|
+
## Step 2: Voice Check
|
|
160
|
+
- Does the tone match the brand persona?
|
|
161
|
+
- Are any "don't use" words present?
|
|
162
|
+
- Is the language appropriate for the target platform?
|
|
163
|
+
|
|
164
|
+
## Step 3: Brand Alignment Check
|
|
165
|
+
- Does the visual brief use correct brand colors?
|
|
166
|
+
- Are font roles assigned correctly?
|
|
167
|
+
- Does image direction match the photography/graphic style?
|
|
168
|
+
|
|
169
|
+
## Step 4: Platform Check
|
|
170
|
+
- Character limits respected?
|
|
171
|
+
- Hashtag count appropriate?
|
|
172
|
+
- Format matches platform best practices?
|
|
173
|
+
|
|
174
|
+
## Step 5: Report
|
|
175
|
+
- List issues found (voice, brand, platform)
|
|
176
|
+
- Create revision work items for significant issues
|
|
177
|
+
- If clean, mark as reviewed
|
|
178
|
+
|
|
179
|
+
## Rules
|
|
180
|
+
- Be specific about what's wrong and how to fix it
|
|
181
|
+
- Reference the Brand Model section that the issue violates
|
|
182
|
+
- Don't rewrite the content — flag issues for the creator to fix`,
|
|
183
|
+
tags: ['content', 'review', 'quality'],
|
|
184
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Course / Training Skills
|
|
3
|
+
*
|
|
4
|
+
* curriculum-design, lesson-plan, assessment-design, course-review
|
|
5
|
+
*/
|
|
6
|
+
export declare const curriculumDesignSkill: import("@compilr-dev/agents").Skill;
|
|
7
|
+
export declare const lessonPlanSkill: import("@compilr-dev/agents").Skill;
|
|
8
|
+
export declare const assessmentDesignSkill: import("@compilr-dev/agents").Skill;
|
|
9
|
+
export declare const courseReviewSkill: import("@compilr-dev/agents").Skill;
|