@namch/agent-assistant 1.0.0 → 1.0.1
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/README.md +83 -539
- package/agents/backend-engineer.md +0 -8
- package/agents/brainstormer.md +0 -6
- package/agents/business-analyst.md +0 -5
- package/agents/database-architect.md +0 -6
- package/agents/debugger.md +0 -6
- package/agents/designer.md +0 -5
- package/agents/devops-engineer.md +0 -7
- package/agents/docs-manager.md +0 -6
- package/agents/frontend-engineer.md +0 -7
- package/agents/game-engineer.md +0 -7
- package/agents/mobile-engineer.md +0 -7
- package/agents/performance-engineer.md +0 -7
- package/agents/planner.md +0 -6
- package/agents/project-manager.md +0 -6
- package/agents/researcher.md +0 -5
- package/agents/reviewer.md +0 -6
- package/agents/scouter.md +0 -6
- package/agents/security-engineer.md +0 -7
- package/agents/tech-lead.md +0 -7
- package/agents/tester.md +0 -5
- package/cli/README.md +19 -10
- package/documents/business/business-features.md +1 -1
- package/documents/business/business-prd.md +4 -4
- package/documents/knowledge-architecture.md +1 -1
- package/documents/knowledge-domain.md +1 -1
- package/documents/knowledge-overview.md +14 -29
- package/documents/knowledge-source-base.md +14 -14
- package/package.json +1 -1
- package/rules/QUICK-REFERENCE.md +4 -1
- package/rules/SKILL-DISCOVERY.md +37 -14
- package/skills/active-directory-attacks/SKILL.md +383 -0
- package/skills/active-directory-attacks/references/advanced-attacks.md +382 -0
- package/skills/agent-evaluation/SKILL.md +64 -0
- package/skills/agent-memory-mcp/SKILL.md +82 -0
- package/skills/agent-memory-systems/SKILL.md +67 -0
- package/skills/agent-tool-builder/SKILL.md +53 -0
- package/skills/ai-agents-architect/SKILL.md +90 -0
- package/skills/ai-product/SKILL.md +54 -0
- package/skills/ai-wrapper-product/SKILL.md +273 -0
- package/skills/api-documentation-generator/SKILL.md +484 -0
- package/skills/api-fuzzing-bug-bounty/SKILL.md +433 -0
- package/skills/api-security-best-practices/SKILL.md +907 -0
- package/skills/autonomous-agent-patterns/SKILL.md +761 -0
- package/skills/autonomous-agents/SKILL.md +68 -0
- package/skills/aws-penetration-testing/SKILL.md +405 -0
- package/skills/aws-penetration-testing/references/advanced-aws-pentesting.md +469 -0
- package/skills/azure-functions/SKILL.md +42 -0
- package/skills/backend-dev-guidelines/SKILL.md +342 -0
- package/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
- package/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
- package/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
- package/skills/backend-dev-guidelines/resources/configuration.md +275 -0
- package/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
- package/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
- package/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
- package/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
- package/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
- package/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
- package/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
- package/skills/broken-authentication/SKILL.md +476 -0
- package/skills/bullmq-specialist/SKILL.md +57 -0
- package/skills/bun-development/SKILL.md +691 -0
- package/skills/burp-suite-testing/SKILL.md +380 -0
- package/skills/cloud-penetration-testing/SKILL.md +501 -0
- package/skills/cloud-penetration-testing/references/advanced-cloud-scripts.md +318 -0
- package/skills/computer-use-agents/SKILL.md +315 -0
- package/skills/content-creator/SKILL.md +248 -0
- package/skills/content-creator/assets/content_calendar_template.md +99 -0
- package/skills/content-creator/references/brand_guidelines.md +199 -0
- package/skills/content-creator/references/content_frameworks.md +534 -0
- package/skills/content-creator/references/social_media_optimization.md +317 -0
- package/skills/content-creator/scripts/brand_voice_analyzer.py +185 -0
- package/skills/content-creator/scripts/seo_optimizer.py +419 -0
- package/skills/context-window-management/SKILL.md +53 -0
- package/skills/conversation-memory/SKILL.md +61 -0
- package/skills/copy-editing/SKILL.md +439 -0
- package/skills/copywriting/SKILL.md +225 -0
- package/skills/crewai/SKILL.md +243 -0
- package/skills/discord-bot-architect/SKILL.md +277 -0
- package/skills/dispatching-parallel-agents/SKILL.md +180 -0
- package/skills/email-sequence/SKILL.md +925 -0
- package/skills/email-systems/SKILL.md +54 -0
- package/skills/ethical-hacking-methodology/SKILL.md +466 -0
- package/skills/executing-plans/SKILL.md +76 -0
- package/skills/file-path-traversal/SKILL.md +486 -0
- package/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/frontend-dev-guidelines/SKILL.md +359 -0
- package/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
- package/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
- package/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
- package/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
- package/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
- package/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
- package/skills/frontend-dev-guidelines/resources/performance.md +406 -0
- package/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
- package/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
- package/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
- package/skills/gcp-cloud-run/SKILL.md +288 -0
- package/skills/git-pushing/SKILL.md +33 -0
- package/skills/git-pushing/scripts/smart_commit.sh +19 -0
- package/skills/github-workflow-automation/SKILL.md +846 -0
- package/skills/html-injection-testing/SKILL.md +498 -0
- package/skills/idor-testing/SKILL.md +442 -0
- package/skills/inngest/SKILL.md +55 -0
- package/skills/javascript-mastery/SKILL.md +645 -0
- package/skills/kaizen/SKILL.md +730 -0
- package/skills/langfuse/SKILL.md +238 -0
- package/skills/langgraph/SKILL.md +287 -0
- package/skills/linux-privilege-escalation/SKILL.md +504 -0
- package/skills/llm-app-patterns/SKILL.md +760 -0
- package/skills/metasploit-framework/SKILL.md +478 -0
- package/skills/multi-agent-brainstorming/SKILL.md +256 -0
- package/skills/neon-postgres/SKILL.md +56 -0
- package/skills/nextjs-supabase-auth/SKILL.md +56 -0
- package/skills/nosql-expert/SKILL.md +111 -0
- package/skills/pentest-checklist/SKILL.md +334 -0
- package/skills/pentest-commands/SKILL.md +438 -0
- package/skills/plaid-fintech/SKILL.md +50 -0
- package/skills/planning-with-files/SKILL.md +211 -0
- package/skills/planning-with-files/examples.md +202 -0
- package/skills/planning-with-files/reference.md +218 -0
- package/skills/planning-with-files/scripts/check-complete.sh +44 -0
- package/skills/planning-with-files/scripts/init-session.sh +120 -0
- package/skills/planning-with-files/templates/findings.md +95 -0
- package/skills/planning-with-files/templates/progress.md +114 -0
- package/skills/planning-with-files/templates/task_plan.md +132 -0
- package/skills/privilege-escalation-methods/SKILL.md +333 -0
- package/skills/production-code-audit/SKILL.md +540 -0
- package/skills/prompt-caching/SKILL.md +61 -0
- package/skills/prompt-engineering/SKILL.md +171 -0
- package/skills/prompt-library/SKILL.md +322 -0
- package/skills/rag-engineer/SKILL.md +90 -0
- package/skills/rag-implementation/SKILL.md +63 -0
- package/skills/react-ui-patterns/SKILL.md +289 -0
- package/skills/red-team-tools/SKILL.md +310 -0
- package/skills/scanning-tools/SKILL.md +589 -0
- package/skills/shodan-reconnaissance/SKILL.md +503 -0
- package/skills/slack-bot-builder/SKILL.md +264 -0
- package/skills/smtp-penetration-testing/SKILL.md +500 -0
- package/skills/social-content/SKILL.md +807 -0
- package/skills/software-architecture/SKILL.md +75 -0
- package/skills/sql-injection-testing/SKILL.md +448 -0
- package/skills/sqlmap-database-pentesting/SKILL.md +400 -0
- package/skills/ssh-penetration-testing/SKILL.md +488 -0
- package/skills/stripe-integration/SKILL.md +69 -0
- package/skills/subagent-driven-development/SKILL.md +240 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
- package/skills/subagent-driven-development/implementer-prompt.md +78 -0
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/tavily-web/SKILL.md +36 -0
- package/skills/telegram-bot-builder/SKILL.md +254 -0
- package/skills/test-driven-development/SKILL.md +371 -0
- package/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/skills/test-fixing/SKILL.md +119 -0
- package/skills/top-web-vulnerabilities/SKILL.md +543 -0
- package/skills/trigger-dev/SKILL.md +67 -0
- package/skills/twilio-communications/SKILL.md +295 -0
- package/skills/upstash-qstash/SKILL.md +68 -0
- package/skills/verification-before-completion/SKILL.md +139 -0
- package/skills/voice-agents/SKILL.md +68 -0
- package/skills/voice-ai-development/SKILL.md +302 -0
- package/skills/windows-privilege-escalation/SKILL.md +496 -0
- package/skills/wireshark-analysis/SKILL.md +497 -0
- package/skills/wordpress-penetration-testing/SKILL.md +485 -0
- package/skills/workflow-automation/SKILL.md +68 -0
- package/skills/xss-html-injection/SKILL.md +499 -0
- package/skills/zapier-make-patterns/SKILL.md +67 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Social Media Optimization Guide
|
|
2
|
+
|
|
3
|
+
## Platform-Specific Best Practices
|
|
4
|
+
|
|
5
|
+
### LinkedIn
|
|
6
|
+
**Audience**: B2B professionals, decision-makers, thought leaders
|
|
7
|
+
**Best Times**: Tuesday-Thursday, 8-10 AM and 5-6 PM
|
|
8
|
+
**Optimal Length**: 1,300-2,000 characters for posts
|
|
9
|
+
|
|
10
|
+
#### Content Formats
|
|
11
|
+
- **Text Posts**: 1,300 characters optimal, use line breaks
|
|
12
|
+
- **Articles**: 1,900-2,000 words, include 5+ images
|
|
13
|
+
- **Videos**: 30 seconds - 10 minutes, native upload preferred
|
|
14
|
+
- **Documents**: PDF carousels, 10-15 slides
|
|
15
|
+
- **Polls**: 4 options max, 1-2 week duration
|
|
16
|
+
|
|
17
|
+
#### Optimization Tips
|
|
18
|
+
- First 2 lines are crucial (shown in preview)
|
|
19
|
+
- Use emoji sparingly for visual breaks
|
|
20
|
+
- Include 3-5 relevant hashtags
|
|
21
|
+
- Tag people and companies when relevant
|
|
22
|
+
- Native video gets 5x more engagement
|
|
23
|
+
- Post consistently (3-5x per week optimal)
|
|
24
|
+
|
|
25
|
+
#### Algorithm Factors
|
|
26
|
+
- Dwell time (time spent reading)
|
|
27
|
+
- Comments valued over likes
|
|
28
|
+
- Early engagement (first hour) crucial
|
|
29
|
+
- Creator mode boosts reach
|
|
30
|
+
- Replies to comments increase visibility
|
|
31
|
+
|
|
32
|
+
### Twitter/X
|
|
33
|
+
**Audience**: News junkies, tech enthusiasts, real-time conversation
|
|
34
|
+
**Best Times**: Weekdays 9-10 AM and 7-9 PM
|
|
35
|
+
**Optimal Length**: 100-250 characters
|
|
36
|
+
|
|
37
|
+
#### Content Formats
|
|
38
|
+
- **Single Tweets**: 250 characters, 1-2 hashtags
|
|
39
|
+
- **Threads**: 5-15 tweets, numbered format
|
|
40
|
+
- **Images**: 16:9 ratio, up to 4 per tweet
|
|
41
|
+
- **Videos**: Up to 2:20, square or landscape
|
|
42
|
+
- **Polls**: 2-4 options, 5 minutes - 7 days
|
|
43
|
+
|
|
44
|
+
#### Optimization Tips
|
|
45
|
+
- Front-load important information
|
|
46
|
+
- Use threads for complex topics
|
|
47
|
+
- Include visuals (2-3x more engagement)
|
|
48
|
+
- Retweet with comment > regular RT
|
|
49
|
+
- Schedule threads for consistency
|
|
50
|
+
- Engage genuinely with replies
|
|
51
|
+
|
|
52
|
+
#### Algorithm Factors
|
|
53
|
+
- Engagement rate (likes, RTs, replies)
|
|
54
|
+
- Relationship (mutual follows prioritized)
|
|
55
|
+
- Recency over evergreen
|
|
56
|
+
- Topic relevance to user interests
|
|
57
|
+
- Link posts receive less reach
|
|
58
|
+
|
|
59
|
+
### Instagram
|
|
60
|
+
**Audience**: Visual-first, millennials & Gen Z, lifestyle focused
|
|
61
|
+
**Best Times**: Weekdays 11 AM - 1 PM and 7-9 PM
|
|
62
|
+
**Optimal Length**: 138-150 characters shown in preview
|
|
63
|
+
|
|
64
|
+
#### Content Formats
|
|
65
|
+
- **Feed Posts**: Square (1:1) or vertical (4:5)
|
|
66
|
+
- **Stories**: 15 seconds max, vertical (9:16)
|
|
67
|
+
- **Reels**: 15-90 seconds, vertical (9:16)
|
|
68
|
+
- **Carousels**: 2-10 images/videos
|
|
69
|
+
- **IGTV/Video**: 1-60 minutes
|
|
70
|
+
|
|
71
|
+
#### Optimization Tips
|
|
72
|
+
- First sentence crucial (caption preview)
|
|
73
|
+
- Use up to 30 hashtags (5-10 in caption, rest in comment)
|
|
74
|
+
- Carousel posts get highest engagement
|
|
75
|
+
- Stories with polls/questions boost views
|
|
76
|
+
- Reels get maximum organic reach
|
|
77
|
+
- Post consistently (1-2 feed posts daily)
|
|
78
|
+
|
|
79
|
+
#### Algorithm Factors
|
|
80
|
+
- Relationship (DMs, comments, tags)
|
|
81
|
+
- Interest (based on past interactions)
|
|
82
|
+
- Timeliness (newer posts prioritized)
|
|
83
|
+
- Frequency of app usage
|
|
84
|
+
- Time spent on posts (saves valuable)
|
|
85
|
+
|
|
86
|
+
### Facebook
|
|
87
|
+
**Audience**: Broad demographic, community-focused, local businesses
|
|
88
|
+
**Best Times**: Wednesday-Friday, 11 AM - 2 PM
|
|
89
|
+
**Optimal Length**: 50-80 characters for posts
|
|
90
|
+
|
|
91
|
+
#### Content Formats
|
|
92
|
+
- **Text Posts**: 50-80 characters optimal
|
|
93
|
+
- **Images**: 1200x630px for links
|
|
94
|
+
- **Videos**: 1-3 minutes, square format
|
|
95
|
+
- **Stories**: Same as Instagram
|
|
96
|
+
- **Live Videos**: Minimum 10 minutes
|
|
97
|
+
|
|
98
|
+
#### Optimization Tips
|
|
99
|
+
- Native video gets priority
|
|
100
|
+
- Ask questions to boost comments
|
|
101
|
+
- Share to relevant groups
|
|
102
|
+
- Use Facebook Creator Studio
|
|
103
|
+
- Tag locations for local reach
|
|
104
|
+
- Post 1-2 times per day max
|
|
105
|
+
|
|
106
|
+
#### Algorithm Factors
|
|
107
|
+
- Meaningful interactions (comments > reactions)
|
|
108
|
+
- Video completion rate
|
|
109
|
+
- Friends and family prioritized
|
|
110
|
+
- Group posts get high visibility
|
|
111
|
+
- Live videos get 6x engagement
|
|
112
|
+
|
|
113
|
+
### TikTok
|
|
114
|
+
**Audience**: Gen Z, entertainment-focused, trend-driven
|
|
115
|
+
**Best Times**: 6-10 AM and 7-11 PM
|
|
116
|
+
**Optimal Length**: 15-30 seconds
|
|
117
|
+
|
|
118
|
+
#### Content Formats
|
|
119
|
+
- **Videos**: 15 seconds - 10 minutes
|
|
120
|
+
- **Aspect Ratio**: 9:16 vertical
|
|
121
|
+
- **Sounds**: Trending audio crucial
|
|
122
|
+
- **Effects**: Filters and transitions
|
|
123
|
+
|
|
124
|
+
#### Optimization Tips
|
|
125
|
+
- Hook viewers in first 3 seconds
|
|
126
|
+
- Use trending sounds and hashtags
|
|
127
|
+
- Create content for FYP, not followers
|
|
128
|
+
- Post 1-4 times daily
|
|
129
|
+
- Engage with comments quickly
|
|
130
|
+
- Jump on trends within 24-48 hours
|
|
131
|
+
|
|
132
|
+
#### Algorithm Factors
|
|
133
|
+
- Completion rate most important
|
|
134
|
+
- Shares and saves valued
|
|
135
|
+
- Comment engagement
|
|
136
|
+
- Following similar creators
|
|
137
|
+
- Time spent on app
|
|
138
|
+
|
|
139
|
+
## Content Optimization Strategies
|
|
140
|
+
|
|
141
|
+
### Hashtag Strategy
|
|
142
|
+
|
|
143
|
+
#### Research Methods
|
|
144
|
+
1. **Competitor Analysis**: Study successful competitors
|
|
145
|
+
2. **Platform Search**: Use native search for suggestions
|
|
146
|
+
3. **Hashtag Tools**: RiteTag, Hashtagify, All Hashtag
|
|
147
|
+
4. **Trending Topics**: Monitor daily/weekly trends
|
|
148
|
+
5. **Brand Hashtags**: Create unique campaign tags
|
|
149
|
+
|
|
150
|
+
#### Hashtag Mix Formula
|
|
151
|
+
- 30% High-volume (1M+ posts)
|
|
152
|
+
- 40% Medium-volume (100K-1M posts)
|
|
153
|
+
- 30% Low-volume/Niche (<100K posts)
|
|
154
|
+
|
|
155
|
+
#### Platform-Specific Guidelines
|
|
156
|
+
- **Instagram**: 10-30 hashtags (mix in caption and first comment)
|
|
157
|
+
- **LinkedIn**: 3-5 professional hashtags
|
|
158
|
+
- **Twitter**: 1-2 hashtags max
|
|
159
|
+
- **Facebook**: 1-3 hashtags
|
|
160
|
+
- **TikTok**: 3-5 trending + niche tags
|
|
161
|
+
|
|
162
|
+
### Visual Content Optimization
|
|
163
|
+
|
|
164
|
+
#### Image Best Practices
|
|
165
|
+
- **Resolution**: Minimum 1080px width
|
|
166
|
+
- **File Size**: Under 5MB for faster loading
|
|
167
|
+
- **Alt Text**: Always include for accessibility
|
|
168
|
+
- **Branding**: Consistent filters/overlays
|
|
169
|
+
- **Text Overlay**: Less than 20% of image
|
|
170
|
+
|
|
171
|
+
#### Video Optimization
|
|
172
|
+
- **Captions**: Always include (85% watch without sound)
|
|
173
|
+
- **Thumbnail**: Custom, eye-catching
|
|
174
|
+
- **Length**: Platform-specific optimal duration
|
|
175
|
+
- **Format**: MP4 for best compatibility
|
|
176
|
+
- **Aspect Ratio**: Vertical for stories/reels, square for feed
|
|
177
|
+
|
|
178
|
+
### Caption Writing Formulas
|
|
179
|
+
|
|
180
|
+
#### AIDA Formula
|
|
181
|
+
- **Attention**: Hook in first line
|
|
182
|
+
- **Interest**: Expand on the hook
|
|
183
|
+
- **Desire**: Benefits and value
|
|
184
|
+
- **Action**: Clear CTA
|
|
185
|
+
|
|
186
|
+
#### PAS Formula
|
|
187
|
+
- **Problem**: Identify pain point
|
|
188
|
+
- **Agitate**: Emphasize consequences
|
|
189
|
+
- **Solution**: Present your answer
|
|
190
|
+
|
|
191
|
+
#### Before-After-Bridge
|
|
192
|
+
- **Before**: Current situation
|
|
193
|
+
- **After**: Desired outcome
|
|
194
|
+
- **Bridge**: How to get there
|
|
195
|
+
|
|
196
|
+
### Engagement Tactics
|
|
197
|
+
|
|
198
|
+
#### Conversation Starters
|
|
199
|
+
- Ask open-ended questions
|
|
200
|
+
- Create polls and surveys
|
|
201
|
+
- "Fill in the blank" posts
|
|
202
|
+
- "This or that" choices
|
|
203
|
+
- Caption contests
|
|
204
|
+
- Opinion requests
|
|
205
|
+
|
|
206
|
+
#### Community Building
|
|
207
|
+
- Respond to comments within 2 hours
|
|
208
|
+
- Like and reply to user comments
|
|
209
|
+
- Share user-generated content
|
|
210
|
+
- Create branded hashtags
|
|
211
|
+
- Host Q&A sessions
|
|
212
|
+
- Run challenges or contests
|
|
213
|
+
|
|
214
|
+
### Analytics & KPIs
|
|
215
|
+
|
|
216
|
+
#### Vanity Metrics (Track but don't obsess)
|
|
217
|
+
- Follower count
|
|
218
|
+
- Like count
|
|
219
|
+
- View count
|
|
220
|
+
|
|
221
|
+
#### Performance Metrics (Focus here)
|
|
222
|
+
- Engagement rate: (Likes + Comments + Shares) / Reach × 100
|
|
223
|
+
- Click-through rate: Clicks / Impressions × 100
|
|
224
|
+
- Conversion rate: Conversions / Clicks × 100
|
|
225
|
+
- Share/Save rate: Shares / Reach × 100
|
|
226
|
+
|
|
227
|
+
#### Business Metrics (Ultimate goal)
|
|
228
|
+
- Website traffic from social
|
|
229
|
+
- Lead generation
|
|
230
|
+
- Sales attribution
|
|
231
|
+
- Customer acquisition cost
|
|
232
|
+
- Customer lifetime value
|
|
233
|
+
|
|
234
|
+
### Content Calendar Planning
|
|
235
|
+
|
|
236
|
+
#### Weekly Posting Schedule Template
|
|
237
|
+
```
|
|
238
|
+
Monday: Motivational (Quote/Inspiration)
|
|
239
|
+
Tuesday: Educational (How-to/Tips)
|
|
240
|
+
Wednesday: Promotional (Product/Service)
|
|
241
|
+
Thursday: Engaging (Poll/Question)
|
|
242
|
+
Friday: Fun (Behind-scenes/Casual)
|
|
243
|
+
Saturday: User-Generated Content
|
|
244
|
+
Sunday: Curated Content/Rest
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
#### Monthly Theme Structure
|
|
248
|
+
- Week 1: Awareness content
|
|
249
|
+
- Week 2: Consideration content
|
|
250
|
+
- Week 3: Decision content
|
|
251
|
+
- Week 4: Retention/Community
|
|
252
|
+
|
|
253
|
+
### Crisis Management Protocol
|
|
254
|
+
|
|
255
|
+
#### Response Timeline
|
|
256
|
+
- **0-15 minutes**: Acknowledge awareness
|
|
257
|
+
- **15-60 minutes**: Gather facts
|
|
258
|
+
- **1-2 hours**: Official response
|
|
259
|
+
- **24 hours**: Follow-up update
|
|
260
|
+
- **48-72 hours**: Resolution summary
|
|
261
|
+
|
|
262
|
+
#### Response Guidelines
|
|
263
|
+
1. Acknowledge quickly
|
|
264
|
+
2. Take responsibility if appropriate
|
|
265
|
+
3. Show empathy
|
|
266
|
+
4. Provide facts only
|
|
267
|
+
5. Outline action steps
|
|
268
|
+
6. Follow up publicly
|
|
269
|
+
|
|
270
|
+
## Tool Stack Recommendations
|
|
271
|
+
|
|
272
|
+
### Content Creation
|
|
273
|
+
- **Design**: Canva, Adobe Creative Suite
|
|
274
|
+
- **Video**: CapCut, InShot, Adobe Premiere
|
|
275
|
+
- **Copy**: Grammarly, Hemingway Editor
|
|
276
|
+
- **AI Assistance**: ChatGPT, Claude, Jasper
|
|
277
|
+
|
|
278
|
+
### Scheduling & Management
|
|
279
|
+
- **All-in-One**: Hootsuite, Buffer, Sprout Social
|
|
280
|
+
- **Visual-First**: Later, Planoly
|
|
281
|
+
- **Enterprise**: Sprinklr, Khoros
|
|
282
|
+
- **Free Options**: Meta Business Suite, TweetDeck
|
|
283
|
+
|
|
284
|
+
### Analytics & Monitoring
|
|
285
|
+
- **Native**: Platform Insights/Analytics
|
|
286
|
+
- **Third-Party**: Socialbakers, Brandwatch
|
|
287
|
+
- **Listening**: Mention, Brand24
|
|
288
|
+
- **Competitor Analysis**: Social Blade, Rival IQ
|
|
289
|
+
|
|
290
|
+
### Influencer & UGC
|
|
291
|
+
- **Discovery**: AspireIQ, GRIN
|
|
292
|
+
- **Management**: CreatorIQ, Klear
|
|
293
|
+
- **UGC Curation**: TINT, Stackla
|
|
294
|
+
- **Rights Management**: Rights Manager
|
|
295
|
+
|
|
296
|
+
## Compliance & Best Practices
|
|
297
|
+
|
|
298
|
+
### Legal Considerations
|
|
299
|
+
- Include #ad or #sponsored for paid partnerships
|
|
300
|
+
- Respect copyright and attribution
|
|
301
|
+
- Follow GDPR for data collection
|
|
302
|
+
- Comply with platform terms of service
|
|
303
|
+
- Get permission for UGC usage
|
|
304
|
+
|
|
305
|
+
### Accessibility Guidelines
|
|
306
|
+
- Add alt text to all images
|
|
307
|
+
- Include captions on videos
|
|
308
|
+
- Use CamelCase for hashtags (#LikeThis)
|
|
309
|
+
- Avoid text-only images
|
|
310
|
+
- Ensure color contrast compliance
|
|
311
|
+
|
|
312
|
+
### Brand Safety
|
|
313
|
+
- Moderate comments regularly
|
|
314
|
+
- Set up keyword filters
|
|
315
|
+
- Have crisis management plan
|
|
316
|
+
- Monitor brand mentions
|
|
317
|
+
- Establish posting permissions
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Brand Voice Analyzer - Analyzes content to establish and maintain brand voice consistency
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import re
|
|
7
|
+
from typing import Dict, List, Tuple
|
|
8
|
+
import json
|
|
9
|
+
|
|
10
|
+
class BrandVoiceAnalyzer:
|
|
11
|
+
def __init__(self):
|
|
12
|
+
self.voice_dimensions = {
|
|
13
|
+
'formality': {
|
|
14
|
+
'formal': ['hereby', 'therefore', 'furthermore', 'pursuant', 'regarding'],
|
|
15
|
+
'casual': ['hey', 'cool', 'awesome', 'stuff', 'yeah', 'gonna']
|
|
16
|
+
},
|
|
17
|
+
'tone': {
|
|
18
|
+
'professional': ['expertise', 'solution', 'optimize', 'leverage', 'strategic'],
|
|
19
|
+
'friendly': ['happy', 'excited', 'love', 'enjoy', 'together', 'share']
|
|
20
|
+
},
|
|
21
|
+
'perspective': {
|
|
22
|
+
'authoritative': ['proven', 'research shows', 'experts agree', 'data indicates'],
|
|
23
|
+
'conversational': ['you might', 'let\'s explore', 'we think', 'imagine if']
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
def analyze_text(self, text: str) -> Dict:
|
|
28
|
+
"""Analyze text for brand voice characteristics"""
|
|
29
|
+
text_lower = text.lower()
|
|
30
|
+
word_count = len(text.split())
|
|
31
|
+
|
|
32
|
+
results = {
|
|
33
|
+
'word_count': word_count,
|
|
34
|
+
'readability_score': self._calculate_readability(text),
|
|
35
|
+
'voice_profile': {},
|
|
36
|
+
'sentence_analysis': self._analyze_sentences(text),
|
|
37
|
+
'recommendations': []
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
# Analyze voice dimensions
|
|
41
|
+
for dimension, categories in self.voice_dimensions.items():
|
|
42
|
+
dim_scores = {}
|
|
43
|
+
for category, keywords in categories.items():
|
|
44
|
+
score = sum(1 for keyword in keywords if keyword in text_lower)
|
|
45
|
+
dim_scores[category] = score
|
|
46
|
+
|
|
47
|
+
# Determine dominant voice
|
|
48
|
+
if sum(dim_scores.values()) > 0:
|
|
49
|
+
dominant = max(dim_scores, key=dim_scores.get)
|
|
50
|
+
results['voice_profile'][dimension] = {
|
|
51
|
+
'dominant': dominant,
|
|
52
|
+
'scores': dim_scores
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
# Generate recommendations
|
|
56
|
+
results['recommendations'] = self._generate_recommendations(results)
|
|
57
|
+
|
|
58
|
+
return results
|
|
59
|
+
|
|
60
|
+
def _calculate_readability(self, text: str) -> float:
|
|
61
|
+
"""Calculate Flesch Reading Ease score"""
|
|
62
|
+
sentences = re.split(r'[.!?]+', text)
|
|
63
|
+
words = text.split()
|
|
64
|
+
syllables = sum(self._count_syllables(word) for word in words)
|
|
65
|
+
|
|
66
|
+
if len(sentences) == 0 or len(words) == 0:
|
|
67
|
+
return 0
|
|
68
|
+
|
|
69
|
+
avg_sentence_length = len(words) / len(sentences)
|
|
70
|
+
avg_syllables_per_word = syllables / len(words)
|
|
71
|
+
|
|
72
|
+
# Flesch Reading Ease formula
|
|
73
|
+
score = 206.835 - 1.015 * avg_sentence_length - 84.6 * avg_syllables_per_word
|
|
74
|
+
return max(0, min(100, score))
|
|
75
|
+
|
|
76
|
+
def _count_syllables(self, word: str) -> int:
|
|
77
|
+
"""Count syllables in a word (simplified)"""
|
|
78
|
+
word = word.lower()
|
|
79
|
+
vowels = 'aeiou'
|
|
80
|
+
syllable_count = 0
|
|
81
|
+
previous_was_vowel = False
|
|
82
|
+
|
|
83
|
+
for char in word:
|
|
84
|
+
is_vowel = char in vowels
|
|
85
|
+
if is_vowel and not previous_was_vowel:
|
|
86
|
+
syllable_count += 1
|
|
87
|
+
previous_was_vowel = is_vowel
|
|
88
|
+
|
|
89
|
+
# Adjust for silent e
|
|
90
|
+
if word.endswith('e'):
|
|
91
|
+
syllable_count -= 1
|
|
92
|
+
|
|
93
|
+
return max(1, syllable_count)
|
|
94
|
+
|
|
95
|
+
def _analyze_sentences(self, text: str) -> Dict:
|
|
96
|
+
"""Analyze sentence structure"""
|
|
97
|
+
sentences = re.split(r'[.!?]+', text)
|
|
98
|
+
sentences = [s.strip() for s in sentences if s.strip()]
|
|
99
|
+
|
|
100
|
+
if not sentences:
|
|
101
|
+
return {'average_length': 0, 'variety': 'low'}
|
|
102
|
+
|
|
103
|
+
lengths = [len(s.split()) for s in sentences]
|
|
104
|
+
avg_length = sum(lengths) / len(lengths) if lengths else 0
|
|
105
|
+
|
|
106
|
+
# Calculate variety
|
|
107
|
+
if len(set(lengths)) < 3:
|
|
108
|
+
variety = 'low'
|
|
109
|
+
elif len(set(lengths)) < 5:
|
|
110
|
+
variety = 'medium'
|
|
111
|
+
else:
|
|
112
|
+
variety = 'high'
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
'average_length': round(avg_length, 1),
|
|
116
|
+
'variety': variety,
|
|
117
|
+
'count': len(sentences)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
def _generate_recommendations(self, analysis: Dict) -> List[str]:
|
|
121
|
+
"""Generate recommendations based on analysis"""
|
|
122
|
+
recommendations = []
|
|
123
|
+
|
|
124
|
+
# Readability recommendations
|
|
125
|
+
if analysis['readability_score'] < 30:
|
|
126
|
+
recommendations.append("Consider simplifying language for better readability")
|
|
127
|
+
elif analysis['readability_score'] > 70:
|
|
128
|
+
recommendations.append("Content is very easy to read - consider if this matches your audience")
|
|
129
|
+
|
|
130
|
+
# Sentence variety
|
|
131
|
+
if analysis['sentence_analysis']['variety'] == 'low':
|
|
132
|
+
recommendations.append("Vary sentence length for better flow and engagement")
|
|
133
|
+
|
|
134
|
+
# Voice consistency
|
|
135
|
+
if analysis['voice_profile']:
|
|
136
|
+
recommendations.append("Maintain consistent voice across all content")
|
|
137
|
+
|
|
138
|
+
return recommendations
|
|
139
|
+
|
|
140
|
+
def analyze_content(content: str, output_format: str = 'json') -> str:
|
|
141
|
+
"""Main function to analyze content"""
|
|
142
|
+
analyzer = BrandVoiceAnalyzer()
|
|
143
|
+
results = analyzer.analyze_text(content)
|
|
144
|
+
|
|
145
|
+
if output_format == 'json':
|
|
146
|
+
return json.dumps(results, indent=2)
|
|
147
|
+
else:
|
|
148
|
+
# Human-readable format
|
|
149
|
+
output = [
|
|
150
|
+
f"=== Brand Voice Analysis ===",
|
|
151
|
+
f"Word Count: {results['word_count']}",
|
|
152
|
+
f"Readability Score: {results['readability_score']:.1f}/100",
|
|
153
|
+
f"",
|
|
154
|
+
f"Voice Profile:"
|
|
155
|
+
]
|
|
156
|
+
|
|
157
|
+
for dimension, profile in results['voice_profile'].items():
|
|
158
|
+
output.append(f" {dimension.title()}: {profile['dominant']}")
|
|
159
|
+
|
|
160
|
+
output.extend([
|
|
161
|
+
f"",
|
|
162
|
+
f"Sentence Analysis:",
|
|
163
|
+
f" Average Length: {results['sentence_analysis']['average_length']} words",
|
|
164
|
+
f" Variety: {results['sentence_analysis']['variety']}",
|
|
165
|
+
f" Total Sentences: {results['sentence_analysis']['count']}",
|
|
166
|
+
f"",
|
|
167
|
+
f"Recommendations:"
|
|
168
|
+
])
|
|
169
|
+
|
|
170
|
+
for rec in results['recommendations']:
|
|
171
|
+
output.append(f" • {rec}")
|
|
172
|
+
|
|
173
|
+
return '\n'.join(output)
|
|
174
|
+
|
|
175
|
+
if __name__ == "__main__":
|
|
176
|
+
import sys
|
|
177
|
+
|
|
178
|
+
if len(sys.argv) > 1:
|
|
179
|
+
with open(sys.argv[1], 'r') as f:
|
|
180
|
+
content = f.read()
|
|
181
|
+
|
|
182
|
+
output_format = sys.argv[2] if len(sys.argv) > 2 else 'text'
|
|
183
|
+
print(analyze_content(content, output_format))
|
|
184
|
+
else:
|
|
185
|
+
print("Usage: python brand_voice_analyzer.py <file> [json|text]")
|