geeto 0.6.6 → 0.9.1

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 (205) hide show
  1. package/README.md +23 -9
  2. package/lib/api/copilot-adapter.d.ts +14 -5
  3. package/lib/api/copilot-adapter.d.ts.map +1 -1
  4. package/lib/api/copilot-adapter.js +15 -21
  5. package/lib/api/copilot-adapter.js.map +1 -1
  6. package/lib/api/copilot-sdk.d.ts +3 -16
  7. package/lib/api/copilot-sdk.d.ts.map +1 -1
  8. package/lib/api/copilot-sdk.js +186 -454
  9. package/lib/api/copilot-sdk.js.map +1 -1
  10. package/lib/api/copilot.d.ts +3 -4
  11. package/lib/api/copilot.d.ts.map +1 -1
  12. package/lib/api/copilot.js +28 -28
  13. package/lib/api/copilot.js.map +1 -1
  14. package/lib/api/gemini-sdk.d.ts.map +1 -1
  15. package/lib/api/gemini-sdk.js +11 -77
  16. package/lib/api/gemini-sdk.js.map +1 -1
  17. package/lib/api/gemini.d.ts +2 -2
  18. package/lib/api/gemini.d.ts.map +1 -1
  19. package/lib/api/gemini.js +24 -19
  20. package/lib/api/gemini.js.map +1 -1
  21. package/lib/api/gitlab.d.ts +80 -0
  22. package/lib/api/gitlab.d.ts.map +1 -0
  23. package/lib/api/gitlab.js +192 -0
  24. package/lib/api/gitlab.js.map +1 -0
  25. package/lib/api/openrouter-sdk.d.ts.map +1 -1
  26. package/lib/api/openrouter-sdk.js +11 -76
  27. package/lib/api/openrouter-sdk.js.map +1 -1
  28. package/lib/api/openrouter.d.ts.map +1 -1
  29. package/lib/api/openrouter.js +2 -16
  30. package/lib/api/openrouter.js.map +1 -1
  31. package/lib/api/platform.d.ts +78 -0
  32. package/lib/api/platform.d.ts.map +1 -0
  33. package/lib/api/platform.js +218 -0
  34. package/lib/api/platform.js.map +1 -0
  35. package/lib/cli/input.d.ts +2 -2
  36. package/lib/cli/input.d.ts.map +1 -1
  37. package/lib/cli/input.js +23 -27
  38. package/lib/cli/input.js.map +1 -1
  39. package/lib/cli/menu.d.ts +1 -1
  40. package/lib/cli/menu.d.ts.map +1 -1
  41. package/lib/cli/menu.js +123 -100
  42. package/lib/cli/menu.js.map +1 -1
  43. package/lib/core/copilot-setup.d.ts +9 -8
  44. package/lib/core/copilot-setup.d.ts.map +1 -1
  45. package/lib/core/copilot-setup.js +81 -264
  46. package/lib/core/copilot-setup.js.map +1 -1
  47. package/lib/core/gemini-setup.js +7 -7
  48. package/lib/core/gemini-setup.js.map +1 -1
  49. package/lib/core/gitlab-setup.d.ts +5 -0
  50. package/lib/core/gitlab-setup.d.ts.map +1 -0
  51. package/lib/core/gitlab-setup.js +85 -0
  52. package/lib/core/gitlab-setup.js.map +1 -0
  53. package/lib/core/openrouter-setup.d.ts.map +1 -1
  54. package/lib/core/openrouter-setup.js +17 -0
  55. package/lib/core/openrouter-setup.js.map +1 -1
  56. package/lib/index.js +518 -704
  57. package/lib/index.js.map +1 -1
  58. package/lib/types/index.d.ts +10 -6
  59. package/lib/types/index.d.ts.map +1 -1
  60. package/lib/utils/ai-provider-helpers.d.ts +5 -0
  61. package/lib/utils/ai-provider-helpers.d.ts.map +1 -0
  62. package/lib/utils/ai-provider-helpers.js +23 -0
  63. package/lib/utils/ai-provider-helpers.js.map +1 -0
  64. package/lib/utils/ai-text.d.ts +23 -0
  65. package/lib/utils/ai-text.d.ts.map +1 -0
  66. package/lib/utils/ai-text.js +57 -0
  67. package/lib/utils/ai-text.js.map +1 -0
  68. package/lib/utils/ai-workflow.d.ts +18 -0
  69. package/lib/utils/ai-workflow.d.ts.map +1 -0
  70. package/lib/utils/ai-workflow.js +66 -0
  71. package/lib/utils/ai-workflow.js.map +1 -0
  72. package/lib/utils/branch-naming.d.ts.map +1 -1
  73. package/lib/utils/branch-naming.js +1 -3
  74. package/lib/utils/branch-naming.js.map +1 -1
  75. package/lib/utils/config.d.ts +13 -1
  76. package/lib/utils/config.d.ts.map +1 -1
  77. package/lib/utils/config.js +38 -1
  78. package/lib/utils/config.js.map +1 -1
  79. package/lib/utils/display.d.ts.map +1 -1
  80. package/lib/utils/display.js +4 -3
  81. package/lib/utils/display.js.map +1 -1
  82. package/lib/utils/exec.d.ts.map +1 -1
  83. package/lib/utils/exec.js +10 -2
  84. package/lib/utils/exec.js.map +1 -1
  85. package/lib/utils/git-ai.js +13 -13
  86. package/lib/utils/git-ai.js.map +1 -1
  87. package/lib/utils/git-errors.d.ts.map +1 -1
  88. package/lib/utils/git-errors.js +2 -6
  89. package/lib/utils/git-errors.js.map +1 -1
  90. package/lib/utils/git.d.ts.map +1 -1
  91. package/lib/utils/git.js +5 -0
  92. package/lib/utils/git.js.map +1 -1
  93. package/lib/utils/github-helpers.d.ts +33 -0
  94. package/lib/utils/github-helpers.d.ts.map +1 -0
  95. package/lib/utils/github-helpers.js +101 -0
  96. package/lib/utils/github-helpers.js.map +1 -0
  97. package/lib/utils/prompt-loader.d.ts +9 -0
  98. package/lib/utils/prompt-loader.d.ts.map +1 -0
  99. package/lib/utils/prompt-loader.js +42 -0
  100. package/lib/utils/prompt-loader.js.map +1 -0
  101. package/lib/utils/prompts-embedded.d.ts +2 -0
  102. package/lib/utils/prompts-embedded.d.ts.map +1 -0
  103. package/lib/utils/prompts-embedded.js +255 -0
  104. package/lib/utils/prompts-embedded.js.map +1 -0
  105. package/lib/utils/scramble.d.ts +9 -86
  106. package/lib/utils/scramble.d.ts.map +1 -1
  107. package/lib/utils/scramble.js +27 -279
  108. package/lib/utils/scramble.js.map +1 -1
  109. package/lib/version.d.ts +1 -1
  110. package/lib/version.js +1 -1
  111. package/lib/workflows/alias.d.ts.map +1 -1
  112. package/lib/workflows/alias.js +1 -0
  113. package/lib/workflows/alias.js.map +1 -1
  114. package/lib/workflows/amend.d.ts.map +1 -1
  115. package/lib/workflows/amend.js +1 -5
  116. package/lib/workflows/amend.js.map +1 -1
  117. package/lib/workflows/branch-helpers.d.ts.map +1 -1
  118. package/lib/workflows/branch-helpers.js +0 -1
  119. package/lib/workflows/branch-helpers.js.map +1 -1
  120. package/lib/workflows/commit.d.ts.map +1 -1
  121. package/lib/workflows/commit.js +160 -187
  122. package/lib/workflows/commit.js.map +1 -1
  123. package/lib/workflows/doctor.d.ts +7 -0
  124. package/lib/workflows/doctor.d.ts.map +1 -0
  125. package/lib/workflows/doctor.js +284 -0
  126. package/lib/workflows/doctor.js.map +1 -0
  127. package/lib/workflows/issue.d.ts +1 -1
  128. package/lib/workflows/issue.d.ts.map +1 -1
  129. package/lib/workflows/issue.js +28 -115
  130. package/lib/workflows/issue.js.map +1 -1
  131. package/lib/workflows/main-helpers.d.ts +34 -0
  132. package/lib/workflows/main-helpers.d.ts.map +1 -0
  133. package/lib/workflows/main-helpers.js +346 -0
  134. package/lib/workflows/main-helpers.js.map +1 -0
  135. package/lib/workflows/main-steps.d.ts.map +1 -1
  136. package/lib/workflows/main-steps.js +9 -134
  137. package/lib/workflows/main-steps.js.map +1 -1
  138. package/lib/workflows/main.d.ts +2 -6
  139. package/lib/workflows/main.d.ts.map +1 -1
  140. package/lib/workflows/main.js +44 -381
  141. package/lib/workflows/main.js.map +1 -1
  142. package/lib/workflows/pr.d.ts +2 -2
  143. package/lib/workflows/pr.d.ts.map +1 -1
  144. package/lib/workflows/pr.js +49 -137
  145. package/lib/workflows/pr.js.map +1 -1
  146. package/lib/workflows/prune.d.ts.map +1 -1
  147. package/lib/workflows/prune.js +2 -10
  148. package/lib/workflows/prune.js.map +1 -1
  149. package/lib/workflows/pull.d.ts.map +1 -1
  150. package/lib/workflows/pull.js +2 -24
  151. package/lib/workflows/pull.js.map +1 -1
  152. package/lib/workflows/release-merge.d.ts +12 -0
  153. package/lib/workflows/release-merge.d.ts.map +1 -0
  154. package/lib/workflows/release-merge.js +593 -0
  155. package/lib/workflows/release-merge.js.map +1 -0
  156. package/lib/workflows/release-notes.d.ts +13 -0
  157. package/lib/workflows/release-notes.d.ts.map +1 -0
  158. package/lib/workflows/release-notes.js +141 -0
  159. package/lib/workflows/release-notes.js.map +1 -0
  160. package/lib/workflows/release-recover.d.ts +5 -0
  161. package/lib/workflows/release-recover.d.ts.map +1 -0
  162. package/lib/workflows/release-recover.js +137 -0
  163. package/lib/workflows/release-recover.js.map +1 -0
  164. package/lib/workflows/release-sync.d.ts +7 -0
  165. package/lib/workflows/release-sync.d.ts.map +1 -0
  166. package/lib/workflows/release-sync.js +378 -0
  167. package/lib/workflows/release-sync.js.map +1 -0
  168. package/lib/workflows/release-utils.d.ts +36 -0
  169. package/lib/workflows/release-utils.d.ts.map +1 -0
  170. package/lib/workflows/release-utils.js +150 -0
  171. package/lib/workflows/release-utils.js.map +1 -0
  172. package/lib/workflows/release.d.ts.map +1 -1
  173. package/lib/workflows/release.js +92 -719
  174. package/lib/workflows/release.js.map +1 -1
  175. package/lib/workflows/repo-settings.d.ts +2 -2
  176. package/lib/workflows/repo-settings.d.ts.map +1 -1
  177. package/lib/workflows/repo-settings.js +33 -24
  178. package/lib/workflows/repo-settings.js.map +1 -1
  179. package/lib/workflows/reword.d.ts.map +1 -1
  180. package/lib/workflows/reword.js +154 -151
  181. package/lib/workflows/reword.js.map +1 -1
  182. package/lib/workflows/security-gate.d.ts.map +1 -1
  183. package/lib/workflows/security-gate.js +15 -75
  184. package/lib/workflows/security-gate.js.map +1 -1
  185. package/lib/workflows/settings.d.ts +3 -1
  186. package/lib/workflows/settings.d.ts.map +1 -1
  187. package/lib/workflows/settings.js +319 -19
  188. package/lib/workflows/settings.js.map +1 -1
  189. package/lib/workflows/submodules.d.ts +6 -0
  190. package/lib/workflows/submodules.d.ts.map +1 -0
  191. package/lib/workflows/submodules.js +344 -0
  192. package/lib/workflows/submodules.js.map +1 -0
  193. package/lib/workflows/trello-menu.d.ts +2 -5
  194. package/lib/workflows/trello-menu.d.ts.map +1 -1
  195. package/lib/workflows/trello-menu.js +67 -228
  196. package/lib/workflows/trello-menu.js.map +1 -1
  197. package/package.json +4 -6
  198. package/prompts/branch-name-prompt.md +4 -0
  199. package/prompts/commit-message-prompt.md +12 -0
  200. package/prompts/issue-prompt.md +19 -0
  201. package/prompts/issue-review.with-context.prompt.yml +77 -0
  202. package/prompts/pr-prompt.md +14 -0
  203. package/prompts/release-notes-prompt.md +35 -0
  204. package/prompts/repo-description-prompt.md +1 -0
  205. package/prompts/security-gate-prompt.md +80 -0
