mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-25 19:48:33 +08:00
feat: standardize request_user_input schema across all codex skills and add config reminder
- Update all 68 .codex/skills files to use correct request_user_input schema (header, id, question, options with label/description) - Remove deprecated multiSelect, type, value, prompt fields - Add mandatory confirmation gates to planning-only skills - Add Codex config.toml reminder to ccw install CLI - Add Codex configuration section to README.md and README_CN.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
name: team-lifecycle-v4
|
||||
description: Full lifecycle team skill — specification, planning, implementation, testing, and review. Supports spec-only, impl-only, full-lifecycle, and frontend pipelines with optional supervisor checkpoints.
|
||||
argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"task description\""
|
||||
allowed-tools: spawn_agents_on_csv, spawn_agent, wait, send_input, close_agent, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
||||
allowed-tools: spawn_agents_on_csv, spawn_agent, wait, send_input, close_agent, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
||||
---
|
||||
|
||||
## Auto Mode
|
||||
@@ -294,16 +294,15 @@ If not AUTO_YES, confirm pipeline selection:
|
||||
|
||||
```javascript
|
||||
if (!AUTO_YES) {
|
||||
const answer = AskUserQuestion({
|
||||
const answer = request_user_input({
|
||||
questions: [{
|
||||
question: `Requirement: "${requirement}"\nDetected pipeline: ${pipeline_type} (complexity: ${complexity.level})\nRoles: ${capabilities.map(c => c.name).join(', ')}\n\nApprove?`,
|
||||
header: "Pipeline Selection",
|
||||
multiSelect: false,
|
||||
question: `Requirement: "${requirement}" — Detected: ${pipeline_type}. Approve or override?`,
|
||||
header: "Pipeline",
|
||||
id: "pipeline_select",
|
||||
options: [
|
||||
{ label: "Approve", description: `Use ${pipeline_type} pipeline` },
|
||||
{ label: "Approve (Recommended)", description: `Use ${pipeline_type} pipeline (complexity: ${complexity.level})` },
|
||||
{ label: "Spec Only", description: "Research -> draft specs -> quality gate" },
|
||||
{ label: "Impl Only", description: "Plan -> implement -> test + review" },
|
||||
{ label: "Full Lifecycle", description: "Spec pipeline + implementation pipeline" }
|
||||
{ label: "Impl/Full", description: "Implementation pipeline or full lifecycle" }
|
||||
]
|
||||
}]
|
||||
})
|
||||
@@ -522,10 +521,11 @@ Write report to ${sessionFolder}/artifacts/${task.id}-report.md.
|
||||
// Handle verdict
|
||||
if (parsedVerdict === 'block') {
|
||||
if (!AUTO_YES) {
|
||||
const answer = AskUserQuestion({
|
||||
const answer = request_user_input({
|
||||
questions: [{
|
||||
question: `Checkpoint ${task.id} BLOCKED (score: ${parsedScore}). What to do?`,
|
||||
header: "Checkpoint Blocked",
|
||||
question: `Checkpoint ${task.id} BLOCKED (score: ${parsedScore}). Choose action.`,
|
||||
header: "Blocked",
|
||||
id: "blocked_action",
|
||||
options: [
|
||||
{ label: "Override", description: "Proceed despite block" },
|
||||
{ label: "Revise upstream", description: "Go back and fix issues" },
|
||||
@@ -647,13 +647,13 @@ If not AUTO_YES, offer completion action:
|
||||
|
||||
```javascript
|
||||
if (!AUTO_YES) {
|
||||
AskUserQuestion({
|
||||
request_user_input({
|
||||
questions: [{
|
||||
question: "Pipeline complete. What would you like to do?",
|
||||
header: "Completion",
|
||||
multiSelect: false,
|
||||
question: "Pipeline complete. Choose next action.",
|
||||
header: "Done",
|
||||
id: "completion",
|
||||
options: [
|
||||
{ label: "Archive & Clean (Recommended)", description: "Archive session" },
|
||||
{ label: "Archive (Recommended)", description: "Archive session" },
|
||||
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
||||
{ label: "Export Results", description: "Export deliverables to target directory" }
|
||||
]
|
||||
@@ -713,7 +713,7 @@ All agents across all waves share `discoveries.ndjson`. This enables cross-role
|
||||
| CSV agent failed | Mark as failed, skip dependent tasks in later waves |
|
||||
| Interactive agent timeout | Urge convergence via send_input, then close if still timed out |
|
||||
| Interactive agent failed | Mark as failed, skip dependents |
|
||||
| Supervisor checkpoint blocked | AskUserQuestion: Override / Revise / Abort |
|
||||
| Supervisor checkpoint blocked | request_user_input: Override / Revise / Abort |
|
||||
| Quality gate failed (< 60%) | Return to writer for rework |
|
||||
| All agents in wave failed | Log error, offer retry or abort |
|
||||
| CSV parse error | Validate CSV format before execution, show line number |
|
||||
|
||||
@@ -36,7 +36,7 @@ Evaluate quality metrics from the QUALITY-001 task, apply threshold checks, and
|
||||
|------|------|---------|
|
||||
| `Read` | builtin | Load quality results and task artifacts |
|
||||
| `Bash` | builtin | Run verification commands (build check, test rerun) |
|
||||
| `AskUserQuestion` | builtin | Present quality summary and obtain user verdict |
|
||||
| `request_user_input` | builtin | Present quality summary and obtain user verdict |
|
||||
|
||||
---
|
||||
|
||||
@@ -108,7 +108,7 @@ Evaluate quality metrics from the QUALITY-001 task, apply threshold checks, and
|
||||
- Per-metric breakdown with actual values vs thresholds
|
||||
- List of unresolved findings (if any) with severity
|
||||
- Recommendation (approve / reject with reasons)
|
||||
2. Present to user via AskUserQuestion:
|
||||
2. Present to user via request_user_input:
|
||||
- If gate status is PASS: recommend approval
|
||||
- If gate status is CONDITIONAL: present risks, ask user to decide
|
||||
- If gate status is FAIL: recommend rejection with specific failures listed
|
||||
|
||||
@@ -38,7 +38,7 @@ Parse user task input, detect pipeline signals, select execution mode, and produ
|
||||
| `Glob` | builtin | Find existing artifacts in workspace |
|
||||
| `Grep` | builtin | Search for keywords and patterns in artifacts |
|
||||
| `Bash` | builtin | Run utility commands |
|
||||
| `AskUserQuestion` | builtin | Clarify ambiguous requirements with user |
|
||||
| `request_user_input` | builtin | Clarify ambiguous requirements with user |
|
||||
|
||||
---
|
||||
|
||||
@@ -90,7 +90,7 @@ Parse user task input, detect pipeline signals, select execution mode, and produ
|
||||
| impl keywords + existing specs | `impl-only` |
|
||||
| full-lifecycle keywords OR (impl keywords + no existing specs) | `full-lifecycle` |
|
||||
| frontend keywords | `frontend` |
|
||||
| Ambiguous / conflicting signals | Ask user via AskUserQuestion |
|
||||
| Ambiguous / conflicting signals | Ask user via request_user_input |
|
||||
|
||||
2. If ambiguous, present options to user:
|
||||
- Describe detected signals
|
||||
@@ -155,7 +155,7 @@ Parse user task input, detect pipeline signals, select execution mode, and produ
|
||||
|
||||
| Scenario | Resolution |
|
||||
|----------|------------|
|
||||
| Requirement text is empty or too vague | Ask user for clarification via AskUserQuestion |
|
||||
| Requirement text is empty or too vague | Ask user for clarification via request_user_input |
|
||||
| Conflicting signals (e.g., "spec only" + "implement now") | Present conflict to user, ask for explicit choice |
|
||||
| Existing artifacts are corrupted or incomplete | Log warning, treat as no-artifacts (full-lifecycle) |
|
||||
| Workspace not writable | Report error, output JSON to stdout instead |
|
||||
|
||||
Reference in New Issue
Block a user