@_brenosiqueira/claude-skills 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -0
- package/package.json +28 -0
- package/skills/github-sprint/SKILL.md +88 -0
- package/skills/github-sprint/references/github-action.md +194 -0
- package/skills/github-sprint/references/issue-templates.md +125 -0
- package/skills/github-sprint/references/yaml-schema.md +146 -0
- package/skills/project-docs/SKILL.md +120 -0
- package/skills/project-docs/references/architecture.md +119 -0
- package/skills/project-docs/references/other-docs.md +295 -0
- package/skills/project-docs/references/project.md +102 -0
- package/src/cli.js +55 -0
- package/src/commands/add.js +1 -0
- package/src/commands/init.js +56 -0
- package/src/commands/list.js +93 -0
- package/src/commands/show.js +1 -0
- package/src/utils.js +32 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-docs
|
|
3
|
+
description: >
|
|
4
|
+
Generates and maintains standardized documentation for software projects.
|
|
5
|
+
Use this skill whenever the user wants to create, update or improve project
|
|
6
|
+
documentation — including project vision, architecture decisions, sprint plans,
|
|
7
|
+
API contracts, README, or onboarding guides. Triggers on phrases like "create
|
|
8
|
+
documentation", "write the README", "document the architecture", "create a
|
|
9
|
+
project doc", "document this project", "what docs are missing", "generate
|
|
10
|
+
onboarding guide", or any request to produce structured written documentation
|
|
11
|
+
for a software project. Always use this skill when the conversation has enough
|
|
12
|
+
project context to produce a meaningful document — even if the user doesn't
|
|
13
|
+
say "documentation" explicitly.
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Project Docs Skill
|
|
17
|
+
|
|
18
|
+
Generates standardized, consistent documentation for software projects.
|
|
19
|
+
Asks for format (Markdown or Word), produces the first document, then
|
|
20
|
+
proactively suggests what to create next based on what's missing.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Document catalog
|
|
25
|
+
|
|
26
|
+
| ID | File | Purpose |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| `project` | `PROJETO.md` | Product vision, roadmap, business model |
|
|
29
|
+
| `architecture` | `ARQUITETURA.md` | Stack, ADRs, system diagrams, repos |
|
|
30
|
+
| `sprints` | `SPRINTS.md` | Sprint history and planning |
|
|
31
|
+
| `readme` | `README.md` | Overview, how to run, how to contribute |
|
|
32
|
+
| `api` | `API.md` | Endpoint contracts, request/response examples |
|
|
33
|
+
| `onboarding` | `ONBOARDING.md` | Guide for new developers joining the project |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Workflow
|
|
38
|
+
|
|
39
|
+
### Step 1 — Understand context
|
|
40
|
+
|
|
41
|
+
Extract from the conversation what is already known about the project:
|
|
42
|
+
- Project name, type, purpose
|
|
43
|
+
- Stack and architecture decisions
|
|
44
|
+
- Team size and stage (MVP, growth, etc.)
|
|
45
|
+
- What has already been built or decided
|
|
46
|
+
|
|
47
|
+
Do NOT ask for information that can be inferred from the conversation.
|
|
48
|
+
If key information is missing for the requested document, ask one focused
|
|
49
|
+
question — not a list.
|
|
50
|
+
|
|
51
|
+
### Step 2 — Ask for format
|
|
52
|
+
|
|
53
|
+
Ask the user which format they want:
|
|
54
|
+
|
|
55
|
+
> "Prefere **Markdown** (`.md`, ideal para manter no repositório junto com o código)
|
|
56
|
+
> ou **Word** (`.docx`, ideal para compartilhar com stakeholders não-técnicos)?"
|
|
57
|
+
|
|
58
|
+
- If Markdown: generate `.md` file, save to `/mnt/user-data/outputs/`
|
|
59
|
+
- If Word: read the `docx` skill at `/mnt/skills/public/docx/SKILL.md` before generating
|
|
60
|
+
|
|
61
|
+
### Step 3 — Generate the document
|
|
62
|
+
|
|
63
|
+
Read the reference template for the requested document type:
|
|
64
|
+
- `references/project.md` → for PROJETO.md
|
|
65
|
+
- `references/architecture.md` → for ARQUITETURA.md
|
|
66
|
+
- `references/sprints.md` → for SPRINTS.md
|
|
67
|
+
- `references/readme.md` → for README.md
|
|
68
|
+
- `references/api.md` → for API.md
|
|
69
|
+
- `references/onboarding.md` → for ONBOARDING.md
|
|
70
|
+
|
|
71
|
+
Follow the template structure exactly. Populate with real project information
|
|
72
|
+
from the conversation. Never leave placeholder text like "[INSERT HERE]" in
|
|
73
|
+
the output — if information is missing, write a sensible default or omit the
|
|
74
|
+
section with a comment explaining what should go there.
|
|
75
|
+
|
|
76
|
+
### Step 4 — Present and suggest next
|
|
77
|
+
|
|
78
|
+
After presenting the file, show the user what docs exist and what's missing:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
✅ PROJETO.md — gerado agora
|
|
82
|
+
✅ ARQUITETURA.md — gerado anteriormente (se aplicável)
|
|
83
|
+
⬜ README.md — visão geral e como rodar o projeto
|
|
84
|
+
⬜ API.md — contratos dos endpoints
|
|
85
|
+
⬜ ONBOARDING.md — guia para novos devs
|
|
86
|
+
⬜ SPRINTS.md — histórico de sprints
|
|
87
|
+
|
|
88
|
+
Quer que eu gere o README.md agora?
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Only suggest documents that make sense for the project stage. A solo MVP
|
|
92
|
+
project in week 1 doesn't need ONBOARDING.md yet — suggest it later.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Quality rules (apply to every document)
|
|
97
|
+
|
|
98
|
+
- **No placeholder text.** Every section has real content or is omitted.
|
|
99
|
+
- **No filler.** Every sentence earns its place. Cut generic advice.
|
|
100
|
+
- **Consistent tone.** Technical but direct. No corporate language.
|
|
101
|
+
- **ADRs always have:** decision, alternatives considered, reason for choice.
|
|
102
|
+
- **API contracts always have:** method, path, headers, body, all response codes.
|
|
103
|
+
- **Onboarding always ends with:** "first task" — something concrete the new dev can do.
|
|
104
|
+
- **README always has:** one-command setup that actually works.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Updating existing documents
|
|
109
|
+
|
|
110
|
+
When the user asks to update a doc (e.g. "update the architecture doc with
|
|
111
|
+
this new decision"):
|
|
112
|
+
|
|
113
|
+
1. Ask for the existing file if not already in context
|
|
114
|
+
2. Identify what changed
|
|
115
|
+
3. Make targeted updates — do not rewrite sections that haven't changed
|
|
116
|
+
4. Add a changelog entry at the top of the file if the change is significant:
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
> **Atualizado em [data]:** [o que mudou em uma linha]
|
|
120
|
+
```
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Template — ARQUITETURA.md
|
|
2
|
+
|
|
3
|
+
## Structure
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Arquitetura Técnica — [Nome do Projeto]
|
|
7
|
+
|
|
8
|
+
> Documento de alto nível com decisões de arquitetura, estrutura de
|
|
9
|
+
> repositórios e contratos entre sistemas.
|
|
10
|
+
> Para detalhes de implementação, consultar o README de cada serviço/app.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Sumário
|
|
15
|
+
[numbered list with anchor links]
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 1. Visão Geral do Sistema
|
|
20
|
+
[ASCII diagram showing all components and their connections]
|
|
21
|
+
[Brief explanation of each component]
|
|
22
|
+
|
|
23
|
+
### Fluxo principal
|
|
24
|
+
[Step-by-step of the most important user journey through the system]
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. Repositórios / Estrutura de Código
|
|
29
|
+
[repo structure with explanation of each folder/app]
|
|
30
|
+
[monorepo OR multi-repo decision explained]
|
|
31
|
+
|
|
32
|
+
### Convenções comuns
|
|
33
|
+
[language, lint, env vars, commit format, branch strategy]
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 3. [Shared Package / Core Library]
|
|
38
|
+
[if applicable: what goes here, what doesn't, import path]
|
|
39
|
+
[code example of key shared types]
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 4. [Service/App 1]
|
|
44
|
+
[path, runtime, framework, key libraries]
|
|
45
|
+
[folder structure]
|
|
46
|
+
[main endpoint groups or responsibilities]
|
|
47
|
+
[key algorithms or business logic]
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 5. [Service/App 2]
|
|
52
|
+
[same structure]
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
[repeat for each app/service]
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## [N-2]. Comunicação em Tempo Real
|
|
61
|
+
[technology choice and why]
|
|
62
|
+
[rooms/channels structure]
|
|
63
|
+
[event catalog: event name | direction | payload]
|
|
64
|
+
[fallback strategy]
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## [N-1]. Integrações Externas
|
|
69
|
+
[table: service | purpose | SDK/lib | notes]
|
|
70
|
+
[auth strategy for each]
|
|
71
|
+
[webhook security approach]
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## [N]. Banco de Dados
|
|
76
|
+
[SGBD, ORM/query strategy]
|
|
77
|
+
[schema of main tables]
|
|
78
|
+
[key indexes]
|
|
79
|
+
[any special extensions (PostGIS, etc.)]
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## [N+1]. Infraestrutura e Deploy
|
|
84
|
+
[environments: local, staging, production]
|
|
85
|
+
[production stack with justification]
|
|
86
|
+
[environment variables list]
|
|
87
|
+
[CI/CD approach]
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## [N+2]. Decisões de Arquitetura (ADRs)
|
|
92
|
+
|
|
93
|
+
### ADR-001: [Title]
|
|
94
|
+
**Decisão:** [what was decided]
|
|
95
|
+
**Motivo:** [why — specific to this project, not generic]
|
|
96
|
+
**Alternativas consideradas:** [what else was evaluated and why rejected]
|
|
97
|
+
|
|
98
|
+
[repeat for each ADR]
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## [N+3]. Estratégia de Crescimento do Time
|
|
103
|
+
[how the architecture evolves as team grows]
|
|
104
|
+
[what stays the same, what changes at each stage]
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
*[footer]*
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Rules specific to ARQUITETURA.md
|
|
111
|
+
|
|
112
|
+
- Every ADR must have: decision, reason, AND alternatives considered
|
|
113
|
+
- Alternatives must explain WHY they were rejected — not just listed
|
|
114
|
+
- ASCII diagrams must be accurate — don't draw connections that don't exist
|
|
115
|
+
- Environment variables section must be complete — the list should be enough
|
|
116
|
+
to write a real `.env` file
|
|
117
|
+
- No ADR without a "why" that is specific to this project's context
|
|
118
|
+
- When a decision was reversed or updated, add a note to the original ADR
|
|
119
|
+
rather than deleting it — the history of thinking is valuable
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# Template — README.md
|
|
2
|
+
|
|
3
|
+
## Structure
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# [Project Name]
|
|
7
|
+
|
|
8
|
+
> [One sentence: what this is and what problem it solves]
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## O que é
|
|
13
|
+
[2-3 sentences expanding on the tagline. What it does, who it's for.]
|
|
14
|
+
|
|
15
|
+
## Stack
|
|
16
|
+
[list of main technologies — keep it short, link to ARQUITETURA.md for details]
|
|
17
|
+
|
|
18
|
+
## Pré-requisitos
|
|
19
|
+
[exact versions required: Node 20+, Docker, etc.]
|
|
20
|
+
|
|
21
|
+
## Como rodar localmente
|
|
22
|
+
|
|
23
|
+
\`\`\`bash
|
|
24
|
+
# 1. Clone
|
|
25
|
+
git clone [url]
|
|
26
|
+
cd [project]
|
|
27
|
+
|
|
28
|
+
# 2. Instalar dependências
|
|
29
|
+
[exact command]
|
|
30
|
+
|
|
31
|
+
# 3. Configurar variáveis de ambiente
|
|
32
|
+
cp .env.example .env
|
|
33
|
+
# Editar .env com suas credenciais
|
|
34
|
+
|
|
35
|
+
# 4. Subir serviços (banco, redis, etc.)
|
|
36
|
+
[exact command]
|
|
37
|
+
|
|
38
|
+
# 5. Rodar migrations
|
|
39
|
+
[exact command]
|
|
40
|
+
|
|
41
|
+
# 6. Iniciar
|
|
42
|
+
[exact command]
|
|
43
|
+
\`\`\`
|
|
44
|
+
|
|
45
|
+
> Abrir [URL] no browser / ou rodar o app com `npx expo start`
|
|
46
|
+
|
|
47
|
+
## Estrutura do repositório
|
|
48
|
+
[tree of top-level folders with one-line description each]
|
|
49
|
+
|
|
50
|
+
## Documentação
|
|
51
|
+
| Documento | Descrição |
|
|
52
|
+
|---|---|
|
|
53
|
+
| [PROJETO.md](./PROJETO.md) | Visão de produto e roadmap |
|
|
54
|
+
| [ARQUITETURA.md](./ARQUITETURA.md) | Decisões técnicas e stack |
|
|
55
|
+
| [API.md](./API.md) | Contratos dos endpoints |
|
|
56
|
+
| [ONBOARDING.md](./ONBOARDING.md) | Guia para novos devs |
|
|
57
|
+
|
|
58
|
+
## Como contribuir
|
|
59
|
+
[branch naming, PR process, commit format]
|
|
60
|
+
|
|
61
|
+
## Licença
|
|
62
|
+
[license type]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Rules specific to README.md
|
|
66
|
+
|
|
67
|
+
- "Como rodar localmente" must work — test every command mentally
|
|
68
|
+
- No step can be "configure X" without saying exactly how
|
|
69
|
+
- Keep it short — link to other docs for detail
|
|
70
|
+
- First heading after title must be visible without scrolling
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
# Template — API.md
|
|
75
|
+
|
|
76
|
+
## Structure
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
# API Reference — [Project Name]
|
|
80
|
+
|
|
81
|
+
> Base URL: `https://api.[domain].com.br`
|
|
82
|
+
> Auth: Bearer JWT em todas as rotas (exceto `/auth/*`)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Autenticação
|
|
87
|
+
|
|
88
|
+
[explain JWT flow briefly, link to auth endpoints]
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## [Module 1 — e.g. Auth]
|
|
93
|
+
|
|
94
|
+
### POST /auth/send-otp
|
|
95
|
+
[description: one sentence]
|
|
96
|
+
|
|
97
|
+
**Request**
|
|
98
|
+
\`\`\`json
|
|
99
|
+
{
|
|
100
|
+
"phone": "+5511999999999"
|
|
101
|
+
}
|
|
102
|
+
\`\`\`
|
|
103
|
+
|
|
104
|
+
**Responses**
|
|
105
|
+
|
|
106
|
+
| Status | Descrição | Body |
|
|
107
|
+
|---|---|---|
|
|
108
|
+
| 200 | Código enviado | `{ "message": "Código enviado" }` |
|
|
109
|
+
| 400 | Telefone inválido | `{ "error": "Formato inválido" }` |
|
|
110
|
+
| 429 | Rate limit | `{ "error": "Muitas tentativas" }` |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
[repeat for each endpoint, grouped by module]
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Erros comuns
|
|
119
|
+
|
|
120
|
+
| Código | Significado | O que fazer |
|
|
121
|
+
|---|---|---|
|
|
122
|
+
| 401 | Token inválido ou expirado | Renovar via /auth/refresh |
|
|
123
|
+
| 403 | Sem permissão | Verificar role do usuário |
|
|
124
|
+
| 422 | Dados inválidos | Ver campo `error` na resposta |
|
|
125
|
+
| 429 | Rate limit atingido | Aguardar e tentar novamente |
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Rules specific to API.md
|
|
129
|
+
|
|
130
|
+
- Every endpoint must show ALL possible response status codes
|
|
131
|
+
- Request body must show exact field names and types
|
|
132
|
+
- Authentication requirement must be explicit for each endpoint
|
|
133
|
+
- Group endpoints by domain/module, not alphabetically
|
|
134
|
+
- Include at least one curl example per module
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
# Template — ONBOARDING.md
|
|
139
|
+
|
|
140
|
+
## Structure
|
|
141
|
+
|
|
142
|
+
```markdown
|
|
143
|
+
# Onboarding — [Project Name]
|
|
144
|
+
|
|
145
|
+
> Guia para novos desenvolvedores. Tempo estimado para estar rodando: **[X horas]**.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## O que é esse projeto
|
|
150
|
+
[2-3 sentences — assume zero context]
|
|
151
|
+
|
|
152
|
+
## Arquitetura em 5 minutos
|
|
153
|
+
[high-level overview: what are the apps, how do they connect]
|
|
154
|
+
[link to ARQUITETURA.md for depth]
|
|
155
|
+
|
|
156
|
+
## Setup do ambiente
|
|
157
|
+
[link to README.md — don't duplicate the setup steps]
|
|
158
|
+
|
|
159
|
+
## Estrutura do código
|
|
160
|
+
|
|
161
|
+
### Como o código está organizado
|
|
162
|
+
[explain the main patterns: modules, services, stores, etc.]
|
|
163
|
+
|
|
164
|
+
### Onde encontrar o quê
|
|
165
|
+
| O que você precisa | Onde está |
|
|
166
|
+
|---|---|
|
|
167
|
+
| Lógica de corridas | `apps/api/src/modules/rides/` |
|
|
168
|
+
| Telas do passageiro | `apps/passenger/app/` |
|
|
169
|
+
| Tipos compartilhados | `packages/shared/` |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Fluxo principal (passo a passo no código)
|
|
174
|
+
[walk through the most important feature end-to-end, with file paths]
|
|
175
|
+
[e.g.: "Uma corrida começa em RideController.ts linha 42, passa por..."]
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Padrões do projeto
|
|
180
|
+
|
|
181
|
+
### Git
|
|
182
|
+
[branch naming, commit format, PR process]
|
|
183
|
+
|
|
184
|
+
### TypeScript
|
|
185
|
+
[key conventions used in this codebase]
|
|
186
|
+
|
|
187
|
+
### Testes
|
|
188
|
+
[how to run, where they live, what's expected to be tested]
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Decisões que podem surpreender
|
|
193
|
+
[list of non-obvious decisions with brief explanation]
|
|
194
|
+
[e.g.: "Usamos $queryRaw para queries de localização porque PostGIS..."]
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Primeira tarefa
|
|
199
|
+
[a concrete, small, self-contained task the new dev can do on day 1]
|
|
200
|
+
[e.g.: "Adicione o campo `photoUrl` ao endpoint GET /users/me"]
|
|
201
|
+
[link to a real GitHub issue if possible]
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Dúvidas frequentes
|
|
206
|
+
[Q&A format for questions that come up repeatedly]
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Rules specific to ONBOARDING.md
|
|
210
|
+
|
|
211
|
+
- "Primeira tarefa" is mandatory — onboarding without a concrete task is incomplete
|
|
212
|
+
- "Decisões que podem surpreender" prevents the same questions every time
|
|
213
|
+
- Setup steps must link to README, never duplicate them
|
|
214
|
+
- Time estimate at the top must be honest — don't say 30 min if it takes 3 hours
|
|
215
|
+
- Fluxo principal must include actual file paths, not just module names
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
# Template — SPRINTS.md
|
|
220
|
+
|
|
221
|
+
## Structure
|
|
222
|
+
|
|
223
|
+
```markdown
|
|
224
|
+
# Planejamento de Sprints — [Project Name]
|
|
225
|
+
|
|
226
|
+
> Histórico e planejamento de sprints. Issues detalhadas no GitHub Milestones.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Status atual
|
|
231
|
+
**Sprint em andamento:** Sprint [N] — [Nome]
|
|
232
|
+
**Período:** [data início] → [data fim]
|
|
233
|
+
**Progresso:** [X/Y issues concluídas]
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Sprint [N] — [Nome] (atual)
|
|
238
|
+
|
|
239
|
+
**Objetivo:** [one sentence — what "done" looks like for this sprint]
|
|
240
|
+
**Período:** [datas]
|
|
241
|
+
|
|
242
|
+
### Por app
|
|
243
|
+
| App | Issues | Concluídas |
|
|
244
|
+
|---|---|---|
|
|
245
|
+
| api | [N] | [N] |
|
|
246
|
+
| passenger | [N] | [N] |
|
|
247
|
+
| driver | [N] | [N] |
|
|
248
|
+
| admin | [N] | [N] |
|
|
249
|
+
|
|
250
|
+
### Destaques
|
|
251
|
+
[bullet list of most important deliverables]
|
|
252
|
+
|
|
253
|
+
### Impedimentos
|
|
254
|
+
[anything blocking progress — honest assessment]
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Sprint [N-1] — [Nome] (concluído)
|
|
259
|
+
|
|
260
|
+
**Objetivo:** [what was planned]
|
|
261
|
+
**Resultado:** [what actually shipped — be honest about gaps]
|
|
262
|
+
**Retrospectiva:**
|
|
263
|
+
- O que funcionou bem: [...]
|
|
264
|
+
- O que melhorar: [...]
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
[repeat for previous sprints, newest first]
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Backlog (próximos sprints)
|
|
273
|
+
|
|
274
|
+
### Sprint [N+1] — [Nome previsto]
|
|
275
|
+
[bullet list of planned items — not detailed yet]
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Definição de "Pronto"
|
|
280
|
+
[checklist that every issue must pass before being marked done]
|
|
281
|
+
- [ ] Código revisado (se time > 1 dev)
|
|
282
|
+
- [ ] Testes passando
|
|
283
|
+
- [ ] Sem erros de TypeScript
|
|
284
|
+
- [ ] Testado em staging
|
|
285
|
+
- [ ] Documentação atualizada se necessário
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## Rules specific to SPRINTS.md
|
|
289
|
+
|
|
290
|
+
- Retrospectiva section is mandatory for completed sprints — no sprint is
|
|
291
|
+
"completed" without honest reflection
|
|
292
|
+
- "Resultado" must distinguish what was planned vs what shipped
|
|
293
|
+
- Impedimentos must be honest — this is a working document, not a report
|
|
294
|
+
- Definition of Done must match the actual team process
|
|
295
|
+
- Link to GitHub Milestone for each sprint
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Template — PROJETO.md
|
|
2
|
+
|
|
3
|
+
## Structure
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Plano de Projeto — [Nome do Projeto]
|
|
7
|
+
|
|
8
|
+
> **Status:** [fase atual]
|
|
9
|
+
> **Versão:** [número]
|
|
10
|
+
> **Modelo:** [tipo de negócio, ex: Marketplace B2C]
|
|
11
|
+
> **Contexto:** [uma frase descrevendo o contexto único do projeto]
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Sumário
|
|
16
|
+
[numbered list of all sections with anchor links]
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 1. Sumário Executivo
|
|
21
|
+
[2-3 paragraphs: what the product is, who it's for, what problem it solves]
|
|
22
|
+
|
|
23
|
+
[info table with: tipo de produto, modelo de receita, fase atual, perfil do time,
|
|
24
|
+
mercado-alvo, prazo estimado para MVP]
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. Problema & Oportunidade
|
|
29
|
+
|
|
30
|
+
### 2.1 Problema a resolver
|
|
31
|
+
[bulleted list of real pains — not generic market observations]
|
|
32
|
+
|
|
33
|
+
### 2.2 Validação necessária
|
|
34
|
+
[alert box: what needs to be validated before building]
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 3. Proposta de Valor
|
|
39
|
+
|
|
40
|
+
### 3.1 Para [primary user]
|
|
41
|
+
[bulleted list of concrete benefits]
|
|
42
|
+
|
|
43
|
+
### 3.2 Para [secondary user, if marketplace]
|
|
44
|
+
[bulleted list of concrete benefits]
|
|
45
|
+
|
|
46
|
+
### Diferencial
|
|
47
|
+
[what makes this product different — specific, not generic]
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 4. Visão Geral do Produto
|
|
52
|
+
|
|
53
|
+
### 4.1 Componentes do sistema
|
|
54
|
+
[table: component | description]
|
|
55
|
+
|
|
56
|
+
### 4.2 Funcionalidades do MVP
|
|
57
|
+
[grouped by user type — only what's needed for first working version]
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 5. Roadmap — [N] Fases
|
|
62
|
+
[one section per phase with: name, duration, goals, key deliverables]
|
|
63
|
+
[highlight which phase is current]
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 6. Modelo de Negócio
|
|
68
|
+
|
|
69
|
+
### Fontes de receita
|
|
70
|
+
[table: fonte | descrição | timing]
|
|
71
|
+
|
|
72
|
+
### Estrutura de custos
|
|
73
|
+
[bulleted list of main cost drivers]
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 7. Regulamentação & Compliance
|
|
78
|
+
[only if relevant — legal requirements, certifications, data privacy]
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 8. Principais Riscos
|
|
83
|
+
[table: risco | probabilidade | mitigação]
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 9. Próximos Passos
|
|
88
|
+
[numbered checklist — concrete actions, not vague goals]
|
|
89
|
+
[each item starts with [ ] for checkbox format]
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
*[footer: how document is maintained]*
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Rules specific to PROJETO.md
|
|
96
|
+
|
|
97
|
+
- Roadmap phases should have realistic durations — don't compress timelines
|
|
98
|
+
- Risks table must have mitigation for every risk, not just identification
|
|
99
|
+
- Próximos Passos must be actionable in the next 2 weeks
|
|
100
|
+
- Business model must include a note on benchmark (what competitors charge)
|
|
101
|
+
- Never include features in the MVP section that aren't strictly necessary
|
|
102
|
+
for the core workflow to function end-to-end
|
package/src/cli.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { program } from 'commander';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { readFileSync } from 'fs';
|
|
6
|
+
import { fileURLToPath } from 'url';
|
|
7
|
+
import { dirname, join } from 'path';
|
|
8
|
+
import { initCommand } from './commands/init.js';
|
|
9
|
+
import { listCommand } from './commands/list.js';
|
|
10
|
+
import { addCommand } from './commands/add.js';
|
|
11
|
+
import { showCommand } from './commands/show.js';
|
|
12
|
+
|
|
13
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, '../package.json'), 'utf8'));
|
|
15
|
+
|
|
16
|
+
program
|
|
17
|
+
.name('claude-skills')
|
|
18
|
+
.description('Manage Claude AI skills for your projects')
|
|
19
|
+
.version(pkg.version);
|
|
20
|
+
|
|
21
|
+
program
|
|
22
|
+
.command('init')
|
|
23
|
+
.description('Initialize skills in the current project (.claude/skills/)')
|
|
24
|
+
.option('-s, --skill <name>', 'Initialize a specific skill only')
|
|
25
|
+
.action(initCommand);
|
|
26
|
+
|
|
27
|
+
program
|
|
28
|
+
.command('list')
|
|
29
|
+
.description('List all available skills')
|
|
30
|
+
.action(listCommand);
|
|
31
|
+
|
|
32
|
+
program
|
|
33
|
+
.command('add <skill>')
|
|
34
|
+
.description('Add a specific skill to the current project')
|
|
35
|
+
.action(addCommand);
|
|
36
|
+
|
|
37
|
+
program
|
|
38
|
+
.command('show <skill>')
|
|
39
|
+
.description('Print a skill\'s SKILL.md to stdout')
|
|
40
|
+
.action(showCommand);
|
|
41
|
+
|
|
42
|
+
program.addHelpText('after', `
|
|
43
|
+
${chalk.bold('Examples:')}
|
|
44
|
+
${chalk.cyan('claude-skills init')} Copy all skills to .claude/skills/
|
|
45
|
+
${chalk.cyan('claude-skills init -s project-docs')} Copy only project-docs skill
|
|
46
|
+
${chalk.cyan('claude-skills list')} Show available skills
|
|
47
|
+
${chalk.cyan('claude-skills add github-sprint')} Add a specific skill
|
|
48
|
+
${chalk.cyan('claude-skills show project-docs')} Print SKILL.md to stdout
|
|
49
|
+
|
|
50
|
+
${chalk.bold('Usage with Claude:')}
|
|
51
|
+
After running ${chalk.cyan('init')}, upload the files from ${chalk.cyan('.claude/skills/')}
|
|
52
|
+
in your Claude conversation, or reference them by path.
|
|
53
|
+
`);
|
|
54
|
+
|
|
55
|
+
program.parse();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { addCommand } from './list.js';
|