enhance_swarm 2.0.0 → 2.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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/CLAUDE.md +164 -0
  3. data/.claude/MCP.md +117 -0
  4. data/.claude/PERSONAS.md +114 -0
  5. data/.claude/RULES.md +221 -0
  6. data/.enhance_swarm/logs/general_output.log +0 -404
  7. data/.enhance_swarm.yml +33 -0
  8. data/CHANGELOG.md +71 -0
  9. data/README.md +128 -3
  10. data/lib/enhance_swarm/agent_spawner.rb +205 -12
  11. data/lib/enhance_swarm/cli.rb +129 -1
  12. data/lib/enhance_swarm/task_coordinator.rb +363 -86
  13. data/lib/enhance_swarm/version.rb +1 -1
  14. metadata +13 -97
  15. data/PRODUCTION_TEST_LOG.md +0 -502
  16. data/debug_agent_spawner.rb +0 -99
  17. data/debug_cli_spawn.rb +0 -95
  18. data/debug_fixes.rb +0 -209
  19. data/debug_script_execution.rb +0 -124
  20. data/debug_session_issue.rb +0 -87
  21. data/debug_spawn.rb +0 -113
  22. data/debug_spawn_step_by_step.rb +0 -190
  23. data/debug_worktree.rb +0 -77
  24. data/enhance_swarm-0.1.1.gem +0 -0
  25. data/enhance_swarm-1.0.0.gem +0 -0
  26. data/final_validation_test.rb +0 -199
  27. data/setup.sh +0 -86
  28. data/test_blog_app/.enhance_swarm/archives/session_1751187575_e119ea73_20250629_105935.json +0 -16
  29. data/test_blog_app/.enhance_swarm/archives/session_1751187637_7fda97dd_20250629_110037.json +0 -32
  30. data/test_blog_app/.enhance_swarm/archives/session_1751190527_4c99147e_20250629_114847.json +0 -32
  31. data/test_blog_app/.enhance_swarm/archives/session_1751190541_8dc83406_20250629_114901.json +0 -16
  32. data/test_blog_app/.ruby-version +0 -1
  33. data/test_blog_app/Gemfile +0 -18
  34. data/test_blog_app/Gemfile.lock +0 -206
  35. data/test_blog_app/README.md +0 -24
  36. data/test_blog_app/Rakefile +0 -6
  37. data/test_blog_app/app/assets/images/.keep +0 -0
  38. data/test_blog_app/app/assets/stylesheets/application.css +0 -10
  39. data/test_blog_app/app/controllers/application_controller.rb +0 -4
  40. data/test_blog_app/app/controllers/concerns/.keep +0 -0
  41. data/test_blog_app/app/helpers/application_helper.rb +0 -2
  42. data/test_blog_app/app/models/application_record.rb +0 -3
  43. data/test_blog_app/app/models/concerns/.keep +0 -0
  44. data/test_blog_app/app/views/layouts/application.html.erb +0 -27
  45. data/test_blog_app/app/views/pwa/manifest.json.erb +0 -22
  46. data/test_blog_app/app/views/pwa/service-worker.js +0 -26
  47. data/test_blog_app/bin/dev +0 -2
  48. data/test_blog_app/bin/rails +0 -4
  49. data/test_blog_app/bin/rake +0 -4
  50. data/test_blog_app/bin/setup +0 -34
  51. data/test_blog_app/config/application.rb +0 -42
  52. data/test_blog_app/config/boot.rb +0 -3
  53. data/test_blog_app/config/credentials.yml.enc +0 -1
  54. data/test_blog_app/config/database.yml +0 -32
  55. data/test_blog_app/config/environment.rb +0 -5
  56. data/test_blog_app/config/environments/development.rb +0 -51
  57. data/test_blog_app/config/environments/production.rb +0 -67
  58. data/test_blog_app/config/environments/test.rb +0 -42
  59. data/test_blog_app/config/initializers/assets.rb +0 -7
  60. data/test_blog_app/config/initializers/content_security_policy.rb +0 -25
  61. data/test_blog_app/config/initializers/filter_parameter_logging.rb +0 -8
  62. data/test_blog_app/config/initializers/inflections.rb +0 -16
  63. data/test_blog_app/config/locales/en.yml +0 -31
  64. data/test_blog_app/config/master.key +0 -1
  65. data/test_blog_app/config/puma.rb +0 -38
  66. data/test_blog_app/config/routes.rb +0 -14
  67. data/test_blog_app/config.ru +0 -6
  68. data/test_blog_app/db/seeds.rb +0 -9
  69. data/test_blog_app/lib/tasks/.keep +0 -0
  70. data/test_blog_app/log/.keep +0 -0
  71. data/test_blog_app/public/400.html +0 -114
  72. data/test_blog_app/public/404.html +0 -114
  73. data/test_blog_app/public/406-unsupported-browser.html +0 -114
  74. data/test_blog_app/public/422.html +0 -114
  75. data/test_blog_app/public/500.html +0 -114
  76. data/test_blog_app/public/icon.png +0 -0
  77. data/test_blog_app/public/icon.svg +0 -3
  78. data/test_blog_app/public/robots.txt +0 -1
  79. data/test_blog_app/script/.keep +0 -0
  80. data/test_blog_app/storage/.keep +0 -0
  81. data/test_blog_app/test/controllers/.keep +0 -0
  82. data/test_blog_app/test/fixtures/files/.keep +0 -0
  83. data/test_blog_app/test/helpers/.keep +0 -0
  84. data/test_blog_app/test/integration/.keep +0 -0
  85. data/test_blog_app/test/models/.keep +0 -0
  86. data/test_blog_app/test/test_helper.rb +0 -15
  87. data/test_blog_app/test_enhance_swarm_e2e.rb +0 -244
  88. data/test_blog_app/test_realistic_workflow.rb +0 -292
  89. data/test_blog_app/tmp/.keep +0 -0
  90. data/test_blog_app/tmp/pids/.keep +0 -0
  91. data/test_blog_app/tmp/storage/.keep +0 -0
  92. data/test_blog_app/vendor/.keep +0 -0
  93. data/test_builtin_functionality.rb +0 -121
  94. data/test_complete_system.rb +0 -267
  95. data/test_core_components.rb +0 -156
  96. data/test_real_claude_integration.rb +0 -285
  97. data/test_security.rb +0 -150
  98. data/test_smart_defaults.rb +0 -155
  99. data/test_task_integration.rb +0 -173
  100. data/test_web_ui.rb +0 -245
  101. data/web/assets/css/main.css +0 -645
  102. data/web/assets/js/kanban.js +0 -499
  103. data/web/assets/js/main.js +0 -525
  104. data/web/templates/dashboard.html.erb +0 -226
  105. data/web/templates/kanban.html.erb +0 -193
