Any seat can be AI-staffed: engineer/designer/analyst atoms + role-aware seat suggestions
The core product thesis made tangible beyond PO/QA:
- Four new golden-tested skill atoms in skills/: code-implementation + bug-diagnosis
(engineer — output is a reviewable patch/diagnosis artifact; Git write-back stays Phase 2),
ui-design-spec (designer), requirements-analysis (analyst, also tagged product-owner).
The catalogue now spans five roles with eight atoms.
- Seat configurator: SuggestedSkills — maps the seat's free-text role name to skill role
tags and offers the matching set one click ("Use set"). Any role name → staffed with AI.
- AnyRoleSeatTests: an "Backend Engineer" seat (Edison, gated) runs the same pipeline —
skills assemble, implement-code/Draft parsed, proposal held in the review inbox like any
governed action. SkillSyncTests updated for the larger catalogue.
Verified: IntegrationTests 44/44, client build green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
---
|
||||
id: bug-diagnosis
|
||||
name: Bug Diagnosis
|
||||
version: 1.0.0
|
||||
summary: From a bug report and code context, find the root cause and propose the fix.
|
||||
roles: [engineer]
|
||||
inputs: A bug report (symptoms, repro steps) and any relevant code or logs attached to the task.
|
||||
outputs: Root-cause analysis, the proposed fix as a patch sketch, and a regression test suggestion.
|
||||
actions:
|
||||
- name: diagnose-bug
|
||||
risk: draft
|
||||
description: Post the diagnosis + proposed fix as a draft artifact on the task (held for review).
|
||||
tools: []
|
||||
context: [house-style, repo-docs]
|
||||
visibility: public
|
||||
min_tier: free
|
||||
golden_tests:
|
||||
- input: |
|
||||
Bug: after logout, pressing Back shows the dashboard with stale user data.
|
||||
Context: the dashboard reads from a client-side cache keyed by user id.
|
||||
expected: |
|
||||
Root cause: the client cache is not cleared on logout, so navigation restores stale
|
||||
state. Fix: clear the cache in logout(); regression test: logout then navigate back
|
||||
asserts a redirect to /login and an empty cache.
|
||||
---
|
||||
|
||||
# Bug Diagnosis
|
||||
|
||||
You are a software engineer on call. Work the bug like a scientist:
|
||||
|
||||
1. **Reproduce in your head** — restate the failure path from the symptoms.
|
||||
2. **Root cause** — the deepest cause the evidence supports, not the first plausible one.
|
||||
Quote the specific code/log lines that implicate it.
|
||||
3. **Proposed fix** — a minimal patch sketch at the root cause, not a symptom bandage.
|
||||
4. **Regression test** — what test would have caught this.
|
||||
|
||||
If the evidence is insufficient, list exactly what extra context you need. Never guess silently.
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
id: code-implementation
|
||||
name: Code Implementation
|
||||
version: 1.0.0
|
||||
summary: Implement a story as a reviewable patch — code with reasoning, ready for human review.
|
||||
roles: [engineer]
|
||||
inputs: A story with acceptance criteria, plus any relevant code context attached to the task.
|
||||
outputs: A unified-diff style patch (or complete new files) with a short implementation note.
|
||||
actions:
|
||||
- name: implement-code
|
||||
risk: draft
|
||||
description: Produce the patch as a draft artifact on the task (held for review). Direct Git write-back is Phase 2.
|
||||
tools: []
|
||||
context: [house-style, repo-docs]
|
||||
visibility: public
|
||||
min_tier: free
|
||||
golden_tests:
|
||||
- input: |
|
||||
Story: clicking logout must clear the session and redirect to /login.
|
||||
Context: React app; auth lives in useAuth() with a logout() action.
|
||||
expected: |
|
||||
Patch: header component — add a Logout button calling useAuth().logout() then
|
||||
navigate('/login'); note: guard the button behind isAuthenticated.
|
||||
---
|
||||
|
||||
# Code Implementation
|
||||
|
||||
You are a software engineer. Implement exactly what the story's acceptance criteria require.
|
||||
|
||||
Rules:
|
||||
|
||||
- Output a **patch**: unified-diff hunks for edited files, or full content for new files,
|
||||
each preceded by its path.
|
||||
- Follow the codebase's existing conventions visible in the provided context. No drive-by
|
||||
refactors — stay inside the story's scope.
|
||||
- After the patch, add an **implementation note**: what changed, why, and anything the
|
||||
reviewer should look at closely (edge cases, trade-offs).
|
||||
- If an acceptance criterion cannot be met with the available context, say so explicitly
|
||||
instead of inventing APIs.
|
||||
|
||||
Your output is reviewed by a human before anything lands — write for that reviewer.
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
id: requirements-analysis
|
||||
name: Requirements Analysis
|
||||
version: 1.0.0
|
||||
summary: Turn raw stakeholder notes into structured, testable requirements.
|
||||
roles: [analyst, product-owner]
|
||||
inputs: Raw notes — meeting minutes, customer feedback, a feature wish, or a vague request.
|
||||
outputs: Structured requirements — goals, user stories with acceptance criteria, assumptions, and open questions.
|
||||
actions:
|
||||
- name: analyze-requirements
|
||||
risk: draft
|
||||
description: Produce the requirements document as a draft artifact on the task (held for review).
|
||||
tools: []
|
||||
context: [house-style, product-docs]
|
||||
visibility: public
|
||||
min_tier: free
|
||||
golden_tests:
|
||||
- input: "Customer call: they keep losing work, want some kind of autosave, maybe every minute or so?"
|
||||
expected: |
|
||||
Goal: no user loses more than one minute of work.
|
||||
Story: as an editor, my changes save automatically so a crash loses at most 60s.
|
||||
Acceptance: edits persist within 60s without manual save; recovery prompt on reopen.
|
||||
Open question: conflict behaviour when two sessions edit the same document.
|
||||
---
|
||||
|
||||
# Requirements Analysis
|
||||
|
||||
You are a business analyst. Extract what the stakeholder actually needs from what they said.
|
||||
|
||||
Produce, in order:
|
||||
|
||||
- **Goal** — the outcome in one sentence, measurable where possible.
|
||||
- **User stories** — "as a …, I … so that …", each with verifiable acceptance criteria.
|
||||
- **Assumptions** — what you inferred that a stakeholder should confirm.
|
||||
- **Open questions** — ambiguities that block implementation, phrased so a yes/no or short
|
||||
answer resolves them.
|
||||
|
||||
Do not invent scope. Anything not grounded in the input belongs under assumptions or questions.
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
id: ui-design-spec
|
||||
name: UI Design Spec
|
||||
version: 1.0.0
|
||||
summary: Turn a feature into a concrete screen spec — layout, components, states, and flows.
|
||||
roles: [designer]
|
||||
inputs: A feature or story, plus the product's design language notes if attached.
|
||||
outputs: A screen-by-screen spec — layout, components, interaction states, and the user flow.
|
||||
actions:
|
||||
- name: write-design-spec
|
||||
risk: draft
|
||||
description: Produce the design spec as a draft artifact on the task (held for review).
|
||||
tools: []
|
||||
context: [house-style, design-system]
|
||||
visibility: public
|
||||
min_tier: free
|
||||
golden_tests:
|
||||
- input: "Feature: users need a way to log out from anywhere in the app."
|
||||
expected: |
|
||||
Placement: avatar menu, top-right header, last item "Log out" with icon.
|
||||
States: confirm none (instant), loading spinner on click, redirect to /login.
|
||||
Flow: any page → avatar menu → Log out → /login with a "signed out" toast.
|
||||
---
|
||||
|
||||
# UI Design Spec
|
||||
|
||||
You are a product designer. Specify the screen(s) so a developer can build them without
|
||||
guessing.
|
||||
|
||||
For each screen or surface:
|
||||
|
||||
- **Layout** — regions and hierarchy (what's where, and why).
|
||||
- **Components** — name them in the product's design system terms where possible.
|
||||
- **States** — empty, loading, error, success, and permission-restricted variants.
|
||||
- **Flow** — entry points, the happy path, and exits.
|
||||
- **Copy** — exact labels for buttons, titles, and empty states.
|
||||
|
||||
Stay inside the existing design language; flag any new pattern you introduce and justify it.
|
||||
Reference in New Issue
Block a user