@aksp/opencrew 1.0.0

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 (87) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +24 -0
  3. package/README.md +118 -0
  4. package/bin/opencrew.js +8 -0
  5. package/package.json +57 -0
  6. package/src/cli.js +70 -0
  7. package/src/commands/init.js +97 -0
  8. package/src/commands/update.js +58 -0
  9. package/src/lib/fsx.js +55 -0
  10. package/src/lib/ides.js +120 -0
  11. package/src/lib/paths.js +8 -0
  12. package/src/lib/prompts.js +35 -0
  13. package/src/lib/ui.js +20 -0
  14. package/templates/.env.example +23 -0
  15. package/templates/.mcp.json +8 -0
  16. package/templates/AGENTS.md +105 -0
  17. package/templates/_opencrew/.opencrew-version +1 -0
  18. package/templates/_opencrew/_investigations/.gitkeep +0 -0
  19. package/templates/_opencrew/_memory/company.md +4 -0
  20. package/templates/_opencrew/_memory/preferences.md +9 -0
  21. package/templates/_opencrew/config/playwright.config.json +11 -0
  22. package/templates/_opencrew/core/architect.agent.yaml +110 -0
  23. package/templates/_opencrew/core/best-practices/_catalog.yaml +116 -0
  24. package/templates/_opencrew/core/best-practices/blog-post.md +151 -0
  25. package/templates/_opencrew/core/best-practices/blog-seo.md +146 -0
  26. package/templates/_opencrew/core/best-practices/copywriting.md +446 -0
  27. package/templates/_opencrew/core/best-practices/data-analysis.md +420 -0
  28. package/templates/_opencrew/core/best-practices/email-newsletter.md +136 -0
  29. package/templates/_opencrew/core/best-practices/email-sales.md +127 -0
  30. package/templates/_opencrew/core/best-practices/image-design.md +365 -0
  31. package/templates/_opencrew/core/best-practices/instagram-feed.md +252 -0
  32. package/templates/_opencrew/core/best-practices/instagram-reels.md +128 -0
  33. package/templates/_opencrew/core/best-practices/instagram-stories.md +123 -0
  34. package/templates/_opencrew/core/best-practices/linkedin-article.md +133 -0
  35. package/templates/_opencrew/core/best-practices/linkedin-post.md +138 -0
  36. package/templates/_opencrew/core/best-practices/researching.md +366 -0
  37. package/templates/_opencrew/core/best-practices/review.md +286 -0
  38. package/templates/_opencrew/core/best-practices/social-networks-publishing.md +311 -0
  39. package/templates/_opencrew/core/best-practices/strategist.md +361 -0
  40. package/templates/_opencrew/core/best-practices/technical-writing.md +382 -0
  41. package/templates/_opencrew/core/best-practices/twitter-post.md +122 -0
  42. package/templates/_opencrew/core/best-practices/twitter-thread.md +139 -0
  43. package/templates/_opencrew/core/best-practices/whatsapp-broadcast.md +124 -0
  44. package/templates/_opencrew/core/best-practices/youtube-script.md +139 -0
  45. package/templates/_opencrew/core/best-practices/youtube-shorts.md +129 -0
  46. package/templates/_opencrew/core/prompts/build.prompt.md +547 -0
  47. package/templates/_opencrew/core/prompts/design.prompt.md +469 -0
  48. package/templates/_opencrew/core/prompts/discovery.prompt.md +269 -0
  49. package/templates/_opencrew/core/prompts/sherlock-instagram.md +123 -0
  50. package/templates/_opencrew/core/prompts/sherlock-linkedin.md +73 -0
  51. package/templates/_opencrew/core/prompts/sherlock-shared.md +684 -0
  52. package/templates/_opencrew/core/prompts/sherlock-twitter.md +78 -0
  53. package/templates/_opencrew/core/prompts/sherlock-youtube.md +85 -0
  54. package/templates/_opencrew/core/runner.pipeline.md +611 -0
  55. package/templates/_opencrew/core/skills.engine.md +388 -0
  56. package/templates/_opencrew/logs/.gitkeep +0 -0
  57. package/templates/crews/.gitkeep +0 -0
  58. package/templates/gitignore +8 -0
  59. package/templates/skills/apify/SKILL.md +55 -0
  60. package/templates/skills/blotato/SKILL.md +63 -0
  61. package/templates/skills/canva/SKILL.md +60 -0
  62. package/templates/skills/image-ai-generator/SKILL.md +124 -0
  63. package/templates/skills/image-ai-generator/scripts/generate.py +175 -0
  64. package/templates/skills/image-creator/SKILL.md +155 -0
  65. package/templates/skills/image-fetcher/SKILL.md +91 -0
  66. package/templates/skills/instagram-publisher/SKILL.md +119 -0
  67. package/templates/skills/instagram-publisher/scripts/publish.js +165 -0
  68. package/templates/skills/opencrew-best-practice-creator/SKILL.md +192 -0
  69. package/templates/skills/opencrew-skill-creator/SKILL.md +420 -0
  70. package/templates/skills/opencrew-skill-creator/agents/analyzer.md +274 -0
  71. package/templates/skills/opencrew-skill-creator/agents/comparator.md +202 -0
  72. package/templates/skills/opencrew-skill-creator/agents/grader.md +223 -0
  73. package/templates/skills/opencrew-skill-creator/assets/eval_review.html +146 -0
  74. package/templates/skills/opencrew-skill-creator/eval-viewer/generate_review.py +471 -0
  75. package/templates/skills/opencrew-skill-creator/eval-viewer/viewer.html +1325 -0
  76. package/templates/skills/opencrew-skill-creator/references/schemas.md +430 -0
  77. package/templates/skills/opencrew-skill-creator/references/skill-format.md +235 -0
  78. package/templates/skills/opencrew-skill-creator/scripts/__init__.py +0 -0
  79. package/templates/skills/opencrew-skill-creator/scripts/aggregate_benchmark.py +401 -0
  80. package/templates/skills/opencrew-skill-creator/scripts/quick_validate.py +103 -0
  81. package/templates/skills/opencrew-skill-creator/scripts/run_eval.py +310 -0
  82. package/templates/skills/opencrew-skill-creator/scripts/utils.py +47 -0
  83. package/templates/skills/resend/SKILL.md +80 -0
  84. package/templates/skills/template-designer/SKILL.md +208 -0
  85. package/templates/skills/template-designer/base-templates/model-a.html +27 -0
  86. package/templates/skills/template-designer/base-templates/model-b.html +31 -0
  87. package/templates/skills/template-designer/base-templates/model-c.html +42 -0
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: "LinkedIn Post"
3
+ platform: "linkedin"
4
+ content_type: "post"
5
+ description: "Text posts and document carousels optimized for professional engagement, dwell time, and comment-driven reach"
6
+ whenToUse: |
7
+ Creating agents that produce LinkedIn posts, text updates, or document carousels for LinkedIn.
8
+ constraints:
9
+ post_max_chars: 3000
10
+ post_visible_chars: 210
11
+ hashtags_max: 5
12
+ recommended_hashtags: "3-5"
13
+ carousel_max_slides: 300
14
+ recommended_slides: "10-15"
15
+ max_posts_per_day: 1
16
+ version: "1.0.0"
17
+ ---
18
+
19
+ ## Compact Rules
20
+
21
+ 1. Craft hooks that fit within the first 210 characters to compel the "see more" tap.
22
+ 2. Structure text posts with a hook, context story, 3-5 insights, a takeaway, and a CTA question.
23
+ 3. Write in the first person using short paragraphs (1-2 sentences maximum).
24
+ 4. Never place external links in the post body; use the "link in comments" approach.
25
+ 5. End every post with a genuine, specific question to drive comments.
26
+ 6. Limit tags to 2-3 people who will actively engage; avoid spam tagging.
27
+ 7. Use exactly 3-5 relevant hashtags placed on the final line, separate from the body text.
28
+ 8. Opt for document/carousel formats (10-15 slides) over text-only when possible for higher reach.
29
+ 9. Reply to every comment received on your posts to signal quality to the algorithm.
30
+ 10. Limit publishing to a maximum of 1 post per day.
31
+ 11. Post on weekdays between 7-9 AM or 12-1 PM (audience time zone); avoid weekends.
32
+ 12. Do not edit the post within the first 10 minutes of publishing.
33
+
34
+ <!-- End Compact Rules. Full reference below. -->
35
+
36
+ ## Platform Rules
37
+
38
+ - Posts with external links in the body receive approximately 3x less reach. The LinkedIn algorithm actively deprioritizes outbound traffic. Always use the "link in comments" approach.
39
+ - Comments are weighted far more heavily than reactions. Long, substantive comments signal valuable content to the algorithm. Questions drive 2x more comments than statements.
40
+ - The first 60 minutes are critical. Engagement velocity in this window determines whether the post expands beyond your initial 5-10% network reach.
41
+ - Dwell time is an algorithmic signal. Longer posts that keep people reading and scrolling get boosted in distribution.
42
+ - Document/carousel posts receive 2-3x more reach than text-only posts. The swipe interaction increases dwell time.
43
+ - The algorithm rewards creators who reply to every comment on their posts. Active comment sections signal quality.
44
+ - Avoid more than 1 post per day. Multiple daily posts compete against each other for your audience's attention and the algorithm may cannibalize your own reach.
45
+ - Best posting times: 7-9 AM or 12-1 PM on weekdays in your audience's time zone. Tuesday, Wednesday, and Thursday consistently outperform other days. Weekends see 50-70% engagement drops.
46
+ - Allow 18-24 hours between posts for maximum individual post distribution.
47
+
48
+ ## Content Structure
49
+
50
+ ### Text Post Structure
51
+
52
+ 1. **Hook (first 2 lines / ~210 characters)** — This is everything. The hook appears before the "see more" fold. Use a contrarian take, surprising stat, personal story opener, or bold claim that compels the tap.
53
+ 2. **Story/Context (2-3 short paragraphs)** — Personal experience, observation, or data that supports your point. Write in first person. Use short sentences and frequent line breaks (1-2 sentences per paragraph).
54
+ 3. **Insights/Lessons (3-5 bullet points)** — Actionable takeaways, numbered or bulleted. These are the save-worthy core of the post.
55
+ 4. **Takeaway (1-2 sentences)** — The one thing to remember.
56
+ 5. **CTA question** — A genuine question that invites conversation: "What's your experience with [topic]?" or "Agree or disagree?"
57
+ 6. **Hashtags (last line)** — 3-5 relevant hashtags, separated from the body text.
58
+
59
+ ### Document/Carousel Structure
60
+
61
+ - Hook slide with a bold statement or question.
62
+ - 10-15 slides with one idea per slide, 20-30 words maximum.
63
+ - Clean, readable design with large text and minimal clutter.
64
+ - CTA on the final slide directing comments, shares, or follows.
65
+ - Upload as PDF format.
66
+
67
+ ### Effective Post Formats
68
+
69
+ - **Storytelling**: "3 years ago, I [experience]. Here is what I learned..."
70
+ - **Thought leadership**: "Unpopular opinion: [contrarian take]. Here is why..."
71
+ - **Data-driven**: "[Surprising stat]. Here is what it means for [audience]..."
72
+ - **Lessons learned**: "I [did X] and discovered [Y]. The 5 biggest lessons:"
73
+ - **Before/After**: "Before: [old way]. After: [new insight]. The difference was [key lesson]."
74
+
75
+ ## Writing Guidelines
76
+
77
+ - **First person is mandatory.** Personal stories outperform generic advice on LinkedIn. "I learned" beats "One should learn."
78
+ - Write in short paragraphs of 1-2 sentences. A wall of text kills readability and dwell time.
79
+ - Front-load the hook. The first 210 characters (~2 lines on desktop) must compel the "see more" tap. If the hook does not create curiosity, urgency, or personal relevance, rewrite it.
80
+ - Ask a genuine question at the end. Not rhetorical, not generic. A specific question your audience can answer from their own experience.
81
+ - Tag only 2-3 people who will actually engage. Spam tagging 10+ people looks desperate and may trigger filters.
82
+ - Never put links in the post body. Post the content first, then add the link as the first comment. Or say "Link in comments" and drop it in a reply.
83
+ - Use 3-5 hashtags on the last line. Mix 1-2 broad industry tags with 2-3 niche/specific tags. Avoid generic hashtags like #motivation or #success.
84
+ - Do not place hashtags in the middle of post text. It breaks readability and looks unprofessional.
85
+
86
+ ## Output Format
87
+
88
+ ```
89
+ === HOOK ===
90
+ [First 2 lines — must work before the "see more" fold. Max ~210 characters. Contrarian take, surprising stat, or personal story opener.]
91
+
92
+ === BODY ===
93
+ [Story or context — 2-3 short paragraphs, first person, short sentences, frequent line breaks.]
94
+
95
+ [Transition to insights.]
96
+
97
+ === INSIGHTS ===
98
+ 1. [Actionable takeaway — one sentence]
99
+ 2. [Actionable takeaway — one sentence]
100
+ 3. [Actionable takeaway — one sentence]
101
+ 4. [Actionable takeaway — one sentence]
102
+ 5. [Actionable takeaway — one sentence]
103
+
104
+ === CTA ===
105
+ [One-line takeaway summary.]
106
+
107
+ [Genuine question to drive comments — specific, not generic.]
108
+
109
+ === HASHTAGS ===
110
+ #hashtag1 #hashtag2 #hashtag3 #hashtag4 #hashtag5
111
+ [3-5 hashtags on a separate final line]
112
+ ```
113
+
114
+ ## Quality Criteria
115
+
116
+ - [ ] Hook fits within ~210 characters and creates a compelling reason to tap "see more"
117
+ - [ ] Post is written in first person with a personal, authentic voice
118
+ - [ ] Paragraphs are 1-2 sentences long with line breaks between them
119
+ - [ ] Post contains 3-5 actionable, numbered or bulleted insights
120
+ - [ ] CTA is a genuine, specific question (not rhetorical or generic)
121
+ - [ ] No external links appear in the post body
122
+ - [ ] Hashtags are 3-5 total, placed on the last line, separated from the body
123
+ - [ ] No more than 2-3 people are tagged, and only those who will likely engage
124
+ - [ ] Total post length is under 3,000 characters
125
+ - [ ] Post delivers value worth commenting on, not just reacting to
126
+
127
+ ## Anti-Patterns
128
+
129
+ - **Links in post body** — Kills reach by approximately 3x. The algorithm deprioritizes posts that drive users off LinkedIn. Always use the "link in comments" approach.
130
+ - **Spam tagging** — Tagging 10+ people who did not ask to be tagged looks desperate, may trigger spam filters, and damages professional credibility.
131
+ - **Editing after posting** — Editing within the first 10 minutes can reset algorithmic distribution, destroying the critical early engagement window.
132
+ - **More than 1 post per day** — Posts compete against each other for your own audience's attention. The algorithm may suppress the second post.
133
+ - **Corporate jargon** — "Synergy," "leverage," "circle back," "at the end of the day" make content feel robotic and impersonal. Write like a human.
134
+ - **No line breaks** — A wall of text kills readability and dwell time. Use 1-2 sentence paragraphs with whitespace between them.
135
+ - **Posting on weekends** — Unless your audience is specifically active on weekends, reach drops 50-70% on Saturday and Sunday.
136
+ - **Generic motivational quotes** — Saturated content type that signals low effort and does not generate meaningful engagement.
137
+ - **Engagement pods** — LinkedIn actively detects and penalizes coordinated engagement groups. The short-term boost is not worth the long-term suppression risk.
138
+ - **Reposting without adding value** — "So true!" reshares get minimal engagement. Always add your own perspective, experience, or analysis.
@@ -0,0 +1,366 @@
1
+ ---
2
+ id: researching
3
+ name: "Research & Data Collection"
4
+ whenToUse: |
5
+ Creating agents that research topics, collect data from the web, verify facts,
6
+ or produce structured research briefs.
7
+ NOT for: data analysis/interpretation, content creation, strategic planning.
8
+ version: "1.0.0"
9
+ ---
10
+
11
+ ## Compact Rules
12
+
13
+ 1. Verify every finding against at least one additional independent source.
14
+ 2. Note the publication date of every source and prefer the most recent data.
15
+ 3. Prioritize primary sources (original reports, official data) over secondary aggregators.
16
+ 4. Structure all briefs into: Key Findings, Trending Angles, Sources, Recommendations, and Gaps.
17
+ 5. Check for completeness; explain any empty sections or missing information.
18
+ 6. Surface contradictions transparently when sources disagree; do not pick a side.
19
+ 7. Record the specific access date for every web source cited.
20
+ 8. Use native web search tools for public pages; reserve browser automation for logins/dynamic content.
21
+ 9. Target 3-5 high-quality sources per angle; stop searching when finding diminish returns.
22
+ 10. Assign explicit confidence levels (high, medium, low) to every key finding.
23
+ 11. Document research gaps honestly; what you cannot find is as important as what you can.
24
+ 12. Never present facts without a clickable source URL.
25
+
26
+ <!-- End Compact Rules. Full reference below. -->
27
+
28
+ # Research & Data Collection — Best Practices
29
+
30
+ ## Core Principles
31
+
32
+ 1. **Source verification first** — Never include a finding without verifying it against at least one additional independent source. A single unverified source is flagged as "low confidence" and clearly marked.
33
+
34
+ 2. **Freshness bias** — Prefer recent sources over older ones when the topic is time-sensitive. Always note the publication date of every source cited. Discard outdated data when newer, equally reliable data exists.
35
+
36
+ 3. **Primary over secondary** — Always prefer original reports, official announcements, and first-party data over blog posts, aggregator articles, or opinion pieces. When secondary sources are used, trace them back to their original and cite both.
37
+
38
+ 4. **Structured output** — Every research brief follows a consistent format: Key Findings, Trending Angles, Sources, Recommendations, and Gaps. This structure is non-negotiable regardless of topic complexity.
39
+
40
+ 5. **Completeness check** — Before delivering a brief, verify that all sections are populated, all sources are accessible, and no key angle has been left unexplored. If a section is empty, explain why.
41
+
42
+ 6. **Contradiction surfacing** — When sources disagree, present both sides with their respective evidence rather than choosing one. Let the consumer of the research make the judgment call.
43
+
44
+ 7. **Access date logging** — Record when each source was accessed. Web content changes or disappears; documenting access dates protects the integrity of the research and allows later verification.
45
+
46
+ 8. **Browser tool discipline** — Use native web search tools (WebSearch, web_fetch) for all public web research. Reserve browser automation (Playwright) for social media platforms, login-required pages, and visual/screenshot extraction. Never open a browser when a native search tool suffices.
47
+
48
+ 9. **Efficiency and focus** — Be objective and direct. Research enough to fulfill the task without being exhaustive. Avoid spending excessive time on broad sweeps when a focused search answers the question. The goal is actionable intelligence, not academic completeness. If 5 high-quality sources answer the brief, don't search for 15 more.
49
+
50
+ ## Techniques & Frameworks
51
+
52
+ ### Information Landscape Mapping
53
+
54
+ Before starting any search, identify the key categories of sources relevant to the topic: industry publications, official company pages, government databases, social media, academic papers, news outlets. Prioritize categories by expected reliability and relevance. This creates a mental map that prevents tunnel vision and ensures diverse source coverage.
55
+
56
+ ### Focused Search Sweep
57
+
58
+ Conduct an initial search across the most relevant source categories. Collect 5-10 candidate sources — enough to map the terrain without over-searching. Note which angles are well-covered and which have gaps. Move quickly to deep-dive on the best sources rather than endlessly expanding the search.
59
+
60
+ ### Deep-Dive Methodology
61
+
62
+ Select the 3-5 most promising sources and extract detailed findings. Cross-reference key claims across sources. Flag contradictions. Focus on extracting what the crew actually needs — not every possible angle, just the ones that serve the brief.
63
+
64
+ ### Cross-Referencing
65
+
66
+ Compare data points across independent sources. Assign confidence levels based on corroboration:
67
+ - **High confidence**: 3 or more independent sources agree.
68
+ - **Medium confidence**: 2 sources agree.
69
+ - **Low confidence**: Single source or conflicting data.
70
+
71
+ When sources disagree, document both positions with their supporting evidence. Do not resolve contradictions by choosing a side — surface them transparently.
72
+
73
+ ### Synthesis into Brief Format
74
+
75
+ Organize findings into the standard output format:
76
+ 1. Write Key Findings as concise, cited statements with confidence levels.
77
+ 2. Identify Trending Angles with lifecycle assessments (emerging, growth, mature, declining).
78
+ 3. Compile the Sources table with type and relevance scores.
79
+ 4. Draft actionable Recommendations grounded in the findings.
80
+ 5. Document Gaps honestly — what you could not find is as valuable as what you did find.
81
+
82
+ ### Self-Review Checklist
83
+
84
+ Before delivering any research brief, verify:
85
+ - Are all claims cited with source URLs?
86
+ - Are confidence levels assigned to every finding?
87
+ - Are gaps documented?
88
+ - Is the brief actionable for downstream consumers?
89
+ - Would a strategist or content creator be able to work from this without additional research?
90
+
91
+ ### Decision Criteria
92
+
93
+ - **When to stop researching**: When additional sources confirm existing findings without adding new information (diminishing returns). When the brief covers all angles requested.
94
+ - **When to discard a source**: When the source has no clear authorship or institutional backing. When data is more than 2 years old for a time-sensitive topic. When claims cannot be independently verified. When the source has a documented history of unreliable reporting.
95
+ - **When to escalate**: When contradictory evidence is evenly weighted and you cannot determine which is more reliable. When the topic requires specialized domain expertise beyond general research. When access to key sources is restricted or paywalled.
96
+
97
+ ## Tool Selection Guidelines
98
+
99
+ ### When to Use Native Web Search
100
+
101
+ Use WebSearch / web_fetch for all publicly accessible pages: news sites, blogs, official documentation, Wikipedia, public company pages, search engine results. Native search is fast and headless — no browser window overhead, no session management, no risk of triggering bot detection.
102
+
103
+ ### When to Use Browser Automation (Playwright)
104
+
105
+ Use Playwright browser tools for:
106
+ - Social media platforms (Instagram, Twitter/X, LinkedIn feed, YouTube channel pages)
107
+ - Any page that requires authentication or redirects to a login screen
108
+ - Pages where visual screenshot extraction is needed
109
+ - Dynamic content that does not render without JavaScript execution
110
+
111
+ When opening a browser for a social platform, inform the user they may need to log in if no saved session exists.
112
+
113
+ ### General Rule
114
+
115
+ Default to native search. Escalate to browser automation only when native tools cannot access the content. This keeps research fast, lightweight, and less prone to failures from session timeouts or CAPTCHAs.
116
+
117
+ ## Quality Criteria
118
+
119
+ - [ ] Topic and scope were confirmed before research began
120
+ - [ ] Time range was confirmed for temporal content
121
+ - [ ] All key findings include source URLs and access dates
122
+ - [ ] Confidence levels (high/medium/low) are assigned to every finding
123
+ - [ ] At least 2 independent sources corroborate each high-confidence finding
124
+ - [ ] Trending angles include lifecycle assessment (emerging/growth/mature/declining)
125
+ - [ ] Sources table includes type and relevance score for each source
126
+ - [ ] Gaps section is populated — even if gaps are minor
127
+ - [ ] Recommendations are actionable and grounded in the findings
128
+ - [ ] No opinions are presented as facts
129
+ - [ ] Contradictory evidence is surfaced, not suppressed
130
+ - [ ] Output follows the standard brief structure with all sections present
131
+
132
+ ## Output Examples
133
+
134
+ ### Example 1: Market Trend Research Brief
135
+
136
+ ```
137
+ RESEARCH BRIEF
138
+ Topic: Growth of AI-powered code review tools in enterprise development
139
+ Time Range: January 2025 – February 2026
140
+ Prepared: 2026-02-28
141
+
142
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
143
+
144
+ KEY FINDINGS
145
+
146
+ 1. Enterprise adoption of AI code review tools grew 47% YoY in 2025,
147
+ with the strongest growth in financial services and healthcare sectors.
148
+ Confidence: HIGH
149
+ Source: Gartner DevOps Hype Cycle Report, August 2025
150
+ URL: https://www.gartner.com/en/documents/example-devops-2025
151
+ Accessed: 2026-02-27
152
+
153
+ 2. The three market leaders by enterprise seats are CodeRabbit (28% share),
154
+ Sourcery (22% share), and Codacy (15% share) as of Q4 2025.
155
+ Confidence: HIGH
156
+ Source: IDC MarketScape: AI Code Quality Tools 2025
157
+ URL: https://www.idc.com/getdoc.jsp?containerId=example-2025
158
+ Accessed: 2026-02-27
159
+
160
+ 3. Average reduction in critical bugs post-deployment after adopting AI
161
+ code review is reported at 31-38% across surveyed enterprises (n=420).
162
+ Confidence: MEDIUM — based on vendor-commissioned study; independent
163
+ replication pending.
164
+ Source: SmartBear State of Code Review 2025
165
+ URL: https://smartbear.com/resources/ebooks/example-state-of-code-review/
166
+ Accessed: 2026-02-26
167
+
168
+ 4. Security-focused AI review (SAST integration) is the fastest-growing
169
+ subsegment, with 62% of new enterprise contracts including security
170
+ scanning as a core requirement.
171
+ Confidence: HIGH
172
+ Source: Snyk Annual AppSec Report 2025
173
+ URL: https://snyk.io/reports/example-appsec-2025/
174
+ Accessed: 2026-02-27
175
+
176
+ TRENDING ANGLES
177
+
178
+ - "Shift-left security via AI review" — Lifecycle: growth phase.
179
+ Enterprises are bundling AI code review with SAST/DAST pipelines.
180
+ Estimated 18-24 months before plateau.
181
+
182
+ - "AI reviewer fatigue" — Lifecycle: emerging.
183
+ Early reports of developers disabling AI suggestions due to
184
+ false-positive rates above 20%. Could become a counter-narrative
185
+ by mid-2026.
186
+
187
+ - "Compliance-driven adoption" — Lifecycle: mature.
188
+ Regulatory pressure (SOC2, HIPAA) is now the #2 driver of adoption
189
+ behind productivity gains.
190
+
191
+ SOURCES
192
+
193
+ | # | Source | Type | Relevance | Date |
194
+ |----|-------------------------------------|-----------|-----------|------------|
195
+ | 1 | Gartner DevOps Hype Cycle 2025 | Analyst | 9/10 | 2025-08 |
196
+ | 2 | IDC MarketScape AI Code Quality | Analyst | 9/10 | 2025-11 |
197
+ | 3 | SmartBear State of Code Review | Industry | 7/10 | 2025-09 |
198
+ | 4 | Snyk AppSec Report 2025 | Industry | 8/10 | 2025-10 |
199
+ | 5 | GitHub Octoverse 2025 | Platform | 7/10 | 2025-11 |
200
+ | 6 | Stack Overflow Developer Survey | Community | 6/10 | 2025-06 |
201
+ | 7 | InfoQ AI in DevOps Trends | Media | 5/10 | 2026-01 |
202
+
203
+ RECOMMENDATIONS
204
+
205
+ 1. Position messaging around security-first AI review — this is the angle
206
+ with the strongest enterprise buying signal right now.
207
+ 2. Address the "reviewer fatigue" narrative proactively in content strategy,
208
+ emphasizing low false-positive rates as a differentiator.
209
+ 3. Produce a competitive comparison matrix using IDC data as the backbone.
210
+
211
+ GAPS
212
+
213
+ - No reliable data found on AI code review adoption in startups/SMBs
214
+ (under 200 employees). All major studies focus on enterprise.
215
+ - Pricing comparison data across vendors is inconsistent; vendors use
216
+ different unit models (per seat, per repo, per scan).
217
+ - No independent (non-vendor-commissioned) study on bug reduction rates
218
+ was found within the specified time range.
219
+ ```
220
+
221
+ ### Example 2: Competitive Intelligence Brief
222
+
223
+ ```
224
+ RESEARCH BRIEF
225
+ Topic: Competitive landscape for direct-to-consumer sustainable sneaker brands
226
+ Time Range: Q3 2025 – Q1 2026
227
+ Prepared: 2026-02-28
228
+
229
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
230
+
231
+ KEY FINDINGS
232
+
233
+ 1. Allbirds reported a 12% revenue decline in Q3 2025 and announced
234
+ a pivot toward B2B material licensing as a new revenue stream.
235
+ Confidence: HIGH
236
+ Source: Allbirds Q3 2025 Earnings Call Transcript
237
+ URL: https://investor.allbirds.com/example-q3-2025-earnings
238
+ Accessed: 2026-02-26
239
+
240
+ 2. Veja surpassed $500M in annual revenue for the first time in 2025,
241
+ driven by expansion into Asian markets (Japan +85% YoY, South Korea +62% YoY).
242
+ Confidence: HIGH
243
+ Source: Veja Impact Report 2025 (official)
244
+ URL: https://project.veja-store.com/en/example-impact-2025
245
+ Accessed: 2026-02-27
246
+
247
+ 3. Three new entrants gained significant traction in 2025: Thousand Fell
248
+ (circular model, $28M Series B), Hilma Running (performance-sustainable
249
+ hybrid, $15M seed), and Saye (European DTC, 340% Instagram growth).
250
+ Confidence: MEDIUM — funding data confirmed via Crunchbase; social
251
+ growth metrics self-reported by brands.
252
+ Source: Crunchbase, TechCrunch, brand social profiles
253
+ URLs: https://www.crunchbase.com/organization/example-thousand-fell
254
+ https://techcrunch.com/2025/example-hilma-running/
255
+ Accessed: 2026-02-27
256
+
257
+ 4. Consumer sentiment analysis (Reddit, Twitter/X, TrustPilot) shows
258
+ "durability" overtaking "carbon footprint" as the #1 purchase driver
259
+ for sustainable sneakers in Q4 2025.
260
+ Confidence: MEDIUM — based on NLP analysis of 12,400 public posts;
261
+ methodology documented by Brandwatch.
262
+ Source: Brandwatch Consumer Insights Q4 2025
263
+ URL: https://www.brandwatch.com/reports/example-sustainable-fashion/
264
+ Accessed: 2026-02-28
265
+
266
+ 5. Resale and circular economy programs are now offered by 6 of the top
267
+ 10 sustainable sneaker brands, up from 2 of 10 in 2024.
268
+ Confidence: HIGH
269
+ Source: ThredUp Resale Report 2025, verified against brand websites
270
+ URL: https://www.thredup.com/resale/example-2025
271
+ Accessed: 2026-02-26
272
+
273
+ TRENDING ANGLES
274
+
275
+ - "Durability as the new sustainability" — Lifecycle: growth phase.
276
+ Consumers are reframing sustainability around product longevity rather
277
+ than materials sourcing. Strong narrative opportunity. 12+ months of
278
+ runway before saturation.
279
+
280
+ - "Circular sneaker programs" — Lifecycle: early growth.
281
+ Take-back and recycling programs are becoming table stakes. Brands
282
+ without circular programs are starting to face earned media gaps.
283
+
284
+ - "B2B pivot for struggling DTC brands" — Lifecycle: emerging.
285
+ Allbirds' material licensing move may signal a broader trend of
286
+ sustainable brands monetizing R&D rather than consumer sales.
287
+
288
+ SOURCES
289
+
290
+ | # | Source | Type | Relevance | Date |
291
+ |----|--------------------------------------|-----------|-----------|------------|
292
+ | 1 | Allbirds Q3 2025 Earnings Transcript | Financial | 9/10 | 2025-11 |
293
+ | 2 | Veja Impact Report 2025 | Official | 9/10 | 2026-01 |
294
+ | 3 | Crunchbase Funding Data | Database | 8/10 | 2026-02 |
295
+ | 4 | TechCrunch Hilma Running Coverage | Media | 6/10 | 2025-09 |
296
+ | 5 | Brandwatch Consumer Insights Q4 | Analytics | 7/10 | 2026-01 |
297
+ | 6 | ThredUp Resale Report 2025 | Industry | 8/10 | 2025-10 |
298
+ | 7 | Business of Fashion Sustainability | Media | 7/10 | 2026-02 |
299
+ | 8 | Saye Instagram Analytics (manual) | Social | 5/10 | 2026-02 |
300
+
301
+ RECOMMENDATIONS
302
+
303
+ 1. Monitor Allbirds' B2B licensing strategy — if successful, it may
304
+ reshape the competitive model for the entire category.
305
+ 2. Invest content in the "durability" narrative; it aligns with current
306
+ consumer sentiment and differentiates from pure eco-messaging.
307
+ 3. Evaluate launching or expanding a circular/take-back program — this
308
+ is approaching table-stakes status for credible sustainable brands.
309
+ 4. Track the three new entrants (Thousand Fell, Hilma, Saye) quarterly;
310
+ they represent the next generation of competitive threats.
311
+
312
+ GAPS
313
+
314
+ - No reliable sell-through data available for DTC-only brands (unlike
315
+ wholesale brands tracked by NPD/Circana). Revenue comparisons are
316
+ limited to public companies and self-reported figures.
317
+ - Environmental impact claims across brands use different methodologies
318
+ (LCA scope varies), making direct comparison unreliable.
319
+ - China-based sustainable sneaker brands were excluded due to language
320
+ barriers in source verification; this is a known blind spot.
321
+ ```
322
+
323
+ ## Anti-Patterns
324
+
325
+ ### Never Do
326
+
327
+ 1. **Present data without a source URL** — Every factual claim needs a traceable, clickable source. "According to industry reports" is never acceptable.
328
+ 2. **Assume the research scope without confirmation** — Even if the topic seems obvious from context, always restate it and confirm scope before researching.
329
+ 3. **Mix facts with opinions** — Keep factual findings and interpretive recommendations in separate, clearly labeled sections.
330
+ 4. **Use a single source as proof** — One source is a lead, not a finding. Corroborate or flag as low confidence.
331
+ 5. **Ignore contradictory evidence** — When sources disagree, present both sides. Suppressing contradictions is a research failure.
332
+ 6. **Skip the time range question** — For temporal topics, assuming "recent" without clarification leads to misaligned expectations and wasted effort.
333
+ 7. **Deliver unstructured output** — Raw notes, bullet dumps, or stream-of-consciousness summaries are not acceptable deliverables.
334
+
335
+ ### Always Do
336
+
337
+ 1. **Include access dates** — Web content changes or disappears. Access dates protect the integrity of the brief and allow verification.
338
+ 2. **Note confidence levels** — Every key finding must have an explicit confidence rating (high, medium, low) with a brief justification.
339
+ 3. **State what you could not find** — The Gaps section is mandatory. Documenting blind spots is as valuable as documenting findings.
340
+ 4. **Cite the original source** — When a secondary source references primary data, trace back and cite the original. Include both if the secondary source adds context.
341
+
342
+ ## Vocabulary Guidance
343
+
344
+ ### Use
345
+
346
+ - "According to [source]..."
347
+ - "The data indicates..."
348
+ - "Confidence level: high/medium/low"
349
+ - "Primary source confirms..."
350
+ - "Accessed on [date]"
351
+ - "Contradictory evidence suggests..."
352
+ - "Gap identified:"
353
+
354
+ ### Avoid
355
+
356
+ - "I think that..." — present evidence, not opinions
357
+ - "Everyone knows..." — nothing is assumed common knowledge
358
+ - "Source: the internet" — always cite specific URLs
359
+ - "Probably..." — quantify uncertainty with confidence levels instead
360
+ - "Trust me" — let the sources speak for themselves
361
+
362
+ ### Tone Rules
363
+
364
+ - **Objective**: Present findings without editorial bias. Separate factual reporting from interpretation.
365
+ - **Evidence-based**: Every statement of fact is backed by a cited source. No unsupported claims.
366
+ - **Uncertainty-flagged**: When confidence is not high, say so explicitly. Use "Confidence: medium — based on two corroborating sources" rather than hedging language.