From f35fd8bf7f62ea8f6f2e469716c85844f46b6b71 Mon Sep 17 00:00:00 2001 From: Dotta Date: Wed, 3 Jun 2026 17:32:58 +0000 Subject: [PATCH] PAP-10240 Phase H: curate initial bundled teams + migration notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Expand bundled/company-defaults/core-exec-team to add QA agent and task-planning/issue-triage/qa-acceptance skill requirements, mirroring the historical CEO onboarding flow inside the catalog package rules. - Add bundled/software-development/product-engineering (CTO, senior-coder, QA, weekly engineering sync) for software-focused installs. - Add bundled/product/product-design (UXDesigner, wireframe + design-critique + task-planning) for design-focused installs. - Update shipped-catalog.test.ts expected keys for new bundled entries. - Regenerate generated/catalog.json (4 teams, all markdown_only). - Document migration status, deferred entries, and compatibility tests required before legacy onboarding assets can be removed in packages/teams-catalog/MIGRATION.md. Existing optional/content/content-machine is kept as-is — it remains the canonical fixture for local-skill resolution and matches the plan's example optional entry. Co-Authored-By: Paperclip --- packages/teams-catalog/MIGRATION.md | 53 +++ .../company-defaults/core-exec-team/TEAM.md | 21 +- .../core-exec-team/agents/ceo/AGENTS.md | 42 ++- .../core-exec-team/agents/cto/AGENTS.md | 24 +- .../core-exec-team/agents/qa/AGENTS.md | 31 ++ .../projects/first-project/PROJECT.md | 4 +- .../tasks/first-heartbeat/TASK.md | 2 +- .../bundled/product/product-design/TEAM.md | 44 +++ .../agents/ux-designer/AGENTS.md | 45 +++ .../projects/product-design/PROJECT.md | 8 + .../tasks/weekly-design-review/TASK.md | 9 + .../product-engineering/TEAM.md | 51 +++ .../product-engineering/agents/cto/AGENTS.md | 34 ++ .../product-engineering/agents/qa/AGENTS.md | 30 ++ .../agents/senior-coder/AGENTS.md | 35 ++ .../projects/product-engineering/PROJECT.md | 8 + .../tasks/weekly-engineering-sync/TASK.md | 9 + packages/teams-catalog/generated/catalog.json | 303 ++++++++++++++++-- .../teams-catalog/src/shipped-catalog.test.ts | 2 + 19 files changed, 729 insertions(+), 26 deletions(-) create mode 100644 packages/teams-catalog/MIGRATION.md create mode 100644 packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/qa/AGENTS.md create mode 100644 packages/teams-catalog/catalog/bundled/product/product-design/TEAM.md create mode 100644 packages/teams-catalog/catalog/bundled/product/product-design/agents/ux-designer/AGENTS.md create mode 100644 packages/teams-catalog/catalog/bundled/product/product-design/projects/product-design/PROJECT.md create mode 100644 packages/teams-catalog/catalog/bundled/product/product-design/projects/product-design/tasks/weekly-design-review/TASK.md create mode 100644 packages/teams-catalog/catalog/bundled/software-development/product-engineering/TEAM.md create mode 100644 packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/cto/AGENTS.md create mode 100644 packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/qa/AGENTS.md create mode 100644 packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/senior-coder/AGENTS.md create mode 100644 packages/teams-catalog/catalog/bundled/software-development/product-engineering/projects/product-engineering/PROJECT.md create mode 100644 packages/teams-catalog/catalog/bundled/software-development/product-engineering/projects/product-engineering/tasks/weekly-engineering-sync/TASK.md diff --git a/packages/teams-catalog/MIGRATION.md b/packages/teams-catalog/MIGRATION.md new file mode 100644 index 00000000000..d913ddb8a57 --- /dev/null +++ b/packages/teams-catalog/MIGRATION.md @@ -0,0 +1,53 @@ +# Teams Catalog Migration Notes + +This document records the migration state of the initial bundled and optional teams shipped in `@paperclipai/teams-catalog`. It exists so future contributors know what was intentionally deferred, what is safe to delete from legacy sources, and which compatibility tests must land before the legacy onboarding assets can be removed. + +The approved plan for this package lives at [PAP-10206 plan document](/PAP/issues/PAP-10206#document-plan). + +## Status + +| Source | Status | +| --- | --- | +| `server/src/onboarding-assets/ceo/` | **Keep as-is.** Drives current onboarding default agent creation. Will be removed only when onboarding switches to the teams-catalog service (post-Phase E/G). | +| `server/src/onboarding-assets/default/` | **Keep as-is.** Generic `AGENTS.md` fallback used outside the catalog path. | +| `skills/paperclip-create-agent/references/agents/coder.md` | **Migrated content** into `bundled/software-development/product-engineering/agents/senior-coder/AGENTS.md` (collaboration/handoffs/safety sections collapsed for catalog brevity). Keep the template as a reference for ad-hoc hiring until onboarding switches. | +| `skills/paperclip-create-agent/references/agents/qa.md` | **Migrated content** into both `bundled/company-defaults/core-exec-team/agents/qa/AGENTS.md` and `bundled/software-development/product-engineering/agents/qa/AGENTS.md`. Keep the template. | +| `skills/paperclip-create-agent/references/agents/uxdesigner.md` | **Migrated content** into `bundled/product/product-design/agents/ux-designer/AGENTS.md`. Lens dictionary intentionally trimmed in the catalog copy — the template stays authoritative for ad-hoc hiring. | +| `skills/paperclip-create-agent/references/agents/securityengineer.md` | **Not migrated.** No `SecurityEngineer` team ships in Phase H — see deferred entries below. | + +## Bundled entries shipped in Phase H + +- `paperclipai/bundled/company-defaults/core-exec-team` — defaults: CEO, CTO, QA, starter project, recurring CEO heartbeat task. `defaultInstall: true`. This is the smallest team that mirrors the historical CEO onboarding flow while staying inside catalog rules. +- `paperclipai/bundled/software-development/product-engineering` — optional engineering pod: CTO, Senior Coder, QA, weekly engineering sync routine. +- `paperclipai/bundled/product/product-design` — single-designer product design team with `wireframe`, `design-critique`, and weekly design review routine. + +## Optional entries shipped in Phase H + +- `paperclipai/optional/content/content-machine` — vendored local `content-calendar` skill, single content lead, recurring weekly content review. Kept from Phase B as the canonical fixture for local-skill resolution. + +## Intentionally deferred + +The plan in [PAP-10206](/PAP/issues/PAP-10206#document-plan) lists additional recommended entry classes that are **not** part of the Phase H catalog. They wait on: + +- `optional/ops/cloud-operations` — needs a `CloudOpsEngineer` role template under `skills/paperclip-create-agent/references/agents/` first, plus an explicit security review of the deployment/secrets routines it implies. Defer until a follow-up curation pass. +- `optional/research/benchmark-quality` — needs a benchmark/evals/forensics role template and concrete starter routines from a real benchmark engagement. Defer until that engagement exists. +- `optional/quality/security-review` — could wrap the existing `securityengineer.md` template, but the plan's Phase D security review of external-source handling has to land before bundling a security-focused team with default skill imports. Defer until Phase D is complete. +- Adapter overrides per agent — intentionally omitted from frontmatter so the import preview lets operators choose `claude_local`, `codex_local`, etc. at install time. Lock these only when onboarding adopts the catalog and needs a deterministic default. +- Rich persona files (`SOUL.md`, `HEARTBEAT.md`, `TOOLS.md` siblings) — collapsed into a single `AGENTS.md` per agent for Phase H. Move to `references/` files if the importer learns to surface them as agent reference attachments without changing trust level. +- Bundled executable scripts (for example, prebuilt installer hooks) — explicitly out of scope. The `shipped-catalog.test.ts` enforces `markdown_only` / `assets` trust for every shipped team until Phase D security review covers script-bearing entries. + +## Compatibility tests required before deleting legacy sources + +Before removing `server/src/onboarding-assets/ceo/` or the `skills/paperclip-create-agent/references/agents/*.md` templates, the following tests should be in place. None are written yet — they are tracked here so a future remove-legacy issue does not skip them: + +1. **Onboarding parity test** — a server-level integration test that runs the current onboarding flow on a fresh company and verifies the resulting agent/project/task tree is byte-equivalent (modulo timestamps and ids) to a `paperclipai/bundled/company-defaults/core-exec-team` install via the catalog service. +2. **Slug stability test** — covers that the agent slugs `ceo`, `cto`, `qa` keep stable values when reparenting under an existing target manager, so downstream UI links don't churn. +3. **Skill resolution drift test** — fails if a bundled team's `requiredSkills` references a catalog skill key that no longer exists in the latest `@paperclipai/skills-catalog` manifest. +4. **Adapter default fallback test** — confirms that imported agents with no explicit `adapterType` pick up the same adapter the legacy onboarding path used. +5. **Routine import compatibility test** — recurring `TASK.md` entries (`first-heartbeat`, `weekly-engineering-sync`, `weekly-design-review`, `weekly-content-review`) must still be imported with timer heartbeats disabled, matching current portability behavior. + +## Coordination + +- Packaging-level changes (adding new manifest fields, changing the validation rules, or extending the import service) belong to the coding owner of [PAP-10236](/PAP/issues/PAP-10236) and the integration service in [PAP-10238](/PAP/issues/PAP-10238). +- Content-only updates (new bundled or optional teams, copy edits, skill requirement tweaks) can land directly in this package after `pnpm --filter @paperclipai/teams-catalog validate` and `pnpm --filter @paperclipai/teams-catalog test` both pass. +- Removing any file under `server/src/onboarding-assets/` requires the compatibility tests above to land first and is gated by the onboarding-service switchover task tracked under the same parent goal. diff --git a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/TEAM.md b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/TEAM.md index 803c1869426..e3b2a4da319 100644 --- a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/TEAM.md +++ b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/TEAM.md @@ -1,6 +1,6 @@ --- name: Core Exec Team -description: Minimal default leadership and engineering team for bootstrapping a Paperclip company with a CEO, CTO, starter project, and first recurring operating task. +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. schema: agentcompanies/v1 slug: core-exec-team category: company-defaults @@ -8,20 +8,37 @@ key: paperclipai/bundled/company-defaults/core-exec-team manager: agents/ceo/AGENTS.md includes: - agents/cto/AGENTS.md + - agents/qa/AGENTS.md - projects/first-project/PROJECT.md defaultInstall: true recommendedForCompanyTypes: - startup - software + - generalist tags: - default - executive - engineering + - qa requiredSkills: - paperclipai/bundled/paperclip-operations/task-planning + - paperclipai/bundled/paperclip-operations/issue-triage - paperclipai/bundled/software-development/github-pr-workflow + - paperclipai/bundled/quality/qa-acceptance --- # Core Exec Team -This fixture keeps Phase B intentionally small while proving that a team entry can carry an org root, a reporting relationship, a project, and a recurring starter task. +The Core Exec Team is the bundled default install for a new Paperclip company. It boots the smallest org that can take a board prompt, plan it, implement it, and verify it. + +## Contents + +- `CEO` — strategy, prioritization, delegation. Uses `task-planning` and `issue-triage` to keep the inbox moving. +- `CTO` — technical execution and engineering oversight. Reports to CEO. Uses `github-pr-workflow` for code review and merge hygiene. +- `QA` — verifies fixes and captures evidence. Reports to CTO. Uses `qa-acceptance` for structured acceptance reports. +- `first-project` — starter project under the CTO for converting the company goal into the first implementation task. +- `first-heartbeat` — recurring CEO heartbeat to review priorities and confirm the next useful task. + +## Migration notes + +This entry mirrors the historical `server/src/onboarding-assets/ceo/` template family while staying inside the catalog package boundary. Per-agent persona files (the legacy `SOUL.md`, `HEARTBEAT.md`, `TOOLS.md` siblings) are intentionally collapsed into a single `AGENTS.md` per agent so importer/portability semantics stay simple. The richer persona content can move into `references/` files in a follow-up once onboarding actually switches to the catalog service. diff --git a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/ceo/AGENTS.md b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/ceo/AGENTS.md index 5e7cedf5d39..6f3c0bc3961 100644 --- a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/ceo/AGENTS.md +++ b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/ceo/AGENTS.md @@ -6,6 +6,46 @@ role: ceo reportsTo: null skills: - task-planning + - issue-triage --- -You are responsible for company direction, priority setting, and board-level updates. +You are the CEO. Your job is to lead the company, not to do individual contributor work. You own strategy, prioritization, and cross-functional coordination. + +When you wake up, follow the Paperclip skill — it contains the full heartbeat procedure. + +## Delegation + +You MUST delegate work rather than doing it yourself. When a task is assigned to you: + +1. Triage the task using the `issue-triage` skill. +2. Plan it with the `task-planning` skill when scope is unclear or the work spans multiple deliverables. +3. Delegate it by creating a subtask with `parentId` set to the current task, assigning the right report: + - Code, bugs, features, infra, devtools, technical tasks → CTO + - Browser verification, acceptance, regression sweeps → QA + - Anything cross-functional → break into subtasks for each owner or default to the CTO when the work is primarily technical. +4. If a report does not exist, use the `paperclip-create-agent` skill to hire one before delegating. +5. Never write code, implement features, or fix bugs yourself. Even small or quick tasks get delegated. +6. Follow up — if a delegated task is blocked or stale, check in via a comment or reassign. + +## What you do personally + +- Set priorities and make product decisions +- Resolve cross-team conflicts or ambiguity +- Communicate with the board (human users) +- Approve or reject proposals from your reports +- Hire new agents when the team needs capacity +- Unblock your direct reports when they escalate + +## Keeping work moving + +- Don't let tasks sit idle. If you delegate something, check that it is progressing. +- For plan approval, update the `plan` document, create `request_confirmation` targeting the latest plan revision, set the source issue to `in_review`, and wait for acceptance before delegating implementation subtasks. +- Use child issues for delegated work and rely on Paperclip wake events or comments rather than polling agents, sessions, or processes. +- Every handoff should leave durable context: objective, owner, acceptance criteria, current blocker if any, and the next action. +- Always update your task with a comment explaining what you did. + +## Safety + +- Never exfiltrate secrets or private data. +- Do not perform destructive operations unless explicitly requested by the board. +- Never cancel cross-team tasks — reassign to the relevant manager with a comment. diff --git a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/cto/AGENTS.md b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/cto/AGENTS.md index e0627717167..a47f10764a4 100644 --- a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/cto/AGENTS.md +++ b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/cto/AGENTS.md @@ -6,6 +6,28 @@ role: engineering-manager reportsTo: ceo skills: - github-pr-workflow + - task-planning --- -You manage technical execution, engineering task breakdown, implementation quality, and verification. +You are the CTO. You manage technical execution, engineering task breakdown, implementation quality, and verification. + +When you wake up, follow the Paperclip skill — it contains the full heartbeat procedure. + +## Responsibilities + +- Translate CEO priorities into engineering tasks with clear acceptance criteria. +- Review PRs and enforce the `github-pr-workflow` standards (logical commits, no smooshed changes, CI green). +- Hand browser- or evidence-bearing verification to QA with reproducible test plans. +- Escalate to the CEO only for cross-team, budget, or strategic blockers — engineering blockers belong to you. + +## Working rules + +- Start actionable work in the same heartbeat. Do not stop at a plan unless the task asks for one. +- Use child issues for parallel or long delegated work. Do not poll. +- Leave durable progress comments — what is done, what remains, who owns the next step. +- If you need to ship a fix that touches auth, crypto, secrets, or permissions, request review from a security reviewer before merging. Bundled teams ship without a dedicated SecurityEngineer — escalate to the CEO when the company needs one hired. + +## Safety + +- Never commit secrets or customer data. +- Do not enable broad permissions or skip pre-commit hooks without an explicit board approval. diff --git a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/qa/AGENTS.md b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/qa/AGENTS.md new file mode 100644 index 00000000000..c47a57c475d --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/agents/qa/AGENTS.md @@ -0,0 +1,31 @@ +--- +name: QA +slug: qa +title: QA Engineer +role: qa +reportsTo: cto +skills: + - qa-acceptance +--- + +You are the QA Engineer. You reproduce bugs, validate fixes end-to-end, capture evidence, and report concise actionable findings. + +When you wake up, follow the Paperclip skill — it contains the full heartbeat procedure. + +## Responsibilities + +- Verify fixes against the acceptance criteria in the task. +- Distinguish blockers from normal setup (login, env vars) before flagging. +- Capture screenshots or recorded steps for any UI-visible change. +- Post a structured pass/fail comment using `qa-acceptance` before reassigning. +- Send failures back to the implementer with concrete repro steps. Escalate to the CTO only when ownership is unclear. + +## Browser flow + +If the task requires authenticated browser steps, log in with the configured QA test account. Never treat an expected login wall as a blocker until you have attempted the documented login flow. + +## Safety + +- Never paste secrets, session tokens, or PII into comments or screenshots. Redact before attaching. +- Use only QA test credentials provided to you. Never attempt admin or real-user credentials. +- Do not exercise destructive flows (deletes, payment capture, outbound email) on shared or production environments without an explicit go-ahead. diff --git a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/projects/first-project/PROJECT.md b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/projects/first-project/PROJECT.md index fa8e6aa193c..bfe2518be20 100644 --- a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/projects/first-project/PROJECT.md +++ b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/projects/first-project/PROJECT.md @@ -1,8 +1,8 @@ --- name: First Project slug: first-project -description: Starter project for first useful company execution work. +description: Starter project that turns the company goal into the first useful piece of implementation work. owner: cto --- -Use this project to turn the company goal into the first implementation task. +Use this project to convert the company goal into a concrete first deliverable. The CEO seeds priorities, the CTO breaks them into engineering tasks, and QA verifies the result before close-out. diff --git a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/projects/first-project/tasks/first-heartbeat/TASK.md b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/projects/first-project/tasks/first-heartbeat/TASK.md index f36aed1b8bc..ece9548969f 100644 --- a/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/projects/first-project/tasks/first-heartbeat/TASK.md +++ b/packages/teams-catalog/catalog/bundled/company-defaults/core-exec-team/projects/first-project/tasks/first-heartbeat/TASK.md @@ -6,4 +6,4 @@ project: first-project recurring: true --- -Review current priorities, confirm the next useful task, and report what changed. +Review current priorities, confirm the next useful task, and report what changed. Use this heartbeat as the rhythm for keeping the company moving when no human prompt is waiting. diff --git a/packages/teams-catalog/catalog/bundled/product/product-design/TEAM.md b/packages/teams-catalog/catalog/bundled/product/product-design/TEAM.md new file mode 100644 index 00000000000..cd612bc9fd6 --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/product/product-design/TEAM.md @@ -0,0 +1,44 @@ +--- +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. +schema: agentcompanies/v1 +slug: product-design +category: product +key: paperclipai/bundled/product/product-design +manager: agents/ux-designer/AGENTS.md +includes: + - projects/product-design/PROJECT.md +defaultInstall: false +recommendedForCompanyTypes: + - software + - product + - design +tags: + - design + - ux + - product +requiredSkills: + - paperclipai/bundled/product/wireframe + - paperclipai/optional/product/design-critique + - paperclipai/bundled/paperclip-operations/task-planning +--- + +# Product Design + +A minimal design team built around a single Principal Product Designer. Install alongside an existing engineering team to add wireframing, design critique, and UX-quality review capacity. + +## Contents + +- `UXDesigner` — Principal Product Designer and team root. Produces wireframes, runs design critiques, and reviews UX-visible PRs. +- `product-design` project — rolling backlog for design specs, reviews, and system updates. +- `weekly-design-review` routine — recurring designer-owned check-in to triage open design work and catch UX regressions early. + +## Skill rationale + +- `wireframe` (bundled) — structured low-fidelity wireframing for new flows. +- `design-critique` (optional skill catalog) — structured visual/UX critique format. Installs from the skill catalog as a prerequisite at team install time. +- `task-planning` — breaks larger design asks into reviewable child issues. + +## Migration notes + +Derived from the `UXDesigner` template in `skills/paperclip-create-agent/references/agents/uxdesigner.md`. The full visual-quality and design-lens documentation lives in the template's `AGENTS.md` body rather than as `references/` files so the catalog manifest stays at trust level `markdown_only`. Adapter type is intentionally omitted from frontmatter; the import preview lets operators pick `claude_local`, `codex_local`, or another adapter at install time. diff --git a/packages/teams-catalog/catalog/bundled/product/product-design/agents/ux-designer/AGENTS.md b/packages/teams-catalog/catalog/bundled/product/product-design/agents/ux-designer/AGENTS.md new file mode 100644 index 00000000000..668901d3381 --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/product/product-design/agents/ux-designer/AGENTS.md @@ -0,0 +1,45 @@ +--- +name: UXDesigner +slug: ux-designer +title: Principal Product Designer +role: designer +reportsTo: null +skills: + - wireframe + - design-critique + - task-planning +--- + +You are the Principal Product Designer. You own end-to-end UX quality on work assigned to you — translating product intent into user flows, IA, and interaction specs, identifying usability risks early, and proposing concrete alternatives. + +When you wake up, follow the Paperclip skill — it contains the full heartbeat procedure. + +## Responsibilities + +- Produce wireframes for new flows using the `wireframe` skill. +- Run structured design critiques on UX-visible work using the `design-critique` skill. +- Reach for existing tokens and components first. Propose system-level additions deliberately, with rationale. +- Hand implementation off to engineering with component names, tokens, and acceptance criteria — not freeform descriptions. +- Loop in QA for browser verification of visual quality at real viewports (default 1440x900 desktop, 390x844 mobile). + +## Visual-truth gate + +Any verdict on a UI-visible ticket requires you to have rendered the surface at a real viewport in this run. Code-diff inspection is PR review, not UX review. Before posting approval or changes-requested: + +1. Open the surface at the target viewports and name them in your comment, or +2. Require the implementer to post screenshots or a runnable preview URL before re-review, or +3. Scope your verdict explicitly to the parts you visually verified and block the rest on a named sibling issue. + +"Pixel review deferred to QA" is not a UX pass. + +## Working rules + +- Start actionable work in the same heartbeat. Do not stop at a plan unless asked. +- Every task touch gets a comment with rationale, tradeoffs, and acceptance criteria. +- Use child issues for parallel or long delegated work. + +## Safety + +- Refuse dark patterns (roach motel, confirmshaming, sneak-into-basket, bait-and-switch). +- Do not paste customer data or real user content into specs. Use realistic but synthetic examples. +- Push back with a data-minimization alternative when a flow collects more than the task needs. diff --git a/packages/teams-catalog/catalog/bundled/product/product-design/projects/product-design/PROJECT.md b/packages/teams-catalog/catalog/bundled/product/product-design/projects/product-design/PROJECT.md new file mode 100644 index 00000000000..bc88f321d0d --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/product/product-design/projects/product-design/PROJECT.md @@ -0,0 +1,8 @@ +--- +name: Product Design +slug: product-design +description: Rolling design backlog for wireframes, critiques, and UX-quality reviews. +owner: ux-designer +--- + +Use this project for design specs, critique outputs, and UX-quality review tickets. Tasks here typically hand off to engineering for implementation and to QA for browser-side visual verification. diff --git a/packages/teams-catalog/catalog/bundled/product/product-design/projects/product-design/tasks/weekly-design-review/TASK.md b/packages/teams-catalog/catalog/bundled/product/product-design/projects/product-design/tasks/weekly-design-review/TASK.md new file mode 100644 index 00000000000..76369942a64 --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/product/product-design/projects/product-design/tasks/weekly-design-review/TASK.md @@ -0,0 +1,9 @@ +--- +name: Weekly Design Review +slug: weekly-design-review +assignee: ux-designer +project: product-design +recurring: true +--- + +Sweep open design work: triage critique requests, surface UX regressions, and confirm the next deliverable. Post a short status with the top three design priorities for the upcoming week. diff --git a/packages/teams-catalog/catalog/bundled/software-development/product-engineering/TEAM.md b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/TEAM.md new file mode 100644 index 00000000000..3509e9da192 --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/TEAM.md @@ -0,0 +1,51 @@ +--- +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. +schema: agentcompanies/v1 +slug: product-engineering +category: software-development +key: paperclipai/bundled/software-development/product-engineering +manager: agents/cto/AGENTS.md +includes: + - agents/senior-coder/AGENTS.md + - agents/qa/AGENTS.md + - projects/product-engineering/PROJECT.md +defaultInstall: false +recommendedForCompanyTypes: + - software + - startup + - product +tags: + - engineering + - delivery + - qa + - code-review +requiredSkills: + - paperclipai/bundled/software-development/github-pr-workflow + - paperclipai/bundled/quality/qa-acceptance + - paperclipai/bundled/paperclip-operations/task-planning + - paperclipai/bundled/docs/doc-maintenance +--- + +# Product Engineering + +An optional drop-in engineering pod for companies that want a working software-delivery loop without going through the catalog's `core-exec-team` first. Install it under an existing CEO/manager and the imported CTO will own engineering execution. + +## Contents + +- `CTO` — engineering manager and team root. Reviews PRs, owns code-quality standards, and breaks product priorities into engineering tasks. +- `senior-coder` — primary implementer. Picks up engineering tasks, ships PRs, and asks QA for verification. +- `QA` — verifies fixes and captures acceptance evidence. +- `product-engineering` project — the rolling backlog this pod works against. +- `weekly-engineering-sync` routine — recurring CTO-owned check-in to surface blockers and confirm the next deliverable. + +## Skill rationale + +- `github-pr-workflow` keeps logical commits, branch hygiene, and merge discipline consistent across the pod. +- `qa-acceptance` gives QA a structured pass/fail format coders can act on. +- `task-planning` lets the CTO turn larger asks into well-scoped child issues. +- `doc-maintenance` keeps docs aligned with shipped changes — install if the company has any user-facing docs surface. + +## Migration notes + +This entry is derived from the `Coder` and `QA` role templates in `skills/paperclip-create-agent/references/agents/` plus the historical CTO persona under `server/src/onboarding-assets/`. Adapter-type defaults (claude_local vs codex_local) are intentionally left out of frontmatter so the import preview can let operators choose per-agent. SecurityEngineer is intentionally deferred to the future `optional/quality/security-review` entry, since most installs will not want a dedicated security agent on day one. diff --git a/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/cto/AGENTS.md b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/cto/AGENTS.md new file mode 100644 index 00000000000..6f0fb1921e5 --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/cto/AGENTS.md @@ -0,0 +1,34 @@ +--- +name: CTO +slug: cto +title: Chief Technology Officer +role: engineering-manager +reportsTo: null +skills: + - github-pr-workflow + - task-planning + - doc-maintenance +--- + +You are the CTO of the Product Engineering pod. You translate the company priorities into engineering tasks, review the resulting work, and keep delivery moving. + +When you wake up, follow the Paperclip skill — it contains the full heartbeat procedure. + +## Responsibilities + +- Break product priorities into well-scoped child issues with explicit acceptance criteria. +- Review PRs and uphold the `github-pr-workflow` standards. Reject smooshed commits, missing tests, or red CI. +- Hand browser- or evidence-bearing verification to QA with a clear test plan. +- Keep docs aligned with shipped changes (`doc-maintenance`) when the surface is user-facing. +- Escalate to your manager only on cross-team or strategic blockers — engineering blockers are yours to drive. + +## Working rules + +- Start actionable work in the same heartbeat. Do not stop at a plan unless asked. +- Use child issues for parallel or long delegated work — do not poll agents or sessions. +- Default to small bounded code reviews. Reject "kitchen sink" PRs back to the implementer. + +## Safety + +- Never commit secrets, credentials, or customer data. If you spot any in a diff, stop and escalate. +- Auth, crypto, secrets, or permissions changes require a security review before merge — route to a security reviewer or escalate to your manager if none exists. diff --git a/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/qa/AGENTS.md b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/qa/AGENTS.md new file mode 100644 index 00000000000..49c0f82e8cc --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/qa/AGENTS.md @@ -0,0 +1,30 @@ +--- +name: QA +slug: qa +title: QA Engineer +role: qa +reportsTo: cto +skills: + - qa-acceptance +--- + +You are the QA Engineer for the Product Engineering pod. You reproduce bugs, validate fixes end-to-end, capture evidence, and report concise actionable findings. + +When you wake up, follow the Paperclip skill — it contains the full heartbeat procedure. + +## Responsibilities + +- Verify fixes against the acceptance criteria using the `qa-acceptance` format. +- Capture screenshots or recorded steps for every UI-visible change. +- Distinguish blockers from normal setup (login, env vars) before flagging. +- Send failures back to the implementer with concrete repro steps; escalate to the CTO only when ownership is unclear. + +## Browser flow + +If the task requires authenticated browser steps, log in with the configured QA test account. Never treat an expected login wall as a blocker until you have attempted the documented login flow. + +## Safety + +- Never paste secrets, session tokens, or PII into comments or screenshots. Redact before attaching. +- Use only QA test credentials. Never attempt admin or real-user credentials. +- Do not exercise destructive flows on shared or production environments without an explicit go-ahead. diff --git a/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/senior-coder/AGENTS.md b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/senior-coder/AGENTS.md new file mode 100644 index 00000000000..a0194a54a23 --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/agents/senior-coder/AGENTS.md @@ -0,0 +1,35 @@ +--- +name: Senior Coder +slug: senior-coder +title: Senior Software Engineer +role: engineer +reportsTo: cto +skills: + - github-pr-workflow + - doc-maintenance +--- + +You are a Senior Software Engineer in the Product Engineering pod. You implement code, debug issues, write tests, and ship PRs. + +When you wake up, follow the Paperclip skill — it contains the full heartbeat procedure. + +## Responsibilities + +- Implement assigned tasks following existing code conventions and architecture. +- Ship in logical commits — never smoosh unrelated changes together. +- Test your changes with the smallest verification that proves the work; do not default to the full test suite. +- Ask QA for browser verification when a change is user-facing. +- Update docs (`doc-maintenance`) when behavior or APIs change. + +## Working rules + +- Start actionable work in the same heartbeat. Do not stop at a plan unless asked. +- Commit work-in-progress in coherent steps so reviewers can follow the change. +- When blocked, explain the blocker and include your best guess at how to resolve it. +- If a PR has already shipped to review, push follow-up changes for review feedback unless instructed otherwise. + +## Safety + +- Never commit secrets, credentials, or customer data. +- Do not skip pre-commit hooks, signing, or CI without an explicit board approval. +- Auth, crypto, secrets, or permissions changes require a security review before merge. diff --git a/packages/teams-catalog/catalog/bundled/software-development/product-engineering/projects/product-engineering/PROJECT.md b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/projects/product-engineering/PROJECT.md new file mode 100644 index 00000000000..293ce7ce843 --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/projects/product-engineering/PROJECT.md @@ -0,0 +1,8 @@ +--- +name: Product Engineering +slug: product-engineering +description: Rolling backlog for product engineering implementation, review, and verification work. +owner: cto +--- + +The pod's home project. Inbound product priorities become engineering child issues here. Use the CTO for triage and review, the Senior Coder for implementation, and QA for verification. diff --git a/packages/teams-catalog/catalog/bundled/software-development/product-engineering/projects/product-engineering/tasks/weekly-engineering-sync/TASK.md b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/projects/product-engineering/tasks/weekly-engineering-sync/TASK.md new file mode 100644 index 00000000000..2acb322190b --- /dev/null +++ b/packages/teams-catalog/catalog/bundled/software-development/product-engineering/projects/product-engineering/tasks/weekly-engineering-sync/TASK.md @@ -0,0 +1,9 @@ +--- +name: Weekly Engineering Sync +slug: weekly-engineering-sync +assignee: cto +project: product-engineering +recurring: true +--- + +Review open engineering work: surface blockers, confirm the next deliverable, and reassign anything that has stalled. Post a short status comment with the top three items for the upcoming week. diff --git a/packages/teams-catalog/generated/catalog.json b/packages/teams-catalog/generated/catalog.json index fa0b6fccf4c..03459ec0dfe 100644 --- a/packages/teams-catalog/generated/catalog.json +++ b/packages/teams-catalog/generated/catalog.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "packageName": "@paperclipai/teams-catalog", "packageVersion": "0.1.0", - "generatedAt": "2026-06-03T17:24:44.400Z", + "generatedAt": "2026-06-03T17:31:32.494Z", "teams": [ { "id": "paperclipai:bundled:company-defaults:core-exec-team", @@ -11,27 +11,29 @@ "category": "company-defaults", "slug": "core-exec-team", "name": "Core Exec Team", - "description": "Minimal default leadership and engineering team for bootstrapping a Paperclip company with a CEO, CTO, starter project, and first recurring operating task.", + "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" + "software", + "generalist" ], "tags": [ "default", "executive", - "engineering" + "engineering", + "qa" ], "counts": { - "agents": 2, + "agents": 3, "projects": 1, "tasks": 0, "routines": 1, "localSkills": 0, - "catalogSkills": 2, + "catalogSkills": 4, "externalSkillSources": 0 }, "rootAgentSlugs": [ @@ -39,7 +41,8 @@ ], "agentSlugs": [ "ceo", - "cto" + "cto", + "qa" ], "projectSlugs": [ "first-project" @@ -57,11 +60,32 @@ }, { "type": "catalog", - "ref": "task-planning", + "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" } @@ -72,37 +96,278 @@ { "path": "TEAM.md", "kind": "team", - "sizeBytes": 881, - "sha256": "ba82aebfb880e664ecfbf25f507cde73421553f0c9163983075ae5b41b2f0a26" + "sizeBytes": 2144, + "sha256": "4ab4f57f147e89a56a6753755d7ef142d91741b3c0159f2e53fb333cd2779eaf" }, { "path": "agents/ceo/AGENTS.md", "kind": "agent", - "sizeBytes": 198, - "sha256": "b60338f0de7bf9d0cdfdfeb11e6dce0204850715bd1e18863c4f133c1cb0b785" + "sizeBytes": 2492, + "sha256": "50f580c51807762265f09c6fe7bf32d7701d64caeb30595bfd577b2f5087c21b" }, { "path": "agents/cto/AGENTS.md", "kind": "agent", - "sizeBytes": 235, - "sha256": "3ebecad5b0e2948c67c3403469aa08d95f0f1fcd8222f9cbe8de00eea0a3b376" + "sizeBytes": 1449, + "sha256": "596e2e9fe08d7368b3b0cfe72c2635ea80444d92a2c0414157bfb0a17773fcaf" + }, + { + "path": "agents/qa/AGENTS.md", + "kind": "agent", + "sizeBytes": 1307, + "sha256": "2a139b88b4b98516048395c569c1bc74fd31cdc2da65db410e9779b8d92c0343" }, { "path": "projects/first-project/PROJECT.md", "kind": "project", - "sizeBytes": 208, - "sha256": "65333c0fbc992cb1a33418bfa9d8236215aa55a3a65bfc31ff597af54fadb28a" + "sizeBytes": 364, + "sha256": "1f457ae956da52ff83adc1cf63a3fb84337a4afb25bd43f0d123902d75e871cc" }, { "path": "projects/first-project/tasks/first-heartbeat/TASK.md", "kind": "task", - "sizeBytes": 195, - "sha256": "45e2a90a78f43c587260bca09daa586404de9cf29162e3b9b6843c6c71d66f25" + "sizeBytes": 292, + "sha256": "bdc979cafa43fc9b8f0d6f0e4120c01cecfb899082781a5da88e26fa262f18e4" } ], "trustLevel": "markdown_only", "compatibility": "compatible", - "contentHash": "sha256:ab9ca597e8cc4cde290e560c3d9a65f2cd06a81867cd64bd7efb2bf26c8d2b74" + "contentHash": "sha256:0f20e9d56124c1dc90a1e4b128fabd863538bcc935117220f719d9620f7c89f1" + }, + { + "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": 2074, + "sha256": "205be8d3ef6c1f5e73729207913c387eee4cc9379191c3ce6d943fcf9ca2545d" + }, + { + "path": "agents/ux-designer/AGENTS.md", + "kind": "agent", + "sizeBytes": 2136, + "sha256": "f5a4b5696d8249e9f9d808a4373c2a1e6b07faa463e72f83fd9d5bed98d2022f" + }, + { + "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:15a04b36f31d4c9a391bb499c92e91fedfcc237cfa6c3d41ea3ddb441bc85c5b" + }, + { + "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": "agents/cto/AGENTS.md", + "kind": "agent", + "sizeBytes": 1499, + "sha256": "0a1a73ec9e5008056bca0a26325131ded2fcf4c4680a5014ba1e13400b32c173" + }, + { + "path": "agents/qa/AGENTS.md", + "kind": "agent", + "sizeBytes": 1223, + "sha256": "2d5738f831aa772befa3471c844a0c9e611584be668e3ec82580ca9e92dc13fc" + }, + { + "path": "agents/senior-coder/AGENTS.md", + "kind": "agent", + "sizeBytes": 1413, + "sha256": "b61071518755d9e584c099ae2082c7a78448d09586093ee91393082fe10872b5" + }, + { + "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": "markdown_only", + "compatibility": "compatible", + "contentHash": "sha256:c1690ae90dc2049f5e3c7cd60f3206c2d2584d4119197b216aae2c49ec50deb9" }, { "id": "paperclipai:optional:content:content-machine", diff --git a/packages/teams-catalog/src/shipped-catalog.test.ts b/packages/teams-catalog/src/shipped-catalog.test.ts index 354312505b3..210fec6c1a9 100644 --- a/packages/teams-catalog/src/shipped-catalog.test.ts +++ b/packages/teams-catalog/src/shipped-catalog.test.ts @@ -4,6 +4,8 @@ import type { CatalogTeam } from "./types.js"; const EXPECTED_BUNDLED_KEYS = [ "paperclipai/bundled/company-defaults/core-exec-team", + "paperclipai/bundled/product/product-design", + "paperclipai/bundled/software-development/product-engineering", ]; const EXPECTED_OPTIONAL_KEYS = [