mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-05 01:50:27 +08:00
refactor(issue): unify solution ID format to SOL-{issue-id}-{seq}
- Update solution-schema.json pattern to support new format - Add Solution ID Format specification to plan.md - Fix JSON parsing with extractJsonFromMarkdown + try-catch - Update all examples in agent and prompt files: - issue-plan-agent.md - issue-queue-agent.md - issue-execute.md - issue-queue.md - queue.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -241,13 +241,13 @@ OUTPUT FORMAT:
|
||||
"conflicts": [{
|
||||
"type": "file_conflict|api_conflict|data_conflict|dependency_conflict|architecture_conflict",
|
||||
"severity": "high|medium|low",
|
||||
"solutions_affected": ["SOL-001", "SOL-002"],
|
||||
"solutions_affected": ["SOL-GH-123-1", "SOL-GH-123-2"],
|
||||
"summary": "brief description",
|
||||
"resolution_strategy": "sequential|parallel_with_coordination|refactor_merge",
|
||||
"recommended_order": ["SOL-001", "SOL-002"],
|
||||
"recommended_order": ["SOL-GH-123-1", "SOL-GH-123-2"],
|
||||
"rationale": "why this order"
|
||||
}],
|
||||
"safe_parallel": [["SOL-003", "SOL-004"]]
|
||||
"safe_parallel": [["SOL-GH-124-1", "SOL-GH-125-1"]]
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -287,15 +287,15 @@ Each line is a solution JSON containing tasks. Schema: `cat .claude/workflows/cl
|
||||
```json
|
||||
{
|
||||
"bound": [{ "issue_id": "...", "solution_id": "...", "task_count": N }],
|
||||
"pending_selection": [{ "issue_id": "...", "solutions": [{ "id": "SOL-001", "description": "...", "task_count": N }] }],
|
||||
"pending_selection": [{ "issue_id": "GH-123", "solutions": [{ "id": "SOL-GH-123-1", "description": "...", "task_count": N }] }],
|
||||
"conflicts": [{
|
||||
"type": "file_conflict|api_conflict|data_conflict|dependency_conflict|architecture_conflict",
|
||||
"severity": "high|medium|low",
|
||||
"solutions_affected": ["SOL-001", "SOL-002"],
|
||||
"solutions_affected": ["SOL-GH-123-1", "SOL-GH-123-2"],
|
||||
"summary": "brief description",
|
||||
"resolution_strategy": "sequential|parallel_with_coordination",
|
||||
"recommended_order": ["SOL-001", "SOL-002"],
|
||||
"recommended_resolution": "Use sequential execution: SOL-001 first",
|
||||
"recommended_order": ["SOL-GH-123-1", "SOL-GH-123-2"],
|
||||
"recommended_resolution": "Use sequential execution: SOL-GH-123-1 first",
|
||||
"resolution_options": [{ "strategy": "...", "rationale": "..." }]
|
||||
}]
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ color: orange
|
||||
{
|
||||
solutions: [{
|
||||
issue_id: string, // e.g., "ISS-20251227-001"
|
||||
solution_id: string, // e.g., "SOL-20251227-001"
|
||||
solution_id: string, // e.g., "SOL-ISS-20251227-001-1"
|
||||
task_count: number, // Number of tasks in this solution
|
||||
files_touched: string[], // All files modified by this solution
|
||||
priority: string // Issue priority: critical | high | medium | low
|
||||
@@ -247,7 +247,7 @@ Queue Item ID format: `S-N` (S-1, S-2, S-3, ...)
|
||||
{
|
||||
"item_id": "S-1",
|
||||
"issue_id": "ISS-20251227-003",
|
||||
"solution_id": "SOL-20251227-003",
|
||||
"solution_id": "SOL-ISS-20251227-003-1",
|
||||
"status": "pending",
|
||||
"execution_order": 1,
|
||||
"execution_group": "P1",
|
||||
|
||||
@@ -214,6 +214,8 @@ ${issueList}
|
||||
### Generate Files
|
||||
\`.workflow/issues/solutions/{issue-id}.jsonl\` - Solution with tasks (schema: cat .claude/workflows/cli-templates/schemas/solution-schema.json)
|
||||
|
||||
**Solution ID Format**: \`SOL-{issue-id}-{seq}\` (e.g., \`SOL-GH-123-1\`, \`SOL-ISS-20251229-1\`)
|
||||
|
||||
### Binding Rules
|
||||
- **Single solution**: Auto-bind via \`ccw issue bind <id> --solution <file>\`
|
||||
- **Multiple solutions**: Register only, return for user selection
|
||||
@@ -254,7 +256,17 @@ for (let i = 0; i < agentTasks.length; i += MAX_PARALLEL) {
|
||||
// Collect results from this chunk
|
||||
for (const { taskId, batchIndex } of taskIds) {
|
||||
const result = TaskOutput(task_id=taskId, block=true);
|
||||
const summary = JSON.parse(result);
|
||||
|
||||
// Extract JSON from potential markdown code blocks (agent may wrap in ```json...```)
|
||||
const jsonText = extractJsonFromMarkdown(result);
|
||||
let summary;
|
||||
try {
|
||||
summary = JSON.parse(jsonText);
|
||||
} catch (e) {
|
||||
console.log(`⚠ Batch ${batchIndex + 1}: Failed to parse agent result, skipping`);
|
||||
updateTodo(`Plan batch ${batchIndex + 1}`, 'completed');
|
||||
continue;
|
||||
}
|
||||
agentResults.push(summary); // Store for Phase 3 conflict aggregation
|
||||
|
||||
for (const item of summary.bound || []) {
|
||||
|
||||
@@ -89,7 +89,7 @@ Queue formation command using **issue-queue-agent** that analyzes all bound solu
|
||||
{
|
||||
"item_id": "S-1",
|
||||
"issue_id": "ISS-20251227-003",
|
||||
"solution_id": "SOL-20251227-003",
|
||||
"solution_id": "SOL-ISS-20251227-003-1",
|
||||
"status": "pending",
|
||||
"execution_order": 1,
|
||||
"execution_group": "P1",
|
||||
@@ -102,7 +102,7 @@ Queue formation command using **issue-queue-agent** that analyzes all bound solu
|
||||
{
|
||||
"item_id": "S-2",
|
||||
"issue_id": "ISS-20251227-001",
|
||||
"solution_id": "SOL-20251227-001",
|
||||
"solution_id": "SOL-ISS-20251227-001-1",
|
||||
"status": "pending",
|
||||
"execution_order": 2,
|
||||
"execution_group": "P1",
|
||||
@@ -115,7 +115,7 @@ Queue formation command using **issue-queue-agent** that analyzes all bound solu
|
||||
{
|
||||
"item_id": "S-3",
|
||||
"issue_id": "ISS-20251227-002",
|
||||
"solution_id": "SOL-20251227-002",
|
||||
"solution_id": "SOL-ISS-20251227-002-1",
|
||||
"status": "pending",
|
||||
"execution_order": 3,
|
||||
"execution_group": "S2",
|
||||
|
||||
@@ -7,8 +7,9 @@
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Unique solution identifier",
|
||||
"pattern": "^SOL-[0-9]+$"
|
||||
"description": "Unique solution identifier: SOL-{issue-id}-{seq}",
|
||||
"pattern": "^SOL-.+-[0-9]+$",
|
||||
"examples": ["SOL-GH-123-1", "SOL-ISS-20251229-1"]
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
|
||||
Reference in New Issue
Block a user