@@ -6,43 +6,12 @@ import path from 'node:path';
6
6
  import { fetchTrelloCards, fetchTrelloLists } from '../api/trello.js';
7
7
  import { multiSelect, select } from '../cli/menu.js';
8
8
  import { colors } from '../utils/colors.js';
9
- import { getTrelloConfig, hasTrelloConfig } from '../utils/config.js';
9
+ import { hasTrelloConfig } from '../utils/config.js';
10
10
  import { commandExists, exec } from '../utils/exec.js';
11
11
  import { log } from '../utils/logging.js';
12
12
  /**
13
- * Display Trello lists with formatted output
14
- */
15
- export const handleGetTrelloLists = async () => {
16
- log.step('Fetching Trello Lists');
17
- // Check if Trello is configured
18
- if (!hasTrelloConfig()) {
19
- log.error('Trello is not configured!');
20
- log.info('Please run: geeto --setup-trello');
21
- return;
22
- }
23
- const config = getTrelloConfig();
24
- log.info(`Board ID: ${colors.cyan}${config.boardId}${colors.reset}`);
25
- console.log('');
26
- const spinner = log.spinner();
27
- spinner.start('Fetching lists...');
28
- const lists = await fetchTrelloLists();
29
- if (lists.length === 0) {
30
- spinner.fail('No lists found or failed to fetch');
31
- log.warn('Make sure your Trello credentials are valid and the board exists.');
32
- return;
33
- }
34
- spinner.succeed(`Found ${lists.length} lists`);
35
- log.step(`${colors.cyan}Trello Lists${colors.reset}\n`);
36
- for (const [index, list] of lists.entries()) {
37
- const num = `${index + 1}`.padStart(2, ' ');
38
- console.log(` ${colors.gray}[${num}]${colors.reset} ${colors.cyan}${list.name}${colors.reset}`);
39
- console.log(` ${colors.gray}ID: ${list.id}${colors.reset}`);
40
- }
41
- console.log('');
42
- log.success('Lists fetched successfully!');
43
- };
44
- /**
45
- * Generate tasks.instructions.md from selected Trello list
13
+ * Generate individual task files from selected Trello list cards
14
+ * Creates tasks/ directory with README.md (AI instructions) + card-{id}-{slug}.md per card
46
15
  */
