@julioventura/opensquad 0.1.17

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.
Files changed (247) hide show
  1. package/README.md +433 -0
  2. package/_opensquad/config/playwright.config.json +11 -0
  3. package/_opensquad/core/architect.agent.yaml +112 -0
  4. package/_opensquad/core/best-practices/_catalog.yaml +126 -0
  5. package/_opensquad/core/best-practices/blog-post.md +132 -0
  6. package/_opensquad/core/best-practices/blog-seo.md +127 -0
  7. package/_opensquad/core/best-practices/brand-resolution-checklist.md +172 -0
  8. package/_opensquad/core/best-practices/copywriting.md +441 -0
  9. package/_opensquad/core/best-practices/data-analysis.md +401 -0
  10. package/_opensquad/core/best-practices/email-newsletter.md +118 -0
  11. package/_opensquad/core/best-practices/email-sales.md +110 -0
  12. package/_opensquad/core/best-practices/image-design.md +348 -0
  13. package/_opensquad/core/best-practices/instagram-feed.md +235 -0
  14. package/_opensquad/core/best-practices/instagram-reels.md +112 -0
  15. package/_opensquad/core/best-practices/instagram-stories.md +107 -0
  16. package/_opensquad/core/best-practices/linkedin-article.md +116 -0
  17. package/_opensquad/core/best-practices/linkedin-post.md +121 -0
  18. package/_opensquad/core/best-practices/researching.md +349 -0
  19. package/_opensquad/core/best-practices/review.md +269 -0
  20. package/_opensquad/core/best-practices/run-recovery.md +61 -0
  21. package/_opensquad/core/best-practices/social-networks-publishing.md +327 -0
  22. package/_opensquad/core/best-practices/squad-creation-checklist.md +32 -0
  23. package/_opensquad/core/best-practices/strategist.md +344 -0
  24. package/_opensquad/core/best-practices/technical-writing.md +365 -0
  25. package/_opensquad/core/best-practices/twitter-post.md +105 -0
  26. package/_opensquad/core/best-practices/twitter-thread.md +122 -0
  27. package/_opensquad/core/best-practices/whatsapp-broadcast.md +107 -0
  28. package/_opensquad/core/best-practices/youtube-script.md +122 -0
  29. package/_opensquad/core/best-practices/youtube-shorts.md +112 -0
  30. package/_opensquad/core/defaults/youtube-video-assembly.json +84 -0
  31. package/_opensquad/core/prompts/build.prompt.md +613 -0
  32. package/_opensquad/core/prompts/design.prompt.md +606 -0
  33. package/_opensquad/core/prompts/discovery.prompt.md +377 -0
  34. package/_opensquad/core/prompts/sherlock-instagram.md +123 -0
  35. package/_opensquad/core/prompts/sherlock-linkedin.md +73 -0
  36. package/_opensquad/core/prompts/sherlock-shared.md +684 -0
  37. package/_opensquad/core/prompts/sherlock-twitter.md +78 -0
  38. package/_opensquad/core/prompts/sherlock-youtube.md +85 -0
  39. package/_opensquad/core/runner.pipeline.md +743 -0
  40. package/_opensquad/core/skills.engine.md +384 -0
  41. package/bin/opensquad.js +108 -0
  42. package/dashboard/index.html +15 -0
  43. package/dashboard/package-lock.json +1964 -0
  44. package/dashboard/package.json +28 -0
  45. package/dashboard/public/assets/avatars/Female1_1wave.png +0 -0
  46. package/dashboard/public/assets/avatars/Female1_2wave.png +0 -0
  47. package/dashboard/public/assets/avatars/Female1_blink.png +0 -0
  48. package/dashboard/public/assets/avatars/Female1_talk.png +0 -0
  49. package/dashboard/public/assets/avatars/Female2_1wave.png +0 -0
  50. package/dashboard/public/assets/avatars/Female2_2wave.png +0 -0
  51. package/dashboard/public/assets/avatars/Female2_blink.png +0 -0
  52. package/dashboard/public/assets/avatars/Female2_talk.png +0 -0
  53. package/dashboard/public/assets/avatars/Female3_blink.png +0 -0
  54. package/dashboard/public/assets/avatars/Female3_talk.png +0 -0
  55. package/dashboard/public/assets/avatars/Female3_wave.png +0 -0
  56. package/dashboard/public/assets/avatars/Female4_blink.png +0 -0
  57. package/dashboard/public/assets/avatars/Female4_talk.png +0 -0
  58. package/dashboard/public/assets/avatars/Female4_wave.png +0 -0
  59. package/dashboard/public/assets/avatars/Female5_blink.png +0 -0
  60. package/dashboard/public/assets/avatars/Female5_talk.png +0 -0
  61. package/dashboard/public/assets/avatars/Female5_wave.png +0 -0
  62. package/dashboard/public/assets/avatars/Female6_blink.png +0 -0
  63. package/dashboard/public/assets/avatars/Female6_talk.png +0 -0
  64. package/dashboard/public/assets/avatars/Female6_wave.png +0 -0
  65. package/dashboard/public/assets/avatars/Male1_1wave.png +0 -0
  66. package/dashboard/public/assets/avatars/Male1_2wave.png +0 -0
  67. package/dashboard/public/assets/avatars/Male1_blink.png +0 -0
  68. package/dashboard/public/assets/avatars/Male1_talk.png +0 -0
  69. package/dashboard/public/assets/avatars/Male2_1wave.png +0 -0
  70. package/dashboard/public/assets/avatars/Male2_2wave.png +0 -0
  71. package/dashboard/public/assets/avatars/Male2_blink.png +0 -0
  72. package/dashboard/public/assets/avatars/Male2_talk.png +0 -0
  73. package/dashboard/public/assets/avatars/Male3_blink.png +0 -0
  74. package/dashboard/public/assets/avatars/Male3_talk.png +0 -0
  75. package/dashboard/public/assets/avatars/Male3_wave.png +0 -0
  76. package/dashboard/public/assets/avatars/Male4_blink.png +0 -0
  77. package/dashboard/public/assets/avatars/Male4_talk.png +0 -0
  78. package/dashboard/public/assets/avatars/Male4_wave.png +0 -0
  79. package/dashboard/public/assets/desks/desktop_set_black_down.png +0 -0
  80. package/dashboard/public/assets/desks/desktop_set_black_down_coding-1.png +0 -0
  81. package/dashboard/public/assets/desks/desktop_set_black_down_coding.png +0 -0
  82. package/dashboard/public/assets/desks/desktop_set_black_up.png +0 -0
  83. package/dashboard/public/assets/desks/desktop_set_white_down.png +0 -0
  84. package/dashboard/public/assets/desks/desktop_set_white_down_coding-1.png +0 -0
  85. package/dashboard/public/assets/desks/desktop_set_white_down_coding.png +0 -0
  86. package/dashboard/public/assets/desks/desktop_set_white_up.png +0 -0
  87. package/dashboard/public/assets/furniture/armchair_tan.png +0 -0
  88. package/dashboard/public/assets/furniture/armchair_tan_down.png +0 -0
  89. package/dashboard/public/assets/furniture/backpack_blue.png +0 -0
  90. package/dashboard/public/assets/furniture/backpack_red.png +0 -0
  91. package/dashboard/public/assets/furniture/blinds.png +0 -0
  92. package/dashboard/public/assets/furniture/blinds_large_closed_white.png +0 -0
  93. package/dashboard/public/assets/furniture/bookshelf.png +0 -0
  94. package/dashboard/public/assets/furniture/bookshelf_purple_tall.png +0 -0
  95. package/dashboard/public/assets/furniture/bulletin_board.png +0 -0
  96. package/dashboard/public/assets/furniture/clock.png +0 -0
  97. package/dashboard/public/assets/furniture/coffee_mug.png +0 -0
  98. package/dashboard/public/assets/furniture/coffee_mug_blue.png +0 -0
  99. package/dashboard/public/assets/furniture/coffee_table.png +0 -0
  100. package/dashboard/public/assets/furniture/coffeepot_right.png +0 -0
  101. package/dashboard/public/assets/furniture/coffeetable_black_horizontal.png +0 -0
  102. package/dashboard/public/assets/furniture/couch.png +0 -0
  103. package/dashboard/public/assets/furniture/couch_tan_down.png +0 -0
  104. package/dashboard/public/assets/furniture/cushion_blue.png +0 -0
  105. package/dashboard/public/assets/furniture/cushion_tan.png +0 -0
  106. package/dashboard/public/assets/furniture/desk_wood.png +0 -0
  107. package/dashboard/public/assets/furniture/fancy_rug.png +0 -0
  108. package/dashboard/public/assets/furniture/fancy_rug_wide.png +0 -0
  109. package/dashboard/public/assets/furniture/flowers1.png +0 -0
  110. package/dashboard/public/assets/furniture/flowers2.png +0 -0
  111. package/dashboard/public/assets/furniture/lamp_tan.png +0 -0
  112. package/dashboard/public/assets/furniture/lantern.png +0 -0
  113. package/dashboard/public/assets/furniture/monstera.png +0 -0
  114. package/dashboard/public/assets/furniture/monstera_small.png +0 -0
  115. package/dashboard/public/assets/furniture/picture_frame.png +0 -0
  116. package/dashboard/public/assets/furniture/plant1.png +0 -0
  117. package/dashboard/public/assets/furniture/plant2.png +0 -0
  118. package/dashboard/public/assets/furniture/plant3.png +0 -0
  119. package/dashboard/public/assets/furniture/plant_poof.png +0 -0
  120. package/dashboard/public/assets/furniture/plant_spindly.png +0 -0
  121. package/dashboard/public/assets/furniture/poster_blue.png +0 -0
  122. package/dashboard/public/assets/furniture/rug.png +0 -0
  123. package/dashboard/public/assets/furniture/succulent_blue.png +0 -0
  124. package/dashboard/public/assets/furniture/succulent_green.png +0 -0
  125. package/dashboard/public/assets/furniture/treasurechest_closed_gold.png +0 -0
  126. package/dashboard/public/assets/furniture/water_cooler_better.png +0 -0
  127. package/dashboard/public/assets/furniture/whiteboard.png +0 -0
  128. package/dashboard/public/assets/furniture/whiteboard_stand_graph.png +0 -0
  129. package/dashboard/public/assets/furniture/window_blinds_open.png +0 -0
  130. package/dashboard/src/App.tsx +46 -0
  131. package/dashboard/src/components/RunDashboardButton.tsx +92 -0
  132. package/dashboard/src/components/SquadCard.tsx +49 -0
  133. package/dashboard/src/components/SquadSelector.tsx +67 -0
  134. package/dashboard/src/components/StatusBadge.tsx +32 -0
  135. package/dashboard/src/components/StatusBar.tsx +116 -0
  136. package/dashboard/src/hooks/useSquadSocket.ts +135 -0
  137. package/dashboard/src/lib/formatTime.ts +16 -0
  138. package/dashboard/src/lib/normalizeState.ts +25 -0
  139. package/dashboard/src/main.tsx +10 -0
  140. package/dashboard/src/office/AgentSprite.ts +241 -0
  141. package/dashboard/src/office/OfficeScene.ts +153 -0
  142. package/dashboard/src/office/PhaserGame.tsx +80 -0
  143. package/dashboard/src/office/RoomBuilder.ts +190 -0
  144. package/dashboard/src/office/assetKeys.ts +150 -0
  145. package/dashboard/src/office/palette.ts +32 -0
  146. package/dashboard/src/plugin/squadWatcher.ts +397 -0
  147. package/dashboard/src/store/useSquadStore.ts +56 -0
  148. package/dashboard/src/styles/globals.css +36 -0
  149. package/dashboard/src/types/state.ts +63 -0
  150. package/dashboard/src/vite-env.d.ts +1 -0
  151. package/dashboard/tsconfig.json +24 -0
  152. package/dashboard/vite.config.ts +13 -0
  153. package/package.json +59 -0
  154. package/public/sfx/slide-transition-sfx.mp3 +0 -0
  155. package/skills/README.md +84 -0
  156. package/skills/apify/SKILL.md +55 -0
  157. package/skills/blotato/SKILL.md +63 -0
  158. package/skills/canva/SKILL.md +60 -0
  159. package/skills/higgsfield/SKILL.md +147 -0
  160. package/skills/image-ai-generator/SKILL.md +124 -0
  161. package/skills/image-ai-generator/scripts/generate.py +175 -0
  162. package/skills/image-creator/SKILL.md +166 -0
  163. package/skills/image-creator/editorial-slide-template.js +645 -0
  164. package/skills/image-fetcher/SKILL.md +91 -0
  165. package/skills/imgbb-uploader/SKILL.md +73 -0
  166. package/skills/imgbb-uploader/scripts/upload.js +125 -0
  167. package/skills/instagram-publisher/README.md +36 -0
  168. package/skills/instagram-publisher/SKILL.md +231 -0
  169. package/skills/instagram-publisher/scripts/publish-playwright.js +418 -0
  170. package/skills/instagram-publisher/scripts/publish.js +521 -0
  171. package/skills/opensquad-agent-creator/SKILL.md +192 -0
  172. package/skills/opensquad-skill-creator/SKILL.md +420 -0
  173. package/skills/opensquad-skill-creator/agents/analyzer.md +274 -0
  174. package/skills/opensquad-skill-creator/agents/comparator.md +202 -0
  175. package/skills/opensquad-skill-creator/agents/grader.md +223 -0
  176. package/skills/opensquad-skill-creator/assets/eval_review.html +146 -0
  177. package/skills/opensquad-skill-creator/eval-viewer/generate_review.py +471 -0
  178. package/skills/opensquad-skill-creator/eval-viewer/viewer.html +1325 -0
  179. package/skills/opensquad-skill-creator/references/schemas.md +430 -0
  180. package/skills/opensquad-skill-creator/references/skill-format.md +235 -0
  181. package/skills/opensquad-skill-creator/scripts/__init__.py +0 -0
  182. package/skills/opensquad-skill-creator/scripts/aggregate_benchmark.py +401 -0
  183. package/skills/opensquad-skill-creator/scripts/quick_validate.py +103 -0
  184. package/skills/opensquad-skill-creator/scripts/run_eval.py +310 -0
  185. package/skills/opensquad-skill-creator/scripts/utils.py +47 -0
  186. package/skills/pdf-extractor/SKILL.md +57 -0
  187. package/skills/pdf-extractor/scripts/extract.py +82 -0
  188. package/skills/resend/SKILL.md +80 -0
  189. package/skills/run-dashboard/README.md +93 -0
  190. package/skills/run-dashboard/SKILL.md +173 -0
  191. package/skills/run-dashboard/scripts/finalize-state.js +273 -0
  192. package/skills/run-dashboard/scripts/generate.js +1296 -0
  193. package/skills/run-dashboard/scripts/serve.js +135 -0
  194. package/skills/run-dashboard/templates/run-dashboard-simple.template.html +191 -0
  195. package/skills/run-dashboard/templates/run-dashboard.template.html +1164 -0
  196. package/skills/smtp-sender/SKILL.md +88 -0
  197. package/skills/smtp-sender/scripts/send.js +478 -0
  198. package/skills/template-designer/SKILL.md +201 -0
  199. package/skills/template-designer/base-templates/model-a.html +27 -0
  200. package/skills/template-designer/base-templates/model-b.html +31 -0
  201. package/skills/template-designer/base-templates/model-c.html +42 -0
  202. package/skills/youtube-publisher/SKILL.md +232 -0
  203. package/skills/youtube-publisher/scripts/publish.js +2078 -0
  204. package/src/agents-cli.js +158 -0
  205. package/src/agents.js +134 -0
  206. package/src/i18n.js +48 -0
  207. package/src/init.js +442 -0
  208. package/src/locales/en.json +79 -0
  209. package/src/locales/es.json +78 -0
  210. package/src/locales/pt-BR.json +78 -0
  211. package/src/logger.js +38 -0
  212. package/src/prompt.js +46 -0
  213. package/src/readme/README.md +146 -0
  214. package/src/runs.js +318 -0
  215. package/src/skills-cli.js +157 -0
  216. package/src/skills.js +146 -0
  217. package/src/supabase-cli.js +584 -0
  218. package/src/update.js +169 -0
  219. package/templates/_opensquad/.opensquad-version +1 -0
  220. package/templates/_opensquad/_investigations/.gitkeep +0 -0
  221. package/templates/ide-templates/antigravity/.agent/rules/opensquad.md +68 -0
  222. package/templates/ide-templates/antigravity/.agent/workflows/opensquad.md +102 -0
  223. package/templates/ide-templates/claude-code/.claude/skills/opensquad/SKILL.md +182 -0
  224. package/templates/ide-templates/claude-code/.mcp.json +8 -0
  225. package/templates/ide-templates/claude-code/CLAUDE.md +57 -0
  226. package/templates/ide-templates/codex/.agents/skills/opensquad/SKILL.md +6 -0
  227. package/templates/ide-templates/codex/AGENTS.md +120 -0
  228. package/templates/ide-templates/cursor/.cursor/commands/opensquad.md +9 -0
  229. package/templates/ide-templates/cursor/.cursor/mcp.json +8 -0
  230. package/templates/ide-templates/cursor/.cursor/rules/opensquad.mdc +62 -0
  231. package/templates/ide-templates/cursor/.cursorignore +3 -0
  232. package/templates/ide-templates/gemini-cli/.gemini/settings.json +8 -0
  233. package/templates/ide-templates/gemini-cli/.gemini/skills/opensquad/SKILL.md +186 -0
  234. package/templates/ide-templates/gemini-cli/GEMINI.md +57 -0
  235. package/templates/ide-templates/opencode/.opencode/commands/opensquad.md +9 -0
  236. package/templates/ide-templates/opencode/AGENTS.md +120 -0
  237. package/templates/ide-templates/qwen-code/.qwen/settings.json +8 -0
  238. package/templates/ide-templates/qwen-code/.qwen/skills/opensquad/SKILL.md +182 -0
  239. package/templates/ide-templates/qwen-code/QWEN.md +57 -0
  240. package/templates/ide-templates/trae/.trae/mcp.json +8 -0
  241. package/templates/ide-templates/trae/.trae/rules/opensquad.md +64 -0
  242. package/templates/ide-templates/vscode-copilot/.github/copilot-instructions.md +59 -0
  243. package/templates/ide-templates/vscode-copilot/.github/prompts/opensquad.prompt.md +209 -0
  244. package/templates/ide-templates/vscode-copilot/.vscode/mcp.json +8 -0
  245. package/templates/ide-templates/vscode-copilot/.vscode/settings.json +3 -0
  246. package/templates/package.json +8 -0
  247. package/templates/squads/.gitkeep +0 -0
