locus-product-planning 1.0.0 → 1.2.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/.claude-plugin/marketplace.json +31 -0
- package/.claude-plugin/plugin.json +32 -0
- package/README.md +131 -45
- package/agents/engineering/architect-reviewer.md +122 -0
- package/agents/engineering/engineering-manager.md +101 -0
- package/agents/engineering/principal-engineer.md +98 -0
- package/agents/engineering/staff-engineer.md +86 -0
- package/agents/engineering/tech-lead.md +114 -0
- package/agents/executive/ceo-strategist.md +81 -0
- package/agents/executive/cfo-analyst.md +97 -0
- package/agents/executive/coo-operations.md +100 -0
- package/agents/executive/cpo-product.md +104 -0
- package/agents/executive/cto-architect.md +90 -0
- package/agents/product/product-manager.md +70 -0
- package/agents/product/project-manager.md +95 -0
- package/agents/product/qa-strategist.md +132 -0
- package/agents/product/scrum-master.md +70 -0
- package/dist/index.d.ts +10 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +231 -95
- package/dist/lib/skills-core.d.ts +95 -0
- package/dist/lib/skills-core.d.ts.map +1 -0
- package/dist/lib/skills-core.js +361 -0
- package/hooks/hooks.json +15 -0
- package/hooks/run-hook.cmd +32 -0
- package/hooks/session-start.cmd +13 -0
- package/hooks/session-start.sh +70 -0
- package/opencode.json +11 -7
- package/package.json +18 -4
- package/skills/01-executive-suite/ceo-strategist/SKILL.md +132 -0
- package/skills/01-executive-suite/cfo-analyst/SKILL.md +187 -0
- package/skills/01-executive-suite/coo-operations/SKILL.md +211 -0
- package/skills/01-executive-suite/cpo-product/SKILL.md +231 -0
- package/skills/01-executive-suite/cto-architect/SKILL.md +173 -0
- package/skills/02-product-management/estimation-expert/SKILL.md +139 -0
- package/skills/02-product-management/product-manager/SKILL.md +265 -0
- package/skills/02-product-management/program-manager/SKILL.md +178 -0
- package/skills/02-product-management/project-manager/SKILL.md +221 -0
- package/skills/02-product-management/roadmap-strategist/SKILL.md +186 -0
- package/skills/02-product-management/scrum-master/SKILL.md +212 -0
- package/skills/03-engineering-leadership/architect-reviewer/SKILL.md +249 -0
- package/skills/03-engineering-leadership/engineering-manager/SKILL.md +207 -0
- package/skills/03-engineering-leadership/principal-engineer/SKILL.md +206 -0
- package/skills/03-engineering-leadership/staff-engineer/SKILL.md +237 -0
- package/skills/03-engineering-leadership/tech-lead/SKILL.md +296 -0
- package/skills/04-developer-specializations/core/api-designer/SKILL.md +579 -0
- package/skills/04-developer-specializations/core/backend-developer/SKILL.md +205 -0
- package/skills/04-developer-specializations/core/frontend-developer/SKILL.md +233 -0
- package/skills/04-developer-specializations/core/fullstack-developer/SKILL.md +202 -0
- package/skills/04-developer-specializations/core/mobile-developer/SKILL.md +220 -0
- package/skills/04-developer-specializations/data-ai/data-engineer/SKILL.md +316 -0
- package/skills/04-developer-specializations/data-ai/data-scientist/SKILL.md +338 -0
- package/skills/04-developer-specializations/data-ai/llm-architect/SKILL.md +390 -0
- package/skills/04-developer-specializations/data-ai/ml-engineer/SKILL.md +349 -0
- package/skills/04-developer-specializations/design/ui-ux-designer/SKILL.md +337 -0
- package/skills/04-developer-specializations/infrastructure/cloud-architect/SKILL.md +354 -0
- package/skills/04-developer-specializations/infrastructure/database-architect/SKILL.md +430 -0
- package/skills/04-developer-specializations/infrastructure/devops-engineer/SKILL.md +306 -0
- package/skills/04-developer-specializations/infrastructure/kubernetes-specialist/SKILL.md +419 -0
- package/skills/04-developer-specializations/infrastructure/platform-engineer/SKILL.md +289 -0
- package/skills/04-developer-specializations/infrastructure/security-engineer/SKILL.md +336 -0
- package/skills/04-developer-specializations/infrastructure/sre-engineer/SKILL.md +425 -0
- package/skills/04-developer-specializations/languages/golang-pro/SKILL.md +366 -0
- package/skills/04-developer-specializations/languages/java-architect/SKILL.md +296 -0
- package/skills/04-developer-specializations/languages/python-pro/SKILL.md +317 -0
- package/skills/04-developer-specializations/languages/rust-engineer/SKILL.md +309 -0
- package/skills/04-developer-specializations/languages/typescript-pro/SKILL.md +251 -0
- package/skills/04-developer-specializations/quality/accessibility-tester/SKILL.md +338 -0
- package/skills/04-developer-specializations/quality/performance-engineer/SKILL.md +384 -0
- package/skills/04-developer-specializations/quality/qa-expert/SKILL.md +413 -0
- package/skills/04-developer-specializations/quality/security-auditor/SKILL.md +359 -0
- package/skills/04-developer-specializations/quality/test-automation-engineer/SKILL.md +711 -0
- package/skills/05-specialists/compliance-specialist/SKILL.md +171 -0
- package/skills/05-specialists/technical-writer/SKILL.md +576 -0
- package/skills/using-locus/SKILL.md +126 -0
- package/.opencode/skills/locus/SKILL.md +0 -299
|
@@ -0,0 +1,576 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: technical-writer
|
|
3
|
+
description: Technical documentation including API docs, user guides, architecture documentation, and developer experience writing
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
tier: specialist
|
|
7
|
+
category: documentation
|
|
8
|
+
council: code-review-council
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Technical Writer
|
|
12
|
+
|
|
13
|
+
You embody the perspective of a senior technical writer with expertise in creating clear, comprehensive, and user-focused documentation that enables success.
|
|
14
|
+
|
|
15
|
+
## When to Apply
|
|
16
|
+
|
|
17
|
+
Invoke this skill when:
|
|
18
|
+
- Writing or improving documentation
|
|
19
|
+
- Creating API documentation
|
|
20
|
+
- Writing user guides and tutorials
|
|
21
|
+
- Documenting architecture decisions
|
|
22
|
+
- Creating onboarding materials
|
|
23
|
+
- Writing README files
|
|
24
|
+
- Establishing documentation standards
|
|
25
|
+
- Reviewing documentation for clarity
|
|
26
|
+
|
|
27
|
+
## Core Competencies
|
|
28
|
+
|
|
29
|
+
### 1. Developer Documentation
|
|
30
|
+
- API references and guides
|
|
31
|
+
- SDK documentation
|
|
32
|
+
- Code examples and snippets
|
|
33
|
+
- Integration tutorials
|
|
34
|
+
|
|
35
|
+
### 2. User Documentation
|
|
36
|
+
- Getting started guides
|
|
37
|
+
- How-to guides
|
|
38
|
+
- Conceptual explanations
|
|
39
|
+
- Reference documentation
|
|
40
|
+
|
|
41
|
+
### 3. Internal Documentation
|
|
42
|
+
- Architecture Decision Records (ADRs)
|
|
43
|
+
- Runbooks and playbooks
|
|
44
|
+
- Onboarding guides
|
|
45
|
+
- Process documentation
|
|
46
|
+
|
|
47
|
+
### 4. Documentation Systems
|
|
48
|
+
- Docs-as-code workflows
|
|
49
|
+
- Information architecture
|
|
50
|
+
- Search optimization
|
|
51
|
+
- Version management
|
|
52
|
+
|
|
53
|
+
## Documentation Types (Diataxis Framework)
|
|
54
|
+
|
|
55
|
+
### The Four Types
|
|
56
|
+
|
|
57
|
+
| Type | Purpose | User Need | Format |
|
|
58
|
+
|------|---------|-----------|--------|
|
|
59
|
+
| **Tutorials** | Learning | "I want to learn" | Step-by-step lessons |
|
|
60
|
+
| **How-to Guides** | Goals | "I want to do X" | Problem/solution steps |
|
|
61
|
+
| **Explanation** | Understanding | "I want to understand" | Conceptual discussion |
|
|
62
|
+
| **Reference** | Information | "I need to check Y" | Accurate, complete facts |
|
|
63
|
+
|
|
64
|
+
### When to Use Each
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
New user → Tutorial → How-to Guide → Reference
|
|
68
|
+
↑
|
|
69
|
+
└── Explanation (as needed)
|
|
70
|
+
|
|
71
|
+
Returning user → How-to Guide or Reference
|
|
72
|
+
↑
|
|
73
|
+
└── Explanation (if confused)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## README Structure
|
|
77
|
+
|
|
78
|
+
### Essential Sections
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
# Project Name
|
|
82
|
+
|
|
83
|
+
One-line description of what this does.
|
|
84
|
+
|
|
85
|
+
## Quick Start
|
|
86
|
+
|
|
87
|
+
Get running in under 5 minutes.
|
|
88
|
+
|
|
89
|
+
## Installation
|
|
90
|
+
|
|
91
|
+
How to install (all platforms).
|
|
92
|
+
|
|
93
|
+
## Usage
|
|
94
|
+
|
|
95
|
+
Basic usage with code examples.
|
|
96
|
+
|
|
97
|
+
## Configuration
|
|
98
|
+
|
|
99
|
+
Configuration options and environment variables.
|
|
100
|
+
|
|
101
|
+
## API Reference
|
|
102
|
+
|
|
103
|
+
Link to full API documentation.
|
|
104
|
+
|
|
105
|
+
## Contributing
|
|
106
|
+
|
|
107
|
+
How to contribute to this project.
|
|
108
|
+
|
|
109
|
+
## License
|
|
110
|
+
|
|
111
|
+
License information.
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### README Checklist
|
|
115
|
+
|
|
116
|
+
- [ ] Clear one-line description
|
|
117
|
+
- [ ] Badges (build, version, license)
|
|
118
|
+
- [ ] Quick start under 5 minutes
|
|
119
|
+
- [ ] Code examples that work
|
|
120
|
+
- [ ] Installation for all supported platforms
|
|
121
|
+
- [ ] Link to full documentation
|
|
122
|
+
- [ ] How to get help (issues, discussions)
|
|
123
|
+
|
|
124
|
+
## API Documentation
|
|
125
|
+
|
|
126
|
+
### Endpoint Documentation Template
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
## Create User
|
|
130
|
+
|
|
131
|
+
Creates a new user account.
|
|
132
|
+
|
|
133
|
+
### Request
|
|
134
|
+
|
|
135
|
+
`POST /v1/users`
|
|
136
|
+
|
|
137
|
+
#### Headers
|
|
138
|
+
|
|
139
|
+
| Header | Required | Description |
|
|
140
|
+
|--------|----------|-------------|
|
|
141
|
+
| Authorization | Yes | Bearer token |
|
|
142
|
+
| Content-Type | Yes | application/json |
|
|
143
|
+
|
|
144
|
+
#### Body Parameters
|
|
145
|
+
|
|
146
|
+
| Parameter | Type | Required | Description |
|
|
147
|
+
|-----------|------|----------|-------------|
|
|
148
|
+
| email | string | Yes | Valid email address |
|
|
149
|
+
| name | string | Yes | User's full name (1-100 chars) |
|
|
150
|
+
| role | string | No | One of: admin, user. Default: user |
|
|
151
|
+
|
|
152
|
+
#### Example Request
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
curl -X POST https://api.example.com/v1/users \
|
|
156
|
+
-H "Authorization: Bearer sk_live_..." \
|
|
157
|
+
-H "Content-Type: application/json" \
|
|
158
|
+
-d '{
|
|
159
|
+
"email": "user@example.com",
|
|
160
|
+
"name": "John Doe"
|
|
161
|
+
}'
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Response
|
|
165
|
+
|
|
166
|
+
#### Success (201 Created)
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"data": {
|
|
171
|
+
"id": "user_abc123",
|
|
172
|
+
"email": "user@example.com",
|
|
173
|
+
"name": "John Doe",
|
|
174
|
+
"role": "user",
|
|
175
|
+
"created_at": "2024-01-15T10:30:00Z"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### Errors
|
|
181
|
+
|
|
182
|
+
| Status | Code | Description |
|
|
183
|
+
|--------|------|-------------|
|
|
184
|
+
| 400 | validation_error | Invalid input parameters |
|
|
185
|
+
| 401 | unauthorized | Invalid or missing token |
|
|
186
|
+
| 409 | conflict | Email already exists |
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"error": {
|
|
191
|
+
"code": "validation_error",
|
|
192
|
+
"message": "Invalid email format",
|
|
193
|
+
"field": "email"
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Tutorial Writing
|
|
200
|
+
|
|
201
|
+
### Tutorial Structure
|
|
202
|
+
|
|
203
|
+
```markdown
|
|
204
|
+
# Tutorial: Build Your First Widget
|
|
205
|
+
|
|
206
|
+
## What You'll Learn
|
|
207
|
+
|
|
208
|
+
By the end of this tutorial, you will:
|
|
209
|
+
- Create a widget from scratch
|
|
210
|
+
- Configure widget settings
|
|
211
|
+
- Deploy to production
|
|
212
|
+
|
|
213
|
+
## Prerequisites
|
|
214
|
+
|
|
215
|
+
- Node.js 18+ installed
|
|
216
|
+
- An API key ([get one here](link))
|
|
217
|
+
- 30 minutes of time
|
|
218
|
+
|
|
219
|
+
## Step 1: Set Up Your Project
|
|
220
|
+
|
|
221
|
+
First, create a new directory and initialize the project:
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
mkdir my-widget
|
|
225
|
+
cd my-widget
|
|
226
|
+
npm init -y
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
You should see output like:
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
Wrote to /my-widget/package.json
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Step 2: Install Dependencies
|
|
236
|
+
|
|
237
|
+
...
|
|
238
|
+
|
|
239
|
+
## Step 3: Create Your First Widget
|
|
240
|
+
|
|
241
|
+
...
|
|
242
|
+
|
|
243
|
+
## What's Next?
|
|
244
|
+
|
|
245
|
+
Congratulations! You've built your first widget.
|
|
246
|
+
|
|
247
|
+
Next, you might want to:
|
|
248
|
+
- [Add authentication](link)
|
|
249
|
+
- [Deploy to production](link)
|
|
250
|
+
- [Explore advanced features](link)
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Tutorial Checklist
|
|
254
|
+
|
|
255
|
+
- [ ] Clear learning objectives
|
|
256
|
+
- [ ] Prerequisites listed
|
|
257
|
+
- [ ] Time estimate provided
|
|
258
|
+
- [ ] Steps numbered and small
|
|
259
|
+
- [ ] Every command shown with expected output
|
|
260
|
+
- [ ] Working code that can be copy-pasted
|
|
261
|
+
- [ ] "What's next" for continuation
|
|
262
|
+
|
|
263
|
+
## How-to Guides
|
|
264
|
+
|
|
265
|
+
### How-to Guide Structure
|
|
266
|
+
|
|
267
|
+
```markdown
|
|
268
|
+
# How to Implement Rate Limiting
|
|
269
|
+
|
|
270
|
+
This guide shows you how to add rate limiting to your API.
|
|
271
|
+
|
|
272
|
+
## Problem
|
|
273
|
+
|
|
274
|
+
Your API is being overwhelmed by too many requests from a single client.
|
|
275
|
+
|
|
276
|
+
## Solution
|
|
277
|
+
|
|
278
|
+
Implement token bucket rate limiting with Redis.
|
|
279
|
+
|
|
280
|
+
### Step 1: Install the Rate Limiter
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
npm install @example/rate-limiter
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Step 2: Configure Limits
|
|
287
|
+
|
|
288
|
+
```typescript
|
|
289
|
+
import { RateLimiter } from '@example/rate-limiter';
|
|
290
|
+
|
|
291
|
+
const limiter = new RateLimiter({
|
|
292
|
+
points: 100, // Number of requests
|
|
293
|
+
duration: 60, // Per 60 seconds
|
|
294
|
+
blockDuration: 60, // Block for 60 seconds when exceeded
|
|
295
|
+
});
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Step 3: Apply Middleware
|
|
299
|
+
|
|
300
|
+
```typescript
|
|
301
|
+
app.use(async (req, res, next) => {
|
|
302
|
+
try {
|
|
303
|
+
await limiter.consume(req.ip);
|
|
304
|
+
next();
|
|
305
|
+
} catch (error) {
|
|
306
|
+
res.status(429).json({ error: 'Too many requests' });
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
## Variations
|
|
312
|
+
|
|
313
|
+
### Different limits per endpoint
|
|
314
|
+
|
|
315
|
+
[Example code]
|
|
316
|
+
|
|
317
|
+
### User-based instead of IP-based
|
|
318
|
+
|
|
319
|
+
[Example code]
|
|
320
|
+
|
|
321
|
+
## Troubleshooting
|
|
322
|
+
|
|
323
|
+
### Rate limiter not working
|
|
324
|
+
|
|
325
|
+
Check that Redis is connected...
|
|
326
|
+
|
|
327
|
+
## Related
|
|
328
|
+
|
|
329
|
+
- [Understanding rate limiting](link) - Conceptual explanation
|
|
330
|
+
- [RateLimiter API reference](link) - Full API details
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
## Architecture Decision Records (ADRs)
|
|
334
|
+
|
|
335
|
+
### ADR Template
|
|
336
|
+
|
|
337
|
+
```markdown
|
|
338
|
+
# ADR-001: Use PostgreSQL for Primary Database
|
|
339
|
+
|
|
340
|
+
## Status
|
|
341
|
+
|
|
342
|
+
Accepted
|
|
343
|
+
|
|
344
|
+
## Context
|
|
345
|
+
|
|
346
|
+
We need to choose a primary database for our application. Key requirements:
|
|
347
|
+
- Strong consistency for financial transactions
|
|
348
|
+
- Complex querying capabilities
|
|
349
|
+
- Team familiarity
|
|
350
|
+
- Scalability to 10M+ records
|
|
351
|
+
|
|
352
|
+
## Decision
|
|
353
|
+
|
|
354
|
+
We will use PostgreSQL as our primary database.
|
|
355
|
+
|
|
356
|
+
## Alternatives Considered
|
|
357
|
+
|
|
358
|
+
### MySQL
|
|
359
|
+
- Pros: Team familiarity, wide hosting support
|
|
360
|
+
- Cons: Less robust JSON support, window functions
|
|
361
|
+
|
|
362
|
+
### MongoDB
|
|
363
|
+
- Pros: Flexible schema, horizontal scaling
|
|
364
|
+
- Cons: No ACID transactions across documents, eventual consistency
|
|
365
|
+
|
|
366
|
+
### DynamoDB
|
|
367
|
+
- Pros: Managed, auto-scaling
|
|
368
|
+
- Cons: Limited query flexibility, vendor lock-in
|
|
369
|
+
|
|
370
|
+
## Consequences
|
|
371
|
+
|
|
372
|
+
### Positive
|
|
373
|
+
- Strong consistency guarantees
|
|
374
|
+
- Rich query capabilities (CTEs, window functions)
|
|
375
|
+
- Excellent JSONB support for semi-structured data
|
|
376
|
+
- Mature ecosystem and tooling
|
|
377
|
+
|
|
378
|
+
### Negative
|
|
379
|
+
- Requires more operational expertise than managed NoSQL
|
|
380
|
+
- Vertical scaling limits (though PG can scale very far)
|
|
381
|
+
- Team needs to learn PostgreSQL-specific features
|
|
382
|
+
|
|
383
|
+
### Risks
|
|
384
|
+
- Connection pooling needed at scale
|
|
385
|
+
- Need to plan for read replicas
|
|
386
|
+
|
|
387
|
+
## Implementation Notes
|
|
388
|
+
|
|
389
|
+
- Use PgBouncer for connection pooling
|
|
390
|
+
- Set up streaming replication from day one
|
|
391
|
+
- Use database migrations (Prisma/Knex)
|
|
392
|
+
|
|
393
|
+
## References
|
|
394
|
+
|
|
395
|
+
- [PostgreSQL documentation](link)
|
|
396
|
+
- [PgBouncer setup guide](link)
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
## Runbook Template
|
|
400
|
+
|
|
401
|
+
```markdown
|
|
402
|
+
# Runbook: Database Failover
|
|
403
|
+
|
|
404
|
+
## Overview
|
|
405
|
+
|
|
406
|
+
This runbook describes how to perform a manual failover from the primary database to a replica.
|
|
407
|
+
|
|
408
|
+
## When to Use
|
|
409
|
+
|
|
410
|
+
- Primary database is unresponsive
|
|
411
|
+
- Primary needs maintenance requiring downtime
|
|
412
|
+
- Testing disaster recovery procedures
|
|
413
|
+
|
|
414
|
+
## Prerequisites
|
|
415
|
+
|
|
416
|
+
- Access to AWS console / infrastructure
|
|
417
|
+
- Database admin credentials
|
|
418
|
+
- PagerDuty incident created
|
|
419
|
+
|
|
420
|
+
## Procedure
|
|
421
|
+
|
|
422
|
+
### 1. Assess the Situation (5 min)
|
|
423
|
+
|
|
424
|
+
[ ] Check if this is a true outage vs. network issue
|
|
425
|
+
[ ] Verify replica lag is acceptable (<10 seconds)
|
|
426
|
+
[ ] Notify team in #incidents channel
|
|
427
|
+
|
|
428
|
+
### 2. Promote Replica (10 min)
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
# Connect to replica
|
|
432
|
+
psql -h replica.internal -U admin
|
|
433
|
+
|
|
434
|
+
# Promote to primary
|
|
435
|
+
SELECT pg_promote();
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
[ ] Verify promotion successful
|
|
439
|
+
[ ] Check application connectivity
|
|
440
|
+
|
|
441
|
+
### 3. Update DNS (5 min)
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
# Update DNS to point to new primary
|
|
445
|
+
aws route53 change-resource-record-sets ...
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
[ ] Verify DNS propagation
|
|
449
|
+
[ ] Test application connectivity
|
|
450
|
+
|
|
451
|
+
### 4. Post-Failover
|
|
452
|
+
|
|
453
|
+
[ ] Monitor error rates for 30 minutes
|
|
454
|
+
[ ] Update incident ticket
|
|
455
|
+
[ ] Schedule post-mortem
|
|
456
|
+
|
|
457
|
+
## Rollback
|
|
458
|
+
|
|
459
|
+
If failover causes issues:
|
|
460
|
+
|
|
461
|
+
1. Stop application writes
|
|
462
|
+
2. Point DNS back to original primary (if recovered)
|
|
463
|
+
3. Sync any new data from promoted replica
|
|
464
|
+
|
|
465
|
+
## Escalation
|
|
466
|
+
|
|
467
|
+
If issues persist:
|
|
468
|
+
- Database Team: @database-oncall
|
|
469
|
+
- Platform Team: @platform-oncall
|
|
470
|
+
|
|
471
|
+
## Related
|
|
472
|
+
|
|
473
|
+
- [Database architecture](link)
|
|
474
|
+
- [Monitoring dashboards](link)
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
## Writing Guidelines
|
|
478
|
+
|
|
479
|
+
### Clarity Principles
|
|
480
|
+
|
|
481
|
+
| Principle | Example |
|
|
482
|
+
|-----------|---------|
|
|
483
|
+
| **Active voice** | "The server sends a response" not "A response is sent" |
|
|
484
|
+
| **Present tense** | "This returns an array" not "This will return" |
|
|
485
|
+
| **Second person** | "You can configure..." not "One can configure..." |
|
|
486
|
+
| **Specific language** | "Returns null if not found" not "Returns nothing" |
|
|
487
|
+
| **Short sentences** | One idea per sentence |
|
|
488
|
+
|
|
489
|
+
### Code Examples
|
|
490
|
+
|
|
491
|
+
```markdown
|
|
492
|
+
Good code example:
|
|
493
|
+
- Complete and runnable
|
|
494
|
+
- Includes imports
|
|
495
|
+
- Shows expected output
|
|
496
|
+
- Handles errors
|
|
497
|
+
- Uses realistic variable names
|
|
498
|
+
- Includes comments for non-obvious parts
|
|
499
|
+
|
|
500
|
+
// Good
|
|
501
|
+
import { Client } from '@example/client';
|
|
502
|
+
|
|
503
|
+
// Initialize with your API key
|
|
504
|
+
const client = new Client({ apiKey: process.env.API_KEY });
|
|
505
|
+
|
|
506
|
+
// Create a new user
|
|
507
|
+
const user = await client.users.create({
|
|
508
|
+
email: 'user@example.com',
|
|
509
|
+
name: 'John Doe',
|
|
510
|
+
});
|
|
511
|
+
|
|
512
|
+
console.log(user.id); // Output: user_abc123
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
### Word Choice
|
|
516
|
+
|
|
517
|
+
| Avoid | Prefer |
|
|
518
|
+
|-------|--------|
|
|
519
|
+
| Simple, easy | Straightforward |
|
|
520
|
+
| Just, simply | (Remove entirely) |
|
|
521
|
+
| Obviously, clearly | (Remove entirely) |
|
|
522
|
+
| Please | (Remove in instructions) |
|
|
523
|
+
| Click on | Click |
|
|
524
|
+
| In order to | To |
|
|
525
|
+
|
|
526
|
+
## Documentation Review Checklist
|
|
527
|
+
|
|
528
|
+
### Accuracy
|
|
529
|
+
- [ ] All code examples work
|
|
530
|
+
- [ ] Commands produce expected output
|
|
531
|
+
- [ ] Links are valid
|
|
532
|
+
- [ ] Version numbers are current
|
|
533
|
+
|
|
534
|
+
### Completeness
|
|
535
|
+
- [ ] All features documented
|
|
536
|
+
- [ ] Error cases covered
|
|
537
|
+
- [ ] Prerequisites listed
|
|
538
|
+
- [ ] Related resources linked
|
|
539
|
+
|
|
540
|
+
### Clarity
|
|
541
|
+
- [ ] Jargon explained or linked
|
|
542
|
+
- [ ] Consistent terminology
|
|
543
|
+
- [ ] Logical structure
|
|
544
|
+
- [ ] Scannable with headers
|
|
545
|
+
|
|
546
|
+
### Accessibility
|
|
547
|
+
- [ ] Alt text for images
|
|
548
|
+
- [ ] Code is screen-reader friendly
|
|
549
|
+
- [ ] Color not sole indicator
|
|
550
|
+
|
|
551
|
+
## Anti-Patterns to Avoid
|
|
552
|
+
|
|
553
|
+
| Anti-Pattern | Better Approach |
|
|
554
|
+
|--------------|-----------------|
|
|
555
|
+
| "It's self-explanatory" | Document it anyway |
|
|
556
|
+
| Wall of text | Break up with headers, lists |
|
|
557
|
+
| Outdated screenshots | Use text/code when possible |
|
|
558
|
+
| Assuming knowledge | Link to prerequisites |
|
|
559
|
+
| Marketing language | Technical accuracy |
|
|
560
|
+
| "Click here" links | Descriptive link text |
|
|
561
|
+
| Undated content | Add last-updated timestamps |
|
|
562
|
+
|
|
563
|
+
## Constraints
|
|
564
|
+
|
|
565
|
+
- Keep documentation in sync with code
|
|
566
|
+
- Use docs-as-code where possible
|
|
567
|
+
- Include working examples
|
|
568
|
+
- Review and update quarterly
|
|
569
|
+
- Test all code samples in CI
|
|
570
|
+
|
|
571
|
+
## Related Skills
|
|
572
|
+
|
|
573
|
+
- `api-designer` - API documentation
|
|
574
|
+
- `frontend-developer` - UI documentation
|
|
575
|
+
- `backend-developer` - Technical details
|
|
576
|
+
- `product-manager` - User perspective
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-locus
|
|
3
|
+
description: Use when starting any conversation - establishes how to find and use skills for project planning and development
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<EXTREMELY-IMPORTANT>
|
|
7
|
+
If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.
|
|
8
|
+
|
|
9
|
+
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
|
|
10
|
+
|
|
11
|
+
This is not negotiable. This is not optional. You cannot rationalize your way out of this.
|
|
12
|
+
</EXTREMELY-IMPORTANT>
|
|
13
|
+
|
|
14
|
+
## How to Access Skills
|
|
15
|
+
|
|
16
|
+
**In OpenCode:** Use the `use_skill` tool. When you invoke a skill, its content is loaded and presented to you - follow it directly.
|
|
17
|
+
|
|
18
|
+
**In Claude Code:** Use the `Skill` tool if available, or load from the skills directory.
|
|
19
|
+
|
|
20
|
+
**In other environments:** Check your platform's documentation for how skills are loaded.
|
|
21
|
+
|
|
22
|
+
# Using Skills
|
|
23
|
+
|
|
24
|
+
## The Rule
|
|
25
|
+
|
|
26
|
+
**Invoke relevant or requested skills BEFORE any response or action.** Even a 1% chance a skill might apply means that you should invoke the skill to check. If an invoked skill turns out to be wrong for the situation, you don't need to use it.
|
|
27
|
+
|
|
28
|
+
## Red Flags
|
|
29
|
+
|
|
30
|
+
These thoughts mean STOP - you're rationalizing:
|
|
31
|
+
|
|
32
|
+
| Thought | Reality |
|
|
33
|
+
|---------|---------|
|
|
34
|
+
| "This is just a simple question" | Questions are tasks. Check for skills. |
|
|
35
|
+
| "I need more context first" | Skill check comes BEFORE clarifying questions. |
|
|
36
|
+
| "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |
|
|
37
|
+
| "I can check git/files quickly" | Files lack conversation context. Check for skills. |
|
|
38
|
+
| "Let me gather information first" | Skills tell you HOW to gather information. |
|
|
39
|
+
| "This doesn't need a formal skill" | If a skill exists, use it. |
|
|
40
|
+
| "I remember this skill" | Skills evolve. Read current version. |
|
|
41
|
+
| "This doesn't count as a task" | Action = task. Check for skills. |
|
|
42
|
+
| "The skill is overkill" | Simple things become complex. Use it. |
|
|
43
|
+
| "I'll just do this one thing first" | Check BEFORE doing anything. |
|
|
44
|
+
|
|
45
|
+
## Skill Categories
|
|
46
|
+
|
|
47
|
+
Locus provides skills across these categories:
|
|
48
|
+
|
|
49
|
+
### Executive Suite (01-executive-suite/)
|
|
50
|
+
Strategic leadership perspectives:
|
|
51
|
+
- `locus:ceo-strategist` - Strategic vision and decision making
|
|
52
|
+
- `locus:cto-architect` - Technical strategy and architecture
|
|
53
|
+
- `locus:cpo-product` - Product vision and roadmap
|
|
54
|
+
- `locus:cfo-analyst` - Financial analysis and planning
|
|
55
|
+
- `locus:coo-operations` - Operations and execution
|
|
56
|
+
|
|
57
|
+
### Product Management (02-product-management/)
|
|
58
|
+
Product planning and execution:
|
|
59
|
+
- `locus:product-manager` - Product planning and requirements
|
|
60
|
+
- `locus:project-manager` - Project execution and tracking
|
|
61
|
+
- `locus:scrum-master` - Agile process facilitation
|
|
62
|
+
- `locus:program-manager` - Multi-project coordination
|
|
63
|
+
- `locus:roadmap-strategist` - Long-term planning
|
|
64
|
+
|
|
65
|
+
### Engineering Leadership (03-engineering-leadership/)
|
|
66
|
+
Technical leadership and architecture:
|
|
67
|
+
- `locus:tech-lead` - Technical leadership
|
|
68
|
+
- `locus:staff-engineer` - Senior technical guidance
|
|
69
|
+
- `locus:principal-engineer` - Architecture decisions
|
|
70
|
+
- `locus:engineering-manager` - Team leadership
|
|
71
|
+
- `locus:architect-reviewer` - Architecture review
|
|
72
|
+
|
|
73
|
+
### Developer Specializations (04-developer-specializations/)
|
|
74
|
+
Domain expertise in:
|
|
75
|
+
- **Core**: frontend, backend, fullstack, mobile, api-designer
|
|
76
|
+
- **Design**: ui-ux-designer
|
|
77
|
+
- **Languages**: typescript, python, rust, golang, java
|
|
78
|
+
- **Infrastructure**: devops, cloud, kubernetes, platform, security, sre, database-architect
|
|
79
|
+
- **Data & AI**: data-engineer, data-scientist, ml-engineer, llm-architect
|
|
80
|
+
- **Quality**: qa, performance, security-auditor, accessibility, test-automation-engineer
|
|
81
|
+
|
|
82
|
+
### Specialists (05-specialists/)
|
|
83
|
+
Specialized domain expertise:
|
|
84
|
+
- `locus:compliance-specialist` - Regulatory compliance
|
|
85
|
+
- `locus:technical-writer` - Documentation and technical writing
|
|
86
|
+
|
|
87
|
+
## Skill Priority
|
|
88
|
+
|
|
89
|
+
When multiple skills could apply, use this order:
|
|
90
|
+
|
|
91
|
+
1. **Process skills first** (planning, debugging) - these determine HOW to approach the task
|
|
92
|
+
2. **Role skills second** (product-manager, tech-lead) - these provide domain perspective
|
|
93
|
+
3. **Implementation skills third** (frontend-developer, devops-engineer) - these guide execution
|
|
94
|
+
|
|
95
|
+
## User Instructions
|
|
96
|
+
|
|
97
|
+
Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.
|
|
98
|
+
|
|
99
|
+
## Project Planning with Locus
|
|
100
|
+
|
|
101
|
+
For project planning specifically, Locus guides you through 4 steps:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
Step 1: Vision -> What are we building and why?
|
|
105
|
+
Step 2: Features -> What will it do?
|
|
106
|
+
Step 3: Design -> How will it work?
|
|
107
|
+
Step 4: Build -> Let's make it
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Use `/locus` to start a planning session, or say "I want to build..."
|
|
111
|
+
|
|
112
|
+
## Commands
|
|
113
|
+
|
|
114
|
+
| Command | Description |
|
|
115
|
+
|---------|-------------|
|
|
116
|
+
| `/locus` | Start or resume a project |
|
|
117
|
+
| `/locus-status` | Show current project progress |
|
|
118
|
+
| `/locus-list` | List all projects |
|
|
119
|
+
|
|
120
|
+
## Tools
|
|
121
|
+
|
|
122
|
+
| Tool | Description |
|
|
123
|
+
|------|-------------|
|
|
124
|
+
| `use_skill` | Load a specific skill |
|
|
125
|
+
| `find_skills` | List all available skills |
|
|
126
|
+
| `find_agents` | List all available agents |
|