@@ -1,226 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>EnhanceSwarm Dashboard</title>
7
- <link rel="stylesheet" href="/assets/css/main.css">
8
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
9
- </head>
10
- <body>
11
- <nav class="navbar">
12
- <div class="nav-brand">
13
- <i class="fas fa-swatchbook"></i>
14
- <span>EnhanceSwarm</span>
15
- </div>
16
- <div class="nav-links">
17
- <a href="/" class="nav-link active">
18
- <i class="fas fa-tachometer-alt"></i> Dashboard
19
- </a>
20
- <a href="/kanban" class="nav-link">
21
- <i class="fas fa-columns"></i> Kanban
22
- </a>
23
- <a href="/agents" class="nav-link">
24
- <i class="fas fa-robot"></i> Agents
25
- </a>
26
- <a href="/project" class="nav-link">
27
- <i class="fas fa-project-diagram"></i> Project
28
- </a>
29
- <a href="/config" class="nav-link">
30
- <i class="fas fa-cog"></i> Config
31
- </a>
32
- </div>
33
- </nav>
34
-
35
- <main class="main-content">
36
- <div class="dashboard">
37
- <header class="dashboard-header">
38
- <h1>
39
- <i class="fas fa-tachometer-alt"></i>
40
- Dashboard
41
- </h1>
42
- <div class="dashboard-actions">
43
- <button class="btn btn-primary" onclick="spawnAgent()">
44
- <i class="fas fa-plus"></i> Spawn Agent
45
- </button>
46
- <button class="btn btn-secondary" onclick="refreshData()">
47
- <i class="fas fa-sync"></i> Refresh
48
- </button>
49
- </div>
50
- </header>
51
-
52
- <div class="dashboard-grid">
53
- <!-- Status Overview -->
54
- <div class="card">
55
- <div class="card-header">
56
- <h3><i class="fas fa-chart-line"></i> Status Overview</h3>
57
- </div>
58
- <div class="card-body">
59
- <div class="status-grid">
60
- <div class="status-item" id="session-status">
61
- <div class="status-icon">
62
- <i class="fas fa-circle"></i>
63
- </div>
64
- <div class="status-info">
65
- <span class="status-label">Session</span>
66
- <span class="status-value">Loading...</span>
67
- </div>
68
- </div>
69
- <div class="status-item" id="agents-status">
70
- <div class="status-icon">
71
- <i class="fas fa-robot"></i>
72
- </div>
73
- <div class="status-info">
74
- <span class="status-label">Active Agents</span>
75
- <span class="status-value">0</span>
76
- </div>
77
- </div>
78
- <div class="status-item" id="tasks-status">
79
- <div class="status-icon">
80
- <i class="fas fa-tasks"></i>
81
- </div>
82
- <div class="status-info">
83
- <span class="status-label">Tasks</span>
84
- <span class="status-value">0</span>
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
- </div>
90
-
91
- <!-- Active Agents -->
92
- <div class="card">
93
- <div class="card-header">
94
- <h3><i class="fas fa-robot"></i> Active Agents</h3>
95
- </div>
96
- <div class="card-body">
97
- <div id="active-agents-list">
98
- <div class="loading">Loading agents...</div>
99
- </div>
100
- </div>
101
- </div>
102
-
103
- <!-- Recent Tasks -->
104
- <div class="card">
105
- <div class="card-header">
106
- <h3><i class="fas fa-list-alt"></i> Recent Tasks</h3>
107
- <a href="/kanban" class="btn btn-small btn-outline">
108
- <i class="fas fa-external-link-alt"></i> View All
109
- </a>
110
- </div>
111
- <div class="card-body">
112
- <div id="recent-tasks-list">
113
- <div class="loading">Loading tasks...</div>
114
- </div>
115
- </div>
116
- </div>
117
-
118
- <!-- Quick Actions -->
119
- <div class="card">
120
- <div class="card-header">
121
- <h3><i class="fas fa-bolt"></i> Quick Actions</h3>
122
- </div>
123
- <div class="card-body">
124
- <div class="quick-actions">
125
- <button class="quick-action-btn" onclick="enhanceProject()">
126
- <i class="fas fa-magic"></i>
127
- <span>Enhance Project</span>
128
- </button>
129
- <button class="quick-action-btn" onclick="analyzeProject()">
130
- <i class="fas fa-search"></i>
131
- <span>Analyze Project</span>
132
- </button>
133
- <button class="quick-action-btn" onclick="viewMonitoring()">
134
- <i class="fas fa-chart-area"></i>
135
- <span>Monitor Agents</span>
136
- </button>
137
- <button class="quick-action-btn" onclick="setupTasks()">
138
- <i class="fas fa-clipboard-list"></i>
139
- <span>Setup Tasks</span>
140
- </button>
141
- </div>
142
- </div>
143
- </div>
144
-
145
- <!-- System Health -->
146
- <div class="card">
147
- <div class="card-header">
148
- <h3><i class="fas fa-heartbeat"></i> System Health</h3>
149
- </div>
150
- <div class="card-body">
151
- <div id="system-health">
152
- <div class="loading">Checking system health...</div>
153
- </div>
154
- </div>
155
- </div>
156
-
157
- <!-- Project Info -->
158
- <div class="card">
159
- <div class="card-header">
160
- <h3><i class="fas fa-info-circle"></i> Project Info</h3>
161
- </div>
162
- <div class="card-body">
163
- <div id="project-info">
164
- <div class="loading">Loading project information...</div>
165
- </div>
166
- </div>
167
- </div>
168
- </div>
169
- </div>
170
- </main>
171
-
172
- <!-- Modals -->
173
- <div id="spawn-agent-modal" class="modal">
174
- <div class="modal-content">
175
- <div class="modal-header">
176
- <h3><i class="fas fa-robot"></i> Spawn New Agent</h3>
177
- <button class="modal-close" onclick="closeModal('spawn-agent-modal')">
178
- <i class="fas fa-times"></i>
179
- </button>
180
- </div>
181
- <div class="modal-body">
182
- <form id="spawn-agent-form">
183
- <div class="form-group">
184
- <label for="agent-role">Agent Role</label>
185
- <select id="agent-role" name="role" required>
186
- <option value="general">General</option>
187
- <option value="frontend">Frontend</option>
188
- <option value="backend">Backend</option>
189
- <option value="ux">UX/Design</option>
190
- <option value="qa">QA/Testing</option>
191
- </select>
192
- </div>
193
- <div class="form-group">
194
- <label for="agent-task">Task Description</label>
195
- <textarea id="agent-task" name="task" rows="3" placeholder="Describe what this agent should work on..." required></textarea>
196
- </div>
197
- <div class="form-group">
198
- <label class="checkbox-label">
199
- <input type="checkbox" id="agent-worktree" name="worktree" checked>
200
- <span class="checkmark"></span>
201
- Use separate git worktree
202
- </label>
203
- </div>
204
- </form>
205
- </div>
206
- <div class="modal-footer">
207
- <button type="button" class="btn btn-secondary" onclick="closeModal('spawn-agent-modal')">
208
- Cancel
209
- </button>
210
- <button type="submit" class="btn btn-primary" form="spawn-agent-form">
211
- <i class="fas fa-rocket"></i> Spawn Agent
212
- </button>
213
- </div>
214
- </div>
215
- </div>
216
-
217
- <script src="/assets/js/main.js"></script>
218
- <script>
219
- // Initialize dashboard
220
- document.addEventListener('DOMContentLoaded', function() {
221
- initializeDashboard();
222
- startAutoRefresh();
223
- });
224
- </script>
225
- </body>
226
- </html>
@@ -1,193 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>EnhanceSwarm - Kanban Board</title>
7
- <link rel="stylesheet" href="/assets/css/main.css">
8
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
9
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.15.0/Sortable.min.css">
10
- </head>
11
- <body>
12
- <nav class="navbar">
13
- <div class="nav-brand">
14
- <i class="fas fa-swatchbook"></i>
15
- <span>EnhanceSwarm</span>
16
- </div>
17
- <div class="nav-links">
18
- <a href="/" class="nav-link">
19
- <i class="fas fa-tachometer-alt"></i> Dashboard
20
- </a>
21
- <a href="/kanban" class="nav-link active">
22
- <i class="fas fa-columns"></i> Kanban
23
- </a>
24
- <a href="/agents" class="nav-link">
25
- <i class="fas fa-robot"></i> Agents
26
- </a>
27
- <a href="/project" class="nav-link">
28
- <i class="fas fa-project-diagram"></i> Project
29
- </a>
30
- <a href="/config" class="nav-link">
31
- <i class="fas fa-cog"></i> Config
32
- </a>
33
- </div>
34
- </nav>
35
-
36
- <main class="main-content">
37
- <div class="kanban-container">
38
- <header class="kanban-header">
39
- <h1>
40
- <i class="fas fa-columns"></i>
41
- Task Management
42
- </h1>
43
- <div class="kanban-actions">
44
- <button class="btn btn-primary" onclick="createTask()">
45
- <i class="fas fa-plus"></i> New Task
46
- </button>
47
- <button class="btn btn-secondary" onclick="refreshKanban()">
48
- <i class="fas fa-sync"></i> Refresh
49
- </button>
50
- <button class="btn btn-outline" onclick="exportTasks()">
51
- <i class="fas fa-download"></i> Export
52
- </button>
53
- </div>
54
- </header>
55
-
56
- <div class="kanban-stats">
57
- <div class="stat-item">
58
- <span class="stat-value" id="total-tasks">0</span>
59
- <span class="stat-label">Total Tasks</span>
60
- </div>
61
- <div class="stat-item">
62
- <span class="stat-value" id="active-tasks">0</span>
63
- <span class="stat-label">In Progress</span>
64
- </div>
65
- <div class="stat-item">
66
- <span class="stat-value" id="completed-tasks">0</span>
67
- <span class="stat-label">Completed</span>
68
- </div>
69
- </div>
70
-
71
- <div class="kanban-board" id="kanban-board">
72
- <!-- Kanban columns will be dynamically generated -->
73
- <div class="loading-kanban">
74
- <i class="fas fa-spinner fa-spin"></i>
75
- <p>Loading task board...</p>
76
- </div>
77
- </div>
78
- </div>
79
- </main>
80
-
81
- <!-- Task Creation Modal -->
82
- <div id="create-task-modal" class="modal">
83
- <div class="modal-content">
84
- <div class="modal-header">
85
- <h3><i class="fas fa-plus"></i> Create New Task</h3>
86
- <button class="modal-close" onclick="closeModal('create-task-modal')">
87
- <i class="fas fa-times"></i>
88
- </button>
89
- </div>
90
- <div class="modal-body">
91
- <form id="create-task-form">
92
- <div class="form-group">
93
- <label for="task-title">Task Title</label>
94
- <input type="text" id="task-title" name="title" placeholder="Enter task title..." required>
95
- </div>
96
- <div class="form-group">
97
- <label for="task-description">Description</label>
98
- <textarea id="task-description" name="description" rows="4" placeholder="Describe the task in detail..."></textarea>
99
- </div>
100
- <div class="form-row">
101
- <div class="form-group">
102
- <label for="task-priority">Priority</label>
103
- <select id="task-priority" name="priority">
104
- <option value="low">Low</option>
105
- <option value="medium" selected>Medium</option>
106
- <option value="high">High</option>
107
- <option value="critical">Critical</option>
108
- </select>
109
- </div>
110
- <div class="form-group">
111
- <label for="task-category">Category</label>
112
- <select id="task-category" name="category">
113
- <option value="feature">Feature</option>
114
- <option value="bug">Bug Fix</option>
115
- <option value="enhancement">Enhancement</option>
116
- <option value="research">Research</option>
117
- <option value="documentation">Documentation</option>
118
- </select>
119
- </div>
120
- </div>
121
- <div class="form-group">
122
- <label for="task-agents">Recommended Agents</label>
123
- <div class="checkbox-group">
124
- <label class="checkbox-label">
125
- <input type="checkbox" name="agents" value="frontend">
126
- <span class="checkmark"></span>
127
- Frontend
128
- </label>
129
- <label class="checkbox-label">
130
- <input type="checkbox" name="agents" value="backend">
131
- <span class="checkmark"></span>
132
- Backend
133
- </label>
134
- <label class="checkbox-label">
135
- <input type="checkbox" name="agents" value="ux">
136
- <span class="checkmark"></span>
137
- UX/Design
138
- </label>
139
- <label class="checkbox-label">
140
- <input type="checkbox" name="agents" value="qa">
141
- <span class="checkmark"></span>
142
- QA/Testing
143
- </label>
144
- </div>
145
- </div>
146
- </form>
147
- </div>
148
- <div class="modal-footer">
149
- <button type="button" class="btn btn-secondary" onclick="closeModal('create-task-modal')">
150
- Cancel
151
- </button>
152
- <button type="submit" class="btn btn-primary" form="create-task-form">
153
- <i class="fas fa-plus"></i> Create Task
154
- </button>
155
- </div>
156
- </div>
157
- </div>
158
-
159
- <!-- Task Details Modal -->
160
- <div id="task-details-modal" class="modal">
161
- <div class="modal-content">
162
- <div class="modal-header">
163
- <h3 id="task-details-title">Task Details</h3>
164
- <button class="modal-close" onclick="closeModal('task-details-modal')">
165
- <i class="fas fa-times"></i>
166
- </button>
167
- </div>
168
- <div class="modal-body" id="task-details-body">
169
- <!-- Task details will be populated dynamically -->
170
- </div>
171
- <div class="modal-footer">
172
- <button type="button" class="btn btn-secondary" onclick="closeModal('task-details-modal')">
173
- Close
174
- </button>
175
- <button type="button" class="btn btn-primary" onclick="editTask()">
176
- <i class="fas fa-edit"></i> Edit Task
177
- </button>
178
- </div>
179
- </div>
180
- </div>
181
-
182
- <script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.15.0/Sortable.min.js"></script>
183
- <script src="/assets/js/main.js"></script>
184
- <script src="/assets/js/kanban.js"></script>
185
- <script>
186
- // Initialize kanban board
187
- document.addEventListener('DOMContentLoaded', function() {
188
- initializeKanban();
189
- loadKanbanData();
190
- });
191
- </script>
192
- </body>
193
- </html>