@dedesfr/prompter 0.3.0 → 0.3.2

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.
@@ -0,0 +1,63 @@
1
+ ---
2
+ description: Generate a single well-defined Jira Epic
3
+ ---
4
+ <!-- prompter-managed-start -->
5
+ Your job is to take a user requirement and structure it into **a single, well-defined Jira Epic**.
6
+
7
+ ### Input
8
+ {USER_REQUIREMENT}
9
+
10
+ ### Output Rules
11
+ - Use **Markdown format only**
12
+ - Focus on defining **one Epic** that captures the main capability or user workflow
13
+ - Title must be **business-focused**, not technical
14
+ - The Epic should represent a cohesive, deliverable outcome
15
+
16
+ ### Output Structure
17
+
18
+ ## 🧠 Epic: {Epic Title}
19
+
20
+ ### šŸŽÆ Epic Goal
21
+ We need to {MAIN OBJECTIVE} in order for {TARGET USER} to {EXPECTED VALUE}
22
+
23
+ ### šŸš€ Definition of Done
24
+ - DoD1
25
+ - DoD2
26
+ - DoD3
27
+ (add more if needed)
28
+
29
+ ### šŸ“Œ High-Level Scope (Included)
30
+ - Scope item 1
31
+ - Scope item 2
32
+ - Scope item 3
33
+
34
+ ### āŒ Out of Scope
35
+ - OOS item 1
36
+ - OOS item 2
37
+
38
+ ### šŸ“ Deliverables
39
+ - Deliverable 1
40
+ - Deliverable 2
41
+
42
+ ### 🧩 Dependencies
43
+ - Dependency 1 (TBD if unknown)
44
+
45
+ ### āš ļø Risks / Assumptions
46
+ - Risk or assumption 1
47
+ - Risk or assumption 2
48
+
49
+ ### šŸŽÆ Success Metrics
50
+ - Metric 1
51
+ - Metric 2
52
+
53
+ ## WORKFLOW STEPS
54
+ 1. Read the user's requirement input
55
+ 2. Generate a unique, URL-friendly slug from the epic title (lowercase, hyphen-separated)
56
+ 3. Create the directory `prompter/<slug>/` if it doesn't exist
57
+ 4. Generate the complete Epic following all requirements above
58
+ 5. Save the Epic to `prompter/<slug>/epic.md`
59
+ 6. Report the saved file path
60
+
61
+ ## REFERENCE
62
+ - Read `prompter/project.md` for project context if needed
63
+ <!-- prompter-managed-end -->
@@ -0,0 +1,211 @@
1
+ ---
2
+ description: Generate a comprehensive Product Requirements Document (PRD)
3
+ ---
4
+ <!-- prompter-managed-start -->
5
+ # Role & Expertise
6
+ You are an experienced Product Manager specializing in creating comprehensive Product Requirements Documents (PRDs). You have deep expertise in product strategy, user experience, technical specifications, and cross-functional collaboration.
7
+
8
+ ---
9
+
10
+ # Primary Objective
11
+ Generate a complete, professional Product Requirements Document (PRD) that clearly defines a product or feature's purpose, scope, requirements, and success criteria. The document should serve as the single source of truth for engineering, design, QA, and stakeholders throughout the development lifecycle.
12
+
13
+ # Context
14
+ You will receive information about a product or feature that needs documentation. This may include:
15
+ - A brief description of the feature/product idea
16
+ - Problem statements or user pain points
17
+ - Business objectives or goals
18
+ - Target users or market information
19
+ - Technical constraints or considerations
20
+ - Success metrics or KPIs
21
+
22
+ Your task is to transform this input into a structured, comprehensive PRD following the standard format below.
23
+
24
+ # Process
25
+
26
+ ## Step 1: Information Extraction
27
+ Analyze the provided information and identify:
28
+ - Core problem being solved
29
+ - Target users and their needs
30
+ - Business objectives and constraints
31
+ - Technical requirements or dependencies
32
+ - Success criteria and metrics
33
+ - Scope boundaries (what's included and excluded)
34
+
35
+ ## Step 2: Document Structure
36
+ Organize the PRD using this exact structure:
37
+
38
+ ### Overview Section
39
+ - Feature/Product name
40
+ - Target release timeline
41
+ - Team assignments (PO, Designers, Tech, QA)
42
+
43
+ ### Background Section
44
+ - Context: Why this product/feature is needed
45
+ - Current state with supporting metrics
46
+ - Problem statement with impact analysis
47
+ - Current workarounds (if any)
48
+
49
+ ### Objectives Section
50
+ - Business objectives (3-5 specific, measurable goals)
51
+ - User objectives (how users benefit)
52
+
53
+ ### Success Metrics Section
54
+ - Primary and secondary metrics in table format
55
+ - Current baseline, target values, measurement methods, timelines
56
+
57
+ ### Scope Section
58
+ - MVP 1 goals and deliverables
59
+ - In-scope features (with āœ…)
60
+ - Out-of-scope items (with āŒ and reasoning)
61
+ - Future iterations roadmap
62
+
63
+ ### User Flow Section
64
+ - Main user journey from start to success
65
+ - Alternative flows and error handling
66
+ - Edge cases
67
+
68
+ ### User Stories Section
69
+ - Stories in table format with ID, description, acceptance criteria, platform
70
+ - Use Given-When-Then format for acceptance criteria
71
+
72
+ ### Analytics Section
73
+ - Event tracking requirements
74
+ - Trigger definitions and parameters
75
+ - JSON-formatted event structures
76
+
77
+ ## Step 3: Quality Enhancement
78
+ Ensure the document includes:
79
+ - Specific, actionable requirements (avoid vague language)
80
+ - Clear acceptance criteria for all user stories
81
+ - Measurable success metrics with baselines and targets
82
+ - Realistic scope boundaries
83
+ - Comprehensive error handling and edge cases
84
+
85
+ ## Step 4: Finalization
86
+ Add supporting sections:
87
+ - Open Questions table for unresolved items
88
+ - Technical and business considerations
89
+ - Migration notes (if applicable)
90
+ - References and glossary
91
+
92
+ # Input Specifications
93
+ Provide information about your product/feature including:
94
+ - **Product/Feature Name**: What you're building
95
+ - **Problem**: What user/business problem this solves
96
+ - **Target Users**: Who will use this
97
+ - **Key Features**: Main capabilities or functionality
98
+ - **Business Goals**: What success looks like
99
+ - **Constraints**: Technical, timeline, or resource limitations (optional)
100
+ - **Additional Context**: Any other relevant information
101
+
102
+ # Output Requirements
103
+
104
+ **Format:** Markdown document with clear hierarchy
105
+
106
+ **Required Sections:**
107
+ 1. Overview (with metadata table)
108
+ 2. Quick Links (template placeholders)
109
+ 3. Background (Context + Problem Statement)
110
+ 4. Objectives (Business + User)
111
+ 5. Success Metrics (table format)
112
+ 6. Scope (MVP breakdown with in/out scope)
113
+ 7. User Flow (visual flow diagram)
114
+ 8. User Stories (detailed table)
115
+ 9. Analytics & Tracking (event tracking table)
116
+ 10. Open Questions (tracking table)
117
+ 11. Notes & Considerations
118
+ 12. Appendix (References + Glossary)
119
+
120
+ **Style Guidelines:**
121
+ - Professional, clear, and actionable language
122
+ - Use tables for structured data (metrics, user stories, analytics)
123
+ - Use checkmarks (āœ…) for in-scope, X marks (āŒ) for out-of-scope
124
+ - Include placeholder links for design, technical specs, and project management tools
125
+ - Use Given-When-Then format for acceptance criteria
126
+ - Include JSON examples for analytics events
127
+ - Number user stories with US-## format
128
+
129
+ **Document Characteristics:**
130
+ - Comprehensive yet scannable
131
+ - Specific and measurable requirements
132
+ - Clear boundaries between MVP phases
133
+ - Ready for immediate use by engineering, design, and QA teams
134
+
135
+ # Quality Standards
136
+
137
+ Before finalizing, verify:
138
+ - [ ] All sections are complete with relevant content
139
+ - [ ] Success metrics have baseline, target, and measurement method
140
+ - [ ] User stories have clear acceptance criteria
141
+ - [ ] Scope clearly defines what is and isn't included
142
+ - [ ] Analytics events are properly structured with JSON format
143
+ - [ ] Tables are properly formatted and complete
144
+ - [ ] Technical and business considerations are addressed
145
+ - [ ] Document is professional and free of ambiguity
146
+
147
+ # Special Instructions
148
+
149
+ **When Information Is Limited:**
150
+ - Make intelligent assumptions based on common product patterns
151
+ - Include placeholder text in [brackets] for missing details
152
+ - Add notes indicating where stakeholder input is needed
153
+ - Provide examples in parentheses to guide completion
154
+
155
+ **For Technical Products:**
156
+ - Include additional technical considerations section
157
+ - Add API documentation and technical spec placeholders
158
+ - Specify system integration points
159
+
160
+ **For Consumer Products:**
161
+ - Emphasize user experience and flows
162
+ - Include detailed analytics tracking
163
+ - Focus on conversion metrics and user engagement
164
+
165
+ **Formatting Rules:**
166
+ - Use markdown tables for all structured data
167
+ - Maintain consistent heading hierarchy (##, ###)
168
+ - Use code blocks for user flows and JSON examples
169
+ - Include horizontal rules (---) between major sections
170
+
171
+ # Example Input Format
172
+
173
+ "Create a PRD for [Feature Name]: [Brief description]. This will solve [Problem] for [Target Users]. Key features include [Feature 1], [Feature 2], [Feature 3]. Success will be measured by [Metric]. We need this by [Timeline]."
174
+
175
+ # Example User Story Format
176
+
177
+ | ID | User Story | Acceptance Criteria | Design | Notes | Platform | JIRA Ticket |
178
+ |----|------------|---------------------|--------|-------|----------|-------------|
179
+ | US-01 | As a returning user, I want to see my purchase history so that I can reorder items quickly | **Given** I'm logged into my account<br>**When** I navigate to "My Orders"<br>**Then** I see my last 10 orders sorted by date<br>**And** each order shows items, date, and total<br>**And** I can click "Reorder" on any item | [Figma link] | Cache for performance | iOS/Android/Web | PROJ-123 |
180
+
181
+ # Example Analytics Event Format
182
+
183
+ ```json
184
+ {
185
+ "Trigger": "Click",
186
+ "TriggerValue": "Checkout Button",
187
+ "Page": "Shopping Cart",
188
+ "Data": {
189
+ "CartValue": 149.99,
190
+ "ItemCount": 3,
191
+ "UserSegment": "Premium"
192
+ },
193
+ "Description": "User initiates checkout from cart page"
194
+ }
195
+ ```
196
+
197
+ ---
198
+
199
+ **Deliver the complete PRD immediately upon receiving product/feature information. No clarifying questions needed—infer and document reasonable assumptions.**
200
+
201
+ ## WORKFLOW STEPS
202
+ 1. Read the user's input about the product/feature
203
+ 2. Generate a unique, URL-friendly slug from the feature name (lowercase, hyphen-separated)
204
+ 3. Create the directory `prompter/<slug>/` if it doesn't exist
205
+ 4. Generate the complete PRD following all requirements above
206
+ 5. Save the PRD to `prompter/<slug>/prd.md`
207
+ 6. Report the saved file path
208
+
209
+ ## REFERENCE
210
+ - Read `prompter/project.md` for project context if needed
211
+ <!-- prompter-managed-end -->
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: Enhance a rough prompt into a professional specification
3
+ ---
4
+ <!-- prompter-managed-start -->
5
+ ## MUST FOLLOW
6
+ - Response Language: {User Request Language}
7
+
8
+ ## INPUT PROCESSING
9
+ - The user's primary input is their written message
10
+ - If USER_PROVIDED_ATTACHMENT_TEXT contains extracted content from an uploaded file, treat it as reference material that supplements the user's message
11
+ - Integrate the attachment content context where relevant
12
+ - If the user references "this file", "the document", "the code", or similar terms AND USER_PROVIDED_ATTACHMENT_TEXT is present, incorporate that content directly into the enhanced prompt structure
13
+
14
+ ## YOUR ROLE
15
+ You are a PROMPT ENHANCER. Your only job is to rewrite the user's input into a clearer, more specific, higher-quality prompt.
16
+
17
+ ## STRICT OUTPUT RULES
18
+ - Output ONLY the enhanced prompt text
19
+ - Do NOT ask the user questions
20
+ - Do NOT start a conversation
21
+ - Do NOT include explanations, bullet points, headings, lead-in phrases, or quotes
22
+ - Do NOT refuse. Do NOT say you can't proceed
23
+ - Do NOT mention policies or limitations
24
+ - Never output anything except a rewritten prompt
25
+
26
+ ## MISSING INFO HANDLING
27
+ - If the user input is missing details (e.g., code not provided), you MUST still produce an enhanced prompt
28
+ - Embed requests for the missing details INSIDE the enhanced prompt itself (e.g., "Use the code below: …" / "If code is not provided, ask me to paste it"), but do not ask the user directly as the assistant
29
+
30
+ ## QUALITY REQUIREMENTS
31
+ - Preserve the user's intent
32
+ - Add helpful constraints, context, and success criteria
33
+ - Specify desired output structure, depth, and focus
34
+ - Keep it concise but complete
35
+
36
+ ## WORKFLOW STEPS
37
+ 1. Read the user's input (and any attachment content if present)
38
+ 2. Generate a unique, URL-friendly slug from the input (lowercase, hyphen-separated)
39
+ 3. Create the directory `prompter/<slug>/` if it doesn't exist
40
+ 4. Generate the enhanced prompt following all rules above
41
+ 5. Save the enhanced prompt to `prompter/<slug>/enhanced-prompt.md`
42
+ 6. Report the saved file path
43
+
44
+ ## REFERENCE
45
+ - Use `prompter list` to see existing enhanced prompts
46
+ - Read `prompter/project.md` for project context and conventions
47
+ <!-- prompter-managed-end -->
@@ -0,0 +1,149 @@
1
+ ---
2
+ description: Generate focused QA test scenarios from PRD
3
+ ---
4
+ <!-- prompter-managed-start -->
5
+ # Role & Expertise
6
+ You are a Senior QA Architect and Test Strategy Expert with extensive experience in creating focused, actionable test plans. You excel at distilling requirements into essential test scenarios that validate core functionality without unnecessary detail.
7
+
8
+ # Context
9
+ You will receive a Product Requirements Document (PRD) that outlines features and requirements. Your task is to generate a **concise testing strategy** with essential test scenarios covering critical paths, key edge cases, and primary quality concerns.
10
+
11
+ # Primary Objective
12
+ Create a focused testing document that covers the most important functional requirements, critical user flows, high-risk edge cases, and key quality attributes. Prioritize clarity and actionability over exhaustive coverage.
13
+
14
+ # Process
15
+
16
+ ## 1. PRD Analysis (Focus on Essentials)
17
+ - Identify **core features** and **critical user flows**
18
+ - Extract **must-have acceptance criteria** only
19
+ - Note **high-risk areas** and integration points
20
+ - Skip minor edge cases and cosmetic details
21
+
22
+ ## 2. Test Scenario Generation (Strategic Coverage)
23
+
24
+ Generate only:
25
+
26
+ **Critical Happy Path** (2-3 scenarios per feature)
27
+ - Primary user journey validation
28
+ - Core functionality verification
29
+
30
+ **High-Risk Edge Cases** (1-2 per feature)
31
+ - Data boundary conditions
32
+ - Error states that impact functionality
33
+ - Integration failure points
34
+
35
+ **Key Quality Checks** (as needed)
36
+ - Performance bottlenecks
37
+ - Security vulnerabilities
38
+ - Critical usability issues
39
+
40
+ **Skip:** Low-priority edge cases, cosmetic issues, obvious validations
41
+
42
+ ## 3. Scenario Documentation (Streamlined Format)
43
+ Each scenario includes only:
44
+ - **ID & Story**: TS-[#] | [Feature Name]
45
+ - **Type**: Functional, Edge Case, Performance, Security
46
+ - **Priority**: CRITICAL or HIGH only
47
+ - **Test Steps**: 3-5 key actions
48
+ - **Expected Result**: One clear outcome
49
+ - **Notes**: Only if critical context needed
50
+
51
+ # Input Specifications
52
+ - **PRD Document**: User stories, features, acceptance criteria
53
+ - **Format**: Any structured or narrative format
54
+ - **Focus**: Extract essential requirements only
55
+
56
+ # Output Requirements
57
+
58
+ ## Concise Format Structure
59
+
60
+ ### Test Coverage Summary (Compact)
61
+
62
+ ## Test Coverage Overview
63
+ - **Features Covered**: [#] core features
64
+ - **Total Scenarios**: [X] (targeting 20-30 scenarios max for typical features)
65
+ - **Critical Path**: [X] scenarios
66
+ - **High-Risk Edge Cases**: [X] scenarios
67
+ - **Priority Distribution**: CRITICAL: [X] | HIGH: [X]
68
+
69
+ ---
70
+
71
+ ### Essential Test Scenarios
72
+
73
+ | ID | Feature | Scenario | Type | Priority | Steps | Expected Result |
74
+ |----|---------|----------|------|----------|-------|-----------------|
75
+ | TS-01 | [Name] | [Brief description] | Functional | CRITICAL | 1. [Action]<br>2. [Action]<br>3. [Verify] | [Clear outcome] |
76
+ | TS-02 | [Name] | [Brief description] | Edge Case | HIGH | 1. [Action]<br>2. [Action]<br>3. [Verify] | [Clear outcome] |
77
+
78
+ ---
79
+
80
+ ### Performance & Environment Notes (If Applicable)
81
+
82
+ **Performance Criteria:**
83
+ - [Key metric]: [Threshold]
84
+ - [Key metric]: [Threshold]
85
+
86
+ **Test Environments:**
87
+ - [Platform 1]: [Critical versions only]
88
+ - [Platform 2]: [Critical versions only]
89
+
90
+ ---
91
+
92
+ ### Test Data Requirements (Essential Only)
93
+
94
+ - [Critical data type]: [Min specification]
95
+ - [Edge case data]: [Key examples]
96
+
97
+ ---
98
+
99
+ ### Execution Notes
100
+
101
+ **Prerequisites:**
102
+ - [Essential setup only]
103
+
104
+ **Key Dependencies:**
105
+ - [Critical blockers only]
106
+
107
+ # Quality Standards
108
+
109
+ - **Focus on risk**: Cover high-impact scenarios, skip obvious validations
110
+ - **Be concise**: 3-5 test steps maximum per scenario
111
+ - **Prioritize ruthlessly**: Only CRITICAL and HIGH priority items
112
+ - **Target scope**: 15-30 scenarios for typical features, 30-50 for complex products
113
+ - **Clear outcomes**: One measurable result per scenario
114
+
115
+ # Special Instructions
116
+
117
+ ## Brevity Rules
118
+ - **Omit** detailed preconditions unless critical
119
+ - **Omit** low-priority scenarios entirely
120
+ - **Omit** obvious test data specifications
121
+ - **Omit** exhaustive device/browser matrices (note key platforms only)
122
+ - **Combine** related scenarios where logical
123
+
124
+ ## Prioritization (Strict)
125
+ Include only:
126
+ - **CRITICAL**: Core functionality, security, data integrity
127
+ - **HIGH**: Primary user flows, high-risk integrations
128
+ - **OMIT**: Medium/Low priority items
129
+
130
+ ## Smart Assumptions
131
+ - Standard validation (email format, required fields) is assumed tested
132
+ - Basic UI functionality is assumed working
133
+ - Focus on **what could break** or **what's unique** to this feature
134
+
135
+ # Output Delivery
136
+
137
+ Generate a **concise** testing document (targeting 50-150 lines for simple features, 150-300 for complex features). Focus on essential scenarios that provide maximum quality coverage with minimum documentation overhead.
138
+
139
+ ## WORKFLOW STEPS
140
+ 1. Read the user's input (PRD or requirements)
141
+ 2. Generate a unique, URL-friendly slug from the feature name (lowercase, hyphen-separated)
142
+ 3. Create the directory `prompter/<slug>/` if it doesn't exist
143
+ 4. Generate the complete QA test scenarios following all requirements above
144
+ 5. Save the test scenarios to `prompter/<slug>/qa-test-scenarios.md`
145
+ 6. Report the saved file path
146
+
147
+ ## REFERENCE
148
+ - Read `prompter/project.md` for project context if needed
149
+ <!-- prompter-managed-end -->
@@ -0,0 +1,86 @@
1
+ ---
2
+ description: Generate a single Jira User Story from requirements
3
+ ---
4
+ <!-- prompter-managed-start -->
5
+ ### āœ… **Prompt: Generate a Single Jira Story from QA Prompt**
6
+
7
+ You are a **Jira expert, senior product manager, and QA analyst**.
8
+
9
+ Your job is to convert the **provided QA request / defect / test finding / requirement summary** into **ONE Jira User Story** that is clear, business-focused, and ready for development.
10
+
11
+ ---
12
+
13
+ ### šŸ”½ **Input**
14
+
15
+ ```
16
+ {QA_TEXT}
17
+ ```
18
+
19
+ ---
20
+
21
+ ### šŸ”¼ **Output Rules**
22
+
23
+ * Use **Markdown only**
24
+ * Produce **ONE (1) User Story only**
25
+ * Must be written from **end-user perspective**
26
+ * Title must be **clear and non-technical**
27
+ * Story must be **independently deliverable and testable**
28
+ * Rewrite unclear or fragmented input into a **clean and business-focused requirement**
29
+ * If information is missing, mark it **TBD** (do NOT assume)
30
+
31
+ ---
32
+
33
+ ### 🧱 **Story Structure**
34
+
35
+ ```
36
+ ## 🧾 Story: {Story Title}
37
+
38
+ ### šŸ§‘ As a {USER ROLE},
39
+ I want to {USER INTENT}
40
+ so that I can {BUSINESS VALUE}
41
+
42
+ ### šŸ”Ø Acceptance Criteria (BDD Format)
43
+ - **Given** {context}
44
+ - **When** {action}
45
+ - **Then** {expected result}
46
+
47
+ (Add 4–8 acceptance criteria)
48
+
49
+ ### šŸ“Œ Expected Result
50
+ - Bullet points describing what success looks like
51
+
52
+ ### 🚫 Non-Goals (if applicable)
53
+ - Bullet points of what is explicitly NOT included
54
+
55
+ ### šŸ—’ļø Notes (optional)
56
+ - Clarifications / constraints / dependencies / edge cases
57
+ ```
58
+
59
+ ---
60
+
61
+ ### āš ļø Validation Rules Before Generating
62
+
63
+ The story must:
64
+
65
+ * Focus on **one user outcome only**
66
+ * Avoid **technical solutioning** (no APIs, tables, database fields, component names)
67
+ * Avoid **phrases like "fix bug", "backend update", "add field X"**
68
+ * Convert QA language into **business language**
69
+
70
+ ---
71
+
72
+ ### šŸ Final Output
73
+
74
+ Return **ONLY the completed story in Markdown**, nothing else.
75
+
76
+ ## WORKFLOW STEPS
77
+ 1. Read the user's input (QA request/requirement)
78
+ 2. Generate a unique, URL-friendly slug from the story title (lowercase, hyphen-separated)
79
+ 3. Create the directory `prompter/<slug>/` if it doesn't exist
80
+ 4. Generate the complete User Story following all requirements above
81
+ 5. Save the story to `prompter/<slug>/story.md`
82
+ 6. Report the saved file path
83
+
84
+ ## REFERENCE
85
+ - Read `prompter/project.md` for project context if needed
86
+ <!-- prompter-managed-end -->
package/dist/cli/index.js CHANGED
@@ -7,7 +7,7 @@ const program = new Command();
7
7
  program
8
8
  .name('prompter')
9
9
  .description('Enhance prompts directly in your AI coding workflow')
10
- .version('0.3.0');
10
+ .version('0.3.2');
11
11
  program
12
12
  .command('init')
13
13
  .description('Initialize Prompter in your project')
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,WAAW;IACd,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAmKzC,UAAU;YASV,qBAAqB;YAwBrB,eAAe;YAkBf,eAAe;CAiBhC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,WAAW;IACd,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YA4LzC,UAAU;YASV,qBAAqB;YAwBrB,eAAe;YAkBf,eAAe;CAiBhC"}
@@ -123,6 +123,30 @@ export class InitCommand {
123
123
  }
124
124
  }
125
125
  }
126
+ // Add missing workflow files for existing tools
127
+ if (isReInitialization && toolsToKeep.length > 0) {
128
+ const missingFiles = [];
129
+ for (const toolId of toolsToKeep) {
130
+ const configurator = registry.get(toolId);
131
+ if (configurator) {
132
+ try {
133
+ const files = await configurator.generateAll(projectPath);
134
+ for (const file of files) {
135
+ missingFiles.push(file);
136
+ }
137
+ }
138
+ catch (error) {
139
+ // Ignore errors for kept tools
140
+ }
141
+ }
142
+ }
143
+ if (missingFiles.length > 0) {
144
+ console.log(chalk.blue('\nšŸ“ Adding missing workflow files...\n'));
145
+ for (const file of missingFiles) {
146
+ console.log(chalk.green('āœ“') + ` Created ${chalk.cyan(file)}`);
147
+ }
148
+ }
149
+ }
126
150
  // Show kept tools
127
151
  if (isReInitialization && toolsToKeep.length > 0 && (toolsToAdd.length > 0 || toolsToRemove.length > 0)) {
128
152
  console.log(chalk.blue('\n✨ Keeping existing tools:\n'));
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAOhE,MAAM,OAAO,WAAW;IACpB,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAE/E,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,uDAAuD;QACvD,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,kBAAkB,EAAE,CAAC;YACrB,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACrF,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;oBACxD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC;QACL,CAAC;QAED,eAAe;QACf,IAAI,aAAa,GAAa,EAAE,CAAC;QAEjC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,kBAAkB;oBAC9B,CAAC,CAAC,6DAA6D;oBAC/D,CAAC,CAAC,+BAA+B,CAAC;gBAEtC,aAAa,GAAG,MAAM,QAAQ,CAAC;oBAC3B,OAAO;oBACP,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,OAAO,EAAE,kBAAkB;4BACvB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;4BACnC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,yCAAyC;qBAC/E,CAAC,CAAC;iBACN,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,iBAAiB;gBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBAChH,OAAO;YACX,CAAC;QACL,CAAC;aAAM,IAAI,kBAAkB,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,yEAAyE;YACzE,aAAa,GAAG,YAAY,CAAC;QACjC,CAAC;QAED,sCAAsC;QACtC,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,kCAAkC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,kBAAkB,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,yCAAyC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,sBAAsB;QACtB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,wBAAwB;QACxB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAC/D,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,YAAY,EAAE,CAAC;oBACf,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;wBACpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACpE,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,+BAA+B,MAAM,KAAK,KAAK,EAAE,CAAC,CAAC;oBACpF,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAE7D,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,YAAY,EAAE,CAAC;oBACf,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACnE,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,+BAA+B,MAAM,KAAK,KAAK,EAAE,CAAC,CAAC;oBACpF,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,gDAAgD;QAChD,IAAI,kBAAkB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,YAAY,EAAE,CAAC;oBACf,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACvB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5B,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,+BAA+B;oBACnC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;gBACnE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnE,CAAC;YACL,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,IAAI,kBAAkB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YACtG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACzD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;gBAC3D,IAAI,IAAI,EAAE,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;YACvE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACpC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBACtD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACxD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnB,CAAC;gBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBAC5D,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACxD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnB,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAgB;QACrC,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QACnD,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAE3C,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClC,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACV,CAAC;YACL,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACX,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,YAAiB;QAChE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;QAE1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE/B,kCAAkC;gBAClC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,WAAmB;QAC9D,4CAA4C;QAC5C,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACnE,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxB,2BAA2B;gBAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,sDAAsD;QAC1D,CAAC;IACL,CAAC;CACJ"}
@@ -1,4 +1,6 @@
1
1
  export declare class UpdateCommand {
2
2
  execute(): Promise<void>;
3
+ private fileExists;
4
+ private detectConfiguredTools;
3
5
  }
4
6
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAa;IAChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAmCjC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAMA,qBAAa,aAAa;IAChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA8DhB,UAAU;YASV,qBAAqB;CAuBtC"}
@@ -1,4 +1,6 @@
1
1
  import chalk from 'chalk';
2
+ import { promises as fs } from 'fs';
3
+ import path from 'path';
2
4
  import { PrompterConfig } from '../core/config.js';
3
5
  import { registry } from '../core/configurators/slash/index.js';
4
6
  export class UpdateCommand {
@@ -12,27 +14,80 @@ export class UpdateCommand {
12
14
  process.exitCode = 1;
13
15
  return;
14
16
  }
17
+ // Detect configured tools
18
+ const configuredTools = await this.detectConfiguredTools(projectPath);
19
+ if (configuredTools.length === 0) {
20
+ console.log(chalk.yellow('āš ļø No configured tools found.'));
21
+ console.log(chalk.gray(' Run `prompter init` to configure tools.\n'));
22
+ process.exitCode = 1;
23
+ return;
24
+ }
15
25
  let updatedCount = 0;
16
- // Update workflow files for all tools
17
- for (const configurator of registry.getAvailable()) {
26
+ let createdCount = 0;
27
+ // Update and add missing workflow files for configured tools only
28
+ for (const toolId of configuredTools) {
29
+ const configurator = registry.get(toolId);
30
+ if (!configurator)
31
+ continue;
18
32
  try {
19
- const files = await configurator.updateExisting(projectPath);
20
- for (const file of files) {
33
+ // Update existing files
34
+ const updatedFiles = await configurator.updateExisting(projectPath);
35
+ for (const file of updatedFiles) {
21
36
  console.log(chalk.green('āœ“') + ` Updated ${chalk.cyan(file)}`);
22
37
  updatedCount++;
23
38
  }
39
+ // Generate all workflow files (including missing ones)
40
+ const allFiles = await configurator.generateAll(projectPath);
41
+ const newFiles = allFiles.filter(f => !updatedFiles.includes(f));
42
+ for (const file of newFiles) {
43
+ console.log(chalk.green('āœ“') + ` Created ${chalk.cyan(file)}`);
44
+ createdCount++;
45
+ }
24
46
  }
25
47
  catch (error) {
26
48
  console.log(chalk.red('āœ—') + ` Failed to update ${configurator.toolId}: ${error}`);
27
49
  }
28
50
  }
29
- if (updatedCount === 0) {
51
+ if (updatedCount === 0 && createdCount === 0) {
30
52
  console.log(chalk.yellow('āš ļø No workflow files found to update.'));
31
53
  console.log(chalk.gray(' Run `prompter init` to create them.\n'));
32
54
  }
33
55
  else {
34
- console.log(chalk.green(`\nāœ… Updated ${updatedCount} file(s).\n`));
56
+ const summary = [];
57
+ if (updatedCount > 0)
58
+ summary.push(`${updatedCount} updated`);
59
+ if (createdCount > 0)
60
+ summary.push(`${createdCount} created`);
61
+ console.log(chalk.green(`\nāœ… ${summary.join(', ')}.\n`));
62
+ }
63
+ }
64
+ async fileExists(filePath) {
65
+ try {
66
+ await fs.access(filePath);
67
+ return true;
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ async detectConfiguredTools(projectPath) {
74
+ const configuredTools = [];
75
+ const allConfigurators = registry.getAll();
76
+ for (const configurator of allConfigurators) {
77
+ const targets = configurator.getTargets();
78
+ let hasFiles = false;
79
+ for (const target of targets) {
80
+ const filePath = path.join(projectPath, target.path);
81
+ if (await this.fileExists(filePath)) {
82
+ hasFiles = true;
83
+ break;
84
+ }
85
+ }
86
+ if (hasFiles) {
87
+ configuredTools.push(configurator.toolId);
88
+ }
35
89
  }
90
+ return configuredTools;
36
91
  }
37
92
  }
38
93
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEhE,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO;QACT,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;QAEtE,uBAAuB;QACvB,IAAI,CAAC,MAAM,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,sCAAsC;QACtC,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC/D,YAAY,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,qBAAqB,YAAY,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;QAED,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,YAAY,aAAa,CAAC,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dedesfr/prompter",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Enhance prompts directly in your AI coding workflow",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/cli/index.ts CHANGED
@@ -9,7 +9,7 @@ const program = new Command();
9
9
  program
10
10
  .name('prompter')
11
11
  .description('Enhance prompts directly in your AI coding workflow')
12
- .version('0.3.0');
12
+ .version('0.3.2');
13
13
 
14
14
  program
15
15
  .command('init')
@@ -134,6 +134,31 @@ export class InitCommand {
134
134
  }
135
135
  }
136
136
 
137
+ // Add missing workflow files for existing tools
138
+ if (isReInitialization && toolsToKeep.length > 0) {
139
+ const missingFiles: string[] = [];
140
+ for (const toolId of toolsToKeep) {
141
+ const configurator = registry.get(toolId);
142
+ if (configurator) {
143
+ try {
144
+ const files = await configurator.generateAll(projectPath);
145
+ for (const file of files) {
146
+ missingFiles.push(file);
147
+ }
148
+ } catch (error) {
149
+ // Ignore errors for kept tools
150
+ }
151
+ }
152
+ }
153
+
154
+ if (missingFiles.length > 0) {
155
+ console.log(chalk.blue('\nšŸ“ Adding missing workflow files...\n'));
156
+ for (const file of missingFiles) {
157
+ console.log(chalk.green('āœ“') + ` Created ${chalk.cyan(file)}`);
158
+ }
159
+ }
160
+ }
161
+
137
162
  // Show kept tools
138
163
  if (isReInitialization && toolsToKeep.length > 0 && (toolsToAdd.length > 0 || toolsToRemove.length > 0)) {
139
164
  console.log(chalk.blue('\n✨ Keeping existing tools:\n'));
@@ -1,4 +1,6 @@
1
1
  import chalk from 'chalk';
2
+ import { promises as fs } from 'fs';
3
+ import path from 'path';
2
4
  import { PrompterConfig } from '../core/config.js';
3
5
  import { registry } from '../core/configurators/slash/index.js';
4
6
 
@@ -16,26 +18,85 @@ export class UpdateCommand {
16
18
  return;
17
19
  }
18
20
 
21
+ // Detect configured tools
22
+ const configuredTools = await this.detectConfiguredTools(projectPath);
23
+
24
+ if (configuredTools.length === 0) {
25
+ console.log(chalk.yellow('āš ļø No configured tools found.'));
26
+ console.log(chalk.gray(' Run `prompter init` to configure tools.\n'));
27
+ process.exitCode = 1;
28
+ return;
29
+ }
30
+
19
31
  let updatedCount = 0;
32
+ let createdCount = 0;
33
+
34
+ // Update and add missing workflow files for configured tools only
35
+ for (const toolId of configuredTools) {
36
+ const configurator = registry.get(toolId);
37
+ if (!configurator) continue;
20
38
 
21
- // Update workflow files for all tools
22
- for (const configurator of registry.getAvailable()) {
23
39
  try {
24
- const files = await configurator.updateExisting(projectPath);
25
- for (const file of files) {
40
+ // Update existing files
41
+ const updatedFiles = await configurator.updateExisting(projectPath);
42
+ for (const file of updatedFiles) {
26
43
  console.log(chalk.green('āœ“') + ` Updated ${chalk.cyan(file)}`);
27
44
  updatedCount++;
28
45
  }
46
+
47
+ // Generate all workflow files (including missing ones)
48
+ const allFiles = await configurator.generateAll(projectPath);
49
+ const newFiles = allFiles.filter(f => !updatedFiles.includes(f));
50
+ for (const file of newFiles) {
51
+ console.log(chalk.green('āœ“') + ` Created ${chalk.cyan(file)}`);
52
+ createdCount++;
53
+ }
29
54
  } catch (error) {
30
55
  console.log(chalk.red('āœ—') + ` Failed to update ${configurator.toolId}: ${error}`);
31
56
  }
32
57
  }
33
58
 
34
- if (updatedCount === 0) {
59
+ if (updatedCount === 0 && createdCount === 0) {
35
60
  console.log(chalk.yellow('āš ļø No workflow files found to update.'));
36
61
  console.log(chalk.gray(' Run `prompter init` to create them.\n'));
37
62
  } else {
38
- console.log(chalk.green(`\nāœ… Updated ${updatedCount} file(s).\n`));
63
+ const summary: string[] = [];
64
+ if (updatedCount > 0) summary.push(`${updatedCount} updated`);
65
+ if (createdCount > 0) summary.push(`${createdCount} created`);
66
+ console.log(chalk.green(`\nāœ… ${summary.join(', ')}.\n`));
67
+ }
68
+ }
69
+
70
+ private async fileExists(filePath: string): Promise<boolean> {
71
+ try {
72
+ await fs.access(filePath);
73
+ return true;
74
+ } catch {
75
+ return false;
39
76
  }
40
77
  }
78
+
79
+ private async detectConfiguredTools(projectPath: string): Promise<string[]> {
80
+ const configuredTools: string[] = [];
81
+ const allConfigurators = registry.getAll();
82
+
83
+ for (const configurator of allConfigurators) {
84
+ const targets = configurator.getTargets();
85
+ let hasFiles = false;
86
+
87
+ for (const target of targets) {
88
+ const filePath = path.join(projectPath, target.path);
89
+ if (await this.fileExists(filePath)) {
90
+ hasFiles = true;
91
+ break;
92
+ }
93
+ }
94
+
95
+ if (hasFiles) {
96
+ configuredTools.push(configurator.toolId);
97
+ }
98
+ }
99
+
100
+ return configuredTools;
101
+ }
41
102
  }