@starlein/paperclip-plugin-company-wizard 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +748 -0
- package/dist/manifest.js +91 -0
- package/dist/manifest.js.map +7 -0
- package/dist/ui/index.css +1647 -0
- package/dist/ui/index.css.map +7 -0
- package/dist/ui/index.js +6738 -0
- package/dist/ui/index.js.map +7 -0
- package/dist/worker.js +8247 -0
- package/dist/worker.js.map +7 -0
- package/package.json +73 -0
- package/templates/ai-wizard/config-format.md +21 -0
- package/templates/ai-wizard/interview-system.md +67 -0
- package/templates/ai-wizard/messages.json +6 -0
- package/templates/ai-wizard/single-shot-system.md +42 -0
- package/templates/bootstrap-instructions.md +30 -0
- package/templates/modules/accessibility/agents/engineer/skills/accessibility-audit.fallback.md +18 -0
- package/templates/modules/accessibility/agents/ui-designer/skills/accessibility-audit.fallback.md +18 -0
- package/templates/modules/accessibility/module.meta.json +22 -0
- package/templates/modules/accessibility/skills/accessibility-audit.md +27 -0
- package/templates/modules/architecture-plan/agents/ceo/skills/architecture-plan.fallback.md +16 -0
- package/templates/modules/architecture-plan/agents/engineer/skills/design-system.fallback.md +17 -0
- package/templates/modules/architecture-plan/agents/ui-designer/skills/architecture-plan.md +19 -0
- package/templates/modules/architecture-plan/agents/ui-designer/skills/design-system.md +24 -0
- package/templates/modules/architecture-plan/docs/architecture-template.md +38 -0
- package/templates/modules/architecture-plan/docs/design-system-template.md +61 -0
- package/templates/modules/architecture-plan/module.meta.json +37 -0
- package/templates/modules/architecture-plan/skills/architecture-plan.md +23 -0
- package/templates/modules/auto-assign/README.md +23 -0
- package/templates/modules/auto-assign/agents/ceo/heartbeat-section.md +9 -0
- package/templates/modules/auto-assign/agents/ceo/skills/auto-assign.fallback.md +18 -0
- package/templates/modules/auto-assign/agents/product-owner/heartbeat-section.md +10 -0
- package/templates/modules/auto-assign/module.meta.json +27 -0
- package/templates/modules/auto-assign/skills/auto-assign.md +23 -0
- package/templates/modules/backlog/README.md +26 -0
- package/templates/modules/backlog/agents/ceo/heartbeat-section.md +10 -0
- package/templates/modules/backlog/agents/ceo/skills/backlog-health.fallback.md +20 -0
- package/templates/modules/backlog/agents/product-owner/heartbeat-section.md +15 -0
- package/templates/modules/backlog/docs/backlog-process.md +62 -0
- package/templates/modules/backlog/docs/backlog-template.md +53 -0
- package/templates/modules/backlog/module.meta.json +31 -0
- package/templates/modules/backlog/skills/backlog-health.md +47 -0
- package/templates/modules/brand-identity/agents/ceo/skills/brand-identity.fallback.md +19 -0
- package/templates/modules/brand-identity/agents/cmo/skills/brand-identity.fallback.md +19 -0
- package/templates/modules/brand-identity/docs/brand-identity-template.md +43 -0
- package/templates/modules/brand-identity/module.meta.json +22 -0
- package/templates/modules/brand-identity/skills/brand-identity.md +30 -0
- package/templates/modules/build-api/module.meta.json +118 -0
- package/templates/modules/build-api/skills/api-design.md +43 -0
- package/templates/modules/ci-cd/agents/devops/skills/ci-cd.md +28 -0
- package/templates/modules/ci-cd/agents/engineer/skills/ci-cd.fallback.md +18 -0
- package/templates/modules/ci-cd/docs/ci-cd-template.md +42 -0
- package/templates/modules/ci-cd/module.meta.json +105 -0
- package/templates/modules/ci-cd/skills/ci-cd.md +26 -0
- package/templates/modules/codebase-onboarding/agents/ceo/skills/codebase-audit.fallback.md +19 -0
- package/templates/modules/codebase-onboarding/module.meta.json +24 -0
- package/templates/modules/codebase-onboarding/skills/codebase-audit.md +45 -0
- package/templates/modules/competitive-intel/agents/ceo/skills/competitive-tracking.fallback.md +17 -0
- package/templates/modules/competitive-intel/agents/cmo/skills/competitive-tracking.fallback.md +17 -0
- package/templates/modules/competitive-intel/agents/customer-success/skills/competitive-tracking.md +25 -0
- package/templates/modules/competitive-intel/module.meta.json +23 -0
- package/templates/modules/competitive-intel/skills/competitive-tracking.md +27 -0
- package/templates/modules/dependency-management/agents/engineer/skills/dependency-audit.fallback.md +18 -0
- package/templates/modules/dependency-management/module.meta.json +25 -0
- package/templates/modules/dependency-management/skills/dependency-audit.md +43 -0
- package/templates/modules/documentation/agents/ceo/skills/project-docs.fallback.md +16 -0
- package/templates/modules/documentation/agents/engineer/skills/project-docs.fallback.md +16 -0
- package/templates/modules/documentation/module.meta.json +22 -0
- package/templates/modules/documentation/skills/project-docs.md +25 -0
- package/templates/modules/game-design/agents/ceo/skills/game-design.fallback.md +17 -0
- package/templates/modules/game-design/agents/game-designer/skills/game-design.md +51 -0
- package/templates/modules/game-design/docs/engine-phaser.md +310 -0
- package/templates/modules/game-design/docs/engine-pixijs.md +289 -0
- package/templates/modules/game-design/docs/engine-threejs.md +304 -0
- package/templates/modules/game-design/docs/gdd-template.md +72 -0
- package/templates/modules/game-design/module.meta.json +22 -0
- package/templates/modules/game-design/skills/game-design.md +41 -0
- package/templates/modules/github-repo/README.md +23 -0
- package/templates/modules/github-repo/agents/engineer/skills/git-workflow.md +23 -0
- package/templates/modules/github-repo/docs/git-workflow.md +50 -0
- package/templates/modules/github-repo/module.meta.json +12 -0
- package/templates/modules/hiring-review/agents/ceo/skills/hiring-review.fallback.md +17 -0
- package/templates/modules/hiring-review/module.meta.json +21 -0
- package/templates/modules/hiring-review/skills/hiring-review.md +24 -0
- package/templates/modules/launch-mvp/module.meta.json +86 -0
- package/templates/modules/market-analysis/agents/ceo/skills/market-analysis.fallback.md +17 -0
- package/templates/modules/market-analysis/agents/cmo/skills/market-analysis.fallback.md +19 -0
- package/templates/modules/market-analysis/agents/product-owner/skills/market-analysis.fallback.md +18 -0
- package/templates/modules/market-analysis/agents/ux-researcher/skills/market-analysis.md +23 -0
- package/templates/modules/market-analysis/docs/market-analysis-template.md +32 -0
- package/templates/modules/market-analysis/module.meta.json +23 -0
- package/templates/modules/market-analysis/skills/market-analysis.md +21 -0
- package/templates/modules/monitoring/agents/devops/skills/monitoring.md +23 -0
- package/templates/modules/monitoring/agents/engineer/skills/monitoring.fallback.md +18 -0
- package/templates/modules/monitoring/docs/monitoring-template.md +46 -0
- package/templates/modules/monitoring/module.meta.json +24 -0
- package/templates/modules/monitoring/skills/monitoring.md +20 -0
- package/templates/modules/pr-review/README.md +43 -0
- package/templates/modules/pr-review/agents/code-reviewer/skills/code-review.md +29 -0
- package/templates/modules/pr-review/agents/devops/skills/infra-review.md +29 -0
- package/templates/modules/pr-review/agents/engineer/skills/pr-workflow.md +24 -0
- package/templates/modules/pr-review/agents/product-owner/skills/product-review.md +27 -0
- package/templates/modules/pr-review/agents/qa/skills/qa-review.md +29 -0
- package/templates/modules/pr-review/agents/ui-designer/skills/design-review.md +29 -0
- package/templates/modules/pr-review/agents/ux-researcher/skills/ux-review.md +29 -0
- package/templates/modules/pr-review/docs/pr-conventions.md +78 -0
- package/templates/modules/pr-review/module.meta.json +24 -0
- package/templates/modules/release-management/agents/engineer/skills/release-process.fallback.md +18 -0
- package/templates/modules/release-management/module.meta.json +25 -0
- package/templates/modules/release-management/skills/release-process.md +45 -0
- package/templates/modules/security-audit/agents/devops/skills/security-review.fallback.md +17 -0
- package/templates/modules/security-audit/agents/devops/skills/threat-model.fallback.md +17 -0
- package/templates/modules/security-audit/agents/engineer/skills/security-review.fallback.md +17 -0
- package/templates/modules/security-audit/agents/engineer/skills/threat-model.fallback.md +17 -0
- package/templates/modules/security-audit/module.meta.json +36 -0
- package/templates/modules/security-audit/skills/security-review.md +25 -0
- package/templates/modules/security-audit/skills/threat-model.md +22 -0
- package/templates/modules/stall-detection/README.md +27 -0
- package/templates/modules/stall-detection/agents/ceo/heartbeat-section.md +12 -0
- package/templates/modules/stall-detection/agents/ceo/skills/stall-detection.md +21 -0
- package/templates/modules/stall-detection/module.meta.json +15 -0
- package/templates/modules/tech-stack/agents/ceo/skills/tech-stack.fallback.md +16 -0
- package/templates/modules/tech-stack/docs/tech-stack-template.md +28 -0
- package/templates/modules/tech-stack/module.meta.json +21 -0
- package/templates/modules/tech-stack/skills/tech-stack.md +25 -0
- package/templates/modules/triage/agents/ceo/skills/issue-triage.fallback.md +19 -0
- package/templates/modules/triage/module.meta.json +25 -0
- package/templates/modules/triage/skills/issue-triage.md +42 -0
- package/templates/modules/user-testing/agents/ceo/skills/user-testing.fallback.md +17 -0
- package/templates/modules/user-testing/agents/product-owner/skills/user-testing.fallback.md +17 -0
- package/templates/modules/user-testing/agents/qa/skills/user-testing.md +30 -0
- package/templates/modules/user-testing/agents/ux-researcher/skills/user-testing.fallback.md +18 -0
- package/templates/modules/user-testing/docs/user-testing-template.md +37 -0
- package/templates/modules/user-testing/module.meta.json +23 -0
- package/templates/modules/user-testing/skills/user-testing.md +27 -0
- package/templates/modules/vision-workshop/agents/ceo/skills/vision-workshop.md +23 -0
- package/templates/modules/vision-workshop/agents/ux-researcher/skills/vision-workshop.md +19 -0
- package/templates/modules/vision-workshop/docs/vision-template.md +28 -0
- package/templates/modules/vision-workshop/module.meta.json +12 -0
- package/templates/modules/website-relaunch/agents/ui-designer/skills/site-audit.md +65 -0
- package/templates/modules/website-relaunch/module.meta.json +168 -0
- package/templates/modules/website-relaunch/skills/design-ingestion.md +111 -0
- package/templates/modules/website-relaunch/skills/site-audit.md +54 -0
- package/templates/presets/build-api/preset.meta.json +16 -0
- package/templates/presets/build-game/preset.meta.json +150 -0
- package/templates/presets/content/preset.meta.json +20 -0
- package/templates/presets/fast/preset.meta.json +16 -0
- package/templates/presets/full/preset.meta.json +22 -0
- package/templates/presets/gtm/preset.meta.json +21 -0
- package/templates/presets/launch-mvp/preset.meta.json +17 -0
- package/templates/presets/launch-pack/preset.meta.json +25 -0
- package/templates/presets/quality/preset.meta.json +17 -0
- package/templates/presets/rad/preset.meta.json +19 -0
- package/templates/presets/repo-maintenance/preset.meta.json +104 -0
- package/templates/presets/research/preset.meta.json +13 -0
- package/templates/presets/secure/preset.meta.json +22 -0
- package/templates/presets/startup/preset.meta.json +19 -0
- package/templates/presets/website-relaunch/preset.meta.json +18 -0
- package/templates/roles/audio-designer/AGENTS.md +29 -0
- package/templates/roles/audio-designer/HEARTBEAT.md +37 -0
- package/templates/roles/audio-designer/SOUL.md +17 -0
- package/templates/roles/audio-designer/TOOLS.md +3 -0
- package/templates/roles/audio-designer/role.meta.json +14 -0
- package/templates/roles/ceo/AGENTS.md +28 -0
- package/templates/roles/ceo/HEARTBEAT.md +75 -0
- package/templates/roles/ceo/SOUL.md +33 -0
- package/templates/roles/ceo/TOOLS.md +3 -0
- package/templates/roles/ceo/role.meta.json +14 -0
- package/templates/roles/cfo/AGENTS.md +31 -0
- package/templates/roles/cfo/HEARTBEAT.md +37 -0
- package/templates/roles/cfo/SOUL.md +17 -0
- package/templates/roles/cfo/TOOLS.md +3 -0
- package/templates/roles/cfo/role.meta.json +17 -0
- package/templates/roles/cmo/AGENTS.md +31 -0
- package/templates/roles/cmo/HEARTBEAT.md +37 -0
- package/templates/roles/cmo/SOUL.md +17 -0
- package/templates/roles/cmo/TOOLS.md +3 -0
- package/templates/roles/cmo/role.meta.json +17 -0
- package/templates/roles/code-reviewer/AGENTS.md +42 -0
- package/templates/roles/code-reviewer/HEARTBEAT.md +33 -0
- package/templates/roles/code-reviewer/SOUL.md +18 -0
- package/templates/roles/code-reviewer/TOOLS.md +3 -0
- package/templates/roles/code-reviewer/role.meta.json +12 -0
- package/templates/roles/cto/AGENTS.md +30 -0
- package/templates/roles/cto/HEARTBEAT.md +45 -0
- package/templates/roles/cto/SOUL.md +25 -0
- package/templates/roles/cto/TOOLS.md +3 -0
- package/templates/roles/cto/role.meta.json +18 -0
- package/templates/roles/customer-success/AGENTS.md +42 -0
- package/templates/roles/customer-success/HEARTBEAT.md +33 -0
- package/templates/roles/customer-success/SOUL.md +17 -0
- package/templates/roles/customer-success/TOOLS.md +3 -0
- package/templates/roles/customer-success/role.meta.json +17 -0
- package/templates/roles/devops/AGENTS.md +31 -0
- package/templates/roles/devops/HEARTBEAT.md +42 -0
- package/templates/roles/devops/SOUL.md +17 -0
- package/templates/roles/devops/TOOLS.md +3 -0
- package/templates/roles/devops/role.meta.json +17 -0
- package/templates/roles/engineer/AGENTS.md +29 -0
- package/templates/roles/engineer/HEARTBEAT.md +39 -0
- package/templates/roles/engineer/SOUL.md +20 -0
- package/templates/roles/engineer/TOOLS.md +3 -0
- package/templates/roles/engineer/role.meta.json +13 -0
- package/templates/roles/game-artist/AGENTS.md +29 -0
- package/templates/roles/game-artist/HEARTBEAT.md +37 -0
- package/templates/roles/game-artist/SOUL.md +24 -0
- package/templates/roles/game-artist/TOOLS.md +3 -0
- package/templates/roles/game-artist/role.meta.json +14 -0
- package/templates/roles/game-designer/AGENTS.md +29 -0
- package/templates/roles/game-designer/HEARTBEAT.md +37 -0
- package/templates/roles/game-designer/SOUL.md +17 -0
- package/templates/roles/game-designer/TOOLS.md +3 -0
- package/templates/roles/game-designer/role.meta.json +14 -0
- package/templates/roles/level-designer/AGENTS.md +29 -0
- package/templates/roles/level-designer/HEARTBEAT.md +37 -0
- package/templates/roles/level-designer/SOUL.md +17 -0
- package/templates/roles/level-designer/TOOLS.md +3 -0
- package/templates/roles/level-designer/role.meta.json +13 -0
- package/templates/roles/product-owner/AGENTS.md +29 -0
- package/templates/roles/product-owner/HEARTBEAT.md +35 -0
- package/templates/roles/product-owner/SOUL.md +17 -0
- package/templates/roles/product-owner/TOOLS.md +3 -0
- package/templates/roles/product-owner/role.meta.json +14 -0
- package/templates/roles/qa/AGENTS.md +31 -0
- package/templates/roles/qa/HEARTBEAT.md +37 -0
- package/templates/roles/qa/SOUL.md +17 -0
- package/templates/roles/qa/TOOLS.md +3 -0
- package/templates/roles/qa/role.meta.json +17 -0
- package/templates/roles/security-engineer/AGENTS.md +42 -0
- package/templates/roles/security-engineer/HEARTBEAT.md +33 -0
- package/templates/roles/security-engineer/SOUL.md +17 -0
- package/templates/roles/security-engineer/TOOLS.md +3 -0
- package/templates/roles/security-engineer/role.meta.json +17 -0
- package/templates/roles/technical-writer/AGENTS.md +41 -0
- package/templates/roles/technical-writer/HEARTBEAT.md +32 -0
- package/templates/roles/technical-writer/SOUL.md +17 -0
- package/templates/roles/technical-writer/TOOLS.md +3 -0
- package/templates/roles/technical-writer/role.meta.json +16 -0
- package/templates/roles/ui-designer/AGENTS.md +29 -0
- package/templates/roles/ui-designer/HEARTBEAT.md +37 -0
- package/templates/roles/ui-designer/SOUL.md +17 -0
- package/templates/roles/ui-designer/TOOLS.md +3 -0
- package/templates/roles/ui-designer/role.meta.json +17 -0
- package/templates/roles/ux-researcher/AGENTS.md +29 -0
- package/templates/roles/ux-researcher/HEARTBEAT.md +37 -0
- package/templates/roles/ux-researcher/SOUL.md +17 -0
- package/templates/roles/ux-researcher/TOOLS.md +3 -0
- package/templates/roles/ux-researcher/role.meta.json +14 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# PR Conventions
|
|
2
|
+
|
|
3
|
+
## Branch Naming
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
<prefix>-<N>/<short-description>
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Where `<prefix>` is the company issue prefix (lowercase) and `<N>` is the issue number.
|
|
10
|
+
|
|
11
|
+
Examples: `yes-6/add-auth-endpoint`, `yes-12/fix-game-loop`
|
|
12
|
+
|
|
13
|
+
## PR Title
|
|
14
|
+
|
|
15
|
+
Use Conventional Commits format:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
<type>: <short description>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Types: `feat`, `fix`, `docs`, `chore`, `refactor`, `test`, `perf`
|
|
22
|
+
|
|
23
|
+
Rules: lowercase after colon, no period, under 72 chars.
|
|
24
|
+
|
|
25
|
+
## PR Body Template
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
## What changed
|
|
29
|
+
<Brief description of the changes>
|
|
30
|
+
|
|
31
|
+
## Why
|
|
32
|
+
<Motivation and context>
|
|
33
|
+
|
|
34
|
+
## How to test
|
|
35
|
+
<Steps to verify the changes>
|
|
36
|
+
|
|
37
|
+
## Related
|
|
38
|
+
Closes [PREFIX-N]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Labels
|
|
42
|
+
|
|
43
|
+
Apply one primary label: `feature`, `bug`, `docs`, `chore`, `infra`, `agent`.
|
|
44
|
+
|
|
45
|
+
## Review Workflow
|
|
46
|
+
|
|
47
|
+
Two-role review via @-mention on the originating issue:
|
|
48
|
+
|
|
49
|
+
1. **Engineer** opens PR on GitHub
|
|
50
|
+
2. **Engineer** sets originating issue to `in_review`
|
|
51
|
+
3. **Engineer** @-mentions @Code Reviewer and @Product Owner on the issue with PR link
|
|
52
|
+
4. **Code Reviewer** reviews for correctness, security, code style, simplicity
|
|
53
|
+
5. **Product Owner** reviews for intent match, scope discipline, acceptance criteria, roadmap alignment
|
|
54
|
+
6. Both reviewers post their verdict on the issue
|
|
55
|
+
7. **Engineer** merges when both approve, sets issue to `done`
|
|
56
|
+
|
|
57
|
+
## Review Roles
|
|
58
|
+
|
|
59
|
+
- **Code Reviewer**: Correctness, security, style, simplicity. Uses `gh pr review`.
|
|
60
|
+
- **Product Owner**: Intent alignment, scope discipline, acceptance criteria. Posts review as PR comment.
|
|
61
|
+
- **UI Designer** *(when present)*: Visual consistency, brand compliance, accessibility, design token usage.
|
|
62
|
+
- **UX Researcher** *(when present)*: Usability, user flow integrity, cognitive load, error handling UX.
|
|
63
|
+
- **QA Engineer** *(when present)*: Test coverage, edge cases, regression risk, boundary conditions.
|
|
64
|
+
- **DevOps Engineer** *(when present)*: Infrastructure impact, security, performance, rollback safety.
|
|
65
|
+
|
|
66
|
+
## Merge Rules
|
|
67
|
+
|
|
68
|
+
- Code Reviewer and Product Owner must approve (required)
|
|
69
|
+
- Other reviewers provide advisory feedback — blocking only for their domain-critical issues (e.g., security for DevOps, accessibility for UI Designer)
|
|
70
|
+
- CI must pass
|
|
71
|
+
- No force pushes
|
|
72
|
+
- Merge using `gh pr merge <number> --merge`
|
|
73
|
+
- Engineer is the merge owner — reviewers never merge
|
|
74
|
+
|
|
75
|
+
## Dev Cycle Rules
|
|
76
|
+
|
|
77
|
+
**Requires PR**: code logic, APIs, DB schema, agent configs, infrastructure
|
|
78
|
+
**Direct-to-main OK**: typos, comment-only changes, minor doc fixes (must reference issue)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pr-review",
|
|
3
|
+
"description": "Enforces pull request reviews through branch protection. Activates additional reviewers based on the roles present in the team.",
|
|
4
|
+
"requires": [
|
|
5
|
+
"github-repo"
|
|
6
|
+
],
|
|
7
|
+
"activatesWithRoles": [
|
|
8
|
+
"engineer",
|
|
9
|
+
"code-reviewer",
|
|
10
|
+
"product-owner",
|
|
11
|
+
"ui-designer",
|
|
12
|
+
"ux-researcher",
|
|
13
|
+
"qa",
|
|
14
|
+
"devops"
|
|
15
|
+
],
|
|
16
|
+
"capabilities": [],
|
|
17
|
+
"issues": [
|
|
18
|
+
{
|
|
19
|
+
"title": "Set up branch protection and PR requirements",
|
|
20
|
+
"assignTo": "engineer",
|
|
21
|
+
"description": "Configure the GitHub repository with branch protection on main: require PR reviews, disable direct pushes. Verify the PR workflow works with a test branch."
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
package/templates/modules/release-management/agents/engineer/skills/release-process.fallback.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Skill: Release Process (Fallback)
|
|
2
|
+
|
|
3
|
+
DevOps primarily owns the release process. You are the fallback — step in only if DevOps is absent.
|
|
4
|
+
|
|
5
|
+
## Release Process (Fallback)
|
|
6
|
+
|
|
7
|
+
1. If no `docs/RELEASE-PROCESS.md` exists and DevOps hasn't started:
|
|
8
|
+
- Check the project for existing versioning (git tags, package.json version)
|
|
9
|
+
- Document the current state in `docs/RELEASE-PROCESS.md`
|
|
10
|
+
- If no process exists, set up basic semver + CHANGELOG.md
|
|
11
|
+
- Mark the document as **provisional** — it needs DevOps review for CI integration and rollback procedures
|
|
12
|
+
2. If DevOps is active, skip this entirely.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- This is a safety net. Document what exists and set up the basics.
|
|
17
|
+
- Skip CI/CD release automation — that requires DevOps expertise.
|
|
18
|
+
- Don't configure deployment targets or rollback infrastructure — leave that to DevOps.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "release-management",
|
|
3
|
+
"description": "Defines and tracks the release process: versioning, changelogs, and deployment checklists.",
|
|
4
|
+
"requires": [
|
|
5
|
+
"github-repo"
|
|
6
|
+
],
|
|
7
|
+
"capabilities": [
|
|
8
|
+
{
|
|
9
|
+
"skill": "release-process",
|
|
10
|
+
"owners": [
|
|
11
|
+
"devops",
|
|
12
|
+
"engineer",
|
|
13
|
+
"ceo"
|
|
14
|
+
],
|
|
15
|
+
"fallbackSkill": "release-process.fallback"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"issues": [
|
|
19
|
+
{
|
|
20
|
+
"title": "Document or establish release process",
|
|
21
|
+
"assignTo": "capability:release-process",
|
|
22
|
+
"description": "Review the current release workflow. If one exists, document it in docs/RELEASE-PROCESS.md. If not, establish a semver + changelog workflow with tagging conventions."
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Skill: Release Process
|
|
2
|
+
|
|
3
|
+
You are responsible for managing the release lifecycle — versioning, changelogs, tagging, and rollback procedures.
|
|
4
|
+
|
|
5
|
+
## Steps
|
|
6
|
+
|
|
7
|
+
1. **Assess current state** — Check if the project already has:
|
|
8
|
+
- A versioning scheme (package.json version, git tags, etc.)
|
|
9
|
+
- A CHANGELOG.md or release notes history
|
|
10
|
+
- A release branch strategy or tag-based releases
|
|
11
|
+
- CI/CD release automation (GitHub Actions release workflow, etc.)
|
|
12
|
+
|
|
13
|
+
2. **Establish or document the release process** in `docs/RELEASE-PROCESS.md`:
|
|
14
|
+
- **Versioning** — Semantic Versioning (MAJOR.MINOR.PATCH). Document what constitutes each level.
|
|
15
|
+
- **Changelog** — Keep a CHANGELOG.md following Keep a Changelog format. Update it with every release.
|
|
16
|
+
- **Tagging** — Tag releases as `vX.Y.Z`. Tags trigger release workflows if CI is configured.
|
|
17
|
+
- **Release workflow:**
|
|
18
|
+
1. Ensure all PRs for the release are merged
|
|
19
|
+
2. Update version in package manifest
|
|
20
|
+
3. Update CHANGELOG.md with release notes
|
|
21
|
+
4. Commit: `chore: release vX.Y.Z`
|
|
22
|
+
5. Tag: `git tag vX.Y.Z`
|
|
23
|
+
6. Push: `git push origin main --tags`
|
|
24
|
+
- **Rollback** — Document how to revert a bad release (revert commit + patch release, or redeploy previous tag).
|
|
25
|
+
|
|
26
|
+
3. **Execute releases** when the codebase reaches a release-worthy state:
|
|
27
|
+
- Compile changelog entries from merged PRs and closed issues since last release
|
|
28
|
+
- Bump version according to the nature of changes
|
|
29
|
+
- Create the release commit and tag
|
|
30
|
+
- Create a GitHub Release with notes: `gh release create vX.Y.Z --notes "..."`
|
|
31
|
+
|
|
32
|
+
## Ongoing
|
|
33
|
+
|
|
34
|
+
On each heartbeat:
|
|
35
|
+
1. Check if unreleased changes have accumulated — review commits since last tag.
|
|
36
|
+
2. If significant changes exist without a release, flag it or initiate a release.
|
|
37
|
+
3. Ensure CHANGELOG.md stays up to date with merged work.
|
|
38
|
+
|
|
39
|
+
## Rules
|
|
40
|
+
|
|
41
|
+
- Never release with failing tests or CI. Verify the build passes before tagging.
|
|
42
|
+
- One version bump per release. Don't skip versions.
|
|
43
|
+
- Changelog entries should describe user-visible changes, not internal refactors.
|
|
44
|
+
- Rollback procedures must be tested — don't document a rollback you haven't verified.
|
|
45
|
+
- Coordinate with the team before major version bumps — breaking changes need communication.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Skill: Security Review (Fallback)
|
|
2
|
+
|
|
3
|
+
The Security Engineer owns security review above you. You are the fallback — step in if the Security Engineer is absent.
|
|
4
|
+
|
|
5
|
+
## Security Review (Fallback)
|
|
6
|
+
|
|
7
|
+
1. If no `docs/SECURITY-REVIEW.md` exists and the Security Engineer hasn't started:
|
|
8
|
+
- Audit infrastructure config: Dockerfiles, CI/CD pipelines, cloud IAM, secrets management
|
|
9
|
+
- Check deployment security: TLS, security headers, network policies
|
|
10
|
+
- Document in `docs/SECURITY-REVIEW.md`
|
|
11
|
+
- Tag the Security Engineer to expand with application-layer review
|
|
12
|
+
2. If the Security Engineer is active, skip this entirely.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- Focus on infrastructure and deployment security — that's your domain.
|
|
17
|
+
- Let the Security Engineer own comprehensive code-level reviews.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Skill: Threat Model (Fallback)
|
|
2
|
+
|
|
3
|
+
The Security Engineer owns threat modeling above you. You are the fallback — step in if the Security Engineer is absent.
|
|
4
|
+
|
|
5
|
+
## Threat Model (Fallback)
|
|
6
|
+
|
|
7
|
+
1. If no `docs/THREAT-MODEL.md` exists and the Security Engineer hasn't started:
|
|
8
|
+
- Map the infrastructure attack surface: exposed ports, network boundaries, cloud IAM
|
|
9
|
+
- Identify deployment-specific risks: container escapes, supply chain, CI/CD pipeline security
|
|
10
|
+
- Document in `docs/THREAT-MODEL.md`
|
|
11
|
+
- Tag the Security Engineer to expand with application-layer analysis
|
|
12
|
+
2. If the Security Engineer is active, skip this entirely.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- Focus on infrastructure and deployment threats — that's your domain.
|
|
17
|
+
- Let the Security Engineer own the full threat model.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Skill: Security Review (Fallback)
|
|
2
|
+
|
|
3
|
+
The Security Engineer and DevOps own security review above you. You are the last-resort fallback — step in only if both are absent or haven't performed the review.
|
|
4
|
+
|
|
5
|
+
## Security Review (Fallback)
|
|
6
|
+
|
|
7
|
+
1. If no `docs/SECURITY-REVIEW.md` exists and the Security Engineer hasn't started:
|
|
8
|
+
- Run `npm audit` (or equivalent) and document critical CVEs
|
|
9
|
+
- Check for obvious issues: hardcoded secrets, missing input validation, permissive CORS
|
|
10
|
+
- Document in `docs/SECURITY-REVIEW.md`
|
|
11
|
+
- Tag the Security Engineer or DevOps to expand the review
|
|
12
|
+
2. If the Security Engineer or DevOps is active, skip this entirely.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- This is a safety net. Focus on the most obvious vulnerabilities.
|
|
17
|
+
- Let the Security Engineer own comprehensive security reviews.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Skill: Threat Model (Fallback)
|
|
2
|
+
|
|
3
|
+
The Security Engineer and DevOps own threat modeling above you. You are the last-resort fallback — step in only if both are absent or haven't delivered the analysis.
|
|
4
|
+
|
|
5
|
+
## Threat Model (Fallback)
|
|
6
|
+
|
|
7
|
+
1. If no `docs/THREAT-MODEL.md` exists and the Security Engineer hasn't started:
|
|
8
|
+
- Write a brief security overview: main attack surfaces, obvious risks
|
|
9
|
+
- Focus on the OWASP Top 10 most relevant to the project
|
|
10
|
+
- Document in `docs/THREAT-MODEL.md`
|
|
11
|
+
- Tag the Security Engineer or DevOps to expand and maintain the model
|
|
12
|
+
2. If the Security Engineer or DevOps is active, skip this entirely.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- This is a safety net. Keep it focused on the highest-impact risks.
|
|
17
|
+
- Let the Security Engineer own ongoing security analysis.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "security-audit",
|
|
3
|
+
"description": "Runs a threat model and security review of the codebase. Identifies vulnerabilities before they ship.",
|
|
4
|
+
"capabilities": [
|
|
5
|
+
{
|
|
6
|
+
"skill": "threat-model",
|
|
7
|
+
"owners": [
|
|
8
|
+
"security-engineer",
|
|
9
|
+
"devops",
|
|
10
|
+
"engineer"
|
|
11
|
+
],
|
|
12
|
+
"fallbackSkill": "threat-model.fallback"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"skill": "security-review",
|
|
16
|
+
"owners": [
|
|
17
|
+
"security-engineer",
|
|
18
|
+
"devops",
|
|
19
|
+
"engineer"
|
|
20
|
+
],
|
|
21
|
+
"fallbackSkill": "security-review.fallback"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"issues": [
|
|
25
|
+
{
|
|
26
|
+
"title": "Conduct initial threat model",
|
|
27
|
+
"assignTo": "capability:threat-model",
|
|
28
|
+
"description": "Identify attack surfaces, trust boundaries, and data flows using STRIDE methodology. Document the threat model in docs/THREAT-MODEL.md with risk ratings and mitigation recommendations."
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"title": "Perform initial security review",
|
|
32
|
+
"assignTo": "capability:security-review",
|
|
33
|
+
"description": "Audit the codebase for OWASP Top 10 vulnerabilities, dependency CVEs, secrets exposure, and configuration issues. Document findings in docs/SECURITY-REVIEW.md with severity ratings."
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Skill: Security Review
|
|
2
|
+
|
|
3
|
+
You own security code review for the project. This catches vulnerabilities in the codebase.
|
|
4
|
+
|
|
5
|
+
## Security Review Process
|
|
6
|
+
|
|
7
|
+
1. Review the codebase systematically, checking for:
|
|
8
|
+
- **Injection**: SQL injection, command injection, XSS, template injection
|
|
9
|
+
- **Authentication**: Weak auth flows, missing MFA, session management issues
|
|
10
|
+
- **Authorization**: Missing access controls, privilege escalation, IDOR
|
|
11
|
+
- **Data exposure**: Leaked secrets, verbose errors, unnecessary data in responses
|
|
12
|
+
- **Dependencies**: Known CVEs in dependencies (`npm audit` or equivalent)
|
|
13
|
+
- **Configuration**: Missing security headers, permissive CORS, debug mode in production
|
|
14
|
+
2. Document in `docs/SECURITY-REVIEW.md`:
|
|
15
|
+
- **Findings** with severity (Critical/High/Medium/Low), location, and evidence
|
|
16
|
+
- **Recommendations** for each finding with specific fix guidance
|
|
17
|
+
- **Dependency report** with CVE details
|
|
18
|
+
3. Create follow-up issues for Critical and High findings
|
|
19
|
+
4. Record summary in your daily notes
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
- Be specific. Include file paths, line numbers, and reproduction steps.
|
|
24
|
+
- Always pair a finding with a recommended fix.
|
|
25
|
+
- Flag secrets exposure as Critical — these need immediate action.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Skill: Threat Model
|
|
2
|
+
|
|
3
|
+
You own threat modeling for the project. This identifies security risks before they become vulnerabilities.
|
|
4
|
+
|
|
5
|
+
## Threat Modeling Process
|
|
6
|
+
|
|
7
|
+
1. Review the system architecture — if `docs/ARCHITECTURE.md` exists, use it as the starting point. Otherwise, analyze the codebase structure directly.
|
|
8
|
+
2. Document in `docs/THREAT-MODEL.md`:
|
|
9
|
+
- **System overview**: Components, data flows, trust boundaries
|
|
10
|
+
- **Attack surfaces**: Entry points, APIs, user inputs, external integrations
|
|
11
|
+
- **Threats (STRIDE)**: Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege
|
|
12
|
+
- **Risk ratings**: Likelihood x Impact = Risk (Critical/High/Medium/Low)
|
|
13
|
+
- **Mitigations**: Recommended controls for each threat
|
|
14
|
+
3. Create follow-up issues for Critical and High risks:
|
|
15
|
+
- `POST /api/companies/{companyId}/issues` with specific remediation tasks. Include the active `projectId` (and `goalId` / `parentId` when applicable).
|
|
16
|
+
4. Record summary in your daily notes
|
|
17
|
+
|
|
18
|
+
## Rules
|
|
19
|
+
|
|
20
|
+
- Focus on realistic threats, not theoretical edge cases.
|
|
21
|
+
- Prioritize by risk, not by quantity. Five Critical findings beat fifty Low ones.
|
|
22
|
+
- Update the threat model when architecture changes significantly.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Module: stall-detection
|
|
2
|
+
|
|
3
|
+
Adds periodic stall detection to the CEO heartbeat.
|
|
4
|
+
|
|
5
|
+
## What it adds
|
|
6
|
+
|
|
7
|
+
- **CEO skill**: Stall check — detects issues stuck in `in_progress` or `in_review` for too long, and nudges the responsible agent or escalates.
|
|
8
|
+
|
|
9
|
+
## How it works
|
|
10
|
+
|
|
11
|
+
On every heartbeat, the CEO checks:
|
|
12
|
+
1. Are there issues in `in_progress` or `in_review` that haven't been updated recently?
|
|
13
|
+
2. If an issue appears stalled (no activity for a configurable period):
|
|
14
|
+
- Check if the assigned agent is running or idle
|
|
15
|
+
- If idle: @-mention the agent on the issue to re-trigger
|
|
16
|
+
- If the agent has been nudged before without response: escalate to the board
|
|
17
|
+
3. This catches failed handovers where an @-mention didn't trigger a wake.
|
|
18
|
+
|
|
19
|
+
## Best for
|
|
20
|
+
|
|
21
|
+
- Any team using @-mention-based handover (which can be unreliable)
|
|
22
|
+
- Multi-agent teams where work can get dropped between agents
|
|
23
|
+
- Ensuring nothing falls through the cracks
|
|
24
|
+
|
|
25
|
+
## Example
|
|
26
|
+
|
|
27
|
+
An engineer finishes a PR and @-mentions the Code Reviewer, but the mention doesn't trigger a wake. The CEO detects the stalled issue on the next heartbeat and re-mentions the reviewer or escalates.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
## Stall Detection Check
|
|
2
|
+
|
|
3
|
+
After handling assignments and before exit:
|
|
4
|
+
|
|
5
|
+
1. Query active issues: `GET /api/companies/{companyId}/issues?status=in_progress,in_review`
|
|
6
|
+
2. For each issue, check the latest comment/activity timestamp.
|
|
7
|
+
3. If an issue has had no activity for more than 2 heartbeat cycles:
|
|
8
|
+
- Agent is `idle` → @-mention with a nudge.
|
|
9
|
+
- Agent is `running` → skip (may be mid-work).
|
|
10
|
+
- Agent is `error` or `paused` → escalate to the board.
|
|
11
|
+
4. If already nudged and still no progress → escalate to the board.
|
|
12
|
+
5. Record stall findings in daily notes.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Skill: Stall Detection
|
|
2
|
+
|
|
3
|
+
Add this check to your heartbeat, after handling assignments and before exit.
|
|
4
|
+
|
|
5
|
+
## Stall Check
|
|
6
|
+
|
|
7
|
+
1. Query active issues: `GET /api/companies/{companyId}/issues?status=in_progress,in_review`
|
|
8
|
+
2. For each issue, check the latest comment/activity timestamp.
|
|
9
|
+
3. If an issue has had no activity for more than 2 heartbeat cycles:
|
|
10
|
+
- Check the assigned agent's status via `GET /api/agents/{agentId}`
|
|
11
|
+
- If agent is `idle`: @-mention them on the issue with a nudge: "This issue appears stalled. Please check and continue or report blockers."
|
|
12
|
+
- If agent is `running`: skip — they may be working on it now.
|
|
13
|
+
- If agent is `error` or `paused`: escalate to the board with a comment.
|
|
14
|
+
4. If you've already nudged an agent on the same issue in a previous heartbeat and there's still no progress: escalate to the board.
|
|
15
|
+
5. Record stall findings in your daily notes.
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
|
|
19
|
+
- Don't nudge agents that are currently running — they may be mid-work.
|
|
20
|
+
- Only escalate after one failed nudge attempt.
|
|
21
|
+
- When escalating, be specific: which issue, which agent, how long stalled, what was the last activity.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "stall-detection",
|
|
3
|
+
"description": "Detects when issues go stale or agents get stuck. Prompts the CEO to unblock work automatically.",
|
|
4
|
+
"capabilities": [],
|
|
5
|
+
"routines": [
|
|
6
|
+
{
|
|
7
|
+
"title": "Stall detection",
|
|
8
|
+
"description": "Check all in_progress issues for signs of stalling. Nudge assigned agents, escalate if blocked for >24h.",
|
|
9
|
+
"assignTo": "ceo",
|
|
10
|
+
"schedule": "0 9,14 * * 1-5",
|
|
11
|
+
"priority": "medium",
|
|
12
|
+
"concurrencyPolicy": "skip_if_active"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Skill: Tech Stack Evaluation (Fallback)
|
|
2
|
+
|
|
3
|
+
The Engineer primarily owns technology decisions. You are the fallback — step in only if no engineer has addressed tech stack decisions.
|
|
4
|
+
|
|
5
|
+
## Tech Stack Evaluation (Fallback)
|
|
6
|
+
|
|
7
|
+
1. If no `docs/TECH-STACK.md` exists and no engineer has started:
|
|
8
|
+
- Make pragmatic default choices based on the project type
|
|
9
|
+
- Document in `docs/TECH-STACK.md` with clear rationale
|
|
10
|
+
- Create an issue for the engineer to review and refine the choices
|
|
11
|
+
2. If an engineer is active, skip this entirely.
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
|
|
15
|
+
- This is a safety net. Choose sensible defaults, not optimal solutions.
|
|
16
|
+
- Let the engineer own and refine the actual decisions.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Tech Stack
|
|
2
|
+
|
|
3
|
+
## Chosen Stack
|
|
4
|
+
|
|
5
|
+
| Layer | Technology | Version | Notes |
|
|
6
|
+
|-------------|-----------|---------|-------|
|
|
7
|
+
| Language | _..._ | _..._ | _..._ |
|
|
8
|
+
| Framework | _..._ | _..._ | _..._ |
|
|
9
|
+
| Database | _..._ | _..._ | _..._ |
|
|
10
|
+
| Hosting | _..._ | _..._ | _..._ |
|
|
11
|
+
| CI/CD | _..._ | _..._ | _..._ |
|
|
12
|
+
|
|
13
|
+
## Rationale
|
|
14
|
+
|
|
15
|
+
_Why each choice was made._
|
|
16
|
+
|
|
17
|
+
## Trade-offs
|
|
18
|
+
|
|
19
|
+
_What was considered and rejected, and why._
|
|
20
|
+
|
|
21
|
+
## Key Dependencies
|
|
22
|
+
|
|
23
|
+
| Package | Purpose | License |
|
|
24
|
+
|---------|---------|---------|
|
|
25
|
+
| _..._ | _..._ | _..._ |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
_Generated by Clipper. Fill in during tech-stack task._
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tech-stack",
|
|
3
|
+
"description": "Documents the technology choices for the project: languages, frameworks, infrastructure, and rationale.",
|
|
4
|
+
"capabilities": [
|
|
5
|
+
{
|
|
6
|
+
"skill": "tech-stack",
|
|
7
|
+
"owners": [
|
|
8
|
+
"engineer",
|
|
9
|
+
"ceo"
|
|
10
|
+
],
|
|
11
|
+
"fallbackSkill": "tech-stack.fallback"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"issues": [
|
|
15
|
+
{
|
|
16
|
+
"title": "Evaluate and document technology choices",
|
|
17
|
+
"assignTo": "capability:tech-stack",
|
|
18
|
+
"description": "Assess technology options for the project based on goals, constraints, and team capabilities. Document decisions, trade-offs, and rationale in docs/TECH-STACK.md."
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Skill: Tech Stack Evaluation
|
|
2
|
+
|
|
3
|
+
You own technology decisions. Evaluate options and document choices that align with the project goals and constraints.
|
|
4
|
+
|
|
5
|
+
## Tech Stack Evaluation Process
|
|
6
|
+
|
|
7
|
+
1. Review the company goal, project requirements, and architecture constraints
|
|
8
|
+
2. For each technology layer (language, framework, database, infra, etc.):
|
|
9
|
+
- List viable options
|
|
10
|
+
- Evaluate against criteria: team familiarity, ecosystem maturity, performance, cost
|
|
11
|
+
- Document the decision and rationale
|
|
12
|
+
3. Write the complete tech stack to `docs/TECH-STACK.md`:
|
|
13
|
+
- **Chosen stack**: Technology per layer with version
|
|
14
|
+
- **Rationale**: Why each choice was made
|
|
15
|
+
- **Trade-offs**: What was considered and rejected, and why
|
|
16
|
+
- **Dependencies**: Key libraries and their purposes
|
|
17
|
+
4. Create setup issues if needed:
|
|
18
|
+
- `POST /api/companies/{companyId}/issues` for initial project scaffolding. Include the active `projectId` (and `goalId` / `parentId` when applicable).
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Prefer boring technology over bleeding edge unless the goal demands it.
|
|
23
|
+
- Document trade-offs honestly — future team members need to understand constraints.
|
|
24
|
+
- Consider the team's existing capabilities when choosing.
|
|
25
|
+
- If a decision requires board input (e.g., paid services), create an approval request.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Skill: Issue Triage (Fallback)
|
|
2
|
+
|
|
3
|
+
The Product Owner or Engineer primarily owns issue triage. You are the fallback — step in only if they are absent or haven't triaged recently.
|
|
4
|
+
|
|
5
|
+
## Issue Triage (Fallback)
|
|
6
|
+
|
|
7
|
+
1. Check for untriaged GitHub issues: `gh issue list --state open --label ""`
|
|
8
|
+
2. If issues are piling up without responses:
|
|
9
|
+
- Classify each as bug, feature, question, or invalid
|
|
10
|
+
- Respond with a brief acknowledgment
|
|
11
|
+
- Create Paperclip tasks for actionable items with priority set
|
|
12
|
+
- Close duplicates and invalid issues with explanation
|
|
13
|
+
3. If the Product Owner or Engineer is active and triaging, skip this entirely.
|
|
14
|
+
|
|
15
|
+
## Rules
|
|
16
|
+
|
|
17
|
+
- This is a safety net. Keep responses brief but respectful.
|
|
18
|
+
- Focus on P0/P1 issues first — lower priority can wait for the primary owner.
|
|
19
|
+
- Don't make product decisions on feature requests — just acknowledge and create the task.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "triage",
|
|
3
|
+
"description": "Triages open GitHub issues: classifies, prioritizes, closes noise, and converts actionable items to Paperclip tasks.",
|
|
4
|
+
"requires": [
|
|
5
|
+
"github-repo"
|
|
6
|
+
],
|
|
7
|
+
"capabilities": [
|
|
8
|
+
{
|
|
9
|
+
"skill": "issue-triage",
|
|
10
|
+
"owners": [
|
|
11
|
+
"product-owner",
|
|
12
|
+
"engineer",
|
|
13
|
+
"ceo"
|
|
14
|
+
],
|
|
15
|
+
"fallbackSkill": "issue-triage.fallback"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"issues": [
|
|
19
|
+
{
|
|
20
|
+
"title": "Triage all open GitHub issues",
|
|
21
|
+
"assignTo": "capability:issue-triage",
|
|
22
|
+
"description": "Review all currently open issues on the GitHub repository. Classify each by type and priority, respond to reporters, close duplicates and invalid issues, and convert actionable items into Paperclip tasks."
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Skill: Issue Triage
|
|
2
|
+
|
|
3
|
+
You are responsible for processing inbound GitHub issues — classifying, responding, and converting them into actionable work.
|
|
4
|
+
|
|
5
|
+
## Triage Process
|
|
6
|
+
|
|
7
|
+
Run this on every heartbeat, after handling your own assignments.
|
|
8
|
+
|
|
9
|
+
1. **Fetch new issues** — `gh issue list --state open --label "" --json number,title,body,labels,createdAt` to find untriaged issues (no classification label yet).
|
|
10
|
+
2. **For each untriaged issue:**
|
|
11
|
+
a. Read the full issue body and any comments.
|
|
12
|
+
b. **Classify** by type:
|
|
13
|
+
- `bug` — Something is broken or behaves unexpectedly
|
|
14
|
+
- `feature` — New functionality request
|
|
15
|
+
- `enhancement` — Improvement to existing functionality
|
|
16
|
+
- `question` — User needs help or clarification
|
|
17
|
+
- `duplicate` — Already reported (link to original)
|
|
18
|
+
- `invalid` — Not actionable, out of scope, or spam
|
|
19
|
+
c. **Set priority** (P0–P3):
|
|
20
|
+
- P0: Production broken, data loss, security vulnerability
|
|
21
|
+
- P1: Major feature broken, blocking multiple users
|
|
22
|
+
- P2: Non-critical bug or important feature request
|
|
23
|
+
- P3: Minor issue, cosmetic, nice-to-have
|
|
24
|
+
d. **Apply labels** — `gh issue edit <number> --add-label "<type>,<priority>"`
|
|
25
|
+
e. **Respond to reporter:**
|
|
26
|
+
- Acknowledge the report
|
|
27
|
+
- Ask follow-up questions if reproduction steps are unclear (bugs)
|
|
28
|
+
- Set expectations ("we'll look into this" / "this is out of scope because...")
|
|
29
|
+
- For duplicates: link to the original issue and close
|
|
30
|
+
- For invalid: explain why and close politely
|
|
31
|
+
f. **Convert to Paperclip task** — For actionable issues (bug, feature, enhancement), create a corresponding issue in Paperclip via `POST /api/companies/{companyId}/issues` with the GitHub issue number in the description for traceability. Include the active `projectId` (and `goalId` / `parentId` when applicable).
|
|
32
|
+
|
|
33
|
+
3. **Record** what you triaged in your daily notes.
|
|
34
|
+
|
|
35
|
+
## Rules
|
|
36
|
+
|
|
37
|
+
- Respond to every issue. No issue should sit without acknowledgment for more than one heartbeat cycle.
|
|
38
|
+
- Be respectful and constructive in responses, even for invalid or duplicate issues.
|
|
39
|
+
- Don't close legitimate issues without explanation. Always comment before closing.
|
|
40
|
+
- Link GitHub issues to Paperclip tasks bidirectionally — include the GitHub URL in the Paperclip issue and the Paperclip task reference in a GitHub comment.
|
|
41
|
+
- If you can't classify an issue (ambiguous report), ask the reporter for clarification and label as `needs-info`.
|
|
42
|
+
- Escalate P0 issues immediately — create the Paperclip task with priority `urgent` and mention it in the CEO's daily notes.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Skill: User Testing (Fallback)
|
|
2
|
+
|
|
3
|
+
QA, the UX Researcher, and PO all own usability evaluations above you. You are the last-resort fallback — step in only if all three are absent or haven't started testing.
|
|
4
|
+
|
|
5
|
+
## User Testing (Fallback)
|
|
6
|
+
|
|
7
|
+
1. If no `docs/USER-TESTING.md` exists and no one has started:
|
|
8
|
+
- Create a basic heuristic checklist covering the core user flow
|
|
9
|
+
- Identify the top 3-5 usability concerns based on product goals
|
|
10
|
+
- Document in `docs/USER-TESTING.md`
|
|
11
|
+
- Mark all findings as **provisional** — they need validation by QA, a researcher, or PO
|
|
12
|
+
2. If QA, the researcher, or PO is active, skip this entirely.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- This is a safety net. Keep it brief — enough to flag obvious issues.
|
|
17
|
+
- Let QA, the researcher, or PO own ongoing usability evaluation.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Skill: User Testing (Fallback)
|
|
2
|
+
|
|
3
|
+
QA and the UX Researcher primarily own usability evaluation. You are the fallback — step in only if both are absent or haven't started testing.
|
|
4
|
+
|
|
5
|
+
## User Testing (Fallback)
|
|
6
|
+
|
|
7
|
+
1. If no `docs/USER-TESTING.md` exists and no one above you has started:
|
|
8
|
+
- Create a basic test plan covering the most critical user flows
|
|
9
|
+
- Evaluate against acceptance criteria from the product roadmap
|
|
10
|
+
- Document findings in `docs/USER-TESTING.md`
|
|
11
|
+
- Mark all findings as **provisional** — they need validation by QA or a researcher
|
|
12
|
+
2. If QA or the researcher is active, skip this entirely.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- This is a safety net. Focus on acceptance criteria and business-critical flows.
|
|
17
|
+
- Let QA own systematic testing and the researcher own user-centered evaluation.
|