claude-code-workflow 6.0.4 → 6.1.0

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.
Files changed (120) hide show
  1. package/.claude/agents/action-planning-agent.md +1 -1
  2. package/.claude/agents/cli-execution-agent.md +269 -269
  3. package/.claude/agents/cli-explore-agent.md +182 -182
  4. package/.claude/agents/context-search-agent.md +582 -582
  5. package/.claude/agents/memory-bridge.md +93 -93
  6. package/.claude/commands/cli/cli-init.md +1 -1
  7. package/.claude/commands/memory/docs-full-cli.md +471 -471
  8. package/.claude/commands/memory/docs-related-cli.md +386 -386
  9. package/.claude/commands/memory/docs.md +615 -615
  10. package/.claude/commands/memory/load.md +1 -1
  11. package/.claude/commands/memory/update-full.md +332 -332
  12. package/.claude/commands/memory/update-related.md +5 -5
  13. package/.claude/commands/workflow/init.md +1 -1
  14. package/.claude/commands/workflow/lite-fix.md +621 -621
  15. package/.claude/commands/workflow/lite-plan.md +592 -592
  16. package/.claude/commands/workflow/tools/context-gather.md +434 -434
  17. package/.claude/commands/workflow/ui-design/generate.md +504 -504
  18. package/.claude/commands/workflow/ui-design/import-from-code.md +537 -537
  19. package/.claude/scripts/classify-folders.sh +4 -0
  20. package/.claude/scripts/convert_tokens_to_css.sh +4 -0
  21. package/.claude/scripts/detect_changed_modules.sh +5 -1
  22. package/.claude/scripts/discover-design-files.sh +87 -83
  23. package/.claude/scripts/generate_module_docs.sh +717 -713
  24. package/.claude/scripts/get_modules_by_depth.sh +5 -1
  25. package/.claude/scripts/ui-generate-preview.sh +4 -0
  26. package/.claude/scripts/ui-instantiate-prototypes.sh +4 -0
  27. package/.claude/scripts/update_module_claude.sh +4 -0
  28. package/.claude/skills/command-guide/index/all-commands.json +1 -12
  29. package/.claude/skills/command-guide/index/by-category.json +1 -12
  30. package/.claude/skills/command-guide/index/by-use-case.json +1 -12
  31. package/.claude/skills/command-guide/index/essential-commands.json +1 -12
  32. package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +127 -71
  33. package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +269 -269
  34. package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +182 -182
  35. package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +18 -38
  36. package/.claude/skills/command-guide/reference/agents/context-search-agent.md +582 -577
  37. package/.claude/skills/command-guide/reference/agents/memory-bridge.md +93 -93
  38. package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +1 -1
  39. package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -471
  40. package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -386
  41. package/.claude/skills/command-guide/reference/commands/memory/docs.md +615 -610
  42. package/.claude/skills/command-guide/reference/commands/memory/load.md +1 -1
  43. package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -332
  44. package/.claude/skills/command-guide/reference/commands/memory/update-related.md +5 -5
  45. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +299 -451
  46. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +14 -37
  47. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +252 -350
  48. package/.claude/skills/command-guide/reference/commands/workflow/init.md +2 -2
  49. package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +52 -0
  50. package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +621 -602
  51. package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +46 -36
  52. package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +18 -58
  53. package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +22 -52
  54. package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +19 -48
  55. package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +25 -5
  56. package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +1 -1
  57. package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +7 -7
  58. package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -434
  59. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +151 -11
  60. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +4 -4
  61. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +1 -1
  62. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +504 -504
  63. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +537 -537
  64. package/.claude/workflows/context-search-strategy.md +77 -77
  65. package/.claude/workflows/tool-strategy.md +90 -71
  66. package/.claude/workflows/workflow-architecture.md +1 -1
  67. package/ccw/package.json +6 -6
  68. package/ccw/src/cli.js +16 -0
  69. package/ccw/src/commands/stop.js +101 -0
  70. package/ccw/src/commands/tool.js +181 -0
  71. package/ccw/src/core/dashboard-generator.js +18 -3
  72. package/ccw/src/core/lite-scanner.js +35 -11
  73. package/ccw/src/core/server.js +583 -17
  74. package/ccw/src/templates/dashboard-css/01-base.css +161 -0
  75. package/ccw/src/templates/dashboard-css/02-session.css +726 -0
  76. package/ccw/src/templates/dashboard-css/03-tasks.css +512 -0
  77. package/ccw/src/templates/dashboard-css/04-lite-tasks.css +843 -0
  78. package/ccw/src/templates/dashboard-css/05-context.css +2206 -0
  79. package/ccw/src/templates/dashboard-css/06-cards.css +1570 -0
  80. package/ccw/src/templates/dashboard-css/07-managers.css +936 -0
  81. package/ccw/src/templates/dashboard-css/08-review.css +1266 -0
  82. package/ccw/src/templates/dashboard-css/09-explorer.css +1397 -0
  83. package/ccw/src/templates/dashboard-js/components/global-notifications.js +219 -0
  84. package/ccw/src/templates/dashboard-js/components/hook-manager.js +10 -0
  85. package/ccw/src/templates/dashboard-js/components/mcp-manager.js +24 -2
  86. package/ccw/src/templates/dashboard-js/components/navigation.js +11 -5
  87. package/ccw/src/templates/dashboard-js/components/tabs-context.js +20 -20
  88. package/ccw/src/templates/dashboard-js/components/tabs-other.js +11 -11
  89. package/ccw/src/templates/dashboard-js/components/theme.js +29 -1
  90. package/ccw/src/templates/dashboard-js/main.js +4 -0
  91. package/ccw/src/templates/dashboard-js/state.js +5 -0
  92. package/ccw/src/templates/dashboard-js/views/explorer.js +852 -0
  93. package/ccw/src/templates/dashboard-js/views/home.js +13 -9
  94. package/ccw/src/templates/dashboard-js/views/hook-manager.js +8 -5
  95. package/ccw/src/templates/dashboard-js/views/lite-tasks.js +21 -16
  96. package/ccw/src/templates/dashboard-js/views/mcp-manager.js +148 -8
  97. package/ccw/src/templates/dashboard-js/views/project-overview.js +15 -11
  98. package/ccw/src/templates/dashboard-js/views/review-session.js +3 -3
  99. package/ccw/src/templates/dashboard-js/views/session-detail.js +38 -28
  100. package/ccw/src/templates/dashboard.html +129 -28
  101. package/ccw/src/tools/classify-folders.js +204 -0
  102. package/ccw/src/tools/convert-tokens-to-css.js +250 -0
  103. package/ccw/src/tools/detect-changed-modules.js +288 -0
  104. package/ccw/src/tools/discover-design-files.js +134 -0
  105. package/ccw/src/tools/edit-file.js +266 -0
  106. package/ccw/src/tools/generate-module-docs.js +416 -0
  107. package/ccw/src/tools/get-modules-by-depth.js +308 -0
  108. package/ccw/src/tools/index.js +176 -0
  109. package/ccw/src/tools/ui-generate-preview.js +327 -0
  110. package/ccw/src/tools/ui-instantiate-prototypes.js +301 -0
  111. package/ccw/src/tools/update-module-claude.js +380 -0
  112. package/ccw/src/utils/browser-launcher.js +15 -4
  113. package/package.json +1 -1
  114. package/.claude/skills/command-guide/reference/commands/workflow/status.md +0 -352
  115. package/ccw/src/core/server.js.bak +0 -385
  116. package/ccw/src/core/server_original.bak +0 -385
  117. package/ccw/src/templates/dashboard.css +0 -8114
  118. package/ccw/src/templates/dashboard_tailwind.html +0 -42
  119. package/ccw/src/templates/dashboard_test.html +0 -37
  120. package/ccw/src/templates/tailwind-base.css +0 -212
