Files
PaperClipAI/packages/teams-catalog/generated/catalog.json
T
DottaandPaperclip 862a5758ba fix(agents): reduce hiring templates to role descriptions (#14985)
## 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>
2026-10-02 17:56:42 -05:00

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"
}
]
}