mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-06 21:05:21 +02:00
## Thinking Path > - Paperclip is the open source app people use to manage AI agents for work. > - New agents receive role instructions from onboarding, the hiring skill, or a team package. > - These sources repeat harness procedures and impose generic work policies. > - They can crowd out the task and the harness instructions. > - This pull request reduces those sources to short role descriptions. > - It preserves configuration, skills, authentication, reporting lines, and approval controls. > - The benefit is less repeated instruction text with explicit coverage for the default hiring path. ## Linked Issues or Issue Description Refs #3307. The CEO template can impose a fixed delegation route instead of letting the agent choose how to fulfill the request. This change removes that route. It does not implement autonomous goal selection. Related work: #14920 preserves stock Codex base instructions. #14948 reduces the generic manual and shared runtime prompts. #14961 improves native completion-tool descriptions. This PR is separate from those changes. ## What Changed - Select only the short CEO `AGENTS.md` for new default CEO bundles. Keep the three former companion files as compatibility assets. - Reduce the first-agent chief-of-staff prompt and coder, QA, UX, and security role examples. - Reduce seven bundled team role bodies. Preserve their role, reporting, and skill metadata. Regenerate the catalog. - Make hiring examples optional. Replace the long generic role manual with short role drafting guidance. Preserve explicit requester instructions. - Add configuration and import coverage for native and legacy managed bundles, custom instructions, first-agent rendering, and catalog contents. - Add an explicit-only hiring eval that starts from the production CEO default and checks one coder hire, independently computed JSON output, saved instructions, and worker reuse. - Include the full prompt comparison and a separate three-request drafting simulation. Neither is a live provider comparison. Prompt differences: [before and after](doc/plans/2026-10-02-hiring-template-prompt-diff.md). The CEO default falls from 1,897 to 20 words. The coder example falls from 652 to 18 words. Word counts describe instruction size, not outcome quality or billing. ## Verification - PASS: 99 focused server tests and eight shipped-catalog tests. - PASS: catalog generation and validation for four shipped teams. - PASS: hiring skill validation. - PASS: `pnpm -r typecheck`. - PASS: `pnpm build`. - INCOMPLETE: the full local `pnpm test:run` was stopped before rebase. Its original log is retained. This is not a completed full-suite pass. The full current-head GitHub CI workflow passed: https://github.com/paperclipai/paperclip/actions/runs/37073372419. - PASS: `pnpm test:e2e:runner:typecheck` and `pnpm test:e2e:runner:unit` (63 files / 843 tests). - PASS: discovery for the two new hiring cells, 50 existing everyday cells, and the full 438-cell catalog. - PASS after rebase: 99 server tests, 11 catalog tests, 62 selected E2E support tests, and the E2E typecheck. - PASS: all current-head PR checks at `57dcee147ed0b2d2e3cc657cd9e50fb16bf9ec25`: 51 successful check runs, two intentional Storybook skips, and successful Snyk status. Fresh Greptile is 5/5 with zero unresolved threads. - PENDING follow-up: matched live hiring runs on frozen integration refs. No live outcome-quality or non-regression result is claimed from the configuration checks or this merge. The new suite has two local native cells: Codex and ACPX Claude. It expects five provider turns per cell. It compares source-derived bundles, so the historical long templates remain admissible. Missing successful source-read receipts make a pair uncomparable. They do not establish a behavior regression or equivalence. ## Risks - New default roles have fewer prescribed procedures. Live checks must determine whether a removed instruction was needed for an outcome. - Existing custom and saved bundles keep their contents. The retained companion assets avoid a source-file compatibility break. - Specialized Summarizer, Reflection Coach, and Wiki Maintainer prompts remain unchanged. Their product contracts need separate review. - The generic non-CEO fallback reduction is in #14948. This PR alone does not provide its eight-word fallback. - Configuration tests and drafting simulations do not establish live outcome quality. QA, UX, security, and chief-of-staff hiring behavior remain outside the new two-cell comparison. > For core feature work, check [`ROADMAP.md`](ROADMAP.md) first and discuss it in `#dev` before opening the PR. Feature PRs that overlap with planned core work may need to be redirected — check the roadmap first. See `CONTRIBUTING.md`. ## Model Used OpenAI Codex, based on GPT-6, with reasoning, code editing, shell tools, and delegated verification. The runtime does not expose the exact deployment model ID or context-window size. ## Checklist - [x] I have included a thinking path that traces from project context to this change - [x] I have specified the model used (with version and capability details) - [x] I have checked ROADMAP.md and confirmed this PR does not duplicate planned core work - [x] I have searched GitHub for duplicate or related PRs and linked them above - [x] I have either (a) linked existing issues with `Fixes: #` / `Closes #` / `Refs #` OR (b) described the issue in-PR following the relevant issue template - [x] I have not referenced internal/instance-local Paperclip issues or links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip` URLs) - [x] My branch name describes the change (e.g. `docs/...`, `fix/...`) and contains no internal Paperclip ticket id or instance-derived details - [x] I have run tests locally and they pass - [x] I have added or updated tests where applicable - [x] I have updated relevant documentation to reflect my changes - [x] I have considered and documented any risks above - [x] All Paperclip CI gates are green - [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups - [x] I will address all Greptile and reviewer comments before requesting merge Co-Authored-By: Paperclip <noreply@paperclip.ing>
468 lines
14 KiB
JSON
468 lines
14 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"packageName": "@paperclipai/teams-catalog",
|
|
"packageVersion": "0.1.0",
|
|
"generatedAt": "2026-10-02T21:51:05.380Z",
|
|
"teams": [
|
|
{
|
|
"id": "paperclipai:bundled:company-defaults:core-exec-team",
|
|
"key": "paperclipai/bundled/company-defaults/core-exec-team",
|
|
"kind": "bundled",
|
|
"category": "company-defaults",
|
|
"slug": "core-exec-team",
|
|
"name": "Core Exec Team",
|
|
"description": "Default leadership and engineering team for bootstrapping a Paperclip company with a CEO, CTO, QA Engineer, starter project, and a recurring CEO heartbeat review task.",
|
|
"path": "catalog/bundled/company-defaults/core-exec-team",
|
|
"entrypoint": "TEAM.md",
|
|
"schema": "agentcompanies/v1",
|
|
"defaultInstall": true,
|
|
"recommendedForCompanyTypes": [
|
|
"startup",
|
|
"software",
|
|
"generalist"
|
|
],
|
|
"tags": [
|
|
"default",
|
|
"executive",
|
|
"engineering",
|
|
"qa"
|
|
],
|
|
"counts": {
|
|
"agents": 3,
|
|
"projects": 1,
|
|
"tasks": 0,
|
|
"routines": 1,
|
|
"localSkills": 0,
|
|
"catalogSkills": 4,
|
|
"externalSkillSources": 0
|
|
},
|
|
"rootAgentSlugs": [
|
|
"ceo"
|
|
],
|
|
"agentSlugs": [
|
|
"ceo",
|
|
"cto",
|
|
"qa"
|
|
],
|
|
"projectSlugs": [
|
|
"first-project"
|
|
],
|
|
"requiredSkills": [
|
|
{
|
|
"type": "catalog",
|
|
"ref": "github-pr-workflow",
|
|
"agentSlugs": [
|
|
"cto"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:software-development:github-pr-workflow",
|
|
"catalogSkillKey": "paperclipai/bundled/software-development/github-pr-workflow"
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"ref": "issue-triage",
|
|
"agentSlugs": [
|
|
"ceo"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:paperclip-operations:issue-triage",
|
|
"catalogSkillKey": "paperclipai/bundled/paperclip-operations/issue-triage"
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"ref": "qa-acceptance",
|
|
"agentSlugs": [
|
|
"qa"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:quality:qa-acceptance",
|
|
"catalogSkillKey": "paperclipai/bundled/quality/qa-acceptance"
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"ref": "task-planning",
|
|
"agentSlugs": [
|
|
"ceo",
|
|
"cto"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:paperclip-operations:task-planning",
|
|
"catalogSkillKey": "paperclipai/bundled/paperclip-operations/task-planning"
|
|
}
|
|
],
|
|
"envInputs": [],
|
|
"sourceRefs": [],
|
|
"files": [
|
|
{
|
|
"path": "TEAM.md",
|
|
"kind": "team",
|
|
"sizeBytes": 2014,
|
|
"sha256": "e0c38e9af1a5dd1888fb81a72feba75a9ab1be4c78d8ceb658e2e5cd621c5096"
|
|
},
|
|
{
|
|
"path": "agents/ceo/AGENTS.md",
|
|
"kind": "agent",
|
|
"sizeBytes": 263,
|
|
"sha256": "75848c6f794646a93e23bc73b80d31ef0eb8b83c105423eb98ea29e7685d2fd0"
|
|
},
|
|
{
|
|
"path": "agents/cto/AGENTS.md",
|
|
"kind": "agent",
|
|
"sizeBytes": 279,
|
|
"sha256": "d33bfdecdf2edcedde25599c72c383445365c595430109469a3919bf9cb12a3d"
|
|
},
|
|
{
|
|
"path": "agents/qa/AGENTS.md",
|
|
"kind": "agent",
|
|
"sizeBytes": 215,
|
|
"sha256": "8b7fbdd93c0ecebddc1c87fb87d201340bd5f90297015da6cacd1681e7be70b8"
|
|
},
|
|
{
|
|
"path": "projects/first-project/PROJECT.md",
|
|
"kind": "project",
|
|
"sizeBytes": 364,
|
|
"sha256": "1f457ae956da52ff83adc1cf63a3fb84337a4afb25bd43f0d123902d75e871cc"
|
|
},
|
|
{
|
|
"path": "projects/first-project/tasks/first-heartbeat/TASK.md",
|
|
"kind": "task",
|
|
"sizeBytes": 292,
|
|
"sha256": "bdc979cafa43fc9b8f0d6f0e4120c01cecfb899082781a5da88e26fa262f18e4"
|
|
}
|
|
],
|
|
"trustLevel": "markdown_only",
|
|
"compatibility": "compatible",
|
|
"contentHash": "sha256:9d0416ebc0a81585dc51b73efb25decba9e1e3f3741940fc9fca74f3238f344d"
|
|
},
|
|
{
|
|
"id": "paperclipai:bundled:product:product-design",
|
|
"key": "paperclipai/bundled/product/product-design",
|
|
"kind": "bundled",
|
|
"category": "product",
|
|
"slug": "product-design",
|
|
"name": "Product Design",
|
|
"description": "Bundled product design team with a Principal Product Designer who owns wireframes, design critiques, and UX quality reviews for a product company.",
|
|
"path": "catalog/bundled/product/product-design",
|
|
"entrypoint": "TEAM.md",
|
|
"schema": "agentcompanies/v1",
|
|
"defaultInstall": false,
|
|
"recommendedForCompanyTypes": [
|
|
"software",
|
|
"product",
|
|
"design"
|
|
],
|
|
"tags": [
|
|
"design",
|
|
"ux",
|
|
"product"
|
|
],
|
|
"counts": {
|
|
"agents": 1,
|
|
"projects": 1,
|
|
"tasks": 0,
|
|
"routines": 1,
|
|
"localSkills": 0,
|
|
"catalogSkills": 3,
|
|
"externalSkillSources": 0
|
|
},
|
|
"rootAgentSlugs": [
|
|
"ux-designer"
|
|
],
|
|
"agentSlugs": [
|
|
"ux-designer"
|
|
],
|
|
"projectSlugs": [
|
|
"product-design"
|
|
],
|
|
"requiredSkills": [
|
|
{
|
|
"type": "catalog",
|
|
"ref": "design-critique",
|
|
"agentSlugs": [
|
|
"ux-designer"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:optional:product:design-critique",
|
|
"catalogSkillKey": "paperclipai/optional/product/design-critique"
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"ref": "task-planning",
|
|
"agentSlugs": [
|
|
"ux-designer"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:paperclip-operations:task-planning",
|
|
"catalogSkillKey": "paperclipai/bundled/paperclip-operations/task-planning"
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"ref": "wireframe",
|
|
"agentSlugs": [
|
|
"ux-designer"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:product:wireframe",
|
|
"catalogSkillKey": "paperclipai/bundled/product/wireframe"
|
|
}
|
|
],
|
|
"envInputs": [],
|
|
"sourceRefs": [],
|
|
"files": [
|
|
{
|
|
"path": "TEAM.md",
|
|
"kind": "team",
|
|
"sizeBytes": 2025,
|
|
"sha256": "f950f4f77a26afa458ca0696994b51353a6bcfac81471fdc00c05f63950fcac5"
|
|
},
|
|
{
|
|
"path": "agents/ux-designer/AGENTS.md",
|
|
"kind": "agent",
|
|
"sizeBytes": 306,
|
|
"sha256": "301f2c7ed92bdd98036c06530588c77d74c3a3c6a8b9c724a3d35fee1142af6f"
|
|
},
|
|
{
|
|
"path": "projects/product-design/PROJECT.md",
|
|
"kind": "project",
|
|
"sizeBytes": 353,
|
|
"sha256": "4afe346bc5d5958216542d60a06be12983e1e018960cf2709c85c7d578f28420"
|
|
},
|
|
{
|
|
"path": "projects/product-design/tasks/weekly-design-review/TASK.md",
|
|
"kind": "task",
|
|
"sizeBytes": 313,
|
|
"sha256": "d255115eccc5c8b9f576c34fc2fb46a1cbb86ab36a56b980bdab35a952482d8a"
|
|
}
|
|
],
|
|
"trustLevel": "markdown_only",
|
|
"compatibility": "compatible",
|
|
"contentHash": "sha256:67b041c3adc20583f844fd2415e1c67859a8342b59e46ec32b038b70b7af0108"
|
|
},
|
|
{
|
|
"id": "paperclipai:bundled:software-development:product-engineering",
|
|
"key": "paperclipai/bundled/software-development/product-engineering",
|
|
"kind": "bundled",
|
|
"category": "software-development",
|
|
"slug": "product-engineering",
|
|
"name": "Product Engineering",
|
|
"description": "Bundled engineering team that pairs a CTO with a senior coder and a QA engineer to deliver, review, and verify product changes.",
|
|
"path": "catalog/bundled/software-development/product-engineering",
|
|
"entrypoint": "TEAM.md",
|
|
"schema": "agentcompanies/v1",
|
|
"defaultInstall": false,
|
|
"recommendedForCompanyTypes": [
|
|
"software",
|
|
"startup",
|
|
"product"
|
|
],
|
|
"tags": [
|
|
"engineering",
|
|
"delivery",
|
|
"qa",
|
|
"code-review"
|
|
],
|
|
"counts": {
|
|
"agents": 3,
|
|
"projects": 1,
|
|
"tasks": 0,
|
|
"routines": 1,
|
|
"localSkills": 0,
|
|
"catalogSkills": 4,
|
|
"externalSkillSources": 0
|
|
},
|
|
"rootAgentSlugs": [
|
|
"cto"
|
|
],
|
|
"agentSlugs": [
|
|
"cto",
|
|
"qa",
|
|
"senior-coder"
|
|
],
|
|
"projectSlugs": [
|
|
"product-engineering"
|
|
],
|
|
"requiredSkills": [
|
|
{
|
|
"type": "catalog",
|
|
"ref": "doc-maintenance",
|
|
"agentSlugs": [
|
|
"cto",
|
|
"senior-coder"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:docs:doc-maintenance",
|
|
"catalogSkillKey": "paperclipai/bundled/docs/doc-maintenance"
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"ref": "github-pr-workflow",
|
|
"agentSlugs": [
|
|
"cto",
|
|
"senior-coder"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:software-development:github-pr-workflow",
|
|
"catalogSkillKey": "paperclipai/bundled/software-development/github-pr-workflow"
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"ref": "qa-acceptance",
|
|
"agentSlugs": [
|
|
"qa"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:quality:qa-acceptance",
|
|
"catalogSkillKey": "paperclipai/bundled/quality/qa-acceptance"
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"ref": "task-planning",
|
|
"agentSlugs": [
|
|
"cto"
|
|
],
|
|
"resolved": true,
|
|
"catalogSkillId": "paperclipai:bundled:paperclip-operations:task-planning",
|
|
"catalogSkillKey": "paperclipai/bundled/paperclip-operations/task-planning"
|
|
}
|
|
],
|
|
"envInputs": [],
|
|
"sourceRefs": [],
|
|
"files": [
|
|
{
|
|
"path": "TEAM.md",
|
|
"kind": "team",
|
|
"sizeBytes": 2583,
|
|
"sha256": "7204eeef78a48714dd3f82b82e171a4039adc6325e91a6bdf51a442105ee33b0"
|
|
},
|
|
{
|
|
"path": ".paperclip.yaml",
|
|
"kind": "extension",
|
|
"sizeBytes": 81,
|
|
"sha256": "54babf05ba130ec54a143abf01581d99c0ac2936fd0d929bf0e0edd00e29d861"
|
|
},
|
|
{
|
|
"path": "agents/cto/AGENTS.md",
|
|
"kind": "agent",
|
|
"sizeBytes": 331,
|
|
"sha256": "28849cb94cb506c4437fa4f9fa19dccb3e29b16175a9b99204a006dac721da48"
|
|
},
|
|
{
|
|
"path": "agents/qa/AGENTS.md",
|
|
"kind": "agent",
|
|
"sizeBytes": 247,
|
|
"sha256": "577f585f6db5271cb7335861debe91fc3201fba9e1565e32611e957ddfab8e05"
|
|
},
|
|
{
|
|
"path": "agents/senior-coder/AGENTS.md",
|
|
"kind": "agent",
|
|
"sizeBytes": 292,
|
|
"sha256": "e03e0eef79adc04b4ee558ac920bf2ef0581e9494510b7a12d5f1aea70858f18"
|
|
},
|
|
{
|
|
"path": "projects/product-engineering/PROJECT.md",
|
|
"kind": "project",
|
|
"sizeBytes": 358,
|
|
"sha256": "225d01c5b5b77f5d4dafedc083899c9368c9b079db1d3b7b67cfebd4677fc527"
|
|
},
|
|
{
|
|
"path": "projects/product-engineering/tasks/weekly-engineering-sync/TASK.md",
|
|
"kind": "task",
|
|
"sizeBytes": 322,
|
|
"sha256": "6acf3ed2da3dfa48de163810b4bc9d385dad537fd34037ca881eec713986a2a8"
|
|
}
|
|
],
|
|
"trustLevel": "assets",
|
|
"compatibility": "compatible",
|
|
"contentHash": "sha256:b9076b17a551b704a97df2e0204cefb83edfda4d36e909889071bb02d251e5ea"
|
|
},
|
|
{
|
|
"id": "paperclipai:optional:content:content-machine",
|
|
"key": "paperclipai/optional/content/content-machine",
|
|
"kind": "optional",
|
|
"category": "content",
|
|
"slug": "content-machine",
|
|
"name": "Content Machine",
|
|
"description": "Optional content operations team with a lead agent, a recurring review task, and a vendored local content planning skill.",
|
|
"path": "catalog/optional/content/content-machine",
|
|
"entrypoint": "TEAM.md",
|
|
"schema": "agentcompanies/v1",
|
|
"defaultInstall": false,
|
|
"recommendedForCompanyTypes": [
|
|
"agency",
|
|
"marketing"
|
|
],
|
|
"tags": [
|
|
"content",
|
|
"marketing",
|
|
"routines"
|
|
],
|
|
"counts": {
|
|
"agents": 1,
|
|
"projects": 1,
|
|
"tasks": 0,
|
|
"routines": 1,
|
|
"localSkills": 1,
|
|
"catalogSkills": 0,
|
|
"externalSkillSources": 0
|
|
},
|
|
"rootAgentSlugs": [
|
|
"content-lead"
|
|
],
|
|
"agentSlugs": [
|
|
"content-lead"
|
|
],
|
|
"projectSlugs": [
|
|
"content-operations"
|
|
],
|
|
"requiredSkills": [
|
|
{
|
|
"type": "local",
|
|
"ref": "content-calendar",
|
|
"agentSlugs": [
|
|
"content-lead"
|
|
],
|
|
"resolved": true,
|
|
"localPath": "skills/content-calendar/SKILL.md"
|
|
}
|
|
],
|
|
"envInputs": [],
|
|
"sourceRefs": [],
|
|
"files": [
|
|
{
|
|
"path": "TEAM.md",
|
|
"kind": "team",
|
|
"sizeBytes": 1032,
|
|
"sha256": "f7c272c8b0c183fc840d49eb4851b7cdd1a30a5aa8d6415d215110f3238f6f13"
|
|
},
|
|
{
|
|
"path": "agents/content-lead/AGENTS.md",
|
|
"kind": "agent",
|
|
"sizeBytes": 251,
|
|
"sha256": "6fc2071ff463b6981780d5b40b2c0784cb119900062f8dc40ed372e7b8415bf7"
|
|
},
|
|
{
|
|
"path": "projects/content-operations/PROJECT.md",
|
|
"kind": "project",
|
|
"sizeBytes": 338,
|
|
"sha256": "1471f61cb0b3ffbb9c639a99d2d370f08217a0c63f97b3e24dbbd47861110206"
|
|
},
|
|
{
|
|
"path": "projects/content-operations/tasks/weekly-content-review/TASK.md",
|
|
"kind": "task",
|
|
"sizeBytes": 236,
|
|
"sha256": "3777de716334f2c3f24176f0fe121584ce9c53a7f59e1fca942a2f57995cef77"
|
|
},
|
|
{
|
|
"path": "skills/content-calendar/SKILL.md",
|
|
"kind": "skill",
|
|
"sizeBytes": 340,
|
|
"sha256": "aa62a332fc3149d6c0d58ca589c6b3910a373d542f16f749ec68ef2f3d7f29e9"
|
|
}
|
|
],
|
|
"trustLevel": "markdown_only",
|
|
"compatibility": "compatible",
|
|
"contentHash": "sha256:06822cec5f2b6910cb37ba0ebd5e04ed5c7e34f77225564ddddc2470779cdaa6"
|
|
}
|
|
]
|
|
}
|