47
16
  export const handleGenerateTaskInstructions = async () => {
48
17
  log.step('Generate Task Instructions');
@@ -91,8 +60,13 @@ export const handleGenerateTaskInstructions = async () => {
91
60
  }
92
61
  spinner2.succeed(`Found ${allCards.length} cards`);
93
62
  console.log('');
63
+ const toSlug = (name) => name
64
+ .toLowerCase()
65
+ .replaceAll(/[^a-z0-9]+/g, '-')
66
+ .replaceAll(/^-|-$/g, '')
67
+ .slice(0, 50);
94
68
  const cardChoices = allCards.map((card) => ({
95
- label: `#${card.idShort} - ${card.name}`,
69
+ label: `${card.shortLink}-${toSlug(card.name)}`,
96
70
  value: card.id,
97
71
  }));
98
72
  const selectedCardIds = await multiSelect('Select cards to include in tasks instruction:', cardChoices);
@@ -103,195 +77,30 @@ export const handleGenerateTaskInstructions = async () => {
103
77
  // Filter only selected cards (preserve original order)
104
78
  const cards = allCards.filter((card) => selectedCardIds.includes(card.id));
105
79
  log.success(`Selected ${colors.cyan}${cards.length}${colors.reset} of ${allCards.length} cards`);
106
- // Generate markdown content
107
- const now = new Date();
108
- const dateStr = now.toLocaleDateString('en-US', {
109
- year: 'numeric',
110
- month: 'long',
111
- day: 'numeric',
112
- });
113
- let markdown = `# Tasks from "${selectedList.name}"
114
-
115
- Generated from Trello board on ${dateStr}
116
-
117
- ---
118
-
119
- ## ⚠️ IMPORTANT INSTRUCTIONS FOR AI AGENTS ⚠️
120
-
121
- **CRITICAL: You MUST follow these rules strictly:**
122
-
123
- 1. **EXECUTE ONLY ONE TASK AT A TIME** - Never work on multiple tasks simultaneously
124
- 2. **STOP after completing each task** - Do NOT automatically proceed to the next task
125
- 3. **Wait for explicit user confirmation** before moving to the next task
126
- 4. **Ask the user for validation** after implementation with clear options
127
- 5. **Test & Verify** - Always provide testing steps and ask user to confirm
128
-
129
- **WORKFLOW:**
130
- \`\`\`
131
- Step 1: Read only the FIRST uncompleted task (with - [ ])
132
- Step 2: Execute ONLY that one task
133
- Step 3: Test the implementation (if applicable)
134
- Step 4: STOP and present completion summary with options
135
- Step 5: Ask user with clear choices:
136
- [ ] Implementation looks good, proceed to next task
137
- [ ] Has bugs/issues that need fixing
138
- [ ] Needs more testing
139
- [ ] Needs more detailed explanation
140
- Step 6: Wait for user response and act accordingly
141
- Step 7: If confirmed OK, mark done and proceed to Step 1
142
- \`\`\`
143
-
144
- **AFTER COMPLETING IMPLEMENTATION:**
145
- Always ask user with structured options using ask_questions tool:
146
- \`\`\`
147
- "Implementation completed! How does it look?"
148
- Options:
149
- - ✅ Looks good, no bugs found
150
- - 🐛 Has bugs, needs fixing
151
- - 🧪 Needs more testing
152
- - 📝 Needs more detailed explanation
153
- - ↩️ Needs rollback/revert changes
154
- \`\`\`
155
-
156
- **❌ DO NOT:**
157
- - Execute multiple tasks in one go
158
- - Continue to next task without confirmation
159
- - Assume implementation is perfect without user validation
160
- - Make assumptions about database schema, models, or queries without checking
161
- - Skip testing or verification steps
162
-
163
- **✅ DO:**
164
- - Work on exactly one task
165
- - Stop and wait after each task
166
- - Present clear summary of changes
167
- - Ask for permission to continue with structured options
168
- - Provide testing steps for user to verify
169
- - Check both new data and old data compatibility
170
-
171
- **📋 FOR FULLSTACK/BACKEND PROJECTS:**
172
-
173
- Before implementing any task involving database, API, or data logic:
174
-
175
- 1. **Check migrations** - Look at recent migration files to understand schema changes
176
- 2. **Review models** - Examine model definitions and relationships
177
- 3. **Read existing queries** - Check similar queries or repository patterns in the codebase
178
- 4. **Understand the data flow** - Trace how data moves through the application
179
-
180
- **When creating NEW ENDPOINTS/CONTROLLERS/SERVICES:**
181
- 1. **Find the most similar existing endpoint** - Look for endpoints with similar functionality
182
- 2. **Copy the exact structure** - Use the same file organization, naming, and patterns
183
- 3. **Match the code patterns exactly** - Request validation, error handling, response format
184
- 4. **Keep consistency** - Controller methods, service layer, repository patterns should be identical
185
- 5. **Reuse existing utilities** - Auth middleware, validators, error handlers, etc
186
-
187
- Example: If creating a "Create User" endpoint, find "Create Product" or similar and replicate its exact structure.
188
-
189
- **Never assume:**
190
- - Table structures or column names
191
- - Model relationships or foreign keys
192
- - Query patterns or ORM usage
193
- - API endpoint structures
194
- - Request/response formats
195
- - Validation rules
196
-
197
- **Always verify** by reading the actual code first, then implement based on what exists **exactly**.
198
-
199
- **📋 FOR FRONTEND PROJECTS:**
200
-
201
- Before implementing any UI/frontend task:
202
-
203
- 1. **Review existing components** - Check similar components for patterns and conventions
204
- 2. **Check styling approach** - Identify CSS framework (Tailwind, CSS Modules, styled-components, etc)
205
- 3. **Understand state management** - See how state is managed (Redux, Zustand, Context, props)
206
- 4. **Review API integration** - Look at how data fetching and error handling is done
207
- 5. **Check type definitions** - Read existing interfaces/types for props and data structures
208
- 6. **Follow naming conventions** - Match existing component and file naming patterns
209
-
210
- **When creating NEW PAGES/ROUTES:**
211
- 1. **Find the most similar existing page** - Look for pages with similar functionality
212
- 2. **Copy the exact structure** - Use the same file organization, imports, and layout
213
- 3. **Match the code patterns exactly** - Don't deviate from the established patterns
214
- 4. **Keep consistency** - Naming, export style, component composition should be identical
215
- 5. **Reuse existing components** - Don't create new ones if similar components exist
216
-
217
- Example: If creating a "User Settings" page, find "Account Settings" or similar page and replicate its structure exactly.
218
-
219
- **Never assume:**
220
- - Component structure or prop patterns
221
- - CSS class naming or styling approach
222
- - State management implementation
223
- - API client or fetch patterns
224
- - File/folder naming conventions
225
- - Page/route structure
226
-
227
- **Always match** the existing codebase style and patterns **exactly**.
228
-
229
- ---
230
-
231
- ## Tasks
232
-
233
- **Total: ${cards.length} tasks**
234
-
235
- `;
236
- for (const [index, card] of cards.entries()) {
237
- markdown += `### Task ${index + 1} of ${cards.length}\n\n`;
238
- markdown += `- **${card.name}** (#${card.idShort})\n`;
239
- markdown += ` - Trello URL: ${card.url}\n`;
240
- if (card.desc?.trim()) {
241
- markdown += `\n**Description:**\n${card.desc}\n`;
242
- }
243
- // Include Trello checklists (if any)
244
- if (card.checklists && card.checklists.length > 0) {
245
- for (const checklist of card.checklists) {
246
- if (checklist.checkItems && checklist.checkItems.length > 0) {
247
- markdown += `\n**${checklist.name}:**\n`;
248
- for (const item of checklist.checkItems) {
249
- const checked = item.state === 'complete' ? 'x' : ' ';
250
- markdown += `- [${checked}] ${item.name}\n`;
251
- }
252
- }
253
- }
254
- }
255
- markdown += `\n---\n\n`;
256
- }
257
- markdown += `
258
- ## Instructions for Human Users
259
-
260
- This file contains tasks from your Trello board. To work through these:
261
-
262
- 1. **Execute each task one by one** from top to bottom (or let your AI agent do it)
263
- 2. **When a task is completed**, mark it done or delete it from this file
264
- 3. **If using an AI agent**, confirm after each task before proceeding
265
- 4. **Keep this file updated** as you progress
266
-
267
- ---
268
-
269
- *Generated by Geeto CLI - Trello Integration*
270
- `;
271
80
  // Detect editor from terminal environment to determine output path
272
81
  let editorCommand = null;
273
- let outputPath;
82
+ let tasksDir;
274
83
  const termProgram = process.env.TERM_PROGRAM;
275
84
  const vsCodeHandle = process.env.VSCODE_GIT_IPC_HANDLE;
276
85
  const vsCodeInjection = process.env.VSCODE_INJECTION;
277
86
  const cursorExecutable = process.env.CURSOR_EXECUTABLE;
278
87
  if (cursorExecutable || termProgram === 'cursor') {
279
- // Running in Cursor terminal - save to .cursor/
280
- outputPath = path.join(process.cwd(), '.cursor', 'tasks.instructions.md');
88
+ // Running in Cursor terminal - save to .cursor/tasks/
89
+ tasksDir = path.join(process.cwd(), '.cursor', 'tasks');
281
90
  if (commandExists('cursor')) {
282
91
  editorCommand = 'cursor';
283
92
  }
284
93
  }
285
94
  else if (vsCodeHandle || vsCodeInjection || termProgram === 'vscode') {
286
- // Running in VSCode terminal - save to .github/instructions/
287
- outputPath = path.join(process.cwd(), '.github', 'instructions', 'tasks.instructions.md');
95
+ // Running in VSCode terminal - save to .github/instructions/tasks/
96
+ tasksDir = path.join(process.cwd(), '.github', 'instructions', 'tasks');
288
97
  if (commandExists('code')) {
289
98
  editorCommand = 'code';
290
99
  }
291
100
  }
292
101
  else if (termProgram?.toLowerCase().includes('jetbrains')) {
293
- // Running in JetBrains IDE terminal - save to .idea/
294
- outputPath = path.join(process.cwd(), '.idea', 'tasks.instructions.md');
102
+ // Running in JetBrains IDE terminal - save to .idea/tasks/
103
+ tasksDir = path.join(process.cwd(), '.idea', 'tasks');
295
104
  const jetbrainsCommands = ['webstorm', 'idea', 'pycharm', 'phpstorm', 'rubymine', 'goland'];
296
105
  for (const cmd of jetbrainsCommands) {
297
106
  if (commandExists(cmd)) {
@@ -301,25 +110,60 @@ This file contains tasks from your Trello board. To work through these:
301
110
  }
302
111
  }
303
112
  else {
304
- // Fallback - save to root
305
- outputPath = path.join(process.cwd(), 'tasks.instructions.md');
113
+ // Fallback - save to .github/instructions/tasks/
114
+ tasksDir = path.join(process.cwd(), '.github', 'instructions', 'tasks');
306
115
  }
307
- // Write to file
116
+ // Write task files
308
117
  try {
309
- // Create directory if it doesn't exist
310
- const outputDir = path.dirname(outputPath);
311
- if (!fs.existsSync(outputDir)) {
312
- fs.mkdirSync(outputDir, { recursive: true });
118
+ // Create tasks directory if it doesn't exist
119
+ if (!fs.existsSync(tasksDir)) {
120
+ fs.mkdirSync(tasksDir, { recursive: true });
121
+ }
122
+ // Write individual card files in tasks/ folder
123
+ for (const card of cards) {
124
+ const slug = toSlug(card.name);
125
+ const fileName = `card-${card.idShort}-${slug}.md`;
126
+ let cardContent = `# Task: ${card.name} (#${card.idShort})
127
+
128
+ - Trello URL: ${card.url}
129
+
130
+ ## Description
131
+
132
+ ${card.desc?.trim() ? card.desc : 'No description provided.'}
133
+
134
+ ## Checklists
135
+
136
+ `;
137
+ if (card.checklists && card.checklists.length > 0) {
138
+ let hasChecklistItems = false;
139
+ for (const checklist of card.checklists) {
140
+ if (checklist.checkItems && checklist.checkItems.length > 0) {
141
+ hasChecklistItems = true;
142
+ cardContent += `### ${checklist.name}\n\n`;
143
+ for (const item of checklist.checkItems) {
144
+ const checked = item.state === 'complete' ? 'x' : ' ';
145
+ cardContent += `- [${checked}] ${item.name}\n`;
146
+ }
147
+ cardContent += '\n';
148
+ }
149
+ }
150
+ if (!hasChecklistItems) {
151
+ cardContent += 'No checklists.\n';
152
+ }
153
+ }
154
+ else {
155
+ cardContent += 'No checklists.\n';
156
+ }
157
+ fs.writeFileSync(path.join(tasksDir, fileName), cardContent, 'utf8');
158
+ log.info(`Written: ${colors.cyan}${fileName}${colors.reset}`);
313
159
  }
314
- fs.writeFileSync(outputPath, markdown, 'utf8');
315
160
  console.log('');
316
- log.success(`Task instructions generated: ${colors.cyan}${outputPath}${colors.reset}`);
317
- log.info(`Total tasks: ${colors.cyan}${cards.length}${colors.reset}`);
318
- // Auto-open file in detected editor
161
+ log.success(`Generated ${colors.cyan}${cards.length}${colors.reset} task files in ${colors.cyan}${tasksDir}${colors.reset}`);
162
+ // Auto-open tasks directory in detected editor
319
163
  if (editorCommand) {
320
164
  try {
321
- exec(`${editorCommand} "${outputPath}"`, true);
322
- log.info(`Opening file in ${editorCommand}...`);
165
+ exec(`${editorCommand} "${tasksDir}"`, true);
166
+ log.info(`Opening tasks directory in ${editorCommand}...`);
323
167
  }
324
168
  catch {
325
169
  // Ignore open errors (not critical)
@@ -337,7 +181,7 @@ This file contains tasks from your Trello board. To work through these:
337
181
  const hasTrelloSection = lines.some((line) => line.trim() === '# Trello-generated tasks');
338
182
  if (!hasTrelloSection) {
339
183
  // Add complete Trello-generated tasks section to .gitignore
340
- const trelloSection = `\n# Trello-generated tasks\n.github/instructions/tasks.instructions.md\n.cursor/tasks.instructions.md\n.idea/tasks.instructions.md\n`;
184
+ const trelloSection = `\n# Trello-generated tasks\n**/tasks/card-*.md\n`;
341
185
  const newContent = gitignoreContent.endsWith('\n')
342
186
  ? `${gitignoreContent}${trelloSection}`
343
187
  : `${gitignoreContent}${trelloSection}`;
@@ -351,7 +195,7 @@ This file contains tasks from your Trello board. To work through these:
351
195
  }
352
196
  }
353
197
  catch (error) {
354
- log.error(`Failed to write file: ${error instanceof Error ? error.message : String(error)}`);
198
+ log.error(`Failed to write files: ${error instanceof Error ? error.message : String(error)}`);
355
199
  }
356
200
  };
357
201
  /**
@@ -377,15 +221,10 @@ export const showTrelloMenu = async () => {
377
221
  return;
378
222
  }
379
223
  const choice = await select('What would you like to do?', [
380
- { label: 'Get Trello lists', value: 'lists' },
381
- { label: 'Generate tasks.instructions.md', value: 'generate' },
224
+ { label: 'Generate task files from cards', value: 'generate' },
382
225
  { label: 'Back to main menu', value: 'back' },
383
226
  ]);
384
227
  switch (choice) {
385
- case 'lists': {
386
- await handleGetTrelloLists();
387
- break;
388
- }
389
228
  case 'generate': {
390
229
  await handleGenerateTaskInstructions();
391
230
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"trello-menu.js","sourceRoot":"","sources":["../../src/workflows/trello-menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trello-menu.js","sourceRoot":"","sources":["../../src/workflows/trello-menu.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geeto",
3
- "version": "0.6.6",
3
+ "version": "0.9.1",
4
4
  "description": "AI-powered Git workflow automation CLI with smart commit messages, branch naming, and Trello integration",
5
5
  "author": {
6
6
  "email": "amdev142@gmail.com",
@@ -14,6 +14,7 @@
14
14
  },
15
15
  "files": [
16
16
  "lib",
17
+ "prompts",
17
18
  "package.json",
18
19
  "README.md",
19
20
  "LICENSE"
@@ -23,7 +24,7 @@
23
24
  "dev": "bun src/index.ts",
24
25
  "start": "./lib/index.js",
25
26
  "clean": "rm -rf lib",
26
- "prebuild": "bun run clean",
27
+ "prebuild": "bun scripts/generate-prompts.ts && bun run clean",
27
28
  "typecheck": "tsc --noEmit",
28
29
  "lint": "eslint src --ext .ts",
29
30
  "lint:fix": "eslint src --ext .ts --fix",
@@ -58,6 +59,7 @@
58
59
  "postpublish": "pinst --enable",
59
60
  "lint-staged": "lint-staged",
60
61
  "tools:install": "sh tools/install.sh",
62
+ "install:local": "bash scripts/install-local.sh",
61
63
  "danger:ci": "danger ci",
62
64
  "danger:local": "danger pr",
63
65
  "copilot": "gh"
@@ -118,11 +120,7 @@
118
120
  "bun": ">=1.0.0"
119
121
  },
120
122
  "dependencies": {
121
- "@github/copilot-sdk": "^0.1.25",
122
123
  "@google/genai": "^1.42.0",
123
124
  "@openrouter/sdk": "^0.5.1"
124
- },
125
- "patchedDependencies": {
126
- "@github/copilot-sdk@0.1.25": "patches/@github%2Fcopilot-sdk@0.1.25.patch"
127
125
  }
128
126
  }
@@ -0,0 +1,4 @@
1
+ Generate a SHORT git branch name suffix from this input. Output ONLY the kebab-case suffix (lowercase-with-hyphens), max 2-3 words, 3-25 chars. Be concise — pick the core noun/verb only.
2
+
3
+ Good: fix-auth, add-cache, user-roles, db-migrate
4
+ Bad: add-ai-prompts-and-utils, fix-authentication-module-error, update-user-profile-page
@@ -0,0 +1,12 @@
1
+ Generate a conventional commit message from this git diff. Output ONLY the commit message in this format:
2
+
3
+ <type>(<scope>): <short summary>
4
+
5
+ <Detailed multi-line body explaining the change. Wrap lines at ~72 characters. LIMITS: subject max 100 chars; body max 360 chars. Include why the change was made and any important notes. Separate subject and body by a single blank line. Do not include any extraneous commentary or markers. Use imperative mood.
6
+
7
+ Example:
8
+ refactor(ai): migrate providers to SDKs
9
+
10
+ Replaces direct API/CLI calls for Copilot and Gemini with SDK integrations.
11
+ This simplifies code, improves maintainability, and adds dynamic model
12
+ fetching. Updates .gitignore for geeto binaries.
@@ -0,0 +1,19 @@
1
+ Generate a GitHub Issue title and body from this description.
2
+ IMPORTANT: Always write in English regardless of the input language.
3
+ Output ONLY in this exact format (no extra markers):
4
+
5
+ TITLE: <concise issue title, max 72 chars>
6
+
7
+ BODY:
8
+
9
+ ## Description
10
+
11
+ <clear description of the issue>
12
+
13
+ ## Expected Behavior / Goal
14
+
15
+ <what should happen or what is the goal>
16
+
17
+ ## Additional Context
18
+
19
+ <any relevant details>
@@ -0,0 +1,77 @@
1
+ messages:
2
+ - role: system
3
+ content: >+
4
+ PROJECT CONTEXT (short):
5
+ Name: geeto
6
+ Type: Node.js/TypeScript CLI toolkit integrating AI providers and Git workflows.
7
+ Layout:
8
+ - `src/` TypeScript sources (api, cli, core, utils, workflows)
9
+ - `lib/` compiled JS used by the CLI
10
+ - `.github/workflows/` contains CI workflows; `auto-add-ai-label-on-open.yml` runs AI assessments on new issues.
11
+ - `README.md` is full documentation.
12
+
13
+ GUIDELINES for using this context:
14
+ - Use this short context to ground AI replies about repository behavior, conventions, and where code lives.
15
+ - Prefer short labels: `bug`, `feature`, `docs`, `usage`, `help`, `tool`, `question`.
16
+ - Keep public issue comments concise; include structured sections (Type, Assessment, Details, Suggested labels, Questions, Next steps, Summary).
17
+
18
+ Presentation & tone:
19
+ - Start with a friendly reply that feels personal.
20
+ - Explain findings in a logical, step-by-step way (use numbered or short bullet steps) so readers can follow troubleshooting or implementation advice.
21
+ - End with a short closing summary that restates the recommended next step(s).
22
+
23
+ Off-topic handling:
24
+ - If the issue is clearly outside this repository's scope (e.g., asking about unrelated frameworks, third-party services not integrated here, or general programming homework), respond with a short, polite nudge explaining it's off-topic and point to the right resources.
25
+ - Use a light, slightly witty tone (a gentle "disindir") but never rude or insulting. Always be helpful: offer where to ask instead (Stack Overflow, relevant project, or documentation) and include a link to `CONTRIBUTING.md` and `README.md` for repo-specific guidance.
26
+ - Suggested labels to add when off-topic: `off-topic`, `needs-info`, `question`.
27
+ - Example (Indonesian): "Sepertinya masalah ini di luar lingkup repo ini — sepertinya terkait [tool X]. Coba tanyakan di repo/tool tersebut atau di Stack Overflow. Baca juga CONTRIBUTING.md untuk pedoman kontribusi."
28
+ - Example (English): "This looks outside this repository's scope — it seems related to [tool X]. Please ask the maintainer/project for that tool or try Stack Overflow. See CONTRIBUTING.md for contribution guidelines."
29
+
30
+ - role: system
31
+ content: >+
32
+ You are an experienced project issue reviewer. Use the PROJECT CONTEXT above when assessing issues so replies reference the repository layout and conventions.
33
+
34
+ For the given issue ({{input}}), perform the following checks and provide a concise structured output.
35
+
36
+ 1) Categorize the issue as one of: `bug`, `feature request`, `docs`, `usage/help`, or `other`.
37
+
38
+ 2) For BUGs:
39
+ - Determine severity: `critical` / `high` / `medium` / `low`.
40
+ - Determine reproducibility: `always` / `often` / `sometimes` / `rare` / `cannot reproduce`.
41
+ - Summarize 1–3 reproduction steps if present; otherwise state `Reproduction steps: missing`.
42
+ - Suggest likely module/area involved (e.g., `cli`, `installer`, `core`, `docs`).
43
+ - Recommend triage actions (request logs, version, minimal repro, or small PR/patch).
44
+
45
+ 3) For FEATURE REQUESTs:
46
+ - Summarize the feature goal and benefit in one sentence.
47
+ - Propose short acceptance criteria (1–3 items).
48
+ - Estimate implementation complexity: `low` / `medium` / `high`.
49
+
50
+ 4) For ALL issues:
51
+ - If relevant, extract a brief `How to use (from README):` block (2–6 commands) to help reproduce or test, but keep it short.
52
+ - Ask up to 3 direct QUESTIONS if information is missing.
53
+ - Suggest 1–3 short labels (single words) such as `bug`, `feature`, `docs`, `usage`, `help`, `tool`.
54
+
55
+ 5) Format output in the following structured sections (concise and clear):
56
+ - `Type:` (bug / feature / docs / usage / other)
57
+ - `Assessment:` (for bugs: severity & reproducibility; for features: goal & complexity)
58
+ - `Details:` (reproduction steps, modules implicated, brief README excerpt if relevant)
59
+ - `Suggested labels:` (list of short labels)
60
+ - `Questions:` (0–3 short questions if needed)
61
+ - `Next steps:` (3 brief actions for triage or implementation)
62
+ - `Summary:` one-sentence final summary
63
+
64
+ 6) Language:
65
+ - Answer in the same language as the issue. If the issue is written in Indonesian, answer in Indonesian. If the issue is written in English, answer in English.
66
+
67
+ 7) Limit output: keep it concise (max ~300 words), use simple markdown, and include short examples when helpful.
68
+
69
+ - role: user
70
+ content: '{{input}}'
71
+ model: openai/gpt-4o-mini
72
+ modelParameters:
73
+ max_tokens: 700
74
+ temperature: 0.2
75
+
76
+ testData: []
77
+ evaluators: []
@@ -0,0 +1,14 @@
1
+ Generate a Pull Request title and body from this git diff.
2
+ Output ONLY in this exact format (no extra markers):
3
+
4
+ TITLE: <concise PR title, max 72 chars, imperative mood>
5
+
6
+ BODY:
7
+
8
+ ## Summary
9
+
10
+ <1-2 sentence summary of what this PR does>
11
+
12
+ ## Changes
13
+
14
+ <bullet list of key changes>
@@ -0,0 +1,35 @@
1
+ You are a release notes writer. Given a list of git commit messages, generate user-friendly release notes in {{langLabel}}. Output ONLY the release notes content (no title/heading, no version number, no date — those are added separately).
2
+
3
+ Rules:
4
+
5
+ - Start with "### What's New?" as the top-level section
6
+ - Group changes into subsections: "#### New Features", "#### Bug Fixes", "#### Other Improvements"
7
+ - Only include subsections that have items (skip empty ones)
8
+ - Use simple, non-technical language that end users can understand
9
+ - Each item should be a bullet point starting with "-"
10
+ - Strip conventional commit prefixes (feat:, fix:, chore:, etc.)
11
+ - Keep it concise but informative
12
+ - If there are breaking changes, add a "#### Breaking Changes" subsection at the top
13
+ - Do NOT include commit hashes or author names
14
+
15
+ Formatting (follow EXACTLY — this is markdownlint-compliant):
16
+
17
+ - Always put ONE blank line after EVERY heading (### or ####) before the first bullet
18
+ - Always put ONE blank line after the last bullet in a section before the next #### heading
19
+ - Never have more than one consecutive blank line
20
+ - Example output:
21
+
22
+ ### What's New?
23
+
24
+ #### New Features
25
+
26
+ - Feature description here
27
+ - Another feature
28
+
29
+ #### Bug Fixes
30
+
31
+ - Fix description here
32
+
33
+ #### Other Improvements
34
+
35
+ - Improvement here
@@ -0,0 +1 @@
1
+ Analyze this README and write a short GitHub repo description (max 150 chars). Concise, informative. Output ONLY the text, no quotes.