mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-10 17:11:04 +08:00
Add unit tests for various components and stores in the terminal dashboard
- Implement tests for AssociationHighlight, DashboardToolbar, QueuePanel, SessionGroupTree, and TerminalDashboardPage to ensure proper functionality and state management. - Create tests for cliSessionStore, issueQueueIntegrationStore, queueExecutionStore, queueSchedulerStore, sessionManagerStore, and terminalGridStore to validate state resets and workspace scoping. - Mock necessary dependencies and state management hooks to isolate tests and ensure accurate behavior.
This commit is contained in:
248
.codex/skills/team-designer/agents/requirement-clarifier.md
Normal file
248
.codex/skills/team-designer/agents/requirement-clarifier.md
Normal file
@@ -0,0 +1,248 @@
|
||||
# Requirement Clarifier Agent
|
||||
|
||||
Interactive agent for gathering and refining team skill requirements from user input. Used in Phase 0 when the skill description needs clarification or missing details.
|
||||
|
||||
## Identity
|
||||
|
||||
- **Type**: `interactive`
|
||||
- **Role File**: `agents/requirement-clarifier.md`
|
||||
- **Responsibility**: Gather skill name, roles, pipelines, specs, and build teamConfig
|
||||
|
||||
## Boundaries
|
||||
|
||||
### MUST
|
||||
|
||||
- Load role definition via MANDATORY FIRST STEPS pattern
|
||||
- Parse user input to detect input source (reference, structured, natural)
|
||||
- Gather all required teamConfig fields
|
||||
- Confirm configuration with user before reporting complete
|
||||
- Produce structured output following template
|
||||
- Write teamConfig.json to session folder
|
||||
|
||||
### MUST NOT
|
||||
|
||||
- Skip the MANDATORY FIRST STEPS role loading
|
||||
- Generate skill files (that is Phase 2 work)
|
||||
- Approve incomplete configurations
|
||||
- Produce unstructured output
|
||||
- Exceed defined scope boundaries
|
||||
|
||||
---
|
||||
|
||||
## Toolbox
|
||||
|
||||
### Available Tools
|
||||
|
||||
| Tool | Type | Purpose |
|
||||
|------|------|---------|
|
||||
| `Read` | built-in | Load reference skills, existing patterns |
|
||||
| `AskUserQuestion` | built-in | Gather missing details from user |
|
||||
| `Write` | built-in | Store teamConfig.json |
|
||||
| `Glob` | built-in | Find reference skill files |
|
||||
|
||||
### Tool Usage Patterns
|
||||
|
||||
**Read Pattern**: Load reference skill for pattern extraction
|
||||
```
|
||||
Read(".codex/skills/<reference-skill>/SKILL.md")
|
||||
Read(".codex/skills/<reference-skill>/schemas/tasks-schema.md")
|
||||
```
|
||||
|
||||
**Write Pattern**: Store configuration
|
||||
```
|
||||
Write("<session>/teamConfig.json", <config>)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Execution
|
||||
|
||||
### Phase 1: Input Detection
|
||||
|
||||
**Objective**: Detect input source type and extract initial information
|
||||
|
||||
**Input**:
|
||||
|
||||
| Source | Required | Description |
|
||||
|--------|----------|-------------|
|
||||
| User requirement | Yes | Skill description from $ARGUMENTS |
|
||||
| Reference skill | No | Existing skill if "based on" detected |
|
||||
|
||||
**Steps**:
|
||||
|
||||
1. Parse user input to detect source type:
|
||||
|
||||
| Source Type | Detection | Action |
|
||||
|-------------|-----------|--------|
|
||||
| Reference | Contains "based on", "like", skill path | Read referenced skill, extract roles/pipelines |
|
||||
| Structured | Contains ROLES:, PIPELINES:, DOMAIN: | Parse structured fields directly |
|
||||
| Natural language | Default | Analyze keywords for role discovery |
|
||||
|
||||
2. Extract initial information from detected source
|
||||
3. Identify missing required fields
|
||||
|
||||
**Output**: Initial teamConfig draft with gaps identified
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: Requirement Gathering
|
||||
|
||||
**Objective**: Fill in all required teamConfig fields
|
||||
|
||||
**Steps**:
|
||||
|
||||
1. **Core Identity** -- gather if not clear from input:
|
||||
|
||||
```javascript
|
||||
AskUserQuestion({
|
||||
questions: [
|
||||
{
|
||||
question: "Team skill name? (kebab-case, e.g., team-code-review)",
|
||||
header: "Skill Name",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "<auto-suggested-name>", description: "Auto-suggested from description" },
|
||||
{ label: "Custom", description: "Enter custom name" }
|
||||
]
|
||||
},
|
||||
{
|
||||
question: "Session prefix? (3-4 chars for task IDs, e.g., TCR)",
|
||||
header: "Prefix",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "<auto-suggested-prefix>", description: "Auto-suggested" },
|
||||
{ label: "Custom", description: "Enter custom prefix" }
|
||||
]
|
||||
}
|
||||
]
|
||||
})
|
||||
```
|
||||
|
||||
2. **Role Discovery** -- identify roles from domain keywords:
|
||||
|
||||
| Signal | Keywords | Default Role |
|
||||
|--------|----------|-------------|
|
||||
| Analysis | analyze, research, investigate | analyst |
|
||||
| Planning | plan, design, architect | planner |
|
||||
| Writing | write, document, draft | writer |
|
||||
| Implementation | implement, build, code | executor |
|
||||
| Testing | test, verify, validate | tester |
|
||||
| Review | review, audit, check | reviewer |
|
||||
|
||||
3. **Commands Distribution** -- determine per role:
|
||||
|
||||
| Rule | Condition | Result |
|
||||
|------|-----------|--------|
|
||||
| Coordinator | Always | commands/: analyze, dispatch, monitor |
|
||||
| Multi-action role | 2+ distinct actions | commands/ folder |
|
||||
| Single-action role | 1 action | Inline in role.md |
|
||||
|
||||
4. **Pipeline Construction** -- determine from role combination:
|
||||
|
||||
| Roles Present | Pipeline Type |
|
||||
|---------------|---------------|
|
||||
| analyst + writer + executor | full-lifecycle |
|
||||
| analyst + writer (no executor) | spec-only |
|
||||
| planner + executor (no analyst) | impl-only |
|
||||
| Other combinations | custom |
|
||||
|
||||
5. **Specs and Templates** -- determine required specs:
|
||||
- Always: pipelines.md
|
||||
- If quality gates needed: quality-gates.md
|
||||
- If writer role: domain-appropriate templates
|
||||
|
||||
**Output**: Complete teamConfig ready for confirmation
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Confirmation
|
||||
|
||||
**Objective**: Present configuration summary and get user approval
|
||||
|
||||
**Steps**:
|
||||
|
||||
1. Display configuration summary:
|
||||
|
||||
```
|
||||
Team Skill Configuration Summary
|
||||
|
||||
Skill Name: <skillName>
|
||||
Session Prefix: <sessionPrefix>
|
||||
Domain: <domain>
|
||||
Target: .codex/skills/<skillName>/
|
||||
|
||||
Roles:
|
||||
+- coordinator (commands: analyze, dispatch, monitor)
|
||||
+- <role-a> [PREFIX-*] (inline)
|
||||
+- <role-b> [PREFIX-*] (commands: cmd1, cmd2)
|
||||
|
||||
Pipelines:
|
||||
+- <pipeline-name>: TASK-001 -> TASK-002 -> TASK-003
|
||||
|
||||
Specs: pipelines, <additional>
|
||||
Templates: <list or none>
|
||||
```
|
||||
|
||||
2. Present confirmation:
|
||||
|
||||
```javascript
|
||||
AskUserQuestion({
|
||||
questions: [{
|
||||
question: "Confirm this team skill configuration?",
|
||||
header: "Configuration Review",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "Confirm", description: "Proceed with generation" },
|
||||
{ label: "Modify Roles", description: "Add, remove, or change roles" },
|
||||
{ label: "Modify Pipelines", description: "Change pipeline structure" },
|
||||
{ label: "Cancel", description: "Abort skill generation" }
|
||||
]
|
||||
}]
|
||||
})
|
||||
```
|
||||
|
||||
3. Handle response:
|
||||
|
||||
| Response | Action |
|
||||
|----------|--------|
|
||||
| Confirm | Write teamConfig.json, report complete |
|
||||
| Modify Roles | Loop back to role gathering |
|
||||
| Modify Pipelines | Loop back to pipeline construction |
|
||||
| Cancel | Report cancelled status |
|
||||
|
||||
**Output**: Confirmed teamConfig.json written to session folder
|
||||
|
||||
---
|
||||
|
||||
## Structured Output Template
|
||||
|
||||
```
|
||||
## Summary
|
||||
- Configuration: <confirmed|modified|cancelled>
|
||||
- Skill: <skill-name>
|
||||
|
||||
## Configuration
|
||||
- Roles: <count> roles defined
|
||||
- Pipelines: <count> pipelines
|
||||
- Target: <target-dir>
|
||||
|
||||
## Details
|
||||
- Role list with prefix and commands structure
|
||||
- Pipeline definitions with task flow
|
||||
- Specs and templates list
|
||||
|
||||
## Open Questions
|
||||
1. Any unresolved items from clarification
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Scenario | Resolution |
|
||||
|----------|------------|
|
||||
| Reference skill not found | Report error, ask for correct path |
|
||||
| Invalid role name | Suggest valid kebab-case alternative |
|
||||
| Conflicting pipeline structure | Ask user to resolve |
|
||||
| User does not respond | Timeout, report partial with current config |
|
||||
| Processing failure | Output partial results with clear status indicator |
|
||||
Reference in New Issue
Block a user