expxagents 0.1.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.
- package/assets/agents/_catalog.yaml +11 -0
- package/assets/agents/commercial/account-executive.agent.md +41 -0
- package/assets/agents/commercial/crm-manager.agent.md +41 -0
- package/assets/agents/commercial/pricing-strategist.agent.md +41 -0
- package/assets/agents/commercial/proposal-writer.agent.md +41 -0
- package/assets/agents/commercial/sdr.agent.md +41 -0
- package/assets/agents/development/backend-developer.agent.md +42 -0
- package/assets/agents/development/code-reviewer.agent.md +41 -0
- package/assets/agents/development/devops-engineer.agent.md +41 -0
- package/assets/agents/development/frontend-developer.agent.md +92 -0
- package/assets/agents/development/product-manager.agent.md +41 -0
- package/assets/agents/development/qa-engineer.agent.md +41 -0
- package/assets/agents/development/tech-lead.agent.md +42 -0
- package/assets/agents/development/ux-design-expert.agent.md +108 -0
- package/assets/agents/marketing/brand-guardian.agent.md +40 -0
- package/assets/agents/marketing/content-creator.agent.md +41 -0
- package/assets/agents/marketing/email-marketing.agent.md +41 -0
- package/assets/agents/marketing/landing-page-builder.agent.md +73 -0
- package/assets/agents/marketing/marketing-analyst.agent.md +41 -0
- package/assets/agents/marketing/paid-ads-manager.agent.md +41 -0
- package/assets/agents/marketing/seo-specialist.agent.md +41 -0
- package/assets/agents/marketing/social-media-manager.agent.md +41 -0
- package/assets/core/best-practices/_catalog.yaml +85 -0
- package/assets/core/best-practices/api-documentation.md +137 -0
- package/assets/core/best-practices/blog-post.md +86 -0
- package/assets/core/best-practices/blog-seo.md +91 -0
- package/assets/core/best-practices/code-review.md +97 -0
- package/assets/core/best-practices/copywriting.md +75 -0
- package/assets/core/best-practices/data-analysis.md +93 -0
- package/assets/core/best-practices/deploy-checklist.md +99 -0
- package/assets/core/best-practices/email-newsletter.md +84 -0
- package/assets/core/best-practices/email-sales.md +91 -0
- package/assets/core/best-practices/image-design.md +78 -0
- package/assets/core/best-practices/instagram-feed.md +70 -0
- package/assets/core/best-practices/instagram-reels.md +75 -0
- package/assets/core/best-practices/instagram-stories.md +68 -0
- package/assets/core/best-practices/landing-page.md +279 -0
- package/assets/core/best-practices/linkedin-article.md +83 -0
- package/assets/core/best-practices/linkedin-post.md +84 -0
- package/assets/core/best-practices/researching.md +89 -0
- package/assets/core/best-practices/review.md +95 -0
- package/assets/core/best-practices/sprint-planning.md +91 -0
- package/assets/core/best-practices/strategist.md +95 -0
- package/assets/core/best-practices/technical-writing.md +104 -0
- package/assets/core/best-practices/twitter-post.md +75 -0
- package/assets/core/best-practices/twitter-thread.md +92 -0
- package/assets/core/best-practices/whatsapp-broadcast.md +95 -0
- package/assets/core/best-practices/youtube-script.md +80 -0
- package/assets/core/best-practices/youtube-shorts.md +76 -0
- package/assets/core/prompts/insight-hunter.prompt.md +62 -0
- package/assets/core/runner.pipeline.md +117 -0
- package/assets/core/skills.engine.md +65 -0
- package/assets/core/solution-architect.agent.md +181 -0
- package/assets/templates/_expxagents/_memory/company.md +25 -0
- package/assets/templates/_expxagents/_memory/preferences.md +6 -0
- package/assets/templates/squads/_memory/memories.md +16 -0
- package/bin/expxagents.js +3 -0
- package/dist/cli/src/__tests__/cli.test.d.ts +1 -0
- package/dist/cli/src/__tests__/cli.test.js +23 -0
- package/dist/cli/src/commands/create.d.ts +1 -0
- package/dist/cli/src/commands/create.js +53 -0
- package/dist/cli/src/commands/doctor.d.ts +1 -0
- package/dist/cli/src/commands/doctor.js +86 -0
- package/dist/cli/src/commands/init.d.ts +1 -0
- package/dist/cli/src/commands/init.js +164 -0
- package/dist/cli/src/commands/install.d.ts +1 -0
- package/dist/cli/src/commands/install.js +65 -0
- package/dist/cli/src/commands/list.d.ts +1 -0
- package/dist/cli/src/commands/list.js +58 -0
- package/dist/cli/src/commands/onboarding.d.ts +1 -0
- package/dist/cli/src/commands/onboarding.js +39 -0
- package/dist/cli/src/commands/run.d.ts +1 -0
- package/dist/cli/src/commands/run.js +226 -0
- package/dist/cli/src/commands/server.d.ts +1 -0
- package/dist/cli/src/commands/server.js +22 -0
- package/dist/cli/src/commands/stop.d.ts +1 -0
- package/dist/cli/src/commands/stop.js +23 -0
- package/dist/cli/src/commands/uninstall.d.ts +1 -0
- package/dist/cli/src/commands/uninstall.js +12 -0
- package/dist/cli/src/index.d.ts +1 -0
- package/dist/cli/src/index.js +57 -0
- package/dist/cli/src/utils/config.d.ts +34 -0
- package/dist/cli/src/utils/config.js +79 -0
- package/dist/core/skills-loader.d.ts +16 -0
- package/dist/core/skills-loader.js +61 -0
- package/dist/core/squad-loader.d.ts +26 -0
- package/dist/core/squad-loader.js +51 -0
- package/dist/core/state-manager.d.ts +45 -0
- package/dist/core/state-manager.js +90 -0
- package/dist/core/vitest.config.d.ts +2 -0
- package/dist/core/vitest.config.js +7 -0
- package/package.json +49 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
platform: software-house
|
|
3
|
+
format: api-documentation
|
|
4
|
+
constraints:
|
|
5
|
+
max_chars: null
|
|
6
|
+
image_ratio: null
|
|
7
|
+
max_hashtags: null
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Best Practices: API Documentation
|
|
11
|
+
|
|
12
|
+
## Core Principles
|
|
13
|
+
|
|
14
|
+
API documentation is the contract between your service and every developer who integrates with it. Incomplete or inaccurate docs erode trust and generate avoidable support tickets.
|
|
15
|
+
|
|
16
|
+
- **Docs are part of the product.** Treat documentation as a shippable feature with the same quality bar as code.
|
|
17
|
+
- **Show, don't just tell.** Every endpoint needs a working example request and response.
|
|
18
|
+
- **Keep docs in sync with code.** Stale documentation is worse than no documentation — it actively misleads.
|
|
19
|
+
- **Docs-as-code:** Version API docs alongside the API code; review documentation changes in the same PR.
|
|
20
|
+
|
|
21
|
+
## OpenAPI / Swagger Standard
|
|
22
|
+
|
|
23
|
+
Use OpenAPI 3.1 (preferred) or OpenAPI 3.0 as the specification format. All endpoints should be described in a machine-readable `openapi.yaml` or `openapi.json` file.
|
|
24
|
+
|
|
25
|
+
### Required Fields Per Endpoint
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
/users/{id}:
|
|
29
|
+
get:
|
|
30
|
+
summary: Get a user by ID
|
|
31
|
+
description: |
|
|
32
|
+
Returns a single user object. Requires authentication.
|
|
33
|
+
Returns 404 if the user does not exist.
|
|
34
|
+
operationId: getUserById
|
|
35
|
+
tags:
|
|
36
|
+
- Users
|
|
37
|
+
parameters:
|
|
38
|
+
- name: id
|
|
39
|
+
in: path
|
|
40
|
+
required: true
|
|
41
|
+
description: The unique identifier of the user
|
|
42
|
+
schema:
|
|
43
|
+
type: string
|
|
44
|
+
format: uuid
|
|
45
|
+
example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
|
46
|
+
responses:
|
|
47
|
+
"200":
|
|
48
|
+
description: User found
|
|
49
|
+
content:
|
|
50
|
+
application/json:
|
|
51
|
+
schema:
|
|
52
|
+
$ref: "#/components/schemas/User"
|
|
53
|
+
example:
|
|
54
|
+
id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
|
55
|
+
email: "jane@example.com"
|
|
56
|
+
name: "Jane Doe"
|
|
57
|
+
createdAt: "2024-01-15T10:30:00Z"
|
|
58
|
+
"401":
|
|
59
|
+
$ref: "#/components/responses/Unauthorized"
|
|
60
|
+
"404":
|
|
61
|
+
$ref: "#/components/responses/NotFound"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Documentation Structure
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
[OVERVIEW]
|
|
68
|
+
- What the API does and who it is for
|
|
69
|
+
- Base URL(s) per environment
|
|
70
|
+
- Versioning strategy (URL path, header, or query param)
|
|
71
|
+
|
|
72
|
+
[AUTHENTICATION]
|
|
73
|
+
- Auth method (API key, OAuth 2.0, JWT)
|
|
74
|
+
- How to obtain credentials
|
|
75
|
+
- How to send credentials (header, query param)
|
|
76
|
+
- Token expiration and refresh procedure
|
|
77
|
+
|
|
78
|
+
[RATE LIMITING]
|
|
79
|
+
- Limits per plan or tier
|
|
80
|
+
- Rate limit response headers
|
|
81
|
+
- Retry strategy (exponential backoff with jitter)
|
|
82
|
+
|
|
83
|
+
[ERRORS]
|
|
84
|
+
- Standard error response format
|
|
85
|
+
- Complete list of error codes and their meaning
|
|
86
|
+
- Troubleshooting common errors
|
|
87
|
+
|
|
88
|
+
[ENDPOINTS]
|
|
89
|
+
For each endpoint:
|
|
90
|
+
- Method and path
|
|
91
|
+
- Summary and description
|
|
92
|
+
- Request parameters (path, query, header, body)
|
|
93
|
+
- Request body schema with all fields documented
|
|
94
|
+
- Response codes and schemas
|
|
95
|
+
- Working code example (curl, minimum one SDK)
|
|
96
|
+
|
|
97
|
+
[CHANGELOG / API VERSIONING]
|
|
98
|
+
- Breaking vs. non-breaking changes
|
|
99
|
+
- Deprecation policy and timeline
|
|
100
|
+
- Migration guides for version upgrades
|
|
101
|
+
|
|
102
|
+
[SDKS AND CLIENT LIBRARIES]
|
|
103
|
+
- Official SDK links
|
|
104
|
+
- Community SDK links
|
|
105
|
+
- Quickstart guides
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Guidelines
|
|
109
|
+
|
|
110
|
+
- Every field in every schema must have: type, description, whether required, and an example value.
|
|
111
|
+
- Document the null/empty behavior explicitly: "Returns null if not set" vs. "Field omitted from response if not set."
|
|
112
|
+
- Error responses must be documented with the same rigor as success responses.
|
|
113
|
+
- Authentication: include a working, copy-paste-ready curl command in the auth section.
|
|
114
|
+
- Pagination: document the pagination strategy (cursor, offset, page) with examples of first page, next page, and last page.
|
|
115
|
+
- Webhooks: document payload schema, signature verification, retry logic, and idempotency.
|
|
116
|
+
- Keep examples realistic — use plausible fake data, not `foo`, `bar`, `test123`.
|
|
117
|
+
- Provide a Postman collection or Insomnia workspace as a downloadable artifact.
|
|
118
|
+
|
|
119
|
+
## Error Response Standard
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"error": {
|
|
124
|
+
"code": "VALIDATION_ERROR",
|
|
125
|
+
"message": "The 'email' field is required and must be a valid email address.",
|
|
126
|
+
"details": [
|
|
127
|
+
{
|
|
128
|
+
"field": "email",
|
|
129
|
+
"issue": "required",
|
|
130
|
+
"value": null
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"requestId": "req_7f3a9b2c1d",
|
|
134
|
+
"docsUrl": "https://docs.example.com/errors/VALIDATION_ERROR"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
platform: blog
|
|
3
|
+
format: article
|
|
4
|
+
constraints:
|
|
5
|
+
max_chars: null
|
|
6
|
+
image_ratio: "16:9"
|
|
7
|
+
max_hashtags: null
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Best Practices: Blog — Article
|
|
11
|
+
|
|
12
|
+
## Format Rules
|
|
13
|
+
|
|
14
|
+
- Ideal word count: 1500–3000 words for informational content; 800–1200 for opinion/news pieces
|
|
15
|
+
- Title (H1): once, at the top; 50–60 characters for SEO display
|
|
16
|
+
- H2 headers: 3–7 per article; include secondary keywords naturally
|
|
17
|
+
- H3 headers: used for sub-points under H2 sections
|
|
18
|
+
- Featured image: 1200x628px (16:9); include descriptive alt text with keyword
|
|
19
|
+
- Meta description: 150–160 characters summarizing the article with a CTA
|
|
20
|
+
- Reading time: aim for 5–8 minutes (800–1500 words at ~200 wpm average)
|
|
21
|
+
- Internal links: 2–5 per article pointing to related content on the same site
|
|
22
|
+
- External links: 1–3 authoritative sources (open in new tab)
|
|
23
|
+
|
|
24
|
+
## Structure
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
[H1 TITLE — primary keyword near the front]
|
|
28
|
+
|
|
29
|
+
[INTRODUCTION — 100–150 words]
|
|
30
|
+
- Hook: question, statistic, or bold claim
|
|
31
|
+
- State the problem clearly
|
|
32
|
+
- Promise: "In this article you'll learn..."
|
|
33
|
+
|
|
34
|
+
[H2 SECTION 1 — first major topic]
|
|
35
|
+
[H3 sub-section if needed]
|
|
36
|
+
[150–300 words per H2 section]
|
|
37
|
+
[Include: one image or visual, one example or data point]
|
|
38
|
+
|
|
39
|
+
[H2 SECTION 2]
|
|
40
|
+
...
|
|
41
|
+
|
|
42
|
+
[H2 SECTION N — practical steps or application]
|
|
43
|
+
[Use numbered lists or a step-by-step format here]
|
|
44
|
+
|
|
45
|
+
[H2 FREQUENTLY ASKED QUESTIONS (optional but SEO-valuable)]
|
|
46
|
+
[3–5 Q&A pairs targeting long-tail search queries]
|
|
47
|
+
|
|
48
|
+
[CONCLUSION — 100–150 words]
|
|
49
|
+
- Summarize key takeaways
|
|
50
|
+
- Reinforce main message
|
|
51
|
+
- CTA: newsletter, related article, product, or comment question
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Guidelines
|
|
55
|
+
|
|
56
|
+
- **Write for humans first, then optimize for search.** Content that solves a real problem ranks because it earns links and time-on-page.
|
|
57
|
+
- Put the most important information first (inverted pyramid). Readers scroll but rarely finish.
|
|
58
|
+
- Use short sentences (under 25 words), short paragraphs (3–4 lines max), and ample white space.
|
|
59
|
+
- Bold key phrases, not entire sentences. Bold is a scannable emphasis tool.
|
|
60
|
+
- Every H2 section should be comprehensible on its own — readers jump around.
|
|
61
|
+
- Use original visuals, charts, or screenshots rather than stock photos wherever possible.
|
|
62
|
+
- Update old articles to keep them current — freshness signals matter for rankings.
|
|
63
|
+
- Internal linking strategy: link new posts to cornerstone content, and update cornerstone content to link to new posts.
|
|
64
|
+
|
|
65
|
+
## Examples
|
|
66
|
+
|
|
67
|
+
**Introduction template:**
|
|
68
|
+
```
|
|
69
|
+
[Stat or provocative question].
|
|
70
|
+
|
|
71
|
+
If you've been [doing the common thing], you're not alone — but you might be leaving [result] on the table.
|
|
72
|
+
|
|
73
|
+
In this guide, I'll walk you through [topic], covering:
|
|
74
|
+
- [Point 1]
|
|
75
|
+
- [Point 2]
|
|
76
|
+
- [Point 3]
|
|
77
|
+
|
|
78
|
+
Let's dive in.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**FAQ entry:**
|
|
82
|
+
```
|
|
83
|
+
### How long does [process] take?
|
|
84
|
+
|
|
85
|
+
Most people see [result] within [timeframe]. The key variable is [factor]. If you follow the steps in Section 2, you can cut that time significantly.
|
|
86
|
+
```
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
platform: blog
|
|
3
|
+
format: seo-content
|
|
4
|
+
constraints:
|
|
5
|
+
max_chars: null
|
|
6
|
+
image_ratio: "16:9"
|
|
7
|
+
max_hashtags: null
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Best Practices: Blog — SEO-Optimized Content
|
|
11
|
+
|
|
12
|
+
## Format Rules
|
|
13
|
+
|
|
14
|
+
- Title tag: 50–60 characters; primary keyword in the first 3 words when possible
|
|
15
|
+
- Meta description: 150–160 characters; include primary keyword and a clear benefit
|
|
16
|
+
- URL slug: lowercase, hyphens only, primary keyword only (e.g., `/best-crm-software`)
|
|
17
|
+
- H1: exact match or close variant of the target keyword; use only once
|
|
18
|
+
- Keyword density: 1–2% naturally placed; avoid keyword stuffing
|
|
19
|
+
- Image alt text: descriptive and keyword-contextual (not just the keyword alone)
|
|
20
|
+
- Schema markup: Article or HowTo schema for rich snippets
|
|
21
|
+
- Page speed: target Core Web Vitals — LCP < 2.5s, CLS < 0.1, FID < 100ms
|
|
22
|
+
|
|
23
|
+
## Structure
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
[TITLE TAG — primary keyword first]
|
|
27
|
+
|
|
28
|
+
[META DESCRIPTION — keyword + benefit + CTA under 160 chars]
|
|
29
|
+
|
|
30
|
+
[H1 — matches or closely mirrors title tag]
|
|
31
|
+
|
|
32
|
+
[INTRODUCTION]
|
|
33
|
+
- Mention primary keyword in first 100 words
|
|
34
|
+
- Acknowledge the search intent (informational, commercial, transactional)
|
|
35
|
+
|
|
36
|
+
[TABLE OF CONTENTS — for articles over 1500 words; improves dwell time]
|
|
37
|
+
|
|
38
|
+
[H2 SECTIONS — secondary and LSI keywords as H2 headers]
|
|
39
|
+
- Each H2 targets a related search query
|
|
40
|
+
- 200–400 words per section
|
|
41
|
+
|
|
42
|
+
[H2 FAQ SECTION]
|
|
43
|
+
- Target "People Also Ask" queries from Google SERP
|
|
44
|
+
- Question as H3, concise answer (40–60 words) immediately following
|
|
45
|
+
|
|
46
|
+
[CONCLUSION with CTA]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Guidelines
|
|
50
|
+
|
|
51
|
+
- **Match search intent precisely.** Rank for the right audience by matching what someone actually wants when they type that query (informational, navigational, transactional, commercial investigation).
|
|
52
|
+
- Use tools like Ahrefs, Semrush, or Google Search Console to identify the exact keyword phrase to target.
|
|
53
|
+
- Cover the topic comprehensively — include sub-topics that competing articles address, then add unique depth they don't.
|
|
54
|
+
- Build topical authority: create a cluster of 5–15 related articles all linking to one cornerstone page on the topic.
|
|
55
|
+
- Earn backlinks through original data, studies, quotes from experts, or unique tools embedded in the page.
|
|
56
|
+
- E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness): include author bios, cite sources, show real experience.
|
|
57
|
+
- Structured data (JSON-LD): implement Article, BreadcrumbList, and FAQPage schema where relevant.
|
|
58
|
+
- Internal link anchor text should be descriptive and keyword-relevant, not generic ("click here").
|
|
59
|
+
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
62
|
+
**Meta description:**
|
|
63
|
+
```
|
|
64
|
+
Discover the 7 best project management tools in 2024 — compared by price, features, and team size. Find the right fit in under 5 minutes.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**FAQPage schema example (JSON-LD):**
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"@context": "https://schema.org",
|
|
71
|
+
"@type": "FAQPage",
|
|
72
|
+
"mainEntity": [{
|
|
73
|
+
"@type": "Question",
|
|
74
|
+
"name": "What is the best CRM for small businesses?",
|
|
75
|
+
"acceptedAnswer": {
|
|
76
|
+
"@type": "Answer",
|
|
77
|
+
"text": "HubSpot CRM is the top choice for small businesses due to its free tier, ease of use, and robust integrations."
|
|
78
|
+
}
|
|
79
|
+
}]
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Keyword placement checklist:**
|
|
84
|
+
- [ ] Title tag (first 3 words)
|
|
85
|
+
- [ ] Meta description (natural inclusion)
|
|
86
|
+
- [ ] H1 header
|
|
87
|
+
- [ ] First paragraph (within 100 words)
|
|
88
|
+
- [ ] At least one H2 header
|
|
89
|
+
- [ ] Image alt text
|
|
90
|
+
- [ ] URL slug
|
|
91
|
+
- [ ] Conclusion paragraph
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
platform: software-house
|
|
3
|
+
format: code-review
|
|
4
|
+
constraints:
|
|
5
|
+
max_chars: null
|
|
6
|
+
image_ratio: null
|
|
7
|
+
max_hashtags: null
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Best Practices: Code Review
|
|
11
|
+
|
|
12
|
+
## Core Principles
|
|
13
|
+
|
|
14
|
+
Code review is a quality gate, a knowledge-sharing mechanism, and a communication process. It protects the codebase and grows the team simultaneously.
|
|
15
|
+
|
|
16
|
+
- **Review code, not the person.** Feedback targets the implementation, not the developer.
|
|
17
|
+
- **Be constructive and specific.** "This could be cleaner" is not actionable. "Extract this logic into a `calculateTax()` function to make it reusable and testable" is.
|
|
18
|
+
- **Approve or block — don't be a passive reviewer.** An ambiguous review is worse than no review.
|
|
19
|
+
- **Small PRs, fast reviews.** Prefer many small reviews over one massive review that nobody reads carefully.
|
|
20
|
+
|
|
21
|
+
## What to Review
|
|
22
|
+
|
|
23
|
+
### Correctness
|
|
24
|
+
- Does the code do what the PR description claims?
|
|
25
|
+
- Are edge cases and error paths handled?
|
|
26
|
+
- Are inputs validated where they enter the system?
|
|
27
|
+
- Are there potential null pointer exceptions, off-by-one errors, or race conditions?
|
|
28
|
+
|
|
29
|
+
### Design and Architecture
|
|
30
|
+
- Is the solution appropriately simple? Over-engineering is a real defect.
|
|
31
|
+
- Does the code follow the existing architectural patterns of the codebase?
|
|
32
|
+
- Are responsibilities well separated (single responsibility principle)?
|
|
33
|
+
- Is there appropriate abstraction — not too much, not too little?
|
|
34
|
+
|
|
35
|
+
### Performance
|
|
36
|
+
- Are there N+1 query patterns or unnecessary loops?
|
|
37
|
+
- Are expensive operations (DB calls, API requests) performed in tight loops?
|
|
38
|
+
- Is caching used appropriately?
|
|
39
|
+
|
|
40
|
+
### Security
|
|
41
|
+
- Is user input sanitized and validated?
|
|
42
|
+
- Are secrets hardcoded? (Should trigger immediate blocking)
|
|
43
|
+
- Are authorization checks in place for all sensitive operations?
|
|
44
|
+
- Is SQL/NoSQL injection prevented?
|
|
45
|
+
|
|
46
|
+
### Tests
|
|
47
|
+
- Do new features have unit tests?
|
|
48
|
+
- Are edge cases tested?
|
|
49
|
+
- Do tests actually assert the right things (not just that something runs without throwing)?
|
|
50
|
+
|
|
51
|
+
### Readability and Maintainability
|
|
52
|
+
- Is the code understandable without requiring the author to explain it?
|
|
53
|
+
- Are variable and function names descriptive?
|
|
54
|
+
- Are complex sections commented with the *why*, not just the *what*?
|
|
55
|
+
|
|
56
|
+
## Review Comment Taxonomy
|
|
57
|
+
|
|
58
|
+
Use a prefix to clarify the type of feedback:
|
|
59
|
+
|
|
60
|
+
| Prefix | Meaning |
|
|
61
|
+
|--------|---------|
|
|
62
|
+
| `nit:` | Minor style preference; non-blocking |
|
|
63
|
+
| `suggestion:` | Improvement idea; take it or leave it |
|
|
64
|
+
| `question:` | Genuine question; not necessarily a problem |
|
|
65
|
+
| `issue:` | Must be resolved; blocking approval |
|
|
66
|
+
| `blocker:` | Critical problem; cannot merge |
|
|
67
|
+
|
|
68
|
+
## Structure (PR Description Template)
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
## What this PR does
|
|
72
|
+
[1–3 sentence summary of the change]
|
|
73
|
+
|
|
74
|
+
## Why
|
|
75
|
+
[Link to ticket / business context]
|
|
76
|
+
|
|
77
|
+
## How to test
|
|
78
|
+
1. [Step 1]
|
|
79
|
+
2. [Step 2]
|
|
80
|
+
3. Expected result: [description]
|
|
81
|
+
|
|
82
|
+
## Checklist
|
|
83
|
+
- [ ] Unit tests added or updated
|
|
84
|
+
- [ ] No secrets or hardcoded values
|
|
85
|
+
- [ ] Documentation updated (if applicable)
|
|
86
|
+
- [ ] Breaking changes noted in CHANGELOG
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Guidelines
|
|
90
|
+
|
|
91
|
+
- Respond to all PR comments before requesting re-review — do not leave threads hanging.
|
|
92
|
+
- A PR with more than 400 lines of diff is too large. Break it up.
|
|
93
|
+
- Review within 24 hours of request during business hours — blocking others is a team cost.
|
|
94
|
+
- The author should explain the *why* in the PR description; the reviewer should not have to ask.
|
|
95
|
+
- Self-review before requesting others: re-read your own diff in GitHub/GitLab before clicking "Request Review."
|
|
96
|
+
- Automated checks (linting, tests, type-checking) must pass before human review begins.
|
|
97
|
+
- Approve only code you actually understand — "Looks good to me" without reading is not a review.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
platform: universal
|
|
3
|
+
format: copywriting
|
|
4
|
+
constraints:
|
|
5
|
+
max_chars: null
|
|
6
|
+
image_ratio: null
|
|
7
|
+
max_hashtags: null
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Best Practices: Copywriting
|
|
11
|
+
|
|
12
|
+
## Core Principles
|
|
13
|
+
|
|
14
|
+
Copywriting is the craft of using words to move people toward a specific action. Every word must earn its place by advancing clarity, credibility, or conversion.
|
|
15
|
+
|
|
16
|
+
- **One reader, one message.** Write to a single, specific person — not a demographic.
|
|
17
|
+
- **Benefits, not features.** Features describe what something is; benefits describe what it does for the reader.
|
|
18
|
+
- **The customer is the hero.** Your product is the guide. Their transformation is the story.
|
|
19
|
+
- **Clarity beats cleverness.** If a reader has to work to understand you, they won't convert.
|
|
20
|
+
|
|
21
|
+
## The Fundamental Frameworks
|
|
22
|
+
|
|
23
|
+
### AIDA
|
|
24
|
+
- **Attention** — Stop the scroll with a powerful hook
|
|
25
|
+
- **Interest** — Make the reader care about the problem
|
|
26
|
+
- **Desire** — Show them what life looks like with the solution
|
|
27
|
+
- **Action** — Tell them exactly what to do next
|
|
28
|
+
|
|
29
|
+
### PAS
|
|
30
|
+
- **Problem** — Name the pain precisely
|
|
31
|
+
- **Agitate** — Expand the problem; make it feel real and urgent
|
|
32
|
+
- **Solution** — Present your offer as the clear path forward
|
|
33
|
+
|
|
34
|
+
### FAB
|
|
35
|
+
- **Feature** — What the product does
|
|
36
|
+
- **Advantage** — Why that feature matters
|
|
37
|
+
- **Benefit** — What that means for the reader personally
|
|
38
|
+
|
|
39
|
+
## Structure
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
[HEADLINE — primary promise or hook]
|
|
43
|
+
[SUBHEADLINE — supports or expands the headline]
|
|
44
|
+
|
|
45
|
+
[OPENING — agitate the pain or amplify the desire]
|
|
46
|
+
[BRIDGE — introduce the solution category]
|
|
47
|
+
[PROOF — social proof, testimonials, data, or demonstration]
|
|
48
|
+
[OFFER — what they get, when, for how much]
|
|
49
|
+
[OBJECTION HANDLING — preemptively answer "but what about..."]
|
|
50
|
+
[CTA — one clear next step with urgency or specificity]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Guidelines
|
|
54
|
+
|
|
55
|
+
- Write headlines that include: a number, a specific benefit, or a curiosity trigger.
|
|
56
|
+
- Lead with the reader's world, not yours. Open with their pain or desire.
|
|
57
|
+
- Use sensory, concrete language: "cut your workload in half" beats "improve efficiency."
|
|
58
|
+
- Social proof should be specific: name, company, measurable result.
|
|
59
|
+
- Reduce friction in CTAs: "Start my free trial" > "Sign up" > "Submit"
|
|
60
|
+
- Read your copy aloud — if it sounds stiff, rewrite it until it flows.
|
|
61
|
+
- Every paragraph should make the next one feel necessary.
|
|
62
|
+
|
|
63
|
+
## Examples
|
|
64
|
+
|
|
65
|
+
**Weak vs. strong headlines:**
|
|
66
|
+
- Weak: "Our software helps teams collaborate better"
|
|
67
|
+
- Strong: "Your team will ship 30% faster — or you don't pay"
|
|
68
|
+
|
|
69
|
+
**Weak vs. strong CTA:**
|
|
70
|
+
- Weak: "Learn more"
|
|
71
|
+
- Strong: "Get instant access — no credit card required"
|
|
72
|
+
|
|
73
|
+
**Testimonial (weak vs. strong):**
|
|
74
|
+
- Weak: "Great product! Highly recommend."
|
|
75
|
+
- Strong: "I went from 3 clients to 11 in 60 days after implementing this system. Worth every penny." — Sarah M., Freelance Designer
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
platform: universal
|
|
3
|
+
format: data-analysis
|
|
4
|
+
constraints:
|
|
5
|
+
max_chars: null
|
|
6
|
+
image_ratio: null
|
|
7
|
+
max_hashtags: null
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Best Practices: Data Analysis and Reporting
|
|
11
|
+
|
|
12
|
+
## Core Principles
|
|
13
|
+
|
|
14
|
+
Data analysis turns raw numbers into decisions. The goal is not to describe what happened, but to explain why it happened and recommend what to do next.
|
|
15
|
+
|
|
16
|
+
- **Start with a question, not a dataset.** Analysis without a question produces observations, not insights.
|
|
17
|
+
- **Distinguish correlation from causation.** Two metrics moving together does not mean one causes the other.
|
|
18
|
+
- **Insight = What + So what.** "Conversions dropped 20%" is a finding. "Conversions dropped 20% because landing page load time increased after the deploy" is an insight.
|
|
19
|
+
|
|
20
|
+
## Analysis Process
|
|
21
|
+
|
|
22
|
+
### Step 1: Define the Question
|
|
23
|
+
- Business question: "Why did revenue drop in Q3?"
|
|
24
|
+
- Analytical question: "Which segment, channel, or product drove the Q3 revenue decline?"
|
|
25
|
+
- Success metric: "The analysis is complete when we can name the primary causal factor and its magnitude."
|
|
26
|
+
|
|
27
|
+
### Step 2: Data Collection and Validation
|
|
28
|
+
- Identify data sources and their freshness
|
|
29
|
+
- Check for null values, duplicates, and outliers
|
|
30
|
+
- Validate against a known baseline or external benchmark
|
|
31
|
+
- Document data limitations upfront
|
|
32
|
+
|
|
33
|
+
### Step 3: Exploratory Analysis
|
|
34
|
+
- Summarize distributions: mean, median, standard deviation
|
|
35
|
+
- Look for trends over time
|
|
36
|
+
- Segment by key dimensions (geography, product, cohort, channel)
|
|
37
|
+
- Identify anomalies and investigate their cause
|
|
38
|
+
|
|
39
|
+
### Step 4: Hypothesis Testing
|
|
40
|
+
- State a hypothesis: "We believe [X] caused [Y] because [Z]"
|
|
41
|
+
- Select appropriate statistical test (t-test, chi-square, regression)
|
|
42
|
+
- Set significance threshold (p < 0.05 for most business contexts)
|
|
43
|
+
- Interpret results — significance does not always mean practical importance
|
|
44
|
+
|
|
45
|
+
### Step 5: Visualization
|
|
46
|
+
- Choose chart type by relationship:
|
|
47
|
+
- Trends over time: line chart
|
|
48
|
+
- Comparisons: bar chart
|
|
49
|
+
- Composition: stacked bar or pie (use pie only for 2–4 categories)
|
|
50
|
+
- Distribution: histogram or box plot
|
|
51
|
+
- Correlation: scatter plot
|
|
52
|
+
|
|
53
|
+
### Step 6: Communication
|
|
54
|
+
- Lead with the insight, not the methodology
|
|
55
|
+
- Use the "So What" test on every finding
|
|
56
|
+
- Present data in the audience's language, not the analyst's
|
|
57
|
+
|
|
58
|
+
## Structure (Analysis Report)
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
[EXECUTIVE SUMMARY — 3–5 bullet points max]
|
|
62
|
+
- The question
|
|
63
|
+
- The key finding
|
|
64
|
+
- The recommended action
|
|
65
|
+
|
|
66
|
+
[CONTEXT AND METHODOLOGY]
|
|
67
|
+
- Data sources, date range, sample size
|
|
68
|
+
- Limitations and caveats
|
|
69
|
+
|
|
70
|
+
[FINDINGS]
|
|
71
|
+
- Finding 1: [Insight + supporting data]
|
|
72
|
+
- Finding 2: ...
|
|
73
|
+
- [Charts and tables with clear titles and labeled axes]
|
|
74
|
+
|
|
75
|
+
[ROOT CAUSE ANALYSIS]
|
|
76
|
+
- Causal chain or contributing factors
|
|
77
|
+
|
|
78
|
+
[RECOMMENDATIONS]
|
|
79
|
+
- Action 1: [What to do] — Owner: [who] — Timeline: [when]
|
|
80
|
+
- Action 2: ...
|
|
81
|
+
|
|
82
|
+
[APPENDIX — raw tables, methodology detail]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Guidelines
|
|
86
|
+
|
|
87
|
+
- Every chart must have: a title that states the insight (not just the metric), labeled axes, a data source note, and a date range.
|
|
88
|
+
- Never present a single number without context: comparison to prior period, target, or benchmark.
|
|
89
|
+
- Round numbers appropriately for the audience: executives get "~$2M", analysts get "$1,847,320."
|
|
90
|
+
- Avoid 3D charts — they distort perception of values.
|
|
91
|
+
- Confidence intervals: always show uncertainty in forecasts and statistical estimates.
|
|
92
|
+
- Reproducibility: document data sources, transformations, and calculations so the analysis can be replicated.
|
|
93
|
+
- For dashboards: limit to 5–7 KPIs per view; group related metrics; use consistent color coding.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
platform: software-house
|
|
3
|
+
format: deploy-checklist
|
|
4
|
+
constraints:
|
|
5
|
+
max_chars: null
|
|
6
|
+
image_ratio: null
|
|
7
|
+
max_hashtags: null
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Best Practices: Deployment Checklist and Runbook
|
|
11
|
+
|
|
12
|
+
## Core Principles
|
|
13
|
+
|
|
14
|
+
Deployments should be boring. A well-defined checklist eliminates cognitive load, reduces human error, and makes rollback a fast, practiced operation — not a panic.
|
|
15
|
+
|
|
16
|
+
- **Never deploy on Fridays.** Changes need observation time; deploy when the full team is available to respond.
|
|
17
|
+
- **Every deploy is a risk.** Mitigate it with incremental rollouts, feature flags, and observability.
|
|
18
|
+
- **Runbook first.** If a deployment procedure is not written down, it does not exist reliably.
|
|
19
|
+
|
|
20
|
+
## Pre-Deployment Checklist
|
|
21
|
+
|
|
22
|
+
### Code and Build
|
|
23
|
+
- [ ] All CI/CD pipeline checks passing (tests, linting, type checks, security scans)
|
|
24
|
+
- [ ] PR reviewed and approved by at least one other engineer
|
|
25
|
+
- [ ] Branch merged from up-to-date main/trunk
|
|
26
|
+
- [ ] CHANGELOG updated with changes and version bump
|
|
27
|
+
- [ ] No debug code, `console.log`, or temporary hacks remaining
|
|
28
|
+
|
|
29
|
+
### Database and Data
|
|
30
|
+
- [ ] Database migrations reviewed (are they reversible?)
|
|
31
|
+
- [ ] Migration tested against a production-like dataset
|
|
32
|
+
- [ ] No destructive schema changes without a data backup
|
|
33
|
+
- [ ] Migration execution plan documented (run before or after deploy?)
|
|
34
|
+
|
|
35
|
+
### Configuration and Secrets
|
|
36
|
+
- [ ] All required environment variables set in target environment
|
|
37
|
+
- [ ] No secrets committed to the repository
|
|
38
|
+
- [ ] Third-party service credentials (API keys) valid and tested
|
|
39
|
+
- [ ] Feature flags configured for the target environment
|
|
40
|
+
|
|
41
|
+
### Rollback Plan
|
|
42
|
+
- [ ] Rollback procedure documented: commands to revert deploy
|
|
43
|
+
- [ ] Database rollback: is the migration reversible? If not, is there a compensating migration?
|
|
44
|
+
- [ ] Rollback tested in staging (at minimum, the steps are verified as correct)
|
|
45
|
+
- [ ] Team knows who is responsible for executing a rollback
|
|
46
|
+
|
|
47
|
+
## Deployment Execution
|
|
48
|
+
|
|
49
|
+
### During Deploy
|
|
50
|
+
- [ ] Announce deploy start in the team communication channel
|
|
51
|
+
- [ ] Monitor error rate and latency in real-time during rollout
|
|
52
|
+
- [ ] Watch for new errors in the error tracking tool (Sentry, Datadog, etc.)
|
|
53
|
+
- [ ] Pause or abort if error rate increases more than 5% above baseline
|
|
54
|
+
|
|
55
|
+
### Post-Deployment Verification
|
|
56
|
+
- [ ] Smoke test: manually verify the core user flow in production
|
|
57
|
+
- [ ] Automated synthetic monitor alerts not triggered
|
|
58
|
+
- [ ] Key metrics returning to expected values (conversion, error rate, latency p95)
|
|
59
|
+
- [ ] Any affected external integrations verified (webhooks, third-party services)
|
|
60
|
+
- [ ] Announce deploy completion in the team channel
|
|
61
|
+
|
|
62
|
+
## Rollback Procedure
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Example rollback procedure for a containerized app
|
|
66
|
+
# Step 1: Identify the last stable image tag
|
|
67
|
+
docker image ls <image-name>
|
|
68
|
+
|
|
69
|
+
# Step 2: Redeploy the previous version
|
|
70
|
+
kubectl set image deployment/<app> app=<image>:<previous-tag>
|
|
71
|
+
|
|
72
|
+
# Step 3: Monitor rollout
|
|
73
|
+
kubectl rollout status deployment/<app>
|
|
74
|
+
|
|
75
|
+
# Step 4: If database migration was run, execute rollback migration
|
|
76
|
+
npm run migrate:down # or equivalent
|
|
77
|
+
|
|
78
|
+
# Step 5: Verify system health post-rollback
|
|
79
|
+
# Run smoke tests and confirm error rate normalized
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Production Incident Response
|
|
83
|
+
|
|
84
|
+
If a critical issue is discovered post-deploy:
|
|
85
|
+
|
|
86
|
+
1. **Declare incident** — notify on-call and team channel immediately
|
|
87
|
+
2. **Assess severity** — data loss? Revenue impact? % of users affected?
|
|
88
|
+
3. **Rollback or hotfix** — default to rollback; hotfix only if rollback is slower or riskier
|
|
89
|
+
4. **Communicate** — status page update within 5 minutes of a confirmed incident
|
|
90
|
+
5. **Post-mortem** — within 48 hours: timeline, root cause, action items (blameless)
|
|
91
|
+
|
|
92
|
+
## Deployment Frequency and Strategy
|
|
93
|
+
|
|
94
|
+
| Risk Level | Strategy | Observation Period |
|
|
95
|
+
|-----------|----------|--------------------|
|
|
96
|
+
| Low (config change) | Direct deploy | 15 minutes |
|
|
97
|
+
| Medium (new feature) | Canary rollout (5% → 20% → 100%) | 30 minutes per step |
|
|
98
|
+
| High (data migration) | Blue/green with verification step | 2+ hours |
|
|
99
|
+
| Critical (auth, payments) | Maintenance window, staged rollout | Full business day |
|