@@ -0,0 +1,344 @@
1
+ ---
2
+ id: strategist
3
+ name: "Strategy & Editorial Planning"
4
+ whenToUse: |
5
+ Creating agents that plan content strategy, editorial calendars,
6
+ competitive positioning, or audience segmentation.
7
+ NOT for: content creation, data collection, data analysis, quality review.
8
+ version: "1.0.0"
9
+ ---
10
+
11
+ # Strategy & Editorial Planning — Best Practices
12
+
13
+ ## Core Principles
14
+
15
+ 1. **Audience-first strategy.** Every strategy begins with a deep understanding of who we are serving. Before defining what to create, when to publish, or where to distribute, define the target audience segments with specificity: demographics, psychographics, pain points, content consumption habits, and platform preferences. A strategy without an audience definition is a guess.
16
+
17
+ 2. **Differentiation over imitation.** Find the gap — do not copy competitors. Analyze what competitors are doing well, then deliberately choose a different angle, format, cadence, or positioning. The goal is not to do what they do better; it is to do what they are not doing at all. Competitive awareness informs strategy; competitive copying kills it.
18
+
19
+ 3. **Measurable goals with specific KPIs.** Every strategic objective must have at least one measurable Key Performance Indicator attached to it. "Increase brand awareness" is not a goal — "Increase branded search volume by 15% within 90 days" is. If a goal cannot be measured, it cannot be managed. Define the metric, the target, and the measurement method.
20
+
21
+ 4. **Iterative refinement cycle.** Strategy is not a one-time deliverable. Every strategy must include a review cadence: plan, execute, measure, adjust. Define checkpoints — weekly, bi-weekly, or monthly — where performance data is reviewed against objectives and the strategy is recalibrated. A strategy that does not evolve is a strategy that will fail.
22
+
23
+ 5. **Content pillar alignment.** Every piece of content in a strategy must map to a defined content pillar. Content pillars are the 3-5 thematic territories that the brand owns. If a content idea does not fit within a pillar, it either does not get created or a new pillar must be formally proposed and justified. Random content erodes brand positioning.
24
+
25
+ 6. **Competitive awareness without obsession.** Monitor competitors to understand the landscape, identify gaps, and validate positioning — but do not let competitor moves dictate strategy. Track competitor content themes, formats, cadence, and audience engagement at a macro level. React to market shifts, not to individual competitor posts. Strategy is proactive, not reactive.
26
+
27
+ 7. **Resource-realistic planning.** Every strategy must be achievable with the available resources — team size, budget, tools, and time. A brilliant strategy that cannot be executed is worthless. When resources constrain ambition, prioritize ruthlessly: fewer channels done well beats many channels done poorly. Always include effort estimates and resource requirements alongside recommendations.
28
+
29
+ 8. **Platform-native thinking.** Each platform has its own language, format preferences, audience behavior, and algorithmic logic. Never create a single piece of content and distribute it unchanged across platforms. Strategy must account for platform-specific adaptations: format, length, tone, posting time, and engagement patterns.
30
+
31
+ ## Strategic Planning Methodology
32
+
33
+ 1. **Load context.** Gather and review all available inputs: company profile and brand guidelines, target audience documentation, competitive landscape data, previous performance reports, and any research briefs from upstream agents. Identify the strategic question or objective that this planning cycle must address. If context is incomplete, explicitly flag what is missing and what assumptions are being made.
34
+
35
+ 2. **Analyze current position.** Conduct a SWOT assessment of the current state. Map the brand's strengths (what it does better than competitors), weaknesses (gaps in content, audience, or capability), opportunities (underserved topics, emerging formats, untapped audience segments), and threats (competitor moves, platform algorithm changes, market shifts). Rate each factor by impact (high/medium/low) and urgency (immediate/short-term/long-term).
36
+
37
+ 3. **Define strategic objectives.** Based on the position analysis, define 2-4 strategic objectives for the planning period. Each objective must be Specific (what exactly will change), Measurable (which KPI tracks it), Achievable (given current resources), Relevant (aligned with business goals), and Time-bound (deadline or review date). Prioritize objectives by impact and feasibility.
38
+
39
+ 4. **Design content strategy.** Define the content pillars (3-5 thematic territories), the format mix (carousel, video, long-form, short-form, etc.), the posting cadence per platform, and the audience targeting for each pillar. Map each pillar to a strategic objective so that every content piece contributes to a measurable goal. Include the rationale for format and cadence decisions based on performance data and platform best practices.
40
+
41
+ 5. **Create editorial calendar or campaign plan.** Translate the content strategy into a concrete execution plan with specific dates, content types, themes, and responsible parties. For editorial calendars, plan in 2-4 week sprints with flexibility built in. For campaign plans, define phases (awareness, consideration, conversion), key milestones, and dependencies. Include contingency plans for underperformance.
42
+
43
+ 6. **Define success metrics and review cadence.** For each strategic objective, define the primary KPI, the target value, the measurement frequency, and the data source. Establish a review cadence — weekly tactical reviews and monthly strategic reviews. Define the thresholds that trigger strategy adjustments: what level of underperformance requires a pivot, and what level of overperformance warrants doubling down.
44
+
45
+ ## Decision Criteria
46
+
47
+ - **Prioritizing between competing opportunities.** Score each opportunity on three dimensions: impact (how much does it move the KPI), feasibility (how quickly and cheaply can it be executed), and alignment (how well does it fit the brand positioning and current strategy). Multiply the scores. The highest composite score wins. When scores are close, prefer feasibility — a smaller win executed now beats a bigger win delayed indefinitely.
48
+
49
+ - **When to pivot vs. persist.** Persist when KPIs are trending in the right direction, even if absolute numbers have not yet hit targets. Pivot when KPIs have been flat or declining for 2+ review cycles despite execution being consistent. A pivot changes the tactic, not the objective — redefine how you are pursuing the goal, not the goal itself.
50
+
51
+ - **When to recommend new channels vs. deepening existing ones.** Deepen existing channels when there is evidence of untapped potential (low posting frequency relative to audience engagement, unexplored formats, underutilized features). Recommend new channels only when existing channels are optimized and the target audience has a documented presence on the new platform with an underserved content need.
52
+
53
+ ## Quality Criteria
54
+
55
+ Every strategic deliverable must pass the following quality checks before being considered complete:
56
+
57
+ 1. **Strategy has clear objectives.** At least 2 strategic objectives are defined, each with a specific outcome statement that answers "What will be different at the end of this planning period?"
58
+
59
+ 2. **KPIs are specific and measurable.** Every objective has at least one KPI with a numeric target, a measurement source, and a measurement frequency. No vague goals survive review.
60
+
61
+ 3. **Audience is explicitly defined.** The target audience segment is described with enough specificity that a content creator could picture a real person. Demographics, psychographics, platform behavior, and content preferences are documented.
62
+
63
+ 4. **Competitive context is considered.** The strategy includes awareness of at least 3 competitors — their positioning, content approach, and audience overlap. Differentiation is articulated, not assumed.
64
+
65
+ 5. **Timeline is realistic.** Every recommendation includes start dates, review dates, and expected-results dates. Timelines account for production lead times and are achievable with stated resources.
66
+
67
+ 6. **Resources are acknowledged.** The strategy explicitly states the resources required (team members, budget, tools) and confirms they are available. If resources are constrained, the strategy reflects prioritization, not wishful thinking.
68
+
69
+ 7. **Review cadence is defined.** The strategy includes a schedule for performance review — weekly, bi-weekly, or monthly — with specific metrics to review and thresholds that trigger adjustments.
70
+
71
+ 8. **Content pillars are defined and mapped.** If the strategy includes content planning, 3-5 content pillars are defined with topic boundaries and each is mapped to a strategic objective. The allocation percentage across pillars is explicit.
72
+
73
+ 9. **Actionable next steps are included.** The strategy ends with a concrete list of immediate next actions — not vague "things to think about" but specific tasks with implied or explicit owners and deadlines.
74
+
75
+ ## Output Examples
76
+
77
+ ### Example 1: 4-Week Editorial Calendar Proposal
78
+
79
+ ```markdown
80
+ # Editorial Calendar: February 2025 — Q1 Growth Sprint
81
+
82
+ ## Strategic Context
83
+
84
+ **Primary Objective:** Increase organic reach by 20% and grow follower count by 1,500
85
+ within 28 days across Instagram and LinkedIn.
86
+
87
+ **Target Audience Segment:** Early-career marketing professionals (25-34) who consume
88
+ educational content about digital strategy and career growth.
89
+
90
+ **Content Pillars:**
91
+ 1. **Tactical Playbooks** — Step-by-step guides and frameworks (40% of content)
92
+ 2. **Industry Insights** — Trends, data breakdowns, and market commentary (30% of content)
93
+ 3. **Behind the Scenes** — Team culture, process transparency, tools we use (20% of content)
94
+ 4. **Community Spotlight** — Audience wins, Q&A, user-generated content (10% of content)
95
+
96
+ ## Posting Cadence
97
+
98
+ | Platform | Posts/Week | Primary Formats | Best Posting Times |
99
+ |-----------|-----------|---------------------------|---------------------------|
100
+ | Instagram | 5 | Carousel (3), Reel (1), Static (1) | Tue/Thu 8am, Wed/Fri 12pm, Sat 10am |
101
+ | LinkedIn | 3 | Text post (1), Document (1), Article (1) | Tue 9am, Wed 11am, Thu 8am |
102
+
103
+ ## Week 1 (Feb 3-9): Foundation & Pillar Introduction
104
+
105
+ | Day | Platform | Pillar | Format | Topic | CTA |
106
+ |-----------|-----------|---------------------|-----------|-------------------------------------------------|------------------------|
107
+ | Monday | LinkedIn | Tactical Playbooks | Text post | "The 3-layer content strategy framework" | Comment with your #1 |
108
+ | Tuesday | Instagram | Tactical Playbooks | Carousel | "5 steps to audit your content strategy" | Save for later |
109
+ | Wednesday | Instagram | Industry Insights | Reel | "2025 algorithm changes: what actually matters" | Follow for more |
110
+ | Wednesday | LinkedIn | Industry Insights | Document | "State of content marketing: 5 data points" | Repost if useful |
111
+ | Thursday | Instagram | Tactical Playbooks | Carousel | "Content pillar framework — template included" | DM 'TEMPLATE' for PDF |
112
+ | Friday | Instagram | Behind the Scenes | Static | "Our actual editorial planning board" | What does yours look like? |
113
+ | Saturday | Instagram | Community Spotlight | Carousel | "3 audience wins this week + what they did" | Share your win below |
114
+
115
+ ## Week 2 (Feb 10-16): Depth & Engagement Push
116
+
117
+ | Day | Platform | Pillar | Format | Topic | CTA |
118
+ |-----------|-----------|---------------------|-----------|-------------------------------------------------|------------------------|
119
+ | Monday | LinkedIn | Tactical Playbooks | Article | "How to build an editorial calendar that sticks" | Save for your next planning session |
120
+ | Tuesday | Instagram | Tactical Playbooks | Carousel | "Editorial calendar template — 4 week sprint" | Save + share with your team |
121
+ | Wednesday | Instagram | Industry Insights | Reel | "Why 'post consistently' is terrible advice" | Follow for real advice |
122
+ | Wednesday | LinkedIn | Industry Insights | Text post | "Hot take: posting frequency matters less than posting rhythm" | Agree or disagree? |
123
+ | Thursday | Instagram | Behind the Scenes | Carousel | "Tools we actually use for content planning" | Which tools do you use? |
124
+ | Friday | Instagram | Tactical Playbooks | Static | "One framework that changed our content game" | Save this |
125
+ | Saturday | Instagram | Community Spotlight | Carousel | "Audience question deep dive: content repurposing" | Drop your question below |
126
+
127
+ ## Week 3 (Feb 17-23): Authority Building
128
+
129
+ | Day | Platform | Pillar | Format | Topic | CTA |
130
+ |-----------|-----------|---------------------|-----------|-------------------------------------------------|------------------------|
131
+ | Monday | LinkedIn | Industry Insights | Document | "Competitive analysis framework for content teams" | Download the template |
132
+ | Tuesday | Instagram | Industry Insights | Carousel | "3 brands doing content strategy right in 2025" | Which one inspires you? |
133
+ | Wednesday | Instagram | Tactical Playbooks | Reel | "How to find your content gap in 10 minutes" | Try it and share results |
134
+ | Wednesday | LinkedIn | Tactical Playbooks | Text post | "The audience-first content audit: 6 questions to ask" | Save this checklist |
135
+ | Thursday | Instagram | Tactical Playbooks | Carousel | "Positioning matrix: find your unfair advantage" | Save + tag a marketer |
136
+ | Friday | Instagram | Behind the Scenes | Static | "What our analytics dashboard actually looks like" | What do you track? |
137
+ | Saturday | Instagram | Community Spotlight | Carousel | "Follower milestone: what we learned at 10K" | What is your next milestone? |
138
+
139
+ ## Week 4 (Feb 24-Mar 2): Conversion & Review
140
+
141
+ | Day | Platform | Pillar | Format | Topic | CTA |
142
+ |-----------|-----------|---------------------|-----------|-------------------------------------------------|------------------------|
143
+ | Monday | LinkedIn | Tactical Playbooks | Article | "Month 1 results: what worked, what did not" | Follow for Month 2 |
144
+ | Tuesday | Instagram | Tactical Playbooks | Carousel | "The content strategy checklist: 12 must-haves" | Save and check yours |
145
+ | Wednesday | Instagram | Industry Insights | Reel | "February content trends we are watching" | Follow for weekly updates |
146
+ | Wednesday | LinkedIn | Industry Insights | Text post | "3 metrics that matter more than follower count" | What is your #1 metric? |
147
+ | Thursday | Instagram | Behind the Scenes | Carousel | "How we plan content: full process breakdown" | Save for reference |
148
+ | Friday | Instagram | Tactical Playbooks | Static | "One slide summary: our Q1 content strategy" | Repost for your team |
149
+ | Saturday | Instagram | Community Spotlight | Carousel | "Best audience questions this month — answered" | Submit your question |
150
+
151
+ ## Success Metrics & KPIs
152
+
153
+ | Metric | Baseline (Jan) | Target (Feb 28) | Measurement Source |
154
+ |------------------------|---------------|-----------------|------------------------|
155
+ | Instagram Followers | 8,200 | 9,700 (+1,500) | Instagram Insights |
156
+ | Organic Reach (weekly) | 12,400 | 14,880 (+20%) | Instagram Insights |
157
+ | LinkedIn Impressions | 8,500/mo | 12,750 (+50%) | LinkedIn Analytics |
158
+ | Avg. Engagement Rate | 3.4% | 4.2% | Platform Analytics |
159
+ | Saves per Post (IG) | 45 | 80 (+78%) | Instagram Insights |
160
+ | Profile Visits (IG) | 1,200/wk | 1,800/wk (+50%) | Instagram Insights |
161
+
162
+ ## Review Cadence
163
+
164
+ - **Weekly (every Monday):** Review past week performance vs. targets. Adjust next week
165
+ topics or formats if any content type is significantly under- or overperforming.
166
+ - **Mid-sprint (Feb 17):** Evaluate whether the 20% reach increase is on track. If behind
167
+ by more than 10 percentage points, increase carousel frequency and reduce static posts.
168
+ - **End-of-sprint (Mar 3):** Full performance review. Document learnings. Feed into March
169
+ editorial calendar planning. Decide whether to continue, adjust, or pivot the current
170
+ content pillar allocation.
171
+ ```
172
+
173
+ ### Example 2: Competitive Positioning Analysis
174
+
175
+ ```markdown
176
+ # Competitive Positioning Analysis: SaaS Content Strategy Space
177
+
178
+ ## Strategic Objective
179
+
180
+ Define a differentiated positioning statement for [Brand] in the content strategy
181
+ education space, based on competitive gap analysis and audience need mapping.
182
+
183
+ ## Competitive Landscape Overview
184
+
185
+ ### Competitors Analyzed
186
+
187
+ | Competitor | Primary Platform | Content Focus | Audience Size | Posting Cadence | Key Strength |
188
+ |------------------|-----------------|---------------------------|---------------|-----------------|---------------------------|
189
+ | Competitor A | LinkedIn | B2B marketing strategy | 85K followers | 5x/week | Data-driven thought leadership |
190
+ | Competitor B | Instagram | Visual content tips | 120K followers| 7x/week | Engaging carousel design |
191
+ | Competitor C | YouTube | Long-form tutorials | 45K subs | 2x/week | Deep technical education |
192
+ | Competitor D | Newsletter | Curated industry news | 30K subs | 3x/week | Speed and freshness |
193
+ | [Brand] (us) | Instagram + LI | Content strategy frameworks| 8.2K followers| 4x/week | Practical frameworks |
194
+
195
+ ## Differentiation Matrix
196
+
197
+ | Dimension | Competitor A | Competitor B | Competitor C | Competitor D | [Brand] | Gap Opportunity |
198
+ |----------------------|-------------|-------------|-------------|-------------|------------|----------------------|
199
+ | Depth of content | Medium | Low | High | Low | Medium | Deep + actionable |
200
+ | Actionability | Medium | High | Medium | Low | High | Our strength — own it |
201
+ | Visual quality | Low | High | Medium | N/A | Medium | Improve visuals |
202
+ | Data/research backing| High | Low | Medium | Medium | Low | Major gap to fill |
203
+ | Community engagement | Low | High | Medium | Low | Medium | Deepen engagement |
204
+ | Frameworks/templates | Low | Medium | Low | Low | High | Our differentiator |
205
+ | Cross-platform presence | Low | Low | Low | Low | Medium | Expand strategically |
206
+ | Beginner friendliness| Low | High | Low | Medium | Medium | Choose a lane |
207
+
208
+ ## Key Findings
209
+
210
+ 1. **The "actionable frameworks" space is unowned.** Competitor A leads on data-driven thought
211
+ leadership but does not provide plug-and-play frameworks. Competitor B creates visually
212
+ appealing tips but lacks strategic depth. Competitor C goes deep but in long-form video,
213
+ which is not easily actionable. No competitor currently owns the "frameworks and templates
214
+ you can use today" positioning. This is our primary differentiation opportunity.
215
+
216
+ 2. **Data-backed content is a gap in our strategy.** Competitor A's key strength is citing
217
+ research, benchmarks, and proprietary data. Our content currently lacks this credibility
218
+ layer. Adding data and research to our frameworks would create a unique combination that
219
+ no competitor offers: practical frameworks backed by data. This is our secondary
220
+ differentiation opportunity.
221
+
222
+ 3. **Visual quality is table stakes, not a differentiator.** Competitor B has set audience
223
+ expectations for high-quality visual content on Instagram. Our visual quality must match
224
+ this baseline, but it will not differentiate us. Investment in design should reach parity,
225
+ not exceed — allocate resources to content depth instead.
226
+
227
+ 4. **Community engagement is the most underinvested dimension across all competitors.**
228
+ No competitor has a strong community play. This is a long-term positioning opportunity:
229
+ build the most engaged community of content strategists. Start with audience Q&A content,
230
+ user-generated case studies, and community challenges.
231
+
232
+ 5. **Newsletter is an underexploited format in this space.** Only Competitor D uses newsletter
233
+ as a primary channel, and their approach is curation, not strategy. A frameworks-focused
234
+ weekly newsletter would have no direct competition and would own a high-conversion channel.
235
+
236
+ ## Recommended Positioning Statement
237
+
238
+ **For** early-career marketing professionals who need to build content strategies but lack
239
+ experience, **[Brand] is the** content strategy resource **that** provides ready-to-use
240
+ frameworks and templates backed by real data, **unlike** competitors who offer either
241
+ high-level theory or surface-level tips without actionable structure. **We believe that**
242
+ great content strategy should be practical first — if you cannot execute it this week, it
243
+ is not strategy, it is aspiration.
244
+
245
+ ## Positioning Pillars
246
+
247
+ | Pillar | What It Means | How We Express It |
248
+ |----------------------------|----------------------------------------------|------------------------------------|
249
+ | Frameworks over theory | Every strategy has a template or step-by-step guide | Downloadable templates, carousel walkthroughs |
250
+ | Data-informed, not data-buried | Research supports recommendations but doesn't overwhelm | Key stats in every post, source citations |
251
+ | Built for doers | Content for people who execute, not just learn | Action-oriented CTAs, weekly challenges |
252
+ | Community-powered | Audience insights and wins shape our content | User spotlights, Q&A series, case studies |
253
+
254
+ ## Strategic Recommendations
255
+
256
+ 1. **Own the "frameworks" positioning explicitly.** (Priority: High, Timeline: Immediate)
257
+ Update bio, pinned posts, and profile descriptions across all platforms to explicitly
258
+ claim the frameworks positioning. Use the tagline: "Content strategy frameworks you
259
+ can use today." Make "framework" the most frequently associated word with the brand.
260
+
261
+ 2. **Launch a data-backed content series.** (Priority: High, Timeline: Within 2 weeks)
262
+ Partner with industry reports and original surveys to add a data layer to existing
263
+ frameworks. Publish a monthly "Content Strategy by the Numbers" series that pairs
264
+ benchmark data with actionable frameworks. This fills the biggest gap in our current
265
+ positioning.
266
+
267
+ 3. **Start a weekly newsletter: "The Strategy Brief."** (Priority: Medium, Timeline: Within
268
+ 30 days) A weekly email that delivers one framework, one data point, and one case study.
269
+ No curation — original strategic thinking only. This differentiates from Competitor D's
270
+ curation approach and owns a high-conversion channel.
271
+
272
+ 4. **Invest in community features, not just broadcast content.** (Priority: Medium, Timeline:
273
+ Within 45 days) Launch a bi-weekly "Strategy Challenge" where followers apply a framework
274
+ to their own brand and share results. Feature the best submissions. This builds community
275
+ engagement — the most underexploited dimension in the competitive landscape.
276
+
277
+ 5. **Reach visual parity, then stop.** (Priority: Medium, Timeline: Within 30 days)
278
+ Invest in a consistent carousel template system that matches Competitor B's visual
279
+ quality. Once parity is achieved, do not over-invest in design — our differentiator
280
+ is depth and actionability, not aesthetics.
281
+
282
+ ## 90-Day Milestone Map
283
+
284
+ | Milestone | Target Date | Success Metric |
285
+ |------------------------------------|------------|-----------------------------------|
286
+ | Positioning statement live on all profiles | Week 1 | All profiles updated |
287
+ | First data-backed framework post | Week 2 | Engagement rate > 5% |
288
+ | Newsletter launch | Week 4 | 500 subscribers |
289
+ | Community challenge pilot | Week 6 | 50+ participant submissions |
290
+ | Visual template system complete | Week 4 | Consistent design across 20 posts |
291
+ | Positioning audit | Week 12 | Brand association survey results |
292
+ ```
293
+
294
+ ## Anti-Patterns
295
+
296
+ ### Never Do
297
+
298
+ 1. **Never propose a strategy without understanding the audience.** A strategy that begins with "what should we post" instead of "who are we serving and what do they need" is inverted. Always start with audience definition — demographics, psychographics, pain points, platform behavior — before making any content or positioning decisions.
299
+
300
+ 2. **Never copy a competitor's strategy directly.** Competitive awareness is essential; competitive imitation is fatal. If the recommendation is to do what a competitor does, it is not a strategy — it is a faster route to irrelevance. Every recommendation must articulate how it differentiates from, not replicates, the competitive landscape.
301
+
302
+ 3. **Never set vague goals without metrics.** "Increase brand awareness," "grow our audience," and "improve engagement" are not strategic objectives. They are wishes. Every objective must have a specific KPI, a target number, a timeline, and a measurement method. If it cannot be measured, it cannot be part of the strategy.
303
+
304
+ 4. **Never ignore resource constraints.** A strategy that requires a 10-person team when 2 people are available is not ambitious — it is delusional. Always assess available resources (team size, budget, tools, time) before recommending scope. When resources are limited, prioritize ruthlessly rather than proposing an unexecutable plan.
305
+
306
+ 5. **Never plan without a review cadence.** A strategy without scheduled review points is a set-and-forget document that will become obsolete within weeks. Every strategy must include when and how performance will be reviewed, what thresholds trigger adjustments, and who is responsible for the review.
307
+
308
+ 6. **Never treat all platforms as interchangeable.** A LinkedIn strategy is not an Instagram strategy with different dimensions. Each platform has unique audience behavior, content format preferences, algorithmic logic, and engagement patterns. Strategy must be platform-native, not platform-agnostic.
309
+
310
+ 7. **Never deliver a strategy document without next steps.** The final section of every strategic output must be a concrete list of next actions with owners, deadlines, and dependencies. A strategy that ends with analysis but no action plan is incomplete.
311
+
312
+ ### Always Do
313
+
314
+ 1. **Always include success metrics for every recommendation.** Every strategic recommendation must answer: "How will we know this worked?" with a specific, measurable indicator.
315
+
316
+ 2. **Always consider the competitive landscape.** No strategy exists in a vacuum. Before making any positioning or content decision, review what competitors are doing in the same space and explicitly articulate how the recommendation creates differentiation.
317
+
318
+ 3. **Always align with brand positioning.** Every tactical recommendation must trace back to the brand's positioning statement. If a tactic is effective but off-brand, flag the tension and recommend either adjusting the tactic or revisiting the positioning.
319
+
320
+ 4. **Always set realistic timelines.** Strategies must include not just what to do, but when to start, when to review, and when to expect results. Timelines must account for content production lead times, approval processes, and platform-specific lag between posting and measurable impact.
321
+
322
+ 5. **Always provide rationale for prioritization.** When multiple opportunities exist, explain why the recommended priority order was chosen. Cite the decision criteria: impact, feasibility, alignment, and urgency.
323
+
324
+ ## Vocabulary Guidance
325
+
326
+ ### Use
327
+
328
+ - **"Strategic objective"** — not "goal" or "aim." Every plan is anchored to strategic objectives.
329
+ - **"Target audience segment"** — not "our followers" or "people." Be specific about who.
330
+ - **"Competitive advantage"** — not "what we do well." Frame strengths in competitive terms.
331
+ - **"Content pillar"** — not "topic" or "theme." Pillars are strategic, not casual.
332
+ - **"Key differentiator"** — not "what makes us different." Frame differentiation precisely.
333
+ - **"Success metric"** — not "how we'll know it works." Metrics are specific and measurable.
334
+ - **"Positioning statement"** — not "what we stand for." Positioning is a strategic construct.
335
+ - **"Editorial cadence"** — not "how often we post." Cadence implies strategic rhythm.
336
+ - **"Format mix"** — not "types of content." Mix implies deliberate proportion.
337
+
338
+ ### Avoid
339
+
340
+ - **"We should try..."** — Be decisive. Say "We recommend..." or "The strategy is to..." Trying is not a strategy. Strategies commit to a direction with conviction.
341
+ - **"Everyone is doing..."** — Differentiation, not imitation. If the recommendation is to do what everyone else does, it is not a strategy. Say "Competitors are focused on X, which creates an opportunity for us to own Y."
342
+ - **Vague goals** — Never write "increase engagement" or "grow our audience" without a specific metric, target number, and timeline. Every goal must be measurable.
343
+ - **"Strategy without timeline"** — A strategy without deadlines is a wish list. Every recommendation must include when it starts, when it is reviewed, and when it should show results.
344
+ - **"Best practices"** — Avoid generic best practices. Cite specific data, benchmarks, or competitive analysis to justify recommendations. "Best practice" is often code for "I don't have data."