@@ -8,10 +8,22 @@ const __dirname = dirname(__filename);
8
8
  // Bundled template paths
9
9
  const UNIFIED_TEMPLATE = join(__dirname, '../templates/dashboard.html');
10
10
  const JS_FILE = join(__dirname, '../templates/dashboard.js');
11
- const CSS_FILE = join(__dirname, '../templates/dashboard.css');
11
+ const MODULE_CSS_DIR = join(__dirname, '../templates/dashboard-css');
12
12
  const WORKFLOW_TEMPLATE = join(__dirname, '../templates/workflow-dashboard.html');
13
13
  const REVIEW_TEMPLATE = join(__dirname, '../templates/review-cycle-dashboard.html');
14
14
 
15
+ // Modular CSS files in load order
16
+ const MODULE_CSS_FILES = [
17
+ '01-base.css',
18
+ '02-session.css',
19
+ '03-tasks.css',
20
+ '04-lite-tasks.css',
21
+ '05-context.css',
22
+ '06-cards.css',
23
+ '07-managers.css',
24
+ '08-review.css'
25
+ ];
26
+
15
27
  const MODULE_FILES = [
16
28
  'utils.js',
17
29
  'state.js',
@@ -63,8 +75,11 @@ export async function generateDashboard(data) {
63
75
  function generateFromUnifiedTemplate(data) {
64
76
  let html = readFileSync(UNIFIED_TEMPLATE, 'utf8');
65
77
 
66
- // Read CSS file
67
- let cssContent = existsSync(CSS_FILE) ? readFileSync(CSS_FILE, 'utf8') : '';
78
+ // Read and concatenate modular CSS files in load order
79
+ let cssContent = MODULE_CSS_FILES.map(file => {
80
+ const filePath = join(MODULE_CSS_DIR, file);
81
+ return existsSync(filePath) ? readFileSync(filePath, 'utf8') : '';
82
+ }).join('\n\n');
68
83
 
69
84
  // Read JS content
70
85
  let jsContent = '';
@@ -54,20 +54,36 @@ function scanLiteDir(dir, type) {
54
54
  }
55
55
 
56
56
  /**
57
- * Load plan.json from session directory
57
+ * Load plan.json or fix-plan.json from session directory
58
58
  * @param {string} sessionPath - Session directory path
59
59
  * @returns {Object|null} - Plan data or null
60
60
  */
61
61
  function loadPlanJson(sessionPath) {
62
+ // Try fix-plan.json first (for lite-fix), then plan.json (for lite-plan)
63
+ const fixPlanPath = join(sessionPath, 'fix-plan.json');
62
64
  const planPath = join(sessionPath, 'plan.json');
63
- if (!existsSync(planPath)) return null;
64
65
 
65
- try {
66
- const content = readFileSync(planPath, 'utf8');
67
- return JSON.parse(content);
68
- } catch {
69
- return null;
66
+ // Try fix-plan.json first
67
+ if (existsSync(fixPlanPath)) {
68
+ try {
69
+ const content = readFileSync(fixPlanPath, 'utf8');
70
+ return JSON.parse(content);
71
+ } catch {
72
+ // Continue to try plan.json
73
+ }
70
74
  }
75
+
76
+ // Fallback to plan.json
77
+ if (existsSync(planPath)) {
78
+ try {
79
+ const content = readFileSync(planPath, 'utf8');
80
+ return JSON.parse(content);
81
+ } catch {
82
+ return null;
83
+ }
84
+ }
85
+
86
+ return null;
71
87
  }
72
88
 
73
89
  /**
@@ -91,6 +107,7 @@ function loadTaskJsons(sessionPath) {
91
107
  f.startsWith('IMPL-') ||
92
108
  f.startsWith('TASK-') ||
93
109
  f.startsWith('task-') ||
110
+ f.startsWith('diagnosis-') ||
94
111
  /^T\d+\.json$/i.test(f)
95
112
  ))
96
113
  .map(f => {
@@ -109,12 +126,18 @@ function loadTaskJsons(sessionPath) {
109
126
  }
110
127
  }
111
128
 
112
- // Method 2: Check plan.json for embedded tasks array
129
+ // Method 2: Check plan.json or fix-plan.json for embedded tasks array
113
130
  if (tasks.length === 0) {
131
+ // Try fix-plan.json first (for lite-fix), then plan.json (for lite-plan)
132
+ const fixPlanPath = join(sessionPath, 'fix-plan.json');
114
133
  const planPath = join(sessionPath, 'plan.json');
115
- if (existsSync(planPath)) {
134
+
135
+ const planFile = existsSync(fixPlanPath) ? fixPlanPath :
136
+ existsSync(planPath) ? planPath : null;
137
+
138
+ if (planFile) {
116
139
  try {
117
- const plan = JSON.parse(readFileSync(planPath, 'utf8'));
140
+ const plan = JSON.parse(readFileSync(planFile, 'utf8'));
118
141
  if (Array.isArray(plan.tasks)) {
119
142
  tasks = plan.tasks.map(t => normalizeTask(t));
120
143
  }
@@ -124,13 +147,14 @@ function loadTaskJsons(sessionPath) {
124
147
  }
125
148
  }
126
149
 
127
- // Method 3: Check for task-*.json files in session root
150
+ // Method 3: Check for task-*.json and diagnosis-*.json files in session root
128
151
  if (tasks.length === 0) {
129
152
  try {
130
153
  const rootTasks = readdirSync(sessionPath)
131
154
  .filter(f => f.endsWith('.json') && (
132
155
  f.startsWith('task-') ||
133
156
  f.startsWith('TASK-') ||
157
+ f.startsWith('diagnosis-') ||
134
158
  /^T\d+\.json$/i.test(f)
135
159
  ))
136
160
  .map(f => {