@starlein/paperclip-plugin-company-wizard 0.4.22 → 0.6.2
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 +120 -0
- package/README.md +29 -15
- package/dist/manifest.js +24 -9
- package/dist/manifest.js.map +2 -2
- package/dist/ui/index.css +636 -589
- package/dist/ui/index.css.map +2 -2
- package/dist/ui/index.js +365 -60
- package/dist/ui/index.js.map +4 -4
- package/dist/worker.js +22374 -5375
- package/dist/worker.js.map +4 -4
- package/docs/PAPERCLIP-COMPATIBILITY.md +66 -0
- package/package.json +10 -10
- package/templates/ai-wizard/interview-system.md +2 -0
- package/templates/ai-wizard/single-shot-system.md +2 -0
- package/templates/bootstrap-instructions.md +3 -3
- package/templates/modules/accessibility/agents/engineer/skills/accessibility-audit.fallback.md +2 -2
- package/templates/modules/accessibility/agents/ui-designer/skills/accessibility-audit.fallback.md +2 -2
- package/templates/modules/accessibility/module.meta.json +1 -1
- package/templates/modules/accessibility/skills/accessibility-audit.bar.md +1 -1
- package/templates/modules/accessibility/skills/accessibility-audit.md +1 -1
- package/templates/modules/architecture-plan/agents/ceo/skills/architecture-plan.bar.md +2 -2
- package/templates/modules/architecture-plan/agents/ceo/skills/architecture-plan.fallback.md +2 -2
- package/templates/modules/architecture-plan/agents/engineer/skills/design-system.fallback.md +2 -2
- package/templates/modules/architecture-plan/agents/ui-designer/skills/architecture-plan.md +2 -2
- package/templates/modules/architecture-plan/agents/ui-designer/skills/design-system.md +3 -3
- package/templates/modules/architecture-plan/module.meta.json +2 -2
- package/templates/modules/architecture-plan/skills/architecture-plan.bar.md +1 -1
- package/templates/modules/architecture-plan/skills/architecture-plan.md +3 -3
- package/templates/modules/architecture-plan/skills/design-system.md +5 -5
- package/templates/modules/auto-assign/README.md +4 -4
- package/templates/modules/auto-assign/agents/ceo/heartbeat-section.md +1 -1
- package/templates/modules/auto-assign/agents/ceo/skills/auto-assign.fallback.md +6 -6
- package/templates/modules/auto-assign/agents/product-owner/heartbeat-section.md +1 -1
- package/templates/modules/auto-assign/module.meta.json +1 -1
- package/templates/modules/auto-assign/skills/auto-assign.md +3 -2
- package/templates/modules/backlog/agents/ceo/heartbeat-section.md +1 -1
- package/templates/modules/backlog/agents/ceo/skills/backlog-health.fallback.md +9 -9
- package/templates/modules/backlog/agents/product-owner/heartbeat-section.md +1 -1
- package/templates/modules/backlog/docs/backlog-process.md +36 -21
- package/templates/modules/backlog/docs/backlog-template.md +10 -9
- package/templates/modules/backlog/module.meta.json +2 -2
- package/templates/modules/backlog/skills/backlog-health.bar.md +3 -3
- package/templates/modules/backlog/skills/backlog-health.md +16 -15
- package/templates/modules/brand-identity/agents/ceo/skills/brand-identity.fallback.md +2 -2
- package/templates/modules/brand-identity/agents/cmo/skills/brand-identity.fallback.md +2 -2
- package/templates/modules/brand-identity/module.meta.json +1 -1
- package/templates/modules/brand-identity/skills/brand-identity.bar.md +1 -1
- package/templates/modules/brand-identity/skills/brand-identity.md +3 -3
- package/templates/modules/build-api/skills/api-design.bar.md +1 -1
- package/templates/modules/build-api/skills/api-design.md +1 -1
- package/templates/modules/ci-cd/agents/devops/skills/ci-cd.md +1 -1
- package/templates/modules/ci-cd/agents/engineer/skills/ci-cd.fallback.md +2 -2
- package/templates/modules/ci-cd/module.meta.json +1 -1
- package/templates/modules/ci-cd/skills/ci-cd.bar.md +1 -1
- package/templates/modules/ci-cd/skills/ci-cd.md +6 -4
- package/templates/modules/codebase-onboarding/agents/ceo/skills/codebase-audit.fallback.md +5 -5
- package/templates/modules/codebase-onboarding/module.meta.json +1 -1
- package/templates/modules/codebase-onboarding/skills/codebase-audit.bar.md +1 -1
- package/templates/modules/codebase-onboarding/skills/codebase-audit.md +2 -2
- package/templates/modules/competitive-intel/agents/ceo/skills/competitive-tracking.fallback.md +2 -2
- package/templates/modules/competitive-intel/agents/cmo/skills/competitive-tracking.fallback.md +2 -2
- package/templates/modules/competitive-intel/agents/customer-success/skills/competitive-tracking.md +2 -2
- package/templates/modules/competitive-intel/agents/product-owner/skills/competitive-tracking.fallback.md +2 -2
- package/templates/modules/competitive-intel/module.meta.json +1 -1
- package/templates/modules/competitive-intel/skills/competitive-tracking.bar.md +2 -2
- package/templates/modules/competitive-intel/skills/competitive-tracking.md +3 -3
- package/templates/modules/dependency-management/agents/engineer/skills/dependency-audit.fallback.md +2 -2
- package/templates/modules/dependency-management/agents/security-engineer/skills/dependency-audit.fallback.md +2 -2
- package/templates/modules/dependency-management/module.meta.json +2 -2
- package/templates/modules/dependency-management/skills/dependency-audit.md +2 -2
- package/templates/modules/game-design/agents/ceo/skills/game-design.fallback.md +1 -1
- package/templates/modules/game-design/agents/engineer/skills/game-design.fallback.md +1 -1
- package/templates/modules/game-design/agents/game-designer/skills/game-design.md +2 -2
- package/templates/modules/game-design/module.meta.json +1 -1
- package/templates/modules/game-design/skills/audio-design.fallback.md +2 -2
- package/templates/modules/game-design/skills/audio-design.md +3 -3
- package/templates/modules/game-design/skills/game-design.bar.md +1 -1
- package/templates/modules/game-design/skills/game-design.md +3 -3
- package/templates/modules/game-design/skills/level-design.fallback.md +2 -2
- package/templates/modules/game-design/skills/level-design.md +4 -4
- package/templates/modules/github-repo/agents/engineer/skills/git-workflow.md +15 -14
- package/templates/modules/github-repo/docs/git-workflow.md +7 -7
- package/templates/modules/github-repo/module.meta.json +1 -1
- package/templates/modules/lean-delivery/docs/lean-delivery.md +15 -0
- package/templates/modules/lean-delivery/module.meta.json +6 -0
- package/templates/modules/market-analysis/agents/ceo/skills/market-analysis.fallback.md +2 -2
- package/templates/modules/market-analysis/agents/cmo/skills/market-analysis.fallback.md +2 -2
- package/templates/modules/market-analysis/agents/product-owner/skills/market-analysis.fallback.md +2 -2
- package/templates/modules/market-analysis/agents/ux-researcher/skills/market-analysis.md +2 -2
- package/templates/modules/market-analysis/module.meta.json +1 -1
- package/templates/modules/market-analysis/skills/market-analysis.bar.md +1 -1
- package/templates/modules/market-analysis/skills/market-analysis.md +2 -2
- package/templates/modules/monitoring/agents/devops/skills/monitoring.md +1 -1
- package/templates/modules/monitoring/agents/engineer/skills/monitoring.fallback.md +2 -2
- package/templates/modules/monitoring/module.meta.json +1 -1
- package/templates/modules/monitoring/skills/monitoring.bar.md +1 -1
- package/templates/modules/monitoring/skills/monitoring.md +3 -3
- package/templates/modules/pr-review/README.md +10 -12
- package/templates/modules/pr-review/agents/code-reviewer/skills/code-review.md +16 -13
- package/templates/modules/pr-review/agents/devops/skills/infra-review.md +2 -2
- package/templates/modules/pr-review/agents/engineer/skills/pr-workflow.md +36 -26
- package/templates/modules/pr-review/agents/product-owner/skills/product-review.md +8 -8
- package/templates/modules/pr-review/agents/qa/skills/qa-review.md +10 -10
- package/templates/modules/pr-review/agents/security-engineer/skills/pr-security-review.md +5 -4
- package/templates/modules/pr-review/agents/ui-designer/skills/design-review.md +4 -4
- package/templates/modules/pr-review/agents/ux-researcher/skills/ux-review.md +3 -3
- package/templates/modules/pr-review/docs/pr-conventions.md +22 -26
- package/templates/modules/pr-review/module.meta.json +2 -2
- package/templates/modules/release-management/agents/ceo/skills/release-process.fallback.md +2 -2
- package/templates/modules/release-management/agents/engineer/skills/release-process.fallback.md +2 -2
- package/templates/modules/release-management/module.meta.json +3 -3
- package/templates/modules/release-management/skills/release-process.md +2 -2
- package/templates/modules/security-audit/agents/devops/skills/security-review.fallback.md +2 -2
- package/templates/modules/security-audit/agents/devops/skills/threat-model.fallback.md +2 -2
- package/templates/modules/security-audit/agents/engineer/skills/security-review.fallback.md +2 -2
- package/templates/modules/security-audit/agents/engineer/skills/threat-model.fallback.md +2 -2
- package/templates/modules/security-audit/module.meta.json +2 -2
- package/templates/modules/security-audit/skills/security-review.bar.md +1 -1
- package/templates/modules/security-audit/skills/security-review.md +1 -1
- package/templates/modules/security-audit/skills/threat-model.bar.md +1 -1
- package/templates/modules/security-audit/skills/threat-model.md +3 -3
- package/templates/modules/stall-detection/agents/ceo/heartbeat-section.md +1 -1
- package/templates/modules/stall-detection/agents/ceo/skills/stall-detection.md +19 -16
- package/templates/modules/tech-stack/agents/ceo/skills/tech-stack.fallback.md +2 -2
- package/templates/modules/tech-stack/module.meta.json +1 -1
- package/templates/modules/tech-stack/skills/tech-stack.bar.md +1 -1
- package/templates/modules/tech-stack/skills/tech-stack.md +2 -2
- package/templates/modules/triage/agents/ceo/skills/issue-triage.fallback.md +1 -1
- package/templates/modules/triage/agents/engineer/skills/issue-triage.fallback.md +1 -1
- package/templates/modules/triage/skills/issue-triage.md +1 -1
- package/templates/modules/user-testing/agents/ceo/skills/user-testing.fallback.md +2 -2
- package/templates/modules/user-testing/agents/product-owner/skills/user-testing.fallback.md +2 -2
- package/templates/modules/user-testing/agents/qa/skills/user-testing.md +2 -2
- package/templates/modules/user-testing/agents/ux-researcher/skills/user-testing.fallback.md +2 -2
- package/templates/modules/user-testing/module.meta.json +1 -1
- package/templates/modules/user-testing/skills/user-testing.md +2 -2
- package/templates/modules/vision-workshop/agents/ceo/skills/vision-workshop.md +2 -2
- package/templates/modules/vision-workshop/agents/ux-researcher/skills/vision-workshop.md +1 -1
- package/templates/modules/vision-workshop/module.meta.json +1 -1
- package/templates/modules/website-relaunch/agents/ui-designer/skills/site-audit.md +1 -1
- package/templates/modules/website-relaunch/module.meta.json +7 -7
- package/templates/modules/website-relaunch/skills/design-ingestion.md +1 -1
- package/templates/modules/website-relaunch/skills/site-audit.md +1 -1
- package/templates/presets/build-game/preset.meta.json +6 -6
- package/templates/presets/repo-maintenance/preset.meta.json +20 -21
- package/templates/roles/audio-designer/HEARTBEAT.md +1 -1
- package/templates/roles/ceo/AGENTS.md +2 -0
- package/templates/roles/ceo/HEARTBEAT.md +1 -1
- package/templates/roles/ceo/role.meta.json +1 -1
- package/templates/roles/cmo/HEARTBEAT.md +1 -1
- package/templates/roles/code-reviewer/AGENTS.md +3 -1
- package/templates/roles/code-reviewer/HEARTBEAT.md +1 -1
- package/templates/roles/cto/HEARTBEAT.md +1 -1
- package/templates/roles/customer-success/HEARTBEAT.md +1 -1
- package/templates/roles/devops/HEARTBEAT.md +1 -1
- package/templates/roles/engineer/AGENTS.md +3 -3
- package/templates/roles/engineer/HEARTBEAT.md +2 -2
- package/templates/roles/game-artist/HEARTBEAT.md +1 -1
- package/templates/roles/game-designer/HEARTBEAT.md +1 -1
- package/templates/roles/level-designer/HEARTBEAT.md +1 -1
- package/templates/roles/product-owner/AGENTS.md +1 -1
- package/templates/roles/product-owner/HEARTBEAT.md +2 -2
- package/templates/roles/qa/HEARTBEAT.md +4 -4
- package/templates/roles/security-engineer/AGENTS.md +2 -2
- package/templates/roles/security-engineer/HEARTBEAT.md +1 -1
- package/templates/roles/technical-writer/HEARTBEAT.md +1 -1
- package/templates/roles/ui-designer/HEARTBEAT.md +1 -1
- package/templates/roles/ux-researcher/HEARTBEAT.md +1 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Paperclip compatibility — Company Wizard 0.6.2
|
|
2
|
+
|
|
3
|
+
Reviewed on 2026-09-07 against [Paperclip source `856813ba3a083f23694b8554104b3e50abcb1363`](https://github.com/paperclipai/paperclip/tree/856813ba3a083f23694b8554104b3e50abcb1363), the current master snapshot at review time (2026-09-06).
|
|
4
|
+
|
|
5
|
+
**0.6.2 re-review (2026-09-07).** The 0.6.1 claims below were re-verified line by line against the local Paperclip checkout at `3fb4b65f9d974d8687db8a060f20ec66b6071a79` ("merge upstream master through 2026-09-06"). Approval, hire, watchdog, workspace-policy, Company Skill, and REST-shape claims held. The defects found were on the plugin side and are fixed in 0.6.2: an invalid routine `concurrencyPolicy`, a routine title read from a key the renderer ignored, instruction paths left behind by the Skills Store migration, a misquoted review-gate 422, undocumented review-round escalation, a stale checkout contract, and the host-floor rationale corrected below. See `CHANGELOG.md` for the full list.
|
|
6
|
+
|
|
7
|
+
The plugin does not vendor, modify, or deploy Paperclip itself. Its runtime SDK remains provided by the host.
|
|
8
|
+
|
|
9
|
+
The published SDK and shared package both require **Node 24.11+**; their worker/manifest bundler targets Node 24. Use that runtime for a supported Paperclip host. A root `engines` gate is intentionally omitted so existing Node 20/22 build/release workflows remain installable under pnpm 10. Those workflows are supplemental compatibility signals, not proof of a supported Paperclip host runtime; migrating them to Node 24 requires workflow-edit authority.
|
|
10
|
+
|
|
11
|
+
## Tested package contracts
|
|
12
|
+
|
|
13
|
+
- Stable SDK/shared: `2026.831.1` (pinned development dependencies; peer floor `>=2026.831.1`).
|
|
14
|
+
- Latest published canary SDK/shared checked separately: `2026.906.0-canary.5`.
|
|
15
|
+
- Validation: TypeScript, production bundle, worker/action tests, assembly/template matrix, and shared-schema payload tests. These are source/contract and mocked integration checks, not a live deployed Paperclip database/browser acceptance test.
|
|
16
|
+
|
|
17
|
+
### Development-dependency remediation
|
|
18
|
+
|
|
19
|
+
Outcome: **fixed installed dependency advisories**. The original audit reported 19 advisories (1 critical, 9 high, 7 moderate, 2 low), all in development/build dependencies; production-only audit was already clean. The repository's configured tests use `vitest run` without a UI server, and its build uses PostCSS/esbuild against local files, not their HTTP servers. No deployed-plugin exploit was established.
|
|
20
|
+
|
|
21
|
+
The narrow fix removes unused `esbuild-postcss-plugin`, updates Vitest within 3.x and PostCSS within 8.x, moves esbuild to patched 0.28.x, and refreshes affected transitive Vite/glob/parser packages. `pnpm-workspace.yaml` limits the esbuild override to Vite and preserves the existing dependency-build allowlist and Paperclip release-age exceptions. No application authentication, approval or runtime control is weakened.
|
|
22
|
+
|
|
23
|
+
Reproduction substitute: the same full `pnpm audit --json` went from 19 advisories to **zero**; the lockfile contains no reported vulnerable versions or unused plugin chain. This proves dependency removal/update, not a live exploit reproduction. Alternate transitive paths (not only direct dependencies) are included in the audit. `pnpm install --frozen-lockfile`, TypeScript, production build, 72 worker/action tests and 199 logic/API tests pass on Node 24.11.0, preserving normal build and provisioning behavior. The existing tests serve as controls; no artificial exploit fixture was needed for a dependency-version remediation.
|
|
24
|
+
|
|
25
|
+
API version 1 and declared capability checks remain enabled. There is deliberately no numeric `minimumHostVersion`. `server/src/app.ts` hands the plugin loader `opts.hostVersion ?? serverVersion`, and `server/src/version.ts` resolves `serverVersion` from `git describe`, then a stamped build version, then the server package version — `"0.0.0"` only as a last-resort fallback. A packaged install therefore reports the server package version (`0.3.1` in this snapshot), which `plugin-loader.ts` would compare with `compareSemver` against any CalVer floor and reject, even though the host is current. Older API implementations are not thereby supported; unsupported REST operations surface errors rather than silently downgrading governance.
|
|
26
|
+
|
|
27
|
+
## Source-aligned behavior
|
|
28
|
+
|
|
29
|
+
| Area | 0.6.2 behavior | Source contract |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| Project policies | Required `enabled`, full schema fields, explicit concurrency defaults; preserve existing IDs, goal links and operator settings | `packages/shared/src/validators/project.ts`; `server/src/routes/projects.ts` |
|
|
32
|
+
| Workspace enforcement | Feature-gated; preserve disabled policies and explicit issue/operator overrides | `server/src/services/execution-workspace-policy.ts`; `server/src/services/heartbeat.ts` |
|
|
33
|
+
| Hires | Governed `/agent-hires`, explicit selected board approvals; no approval-policy bypass | `server/src/routes/agents.ts`; `server/src/routes/approvals.ts` |
|
|
34
|
+
| Bootstrap | Separate issue-bound CEO wake; pending/paused/terminated agents rejected, skipped wakes reported, missing watchdog restored best-effort | `server/src/routes/agents.ts`; `server/src/routes/issues.ts` |
|
|
35
|
+
| Company Skills | Metadata, file content and rename use their respective routes; rename reads nested `skill.key`; imported slug collisions are not overwritten | `server/src/routes/company-skills.ts`; `server/src/services/company-skills.ts` |
|
|
36
|
+
| Wizard state | Company-scoped SDK `ctx.state`, not nonexistent `/plugins/:id/company-settings/:companyId` | Plugin SDK state contract; `server/src/services/plugin-state-store.ts` |
|
|
37
|
+
| Review recovery | Active stage/return assignee, not the currently reassigned reviewer, determines author-only blockage | `server/src/services/issue-execution-policy.ts` |
|
|
38
|
+
| Managed worktrees | Preserve assigned branch identity and reusable workspace records; no cleanup shortcut or `--delete-branch` merge | `server/src/services/heartbeat.ts`; `server/src/routes/execution-workspaces.ts` |
|
|
39
|
+
| Routines | Title accepts the legacy `name` key; `concurrencyPolicy` is normalized to the accepted enum before create/sync, so a bad template value degrades instead of losing the routine | `packages/shared/src/validators/routine.ts`; `server/src/routes/routines.ts` |
|
|
40
|
+
| Review gates | An author-only stage fails participant selection (`No eligible <review\|approval> participant is configured for this issue`); after 3 agent rounds the stage escalates to the responsible/creating human | `server/src/services/issue-execution-policy.ts` |
|
|
41
|
+
| Agent instructions | Skills are named by Skills Store slug, and shared docs are referenced as `docs/<file>.md` from the agent working directory; only `AGENTS.md` uses the file-relative `../../docs/` form | `packages/adapters/claude-local/src/server/skills.ts`; assembled `agents/<role>/AGENTS.md` |
|
|
42
|
+
|
|
43
|
+
### Concurrency is conditional
|
|
44
|
+
|
|
45
|
+
Storing `sharedWorkspaceConcurrency: "serialize"` is not sufficient by itself. Current source ignores workspace policies/settings when the instance's `enableIsolatedWorkspaces` is disabled. The project policy must also be enabled; explicit per-issue settings win, and project `auto`/`allow` opt-outs are preserved. The shared guard applies to project-bound shared-workspace runs, not arbitrary processes sharing a directory. The wizard never changes the global experimental setting.
|
|
46
|
+
|
|
47
|
+
Fresh local Git repositories stay shared until bootstrap initializes and seeds them. Existing projects retain their supplied workspace/mode/strategy; no guessed local Git directory replaces them. No Git initialization is generated for remote-managed or non-Git paths.
|
|
48
|
+
|
|
49
|
+
### Consolidation decisions
|
|
50
|
+
|
|
51
|
+
- PR #44: retain opt-in lean delivery, skill-update route fixes, exact-head review/CI checks, same-issue advisory handoffs, and template regressions. Standard role-based review remains the default.
|
|
52
|
+
- PR #46: retain explicit shared concurrency and approval UI, fixing partial policy rendering, AI field loss, existing-project application, overly broad approvals, and host-floor incompatibility.
|
|
53
|
+
- PR #47: adopt advisory PR queue counts throughout roles/modules/preset seeds. Actual dependencies, branch protection, required checks, and explicit company capacity policies are still binding.
|
|
54
|
+
- Additional fixes: SDK manifest persistence, existing routine project links, imported-skill collisions, wrong retired-role parent IDs, managed-branch preservation, false stalled-review recovery, and release-pinned template selection.
|
|
55
|
+
|
|
56
|
+
Official/default templates now come from the installed plugin release. A configured local path remains operator-owned. Custom GitHub sources get URL-specific caches and atomic explicit refresh; a missing custom source never silently becomes official templates. Refresh before preview when intentionally changing a custom source.
|
|
57
|
+
|
|
58
|
+
## Operator acceptance checklist
|
|
59
|
+
|
|
60
|
+
1. Install the 0.6.2 package in a current Paperclip host and reload the plugin.
|
|
61
|
+
2. Preview an existing company with multiple projects. Check IDs, goal links, workspace paths, policy opt-outs and newly added routine project links.
|
|
62
|
+
3. Provision a disposable company with board-gated hires. Confirm only this run's hires appear, approve a subset, refresh, then explicitly start bootstrap after the CEO is approved.
|
|
63
|
+
4. Confirm actual shared-run deferral with the instance feature and project policy enabled; confirm disabled/explicit override behavior separately.
|
|
64
|
+
5. Exercise one standard review and one opt-in lean review using a managed worktree and required CI. Verify exact-head evidence, review ownership, merge, and preserved workspace identity.
|
|
65
|
+
|
|
66
|
+
No production company, repository protection, instance setting, or npm release was changed during contract validation.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starlein/paperclip-plugin-company-wizard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.2",
|
|
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": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"dist/",
|
|
20
20
|
"templates/",
|
|
21
|
+
"docs/PAPERCLIP-COMPATIBILITY.md",
|
|
21
22
|
"CHANGELOG.md",
|
|
22
23
|
"CONTRIBUTING.md"
|
|
23
24
|
],
|
|
@@ -43,29 +44,28 @@
|
|
|
43
44
|
"tailwind-merge": "^3.4.1"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
|
-
"@paperclipai/plugin-sdk": "2026.
|
|
47
|
-
"@paperclipai/shared": "2026.
|
|
47
|
+
"@paperclipai/plugin-sdk": "2026.831.1",
|
|
48
|
+
"@paperclipai/shared": "2026.831.1",
|
|
48
49
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
49
50
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
50
51
|
"@tailwindcss/postcss": "^4.0.7",
|
|
51
52
|
"@types/node": "^24.6.0",
|
|
52
53
|
"@types/react": "^19.0.8",
|
|
53
54
|
"@types/react-dom": "^19.2.3",
|
|
54
|
-
"esbuild": "^0.
|
|
55
|
-
"esbuild-postcss-plugin": "^0.0.7",
|
|
55
|
+
"esbuild": "^0.28.1",
|
|
56
56
|
"husky": "^9.1.7",
|
|
57
57
|
"lint-staged": "^16.3.2",
|
|
58
|
-
"postcss": "^8.5.
|
|
58
|
+
"postcss": "^8.5.28",
|
|
59
59
|
"prettier": "^3.8.1",
|
|
60
60
|
"rollup": "^4.38.0",
|
|
61
61
|
"tailwindcss": "^4.0.7",
|
|
62
62
|
"tslib": "^2.8.1",
|
|
63
63
|
"typescript": "^5.7.3",
|
|
64
|
-
"vitest": "^3.
|
|
64
|
+
"vitest": "^3.2.6"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
|
-
"@paperclipai/plugin-sdk": ">=2026.
|
|
68
|
-
"@paperclipai/shared": ">=2026.
|
|
67
|
+
"@paperclipai/plugin-sdk": ">=2026.831.1",
|
|
68
|
+
"@paperclipai/shared": ">=2026.831.1",
|
|
69
69
|
"react": ">=18",
|
|
70
70
|
"react-dom": ">=18"
|
|
71
71
|
},
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"test": "vitest run --config ./vitest.config.ts",
|
|
78
78
|
"test:logic": "node --test src/logic/*.test.js src/api/*.test.js",
|
|
79
79
|
"typecheck": "tsc --noEmit",
|
|
80
|
-
"build:prod": "
|
|
80
|
+
"build:prod": "node ./esbuild.config.mjs --production",
|
|
81
81
|
"publish:npm": "npm publish --access public"
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -8,6 +8,8 @@ You are conducting a guided interview to understand what company to set up.
|
|
|
8
8
|
## Available Modules (can be added on top of preset)
|
|
9
9
|
{{MODULE_CATALOG}}
|
|
10
10
|
|
|
11
|
+
`lean-delivery` is opt-in: explain its single merge gate and risk-triggered specialist evidence when relevant, and include it only if the user chooses that policy. Open PR count is advisory in either mode, not a numeric assignment cap. Otherwise leave it unselected. When selected, include its `pr-review` and `github-repo` dependencies.
|
|
12
|
+
|
|
11
13
|
## Available Optional Roles (can be added on top of preset)
|
|
12
14
|
{{ROLE_CATALOG}}
|
|
13
15
|
|
|
@@ -10,6 +10,8 @@ Given a natural language description of what the user wants to build, you select
|
|
|
10
10
|
|
|
11
11
|
{{MODULE_CATALOG}}
|
|
12
12
|
|
|
13
|
+
`lean-delivery` is opt-in: include it only when the user explicitly requests lean delivery or its single-gate review policy. Open PR count is advisory in either mode, not a numeric assignment cap. Otherwise leave it unselected. When selected, include its `pr-review` and `github-repo` dependencies.
|
|
14
|
+
|
|
13
15
|
## Available Optional Roles (can be added on top of preset)
|
|
14
16
|
|
|
15
17
|
{{ROLE_CATALOG}}
|
|
@@ -16,10 +16,10 @@ Each section (Goals, Projects, Labels, Agents, Issues, Routines) contains object
|
|
|
16
16
|
**Creation order** (respects dependencies):
|
|
17
17
|
|
|
18
18
|
1. **Goals** — create with `POST /api/companies/{companyId}/goals` using `{ title, description, level, parentId? }`. Top-level first, then sub-goals: sub-goals have `parentId: → "Parent Title"`, so create the parent first and use its ID. Valid `level`: `company`, `team`, `agent`, `task`. Valid `status` (optional, defaults to `planned`): `planned`, `active`, `achieved`, `cancelled`.
|
|
19
|
-
2. **Projects** — create with `POST /api/companies/{companyId}/projects` using `{ name, description, goalIds, workspace, executionWorkspacePolicy? }`. Reference goals via `goalIds`; create after all goals exist. Valid project `status` (optional, defaults to `backlog`): `backlog`, `planned`, `in_progress`, `completed`, `cancelled` — **`active` is a goal status, NOT a project status; do not set it on a project.** Create the project workspace as an object, not a raw string. Fresh/new repositories use a local
|
|
19
|
+
2. **Projects** — create with `POST /api/companies/{companyId}/projects` using `{ name, description, goalIds, workspace, executionWorkspacePolicy? }`. Reference goals via `goalIds`; create after all goals exist. Valid project `status` (optional, defaults to `backlog`): `backlog`, `planned`, `in_progress`, `completed`, `cancelled` — **`active` is a goal status, NOT a project status; do not set it on a project.** Create the project workspace as an object, not a raw string. Fresh/new repositories use a local workspace such as `workspace: { sourceType: "local_path", cwd: "...", defaultRef: "main", setupCommand: "git init -b main", isPrimary: true }` with the rendered shared-workspace policy until Git has a valid initial commit. Existing repository-backed projects use the workspace refs exactly as rendered; do not rewrite them to `main`, `master`, or add/remove `origin/`. Send any rendered `executionWorkspacePolicy` unchanged, including its `enabled` value. A saved `sharedWorkspaceConcurrency: "serialize"` is effective only when Paperclip's instance feature and project policy are enabled; heed any bootstrap warning instead of assuming that saved configuration is an active lock. Never inline credentials in repo URLs.
|
|
20
20
|
3. **Labels** — if the bootstrap includes an Issues section, create issue labels first (`POST /api/companies/{companyId}/labels` with `{ name, color }`). Colors must be 6-digit hex strings with a leading `#`.
|
|
21
21
|
4. **Agents** — hire via governance (`POST /api/companies/{companyId}/agent-hires`) using the listed `adapterType`, nested `adapterConfig`, `runtimeConfig`, `capabilities`, and `metadata`. The Company Wizard already created the CEO for this bootstrap issue; reuse/update any existing agent with the same `metadata.templateRole` instead of creating a duplicate.
|
|
22
|
-
5. **Issues** —
|
|
22
|
+
5. **Issues** — include the rendered `projectId` for project work, including subtasks; keep deliberately project-detached API-only work detached. Subtasks also include `parentId`. Assign via `assigneeAgentId` or `assigneeUserId`, and attach labels via `labelIds`. When using either `POST /api/issues/{parentId}/children` or `POST /api/companies/{companyId}/issues`, keep parent/project links explicit. Declare workspace intent on repository implementation issues, including subtasks: request `"executionWorkspaceSettings": { "mode": "isolated_workspace" }` when the instance feature, project policy, and initialized repository support it; otherwise follow the rendered project policy and avoid concurrent shared-checkout writes. Reuse another issue's workspace only when the task explicitly requires one shared code change; then send `inheritExecutionWorkspaceFromIssueId` with the source issue's internal id instead of relying on `parentId` inheritance.
|
|
23
23
|
6. **Routines** — reference project and agent. Create the routine first, then add a schedule trigger with `POST /api/routines/{routineId}/triggers` using `{ kind: "schedule", cronExpression: schedule, timezone: "UTC" }`.
|
|
24
24
|
|
|
25
25
|
**Status + subissue guardrails:**
|
|
@@ -27,7 +27,7 @@ Each section (Goals, Projects, Labels, Agents, Issues, Routines) contains object
|
|
|
27
27
|
- Parent and subissue status are related by intent, not automatically coupled by tooling.
|
|
28
28
|
- Do not auto-mark a parent `done` just because a child changed status.
|
|
29
29
|
- Do not auto-reopen a `done` parent/subissue unless you have an explicit reason and record it in a comment.
|
|
30
|
-
- Make workspace intent explicit at creation; never rely on implicit inheritance.
|
|
30
|
+
- Make workspace intent explicit at creation; never rely on implicit inheritance. Repository implementation issues and subissues request `"executionWorkspaceSettings": { "mode": "isolated_workspace" }` only when supported by the effective instance/project configuration and initialized repository. `parentId` expresses task hierarchy, not consent to share a checkout. Reuse is exceptional and explicit via `inheritExecutionWorkspaceFromIssueId` only when the task requires the same code change. Keep project work scoped and API-only routines project-detached.
|
|
31
31
|
|
|
32
32
|
**Secrets guardrail:**
|
|
33
33
|
|
package/templates/modules/accessibility/agents/engineer/skills/accessibility-audit.fallback.md
CHANGED
|
@@ -4,11 +4,11 @@ The QA Engineer and UI Designer own accessibility auditing above you. You are th
|
|
|
4
4
|
|
|
5
5
|
## Accessibility Audit (Fallback)
|
|
6
6
|
|
|
7
|
-
1. If no
|
|
7
|
+
1. If no `docs/ACCESSIBILITY-AUDIT.md` exists and nobody has started:
|
|
8
8
|
- Check semantic HTML usage in key pages/components
|
|
9
9
|
- Verify form labels and ARIA attributes are correct
|
|
10
10
|
- Run automated accessibility checks if tooling is available
|
|
11
|
-
- Document in
|
|
11
|
+
- Document in `docs/ACCESSIBILITY-AUDIT.md`
|
|
12
12
|
- Tag QA or UI Designer to expand the audit
|
|
13
13
|
2. If QA or UI Designer is active, skip this entirely.
|
|
14
14
|
|
package/templates/modules/accessibility/agents/ui-designer/skills/accessibility-audit.fallback.md
CHANGED
|
@@ -4,11 +4,11 @@ The QA Engineer owns accessibility auditing above you. You are the fallback —
|
|
|
4
4
|
|
|
5
5
|
## Accessibility Audit (Fallback)
|
|
6
6
|
|
|
7
|
-
1. If no
|
|
7
|
+
1. If no `docs/ACCESSIBILITY-AUDIT.md` exists and QA hasn't started:
|
|
8
8
|
- Review color contrast and visual accessibility of the design system
|
|
9
9
|
- Check that focus states are designed for all interactive components
|
|
10
10
|
- Verify the design system includes accessible component patterns
|
|
11
|
-
- Document in
|
|
11
|
+
- Document in `docs/ACCESSIBILITY-AUDIT.md`
|
|
12
12
|
- Tag QA to expand with keyboard and screen reader testing
|
|
13
13
|
2. If QA is active, skip this entirely.
|
|
14
14
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
{
|
|
17
17
|
"title": "Conduct initial accessibility audit",
|
|
18
18
|
"assignTo": "capability:accessibility-audit",
|
|
19
|
-
"description": "Audit the project for WCAG 2.2 compliance: check semantic HTML, keyboard navigation, color contrast, ARIA usage, and screen reader compatibility. Document findings and remediation plan in
|
|
19
|
+
"description": "Audit the project for WCAG 2.2 compliance: check semantic HTML, keyboard navigation, color contrast, ARIA usage, and screen reader compatibility. Document findings and remediation plan in docs/ACCESSIBILITY-AUDIT.md."
|
|
20
20
|
}
|
|
21
21
|
]
|
|
22
22
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A good accessibility audit:
|
|
4
4
|
|
|
5
|
-
- A
|
|
5
|
+
- A `docs/ACCESSIBILITY-AUDIT.md` covering WCAG 2.2 AA across: semantic HTML, keyboard navigation, colour contrast, ARIA usage, images/media, forms, and zoom/responsive behaviour.
|
|
6
6
|
- Each finding has a severity (Critical / Major / Minor), a specific location, and a concrete remediation — Critical and Major findings have follow-up issues created.
|
|
7
7
|
|
|
8
8
|
Not done:
|
|
@@ -5,7 +5,7 @@ You own accessibility compliance. This ensures the product is usable by everyone
|
|
|
5
5
|
## Accessibility Audit Process
|
|
6
6
|
|
|
7
7
|
1. Review the project for WCAG 2.2 compliance at Level AA (minimum).
|
|
8
|
-
2. Check and document in
|
|
8
|
+
2. Check and document in `docs/ACCESSIBILITY-AUDIT.md`:
|
|
9
9
|
- **Semantic HTML**: Correct heading hierarchy, landmark regions, form labels
|
|
10
10
|
- **Keyboard navigation**: All interactive elements focusable and operable, logical tab order, visible focus indicators
|
|
11
11
|
- **Color and contrast**: Minimum 4.5:1 for normal text, 3:1 for large text, no color-only information
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
## Architecture Plan — Done Bar (CEO Fallback)
|
|
2
2
|
|
|
3
3
|
**Done:**
|
|
4
|
-
-
|
|
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
5
|
- A follow-up issue exists, assigned to an engineer or the architecture-plan capability, to complete the full architecture document.
|
|
6
6
|
|
|
7
7
|
**Not done:**
|
|
8
|
-
- No
|
|
8
|
+
- No `docs/ARCHITECTURE.md` exists at all.
|
|
9
9
|
- The document exists but contains no actionable overview (placeholder text only).
|
|
10
10
|
- No follow-up issue was created for the engineer to complete the work.
|
|
11
11
|
|
|
@@ -4,9 +4,9 @@ The Engineer primarily owns system architecture. You are the fallback — step i
|
|
|
4
4
|
|
|
5
5
|
## Architecture Plan (Fallback)
|
|
6
6
|
|
|
7
|
-
1. If no
|
|
7
|
+
1. If no `docs/ARCHITECTURE.md` exists and no engineer has started:
|
|
8
8
|
- Sketch a minimal architecture based on the tech stack and project goals
|
|
9
|
-
- Document in
|
|
9
|
+
- Document in `docs/ARCHITECTURE.md`
|
|
10
10
|
- Create an issue for the engineer to review and expand
|
|
11
11
|
2. If an engineer is active, skip this entirely.
|
|
12
12
|
|
package/templates/modules/architecture-plan/agents/engineer/skills/design-system.fallback.md
CHANGED
|
@@ -4,10 +4,10 @@ The UI Designer primarily owns the design system. You are the fallback — set u
|
|
|
4
4
|
|
|
5
5
|
## Design System (Fallback)
|
|
6
6
|
|
|
7
|
-
1. If no
|
|
7
|
+
1. If no `docs/DESIGN-SYSTEM.md` exists and no UI Designer has started:
|
|
8
8
|
- Choose a sensible default palette (e.g., Tailwind defaults or a minimal custom set)
|
|
9
9
|
- Define basic typography and spacing scales
|
|
10
|
-
- Document in
|
|
10
|
+
- Document in `docs/DESIGN-SYSTEM.md`
|
|
11
11
|
- Create an issue for a UI Designer to review and expand if one is hired later
|
|
12
12
|
2. If a UI Designer is active, skip this entirely.
|
|
13
13
|
|
|
@@ -4,7 +4,7 @@ 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
|
|
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
8
|
|
|
9
9
|
If an Engineer is defining the architecture, coordinate with them on:
|
|
10
10
|
- **Frontend component structure**: Page layout, shared components, routing
|
|
@@ -12,7 +12,7 @@ If an Engineer is defining the architecture, coordinate with them on:
|
|
|
12
12
|
- **Asset pipeline**: Images, icons, fonts — how they're managed and optimized
|
|
13
13
|
- **Responsive strategy**: How layouts adapt across breakpoints
|
|
14
14
|
|
|
15
|
-
Document your UI architecture notes in
|
|
15
|
+
Document your UI architecture notes in `docs/ARCHITECTURE.md` under a `## UI Architecture` section.
|
|
16
16
|
|
|
17
17
|
## Rules
|
|
18
18
|
|
|
@@ -5,8 +5,8 @@ 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. If
|
|
9
|
-
3. Define and document in
|
|
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`:
|
|
10
10
|
- **Color palette**: Primary, secondary, accent, semantic (success, error, warning), neutrals
|
|
11
11
|
- **Typography**: Font families, scale (heading/body/caption sizes), weights, line heights
|
|
12
12
|
- **Spacing**: Base unit and scale (4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px)
|
|
@@ -14,7 +14,7 @@ You own the visual design system. Establish the foundational patterns that ensur
|
|
|
14
14
|
- **Brand guidelines**: Logo usage, tone of visual language, iconography style
|
|
15
15
|
- **Responsive breakpoints**: Mobile, tablet, desktop sizing approach
|
|
16
16
|
4. Create implementation issues for the engineer:
|
|
17
|
-
- `POST /api/companies/{companyId}/issues` for CSS/design token setup, component library scaffolding. Include
|
|
17
|
+
- `POST /api/companies/{companyId}/issues` for CSS/design token setup, component library scaffolding. Include `projectId` plus `goalId` / `parentId` when applicable, and set `executionWorkspaceSettings: { "mode": "isolated_workspace" }` for top-level repository implementation issues and subissues when the instance feature, project policy, and initialized repository support isolation. Otherwise follow the rendered project policy and avoid concurrent shared-checkout writes. Reuse only when explicitly required via `inheritExecutionWorkspaceFromIssueId`; keep API-only work project-detached.
|
|
18
18
|
5. Assign or hand off implementation issues to the Engineer with a concrete next action; do not rely on generic @-mentions.
|
|
19
19
|
|
|
20
20
|
## Rules
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
{
|
|
27
27
|
"title": "Design initial system architecture",
|
|
28
28
|
"assignTo": "capability:architecture-plan",
|
|
29
|
-
"description": "Based on the tech stack decisions, design the system architecture: component structure, data flow, API boundaries, and deployment model. Document in
|
|
29
|
+
"description": "Based on the tech stack decisions, design the system architecture: component structure, data flow, API boundaries, and deployment model. Document in docs/ARCHITECTURE.md."
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"title": "Define design system and visual language",
|
|
33
33
|
"assignTo": "capability:design-system",
|
|
34
|
-
"description": "Establish the visual foundation: color palette, typography, spacing scale, component patterns, and brand guidelines. Document in
|
|
34
|
+
"description": "Establish the visual foundation: color palette, typography, spacing scale, component patterns, and brand guidelines. Document in docs/DESIGN-SYSTEM.md."
|
|
35
35
|
}
|
|
36
36
|
]
|
|
37
37
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A good architecture plan:
|
|
4
4
|
|
|
5
|
-
- A
|
|
5
|
+
- A `docs/ARCHITECTURE.md` with a system overview (text/ASCII component diagram), data flow through the system, API boundaries (internal and external), deployment model, and key decisions recorded in ADR style with rationale.
|
|
6
6
|
- Decomposed into concrete implementation issues for foundational scaffolding so work can start incrementally.
|
|
7
7
|
|
|
8
8
|
Not done:
|
|
@@ -4,8 +4,8 @@ You own system architecture. Design the structure that implements the tech stack
|
|
|
4
4
|
|
|
5
5
|
## Architecture Planning Process
|
|
6
6
|
|
|
7
|
-
1. If
|
|
8
|
-
2. Design and document in
|
|
7
|
+
1. If `docs/TECH-STACK.md` exists, review it alongside the project requirements. Otherwise, gather tech stack context from the codebase and project docs.
|
|
8
|
+
2. Design and document in `docs/ARCHITECTURE.md`:
|
|
9
9
|
- **System overview**: High-level component diagram (describe in text/ASCII)
|
|
10
10
|
- **Component structure**: Modules, services, or packages and their responsibilities
|
|
11
11
|
- **Data flow**: How data moves through the system
|
|
@@ -13,7 +13,7 @@ You own system architecture. Design the structure that implements the tech stack
|
|
|
13
13
|
- **Deployment model**: How the system is built, tested, and deployed
|
|
14
14
|
- **Key decisions**: Architectural decisions with rationale (ADR-style)
|
|
15
15
|
3. Create implementation issues for the foundational structure:
|
|
16
|
-
- `POST /api/companies/{companyId}/issues` for scaffolding, core modules, etc. Include
|
|
16
|
+
- `POST /api/companies/{companyId}/issues` for scaffolding, core modules, etc. Include `projectId` plus `goalId` / `parentId` when applicable, and set `executionWorkspaceSettings: { "mode": "isolated_workspace" }` for top-level repository implementation issues and subissues when the instance feature, project policy, and initialized repository support isolation. Otherwise follow the rendered project policy and avoid concurrent shared-checkout writes. Reuse only when explicitly required via `inheritExecutionWorkspaceFromIssueId`; keep API-only work project-detached.
|
|
17
17
|
|
|
18
18
|
## Rules
|
|
19
19
|
|
|
@@ -4,9 +4,9 @@ You are establishing the project's design system foundations when no UI Designer
|
|
|
4
4
|
|
|
5
5
|
## Steps
|
|
6
6
|
|
|
7
|
-
1. Read
|
|
8
|
-
2. Read
|
|
9
|
-
3. If
|
|
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
10
|
4. Define the minimum viable token set:
|
|
11
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
12
|
- **Typography**: 2–3 font sizes (body, heading, small), font family (system stack if no brand font specified), line heights.
|
|
@@ -21,5 +21,5 @@ You are establishing the project's design system foundations when no UI Designer
|
|
|
21
21
|
|
|
22
22
|
- Keep it practical over perfect. Consistent tokens are more valuable than a comprehensive design system.
|
|
23
23
|
- Do not create visual assets (icons, illustrations) — document where placeholders should go.
|
|
24
|
-
- Reference
|
|
25
|
-
- If
|
|
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.
|
|
@@ -4,16 +4,16 @@ Adds a low-frequency safety net for issue assignment. Primary dispatch happens a
|
|
|
4
4
|
|
|
5
5
|
## What it adds
|
|
6
6
|
|
|
7
|
-
- **Product Owner skill**: Safety-net assignment check — assigns
|
|
7
|
+
- **Product Owner skill**: Safety-net assignment check — assigns only the next item that fits implementation and review capacity.
|
|
8
8
|
- **CEO fallback skill**: Steps in when the PO is absent or stalled.
|
|
9
9
|
|
|
10
10
|
## How it works
|
|
11
11
|
|
|
12
|
-
Primary assignment happens during backlog grooming: the Product Owner
|
|
12
|
+
Primary assignment happens during backlog grooming: the Product Owner assigns acceptance-ready issues to best-fit agents when capacity is free. The auto-assign routine is a **safety net** that runs every 4 hours to catch anything that slipped through:
|
|
13
13
|
|
|
14
14
|
1. Are there unassigned issues in `todo` status?
|
|
15
15
|
2. Do those issues have enough acceptance criteria and no unresolved blockers?
|
|
16
|
-
3. If yes: assign
|
|
16
|
+
3. If yes: assign suitable items to available owners. Open PR count is advisory, not an assignment cap; keep every PR tied to an owner and next action.
|
|
17
17
|
|
|
18
18
|
## Best for
|
|
19
19
|
|
|
@@ -22,4 +22,4 @@ Primary assignment happens during backlog grooming: the Product Owner creates is
|
|
|
22
22
|
|
|
23
23
|
## Example
|
|
24
24
|
|
|
25
|
-
The Product Owner normally assigns issues at creation during backlog grooming. If one slips through unassigned, the safety-net routine assigns it on the next pass and the assignee wakes on the assignment trigger.
|
|
25
|
+
The Product Owner normally assigns issues at creation during backlog grooming. If one slips through unassigned, the safety-net routine assigns it on the next pass and the assignee wakes on the assignment trigger.
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Primary assignment happens at backlog grooming — issues are assigned to the best-fit agent as they are created. This routine is a **safety net** that catches stragglers when the Product Owner hasn't acted.
|
|
4
4
|
|
|
5
|
-
Do not scan for unassigned work during a normal heartbeat. If you are assigned a routine-run issue titled like "Auto-assign unassigned issues" and no Product Owner is available, use
|
|
5
|
+
Do not scan for unassigned work during a normal heartbeat. If you are assigned a routine-run issue titled like "Auto-assign unassigned issues" and no Product Owner is available, use your installed `auto-assign-fallback` skill, then summarize assignments on the routine issue and exit.
|
|
@@ -4,13 +4,13 @@ Primary assignment happens at backlog grooming — issues are assigned to the be
|
|
|
4
4
|
|
|
5
5
|
## Assignment Check (Fallback)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Only on an explicitly assigned auto-assignment routine issue:
|
|
8
8
|
|
|
9
9
|
1. Confirm this is the active routine-run issue and checkout it before mutating the board.
|
|
10
|
-
2. Query unassigned ready issues
|
|
10
|
+
2. Query unassigned ready issues plus active implementation issues and open implementation PRs. Treat PR count as a queue-health signal, not a hard assignment limit.
|
|
11
11
|
3. If unassigned issues are available AND the Product Owner hasn't acted recently:
|
|
12
|
-
- Assign
|
|
13
|
-
-
|
|
12
|
+
- Assign suitable acceptance-ready issues to available owners: `PATCH /api/issues/{id}` with `assigneeAgentId` and an assignment comment.
|
|
13
|
+
- Keep later roadmap work prioritized but inactive; a safety net must not manufacture a queue that outruns the merge gate.
|
|
14
14
|
4. If the Product Owner is active, skip this step.
|
|
15
15
|
5. Leave a routine-run comment summarizing assigned issue ids and skipped issue ids.
|
|
16
16
|
6. Mark the routine-run issue done when complete.
|
|
@@ -18,8 +18,8 @@ On your heartbeat, after handling your own assignments:
|
|
|
18
18
|
## Rules
|
|
19
19
|
|
|
20
20
|
- This is a safety net behind backlog grooming's direct assignment. Let the PO own assignment.
|
|
21
|
-
-
|
|
21
|
+
- Treat implementation and review load as advisory scheduling input. Do not leave acceptance-ready work unassigned solely because other PRs are open, and never model open-PR count as blocker relations.
|
|
22
22
|
- Do not run this from normal heartbeats.
|
|
23
23
|
- Do not self-assign random unassigned work.
|
|
24
24
|
- If no suitable match exists, leave the issue unassigned and state the reason in the routine-run comment.
|
|
25
|
-
- Never archive or retire your own routine-run workspace. This is control-plane work via the API; do not `PATCH /api/execution-workspaces/{id}` to `archived` or remove the worktree your run uses — it fails the run's workspace validation and breaks the next reuse. Retirement is a board/operator action only.
|
|
25
|
+
- Never archive or retire your own routine-run workspace. This is control-plane work via the API; do not `PATCH /api/execution-workspaces/{id}` to `archived` or remove the worktree your run uses — it fails the run's workspace validation and breaks the next reuse. Retirement is a board/operator action only.
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Primary assignment happens at backlog grooming — issues are assigned to the best-fit agent as they are created, not through this routine. This routine is a **safety net** that catches stragglers every 4 hours.
|
|
4
4
|
|
|
5
|
-
Do not scan for unassigned work during a normal heartbeat. When you are assigned a routine-run issue titled like "Auto-assign unassigned issues", use
|
|
5
|
+
Do not scan for unassigned work during a normal heartbeat. When you are assigned a routine-run issue titled like "Auto-assign unassigned issues", use your installed `auto-assign` skill, then summarize assignments on the routine issue and exit.
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"routines": [
|
|
18
18
|
{
|
|
19
19
|
"title": "Auto-assign unassigned issues",
|
|
20
|
-
"description": "Safety-net routine-run checklist
|
|
20
|
+
"description": "Safety-net routine-run checklist: review still-unassigned todo issues plus active implementation/review ownership, assign acceptance-ready work to available agents, keep every open PR tied to an owner and next action, record evidence and next actions on the routine issue, then exit. Open PR count is advisory, not an assignment cap.",
|
|
21
21
|
"assignTo": "capability:auto-assign",
|
|
22
22
|
"schedule": "0 */4 * * *",
|
|
23
23
|
"priority": "medium",
|
|
@@ -9,11 +9,11 @@ Use this only when the current assigned issue/routine is titled like "Auto-assig
|
|
|
9
9
|
## Assignment Check
|
|
10
10
|
|
|
11
11
|
1. Confirm this is the active routine-run issue and checkout it before mutating the board.
|
|
12
|
-
2. Query available agents:
|
|
12
|
+
2. Query available agents and current delivery ownership: active implementation issues per agent plus open implementation PRs per repository. Open PR count is advisory and must not freeze independent acceptance-ready work.
|
|
13
13
|
3. Query candidate issues using the board's current issue API for unassigned `todo` work, scoped to the relevant project/goal when the routine has one.
|
|
14
14
|
4. Skip issues that are blocked, awaiting approval/review, missing acceptance criteria, or already have active execution state.
|
|
15
15
|
5. Match issue labels, required skills, project context, and priority to agent role/capabilities.
|
|
16
|
-
6. Assign
|
|
16
|
+
6. Assign suitable acceptance-ready issues to available owners: `PATCH /api/issues/{id}` with `assigneeAgentId` and an assignment comment. Do not leave work unassigned solely because a repository already has open PRs, and never model open-PR count as `blockedByIssueIds`.
|
|
17
17
|
7. Leave a routine-run comment summarizing assigned issue ids, skipped issue ids, and gaps needing Product Owner/CEO attention.
|
|
18
18
|
8. Mark the routine-run issue done when complete.
|
|
19
19
|
|
|
@@ -23,5 +23,6 @@ Use this only when the current assigned issue/routine is titled like "Auto-assig
|
|
|
23
23
|
- Do not self-assign random unassigned work.
|
|
24
24
|
- Do not assign code tasks to non-engineering agents or security-sensitive work without security coverage.
|
|
25
25
|
- Respect budgets, pause/cancel states, approval gates, `blockedByIssueIds`, and executionPolicy.
|
|
26
|
+
- Do not create assigned queues that outrun implementation/review capacity, and do not self-create queue-drain, productivity, status, or watchdog wrapper issues.
|
|
26
27
|
- If no suitable match exists, leave the issue unassigned and state the reason in the routine-run comment.
|
|
27
28
|
- **Never archive or retire your own routine-run workspace.** This routine is pure control-plane work (assigning issues via the API); it needs no repository state. When done, mark the routine issue `done` and exit. Do not `PATCH /api/execution-workspaces/{id}` to `archived` and do not remove the worktree your run is using — archiving it mid-run fails the run's workspace validation and breaks the next reuse. Workspace retirement is a board/operator action only.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
## Backlog Health Routine Fallback
|
|
2
2
|
|
|
3
|
-
Do not groom the backlog during a normal heartbeat unless that is your assigned issue. If you are assigned a routine-run issue titled like "Backlog grooming" and no Product Owner is available, use
|
|
3
|
+
Do not groom the backlog during a normal heartbeat unless that is your assigned issue. If you are assigned a routine-run issue titled like "Backlog grooming" and no Product Owner is available, use your installed `backlog-health-fallback` skill, then summarize generated/updated issues on the routine issue and exit.
|
|
@@ -4,20 +4,20 @@ The Product Owner primarily manages the backlog pipeline. You are the fallback
|
|
|
4
4
|
|
|
5
5
|
## Backlog Health Check (Fallback)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Only on an explicitly assigned backlog-planning or backlog-grooming routine issue:
|
|
8
8
|
|
|
9
|
-
1. Query unassigned issues
|
|
10
|
-
2. If
|
|
11
|
-
- Create 1-2 high-priority issues from the roadmap
|
|
12
|
-
- For
|
|
9
|
+
1. Query unassigned issues plus active implementation issues and open implementation PRs.
|
|
10
|
+
2. If owner/review capacity is free, no acceptance-ready next issue exists, and the Product Owner has not acted recently:
|
|
11
|
+
- Create only the next 1-2 high-priority issues from the roadmap
|
|
12
|
+
- For repository implementation, including subissues, request `"executionWorkspaceSettings": { "mode": "isolated_workspace" }` when the instance feature, project policy, and repository support it. Otherwise follow the rendered project policy and avoid concurrent shared-checkout writes. Reuse is explicit via `inheritExecutionWorkspaceFromIssueId` only when the task requires the same code change.
|
|
13
13
|
- Attach `labelIds` — fetch available labels via `GET /api/companies/{companyId}/labels`. If no labels exist yet, create the defaults (see `backlog-health` skill for the label table) before creating issues.
|
|
14
|
-
-
|
|
14
|
+
- Record the next backlog owner/action in the routine summary; use assignment for a required handoff, not an @-mention as a wake signal
|
|
15
15
|
3. If the Product Owner is active and the backlog has 1+ issues, skip this step.
|
|
16
16
|
|
|
17
17
|
## Rules
|
|
18
18
|
|
|
19
19
|
- This is a safety net, not your primary job. Let the PO own it.
|
|
20
|
-
-
|
|
20
|
+
- Assign acceptance-ready work to available owners. Open PR count is advisory and must not freeze independent implementation; keep every PR tied to an owner and next action.
|
|
21
21
|
- Keep it minimal — just enough to unblock, not a full grooming session.
|
|
22
|
-
- **Review handoff:**
|
|
23
|
-
- Backlog grooming is intentionally project-detached and must remain API-only. Do not create or enter a git worktree for the grooming run, and do not attach the routine itself to a project. Setting `projectId` and
|
|
22
|
+
- **Review handoff:** Use `in_review` only with a non-author executionPolicy stage or a first-class human interaction/approval. Agent reassignment alone is not a valid no-policy review path; otherwise keep the issue `in_progress` for the concrete handoff or finish direct/self-merge delivery.
|
|
23
|
+
- Backlog grooming is intentionally project-detached and must remain API-only. Do not create or enter a git worktree for the grooming run, and do not attach the routine itself to a project. Setting `projectId` and explicit workspace intent on repository work issues does not change the grooming run's workspace behavior.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
## Backlog Health Routine
|
|
2
2
|
|
|
3
|
-
Do not groom the backlog during a normal heartbeat unless that is your assigned issue. When you are assigned a routine-run issue titled like "Backlog grooming" or "Backlog health", use
|
|
3
|
+
Do not groom the backlog during a normal heartbeat unless that is your assigned issue. When you are assigned a routine-run issue titled like "Backlog grooming" or "Backlog health", use your installed `backlog-health` skill, then summarize generated/updated issues on the routine issue and exit.
|