@jaimevalasek/aioson 1.4.0 → 1.5.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/CHANGELOG.md +31 -1
- package/LICENSE +661 -21
- package/README.md +3 -1
- package/docs/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/agentes.md +124 -10
- package/docs/pt/cenarios.md +46 -2
- package/docs/pt/comandos-cli.md +60 -1
- package/docs/pt/inicio-rapido.md +18 -2
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +9 -9
- package/package.json +2 -2
- package/src/backup-local.js +74 -0
- package/src/cli.js +98 -0
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/runtime.js +242 -0
- package/src/commands/setup-context.js +7 -2
- package/src/commands/squad-daemon.js +209 -0
- package/src/commands/squad-dashboard.js +39 -0
- package/src/commands/squad-deploy.js +64 -0
- package/src/commands/squad-doctor.js +52 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-processes.js +56 -0
- package/src/commands/squad-recovery.js +42 -0
- package/src/commands/squad-roi.js +291 -0
- package/src/commands/squad-score.js +250 -0
- package/src/commands/squad-status.js +37 -1
- package/src/commands/squad-validate.js +62 -1
- package/src/commands/squad-webhook.js +160 -0
- package/src/commands/squad-worker.js +191 -0
- package/src/commands/squad-worktrees.js +75 -0
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/constants.js +8 -0
- package/src/context-writer.js +45 -1
- package/src/i18n/messages/en.js +127 -1
- package/src/i18n/messages/es.js +117 -0
- package/src/i18n/messages/fr.js +117 -0
- package/src/i18n/messages/pt-BR.js +126 -1
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/runtime-store.js +259 -2
- package/src/squad/external-session.js +180 -0
- package/src/squad/inter-squad.js +74 -0
- package/src/squad/recovery-context.js +201 -0
- package/src/squad/worktree-manager.js +114 -0
- package/src/squad-daemon.js +490 -0
- package/src/squad-dashboard/api.js +223 -0
- package/src/squad-dashboard/attachment-handler.js +93 -0
- package/src/squad-dashboard/context-monitor.js +157 -0
- package/src/squad-dashboard/execution-logs.js +115 -0
- package/src/squad-dashboard/hunk-review.js +209 -0
- package/src/squad-dashboard/metrics.js +133 -0
- package/src/squad-dashboard/process-monitor.js +125 -0
- package/src/squad-dashboard/renderer.js +858 -0
- package/src/squad-dashboard/server.js +232 -0
- package/src/squad-dashboard/styles.js +525 -0
- package/src/squad-dashboard/token-tracker.js +99 -0
- package/src/web.js +284 -0
- package/src/worker-runner.js +339 -0
- package/template/.aioson/agents/analyst.md +4 -0
- package/template/.aioson/agents/architect.md +4 -0
- package/template/.aioson/agents/dev.md +120 -11
- package/template/.aioson/agents/deyvin.md +8 -0
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +17 -0
- package/template/.aioson/agents/orchestrator.md +26 -0
- package/template/.aioson/agents/product.md +60 -12
- package/template/.aioson/agents/qa.md +1 -0
- package/template/.aioson/agents/setup.md +63 -19
- package/template/.aioson/agents/sheldon.md +603 -0
- package/template/.aioson/agents/squad.md +191 -0
- package/template/.aioson/agents/tester.md +254 -0
- package/template/.aioson/agents/ux-ui.md +12 -0
- package/template/.aioson/config.md +6 -0
- package/template/.aioson/locales/en/agents/analyst.md +8 -0
- package/template/.aioson/locales/en/agents/architect.md +8 -0
- package/template/.aioson/locales/en/agents/dev.md +66 -7
- package/template/.aioson/locales/en/agents/deyvin.md +8 -0
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/en/agents/qa.md +49 -0
- package/template/.aioson/locales/en/agents/setup.md +2 -1
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/es/agents/analyst.md +8 -0
- package/template/.aioson/locales/es/agents/architect.md +8 -0
- package/template/.aioson/locales/es/agents/dev.md +66 -7
- package/template/.aioson/locales/es/agents/deyvin.md +8 -0
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/qa.md +26 -0
- package/template/.aioson/locales/es/agents/setup.md +2 -1
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +63 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/fr/agents/analyst.md +8 -0
- package/template/.aioson/locales/fr/agents/architect.md +8 -0
- package/template/.aioson/locales/fr/agents/dev.md +66 -7
- package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/qa.md +26 -0
- package/template/.aioson/locales/fr/agents/setup.md +2 -1
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +63 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
- package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +2 -1
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
- package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
- package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
- package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
- package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
- package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
- package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
- package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
- package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
- package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
- package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
- package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
- package/template/.aioson/skills/squad/formats/catalog.json +15 -0
- package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
- package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
- package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
- package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
- package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
- package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
- package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
- package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
- package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
- package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
- package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
- package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
- package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
- package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
- package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
- package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
- package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
- package/template/.aioson/skills/static/debugging-protocol.md +42 -0
- package/template/.aioson/skills/static/git-worktrees.md +36 -0
- package/template/.aioson/tasks/implementation-plan.md +19 -0
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-profile.md +48 -0
- package/template/.aioson/tasks/squad-review.md +61 -0
- package/template/.aioson/tasks/squad-task-decompose.md +66 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +1 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +3 -0
- package/template/CLAUDE.md +5 -2
- package/template/OPENCODE.md +2 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Status Extended Tokens
|
|
2
|
+
|
|
3
|
+
Extended state and status tokens for Squad Dashboard v3 inter-squad UI.
|
|
4
|
+
|
|
5
|
+
## Agent & Task State Tokens
|
|
6
|
+
|
|
7
|
+
```css
|
|
8
|
+
:root {
|
|
9
|
+
/* --- Blocked --- */
|
|
10
|
+
--state-blocked: #f87171;
|
|
11
|
+
--state-blocked-bg: rgba(248, 113, 113, 0.12);
|
|
12
|
+
--state-blocked-border: rgba(248, 113, 113, 0.30);
|
|
13
|
+
|
|
14
|
+
/* --- Ready --- */
|
|
15
|
+
--state-ready: #4ade80;
|
|
16
|
+
--state-ready-bg: rgba(74, 222, 128, 0.12);
|
|
17
|
+
--state-ready-border: rgba(74, 222, 128, 0.30);
|
|
18
|
+
|
|
19
|
+
/* --- Solo (no squad context) --- */
|
|
20
|
+
--state-solo: #8b8fa3;
|
|
21
|
+
--state-solo-bg: rgba(139, 143, 163, 0.12);
|
|
22
|
+
--state-solo-border: rgba(139, 143, 163, 0.25);
|
|
23
|
+
|
|
24
|
+
/* --- Auto (fully autonomous agent) --- */
|
|
25
|
+
--state-auto: #22d3ee;
|
|
26
|
+
--state-auto-bg: rgba(34, 211, 238, 0.12);
|
|
27
|
+
--state-auto-border: rgba(34, 211, 238, 0.30);
|
|
28
|
+
|
|
29
|
+
/* --- Human (human-in-the-loop) --- */
|
|
30
|
+
--state-human: #fbbf24;
|
|
31
|
+
--state-human-bg: rgba(251, 191, 36, 0.12);
|
|
32
|
+
--state-human-border: rgba(251, 191, 36, 0.30);
|
|
33
|
+
|
|
34
|
+
/* --- Review (awaiting review) --- */
|
|
35
|
+
--state-review: #c084fc;
|
|
36
|
+
--state-review-bg: rgba(192, 132, 252, 0.12);
|
|
37
|
+
--state-review-border: rgba(192, 132, 252, 0.30);
|
|
38
|
+
|
|
39
|
+
/* --- Running (animated pulse) --- */
|
|
40
|
+
--state-running: #6c8aff;
|
|
41
|
+
--state-running-bg: rgba(108, 138, 255, 0.12);
|
|
42
|
+
|
|
43
|
+
/* --- Idle --- */
|
|
44
|
+
--state-idle: #8b8fa3;
|
|
45
|
+
--state-idle-bg: rgba(139, 143, 163, 0.10);
|
|
46
|
+
|
|
47
|
+
/* --- Error --- */
|
|
48
|
+
--state-error: #f87171;
|
|
49
|
+
--state-error-bg: rgba(248, 113, 113, 0.12);
|
|
50
|
+
|
|
51
|
+
/* --- Done --- */
|
|
52
|
+
--state-done: #4ade80;
|
|
53
|
+
--state-done-bg: rgba(74, 222, 128, 0.10);
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Running Pulse Animation
|
|
58
|
+
|
|
59
|
+
Apply to indicators when `state = running`:
|
|
60
|
+
|
|
61
|
+
```css
|
|
62
|
+
@keyframes state-pulse {
|
|
63
|
+
0%, 100% { opacity: 1; }
|
|
64
|
+
50% { opacity: 0.45; }
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.state-dot-running {
|
|
68
|
+
background: var(--state-running);
|
|
69
|
+
animation: state-pulse 1.6s ease-in-out infinite;
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Agent Type Tokens
|
|
74
|
+
|
|
75
|
+
Used by `agent-badge` component.
|
|
76
|
+
|
|
77
|
+
| Type | Token | Color |
|
|
78
|
+
|------|-------|-------|
|
|
79
|
+
| `auto` | `--state-auto` | Cyan `#22d3ee` |
|
|
80
|
+
| `human` | `--state-human` | Amber `#fbbf24` |
|
|
81
|
+
| `solo` | `--state-solo` | Muted `#8b8fa3` |
|
|
82
|
+
|
|
83
|
+
## Priority Tokens
|
|
84
|
+
|
|
85
|
+
```css
|
|
86
|
+
:root {
|
|
87
|
+
--priority-critical: #f87171; /* red */
|
|
88
|
+
--priority-high: #fb923c; /* orange */
|
|
89
|
+
--priority-medium: #fbbf24; /* amber */
|
|
90
|
+
--priority-low: #8b8fa3; /* muted */
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Notification Type Tokens
|
|
95
|
+
|
|
96
|
+
Map event types to colors for notification icons:
|
|
97
|
+
|
|
98
|
+
| Event type | Token | Notes |
|
|
99
|
+
|-----------|-------|-------|
|
|
100
|
+
| `info` | `--accent` `#6c8aff` | General info |
|
|
101
|
+
| `warning` | `--warning` `#fbbf24` | Soft warning |
|
|
102
|
+
| `error` | `--danger` `#f87171` | Errors |
|
|
103
|
+
| `success` | `--success` `#4ade80` | Completions |
|
|
104
|
+
| `merge_conflict` | `--purple` `#c084fc` | Git conflicts |
|
|
105
|
+
| `context_warning` | `--warning` | Context at 85% |
|
|
106
|
+
| `context_critical` | `--danger` | Context at 95% |
|
|
107
|
+
| `task_completed` | `--success` | Task done |
|
|
108
|
+
| `task_needs_revision` | `--state-review` | Hunk rejected |
|
|
109
|
+
| `handoff` | `--accent` | Agent handoff |
|
|
110
|
+
| `decision` | `--cyan` `#22d3ee` | Decision recorded |
|
|
111
|
+
|
|
112
|
+
## Usage
|
|
113
|
+
|
|
114
|
+
Reference tokens in component CSS. Always fall back gracefully:
|
|
115
|
+
|
|
116
|
+
```css
|
|
117
|
+
.task-status-badge[data-status="blocked"] {
|
|
118
|
+
background: var(--state-blocked-bg);
|
|
119
|
+
color: var(--state-blocked);
|
|
120
|
+
border: 1px solid var(--state-blocked-border);
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Map exhaustive status values:
|
|
125
|
+
|
|
126
|
+
```javascript
|
|
127
|
+
const STATE_TOKEN = {
|
|
128
|
+
blocked: 'blocked',
|
|
129
|
+
ready: 'ready',
|
|
130
|
+
solo: 'solo',
|
|
131
|
+
auto: 'auto',
|
|
132
|
+
human: 'human',
|
|
133
|
+
review: 'review',
|
|
134
|
+
running: 'running',
|
|
135
|
+
idle: 'idle',
|
|
136
|
+
error: 'error',
|
|
137
|
+
done: 'done',
|
|
138
|
+
pending: 'idle', // alias
|
|
139
|
+
active: 'running', // alias
|
|
140
|
+
completed:'done' // alias
|
|
141
|
+
};
|
|
142
|
+
```
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"formats": [
|
|
4
|
+
{ "slug": "instagram-feed", "title": "Instagram Feed Post", "category": "social", "platform": "Instagram", "file": "social/instagram-feed.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
5
|
+
{ "slug": "youtube-long", "title": "YouTube Long-form Video", "category": "social", "platform": "YouTube", "file": "social/youtube-long.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
6
|
+
{ "slug": "youtube-shorts", "title": "YouTube Shorts", "category": "social", "platform": "YouTube", "file": "social/youtube-shorts.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
7
|
+
{ "slug": "linkedin-post", "title": "LinkedIn Post", "category": "social", "platform": "LinkedIn", "file": "social/linkedin-post.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
8
|
+
{ "slug": "tiktok", "title": "TikTok Video", "category": "social", "platform": "TikTok", "file": "social/tiktok.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
9
|
+
{ "slug": "twitter-thread", "title": "Twitter/X Thread", "category": "social", "platform": "Twitter/X", "file": "social/twitter-thread.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
10
|
+
{ "slug": "blog-post", "title": "Blog Post", "category": "content", "platform": "Web", "file": "content/blog-post.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
11
|
+
{ "slug": "newsletter", "title": "Email Newsletter", "category": "content", "platform": "Email", "file": "content/newsletter.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
12
|
+
{ "slug": "podcast-script", "title": "Podcast Script", "category": "creative", "platform": "Audio", "file": "creative/podcast-script.md", "version": "1.0.0", "updated": "2026-03-24" },
|
|
13
|
+
{ "slug": "video-script", "title": "Video Script", "category": "creative", "platform": "Video", "file": "creative/video-script.md", "version": "1.0.0", "updated": "2026-03-24" }
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Format: Blog Post
|
|
2
|
+
|
|
3
|
+
> Platform: Web
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: content
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Ideal length:** 1,500-2,500 words (SEO sweet spot)
|
|
10
|
+
- **Reading time:** 7-12 minutes
|
|
11
|
+
- **Meta description:** 150-160 characters
|
|
12
|
+
- **Title:** 55-60 characters for SERP display
|
|
13
|
+
|
|
14
|
+
## Structure
|
|
15
|
+
|
|
16
|
+
### Title
|
|
17
|
+
Include primary keyword. Use numbers, "how to", or power words for CTR.
|
|
18
|
+
|
|
19
|
+
### Introduction (100-150 words)
|
|
20
|
+
Hook → context → promise. The reader should know what they'll learn and why it matters.
|
|
21
|
+
|
|
22
|
+
### Body (H2/H3 sections)
|
|
23
|
+
- H2 for main sections, H3 for subsections
|
|
24
|
+
- Short paragraphs (2-3 sentences max)
|
|
25
|
+
- Lists and bullet points for scanability
|
|
26
|
+
- Internal links to related content
|
|
27
|
+
|
|
28
|
+
### Conclusion
|
|
29
|
+
Summarize key points. Clear next action for the reader.
|
|
30
|
+
|
|
31
|
+
## Best Practices
|
|
32
|
+
1. Front-load value — don't save the best for last
|
|
33
|
+
2. Use images/diagrams every 300-500 words
|
|
34
|
+
3. Include a table of contents for posts > 2,000 words
|
|
35
|
+
4. Answer the search intent in the first 200 words (featured snippet)
|
|
36
|
+
|
|
37
|
+
## Anti-patterns
|
|
38
|
+
1. Keyword stuffing or unnatural phrasing for SEO
|
|
39
|
+
2. Generic introductions that could be on any article
|
|
40
|
+
3. Missing meta description (search engines will auto-generate a bad one)
|
|
41
|
+
|
|
42
|
+
## Quality Checklist
|
|
43
|
+
- [ ] Title includes primary keyword and is < 60 chars
|
|
44
|
+
- [ ] Meta description is 150-160 chars and compelling
|
|
45
|
+
- [ ] H2/H3 hierarchy is logical
|
|
46
|
+
- [ ] At least one image per 500 words
|
|
47
|
+
- [ ] Internal and external links present
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Format: Email Newsletter
|
|
2
|
+
|
|
3
|
+
> Platform: Email
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: content
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Subject line:** 30-50 characters (mobile preview)
|
|
10
|
+
- **Preview text:** 40-90 characters
|
|
11
|
+
- **Body length:** 200-500 words (brief) or 800-1500 (deep dive)
|
|
12
|
+
- **Width:** Max 600px for email clients
|
|
13
|
+
|
|
14
|
+
## Structure
|
|
15
|
+
|
|
16
|
+
### Subject Line
|
|
17
|
+
Specific, curiosity-driven, personal. Avoid spam triggers (ALL CAPS, excessive punctuation).
|
|
18
|
+
|
|
19
|
+
### Preview Text
|
|
20
|
+
Extends the subject line — not a repeat. Provides additional reason to open.
|
|
21
|
+
|
|
22
|
+
### Body
|
|
23
|
+
- Lead with the most valuable insight
|
|
24
|
+
- One primary CTA (not three competing ones)
|
|
25
|
+
- Scannable: short paragraphs, bold key phrases, links
|
|
26
|
+
- Personal tone (write to one person, not an audience)
|
|
27
|
+
|
|
28
|
+
### Footer
|
|
29
|
+
Unsubscribe link (required). Social links. Brief about section.
|
|
30
|
+
|
|
31
|
+
## Best Practices
|
|
32
|
+
1. Subject line determines open rate — test 2-3 variations
|
|
33
|
+
2. Send on Tuesday-Thursday, 9-11am local time (test your audience)
|
|
34
|
+
3. One CTA per email maximizes click-through rate
|
|
35
|
+
4. Plain text sections outperform heavy HTML in many audiences
|
|
36
|
+
|
|
37
|
+
## Anti-patterns
|
|
38
|
+
1. Subject lines that don't match body content (destroys trust)
|
|
39
|
+
2. Multiple competing CTAs diluting each other
|
|
40
|
+
3. Image-heavy emails (many clients block images by default)
|
|
41
|
+
|
|
42
|
+
## Quality Checklist
|
|
43
|
+
- [ ] Subject line is < 50 chars and specific
|
|
44
|
+
- [ ] Preview text complements (not repeats) the subject
|
|
45
|
+
- [ ] Single clear CTA
|
|
46
|
+
- [ ] Mobile-friendly layout
|
|
47
|
+
- [ ] Unsubscribe link present
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Format: Podcast Script
|
|
2
|
+
|
|
3
|
+
> Platform: Audio
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: creative
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Duration:** 20-45 minutes (standard), 45-90 (deep dive)
|
|
10
|
+
- **Segments:** 3-5 per episode
|
|
11
|
+
- **Intro:** Max 60 seconds
|
|
12
|
+
- **Outro:** Max 30 seconds
|
|
13
|
+
|
|
14
|
+
## Structure
|
|
15
|
+
|
|
16
|
+
### Cold Open (0-30s)
|
|
17
|
+
Teaser clip or provocative question from the episode. No intro music yet.
|
|
18
|
+
|
|
19
|
+
### Intro (30-60s)
|
|
20
|
+
Show name, host, topic preview. Brief sponsor read if applicable.
|
|
21
|
+
|
|
22
|
+
### Segments
|
|
23
|
+
Each segment: topic introduction → discussion → key takeaway. Transitions between segments should feel natural.
|
|
24
|
+
|
|
25
|
+
### Outro
|
|
26
|
+
Episode summary, preview of next episode, CTA (subscribe, review, share).
|
|
27
|
+
|
|
28
|
+
## Best Practices
|
|
29
|
+
1. Script the intro and transitions; improvise the discussions
|
|
30
|
+
2. Each segment should work as a standalone clip for social media
|
|
31
|
+
3. Name-drop the episode topic in the first 60 seconds (for podcast directories)
|
|
32
|
+
4. Include timestamps in show notes
|
|
33
|
+
|
|
34
|
+
## Anti-patterns
|
|
35
|
+
1. Unscripted intros that ramble for 5+ minutes
|
|
36
|
+
2. Inside jokes without context (alienates new listeners)
|
|
37
|
+
3. Audio quality inconsistencies between host and guests
|
|
38
|
+
|
|
39
|
+
## Quality Checklist
|
|
40
|
+
- [ ] Cold open hooks the listener immediately
|
|
41
|
+
- [ ] Each segment has a clear takeaway
|
|
42
|
+
- [ ] Transitions between segments are scripted
|
|
43
|
+
- [ ] Show notes with timestamps prepared
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Format: Video Script
|
|
2
|
+
|
|
3
|
+
> Platform: Video (generic)
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: creative
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Duration:** Varies by purpose (30s ad, 3-5min explainer, 10-20min educational)
|
|
10
|
+
- **Script format:** Scene descriptions, dialogue/narration, visual notes
|
|
11
|
+
|
|
12
|
+
## Structure
|
|
13
|
+
|
|
14
|
+
### Scene Header
|
|
15
|
+
`INT/EXT — LOCATION — TIME` or simplified: `SCENE {N}: {description}`
|
|
16
|
+
|
|
17
|
+
### Action Lines
|
|
18
|
+
Visual descriptions. What the viewer SEES. Present tense, active voice.
|
|
19
|
+
|
|
20
|
+
### Dialogue/Narration
|
|
21
|
+
Character name or "NARRATOR" centered. Dialogue below. Parenthetical for tone.
|
|
22
|
+
|
|
23
|
+
### Visual Notes
|
|
24
|
+
`[B-ROLL: description]`, `[GRAPHIC: description]`, `[CUT TO: next scene]`
|
|
25
|
+
|
|
26
|
+
## Best Practices
|
|
27
|
+
1. Write for the ear, not the eye — read it aloud
|
|
28
|
+
2. One idea per scene. If a scene has two ideas, split it.
|
|
29
|
+
3. Include visual cues — the script should paint a picture
|
|
30
|
+
4. Time it: ~150 words = 1 minute of speaking
|
|
31
|
+
|
|
32
|
+
## Anti-patterns
|
|
33
|
+
1. Wall-of-text narration without visual variety
|
|
34
|
+
2. Scripts that read well but sound unnatural when spoken
|
|
35
|
+
3. Missing visual direction (leaves too much to interpretation)
|
|
36
|
+
|
|
37
|
+
## Quality Checklist
|
|
38
|
+
- [ ] Script reads naturally when spoken aloud
|
|
39
|
+
- [ ] Visual cues accompany every dialogue section
|
|
40
|
+
- [ ] Timing is estimated and realistic
|
|
41
|
+
- [ ] Hook is in the first 5 seconds
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Format: Instagram Feed Post
|
|
2
|
+
|
|
3
|
+
> Platform: Instagram
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: social
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Max length:** 2,200 characters (caption)
|
|
10
|
+
- **Ideal length:** 150-300 characters for engagement, 800-1500 for educational
|
|
11
|
+
- **Aspect ratio:** 1:1 (feed), 4:5 (preferred for visibility), 1.91:1 (landscape)
|
|
12
|
+
- **Carousel:** Up to 10 slides
|
|
13
|
+
|
|
14
|
+
## Structure
|
|
15
|
+
|
|
16
|
+
### Hook
|
|
17
|
+
First line visible without "more" — must stop the scroll. Use pattern interrupts, bold claims, or relatable statements.
|
|
18
|
+
|
|
19
|
+
### Body
|
|
20
|
+
- Educational: numbered tips or step-by-step
|
|
21
|
+
- Storytelling: conflict → lesson → transformation
|
|
22
|
+
- Carousel: 1 idea per slide, progressive reveal
|
|
23
|
+
|
|
24
|
+
### Close
|
|
25
|
+
CTA aligned with goal: save (educational), share (relatable), comment (engagement), link in bio (conversion).
|
|
26
|
+
|
|
27
|
+
## Best Practices
|
|
28
|
+
1. First line is everything — it determines if caption is read
|
|
29
|
+
2. Line breaks create visual breathing room (use them)
|
|
30
|
+
3. Hashtags: 5-15 relevant ones, mix of sizes (avoid only mega-hashtags)
|
|
31
|
+
4. Carousel posts get 1.4x more reach than single images
|
|
32
|
+
|
|
33
|
+
## Anti-patterns
|
|
34
|
+
1. Starting with "Hey guys!" or generic greetings (invisible in feed)
|
|
35
|
+
2. Wall of text without line breaks
|
|
36
|
+
3. Irrelevant or banned hashtags
|
|
37
|
+
|
|
38
|
+
## Quality Checklist
|
|
39
|
+
- [ ] Hook stops the scroll (first line is compelling)
|
|
40
|
+
- [ ] CTA is clear and specific
|
|
41
|
+
- [ ] Hashtags are relevant and varied
|
|
42
|
+
- [ ] Image/carousel matches the caption narrative
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Format: LinkedIn Post
|
|
2
|
+
|
|
3
|
+
> Platform: LinkedIn
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: social
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Max length:** 3,000 characters
|
|
10
|
+
- **Ideal length:** 800-1,500 characters
|
|
11
|
+
- **Visible without expand:** First ~210 characters
|
|
12
|
+
|
|
13
|
+
## Structure
|
|
14
|
+
|
|
15
|
+
### Hook (first 2 lines)
|
|
16
|
+
Bold statement, counterintuitive insight, or personal story opener. Must earn the "...see more" click.
|
|
17
|
+
|
|
18
|
+
### Body
|
|
19
|
+
- Professional insight with personal angle
|
|
20
|
+
- Short paragraphs (1-2 sentences each)
|
|
21
|
+
- Use line breaks aggressively
|
|
22
|
+
- Data points or specific examples add credibility
|
|
23
|
+
|
|
24
|
+
### Close
|
|
25
|
+
Question to drive comments, or clear takeaway. Avoid "agree?" — too generic.
|
|
26
|
+
|
|
27
|
+
## Best Practices
|
|
28
|
+
1. Write like a human, not a brand — personal voice wins
|
|
29
|
+
2. One idea per post (not a listicle unless it's the format)
|
|
30
|
+
3. Native content outperforms links (algorithm penalizes external links)
|
|
31
|
+
4. Post images or documents (carousels) for 2-3x reach
|
|
32
|
+
|
|
33
|
+
## Anti-patterns
|
|
34
|
+
1. Corporate jargon without substance
|
|
35
|
+
2. Humble-bragging disguised as advice
|
|
36
|
+
3. External links in the main post (put in comments)
|
|
37
|
+
|
|
38
|
+
## Quality Checklist
|
|
39
|
+
- [ ] First 2 lines are compelling enough to click "see more"
|
|
40
|
+
- [ ] Professional but human tone
|
|
41
|
+
- [ ] No external links in main body
|
|
42
|
+
- [ ] Ends with engagement trigger (question or takeaway)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Format: TikTok Video
|
|
2
|
+
|
|
3
|
+
> Platform: TikTok
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: social
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Duration:** 15-60 seconds (ideal), up to 10 minutes
|
|
10
|
+
- **Aspect ratio:** 9:16 (vertical)
|
|
11
|
+
- **Caption:** Max 4,000 characters, first 50 visible
|
|
12
|
+
|
|
13
|
+
## Structure
|
|
14
|
+
|
|
15
|
+
### Hook (0-1s)
|
|
16
|
+
Immediate visual hook. Text overlay with the promise. "Here's why..." or "POV:" format.
|
|
17
|
+
|
|
18
|
+
### Core (1-45s)
|
|
19
|
+
Fast pacing, jump cuts, movement. One transformation or one revelation per video.
|
|
20
|
+
|
|
21
|
+
### Payoff
|
|
22
|
+
Deliver on the hook's promise. Surprise endings boost shares and re-watches.
|
|
23
|
+
|
|
24
|
+
## Best Practices
|
|
25
|
+
1. Trending sounds dramatically boost reach
|
|
26
|
+
2. Text overlays are mandatory (80%+ watch without sound)
|
|
27
|
+
3. Reply to comments with videos (boosts engagement)
|
|
28
|
+
4. Post 1-3 times daily for algorithm favor
|
|
29
|
+
|
|
30
|
+
## Anti-patterns
|
|
31
|
+
1. Over-produced content (authentic > polished on TikTok)
|
|
32
|
+
2. Slow builds without early payoff signal
|
|
33
|
+
3. Ignoring trends in favor of evergreen-only content
|
|
34
|
+
|
|
35
|
+
## Quality Checklist
|
|
36
|
+
- [ ] Hook in first second
|
|
37
|
+
- [ ] Text overlays present
|
|
38
|
+
- [ ] Vertical format (9:16)
|
|
39
|
+
- [ ] Trending sound considered
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Format: Twitter/X Thread
|
|
2
|
+
|
|
3
|
+
> Platform: Twitter/X
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: social
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Tweet length:** 280 characters per tweet
|
|
10
|
+
- **Thread length:** 5-15 tweets ideal
|
|
11
|
+
- **Media:** Images/GIFs boost engagement 2-3x
|
|
12
|
+
|
|
13
|
+
## Structure
|
|
14
|
+
|
|
15
|
+
### Tweet 1 (Hook)
|
|
16
|
+
Bold claim or curiosity gap. End with "A thread:" or equivalent to signal more value coming.
|
|
17
|
+
|
|
18
|
+
### Body tweets (2 to N-1)
|
|
19
|
+
One idea per tweet. Use numbering (1/, 2/) for scanability. Mix text-only with visual tweets.
|
|
20
|
+
|
|
21
|
+
### Final tweet
|
|
22
|
+
Summary + CTA (follow, retweet, bookmark). Link to relevant resource.
|
|
23
|
+
|
|
24
|
+
## Best Practices
|
|
25
|
+
1. Tweet 1 determines 80% of the thread's reach — optimize ruthlessly
|
|
26
|
+
2. Each tweet should stand alone (people land mid-thread)
|
|
27
|
+
3. Include images or examples every 3-4 tweets to break monotony
|
|
28
|
+
4. Self-retweet the thread after 8-12 hours
|
|
29
|
+
|
|
30
|
+
## Anti-patterns
|
|
31
|
+
1. Threads that could be one tweet (don't stretch thin content)
|
|
32
|
+
2. Every tweet starting with the same structure
|
|
33
|
+
3. Burying the value in tweet 8+ without enough hooks
|
|
34
|
+
|
|
35
|
+
## Quality Checklist
|
|
36
|
+
- [ ] Tweet 1 is a standalone hook
|
|
37
|
+
- [ ] Each tweet delivers one clear idea
|
|
38
|
+
- [ ] Thread has visual variety (images, examples)
|
|
39
|
+
- [ ] Final tweet has CTA and summary
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Format: YouTube Long-form Video
|
|
2
|
+
|
|
3
|
+
> Platform: YouTube
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: social
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Duration:** 8-20 minutes (sweet spot for monetization + retention)
|
|
10
|
+
- **Title:** Max 100 chars, ideal 50-70
|
|
11
|
+
- **Description:** First 150 chars visible, max 5,000
|
|
12
|
+
- **Thumbnail:** 1280x720px, max 2MB
|
|
13
|
+
|
|
14
|
+
## Structure
|
|
15
|
+
|
|
16
|
+
### Hook (0-3s)
|
|
17
|
+
Pattern interrupt, curiosity gap, or bold claim. The viewer decides to stay or leave in 3 seconds.
|
|
18
|
+
|
|
19
|
+
### Context Bridge (3-15s)
|
|
20
|
+
Why the viewer should stay. Establish credibility and promise of value.
|
|
21
|
+
|
|
22
|
+
### Value Delivery (main body)
|
|
23
|
+
Chapters with mini-hooks at transitions to prevent drop-off. Each chapter delivers on a specific promise.
|
|
24
|
+
|
|
25
|
+
### CTA
|
|
26
|
+
Subscribe, like, comment prompt integrated naturally (not forced). Best placed after a value moment.
|
|
27
|
+
|
|
28
|
+
### End Screen (last 20s)
|
|
29
|
+
Teaser for the next video. Visual end screen elements.
|
|
30
|
+
|
|
31
|
+
## Best Practices
|
|
32
|
+
1. Script the first 30 seconds word-for-word
|
|
33
|
+
2. Use chapters (timestamps) for SEO and navigation
|
|
34
|
+
3. Thumbnail: one focal point, max 3-4 words, readable at 120px width
|
|
35
|
+
4. Title creates curiosity without misleading (clickbait kills trust)
|
|
36
|
+
|
|
37
|
+
## Anti-patterns
|
|
38
|
+
1. "Hey guys, welcome back to my channel..." (instant drop-off)
|
|
39
|
+
2. Intros longer than 15 seconds
|
|
40
|
+
3. Thumbnails with cluttered text or low contrast
|
|
41
|
+
|
|
42
|
+
## Quality Checklist
|
|
43
|
+
- [ ] Hook is scripted and compelling (first 3 seconds)
|
|
44
|
+
- [ ] Title creates genuine curiosity
|
|
45
|
+
- [ ] Thumbnail is readable at mobile size
|
|
46
|
+
- [ ] Chapters/timestamps are defined
|
|
47
|
+
- [ ] Description includes keywords and links
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Format: YouTube Shorts
|
|
2
|
+
|
|
3
|
+
> Platform: YouTube
|
|
4
|
+
> Version: 1.0.0
|
|
5
|
+
> Updated: 2026-03-24
|
|
6
|
+
> Category: social
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
- **Duration:** Max 60 seconds, ideal 15-45s
|
|
10
|
+
- **Aspect ratio:** 9:16 (vertical)
|
|
11
|
+
- **Title:** Short, hashtag-friendly
|
|
12
|
+
|
|
13
|
+
## Structure
|
|
14
|
+
|
|
15
|
+
### Hook (0-1s)
|
|
16
|
+
Immediate visual or verbal hook. No intro, no greeting — start with the payoff or the tension.
|
|
17
|
+
|
|
18
|
+
### Core (1-45s)
|
|
19
|
+
One idea, one message. Fast pacing, cuts every 2-3 seconds. Text overlays for silent viewers.
|
|
20
|
+
|
|
21
|
+
### Loop Point
|
|
22
|
+
End connects visually or thematically to the beginning to encourage re-watches.
|
|
23
|
+
|
|
24
|
+
## Best Practices
|
|
25
|
+
1. Start mid-action or mid-sentence
|
|
26
|
+
2. Text on screen for accessibility and silent viewing
|
|
27
|
+
3. Trending sounds boost discoverability
|
|
28
|
+
4. #Shorts in title or description
|
|
29
|
+
|
|
30
|
+
## Anti-patterns
|
|
31
|
+
1. Slow starts or countdowns
|
|
32
|
+
2. Horizontal content cropped to vertical
|
|
33
|
+
3. Asking to subscribe before delivering value
|
|
34
|
+
|
|
35
|
+
## Quality Checklist
|
|
36
|
+
- [ ] Opens with immediate hook (no greeting)
|
|
37
|
+
- [ ] Single clear message
|
|
38
|
+
- [ ] Viewable without audio (text overlays)
|
|
39
|
+
- [ ] Under 60 seconds
|