@starlein/paperclip-plugin-company-wizard 0.4.7 → 0.4.9
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/CHANGELOG.md +49 -0
- package/dist/manifest.js +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/worker.js +1 -1
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
- package/templates/modules/architecture-plan/agents/ceo/skills/architecture-plan.bar.md +17 -0
- package/templates/modules/architecture-plan/agents/ui-designer/skills/architecture-plan.md +2 -0
- package/templates/modules/architecture-plan/agents/ui-designer/skills/design-system.md +4 -3
- package/templates/modules/architecture-plan/skills/design-system.md +25 -0
- package/templates/modules/brand-identity/agents/ceo/skills/brand-identity.fallback.md +4 -4
- package/templates/modules/brand-identity/skills/brand-identity.md +1 -1
- package/templates/modules/ci-cd/agents/engineer/skills/ci-cd.fallback.md +2 -1
- package/templates/modules/ci-cd/skills/ci-cd.md +13 -2
- package/templates/modules/codebase-onboarding/agents/ceo/skills/codebase-audit.fallback.md +10 -0
- package/templates/modules/competitive-intel/agents/product-owner/skills/competitive-tracking.fallback.md +19 -0
- package/templates/modules/competitive-intel/skills/competitive-tracking.bar.md +11 -0
- package/templates/modules/dependency-management/module.meta.json +9 -0
- package/templates/modules/dependency-management/skills/dependency-audit.md +8 -5
- package/templates/modules/documentation/skills/project-docs.bar.md +13 -0
- package/templates/modules/game-design/skills/game-design.bar.md +13 -0
- package/templates/modules/github-repo/agents/engineer/skills/git-workflow.md +22 -7
- package/templates/modules/github-repo/docs/git-workflow.md +17 -1
- package/templates/modules/market-analysis/docs/market-analysis-template.md +17 -0
- package/templates/modules/monitoring/agents/engineer/skills/monitoring.fallback.md +1 -1
- package/templates/modules/monitoring/skills/monitoring.md +3 -1
- package/templates/modules/pr-review/agents/code-reviewer/skills/code-review.md +19 -5
- package/templates/modules/pr-review/agents/engineer/skills/pr-workflow.md +20 -4
- package/templates/modules/release-management/agents/ceo/skills/release-process.fallback.md +20 -0
- package/templates/modules/release-management/module.meta.json +9 -0
- package/templates/modules/release-management/skills/release-process.md +7 -5
- package/templates/modules/triage/agents/ceo/skills/issue-triage.fallback.md +2 -2
- package/templates/modules/website-relaunch/module.meta.json +0 -15
- package/templates/roles/ceo/HEARTBEAT.md +1 -1
- package/templates/roles/cmo/AGENTS.md +15 -0
- package/templates/roles/cmo/HEARTBEAT.md +1 -1
- package/templates/roles/code-reviewer/AGENTS.md +2 -2
- package/templates/roles/code-reviewer/HEARTBEAT.md +2 -1
- package/templates/roles/cto/AGENTS.md +22 -0
- package/templates/roles/cto/HEARTBEAT.md +1 -1
- package/templates/roles/devops/AGENTS.md +21 -0
- package/templates/roles/devops/HEARTBEAT.md +1 -1
- package/templates/roles/product-owner/SOUL.md +4 -1
- package/templates/roles/qa/HEARTBEAT.md +3 -2
- package/templates/roles/security-engineer/AGENTS.md +7 -0
- package/templates/roles/technical-writer/AGENTS.md +1 -1
- package/templates/roles/ui-designer/HEARTBEAT.md +1 -1
- package/templates/roles/ux-researcher/AGENTS.md +21 -0
- package/templates/roles/ux-researcher/HEARTBEAT.md +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starlein/paperclip-plugin-company-wizard",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AI-powered wizard to bootstrap paperclip agent companies from composable templates (for latest paperclip version)",
|
|
6
6
|
"repository": "https://github.com/starlein/paperclip-plugin-company-wizard",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## Architecture Plan — Done Bar (CEO Fallback)
|
|
2
|
+
|
|
3
|
+
**Done:**
|
|
4
|
+
- `docs/ARCHITECTURE.md` exists with at least: a brief system overview (what the system does, its main components), the primary data flows, and a clear note that this is a CEO-generated placeholder pending engineer review.
|
|
5
|
+
- A follow-up issue exists, assigned to an engineer or the architecture-plan capability, to complete the full architecture document.
|
|
6
|
+
|
|
7
|
+
**Not done:**
|
|
8
|
+
- No `docs/ARCHITECTURE.md` exists at all.
|
|
9
|
+
- The document exists but contains no actionable overview (placeholder text only).
|
|
10
|
+
- No follow-up issue was created for the engineer to complete the work.
|
|
11
|
+
|
|
12
|
+
**Not required from the CEO fallback:**
|
|
13
|
+
- Full API boundary diagrams
|
|
14
|
+
- ADR-style decision log
|
|
15
|
+
- Deployment topology
|
|
16
|
+
- Data model details
|
|
17
|
+
(These are requirements for the engineer primary — not for the CEO safety-net run.)
|
|
@@ -4,6 +4,8 @@ When the architecture plan is being created, contribute the UI/frontend perspect
|
|
|
4
4
|
|
|
5
5
|
## UI Architecture Contributions
|
|
6
6
|
|
|
7
|
+
1. Check that `docs/ARCHITECTURE.md` exists. If it does not exist yet, the engineer's architecture-plan task has not completed — leave an issue comment ("Waiting for engineer to complete docs/ARCHITECTURE.md before adding UI layer") and do not close this issue yet. Check back on your next heartbeat.
|
|
8
|
+
|
|
7
9
|
If an Engineer is defining the architecture, coordinate with them on:
|
|
8
10
|
- **Frontend component structure**: Page layout, shared components, routing
|
|
9
11
|
- **Design token integration**: How the design system connects to the codebase
|
|
@@ -5,16 +5,17 @@ You own the visual design system. Establish the foundational patterns that ensur
|
|
|
5
5
|
## Design System Process
|
|
6
6
|
|
|
7
7
|
1. Review the company goal, brand context, and target audience
|
|
8
|
-
2.
|
|
8
|
+
2. If `docs/BRAND-IDENTITY.md` exists, use it as the authoritative source for color palette, typography, and brand voice. Do not invent a palette that contradicts established brand identity.
|
|
9
|
+
3. Define and document in `docs/DESIGN-SYSTEM.md`:
|
|
9
10
|
- **Color palette**: Primary, secondary, accent, semantic (success, error, warning), neutrals
|
|
10
11
|
- **Typography**: Font families, scale (heading/body/caption sizes), weights, line heights
|
|
11
12
|
- **Spacing**: Base unit and scale (4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px)
|
|
12
13
|
- **Component patterns**: Buttons, inputs, cards, modals, navigation — describe states and variants
|
|
13
14
|
- **Brand guidelines**: Logo usage, tone of visual language, iconography style
|
|
14
15
|
- **Responsive breakpoints**: Mobile, tablet, desktop sizing approach
|
|
15
|
-
|
|
16
|
+
4. Create implementation issues for the engineer:
|
|
16
17
|
- `POST /api/companies/{companyId}/issues` for CSS/design token setup, component library scaffolding. Include the active `projectId` (and `goalId` / `parentId` when applicable). For top-level issues (no `parentId`), also include `"executionWorkspaceSettings": { "mode": "isolated_workspace" }` so each gets its own worktree; subissues set `parentId` and omit it.
|
|
17
|
-
|
|
18
|
+
5. Assign or hand off implementation issues to the Engineer with a concrete next action; do not rely on generic @-mentions.
|
|
18
19
|
|
|
19
20
|
## Rules
|
|
20
21
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Skill: Design System (Engineer Primary)
|
|
2
|
+
|
|
3
|
+
You are establishing the project's design system foundations when no UI Designer is available. Your output should be practical and hand-off-ready — define the minimum tokens and patterns needed for consistent development, and document them so a UI Designer can refine them later.
|
|
4
|
+
|
|
5
|
+
## Steps
|
|
6
|
+
|
|
7
|
+
1. Read `docs/TECH-STACK.md` if it exists to understand the frontend framework and styling approach.
|
|
8
|
+
2. Read `docs/BRAND-IDENTITY.md` if it exists for color palette, typography, and brand direction.
|
|
9
|
+
3. If `docs/DESIGN-SYSTEM.md` does not exist, create it using `docs/design-system-template.md` as a starting point.
|
|
10
|
+
4. Define the minimum viable token set:
|
|
11
|
+
- **Colors**: primary, secondary, background, surface, text, error/warning/success. Use the brand palette if available, otherwise choose accessible defaults (WCAG AA contrast ratio ≥ 4.5:1 for text).
|
|
12
|
+
- **Typography**: 2–3 font sizes (body, heading, small), font family (system stack if no brand font specified), line heights.
|
|
13
|
+
- **Spacing**: a 4px base grid — common values: 4, 8, 12, 16, 24, 32, 48, 64px.
|
|
14
|
+
5. Define 3–5 core component patterns (button, input, card, navigation item) with their states (default, hover, active, disabled, error). Document as usage rules, not full component code.
|
|
15
|
+
6. Write token definitions as CSS custom properties or the equivalent for the project's framework.
|
|
16
|
+
7. Mark the document as **provisional** — created by engineer as primary; a UI Designer should review and extend.
|
|
17
|
+
8. Create a follow-up issue: "Review and extend design system" assigned to the UI Designer if one is ever added to the team.
|
|
18
|
+
9. Mark this issue done.
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Keep it practical over perfect. Consistent tokens are more valuable than a comprehensive design system.
|
|
23
|
+
- Do not create visual assets (icons, illustrations) — document where placeholders should go.
|
|
24
|
+
- Reference `docs/ARCHITECTURE.md` for the component hierarchy if it exists.
|
|
25
|
+
- If `docs/DESIGN-SYSTEM.md` already exists (a UI Designer ran first), review it for engineering feasibility and add implementation notes — do not overwrite their work.
|
|
@@ -9,11 +9,11 @@ The UI Designer and CMO both own brand identity above you. You are the last-reso
|
|
|
9
9
|
- Choose a neutral color palette (1 primary, 1 accent, 1 neutral)
|
|
10
10
|
- Pick a safe, widely available font pairing (e.g., Inter + system serif)
|
|
11
11
|
- Document in `docs/BRAND-IDENTITY.md` and mark all choices as **provisional**
|
|
12
|
-
- Create an issue for the designer or CMO to review and expand the brand guidelines
|
|
13
|
-
2. If a designer or CMO is active, skip this entirely.
|
|
12
|
+
- Create an issue for the ui-designer or CMO to review and expand the brand guidelines
|
|
13
|
+
2. If a ui-designer or CMO is active, skip this entirely.
|
|
14
14
|
|
|
15
15
|
## Rules
|
|
16
16
|
|
|
17
17
|
- This is a safety net. Choose sensible defaults, not optimal solutions.
|
|
18
|
-
- Mark everything as provisional — the designer owns the final brand.
|
|
19
|
-
- Let the designer or CMO refine and expand the actual brand identity.
|
|
18
|
+
- Mark everything as provisional — the ui-designer owns the final brand.
|
|
19
|
+
- Let the ui-designer or CMO refine and expand the actual brand identity.
|
|
@@ -15,7 +15,7 @@ You own the company's visual identity and brand guidelines. Define a cohesive br
|
|
|
15
15
|
- **Iconography**: Style, stroke weight, grid alignment
|
|
16
16
|
- **Tone of voice**: Communication style, vocabulary, personality
|
|
17
17
|
3. Document everything in `docs/BRAND-IDENTITY.md`:
|
|
18
|
-
- Use
|
|
18
|
+
- Use `docs/brand-identity-template.md` as a starting point
|
|
19
19
|
- Fill in all sections with concrete values and rationale
|
|
20
20
|
- Include visual examples or references where possible
|
|
21
21
|
4. Create initial design tokens if a tech stack exists:
|
|
@@ -7,7 +7,7 @@ The DevOps engineer primarily owns CI/CD pipelines. You are the fallback — ste
|
|
|
7
7
|
1. If no CI workflow exists and DevOps hasn't started:
|
|
8
8
|
- Create a basic CI workflow: lint + test on PRs, build on push to the default branch
|
|
9
9
|
- Use standard caching and pinned action versions
|
|
10
|
-
- Document the setup in `docs/CI-CD.md`
|
|
10
|
+
- Document the setup in `docs/CI-CD.md` and mark the setup as **provisional** — a devops agent should review and complete the production configuration.
|
|
11
11
|
- Mark the pipeline as **provisional** — it needs DevOps review for CD, caching optimization, and security hardening
|
|
12
12
|
2. If DevOps is active, skip this entirely.
|
|
13
13
|
|
|
@@ -16,3 +16,4 @@ The DevOps engineer primarily owns CI/CD pipelines. You are the fallback — ste
|
|
|
16
16
|
- This is a safety net. Set up the basics — lint, test, build.
|
|
17
17
|
- Skip CD (deployment) — that requires infrastructure knowledge best left to DevOps.
|
|
18
18
|
- Let DevOps own pipeline optimization, deployment, and ongoing maintenance.
|
|
19
|
+
- Reference `docs/CI-CD.md` for all configuration details so the devops agent can pick up where you left off.
|
|
@@ -13,8 +13,19 @@ You manage continuous integration and deployment pipelines. Follow the conventio
|
|
|
13
13
|
- Trigger on merge to the default branch
|
|
14
14
|
- Deploy to the target environment
|
|
15
15
|
- Run smoke tests after deployment
|
|
16
|
-
4.
|
|
17
|
-
5. Document the
|
|
16
|
+
4. Pin every third-party action to a full commit SHA (`uses: actions/checkout@<sha>`, not `@v4`). SHA pinning prevents supply-chain attacks from a compromised action version tag. Record the pinned SHAs in `docs/CI-CD.md` → *Pinned Action SHAs*.
|
|
17
|
+
5. Document the rollback procedure in `docs/CI-CD.md` → *Rollback*: how to revert a failed deploy (e.g., `git revert` + redeploy, or infra rollback command), how to verify the rollback succeeded, and the recovery SLA. A pipeline with no documented rollback path is not done.
|
|
18
|
+
6. Add status badges to the project README
|
|
19
|
+
7. Document the full pipeline in `docs/CI-CD.md`
|
|
20
|
+
|
|
21
|
+
## Ongoing Health Checks
|
|
22
|
+
|
|
23
|
+
When assigned a "CI pipeline health check" routine-run issue:
|
|
24
|
+
|
|
25
|
+
1. Review the last 7 days of pipeline runs. Check: average duration trend (flag if >20% slower), flake rate per job (flag jobs failing >5% of runs), failure rate on the default branch.
|
|
26
|
+
2. If the default branch is red (failing), this is P0 — do not mark the routine done until fixed or escalated.
|
|
27
|
+
3. Check for unpinned action versions added since last check; pin them.
|
|
28
|
+
4. Leave a summary comment on the issue (run counts, any flaky/slow jobs, any fixes applied), then mark the routine issue done.
|
|
18
29
|
|
|
19
30
|
## Rules
|
|
20
31
|
|
|
@@ -17,3 +17,13 @@ The Engineer primarily owns codebase auditing and health. You are the fallback
|
|
|
17
17
|
- Skip deep code analysis — that requires engineering expertise.
|
|
18
18
|
- Don't create cleanup issues — leave that to the Engineer's thorough audit.
|
|
19
19
|
- Let the Engineer own the ongoing health checks and refactoring work.
|
|
20
|
+
|
|
21
|
+
## Health Check Refresh (follow-up runs)
|
|
22
|
+
|
|
23
|
+
When `docs/CODEBASE-AUDIT.md` already exists (a prior audit was completed) and you are assigned a follow-up health check:
|
|
24
|
+
|
|
25
|
+
1. Read the existing `docs/CODEBASE-AUDIT.md`.
|
|
26
|
+
2. Run a quick surface scan: `find . -name "*.js" -o -name "*.ts" | head -30` to sense if new files or directories have appeared since the last audit date.
|
|
27
|
+
3. Note any obviously new areas (new top-level directories, new dependency groups) not present in the existing document.
|
|
28
|
+
4. Add a dated `## Health Check — <date>` section to `docs/CODEBASE-AUDIT.md` listing: files reviewed, new areas identified, and a note that deep analysis was not performed (this is a CEO fallback — escalate to an engineer for full re-audit if significant new areas were found).
|
|
29
|
+
5. Mark the issue done.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Skill: Competitive Tracking (Product Owner Fallback)
|
|
2
|
+
|
|
3
|
+
A specialist in competitive intelligence (Customer Success or CMO) is handling primary competitive tracking. Your role is to surface product-roadmap implications from their findings and ensure competitor insights feed into the backlog.
|
|
4
|
+
|
|
5
|
+
## Steps
|
|
6
|
+
|
|
7
|
+
1. Read `docs/COMPETITIVE-INTEL.md` if it exists. If it does not, check back after the primary competitive-tracking agent has completed their initial audit.
|
|
8
|
+
2. Review recent competitor changes for product-roadmap implications:
|
|
9
|
+
- New features from competitors that close a gap with your product → create a backlog issue "Evaluate [feature] parity with [competitor]" with the relevant section from COMPETITIVE-INTEL.md.
|
|
10
|
+
- Competitor pricing or positioning shifts that affect your value proposition → add a comment to the relevant goal or create an issue for CEO/CMO review.
|
|
11
|
+
3. Update the product backlog with any priority changes driven by competitive pressure (coordinate with CEO before reprioritising existing high-priority items).
|
|
12
|
+
4. Add a `## Product Implications` section to `docs/COMPETITIVE-INTEL.md` if it doesn't already exist, noting your recommendations.
|
|
13
|
+
5. Mark the issue done.
|
|
14
|
+
|
|
15
|
+
## Rules
|
|
16
|
+
|
|
17
|
+
- Do not duplicate the competitor research already done by the primary agent — read their output and add product perspective.
|
|
18
|
+
- If COMPETITIVE-INTEL.md does not exist yet, do not create it — wait for the primary agent. Leave an issue comment noting the dependency and mark done if the issue was routine-triggered.
|
|
19
|
+
- Coordinate with CMO or Customer Success before making any public-facing positioning changes.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## Competitive Tracking — Done Bar
|
|
2
|
+
|
|
3
|
+
**Done:**
|
|
4
|
+
- `docs/COMPETITIVE-INTEL.md` exists with a profile for each tracked competitor that includes: product positioning, key differentiators, pricing model (if public), and a specific takeaway for your product ("what this means for us").
|
|
5
|
+
- Differentiation opportunities are explicitly named — not just competitor feature lists, but concrete gaps or advantages your product has or could develop.
|
|
6
|
+
- Each competitor profile was updated within the last tracking cycle (not stale from a previous run).
|
|
7
|
+
|
|
8
|
+
**Not done:**
|
|
9
|
+
- Competitor profiles are feature lists with no positioning takeaway.
|
|
10
|
+
- "Differentiation opportunities" section is absent or contains only generic observations ("we should improve UX").
|
|
11
|
+
- `docs/COMPETITIVE-INTEL.md` was not updated this run (routine ran but no document was touched).
|
|
@@ -21,5 +21,14 @@
|
|
|
21
21
|
"assignTo": "capability:dependency-audit",
|
|
22
22
|
"description": "Audit all project dependencies for outdated versions, known vulnerabilities, and deprecated packages. Document findings and create a prioritized upgrade plan."
|
|
23
23
|
}
|
|
24
|
+
],
|
|
25
|
+
"routines": [
|
|
26
|
+
{
|
|
27
|
+
"name": "Dependency audit",
|
|
28
|
+
"description": "Scan for new vulnerabilities and outdated packages, apply safe patch updates.",
|
|
29
|
+
"assignTo": "capability:dependency-audit",
|
|
30
|
+
"schedule": "0 2 * * 1",
|
|
31
|
+
"concurrencyPolicy": "forbid"
|
|
32
|
+
}
|
|
24
33
|
]
|
|
25
34
|
}
|
|
@@ -27,12 +27,15 @@ You are responsible for keeping the project's dependencies healthy, secure, and
|
|
|
27
27
|
6. **Execute safe upgrades** — Apply patch and minor updates directly when tests pass.
|
|
28
28
|
7. **Create issues** for major version upgrades or migrations that require dedicated work.
|
|
29
29
|
|
|
30
|
-
## Ongoing
|
|
30
|
+
## Ongoing Audits (Routine-Triggered)
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
When assigned a "Dependency audit" routine-run issue:
|
|
33
|
+
|
|
34
|
+
1. Run the vulnerability scan: `npm audit --json` (or equivalent for the project's package manager). Flag any new Critical or High CVEs not present in the last audit.
|
|
35
|
+
2. Check for newly outdated dependencies: compare current versions against the latest. Flag anything more than one major version behind.
|
|
36
|
+
3. Apply safe patch updates (semver patch-only, no breaking changes): update, run the test suite, commit if green.
|
|
37
|
+
4. Update `docs/DEPENDENCY-AUDIT.md` with the new scan date, any new findings, and any updates applied.
|
|
38
|
+
5. Mark the routine issue done. If Critical CVEs were found that cannot be patched, create a separate high-priority issue for each and escalate to CEO.
|
|
36
39
|
|
|
37
40
|
## Rules
|
|
38
41
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
## Project Documentation — Done Bar
|
|
2
|
+
|
|
3
|
+
**Done:**
|
|
4
|
+
- All documentation targets specified in the issue have been created or updated.
|
|
5
|
+
- Setup instructions have been verified: every command listed in README.md or setup guides has been run at least once and produces the expected result.
|
|
6
|
+
- API documentation matches the current implementation — no documented endpoints or parameters that no longer exist, no undocumented endpoints that do.
|
|
7
|
+
- No content is duplicated across files — each fact appears in exactly one place; other files reference it rather than copying.
|
|
8
|
+
- Internal links (cross-references between docs) are valid — no broken anchors or references to non-existent files.
|
|
9
|
+
|
|
10
|
+
**Not done:**
|
|
11
|
+
- Setup instructions are untested ("this should work" documentation).
|
|
12
|
+
- API docs were not updated after a breaking change.
|
|
13
|
+
- A section is marked "TODO" or "coming soon" without a follow-up issue.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
## Game Design — Done Bar
|
|
2
|
+
|
|
3
|
+
**Done:**
|
|
4
|
+
- `docs/GDD.md` (Game Design Document) exists and covers all required sections: Overview, Core Loop, Game Mechanics, Progression System, Technical Constraints, and Art Direction.
|
|
5
|
+
- Tuning parameters are externalized: every balance-critical value (player speed, damage, cooldown, score multipliers) is defined as a named parameter with its default value and valid range documented in the GDD (format: `parameter_name: default (range: min–max)`). No magic numbers hardcoded in engine scripts without a GDD reference.
|
|
6
|
+
- A playtest loop is defined: the GDD specifies at minimum one measurable success criterion per core loop iteration (e.g., "average session length > 8 minutes", "level 1 completion rate > 70%").
|
|
7
|
+
- Art and audio direction are present: the GDD includes a visual style reference (mood board description or reference images) and an audio/music direction note.
|
|
8
|
+
|
|
9
|
+
**Not done:**
|
|
10
|
+
- Tuning values are hardcoded in source files with no GDD parameter reference.
|
|
11
|
+
- The core game loop has no session-level layer (the player has no reason to return after one play session).
|
|
12
|
+
- Art or audio direction is absent ("TBD" does not count).
|
|
13
|
+
- The GDD exists but is a skeleton with no actual design decisions filled in.
|
|
@@ -17,11 +17,12 @@ Use this flow when the **pr-review module is not active**. You open a PR and mer
|
|
|
17
17
|
7. Run available checks (lint, typecheck, tests)
|
|
18
18
|
8. Commit using Conventional Commits: `<type>: <description>`
|
|
19
19
|
9. Verify the current branch one more time, then push: `git push -u origin <branch-name>`. The branch name in the push command must match `git branch --show-current`. Never push the base ref as a feature branch — if `git branch --show-current` returns the base ref name, stop and create a feature branch first.
|
|
20
|
-
10. Open a pull request against the base ref: `gh pr create --base <github-base-branch> --head <branch-name> --title "<type>: <description>" --body-file <file>`.
|
|
21
|
-
11.
|
|
22
|
-
12.
|
|
23
|
-
13.
|
|
24
|
-
14. If
|
|
20
|
+
10. Open a pull request against the base ref: `gh pr create --base <github-base-branch> --head <branch-name> --title "<type>: <description>" --body-file <file>`. `<github-base-branch>` is the **plain branch name** — strip any `origin/` prefix from the configured base ref (e.g., configured `origin/main` → `--base main`). GitHub does not recognise remote-tracking names. Write the PR body to a temp file first — never inline `--body "..."`. Register the PR as a Paperclip work product (see *Register the PR as a Work Product* below). Verify the PR base matches the configured base ref before merging.
|
|
21
|
+
11. Before merging, check that the PR is not conflicting: `gh pr view <PR-number> --json mergeable,mergeStateStatus`. If `mergeable` is `CONFLICTING` or `mergeStateStatus` is `DIRTY`, resolve the conflict before merging — see *Resolving merge conflicts* below.
|
|
22
|
+
12. Merge the PR yourself: `gh pr merge <PR-number> --merge`. After opening the PR, merge it yourself promptly — do not wait for a reviewer if none is present. Confirm the PR is closed and the base branch updated before continuing.
|
|
23
|
+
13. Clean up the feature branch: `git push origin --delete <branch-name>` (remote) and `git branch -d <branch-name>` (local). Update the Paperclip work product to `"status": "merged"` via `PATCH /api/work-products/{workProductId}`.
|
|
24
|
+
14. If the issue uses an isolated execution workspace (worktree), archive it from your `heartbeat-context` after the merge is pushed.
|
|
25
|
+
15. If CI fails on the base branch after the merge, fix immediately.
|
|
25
26
|
|
|
26
27
|
## Branch Protection Setup
|
|
27
28
|
|
|
@@ -80,11 +81,25 @@ Notes:
|
|
|
80
81
|
- Never force push to the base branch.
|
|
81
82
|
- Use the configured base ref. For external repos, branch and compare from the configured remote/ref and push/merge back to the matching remote branch.
|
|
82
83
|
- Treat push authentication as repository setup, not as an issue blocker. If `git push` says credentials are missing or invalid, verify the helper and `GH_TOKEN` binding first.
|
|
83
|
-
- If
|
|
84
|
+
- If `gh pr merge` fails or `gh pr view` reports `mergeable: CONFLICTING` / `mergeStateStatus: DIRTY`, resolve the conflict before retrying — see *Resolving merge conflicts* below. Never leave a PR in an unresolved conflicting state without either fixing it or leaving an explicit issue comment with the blocker.
|
|
84
85
|
- Reference the issue ID in the commit body (e.g., `Closes YES-5`).
|
|
85
86
|
- Never mark an issue as `done` unless at least one new commit was created for that issue's work and has been pushed.
|
|
86
87
|
- Before marking `done`, verify there is no uncommitted work (`git status --short` should be clean).
|
|
87
88
|
- If no repository change is required, do not mark `done` silently: leave an issue comment explaining why no code change was needed and escalate to the CEO for decision.
|
|
88
89
|
- You are always the merge owner when no code-reviewer is present. Open a PR and merge it yourself via `gh pr merge <N> --merge` promptly — do not leave branches dangling unmerged. Never do a direct `git merge` + push to the base branch; always go through a PR so the branch history is preserved and branch protection is respected (typos/comment-only/doc fixes with an issue reference may be committed directly to the base ref only when branch protection allows it — see `docs/git-workflow.md` → *Dev Cycle Rules*).
|
|
89
90
|
- **Always work on a feature branch, never on the base branch.** Create the branch with `git checkout -b <branch-name> <base-ref>` before committing. Verify with `git branch --show-current` before every push.
|
|
90
|
-
- **Never push the base ref as if it were a feature branch.** Before `git push -u origin <branch-name>`, confirm that `git branch --show-current` matches `<branch-name>`. If it prints the base ref name instead, you are on the wrong branch — create or switch to the feature branch first.
|
|
91
|
+
- **Never push the base ref as if it were a feature branch.** Before `git push -u origin <branch-name>`, confirm that `git branch --show-current` matches `<branch-name>`. If it prints the base ref name instead, you are on the wrong branch — create or switch to the feature branch first.
|
|
92
|
+
|
|
93
|
+
## Resolving merge conflicts
|
|
94
|
+
|
|
95
|
+
When `gh pr merge` fails or `gh pr view <N> --json mergeable,mergeStateStatus` returns `CONFLICTING` / `DIRTY`:
|
|
96
|
+
|
|
97
|
+
1. `git fetch origin`
|
|
98
|
+
2. `git checkout <branch-name>`
|
|
99
|
+
3. `git rebase origin/<base-branch>` where `<base-branch>` is the plain branch name — strip any `origin/` prefix from the configured base ref (e.g., configured `origin/main` → `git rebase origin/main`; configured `main` → `git rebase origin/main`). Resolve each conflict marker, then `git rebase --continue`.
|
|
100
|
+
4. Run the full check suite (lint, typecheck, tests) to confirm nothing broke.
|
|
101
|
+
5. `git push --force-with-lease origin <branch-name>` — never `--force`, use `--force-with-lease` to avoid overwriting concurrent pushes.
|
|
102
|
+
6. Verify the conflict is gone: `gh pr view <N> --json mergeable` should return `MERGEABLE`.
|
|
103
|
+
7. Retry the merge: `gh pr merge <N> --merge`.
|
|
104
|
+
|
|
105
|
+
If the conflict is too complex to resolve safely (e.g., a large structural conflict with another in-flight PR), leave an issue comment describing the exact conflict and escalate to the CEO for prioritization before abandoning the branch.
|
|
@@ -94,7 +94,7 @@ Use this flow when the **pr-review module is not active** (no Code Reviewer role
|
|
|
94
94
|
6. Run tests/linting locally if available
|
|
95
95
|
7. Commit with conventional commit message
|
|
96
96
|
8. **Verify the current branch one more time**, then push: `git push -u origin <branch-name>`. The branch name in the push command must match `git branch --show-current`. Never push the base ref as a feature branch — if `git branch --show-current` returns the base ref name, stop and create a feature branch first.
|
|
97
|
-
9. Open a pull request against the base ref: write the PR body to a temp file, then `gh pr create --base <github-base-branch> --head <branch-name> --title "<type>: <description>" --body-file <file>`. Never inline `--body "..."` — a double-quoted shell string keeps `\n` literal (see *Posting PR Bodies & Comments* in `docs/pr-conventions.md`). Verify the PR base matches the configured base ref before merging.
|
|
97
|
+
9. Open a pull request against the base ref: write the PR body to a temp file, then `gh pr create --base <github-base-branch> --head <branch-name> --title "<type>: <description>" --body-file <file>`. Never inline `--body "..."` — a double-quoted shell string keeps `\n` literal (see *Posting PR Bodies & Comments* in `docs/pr-conventions.md`). `<github-base-branch>` is the **plain branch name** — strip any `origin/` prefix from the configured base ref (e.g., configured ref `origin/main` → `--base main`; configured ref `main` → `--base main`). GitHub does not recognise remote-tracking names. Verify the PR base matches the configured base ref before merging.
|
|
98
98
|
10. Merge the PR yourself: `gh pr merge <PR-number> --merge`. Do not wait for a reviewer if none is present. Confirm the PR is closed and the base branch updated before continuing. Never do a direct `git merge` + push to the base branch; always go through a PR.
|
|
99
99
|
11. Clean up the feature branch: `git push origin --delete <branch-name>` (remote) and `git branch -d <branch-name>` (local).
|
|
100
100
|
12. If the issue uses an isolated execution workspace (worktree), archive it from `heartbeat-context` after the merge is pushed.
|
|
@@ -145,6 +145,22 @@ For a brand-new local repository there is no remote yet, so initialize on `main`
|
|
|
145
145
|
- **Always work on a feature branch, never on the base branch.** Create the branch with `git checkout -b <branch-name> <base-ref>` before committing any changes. If you are resuming work on an existing issue, `git branch --show-current` should already show the feature branch name.
|
|
146
146
|
- **Verify your branch before pushing.** Before running `git push -u origin <branch-name>`, confirm that `git branch --show-current` prints the feature branch name — not the base ref. If it prints the base ref, you are on the wrong branch: stop and create/switch to the feature branch first. Pushing the base ref as a feature branch corrupts upstream tracking and causes incorrect branch divergence reports.
|
|
147
147
|
|
|
148
|
+
## Resolving merge conflicts
|
|
149
|
+
|
|
150
|
+
When `gh pr merge` fails or `gh pr view <N> --json mergeable,mergeStateStatus` reports `CONFLICTING` / `DIRTY`:
|
|
151
|
+
|
|
152
|
+
1. `git fetch origin`
|
|
153
|
+
2. `git checkout <branch-name>`
|
|
154
|
+
3. `git rebase origin/<base-branch>` where `<base-branch>` is the plain branch name — strip any `origin/` prefix from the configured base ref first (e.g., configured `origin/main` → `git rebase origin/main`; configured `main` → `git rebase origin/main`). Resolve each conflict marker, then `git rebase --continue`.
|
|
155
|
+
4. Run the full check suite (lint, typecheck, tests) to confirm nothing broke.
|
|
156
|
+
5. `git push --force-with-lease origin <branch-name>` — use `--force-with-lease`, never bare `--force`.
|
|
157
|
+
6. Verify the conflict is resolved: `gh pr view <N> --json mergeable` should now return `MERGEABLE`.
|
|
158
|
+
7. Retry: `gh pr merge <N> --merge`.
|
|
159
|
+
|
|
160
|
+
Never leave a PR sitting in a conflicting state without either resolving it or leaving an explicit issue comment with the exact blocker. A dirty PR that is never merged or explicitly closed stalls the entire chain indefinitely.
|
|
161
|
+
|
|
162
|
+
If the conflict is too complex to resolve safely (large structural conflict with another in-flight PR), comment on the issue with the exact conflict description and escalate to the CEO.
|
|
163
|
+
|
|
148
164
|
## CI
|
|
149
165
|
|
|
150
166
|
If the project has CI configured (e.g., GitHub Actions), always verify your push passes CI. If CI fails, fix it immediately — a broken base ref blocks everyone.
|
|
@@ -6,6 +6,23 @@
|
|
|
6
6
|
- **Problem**: _What problem are we solving?_
|
|
7
7
|
- **Market size**: _How big is the opportunity?_
|
|
8
8
|
|
|
9
|
+
## User Segments
|
|
10
|
+
|
|
11
|
+
### Primary Users
|
|
12
|
+
- **Segment name**: [name]
|
|
13
|
+
- **Description**: [who they are]
|
|
14
|
+
- **Key needs**: [what they need from the product]
|
|
15
|
+
- **Pain points**: [what frustrates them today]
|
|
16
|
+
|
|
17
|
+
### Secondary Users
|
|
18
|
+
- **Segment name**: [name]
|
|
19
|
+
- **Description**: [who they are]
|
|
20
|
+
- **Key needs**: [what they need from the product]
|
|
21
|
+
- **Relationship to primary**: [how they interact with the primary user's workflow]
|
|
22
|
+
|
|
23
|
+
### Edge Cases
|
|
24
|
+
- [User groups or scenarios that the product must handle but that aren't core users]
|
|
25
|
+
|
|
9
26
|
## Competitive Landscape
|
|
10
27
|
|
|
11
28
|
| Competitor | Strengths | Weaknesses | Differentiation |
|
|
@@ -5,7 +5,7 @@ The DevOps engineer primarily owns monitoring and observability. You are the fal
|
|
|
5
5
|
## Monitoring (Fallback)
|
|
6
6
|
|
|
7
7
|
1. If no `docs/MONITORING.md` exists and DevOps hasn't started:
|
|
8
|
-
- Add basic health check endpoints (liveness
|
|
8
|
+
- Add basic health check endpoints (liveness and readiness probes returning 200)
|
|
9
9
|
- Set up structured JSON logging with timestamp, level, and service fields
|
|
10
10
|
- Document the setup in `docs/MONITORING.md`
|
|
11
11
|
- Mark the strategy as **provisional** — it needs DevOps review for alerting, dashboards, and SLOs
|
|
@@ -9,7 +9,8 @@ You are responsible for setting up observability, alerting, and health checks fo
|
|
|
9
9
|
3. Configure error tracking — capture unhandled exceptions with context (request ID, user, stack trace).
|
|
10
10
|
4. Set up structured logging — all log output must be machine-parseable JSON with consistent fields.
|
|
11
11
|
5. Define alert thresholds for key metrics (error rate, latency, uptime, resource usage).
|
|
12
|
-
6. Document the
|
|
12
|
+
6. Set up a basic operational dashboard (in the monitoring tool configured for this project) showing: request rate, error rate, latency (p50/p99), and the key health indicators defined above. Document the dashboard URL/name in `docs/MONITORING.md`.
|
|
13
|
+
7. Document the full observability strategy in `docs/MONITORING.md`.
|
|
13
14
|
|
|
14
15
|
## Rules
|
|
15
16
|
|
|
@@ -18,3 +19,4 @@ You are responsible for setting up observability, alerting, and health checks fo
|
|
|
18
19
|
- Log structured JSON — never log unstructured strings. Include timestamp, level, service, and correlation ID.
|
|
19
20
|
- Health checks must be lightweight — no heavy DB queries or external calls in liveness probes.
|
|
20
21
|
- Keep dashboards focused — one dashboard per concern (e.g., API latency, error rates, infrastructure).
|
|
22
|
+
- Every alert definition must link to a runbook in `docs/` explaining: what triggered it, what to check first, and how to respond. No alert should fire without a runbook.
|
|
@@ -18,11 +18,25 @@ Paperclip's runtime **excludes the issue's original executor (the author) from e
|
|
|
18
18
|
|
|
19
19
|
## Merging
|
|
20
20
|
|
|
21
|
-
1.
|
|
22
|
-
2.
|
|
23
|
-
3.
|
|
24
|
-
4.
|
|
25
|
-
5.
|
|
21
|
+
1. Before merging, check whether the PR branch is up to date with the base: `gh pr view <number> --json mergeable,mergeStateStatus`. If `mergeable` is `CONFLICTING` or `mergeStateStatus` is `DIRTY`, **do not attempt to merge** — go to *Merge conflicts* below first.
|
|
22
|
+
2. Merge with `gh pr merge <number> --merge`. No force pushes.
|
|
23
|
+
3. Confirm the merge landed on the correct base.
|
|
24
|
+
4. If Paperclip created an isolated execution workspace for the issue, read its id from `heartbeat-context`, call close-readiness, and archive it after the merge and once the tree is clean. If cleanup is blocked or fails, do **not** record approval — leave the issue open with the exact blocker. If the issue runs in the shared project workspace, do not invent isolated-worktree cleanup.
|
|
25
|
+
5. **Only after the merge and cleanup succeed**, record `approved` (PATCH toward `done`) with a comment citing the executed verification and the merge confirmation. That closes the issue.
|
|
26
|
+
6. Never record `approved` before the merge has actually succeeded, and never leave the issue `done` with the PR still open.
|
|
27
|
+
|
|
28
|
+
## Merge conflicts
|
|
29
|
+
|
|
30
|
+
When `gh pr merge` fails or `gh pr view` reports `mergeable: CONFLICTING` / `mergeStateStatus: DIRTY`:
|
|
31
|
+
|
|
32
|
+
1. Record `changes_requested` on the issue immediately (do not leave it in `in_review` indefinitely) with a comment: "PR has merge conflicts with the base branch — returning to engineer to rebase."
|
|
33
|
+
2. The issue routes back to the engineer (`returnAssignee`). The engineer must:
|
|
34
|
+
- `git fetch origin && git checkout <branch-name>`
|
|
35
|
+
- `git rebase origin/<base-branch>` where `<base-branch>` is the plain branch name (strip any `origin/` prefix from the configured base ref — e.g., configured `origin/main` → `git rebase origin/main`)
|
|
36
|
+
- Resolve all conflicts, run checks, commit
|
|
37
|
+
- `git push --force-with-lease origin <branch-name>`
|
|
38
|
+
- Leave an issue comment confirming the rebase, then move the issue back to `in_review`
|
|
39
|
+
3. The issue re-enters the approval chain and returns to you. Re-run the hard verification gate before merging.
|
|
26
40
|
|
|
27
41
|
## When something is wrong
|
|
28
42
|
|
|
@@ -12,7 +12,7 @@ When this skill is active, you work in feature branches and open PRs instead of
|
|
|
12
12
|
4. **Verify you are on the feature branch** before making changes: `git branch --show-current` must print your branch name, not the base ref. If it prints the base ref name, you forgot step 3 — create the branch now.
|
|
13
13
|
5. Make your changes, commit with Conventional Commits format
|
|
14
14
|
6. **Verify the current branch one more time**, then push: `git push -u origin <branch-name>`. The branch name in the push command must match `git branch --show-current`. Never push the base ref as a feature branch — if `git branch --show-current` returns the base ref name, stop and create a feature branch first.
|
|
15
|
-
7. Open PR against the same resolved base:
|
|
15
|
+
7. Open PR against the same resolved base: `gh pr create --base <github-base-branch> --head <branch-name> --title "<type>: <description>" --body-file <file>`. `<github-base-branch>` is the **plain branch name** — strip any `origin/` prefix from the configured base ref (e.g., configured `origin/main` → `--base main`; configured `main` → `--base main`). GitHub does not recognise remote-tracking names. Write the PR body (PR Body Template in `docs/pr-conventions.md`) to a file first — never inline `--body "..."` (double-quoted shell string keeps `\n` literal; see *Posting PR Bodies & Comments*).
|
|
16
16
|
8. **Register the PR as a Paperclip work product** so it is visible on the issue and board (creating it on GitHub alone does not surface it in Paperclip):
|
|
17
17
|
```
|
|
18
18
|
POST /api/issues/{issueId}/work-products
|
|
@@ -28,7 +28,7 @@ When this skill is active, you work in feature branches and open PRs instead of
|
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
`title` and `url` are required (`url` must be the full PR URL). If the issue runs in an isolated worktree, also pass `"executionWorkspaceId"` from `heartbeat-context`. When the PR later merges, update it with `PATCH /api/work-products/{id}` and `"status": "merged"`.
|
|
31
|
-
9. **Only if a code-reviewer is present on the team:** Set the originating issue's `executionPolicy` to gate the merge on review, ending with the Code Reviewer as the merge gate. If no code-reviewer is assigned to this company, skip steps 9–11 entirely and go directly to the self-merge path at step 12. Setting up executionPolicy stages without an eligible non-author merge gate will stall the issue permanently (`422 No eligible approval participant`).
|
|
31
|
+
9. **Only if a code-reviewer is present on the team:** Set the originating issue's `executionPolicy` to gate the merge on review, ending with the Code Reviewer as the merge gate. **Set executionPolicy stages before moving the issue to `in_review` (step 10) — changing stages after the issue has already entered review is not supported.** If no code-reviewer is assigned to this company, skip steps 9–11 entirely and go directly to the self-merge path at step 12. Setting up executionPolicy stages without an eligible non-author merge gate will stall the issue permanently (`422 No eligible approval participant`).
|
|
32
32
|
- One `review` stage with **QA** when a QA agent exists (test adequacy / executed verification).
|
|
33
33
|
- One `review` stage with the **Security Engineer** only when the change is security-relevant (auth, secrets, input boundaries, crypto, dependencies, infra exposure).
|
|
34
34
|
- Domain reviewers (UI Designer, UX Researcher, DevOps) are advisory — they post PR comments and may flag a concern for QA, the Security Engineer, or the merge gate to act on. They are never themselves a review stage.
|
|
@@ -39,8 +39,24 @@ When this skill is active, you work in feature branches and open PRs instead of
|
|
|
39
39
|
10. Move the originating issue to `in_review`.
|
|
40
40
|
11. Wait for the issue to clear its review/approval stages. Each reviewer and the Product Owner records `approved` by PATCHing the issue toward `done`, or `changes_requested` by PATCHing it back to `in_progress`; Paperclip stores the reviewer/approver decision metadata on the issue. Verdicts may be mirrored as PR comments. A `changes_requested` routes the issue back to you — address it, push to the same branch, and that stage re-runs.
|
|
41
41
|
12. **Merging the PR — two paths:**
|
|
42
|
-
- **Code Reviewer present (PR-Gate mode):** You do not merge your own PR. The Code Reviewer (the non-author merge gate) lands it after every prior stage approves, satisfies the hard verification gate (green CI or pasted test/build output), and records the final `approved` that closes the issue to `done`. Your job is to respond to `changes_requested`: when a stage routes the issue back to you, address the feedback, push to the same branch, and the stage re-runs.
|
|
43
|
-
- **No code-reviewer present (PR Self-Merge Flow):** You already skipped steps 9–11.
|
|
42
|
+
- **Code Reviewer present (PR-Gate mode):** You do not merge your own PR. The Code Reviewer (the non-author merge gate) lands it after every prior stage approves, satisfies the hard verification gate (green CI or pasted test/build output), and records the final `approved` that closes the issue to `done`. Your job is to respond to `changes_requested`: when a stage routes the issue back to you, address the feedback, push to the same branch, and the stage re-runs. If `changes_requested` is due to a merge conflict (the Code Reviewer will say so), see *Resolving merge conflicts* below.
|
|
43
|
+
- **No code-reviewer present (PR Self-Merge Flow):** You already skipped steps 9–11. Before merging, check `gh pr view <N> --json mergeable,mergeStateStatus` — if the PR is `CONFLICTING` or `DIRTY`, resolve the conflict first (see *Resolving merge conflicts* below). Then merge: `gh pr merge <N> --merge` once CI is green (or you have pasted test/build output if no CI). All other review roles (qa, product-owner, security-engineer, ui-designer, ux-researcher, devops) may leave advisory comments on the PR, but none block the merge — there are no executionPolicy stages. Update the Paperclip work product to `"status": "merged"` and archive any isolated worktree.
|
|
44
|
+
|
|
45
|
+
## Resolving merge conflicts
|
|
46
|
+
|
|
47
|
+
When `gh pr merge` fails or `gh pr view` reports `mergeable: CONFLICTING` / `mergeStateStatus: DIRTY`:
|
|
48
|
+
|
|
49
|
+
1. `git fetch origin`
|
|
50
|
+
2. `git checkout <branch-name>`
|
|
51
|
+
3. `git rebase origin/<base-branch>` where `<base-branch>` is the plain branch name — strip any `origin/` prefix from the configured base ref (e.g., configured `origin/main` → `git rebase origin/main`; configured `main` → `git rebase origin/main`). Resolve all conflicts, then `git rebase --continue`.
|
|
52
|
+
4. Run the full check suite (lint, typecheck, tests) to confirm nothing broke.
|
|
53
|
+
5. `git push --force-with-lease origin <branch-name>`
|
|
54
|
+
6. Confirm the PR is no longer conflicting: `gh pr view <N> --json mergeable` should return `MERGEABLE`.
|
|
55
|
+
7. Leave an issue comment noting the rebase, then continue with the merge step.
|
|
56
|
+
|
|
57
|
+
Never leave a PR with unresolved conflicts without either resolving them or explicitly routing the issue back (`changes_requested`) with a comment explaining the blocker. A dirty PR sitting in `in_review` stalls the entire chain.
|
|
58
|
+
|
|
59
|
+
If the conflict is too complex to resolve safely (large structural conflict with another in-flight PR), leave an issue comment with the exact conflict description and escalate to the CEO for prioritization.
|
|
44
60
|
|
|
45
61
|
## Rules
|
|
46
62
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Skill: Release Process (CEO Fallback)
|
|
2
|
+
|
|
3
|
+
You are acting as a fallback for this capability because neither a devops agent nor an engineer is currently on the team. **Do not execute releases** — your role is to ensure release conventions are documented and a proper release owner is hired.
|
|
4
|
+
|
|
5
|
+
## What you should do
|
|
6
|
+
|
|
7
|
+
1. Check if `docs/RELEASE-PROCESS.md` exists. If not, create it with:
|
|
8
|
+
- Versioning convention (SemVer: `MAJOR.MINOR.PATCH`)
|
|
9
|
+
- Branch and tagging strategy (e.g., tag `vX.Y.Z` on the default branch after each release)
|
|
10
|
+
- Changelog format: Conventional Commits → CHANGELOG.md grouping
|
|
11
|
+
- Note: "This document was created by the CEO as a placeholder. A devops or engineer agent should implement and automate the release pipeline."
|
|
12
|
+
2. Check if the project has a CHANGELOG.md. If not, create one with a `## Unreleased` section listing the current commits since the last tag (use `git log --oneline`).
|
|
13
|
+
3. Create a follow-up issue: "Implement automated release pipeline" assigned to `capability:ci-cd` or directly to an engineer, linking to `docs/RELEASE-PROCESS.md`.
|
|
14
|
+
4. Mark this issue done. **Do not push tags, create GitHub releases, or modify version files** — those actions require a devops or engineer agent.
|
|
15
|
+
|
|
16
|
+
## Rules
|
|
17
|
+
|
|
18
|
+
- Never execute `git push --tags`, `gh release create`, or version-file bumps without a devops or engineer agent present.
|
|
19
|
+
- Your output is documentation and a follow-up issue — not an executed release.
|
|
20
|
+
- If an urgent release is needed, escalate to the board.
|
|
@@ -21,5 +21,14 @@
|
|
|
21
21
|
"assignTo": "capability:release-process",
|
|
22
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
23
|
}
|
|
24
|
+
],
|
|
25
|
+
"routines": [
|
|
26
|
+
{
|
|
27
|
+
"name": "Release readiness check",
|
|
28
|
+
"description": "Check for unreleased changes and cut a release if warranted.",
|
|
29
|
+
"assignTo": "capability:release-process",
|
|
30
|
+
"schedule": "0 9 * * 1",
|
|
31
|
+
"concurrencyPolicy": "forbid"
|
|
32
|
+
}
|
|
24
33
|
]
|
|
25
34
|
}
|
|
@@ -29,12 +29,14 @@ You are responsible for managing the release lifecycle — versioning, changelog
|
|
|
29
29
|
- Create the release commit and tag
|
|
30
30
|
- Create a GitHub Release with notes: `gh release create vX.Y.Z --notes "..."`
|
|
31
31
|
|
|
32
|
-
## Ongoing
|
|
32
|
+
## Ongoing Release Readiness (Routine-Triggered)
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
When assigned a "Release readiness check" routine-run issue:
|
|
35
|
+
|
|
36
|
+
1. Check if unreleased changes have accumulated since the last release: `git log <last-tag>..HEAD --oneline`. If no unreleased commits, mark done.
|
|
37
|
+
2. Review `docs/CHANGELOG.md` or commit log for breaking changes, new features, or bug fixes that warrant a version bump.
|
|
38
|
+
3. Run the full test suite and build. If failing, create a blocking issue and escalate before continuing.
|
|
39
|
+
4. If a release is warranted, follow the release steps in the *Setup* section of this skill to cut the release. Otherwise leave a comment noting the check result and mark the routine issue done.
|
|
38
40
|
|
|
39
41
|
## Rules
|
|
40
42
|
|
|
@@ -4,11 +4,11 @@ The Product Owner or Engineer primarily owns issue triage. You are the fallback
|
|
|
4
4
|
|
|
5
5
|
## Issue Triage (Fallback)
|
|
6
6
|
|
|
7
|
-
1. Check for untriaged GitHub issues: `gh issue list --state open --label ""`
|
|
7
|
+
1. Check for untriaged GitHub issues: `gh issue list --state open --label "" --json number,title,body,labels,createdAt`
|
|
8
8
|
2. If issues are piling up without responses:
|
|
9
9
|
- Classify each as bug, feature, question, or invalid
|
|
10
10
|
- Respond with a brief acknowledgment
|
|
11
|
-
- Create Paperclip tasks for actionable items with priority set
|
|
11
|
+
- Create Paperclip tasks for actionable items with priority set. When creating Paperclip issues from triaged GitHub items, include `executionWorkspaceSettings: { mode: 'isolated_workspace' }` in the issue creation payload.
|
|
12
12
|
- Close duplicates and invalid issues with explanation
|
|
13
13
|
3. If the Product Owner or Engineer is active and triaging, skip this entirely.
|
|
14
14
|
|