claude-code-workflow 6.3.22 → 6.3.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -212,14 +212,14 @@ Write solution JSON to JSONL file (one line per solution):
212
212
 
213
213
  **File Format** (JSONL - each line is a complete solution):
214
214
  ```
215
- {"id":"SOL-GH-123-1","description":"...","approach":"...","analysis":{...},"score":0.85,"tasks":[...]}
216
- {"id":"SOL-GH-123-2","description":"...","approach":"...","analysis":{...},"score":0.75,"tasks":[...]}
215
+ {"id":"SOL-GH-123-a7x9","description":"...","approach":"...","analysis":{...},"score":0.85,"tasks":[...]}
216
+ {"id":"SOL-GH-123-b2k4","description":"...","approach":"...","analysis":{...},"score":0.75,"tasks":[...]}
217
217
  ```
218
218
 
219
219
  **Solution Schema** (must match CLI `Solution` interface):
220
220
  ```typescript
221
221
  {
222
- id: string; // Format: SOL-{issue-id}-{N}
222
+ id: string; // Format: SOL-{issue-id}-{uid}
223
223
  description?: string;
224
224
  approach?: string;
225
225
  tasks: SolutionTask[];
@@ -232,9 +232,14 @@ Write solution JSON to JSONL file (one line per solution):
232
232
  **Write Operation**:
233
233
  ```javascript
234
234
  // Append solution to JSONL file (one line per solution)
235
- const solutionId = `SOL-${issueId}-${seq}`;
235
+ // Use 4-char random uid to avoid collisions across multiple plan runs
236
+ const uid = Math.random().toString(36).slice(2, 6); // e.g., "a7x9"
237
+ const solutionId = `SOL-${issueId}-${uid}`;
236
238
  const solutionLine = JSON.stringify({ id: solutionId, ...solution });
237
239
 
240
+ // Bash equivalent for uid generation:
241
+ // uid=$(cat /dev/urandom | tr -dc 'a-z0-9' | head -c 4)
242
+
238
243
  // Read existing, append new line, write back
239
244
  const filePath = `.workflow/issues/solutions/${issueId}.jsonl`;
240
245
  const existing = existsSync(filePath) ? readFileSync(filePath) : '';
@@ -311,7 +316,7 @@ Each line is a solution JSON containing tasks. Schema: `cat .claude/workflows/cl
311
316
  6. Evaluate each solution with `analysis` and `score`
312
317
  7. Write solutions to `.workflow/issues/solutions/{issue-id}.jsonl` (append mode)
313
318
  8. For HIGH complexity: generate 2-3 candidate solutions
314
- 9. **Solution ID format**: `SOL-{issue-id}-{N}` (e.g., `SOL-GH-123-1`, `SOL-GH-123-2`)
319
+ 9. **Solution ID format**: `SOL-{issue-id}-{uid}` where uid is 4 random alphanumeric chars (e.g., `SOL-GH-123-a7x9`)
315
320
  10. **GitHub Reply Task**: If issue has `github_url` or `github_number`, add final task to comment on GitHub issue with completion summary
316
321
 
317
322
  **CONFLICT AVOIDANCE** (for batch processing of similar issues):
@@ -203,7 +203,7 @@ ${issueList}
203
203
  7. Single solution → auto-bind; Multiple → return for selection
204
204
 
205
205
  ### Rules
206
- - Solution ID format: SOL-{issue-id}-{seq}
206
+ - Solution ID format: SOL-{issue-id}-{uid} (uid: 4 random alphanumeric chars, e.g., a7x9)
207
207
  - Single solution per issue → auto-bind via ccw issue bind
208
208
  - Multiple solutions → register only, return pending_selection
209
209
  - Tasks must have quantified acceptance.criteria
@@ -7,9 +7,9 @@
7
7
  "properties": {
8
8
  "id": {
9
9
  "type": "string",
10
- "description": "Unique solution identifier: SOL-{issue-id}-{seq}",
11
- "pattern": "^SOL-.+-[0-9]+$",
12
- "examples": ["SOL-GH-123-1", "SOL-ISS-20251229-1"]
10
+ "description": "Unique solution identifier: SOL-{issue-id}-{4-char-uid} where uid is 4 alphanumeric chars",
11
+ "pattern": "^SOL-.+-[a-z0-9]{4}$",
12
+ "examples": ["SOL-GH-123-a7x9", "SOL-ISS-20251229-001-b2k4"]
13
13
  },
14
14
  "description": {
15
15
  "type": "string",
@@ -338,6 +338,14 @@ function renderIssueCard(issue) {
338
338
  ${t('issues.boundSolution') || 'Bound'}
339
339
  </span>
340
340
  ` : ''}
341
+ ${issue.github_url ? `
342
+ <a href="${issue.github_url}" target="_blank" rel="noopener noreferrer"
343
+ class="flex items-center gap-1 text-muted-foreground hover:text-foreground transition-colors"
344
+ onclick="event.stopPropagation()" title="View on GitHub">
345
+ <i data-lucide="github" class="w-3.5 h-3.5"></i>
346
+ ${issue.github_number ? `#${issue.github_number}` : 'GitHub'}
347
+ </a>
348
+ ` : ''}
341
349
  </div>
342
350
  </div>
343
351
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-workflow",
3
- "version": "6.3.22",
3
+ "version": "6.3.23",
4
4
  "description": "JSON-driven multi-agent development framework with intelligent CLI orchestration (Gemini/Qwen/Codex), context-first architecture, and automated workflow execution",
5
5
  "type": "module",
6
6
  "main": "ccw/src/index.js",