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:
catlog22
2026-03-24 15:19:18 +08:00
parent ccb5f1e615
commit fe7945eaa2
72 changed files with 1020 additions and 901 deletions

View File

@@ -2,7 +2,7 @@
name: team-ultra-analyze
description: Deep collaborative analysis pipeline. Multi-perspective exploration, deep analysis, user-driven discussion loops, and cross-perspective synthesis. Supports Quick, Standard, and Deep pipeline modes.
argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] [--mode quick|standard|deep] \"analysis topic\""
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
@@ -282,16 +282,15 @@ If not AUTO_YES, present user with configuration for confirmation:
```javascript
if (!AUTO_YES) {
const answer = AskUserQuestion({
const answer = request_user_input({
questions: [{
question: `Topic: "${topic}"\nPipeline: ${pipeline_mode}\nPerspectives: ${perspectives.join(', ')}\nDimensions: ${dimensions.join(', ')}\n\nApprove?`,
header: "Analysis Configuration",
multiSelect: false,
question: `Topic: "${topic}"Pipeline: ${pipeline_mode}. Approve or override?`,
header: "Config",
id: "analysis_config",
options: [
{ label: "Approve", description: `Use ${pipeline_mode} mode with ${perspectives.length} perspectives` },
{ label: "Quick", description: "1 explorer 1 analyst synthesizer (fast)" },
{ label: "Standard", description: "N explorers N analysts discussion synthesizer" },
{ label: "Deep", description: "N explorers → N analysts → discussion loop (up to 5 rounds) → synthesizer" }
{ label: "Approve (Recommended)", description: `Use ${pipeline_mode} mode with ${perspectives.length} perspectives` },
{ label: "Quick", description: "1 explorer -> 1 analyst -> synthesizer (fast)" },
{ label: "Standard/Deep", description: "N explorers -> N analysts -> discussion -> synthesizer" }
]
}]
})
@@ -661,13 +660,13 @@ If not AUTO_YES, offer completion options:
```javascript
if (!AUTO_YES) {
const answer = AskUserQuestion({
const answer = request_user_input({
questions: [{
question: "Ultra-Analyze pipeline complete. What would you like to do?",
header: "Completion",
multiSelect: false,
question: "Ultra-Analyze 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" },
{ label: "Export Results", description: "Export deliverables to specified location" }
]

View File

@@ -13,7 +13,7 @@ Collect user feedback after a discussion round and determine next action for the
- Load role definition via MANDATORY FIRST STEPS pattern
- Present discussion results to the user clearly
- Collect explicit user feedback via AskUserQuestion
- Collect explicit user feedback via request_user_input
- Return structured decision for orchestrator to act on
- Respect max discussion round limits
@@ -33,7 +33,7 @@ Collect user feedback after a discussion round and determine next action for the
| Tool | Type | Purpose |
|------|------|---------|
| `Read` | builtin | Load discussion results and session state |
| `AskUserQuestion` | builtin | Collect user feedback on discussion |
| `request_user_input` | builtin | Collect user feedback on discussion |
---
@@ -75,16 +75,16 @@ Collect user feedback after a discussion round and determine next action for the
- Top open questions
- Round progress (current/max)
2. Present options via AskUserQuestion:
2. Present options via request_user_input:
```
AskUserQuestion({
request_user_input({
questions: [{
question: "Discussion round <N>/<max> complete.\n\nThemes: <themes>\nConflicts: <conflicts>\nOpen Questions: <questions>\n\nWhat next?",
header: "Discussion Feedback",
multiSelect: false,
header: "Feedback",
id: "discussion_next",
options: [
{ label: "Continue deeper", description: "Current direction is good, investigate open questions deeper" },
{ label: "Continue deeper (Recommended)", description: "Current direction is good, investigate open questions deeper" },
{ label: "Adjust direction", description: "Shift analysis focus to a different area" },
{ label: "Done", description: "Sufficient depth reached, proceed to final synthesis" }
]
@@ -93,7 +93,7 @@ AskUserQuestion({
```
3. If user chooses "Adjust direction":
- Follow up with another AskUserQuestion asking for the new focus area
- Follow up with another request_user_input asking for the new focus area
- Capture the adjusted focus text
**Output**: User decision and optional adjusted focus