claude-code-workflow 6.3.27 → 6.3.28
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.
- package/.claude/CLAUDE.md +7 -1
- package/.claude/agents/action-planning-agent.md +1 -0
- package/.claude/agents/cli-discuss-agent.md +391 -0
- package/.claude/agents/cli-execution-agent.md +2 -0
- package/.claude/agents/cli-explore-agent.md +2 -1
- package/.claude/agents/cli-lite-planning-agent.md +1 -0
- package/.claude/agents/cli-planning-agent.md +1 -0
- package/.claude/agents/code-developer.md +1 -0
- package/.claude/agents/conceptual-planning-agent.md +2 -0
- package/.claude/agents/context-search-agent.md +1 -0
- package/.claude/agents/debug-explore-agent.md +2 -0
- package/.claude/agents/doc-generator.md +1 -0
- package/.claude/agents/issue-plan-agent.md +2 -1
- package/.claude/agents/issue-queue-agent.md +2 -1
- package/.claude/agents/memory-bridge.md +2 -0
- package/.claude/agents/test-context-search-agent.md +2 -0
- package/.claude/agents/test-fix-agent.md +1 -0
- package/.claude/agents/ui-design-agent.md +2 -0
- package/.claude/agents/universal-executor.md +1 -0
- package/.claude/commands/issue/execute.md +141 -163
- package/.claude/commands/workflow/lite-lite-lite.md +798 -0
- package/.claude/commands/workflow/multi-cli-plan.md +510 -0
- package/.claude/skills/ccw/SKILL.md +262 -372
- package/.claude/skills/ccw/command.json +547 -0
- package/.claude/skills/ccw-help/SKILL.md +46 -107
- package/.claude/skills/ccw-help/command.json +511 -0
- package/.claude/skills/skill-tuning/SKILL.md +303 -0
- package/.claude/skills/skill-tuning/phases/actions/action-abort.md +164 -0
- package/.claude/skills/skill-tuning/phases/actions/action-analyze-requirements.md +406 -0
- package/.claude/skills/skill-tuning/phases/actions/action-apply-fix.md +206 -0
- package/.claude/skills/skill-tuning/phases/actions/action-complete.md +195 -0
- package/.claude/skills/skill-tuning/phases/actions/action-diagnose-agent.md +317 -0
- package/.claude/skills/skill-tuning/phases/actions/action-diagnose-context.md +243 -0
- package/.claude/skills/skill-tuning/phases/actions/action-diagnose-dataflow.md +318 -0
- package/.claude/skills/skill-tuning/phases/actions/action-diagnose-docs.md +299 -0
- package/.claude/skills/skill-tuning/phases/actions/action-diagnose-memory.md +269 -0
- package/.claude/skills/skill-tuning/phases/actions/action-diagnose-token-consumption.md +200 -0
- package/.claude/skills/skill-tuning/phases/actions/action-gemini-analysis.md +322 -0
- package/.claude/skills/skill-tuning/phases/actions/action-generate-report.md +228 -0
- package/.claude/skills/skill-tuning/phases/actions/action-init.md +149 -0
- package/.claude/skills/skill-tuning/phases/actions/action-propose-fixes.md +317 -0
- package/.claude/skills/skill-tuning/phases/actions/action-verify.md +222 -0
- package/.claude/skills/skill-tuning/phases/orchestrator.md +377 -0
- package/.claude/skills/skill-tuning/phases/state-schema.md +378 -0
- package/.claude/skills/skill-tuning/specs/category-mappings.json +284 -0
- package/.claude/skills/skill-tuning/specs/dimension-mapping.md +212 -0
- package/.claude/skills/skill-tuning/specs/problem-taxonomy.md +318 -0
- package/.claude/skills/skill-tuning/specs/quality-gates.md +263 -0
- package/.claude/skills/skill-tuning/specs/skill-authoring-principles.md +189 -0
- package/.claude/skills/skill-tuning/specs/tuning-strategies.md +1537 -0
- package/.claude/skills/skill-tuning/templates/diagnosis-report.md +153 -0
- package/.claude/skills/skill-tuning/templates/fix-proposal.md +204 -0
- package/.claude/workflows/cli-templates/schemas/multi-cli-discussion-schema.json +421 -0
- package/.claude/workflows/cli-tools-usage.md +0 -41
- package/ccw/dist/core/data-aggregator.d.ts +2 -0
- package/ccw/dist/core/data-aggregator.d.ts.map +1 -1
- package/ccw/dist/core/data-aggregator.js +5 -2
- package/ccw/dist/core/data-aggregator.js.map +1 -1
- package/ccw/dist/core/lite-scanner.d.ts +2 -1
- package/ccw/dist/core/lite-scanner.d.ts.map +1 -1
- package/ccw/dist/core/lite-scanner.js +295 -6
- package/ccw/dist/core/lite-scanner.js.map +1 -1
- package/ccw/dist/core/routes/session-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/session-routes.js +166 -48
- package/ccw/dist/core/routes/session-routes.js.map +1 -1
- package/ccw/dist/core/routes/system-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/system-routes.js +87 -0
- package/ccw/dist/core/routes/system-routes.js.map +1 -1
- package/ccw/dist/core/server.js +2 -2
- package/ccw/dist/core/server.js.map +1 -1
- package/ccw/scripts/IMPLEMENTATION-SUMMARY.md +226 -0
- package/ccw/scripts/QUICK-REFERENCE.md +135 -0
- package/ccw/scripts/README-memory-embedder.md +157 -0
- package/ccw/scripts/__pycache__/memory_embedder.cpython-313.pyc +0 -0
- package/ccw/scripts/__pycache__/test_memory_embedder.cpython-313-pytest-8.4.2.pyc +0 -0
- package/ccw/scripts/memory-embedder-example.ts +184 -0
- package/ccw/scripts/memory_embedder.py +428 -0
- package/ccw/scripts/test_memory_embedder.py +245 -0
- package/ccw/src/core/data-aggregator.ts +7 -2
- package/ccw/src/core/lite-scanner.ts +440 -6
- package/ccw/src/core/routes/session-routes.ts +201 -48
- package/ccw/src/core/routes/system-routes.ts +102 -0
- package/ccw/src/core/server.ts +2 -2
- package/ccw/src/templates/dashboard-css/01-base.css +8 -0
- package/ccw/src/templates/dashboard-css/02-session.css +81 -0
- package/ccw/src/templates/dashboard-css/04-lite-tasks.css +2442 -0
- package/ccw/src/templates/dashboard-css/21-cli-toolmgmt.css +157 -0
- package/ccw/src/templates/dashboard-css/32-issue-manager.css +23 -0
- package/ccw/src/templates/dashboard-js/components/cli-stream-viewer.js +38 -4
- package/ccw/src/templates/dashboard-js/components/hook-manager.js +38 -13
- package/ccw/src/templates/dashboard-js/components/navigation.js +24 -4
- package/ccw/src/templates/dashboard-js/i18n.js +178 -4
- package/ccw/src/templates/dashboard-js/views/api-settings.js +32 -0
- package/ccw/src/templates/dashboard-js/views/claude-manager.js +44 -3
- package/ccw/src/templates/dashboard-js/views/cli-manager.js +303 -31
- package/ccw/src/templates/dashboard-js/views/history.js +44 -6
- package/ccw/src/templates/dashboard-js/views/home.js +1 -0
- package/ccw/src/templates/dashboard-js/views/issue-manager.js +54 -7
- package/ccw/src/templates/dashboard-js/views/lite-tasks.js +1817 -4
- package/ccw/src/templates/dashboard.html +5 -0
- package/package.json +2 -1
- package/.claude/skills/ccw/index/command-capabilities.json +0 -127
- package/.claude/skills/ccw/index/intent-rules.json +0 -136
- package/.claude/skills/ccw/index/workflow-chains.json +0 -451
- package/.claude/skills/ccw/phases/actions/bugfix.md +0 -218
- package/.claude/skills/ccw/phases/actions/coupled.md +0 -194
- package/.claude/skills/ccw/phases/actions/docs.md +0 -93
- package/.claude/skills/ccw/phases/actions/full.md +0 -154
- package/.claude/skills/ccw/phases/actions/issue.md +0 -201
- package/.claude/skills/ccw/phases/actions/rapid.md +0 -104
- package/.claude/skills/ccw/phases/actions/review-fix.md +0 -84
- package/.claude/skills/ccw/phases/actions/tdd.md +0 -66
- package/.claude/skills/ccw/phases/actions/ui.md +0 -79
- package/.claude/skills/ccw/phases/orchestrator.md +0 -435
- package/.claude/skills/ccw/specs/intent-classification.md +0 -336
- package/.claude/skills/ccw-help/index/all-agents.json +0 -82
- package/.claude/skills/ccw-help/index/all-commands.json +0 -882
- package/.claude/skills/ccw-help/index/by-category.json +0 -914
- package/.claude/skills/ccw-help/index/by-use-case.json +0 -896
- package/.claude/skills/ccw-help/index/command-relationships.json +0 -160
- package/.claude/skills/ccw-help/index/essential-commands.json +0 -112
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// ========== Issue State ==========
|
|
7
7
|
var issueData = {
|
|
8
8
|
issues: [],
|
|
9
|
+
historyIssues: [], // Archived/completed issues from history
|
|
9
10
|
queue: { tasks: [], solutions: [], conflicts: [], execution_groups: [], grouped_items: {} },
|
|
10
11
|
selectedIssue: null,
|
|
11
12
|
selectedSolution: null,
|
|
@@ -58,6 +59,18 @@ async function loadIssueData() {
|
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
async function loadIssueHistory() {
|
|
63
|
+
try {
|
|
64
|
+
const response = await fetch('/api/issues/history?path=' + encodeURIComponent(projectPath));
|
|
65
|
+
if (!response.ok) throw new Error('Failed to load issue history');
|
|
66
|
+
const data = await response.json();
|
|
67
|
+
issueData.historyIssues = data.issues || [];
|
|
68
|
+
} catch (err) {
|
|
69
|
+
console.error('Failed to load issue history:', err);
|
|
70
|
+
issueData.historyIssues = [];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
61
74
|
async function loadQueueData() {
|
|
62
75
|
try {
|
|
63
76
|
const response = await fetch('/api/queue?path=' + encodeURIComponent(projectPath));
|
|
@@ -93,10 +106,21 @@ function renderIssueView() {
|
|
|
93
106
|
if (!container) return;
|
|
94
107
|
|
|
95
108
|
const issues = issueData.issues || [];
|
|
109
|
+
const historyIssues = issueData.historyIssues || [];
|
|
110
|
+
|
|
96
111
|
// Apply both status and search filters
|
|
97
|
-
let filteredIssues
|
|
98
|
-
|
|
99
|
-
|
|
112
|
+
let filteredIssues;
|
|
113
|
+
if (issueData.statusFilter === 'all') {
|
|
114
|
+
filteredIssues = issues;
|
|
115
|
+
} else if (issueData.statusFilter === 'completed') {
|
|
116
|
+
// For 'completed' filter, include both current completed issues and archived history issues
|
|
117
|
+
const currentCompleted = issues.filter(i => i.status === 'completed');
|
|
118
|
+
// Mark history issues as archived for visual distinction
|
|
119
|
+
const archivedIssues = historyIssues.map(i => ({ ...i, _isArchived: true }));
|
|
120
|
+
filteredIssues = [...currentCompleted, ...archivedIssues];
|
|
121
|
+
} else {
|
|
122
|
+
filteredIssues = issues.filter(i => i.status === issueData.statusFilter);
|
|
123
|
+
}
|
|
100
124
|
|
|
101
125
|
if (issueData.searchQuery) {
|
|
102
126
|
const query = issueData.searchQuery.toLowerCase();
|
|
@@ -309,12 +333,15 @@ function renderIssueCard(issue) {
|
|
|
309
333
|
failed: 'failed'
|
|
310
334
|
};
|
|
311
335
|
|
|
336
|
+
const isArchived = issue._isArchived;
|
|
337
|
+
|
|
312
338
|
return `
|
|
313
|
-
<div class="issue-card" onclick="openIssueDetail('${issue.id}')">
|
|
339
|
+
<div class="issue-card ${isArchived ? 'archived' : ''}" onclick="openIssueDetail('${issue.id}'${isArchived ? ', true' : ''})">
|
|
314
340
|
<div class="flex items-start justify-between mb-3">
|
|
315
341
|
<div class="flex items-center gap-2">
|
|
316
342
|
<span class="issue-id font-mono text-sm">${issue.id}</span>
|
|
317
343
|
<span class="issue-status ${statusColors[issue.status] || ''}">${issue.status || 'unknown'}</span>
|
|
344
|
+
${isArchived ? '<span class="issue-archived-badge">' + (t('issues.archived') || 'Archived') + '</span>' : ''}
|
|
318
345
|
</div>
|
|
319
346
|
<span class="issue-priority" title="${t('issues.priority') || 'Priority'}: ${issue.priority || 3}">
|
|
320
347
|
${renderPriorityStars(issue.priority || 3)}
|
|
@@ -360,8 +387,12 @@ function renderPriorityStars(priority) {
|
|
|
360
387
|
return stars;
|
|
361
388
|
}
|
|
362
389
|
|
|
363
|
-
function filterIssuesByStatus(status) {
|
|
390
|
+
async function filterIssuesByStatus(status) {
|
|
364
391
|
issueData.statusFilter = status;
|
|
392
|
+
// Load history data when filtering by 'completed' status
|
|
393
|
+
if (status === 'completed' && issueData.historyIssues.length === 0) {
|
|
394
|
+
await loadIssueHistory();
|
|
395
|
+
}
|
|
365
396
|
renderIssueView();
|
|
366
397
|
}
|
|
367
398
|
|
|
@@ -725,7 +756,7 @@ async function saveQueueOrder(groupId, newOrder) {
|
|
|
725
756
|
}
|
|
726
757
|
|
|
727
758
|
// ========== Detail Panel ==========
|
|
728
|
-
async function openIssueDetail(issueId) {
|
|
759
|
+
async function openIssueDetail(issueId, isArchived = false) {
|
|
729
760
|
const panel = document.getElementById('issueDetailPanel');
|
|
730
761
|
if (!panel) return;
|
|
731
762
|
|
|
@@ -733,7 +764,23 @@ async function openIssueDetail(issueId) {
|
|
|
733
764
|
panel.classList.remove('hidden');
|
|
734
765
|
lucide.createIcons();
|
|
735
766
|
|
|
736
|
-
|
|
767
|
+
let detail;
|
|
768
|
+
if (isArchived) {
|
|
769
|
+
// For archived issues, get detail from historyIssues (already loaded)
|
|
770
|
+
const historyIssue = issueData.historyIssues.find(i => i.id === issueId);
|
|
771
|
+
if (historyIssue) {
|
|
772
|
+
// Mark as archived and provide minimal detail structure
|
|
773
|
+
detail = {
|
|
774
|
+
...historyIssue,
|
|
775
|
+
_isArchived: true,
|
|
776
|
+
solutions: historyIssue.solutions || [],
|
|
777
|
+
tasks: historyIssue.tasks || []
|
|
778
|
+
};
|
|
779
|
+
}
|
|
780
|
+
} else {
|
|
781
|
+
detail = await loadIssueDetail(issueId);
|
|
782
|
+
}
|
|
783
|
+
|
|
737
784
|
if (!detail) {
|
|
738
785
|
panel.innerHTML = '<div class="p-8 text-center text-destructive">Failed to load issue</div>';
|
|
739
786
|
return;
|