swe-workflow-skills 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/LICENSE +21 -0
- package/README.md +144 -0
- package/VERSION +1 -0
- package/bin/cli.mjs +44 -0
- package/catalog.json +225 -0
- package/commands/role.md +34 -0
- package/hooks/session-start.mjs +118 -0
- package/install.mjs +318 -0
- package/package.json +47 -0
- package/roles.json +194 -0
- package/scripts/resolve.mjs +296 -0
- package/skills/accessibility-design/SKILL.md +128 -0
- package/skills/accessibility-design/evals/evals.json +51 -0
- package/skills/accessibility-design/references/accessibility-patterns.md +321 -0
- package/skills/api-design/SKILL.md +144 -0
- package/skills/api-design/evals/evals.json +48 -0
- package/skills/api-design/references/rest-conventions.md +147 -0
- package/skills/api-design/templates/api-spec.md +156 -0
- package/skills/architecture-design/SKILL.md +86 -0
- package/skills/architecture-design/evals/evals.json +44 -0
- package/skills/architecture-design/references/clean-architecture.md +147 -0
- package/skills/architecture-design/references/component-principles.md +129 -0
- package/skills/architecture-design/references/principles.md +81 -0
- package/skills/architecture-design/references/solid-principles.md +106 -0
- package/skills/architecture-design/templates/adr.md +63 -0
- package/skills/architecture-documentation/SKILL.md +126 -0
- package/skills/architecture-documentation/evals/evals.json +44 -0
- package/skills/architecture-documentation/references/abstraction-levels.md +91 -0
- package/skills/architecture-documentation/references/diagram-tooling.md +141 -0
- package/skills/architecture-documentation/templates/architecture-doc.md +171 -0
- package/skills/bug-investigating/SKILL.md +133 -0
- package/skills/bug-investigating/evals/evals.json +56 -0
- package/skills/bug-investigating/references/common-bugs.md +62 -0
- package/skills/bug-investigating/references/debugging-patterns.md +94 -0
- package/skills/cicd-pipeline/SKILL.md +87 -0
- package/skills/cicd-pipeline/evals/evals.json +34 -0
- package/skills/cicd-pipeline/references/pipeline-patterns.md +206 -0
- package/skills/cicd-pipeline/templates/github-actions.md +206 -0
- package/skills/code-reviewing/SKILL.md +92 -0
- package/skills/code-reviewing/evals/evals.json +62 -0
- package/skills/code-reviewing/references/error-handling.md +108 -0
- package/skills/code-reviewing/references/review-checklist.md +144 -0
- package/skills/configuration-strategy/SKILL.md +109 -0
- package/skills/configuration-strategy/evals/evals.json +41 -0
- package/skills/configuration-strategy/references/config-patterns.md +161 -0
- package/skills/containerization/SKILL.md +90 -0
- package/skills/containerization/evals/evals.json +36 -0
- package/skills/containerization/references/dockerfile-patterns.md +168 -0
- package/skills/containerization/templates/dockerfile.md +154 -0
- package/skills/data-modeling/SKILL.md +83 -0
- package/skills/data-modeling/evals/evals.json +43 -0
- package/skills/data-modeling/references/conventions.md +57 -0
- package/skills/data-modeling/templates/schema.md +120 -0
- package/skills/dependency-impact-analysis/SKILL.md +113 -0
- package/skills/dependency-impact-analysis/evals/evals.json +41 -0
- package/skills/dependency-impact-analysis/references/impact-patterns.md +150 -0
- package/skills/dependency-management/SKILL.md +161 -0
- package/skills/dependency-management/evals/evals.json +48 -0
- package/skills/dependency-management/references/evaluation-checklist.md +127 -0
- package/skills/deployment-checklist/SKILL.md +132 -0
- package/skills/deployment-checklist/evals/evals.json +58 -0
- package/skills/deployment-checklist/references/pre-deploy-gates.md +91 -0
- package/skills/deployment-repo/SKILL.md +190 -0
- package/skills/deployment-repo/evals/evals.json +44 -0
- package/skills/deployment-repo/references/deployment-repo-patterns.md +258 -0
- package/skills/deployment-repo/references/version-compatibility.md +227 -0
- package/skills/deployment-repo/templates/deployment-repo-structure.md +226 -0
- package/skills/effort-estimation/SKILL.md +95 -0
- package/skills/effort-estimation/evals/evals.json +32 -0
- package/skills/effort-estimation/references/estimation-methods.md +154 -0
- package/skills/feature-planning/SKILL.md +84 -0
- package/skills/feature-planning/evals/evals.json +44 -0
- package/skills/feature-planning/templates/plan.md +55 -0
- package/skills/feature-planning/templates/task.md +26 -0
- package/skills/frontend-architecture/SKILL.md +154 -0
- package/skills/frontend-architecture/evals/evals.json +34 -0
- package/skills/frontend-architecture/references/component-patterns.md +264 -0
- package/skills/frontend-architecture/templates/folder-structure.md +203 -0
- package/skills/git-workflow/SKILL.md +127 -0
- package/skills/git-workflow/evals/evals.json +44 -0
- package/skills/git-workflow/references/conventions.md +142 -0
- package/skills/git-workflow/templates/pull-request.md +57 -0
- package/skills/gitops-delivery/SKILL.md +319 -0
- package/skills/gitops-delivery/evals/evals.json +44 -0
- package/skills/gitops-delivery/references/gitops-patterns.md +478 -0
- package/skills/gitops-delivery/templates/gitops-config.md +196 -0
- package/skills/incident-response/SKILL.md +130 -0
- package/skills/incident-response/evals/evals.json +55 -0
- package/skills/incident-response/references/communication-templates.md +134 -0
- package/skills/incident-response/references/severity-levels.md +77 -0
- package/skills/incident-response/templates/incident-timeline.md +57 -0
- package/skills/infrastructure-as-code/SKILL.md +86 -0
- package/skills/infrastructure-as-code/evals/evals.json +33 -0
- package/skills/infrastructure-as-code/references/iac-patterns.md +179 -0
- package/skills/infrastructure-as-code/templates/terraform-module.md +158 -0
- package/skills/metrics-and-okrs/SKILL.md +113 -0
- package/skills/metrics-and-okrs/evals/evals.json +33 -0
- package/skills/metrics-and-okrs/references/metric-catalog.md +90 -0
- package/skills/metrics-and-okrs/templates/okr-document.md +61 -0
- package/skills/ml-experiment-tracking/SKILL.md +96 -0
- package/skills/ml-experiment-tracking/evals/evals.json +32 -0
- package/skills/ml-experiment-tracking/references/tracking-tools.md +127 -0
- package/skills/ml-model-deployment/SKILL.md +106 -0
- package/skills/ml-model-deployment/evals/evals.json +34 -0
- package/skills/ml-model-deployment/references/serving-patterns.md +162 -0
- package/skills/ml-pipeline-design/SKILL.md +162 -0
- package/skills/ml-pipeline-design/evals/evals.json +34 -0
- package/skills/ml-pipeline-design/references/pipeline-components.md +174 -0
- package/skills/observability-design/SKILL.md +162 -0
- package/skills/observability-design/evals/evals.json +52 -0
- package/skills/observability-design/references/logging-patterns.md +229 -0
- package/skills/observability-design/references/slo-framework.md +151 -0
- package/skills/observability-design/templates/slo-document.md +80 -0
- package/skills/performance-optimization/SKILL.md +83 -0
- package/skills/performance-optimization/evals/evals.json +47 -0
- package/skills/performance-optimization/references/bottleneck-patterns.md +256 -0
- package/skills/performance-optimization/references/concurrency.md +101 -0
- package/skills/prd-writing/SKILL.md +109 -0
- package/skills/prd-writing/evals/evals.json +33 -0
- package/skills/prd-writing/references/prd-examples.md +132 -0
- package/skills/prd-writing/templates/prd.md +71 -0
- package/skills/prd-writing/templates/rfc.md +79 -0
- package/skills/project-documentation/SKILL.md +104 -0
- package/skills/project-documentation/evals/evals.json +48 -0
- package/skills/project-documentation/references/contributing-guide.md +100 -0
- package/skills/project-documentation/templates/changelog.md +59 -0
- package/skills/project-documentation/templates/readme.md +121 -0
- package/skills/project-proposal/SKILL.md +90 -0
- package/skills/project-proposal/evals/evals.json +31 -0
- package/skills/project-proposal/references/proposal-examples.md +140 -0
- package/skills/project-proposal/templates/proposal.md +76 -0
- package/skills/project-review/SKILL.md +111 -0
- package/skills/project-review/evals/evals.json +42 -0
- package/skills/refactoring/SKILL.md +90 -0
- package/skills/refactoring/evals/evals.json +44 -0
- package/skills/refactoring/references/transformations.md +132 -0
- package/skills/retrospective/SKILL.md +157 -0
- package/skills/retrospective/evals/evals.json +34 -0
- package/skills/retrospective/references/facilitation-guide.md +130 -0
- package/skills/retrospective/templates/post-mortem.md +121 -0
- package/skills/rollback-strategy/SKILL.md +116 -0
- package/skills/rollback-strategy/evals/evals.json +55 -0
- package/skills/rollback-strategy/references/rollback-patterns.md +125 -0
- package/skills/rollback-strategy/templates/rollback-plan.md +69 -0
- package/skills/security-audit/SKILL.md +146 -0
- package/skills/security-audit/evals/evals.json +66 -0
- package/skills/security-audit/references/owasp-top-10.md +167 -0
- package/skills/security-audit/templates/security-report.md +79 -0
- package/skills/skill-router/SKILL.md +171 -0
- package/skills/skill-router/evals/evals.json +39 -0
- package/skills/strategic-review/SKILL.md +106 -0
- package/skills/strategic-review/evals/evals.json +42 -0
- package/skills/strategic-review/templates/full-review-prompt.md +84 -0
- package/skills/tdd-workflow/SKILL.md +147 -0
- package/skills/tdd-workflow/evals/evals.json +58 -0
- package/skills/tdd-workflow/references/test-quality.md +71 -0
- package/skills/technical-debt-review/SKILL.md +113 -0
- package/skills/technical-debt-review/evals/evals.json +41 -0
- package/skills/technical-debt-review/references/debt-taxonomy.md +124 -0
- package/skills/technical-debt-review/templates/debt-audit.md +85 -0
- package/skills/test-data-strategy/SKILL.md +129 -0
- package/skills/test-data-strategy/evals/evals.json +49 -0
- package/skills/test-data-strategy/references/data-generation-patterns.md +341 -0
- package/skills/test-suite-design/SKILL.md +137 -0
- package/skills/test-suite-design/evals/evals.json +69 -0
- package/skills/test-suite-design/references/test-infrastructure.md +175 -0
- package/skills/test-suite-design/references/testing-pyramid.md +140 -0
- package/skills/ui-ux-design/SKILL.md +117 -0
- package/skills/ui-ux-design/evals/evals.json +35 -0
- package/skills/ui-ux-design/references/interaction-patterns.md +145 -0
- package/skills/ui-ux-design/templates/screen-spec.md +97 -0
- package/skills/verification-before-completion/SKILL.md +85 -0
- package/skills/verification-before-completion/evals/evals.json +53 -0
- package/skills/writing-skills/SKILL.md +87 -0
- package/skills/writing-skills/evals/evals.json +41 -0
- package/skills/writing-skills/references/pressure-testing.md +69 -0
- package/uninstall.mjs +182 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Agile PRD Template
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
# PRD: [Feature/Product Name]
|
|
5
|
+
|
|
6
|
+
**Author**: [Name]
|
|
7
|
+
**Date**: [YYYY-MM-DD]
|
|
8
|
+
**Status**: Draft | In Review | Approved
|
|
9
|
+
**Target release**: [Sprint/Quarter/Date]
|
|
10
|
+
|
|
11
|
+
## Problem
|
|
12
|
+
|
|
13
|
+
[What problem are we solving? Who has it? How do we know it's real?
|
|
14
|
+
Include data: user feedback, support tickets, analytics, competitive pressure.]
|
|
15
|
+
|
|
16
|
+
## Goals
|
|
17
|
+
|
|
18
|
+
1. [Measurable goal tied to a metric]
|
|
19
|
+
2. [Measurable goal tied to a metric]
|
|
20
|
+
|
|
21
|
+
## Non-Goals
|
|
22
|
+
|
|
23
|
+
- [What this project explicitly will NOT do]
|
|
24
|
+
- [Scope boundaries that prevent creep]
|
|
25
|
+
|
|
26
|
+
## User Stories
|
|
27
|
+
|
|
28
|
+
### Must Have
|
|
29
|
+
- As a [persona], I want to [action] so that [benefit]
|
|
30
|
+
- AC: [Given/When/Then acceptance criteria]
|
|
31
|
+
- As a [persona], I want to [action] so that [benefit]
|
|
32
|
+
- AC: [Acceptance criteria]
|
|
33
|
+
|
|
34
|
+
### Should Have
|
|
35
|
+
- As a [persona], I want to [action] so that [benefit]
|
|
36
|
+
|
|
37
|
+
### Could Have
|
|
38
|
+
- As a [persona], I want to [action] so that [benefit]
|
|
39
|
+
|
|
40
|
+
### Won't Have (this time)
|
|
41
|
+
- [Explicitly deferred features — important for setting expectations]
|
|
42
|
+
|
|
43
|
+
## User Experience
|
|
44
|
+
|
|
45
|
+
[Description of the intended experience, or links to mockups/wireframes.
|
|
46
|
+
Enough for a designer to start, not a pixel-perfect spec.]
|
|
47
|
+
|
|
48
|
+
## Constraints
|
|
49
|
+
|
|
50
|
+
- **Performance**: [e.g., Page load under 2s]
|
|
51
|
+
- **Compatibility**: [e.g., Support latest 2 versions of Chrome, Firefox, Safari]
|
|
52
|
+
- **Accessibility**: [e.g., WCAG 2.1 AA compliance]
|
|
53
|
+
- **Regulatory**: [e.g., GDPR data handling requirements]
|
|
54
|
+
|
|
55
|
+
## Success Metrics
|
|
56
|
+
|
|
57
|
+
| Metric | Current | Target | How Measured |
|
|
58
|
+
|--------|---------|--------|--------------|
|
|
59
|
+
| [Metric] | [Baseline] | [Goal] | [Tool/method] |
|
|
60
|
+
|
|
61
|
+
## Open Questions
|
|
62
|
+
|
|
63
|
+
- [ ] [Question that needs answering before or during implementation]
|
|
64
|
+
|
|
65
|
+
## References
|
|
66
|
+
|
|
67
|
+
- [Design mockups link]
|
|
68
|
+
- [User research link]
|
|
69
|
+
- [Competitive analysis link]
|
|
70
|
+
- [Related PRDs or RFCs]
|
|
71
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Technical RFC Template
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
# RFC: [Title]
|
|
5
|
+
|
|
6
|
+
**Author**: [Name]
|
|
7
|
+
**Date**: [YYYY-MM-DD]
|
|
8
|
+
**Status**: Draft | In Review | Accepted | Rejected | Superseded
|
|
9
|
+
**Review deadline**: [Date — give reviewers a clear deadline]
|
|
10
|
+
**Reviewers**: [Names/teams]
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
[What triggered this RFC? What's the current state? What constraints exist?
|
|
15
|
+
Provide enough context for a reviewer who isn't working on this daily.]
|
|
16
|
+
|
|
17
|
+
## Problem
|
|
18
|
+
|
|
19
|
+
[Specific technical problem to solve. Reference the PRD if one exists.]
|
|
20
|
+
|
|
21
|
+
## Proposed Solution
|
|
22
|
+
|
|
23
|
+
[Describe the technical approach. Include diagrams where helpful.
|
|
24
|
+
This should be detailed enough that an engineer can implement from it,
|
|
25
|
+
but not so detailed that it prescribes every function signature.]
|
|
26
|
+
|
|
27
|
+
### Architecture / Design
|
|
28
|
+
|
|
29
|
+
[High-level design, component diagram, data flow]
|
|
30
|
+
|
|
31
|
+
### Data Model Changes
|
|
32
|
+
|
|
33
|
+
[New tables, modified columns, migrations needed.
|
|
34
|
+
Link to data-modeling skill output if applicable.]
|
|
35
|
+
|
|
36
|
+
### API Changes
|
|
37
|
+
|
|
38
|
+
[New or modified endpoints.
|
|
39
|
+
Link to api-design skill output if applicable.]
|
|
40
|
+
|
|
41
|
+
### Migration Plan
|
|
42
|
+
|
|
43
|
+
[How to get from current state to proposed state safely.
|
|
44
|
+
Especially important for production changes.]
|
|
45
|
+
|
|
46
|
+
## Alternatives Considered
|
|
47
|
+
|
|
48
|
+
### [Alternative A]
|
|
49
|
+
[Description]
|
|
50
|
+
**Why not**: [Specific reason this approach was rejected]
|
|
51
|
+
|
|
52
|
+
### [Alternative B]
|
|
53
|
+
[Description]
|
|
54
|
+
**Why not**: [Specific reason]
|
|
55
|
+
|
|
56
|
+
## Risks and Mitigations
|
|
57
|
+
|
|
58
|
+
| Risk | Mitigation |
|
|
59
|
+
|------|------------|
|
|
60
|
+
| [Risk] | [Strategy] |
|
|
61
|
+
|
|
62
|
+
## Open Questions
|
|
63
|
+
|
|
64
|
+
- [ ] [Question for reviewers]
|
|
65
|
+
- [ ] [Decision that needs input]
|
|
66
|
+
|
|
67
|
+
## Implementation Plan
|
|
68
|
+
|
|
69
|
+
[Rough phases. Link to feature-planning output for detailed task breakdown.]
|
|
70
|
+
|
|
71
|
+
1. [Phase 1]: [What and rough timing]
|
|
72
|
+
2. [Phase 2]: [What and rough timing]
|
|
73
|
+
|
|
74
|
+
## References
|
|
75
|
+
|
|
76
|
+
- [PRD link]
|
|
77
|
+
- [Related ADRs]
|
|
78
|
+
- [External documentation]
|
|
79
|
+
```
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-documentation
|
|
3
|
+
description: "Write and maintain project docs — README, contributing guides, API docs, changelogs, inline docs. Triggers: write a README, document this project, create documentation, contributing guide, changelog, API docs, how do I document, this needs docs, onboarding docs, JSDoc, docstrings."
|
|
4
|
+
model: haiku
|
|
5
|
+
allowed-tools: Read, Grep, Glob, Write, Edit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Project Documentation
|
|
9
|
+
|
|
10
|
+
Help create and maintain documentation that makes a project understandable, usable, and contributable. Good documentation answers three questions: What is this? How do I use it? How do I contribute?
|
|
11
|
+
|
|
12
|
+
## Document Types
|
|
13
|
+
|
|
14
|
+
Identify which documents the project needs based on context:
|
|
15
|
+
|
|
16
|
+
| Document | When Needed | Audience |
|
|
17
|
+
|----------|-------------|----------|
|
|
18
|
+
| README.md | Every project | Users, contributors, evaluators |
|
|
19
|
+
| CONTRIBUTING.md | Open source or team > 3 | New contributors |
|
|
20
|
+
| API Documentation | Any project with an API | API consumers |
|
|
21
|
+
| CHANGELOG.md | Any project with releases | Users upgrading between versions |
|
|
22
|
+
| Architecture docs | Complex systems | New team members, future maintainers |
|
|
23
|
+
| Inline docs (JSDoc/docstrings) | Public APIs, complex logic | Developers reading the code |
|
|
24
|
+
|
|
25
|
+
Ask the user which they need. If unsure, start with README — every project needs one.
|
|
26
|
+
|
|
27
|
+
## Workflow: README
|
|
28
|
+
|
|
29
|
+
### Step 1: Analyze the Project
|
|
30
|
+
|
|
31
|
+
Before writing, understand what exists:
|
|
32
|
+
|
|
33
|
+
- Read the codebase structure, package.json/pyproject.toml/go.mod, and existing docs
|
|
34
|
+
- Identify the project type (library, CLI, web app, API, monorepo)
|
|
35
|
+
- Identify the tech stack and key dependencies
|
|
36
|
+
- Look for existing setup scripts, Docker files, or CI config
|
|
37
|
+
- Check for a license file
|
|
38
|
+
|
|
39
|
+
### Step 2: Write the README
|
|
40
|
+
|
|
41
|
+
Use the template at [templates/readme.md](templates/readme.md). Adapt sections based on project type:
|
|
42
|
+
|
|
43
|
+
**For a library/package**: Emphasize installation, quick start, API reference, and examples.
|
|
44
|
+
**For a web app**: Emphasize prerequisites, setup, running locally, and environment config.
|
|
45
|
+
**For a CLI tool**: Emphasize installation, usage with command examples, and configuration options.
|
|
46
|
+
**For an API**: Emphasize endpoints overview, authentication, and link to full API docs.
|
|
47
|
+
**For a monorepo**: Emphasize structure overview, per-package docs, and how packages relate.
|
|
48
|
+
|
|
49
|
+
Key principles:
|
|
50
|
+
- **Lead with value**: The first thing someone reads should explain what the project does and why they should care. Not the tech stack, not the folder structure.
|
|
51
|
+
- **Working examples**: Every code snippet should be copy-pasteable and actually work.
|
|
52
|
+
- **Prerequisites explicitly stated**: Don't assume Node 20, Python 3.12, or Docker are installed. State versions.
|
|
53
|
+
- **From zero to running**: A new developer should go from `git clone` to a working local instance by following the README, without asking anyone.
|
|
54
|
+
|
|
55
|
+
### Step 3: Verify
|
|
56
|
+
|
|
57
|
+
- [ ] Can someone who has never seen this project understand what it does from the first paragraph?
|
|
58
|
+
- [ ] Are all setup steps complete and in order?
|
|
59
|
+
- [ ] Do code examples actually work?
|
|
60
|
+
- [ ] Are prerequisites and versions specified?
|
|
61
|
+
- [ ] Is there a way to verify the setup worked (e.g., "you should see X")?
|
|
62
|
+
|
|
63
|
+
## Workflow: CONTRIBUTING.md
|
|
64
|
+
|
|
65
|
+
See [references/contributing-guide.md](references/contributing-guide.md) for the full guide on writing contributing docs.
|
|
66
|
+
|
|
67
|
+
## Workflow: API Documentation
|
|
68
|
+
|
|
69
|
+
When documenting an API:
|
|
70
|
+
|
|
71
|
+
1. **Inventory endpoints**: List all routes from the codebase (read router files)
|
|
72
|
+
2. **For each endpoint**: Method, path, description, request params/body, response shape, error codes, auth requirements
|
|
73
|
+
3. **Group by resource**: `/users/*`, `/orders/*`, `/products/*`
|
|
74
|
+
4. **Include examples**: Real request/response pairs, including error responses
|
|
75
|
+
5. **Output format**: Markdown for simple APIs, OpenAPI/Swagger spec for complex ones
|
|
76
|
+
|
|
77
|
+
Suggest using the `api-design` skill if the API doesn't exist yet and needs designing.
|
|
78
|
+
|
|
79
|
+
## Workflow: CHANGELOG
|
|
80
|
+
|
|
81
|
+
Follow Keep a Changelog conventions:
|
|
82
|
+
|
|
83
|
+
- Group changes under: Added, Changed, Deprecated, Removed, Fixed, Security
|
|
84
|
+
- Newest version at the top
|
|
85
|
+
- Link version headers to git comparison URLs
|
|
86
|
+
- Write entries from the user's perspective, not the developer's
|
|
87
|
+
|
|
88
|
+
See [templates/changelog.md](templates/changelog.md) for the format.
|
|
89
|
+
|
|
90
|
+
## Workflow: Inline Documentation
|
|
91
|
+
|
|
92
|
+
For code-level documentation (JSDoc, Python docstrings, Go doc comments):
|
|
93
|
+
|
|
94
|
+
- **Document public APIs**: Every exported function, class, and type
|
|
95
|
+
- **Skip obvious code**: Don't document `getName()` returning a name
|
|
96
|
+
- **Document the why**: Why this approach, why this parameter exists, why this edge case matters
|
|
97
|
+
- **Include examples** for non-obvious usage
|
|
98
|
+
- **Document exceptions/errors**: What can go wrong and under what conditions
|
|
99
|
+
|
|
100
|
+
## Principles Applied
|
|
101
|
+
|
|
102
|
+
- **KISS**: Write the minimum documentation that makes the project usable. Don't over-document internals.
|
|
103
|
+
- **DRY**: Don't duplicate information across docs. Link between documents instead.
|
|
104
|
+
- **YAGNI**: Don't write architecture docs for a 200-line script. Match documentation depth to project complexity.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "project-documentation",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Write a README for my project. It's a Node.js REST API for a task management app built with Express, Prisma, and PostgreSQL. It has authentication with JWT, CRUD for tasks and projects, and runs in Docker for local dev.",
|
|
7
|
+
"expected_output": "Should read the codebase first if available, then produce a complete README with all essential sections. Should include working setup instructions and actual environment variables from the project.",
|
|
8
|
+
"assertions": [
|
|
9
|
+
"Reads codebase/package.json before writing if available",
|
|
10
|
+
"Starts with a clear one-line description of what the project does",
|
|
11
|
+
"Includes prerequisites with specific versions",
|
|
12
|
+
"Setup instructions go from git clone to running server",
|
|
13
|
+
"Includes Docker setup instructions",
|
|
14
|
+
"Lists environment variables needed with descriptions",
|
|
15
|
+
"Includes verification step (e.g., 'visit localhost:3000/health')",
|
|
16
|
+
"Code examples are copy-pasteable",
|
|
17
|
+
"Saves the README.md file to the project root"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": 2,
|
|
22
|
+
"prompt": "I need to document the API endpoints of my Express app. We have about 15 endpoints across users, tasks, and projects resources.",
|
|
23
|
+
"expected_output": "Should read the route files, then produce organized API documentation grouped by resource with request/response examples.",
|
|
24
|
+
"assertions": [
|
|
25
|
+
"Reads the actual route/controller files to discover endpoints",
|
|
26
|
+
"Groups endpoints by resource (users, tasks, projects)",
|
|
27
|
+
"Documents method, path, description for each endpoint",
|
|
28
|
+
"Includes request body schema for POST/PUT endpoints",
|
|
29
|
+
"Includes response shape examples",
|
|
30
|
+
"Documents error responses (400, 401, 404)",
|
|
31
|
+
"Notes authentication requirements per endpoint"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": 3,
|
|
36
|
+
"prompt": "Generate a changelog from our recent git history. We're about to release v2.1.0.",
|
|
37
|
+
"expected_output": "Should read git log, categorize commits into Added/Changed/Fixed/etc., and produce a Keep a Changelog formatted entry.",
|
|
38
|
+
"assertions": [
|
|
39
|
+
"Reads git log to find changes since last tag/release",
|
|
40
|
+
"Categorizes changes into Keep a Changelog sections",
|
|
41
|
+
"Writes entries from user perspective, not developer perspective",
|
|
42
|
+
"Includes the version number and date",
|
|
43
|
+
"Includes comparison link to previous version",
|
|
44
|
+
"Does not include trivial commits (merge commits, typo fixes) unless relevant"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Writing a Contributing Guide
|
|
2
|
+
|
|
3
|
+
## Contents
|
|
4
|
+
- What to include
|
|
5
|
+
- Template structure
|
|
6
|
+
- Common mistakes
|
|
7
|
+
|
|
8
|
+
## What to Include
|
|
9
|
+
|
|
10
|
+
A CONTRIBUTING.md answers: "I want to help — how do I start?"
|
|
11
|
+
|
|
12
|
+
It should cover:
|
|
13
|
+
|
|
14
|
+
1. **How to set up the development environment** — complete, from-scratch instructions
|
|
15
|
+
2. **How to run the project locally** — including any seed data, test accounts, etc.
|
|
16
|
+
3. **How to run tests** — and what's expected to pass before submitting
|
|
17
|
+
4. **Code conventions** — style guide, linting, formatting expectations
|
|
18
|
+
5. **Branching and commit conventions** — branch naming, commit message format
|
|
19
|
+
6. **How to submit a change** — PR process, review expectations, CI requirements
|
|
20
|
+
7. **Where to ask questions** — Slack channel, GitHub discussions, issue templates
|
|
21
|
+
|
|
22
|
+
## Template Structure
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
# Contributing to [Project Name]
|
|
26
|
+
|
|
27
|
+
Thanks for your interest in contributing! This guide will help you get started.
|
|
28
|
+
|
|
29
|
+
## Development Setup
|
|
30
|
+
|
|
31
|
+
### Prerequisites
|
|
32
|
+
- [List all tools and versions]
|
|
33
|
+
|
|
34
|
+
### Getting Started
|
|
35
|
+
```bash
|
|
36
|
+
# Step-by-step from clone to running
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Verifying Your Setup
|
|
40
|
+
[How to confirm everything is working — specific expected output]
|
|
41
|
+
|
|
42
|
+
## Making Changes
|
|
43
|
+
|
|
44
|
+
### Branch Naming
|
|
45
|
+
- `feat/short-description` — new features
|
|
46
|
+
- `fix/short-description` — bug fixes
|
|
47
|
+
- `docs/short-description` — documentation only
|
|
48
|
+
- `refactor/short-description` — code improvements
|
|
49
|
+
|
|
50
|
+
### Commit Messages
|
|
51
|
+
[Format and conventions — reference git-workflow skill]
|
|
52
|
+
|
|
53
|
+
### Code Style
|
|
54
|
+
- [Linting tool and config]
|
|
55
|
+
- [Formatting tool and config]
|
|
56
|
+
- Run `npm run lint` before committing
|
|
57
|
+
|
|
58
|
+
### Testing
|
|
59
|
+
- Write tests for new functionality
|
|
60
|
+
- Ensure all existing tests pass: `npm test`
|
|
61
|
+
- Add integration tests for API changes
|
|
62
|
+
|
|
63
|
+
## Submitting a Pull Request
|
|
64
|
+
|
|
65
|
+
1. Fork the repository and create your branch from `main`
|
|
66
|
+
2. Make your changes with tests
|
|
67
|
+
3. Ensure the test suite passes
|
|
68
|
+
4. Update documentation if needed
|
|
69
|
+
5. Submit a PR with a clear description of the changes
|
|
70
|
+
|
|
71
|
+
### PR Description Template
|
|
72
|
+
- **What**: What this PR does
|
|
73
|
+
- **Why**: Why this change is needed
|
|
74
|
+
- **How**: Brief description of the approach
|
|
75
|
+
- **Testing**: How you tested the changes
|
|
76
|
+
|
|
77
|
+
### Review Process
|
|
78
|
+
- PRs require [N] approving reviews
|
|
79
|
+
- CI must pass before merge
|
|
80
|
+
- Maintainers may request changes — this is normal and collaborative
|
|
81
|
+
|
|
82
|
+
## Reporting Bugs
|
|
83
|
+
|
|
84
|
+
Use the GitHub issue template. Include:
|
|
85
|
+
- Steps to reproduce
|
|
86
|
+
- Expected behavior
|
|
87
|
+
- Actual behavior
|
|
88
|
+
- Environment (OS, Node version, etc.)
|
|
89
|
+
|
|
90
|
+
## Questions?
|
|
91
|
+
|
|
92
|
+
[Where to reach the team for help]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Common Mistakes
|
|
96
|
+
|
|
97
|
+
- **Assuming knowledge**: Don't assume contributors know your stack. A Python developer might want to contribute to your TypeScript project.
|
|
98
|
+
- **Outdated setup instructions**: These go stale fast. Run through them periodically on a clean machine.
|
|
99
|
+
- **Missing the "verify" step**: After setup, how does the contributor know it worked? Give them a specific command and expected output.
|
|
100
|
+
- **No mention of the PR process**: Contributors submit code and then wonder what happens next. Be explicit about review timelines and expectations.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Changelog Template
|
|
2
|
+
|
|
3
|
+
Follow the Keep a Changelog convention (keepachangelog.com).
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Changelog
|
|
7
|
+
|
|
8
|
+
All notable changes to this project will be documented in this file.
|
|
9
|
+
|
|
10
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/),
|
|
11
|
+
and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
12
|
+
|
|
13
|
+
## [Unreleased]
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- [Description of new feature from user perspective]
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- [Description of changed behavior]
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- [Description of bug fix, ideally referencing the issue]
|
|
23
|
+
|
|
24
|
+
## [1.2.0] - 2025-03-01
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
- User notification preferences with email and in-app options (#123)
|
|
28
|
+
- Rate limiting on public API endpoints (#130)
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
- Improved error messages for authentication failures (#128)
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- Order total calculation now correctly applies percentage discounts (#125)
|
|
35
|
+
- Fixed timezone handling in scheduled report generation (#127)
|
|
36
|
+
|
|
37
|
+
### Security
|
|
38
|
+
- Updated dependency `some-lib` to patch CVE-2025-XXXX (#131)
|
|
39
|
+
|
|
40
|
+
## [1.1.0] - 2025-02-15
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
- Webhook support for order status changes
|
|
44
|
+
|
|
45
|
+
### Deprecated
|
|
46
|
+
- `GET /api/v1/orders/status` — use `GET /api/v2/orders/:id/status` instead
|
|
47
|
+
|
|
48
|
+
[Unreleased]: https://github.com/org/project/compare/v1.2.0...HEAD
|
|
49
|
+
[1.2.0]: https://github.com/org/project/compare/v1.1.0...v1.2.0
|
|
50
|
+
[1.1.0]: https://github.com/org/project/releases/tag/v1.1.0
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Writing Good Entries
|
|
54
|
+
|
|
55
|
+
- **Write for users, not developers**: "Added dark mode" not "Added ThemeProvider with CSS variable injection"
|
|
56
|
+
- **Reference issues/PRs**: Include the number so readers can find context
|
|
57
|
+
- **Be specific**: "Fixed login failing when email contains a plus sign" not "Fixed login bug"
|
|
58
|
+
- **One entry per change**: Don't bundle multiple changes into one bullet
|
|
59
|
+
- **Use past tense or imperative**: Be consistent throughout
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# README Template
|
|
2
|
+
|
|
3
|
+
Adapt this template based on project type. Remove sections that don't apply. Every section should earn its place — if it doesn't help the reader use or understand the project, cut it.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Project Name
|
|
7
|
+
|
|
8
|
+
[One-line description: what this does and why someone would use it.]
|
|
9
|
+
|
|
10
|
+
[Optional: badges for build status, coverage, npm version, license]
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
[2-4 sentences expanding on the one-liner. What problem does it solve? Who is it for?
|
|
15
|
+
Include a screenshot, GIF, or terminal recording if visual.]
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
[The fastest path from zero to working. Should be 3-5 steps maximum.]
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Install
|
|
23
|
+
npm install project-name
|
|
24
|
+
|
|
25
|
+
# Basic usage
|
|
26
|
+
import { thing } from 'project-name';
|
|
27
|
+
const result = thing('input');
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Prerequisites
|
|
31
|
+
|
|
32
|
+
[Only list what's NOT obvious. If it's a Node.js project, listing Node is expected.]
|
|
33
|
+
|
|
34
|
+
- Node.js >= 18
|
|
35
|
+
- PostgreSQL >= 14
|
|
36
|
+
- Docker (for local development)
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
[Complete setup instructions. Be specific about versions.]
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
git clone https://github.com/org/project-name.git
|
|
44
|
+
cd project-name
|
|
45
|
+
npm install
|
|
46
|
+
cp .env.example .env # Edit with your values
|
|
47
|
+
npm run db:migrate
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Usage
|
|
51
|
+
|
|
52
|
+
[How to use the project. Examples should be copy-pasteable.]
|
|
53
|
+
|
|
54
|
+
### Basic Example
|
|
55
|
+
|
|
56
|
+
```javascript
|
|
57
|
+
// Show the most common use case
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Configuration
|
|
61
|
+
|
|
62
|
+
[Environment variables, config files, CLI flags — whatever the user needs to customize.]
|
|
63
|
+
|
|
64
|
+
| Variable | Description | Default |
|
|
65
|
+
|----------|-------------|---------|
|
|
66
|
+
| `DATABASE_URL` | PostgreSQL connection string | `postgresql://localhost:5432/mydb` |
|
|
67
|
+
| `PORT` | Server port | `3000` |
|
|
68
|
+
|
|
69
|
+
## Development
|
|
70
|
+
|
|
71
|
+
[How to work on this project.]
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm run dev # Start development server
|
|
75
|
+
npm test # Run tests
|
|
76
|
+
npm run lint # Check code style
|
|
77
|
+
npm run build # Build for production
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Project Structure
|
|
81
|
+
|
|
82
|
+
[Only include if the structure is non-obvious or the project is large.]
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
src/
|
|
86
|
+
services/ # Business logic
|
|
87
|
+
routes/ # API endpoints
|
|
88
|
+
models/ # Database models
|
|
89
|
+
utils/ # Shared utilities
|
|
90
|
+
tests/ # Test suites
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## API Reference
|
|
94
|
+
|
|
95
|
+
[For libraries: document the public API. For web APIs: link to full API docs.]
|
|
96
|
+
|
|
97
|
+
### `functionName(param1, param2)`
|
|
98
|
+
|
|
99
|
+
[Description of what it does.]
|
|
100
|
+
|
|
101
|
+
**Parameters:**
|
|
102
|
+
- `param1` (string) — Description
|
|
103
|
+
- `param2` (object, optional) — Description
|
|
104
|
+
|
|
105
|
+
**Returns:** Description of return value
|
|
106
|
+
|
|
107
|
+
**Example:**
|
|
108
|
+
```javascript
|
|
109
|
+
const result = functionName('hello', { verbose: true });
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Contributing
|
|
113
|
+
|
|
114
|
+
[Brief summary + link to CONTRIBUTING.md if it exists.]
|
|
115
|
+
|
|
116
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.
|
|
117
|
+
|
|
118
|
+
## License
|
|
119
|
+
|
|
120
|
+
[License type] — see [LICENSE](LICENSE) for details.
|
|
121
|
+
```
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-proposal
|
|
3
|
+
description: "Write lightweight project proposals for budget approval and go/no-go decisions — problem, business case, scope, rough estimates, risks, success criteria. Triggers: project proposal, project brief, business case, budget estimate, should we build this, go/no-go, risk assessment, cost-benefit, ROI, justify this project, stakeholder approval."
|
|
4
|
+
model: sonnet
|
|
5
|
+
allowed-tools: Read, Grep, Glob, Write, Edit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Project Proposal
|
|
9
|
+
|
|
10
|
+
Write concise project proposals that help stakeholders decide whether to invest engineering resources. In agile, proposals are lightweight — enough to make an informed decision, not a 50-page waterfall spec.
|
|
11
|
+
|
|
12
|
+
## When to Write a Proposal
|
|
13
|
+
|
|
14
|
+
Not every task needs a proposal. Use this skill when:
|
|
15
|
+
|
|
16
|
+
- **Budget approval** is needed (anything over a few days of work)
|
|
17
|
+
- **Multiple stakeholders** need to agree before starting
|
|
18
|
+
- **Opportunity cost** is significant (this means NOT doing something else)
|
|
19
|
+
- **Risk is non-trivial** (new technology, external dependencies, data migration)
|
|
20
|
+
- **The idea needs defending** — someone will ask "why should we do this?"
|
|
21
|
+
|
|
22
|
+
For small features that are already in the approved roadmap, skip this and go straight to `feature-planning`.
|
|
23
|
+
|
|
24
|
+
## Workflow
|
|
25
|
+
|
|
26
|
+
### Step 1: Define the Problem
|
|
27
|
+
|
|
28
|
+
Before proposing a solution, clearly articulate the problem:
|
|
29
|
+
|
|
30
|
+
- **Who has this problem?** (Users, internal team, business)
|
|
31
|
+
- **What is the impact of NOT solving it?** (Revenue loss, churn, engineering time wasted, compliance risk)
|
|
32
|
+
- **How do we know this is a real problem?** (Data, user feedback, support tickets, competitive analysis)
|
|
33
|
+
- **Is this urgent or important?** Urgent means it gets worse over time. Important means it has high value when solved. Both means it's a priority.
|
|
34
|
+
|
|
35
|
+
If the user can't articulate the problem, help them clarify before proceeding. A solution without a clear problem is a feature request, not a project proposal.
|
|
36
|
+
|
|
37
|
+
### Step 2: Propose the Solution
|
|
38
|
+
|
|
39
|
+
Describe what you intend to build, at a high level:
|
|
40
|
+
|
|
41
|
+
- **Approach**: What will be built and how (1-2 paragraphs, not a detailed design)
|
|
42
|
+
- **Scope**: What's included and what's explicitly excluded
|
|
43
|
+
- **Alternatives considered**: Why this approach over 2-3 alternatives (including "do nothing")
|
|
44
|
+
- **Dependencies**: What does this project need that doesn't exist yet?
|
|
45
|
+
|
|
46
|
+
### Step 3: Estimate Cost and Timeline
|
|
47
|
+
|
|
48
|
+
Provide order-of-magnitude estimates (not precise):
|
|
49
|
+
|
|
50
|
+
- **Team size**: How many engineers, designers, product people?
|
|
51
|
+
- **Duration**: In weeks or sprints (ranges are fine: "4-6 weeks")
|
|
52
|
+
- **Infrastructure cost**: New services, third-party tools, cloud resources
|
|
53
|
+
- **Ongoing cost**: Maintenance, monitoring, support after launch
|
|
54
|
+
|
|
55
|
+
Use the `effort-estimation` skill for detailed estimation methodology. At the proposal stage, rough ranges are appropriate.
|
|
56
|
+
|
|
57
|
+
### Step 4: Assess Risks
|
|
58
|
+
|
|
59
|
+
For each significant risk, document:
|
|
60
|
+
|
|
61
|
+
| Risk | Probability | Impact | Mitigation |
|
|
62
|
+
|------|-------------|--------|------------|
|
|
63
|
+
| [What could go wrong] | High/Med/Low | High/Med/Low | [What we'll do about it] |
|
|
64
|
+
|
|
65
|
+
Common risk categories:
|
|
66
|
+
- **Technical**: Unproven technology, complex integration, performance concerns
|
|
67
|
+
- **Scope**: Requirements likely to change, stakeholder alignment gaps
|
|
68
|
+
- **Dependencies**: External teams, third-party APIs, vendor timelines
|
|
69
|
+
- **People**: Key-person dependency, skill gaps, team availability
|
|
70
|
+
- **Timeline**: Hard deadlines, competing priorities, seasonal constraints
|
|
71
|
+
|
|
72
|
+
### Step 5: Define Success Criteria
|
|
73
|
+
|
|
74
|
+
How will you know this project succeeded? Define measurable criteria:
|
|
75
|
+
|
|
76
|
+
- **Outcome metrics**: What business or user metric improves? (Conversion rate, response time, support tickets reduced)
|
|
77
|
+
- **Output metrics**: What gets delivered? (Feature shipped, migration completed, performance target hit)
|
|
78
|
+
- **Timeline**: When should we evaluate success? (30 days after launch, end of quarter)
|
|
79
|
+
|
|
80
|
+
Link to `metrics-and-okrs` skill for deeper metric design.
|
|
81
|
+
|
|
82
|
+
### Step 6: Produce the Proposal
|
|
83
|
+
|
|
84
|
+
Output using the template at [templates/proposal.md](templates/proposal.md). Keep it to 1-2 pages. If it needs more, the scope is probably too large — consider splitting.
|
|
85
|
+
|
|
86
|
+
## Principles Applied
|
|
87
|
+
|
|
88
|
+
- **KISS**: Proposals should be 1-2 pages. If you can't explain the value concisely, the project scope is too broad.
|
|
89
|
+
- **YAGNI**: Propose the minimum viable project. Nice-to-haves go in a "future considerations" section, not in the scope.
|
|
90
|
+
- **Data over opinions**: Support the business case with numbers — user count, revenue impact, time savings, error rates.
|