@starlein/paperclip-plugin-company-wizard 0.2.4 → 0.3.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -3
- package/dist/manifest.js +4 -5
- package/dist/manifest.js.map +2 -2
- package/dist/ui/index.css +563 -578
- package/dist/ui/index.css.map +2 -2
- package/dist/ui/index.js +1151 -559
- package/dist/ui/index.js.map +4 -4
- package/dist/worker.js +702 -253
- package/dist/worker.js.map +4 -4
- package/package.json +12 -7
- package/templates/ai-wizard/config-format.md +12 -4
- package/templates/ai-wizard/interview-system.md +3 -2
- package/templates/ai-wizard/messages.json +1 -1
- package/templates/ai-wizard/single-shot-system.md +4 -0
- package/templates/bootstrap-instructions.md +12 -2
- package/templates/modules/auto-assign/agents/ceo/heartbeat-section.md +1 -1
- package/templates/modules/auto-assign/agents/ceo/skills/auto-assign.fallback.md +1 -1
- 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 +1 -1
- package/templates/modules/backlog/module.meta.json +4 -3
- package/templates/modules/build-api/module.meta.json +1 -0
- package/templates/modules/ci-cd/module.meta.json +2 -1
- package/templates/modules/game-design/module.meta.json +18 -0
- package/templates/modules/game-design/skills/audio-design.fallback.md +16 -0
- package/templates/modules/game-design/skills/audio-design.md +28 -0
- package/templates/modules/game-design/skills/level-design.fallback.md +17 -0
- package/templates/modules/game-design/skills/level-design.md +29 -0
- package/templates/modules/github-repo/README.md +1 -0
- package/templates/modules/github-repo/module.meta.json +5 -2
- package/templates/modules/pr-review/README.md +5 -5
- package/templates/modules/pr-review/agents/code-reviewer/skills/code-review.md +7 -6
- package/templates/modules/pr-review/agents/devops/skills/infra-review.md +6 -6
- package/templates/modules/pr-review/agents/engineer/skills/pr-workflow.md +11 -6
- package/templates/modules/pr-review/agents/product-owner/skills/product-review.md +7 -6
- package/templates/modules/pr-review/agents/qa/skills/qa-review.md +6 -6
- package/templates/modules/pr-review/agents/ui-designer/skills/design-review.md +6 -6
- package/templates/modules/pr-review/agents/ux-researcher/skills/ux-review.md +6 -6
- package/templates/modules/pr-review/docs/pr-conventions.md +16 -15
- package/templates/modules/pr-review/module.meta.json +8 -3
- package/templates/modules/stall-detection/module.meta.json +1 -1
- package/templates/modules/website-relaunch/module.meta.json +2 -1
- package/templates/presets/build-game/preset.meta.json +2 -1
- package/templates/presets/content/preset.meta.json +3 -1
- package/templates/presets/full/preset.meta.json +1 -0
- package/templates/presets/gtm/preset.meta.json +3 -1
- package/templates/presets/launch-pack/preset.meta.json +1 -0
- package/templates/presets/quality/preset.meta.json +2 -1
- package/templates/presets/repo-maintenance/preset.meta.json +2 -1
- package/templates/presets/secure/preset.meta.json +1 -0
- package/templates/roles/security-engineer/role.meta.json +1 -1
- package/templates/roles/cfo/AGENTS.md +0 -31
- package/templates/roles/cfo/HEARTBEAT.md +0 -37
- package/templates/roles/cfo/SOUL.md +0 -17
- package/templates/roles/cfo/TOOLS.md +0 -3
- package/templates/roles/cfo/role.meta.json +0 -17
package/README.md
CHANGED
|
@@ -14,6 +14,60 @@
|
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
+
> **Fork:** This is a community-maintained fork of [yesterday-AI/paperclip-plugin-company-wizard](https://github.com/yesterday-AI/paperclip-plugin-company-wizard), updated for the current Paperclip API (`>=2026.529.0`) with substantial bug fixes. End-to-end company setup is largely functional as of v0.3.18.
|
|
18
|
+
|
|
19
|
+
<details>
|
|
20
|
+
<summary><strong>What changed vs. upstream</strong></summary>
|
|
21
|
+
|
|
22
|
+
#### Paperclip API compatibility
|
|
23
|
+
|
|
24
|
+
- Bootstrap metadata fields renamed to match the Paperclip API exactly: `parentId`, `assigneeAgentId`, `projectId`, `goalIds`
|
|
25
|
+
- CEO is provisioned with correct `capabilities` metadata so newly created CEOs are no longer saved with empty summaries
|
|
26
|
+
- `@paperclipai/plugin-sdk` and `@paperclipai/shared` declared as `peerDependencies` with minimum version `>=2026.529.0` — the host provides the SDK at runtime (externalized from the bundle)
|
|
27
|
+
- `security-engineer` role now maps to the dedicated Paperclip `security` enum value (was `general`)
|
|
28
|
+
|
|
29
|
+
#### Bootstrap reliability
|
|
30
|
+
|
|
31
|
+
- **Agents provisioned with complete instructions** — every non-CEO agent is now created by the plugin directly with its full `instructionsBundle` (AGENTS.md + HEARTBEAT/SOUL/TOOLS + skills). Previously the CEO created these agents during bootstrap with only an `instructionsFilePath`, leaving each agent with a bare AGENTS.md and fragile external path references
|
|
32
|
+
- **Routines created directly during provisioning** — Paperclip only allows an agent to create routines assigned to itself, so the CEO could not create routines owned by the Product Owner. The plugin now creates all routines with board authority at provisioning time; BOOTSTRAP.md tells the CEO they already exist
|
|
33
|
+
- **Worker agents no longer run always-on heartbeats** — enabling heartbeats on every provisioned agent caused bursts of concurrent runs that crashed the dev server. Only the CEO keeps an always-on heartbeat; all other agents are woken on assignment
|
|
34
|
+
- **Fresh local repos no longer bootstrap with isolated git worktrees** — provisioning a brand-new `local_path` project with an `isolated_workspace` / `git_worktree` policy made worker agents try to branch off `main` before the repo existed, so early runs failed and agents flipped to `error`. The isolated policy is now suppressed for fresh local repos (agents work in the shared project workspace during bootstrap); existing external repos keep it. Guarded in `assemble.js` and removed at the source in `StepRepository` and the AI wizard prompts
|
|
35
|
+
- **Workspace isolation follows Paperclip instance settings** — `enableIsolatedWorktrees` is no longer a plugin setting. The wizard reads `enableIsolatedWorkspaces` from the Paperclip instance experimental settings and only applies `isolated_workspace` / `git_worktree` for external repositories when that setting is enabled.
|
|
36
|
+
- Bootstrap ordering hardened; agent filter bug fixed (v0.3.7)
|
|
37
|
+
|
|
38
|
+
#### Assembly and template fixes
|
|
39
|
+
|
|
40
|
+
- **Broken `$AGENT_HOME` references** rewritten to absolute paths under `companyDir/agents/<role>/` and `companyDir/docs/` — `AGENT_HOME` points to a per-agent workspace dir that does not contain provisioned files
|
|
41
|
+
- **Shared docs scoped per role** — each agent's AGENTS.md now lists only docs from modules relevant to that role (CEO still sees all); previously every agent was told to read every module's docs
|
|
42
|
+
- **Doc references use relative paths** (`docs/<file>`) instead of absolute paths that baked in the collision-suffixed company directory name
|
|
43
|
+
- Duplicate bootstrap issues (same title from module + preset) are now deduplicated; preset issue wins
|
|
44
|
+
- CFO role removed — was orphaned (no preset, no capability, never activated)
|
|
45
|
+
|
|
46
|
+
#### AI wizard
|
|
47
|
+
|
|
48
|
+
- Config generation uses `claude-opus-4-8` with `max_tokens: 32768` so a full-spec config is never truncated mid-JSON
|
|
49
|
+
- All Anthropic calls run as background jobs in the worker (start + poll), eliminating the 30 s RPC timeout that previously crashed config generation
|
|
50
|
+
- AI wizard now generates domain-specific initial issues from the project brief that lead the bootstrap backlog ahead of generic scaffolding issues
|
|
51
|
+
- Preset roles are defensively merged with AI-selected roles so preset roles are no longer silently dropped
|
|
52
|
+
|
|
53
|
+
#### Error handling
|
|
54
|
+
|
|
55
|
+
- All worker actions return `{ error }` instead of throwing — prevents the plugin host from swallowing error messages in generic 502 responses
|
|
56
|
+
- Network errors in `PaperclipClient` are caught and surfaced with actionable messages referencing the `paperclipUrl` plugin setting
|
|
57
|
+
|
|
58
|
+
#### New features (not in upstream)
|
|
59
|
+
|
|
60
|
+
- **Existing-company provisioning** — target an existing Paperclip company instead of creating a new one (`existingCompanyId`); partial-failure cleanup never deletes existing companies
|
|
61
|
+
- **Approval-aware agent hiring** — detects board-approval requirements, falls back to `/agent-hires` + auto-approve; surfaces pending approval ID if auto-approve fails
|
|
62
|
+
- **`disableBoardApprovalOnNewCompanies` setting** — optionally patches new companies to skip board approval for fully-autonomous bootstrap
|
|
63
|
+
- **Repository workspace setup** — choose between a fresh local Git repo or an existing external repository (GitHub, GitLab, etc.) via the manual wizard step or inline on the review/summary screen (available in both the manual and AI paths; the external option opens a repo-URL field)
|
|
64
|
+
- **Routine schedules** tightened to run every few hours around the clock (auto-assign every 2 h, stall-detection every 3 h, backlog grooming every 4 h) with `skip_if_active` concurrency policy
|
|
65
|
+
- **"Update templates" button** on the onboarding screen — deletes the cached templates dir and re-downloads from GitHub without restarting the plugin
|
|
66
|
+
|
|
67
|
+
</details>
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
17
71
|
**Company Wizard** is a [Paperclip](https://github.com/paperclipai/paperclip) plugin that bootstraps an AI agent company for your project — roles, workflows, skills, and tasks — in a few clicks. Open it from the sidebar, answer a few questions (or just describe your project), and it assembles the workspace files and creates the company + CEO in Paperclip. The CEO then hires the team and sets up the backlog on its first heartbeat.
|
|
18
72
|
|
|
19
73
|
<br>
|
|
@@ -59,6 +113,8 @@ Walk through the steps yourself: name your company, set a goal, pick a preset, a
|
|
|
59
113
|
|
|
60
114
|
Before provisioning, you can **open any generated file and edit it inline** — tweak a persona, adjust a workflow, or add role-specific context.
|
|
61
115
|
|
|
116
|
+
On the review step, repository setup is editable inline (fresh local repo vs external Git repo), and changing this now immediately updates preview/provisioning payloads in that step. Legacy source-mode values are normalized on save so mode switches can be applied reliably even when the configuration came from AI with older `workspaceSourceType` fields.
|
|
117
|
+
|
|
62
118
|
<br>
|
|
63
119
|
|
|
64
120
|
## How Roles Work
|
|
@@ -424,11 +480,10 @@ Every company starts with just the **CEO** (the only base role). All other roles
|
|
|
424
480
|
| **UX Researcher** | `researcher` | CEO | Takes over market-analysis and user-testing |
|
|
425
481
|
| **CTO** | `cto` | CEO | Technical leadership, architecture oversight |
|
|
426
482
|
| **CMO** | `cmo` | CEO | Marketing strategy, go-to-market, growth metrics |
|
|
427
|
-
| **CFO** | `cfo` | CEO | Financial planning, budget tracking, cost analysis |
|
|
428
483
|
| **DevOps Engineer** | `devops` | CEO | Takes over ci-cd and monitoring from Engineer |
|
|
429
484
|
| **QA Engineer** | `qa` | CEO | Takes over user-testing, quality gates |
|
|
430
485
|
| **Technical Writer** | `general` | CEO | Takes over documentation, adds doc review pass |
|
|
431
|
-
| **Security Engineer** | `
|
|
486
|
+
| **Security Engineer** | `security` | CEO | Takes over security-audit, adds security review pass |
|
|
432
487
|
| **Customer Success** | `general` | CEO | Takes over competitive-intel customer analysis |
|
|
433
488
|
| **Game Designer** | `pm` | CEO | Takes over game-design from Engineer, playtesting focus |
|
|
434
489
|
| **Level Designer** | `pm` | CEO | Takes over level-specific design from Game Designer |
|
|
@@ -520,6 +575,7 @@ Configure the plugin via **Settings → Plugins → Company Wizard** in the Pape
|
|
|
520
575
|
| `paperclipPassword` | No | Board login password. Stored as a secret ref. |
|
|
521
576
|
| `anthropicApiKey` | No | Anthropic API key for AI wizard mode. Stored as a secret ref. Required to use the AI-powered setup path. |
|
|
522
577
|
| `disableBoardApprovalOnNewCompanies` | No | If `true`, the wizard PATCHes new companies to set `requireBoardApprovalForNewAgents=false` during provisioning. Leave `false` to preserve approval-gated hiring. Defaults to `false`. |
|
|
578
|
+
For isolated worktrees: there is no plugin setting. The policy is controlled by Paperclip instance settings under **Settings → Instance → Experimental → enableIsolatedWorkspaces** and is consumed by the plugin during provisioning.
|
|
523
579
|
|
|
524
580
|
<br>
|
|
525
581
|
|
|
@@ -686,7 +742,7 @@ templates/roles/<name>/
|
|
|
686
742
|
| `base` | `true` for always-present roles (ceo only) |
|
|
687
743
|
| `division` | Grouping: `leadership`, `engineering`, `design`, `product` |
|
|
688
744
|
| `tagline` | One-liner for wizard UX and AI selection |
|
|
689
|
-
| `paperclipRole` | Paperclip enum: `ceo`, `engineer`, `pm`, `qa`, `designer`, `cto`, `cmo`, `cfo`, `devops`, `researcher`, `general` |
|
|
745
|
+
| `paperclipRole` | Paperclip enum: `ceo`, `engineer`, `pm`, `qa`, `designer`, `cto`, `cmo`, `cfo`, `security`, `devops`, `researcher`, `general` |
|
|
690
746
|
| `adapter` | Passed to `adapterConfig` during provisioning |
|
|
691
747
|
|
|
692
748
|
</details>
|
package/dist/manifest.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
var manifest = {
|
|
3
3
|
id: "starlein.paperclip-plugin-company-wizard",
|
|
4
4
|
apiVersion: 1,
|
|
5
|
-
version: "0.
|
|
5
|
+
version: "0.3.18",
|
|
6
6
|
displayName: "Company Wizard",
|
|
7
7
|
description: "AI-powered wizard to bootstrap agent companies from composable templates",
|
|
8
8
|
author: "starlein",
|
|
@@ -18,6 +18,7 @@ var manifest = {
|
|
|
18
18
|
"projects.read",
|
|
19
19
|
"plugin.state.read",
|
|
20
20
|
"plugin.state.write",
|
|
21
|
+
"secrets.read-ref",
|
|
21
22
|
"events.subscribe",
|
|
22
23
|
"ui.page.register",
|
|
23
24
|
"ui.sidebar.register"
|
|
@@ -40,8 +41,7 @@ var manifest = {
|
|
|
40
41
|
},
|
|
41
42
|
anthropicApiKey: {
|
|
42
43
|
type: "string",
|
|
43
|
-
|
|
44
|
-
description: "Anthropic API key for the AI wizard. Required to use the AI-powered company setup path."
|
|
44
|
+
description: "Anthropic API key for the AI wizard (e.g. sk-ant-...). Required to use the AI-powered company setup path."
|
|
45
45
|
},
|
|
46
46
|
paperclipUrl: {
|
|
47
47
|
type: "string",
|
|
@@ -53,8 +53,7 @@ var manifest = {
|
|
|
53
53
|
},
|
|
54
54
|
paperclipPassword: {
|
|
55
55
|
type: "string",
|
|
56
|
-
|
|
57
|
-
description: "Board login password."
|
|
56
|
+
description: "Board login password (for authenticated instances)."
|
|
58
57
|
},
|
|
59
58
|
disableBoardApprovalOnNewCompanies: {
|
|
60
59
|
type: "boolean",
|
package/dist/manifest.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/manifest.ts"],
|
|
4
|
-
"sourcesContent": ["import type { PaperclipPluginManifestV1 } from '@paperclipai/plugin-sdk';\n\nconst manifest: PaperclipPluginManifestV1 = {\n id: 'starlein.paperclip-plugin-company-wizard',\n apiVersion: 1,\n version: '0.
|
|
5
|
-
"mappings": ";AAEA,IAAM,WAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY,CAAC,aAAa,IAAI;AAAA,EAC9B,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACpB,MAAM;AAAA,IACN,YAAY;AAAA,MACV,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,QACb,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,
|
|
4
|
+
"sourcesContent": ["import type { PaperclipPluginManifestV1 } from '@paperclipai/plugin-sdk';\n\nconst manifest: PaperclipPluginManifestV1 = {\n id: 'starlein.paperclip-plugin-company-wizard',\n apiVersion: 1,\n version: '0.3.18',\n displayName: 'Company Wizard',\n description: 'AI-powered wizard to bootstrap agent companies from composable templates',\n author: 'starlein',\n categories: ['workspace', 'ui'],\n capabilities: [\n 'companies.read',\n 'issues.create',\n 'issues.read',\n 'issues.update',\n 'goals.create',\n 'goals.read',\n 'agents.read',\n 'projects.read',\n 'plugin.state.read',\n 'plugin.state.write',\n 'secrets.read-ref',\n 'events.subscribe',\n 'ui.page.register',\n 'ui.sidebar.register',\n ],\n instanceConfigSchema: {\n type: 'object',\n properties: {\n companiesDir: {\n type: 'string',\n description:\n 'Directory where assembled company workspaces are written. Defaults to ~/.paperclip/instances/default/companies. Override for Docker setups (e.g. /paperclip/instances/default/companies).',\n },\n templatesPath: {\n type: 'string',\n description:\n 'Path to the templates directory. Defaults to ~/.paperclip/plugin-templates (auto-downloaded from templatesRepoUrl if missing). Override for Docker setups (e.g. /paperclip/plugin-templates).',\n },\n templatesRepoUrl: {\n type: 'string',\n default: 'https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates',\n description:\n 'GitHub tree URL to pull templates from when the templates directory does not exist.',\n },\n anthropicApiKey: {\n type: 'string',\n description:\n 'Anthropic API key for the AI wizard (e.g. sk-ant-...). Required to use the AI-powered company setup path.',\n },\n paperclipUrl: {\n type: 'string',\n description:\n 'Paperclip instance URL. Defaults to http://localhost:3100 or the PAPERCLIP_PUBLIC_URL env var.',\n },\n paperclipEmail: {\n type: 'string',\n description: 'Board login email (for authenticated instances).',\n },\n paperclipPassword: {\n type: 'string',\n description: 'Board login password (for authenticated instances).',\n },\n disableBoardApprovalOnNewCompanies: {\n type: 'boolean',\n default: false,\n description:\n 'Optional. If true, the wizard will PATCH new companies to set requireBoardApprovalForNewAgents=false during provisioning. Leave false to preserve approval-gated hiring policies.',\n },\n },\n },\n entrypoints: {\n worker: './dist/worker.js',\n ui: './dist/ui',\n },\n ui: {\n slots: [\n {\n type: 'page',\n id: 'company-wizard',\n displayName: 'Company Wizard',\n exportName: 'WizardPage',\n routePath: 'company-creator',\n },\n {\n type: 'sidebar',\n id: 'company-wizard-link',\n displayName: 'Create Company',\n exportName: 'SidebarLink',\n },\n ],\n },\n};\n\nexport default manifest;\n"],
|
|
5
|
+
"mappings": ";AAEA,IAAM,WAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY,CAAC,aAAa,IAAI;AAAA,EAC9B,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACpB,MAAM;AAAA,IACN,YAAY;AAAA,MACV,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,QACb,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,mBAAmB;AAAA,QACjB,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,oCAAoC;AAAA,QAClC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,IAAI;AAAA,EACN;AAAA,EACA,IAAI;AAAA,IACF,OAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,mBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|