context-first-cli 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/add-repo-metaspec.d.ts.map +1 -1
- package/dist/commands/add-repo-metaspec.js +17 -2
- package/dist/commands/add-repo-metaspec.js.map +1 -1
- package/dist/templates/commands/en/products/collect.md +64 -40
- package/dist/templates/commands/en/products/refine.md +43 -14
- package/dist/templates/commands/es/products/collect.md +71 -47
- package/dist/templates/commands/es/products/refine.md +50 -21
- package/dist/templates/commands/pt-BR/products/collect.md +27 -3
- package/dist/templates/commands/pt-BR/products/refine.md +32 -3
- package/package.json +1 -1
- package/templates/commands/en/products/collect.md +64 -40
- package/templates/commands/en/products/refine.md +43 -14
- package/templates/commands/es/products/collect.md +71 -47
- package/templates/commands/es/products/refine.md +50 -21
- package/templates/commands/pt-BR/products/collect.md +27 -3
- package/templates/commands/pt-BR/products/refine.md +32 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-repo-metaspec.d.ts","sourceRoot":"","sources":["../../src/commands/add-repo-metaspec.ts"],"names":[],"mappings":"AAoBA,wBAAsB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"add-repo-metaspec.d.ts","sourceRoot":"","sources":["../../src/commands/add-repo-metaspec.ts"],"names":[],"mappings":"AAoBA,wBAAsB,sBAAsB,kBA2G3C"}
|
|
@@ -56,6 +56,21 @@ async function addRepoMetaspecCommand() {
|
|
|
56
56
|
return true;
|
|
57
57
|
},
|
|
58
58
|
},
|
|
59
|
+
{
|
|
60
|
+
type: 'input',
|
|
61
|
+
name: 'id',
|
|
62
|
+
message: 'Repository folder name (must match the local directory name in base_path):',
|
|
63
|
+
default: 'metaspecs',
|
|
64
|
+
validate: (input) => {
|
|
65
|
+
if (!input.trim()) {
|
|
66
|
+
return 'Folder name is required';
|
|
67
|
+
}
|
|
68
|
+
if (input.includes('/') || input.includes('\\')) {
|
|
69
|
+
return 'Folder name cannot contain path separators';
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
},
|
|
73
|
+
},
|
|
59
74
|
{
|
|
60
75
|
type: 'input',
|
|
61
76
|
name: 'description',
|
|
@@ -65,7 +80,7 @@ async function addRepoMetaspecCommand() {
|
|
|
65
80
|
]);
|
|
66
81
|
// Create metaspecs repository entry
|
|
67
82
|
const metaspecsRepo = {
|
|
68
|
-
id:
|
|
83
|
+
id: answers.id,
|
|
69
84
|
role: 'specs-provider',
|
|
70
85
|
url: answers.url,
|
|
71
86
|
description: answers.description,
|
|
@@ -76,7 +91,7 @@ async function addRepoMetaspecCommand() {
|
|
|
76
91
|
await promises_1.default.writeFile(manifestPath, JSON.stringify(manifest, null, 2), 'utf-8');
|
|
77
92
|
console.log(chalk_1.default.green('\n✅ MetaSpecs repository added successfully!'));
|
|
78
93
|
console.log(chalk_1.default.blue('\n📝 Repository details:'));
|
|
79
|
-
console.log(chalk_1.default.gray(` ID:
|
|
94
|
+
console.log(chalk_1.default.gray(` ID: ${answers.id}`));
|
|
80
95
|
console.log(chalk_1.default.gray(` Role: specs-provider`));
|
|
81
96
|
console.log(chalk_1.default.gray(` URL: ${answers.url}`));
|
|
82
97
|
console.log(chalk_1.default.gray(` Description: ${answers.description}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-repo-metaspec.js","sourceRoot":"","sources":["../../src/commands/add-repo-metaspec.ts"],"names":[],"mappings":";;;;;AAoBA,
|
|
1
|
+
{"version":3,"file":"add-repo-metaspec.js","sourceRoot":"","sources":["../../src/commands/add-repo-metaspec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
# Idea and Requirements
|
|
1
|
+
# Idea and Requirements Gathering
|
|
2
2
|
|
|
3
|
-
You are a product
|
|
3
|
+
You are a product specialist responsible for collecting and documenting new ideas, features, or bugs.
|
|
4
4
|
|
|
5
|
-
## ⚠️ IMPORTANT: This Command
|
|
5
|
+
## ⚠️ IMPORTANT: This Command DOES NOT Implement Code
|
|
6
6
|
|
|
7
7
|
**This command is ONLY for planning and documentation:**
|
|
8
8
|
- ✅ Collect and understand requirements
|
|
9
|
-
- ✅ Create issue in task manager via MCP
|
|
10
|
-
- ✅ Ask
|
|
9
|
+
- ✅ Create issue in the task manager via MCP
|
|
10
|
+
- ✅ Ask clarification questions
|
|
11
11
|
- ✅ **READ** files from main repositories (read-only)
|
|
12
12
|
- ❌ **DO NOT implement code**
|
|
13
13
|
- ❌ **DO NOT edit code files**
|
|
14
14
|
- ❌ **DO NOT checkout branches in main repositories**
|
|
15
|
-
- ❌ **DO NOT
|
|
15
|
+
- ❌ **DO NOT commit**
|
|
16
16
|
|
|
17
17
|
**Next step**: `/refine [ISSUE-ID]` to refine the collected requirements.
|
|
18
18
|
|
|
@@ -22,27 +22,27 @@ You are a product expert responsible for collecting and documenting new ideas, f
|
|
|
22
22
|
|
|
23
23
|
Before starting, load the context by consulting:
|
|
24
24
|
|
|
25
|
-
1. **Locate MetaSpecs
|
|
26
|
-
- Read `context-manifest.json` from orchestrator
|
|
25
|
+
1. **Automatically Locate MetaSpecs**:
|
|
26
|
+
- Read `context-manifest.json` from the orchestrator
|
|
27
27
|
- Find the repository with `"role": "metaspecs"`
|
|
28
28
|
- Read `ai.properties.md` to get the `base_path`
|
|
29
|
-
-
|
|
30
|
-
- Read `index.md` files as reference
|
|
29
|
+
- The metaspecs are at: `{base_path}/{metaspecs-repo-id}/`
|
|
30
|
+
- Read the `index.md` files as reference
|
|
31
31
|
|
|
32
|
-
2. **Project
|
|
33
|
-
- `context-manifest.json` - List of repositories and their
|
|
34
|
-
- `README.md` of involved repositories
|
|
32
|
+
2. **Project Structure**:
|
|
33
|
+
- `context-manifest.json` - List of repositories and their roles
|
|
34
|
+
- `README.md` of the involved repositories
|
|
35
35
|
|
|
36
|
-
## Your
|
|
36
|
+
## Your Goal
|
|
37
37
|
|
|
38
38
|
Understand the user's request and capture it as an issue in the task manager (via MCP).
|
|
39
39
|
|
|
40
40
|
**At this stage, you DO NOT need to:**
|
|
41
|
-
- ❌ Write complete specification
|
|
41
|
+
- ❌ Write a complete specification
|
|
42
42
|
- ❌ Validate against metaspecs (this is done in `/refine` or `/spec`)
|
|
43
43
|
- ❌ Detail technical implementation
|
|
44
44
|
|
|
45
|
-
Just
|
|
45
|
+
Just ensure the idea is **adequately understood**.
|
|
46
46
|
|
|
47
47
|
## Issue Format
|
|
48
48
|
|
|
@@ -50,7 +50,7 @@ Just make sure the idea is **adequately understood**.
|
|
|
50
50
|
# [Clear and Descriptive Title]
|
|
51
51
|
|
|
52
52
|
## Description
|
|
53
|
-
[2-3 paragraphs explaining what the feature/bug is and why it
|
|
53
|
+
[2-3 paragraphs explaining what the feature/bug is and why it is important]
|
|
54
54
|
|
|
55
55
|
## Type
|
|
56
56
|
- [ ] New Feature
|
|
@@ -60,7 +60,7 @@ Just make sure the idea is **adequately understood**.
|
|
|
60
60
|
- [ ] Documentation
|
|
61
61
|
|
|
62
62
|
## Additional Context
|
|
63
|
-
[Relevant information: where the bug occurs, feature
|
|
63
|
+
[Relevant information: where the bug occurs, inspiration for the feature, etc.]
|
|
64
64
|
|
|
65
65
|
## Affected Repositories
|
|
66
66
|
[List which project repositories will be impacted]
|
|
@@ -75,65 +75,89 @@ Just make sure the idea is **adequately understood**.
|
|
|
75
75
|
## Collection Process
|
|
76
76
|
|
|
77
77
|
1. **Initial Understanding**
|
|
78
|
-
- Ask
|
|
78
|
+
- Ask clarification questions if needed
|
|
79
79
|
- Identify: Is it a new feature? Improvement? Bug?
|
|
80
80
|
- Identify which repositories will be affected
|
|
81
81
|
|
|
82
82
|
2. **Issue Draft**
|
|
83
|
-
- Clear title (
|
|
83
|
+
- Clear title (max 10 words)
|
|
84
84
|
- Objective description (2-3 paragraphs)
|
|
85
85
|
- Relevant additional context
|
|
86
86
|
- Affected repositories
|
|
87
87
|
- Suggested priority
|
|
88
88
|
|
|
89
|
-
3. **
|
|
90
|
-
|
|
89
|
+
3. **Complexity Assessment and Suggestion to Split**
|
|
90
|
+
|
|
91
|
+
Before finalizing, assess the issue complexity:
|
|
92
|
+
|
|
93
|
+
**If the implementation seems large** (> 5 days estimated effort):
|
|
94
|
+
- 🚨 **Suggest splitting into multiple smaller issues**
|
|
95
|
+
- Explain the rationale for splitting (e.g., "This feature involves 3 distinct areas: authentication, processing, and notification")
|
|
96
|
+
- Propose a **logical** split (by functionality, repository, layer, etc.)
|
|
97
|
+
- Example of splitting:
|
|
98
|
+
```
|
|
99
|
+
Original Issue: "Complete payment system"
|
|
100
|
+
|
|
101
|
+
Suggested Split:
|
|
102
|
+
- FIN-101: Payment gateway integration (backend)
|
|
103
|
+
- FIN-102: Checkout interface (frontend)
|
|
104
|
+
- FIN-103: Confirmation webhook and notifications (backend + jobs)
|
|
105
|
+
```
|
|
106
|
+
- **Important**: The final decision is the user's - they can accept the split or keep it as a single issue
|
|
107
|
+
|
|
108
|
+
**If the user accepts the split**:
|
|
109
|
+
- Create each issue separately using the same process
|
|
110
|
+
- Add cross-references between related issues
|
|
111
|
+
- Suggest implementation order if dependencies exist
|
|
112
|
+
|
|
113
|
+
4. **User Approval**
|
|
114
|
+
- Present the draft (or drafts, if split)
|
|
91
115
|
- Make adjustments based on feedback
|
|
92
116
|
- Obtain final approval
|
|
93
117
|
|
|
94
|
-
|
|
118
|
+
5. **Saving the Issue**
|
|
95
119
|
|
|
96
120
|
**PRIORITY 1: Use MCP (Model Context Protocol)**
|
|
97
121
|
|
|
98
|
-
Check if
|
|
99
|
-
- Read `ai.properties.md` from orchestrator to identify the `task_management_system`
|
|
122
|
+
Check if MCP is configured for the task manager:
|
|
123
|
+
- Read `ai.properties.md` from the orchestrator to identify the `task_management_system`
|
|
100
124
|
- If `task_management_system=jira`: Use Jira MCP to create the issue
|
|
101
125
|
- If `task_management_system=linear`: Use Linear MCP to create the issue
|
|
102
126
|
- If `task_management_system=github`: Use GitHub MCP to create the issue
|
|
103
127
|
|
|
104
128
|
**When using MCP:**
|
|
105
129
|
- Create the issue directly in the task manager
|
|
106
|
-
-
|
|
130
|
+
- Obtain the created issue ID (e.g., FIN-123, LIN-456)
|
|
107
131
|
- Inform the user: "✅ Issue [ID] created in [task manager]"
|
|
108
|
-
- **DO NOT create .md file**
|
|
132
|
+
- **DO NOT create a .md file**
|
|
109
133
|
|
|
110
134
|
**FALLBACK: Create .md file only if MCP fails**
|
|
111
135
|
|
|
112
|
-
If MCP is
|
|
113
|
-
- Create file at `./.sessions/<ISSUE-ID>/collect.md`
|
|
136
|
+
If MCP is unavailable or fails:
|
|
137
|
+
- Create a file at `./.sessions/<ISSUE-ID>/collect.md`
|
|
114
138
|
- Use manual ID format: `LOCAL-001`, `LOCAL-002`, etc.
|
|
115
|
-
- Include date, type, and
|
|
139
|
+
- Include date, type, and full content
|
|
116
140
|
- Inform the user: "⚠️ Issue saved locally in .sessions/ (task manager not available)"
|
|
117
141
|
|
|
118
|
-
##
|
|
142
|
+
## Clarification Questions
|
|
119
143
|
|
|
120
144
|
**For Features**:
|
|
121
145
|
- What problem does it solve?
|
|
122
146
|
- Who benefits?
|
|
123
|
-
- Is it visible functionality or infrastructure?
|
|
147
|
+
- Is it a visible functionality or infrastructure?
|
|
124
148
|
- Is it related to any existing feature?
|
|
125
|
-
- Which repositories need
|
|
149
|
+
- Which repositories need modification?
|
|
126
150
|
|
|
127
151
|
**For Bugs**:
|
|
128
152
|
- Where does the bug occur? (repository, component, flow)
|
|
129
153
|
- How to reproduce?
|
|
130
|
-
-
|
|
131
|
-
-
|
|
154
|
+
- Expected vs current behavior?
|
|
155
|
+
- Severity of impact?
|
|
132
156
|
|
|
133
157
|
**For Improvements**:
|
|
134
|
-
- What is working but can
|
|
135
|
-
-
|
|
136
|
-
- Is it technical or business optimization?
|
|
158
|
+
- What is working but can be improved?
|
|
159
|
+
- What metric do we want to impact?
|
|
160
|
+
- Is it a technical or business optimization?
|
|
137
161
|
|
|
138
162
|
---
|
|
139
163
|
|
|
@@ -147,10 +171,10 @@ Just make sure the idea is **adequately understood**.
|
|
|
147
171
|
|
|
148
172
|
## 🎯 Next Step
|
|
149
173
|
|
|
150
|
-
After approval and issue
|
|
174
|
+
After approval and saving the issue:
|
|
151
175
|
|
|
152
176
|
```bash
|
|
153
177
|
/refine [ISSUE-ID]
|
|
154
178
|
```
|
|
155
179
|
|
|
156
|
-
This command will transform the collected issue into refined and validated requirements.
|
|
180
|
+
This command will transform the collected issue into refined and validated requirements.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Requirements Refinement
|
|
2
2
|
|
|
3
|
-
You are a product expert
|
|
3
|
+
You are a product expert tasked with helping to refine requirements for the project.
|
|
4
4
|
|
|
5
5
|
## ⚠️ IMPORTANT: This Command DOES NOT Implement Code
|
|
6
6
|
|
|
@@ -31,7 +31,7 @@ Read the initial requirement and ask questions to achieve full clarity about:
|
|
|
31
31
|
- **Scope**: What is included and what is NOT included?
|
|
32
32
|
- **Interactions**: Which existing features/components are affected?
|
|
33
33
|
|
|
34
|
-
Keep asking questions until you have
|
|
34
|
+
Keep asking questions until you have complete understanding.
|
|
35
35
|
|
|
36
36
|
### 2. Validation Against Metaspecs
|
|
37
37
|
|
|
@@ -39,7 +39,7 @@ Keep asking questions until you have full understanding.
|
|
|
39
39
|
|
|
40
40
|
**Validation Process**:
|
|
41
41
|
|
|
42
|
-
1. **Consult the indexes
|
|
42
|
+
1. **Consult the loaded indexes** from `/warm-up`:
|
|
43
43
|
- Read `context-manifest.json` to find the repository with `role: "metaspecs"`
|
|
44
44
|
- Obtain the `id` of that repository (e.g., "my-project-metaspecs")
|
|
45
45
|
- Read `ai.properties.md` to get the `base_path`
|
|
@@ -61,7 +61,7 @@ Keep asking questions until you have full understanding.
|
|
|
61
61
|
- ✅ Follows existing business rules
|
|
62
62
|
- ⚠️ Identify conflicts or violations
|
|
63
63
|
|
|
64
|
-
**If
|
|
64
|
+
**If you identify violations**: 🛑 **STOP** and ask the user for clarification before proceeding (Jidoka Principle).
|
|
65
65
|
|
|
66
66
|
### 3. Summary and Approval Phase
|
|
67
67
|
|
|
@@ -69,13 +69,42 @@ Once you have gathered sufficient information and validated against metaspecs, p
|
|
|
69
69
|
- **Feature**: Feature name
|
|
70
70
|
- **Objective**: Why build it (1-2 sentences)
|
|
71
71
|
- **Business Value**: Metric, persona, roadmap phase (consult metaspecs)
|
|
72
|
-
- **Scope**: What INCLUDES and what DOES NOT INCLUDE
|
|
72
|
+
- **Scope**: What it INCLUDES and what it DOES NOT INCLUDE
|
|
73
73
|
- **Affected Components**: List based on current architecture (consult technical metaspecs)
|
|
74
74
|
- **Validation against Metaspecs**: ✅ Approved / ⚠️ Attention needed
|
|
75
|
+
- **Effort Estimate**: Small (< 1 day) / Medium (1-3 days) / Large (3-5 days) / Very Large (> 5 days)
|
|
76
|
+
|
|
77
|
+
**Complexity Assessment and Suggestion to Break Down**:
|
|
78
|
+
|
|
79
|
+
**If the implementation seems large** (> 5 days estimated effort):
|
|
80
|
+
- 🚨 **Suggest breaking into multiple smaller issues**
|
|
81
|
+
- Explain the rationale for the breakdown (e.g., "This feature involves 3 distinct areas that can be implemented independently")
|
|
82
|
+
- Propose a **logical** breakdown based on:
|
|
83
|
+
- Independent functionalities
|
|
84
|
+
- Different repositories
|
|
85
|
+
- Application layers (backend, frontend, infra)
|
|
86
|
+
- Implementation phases (MVP, improvements, optimizations)
|
|
87
|
+
- Example breakdown:
|
|
88
|
+
```
|
|
89
|
+
Original Issue: "Multi-channel notification system"
|
|
90
|
+
|
|
91
|
+
Suggested Breakdown:
|
|
92
|
+
- FIN-201: Queue and worker infrastructure (backend)
|
|
93
|
+
- FIN-202: Email notifications (backend + templates)
|
|
94
|
+
- FIN-203: Push notifications (backend + mobile)
|
|
95
|
+
- FIN-204: Notification preferences (frontend + backend)
|
|
96
|
+
```
|
|
97
|
+
- **Important**: The final decision is the user's - they may accept the breakdown or keep it as a single issue
|
|
98
|
+
|
|
99
|
+
**If the user accepts the breakdown**:
|
|
100
|
+
- Document each issue separately
|
|
101
|
+
- Add cross-references between related issues
|
|
102
|
+
- Suggest implementation order if dependencies exist
|
|
103
|
+
- Each broken-down issue must go through the same refinement process
|
|
75
104
|
|
|
76
105
|
Request user approval and incorporate feedback if necessary.
|
|
77
106
|
|
|
78
|
-
**Tip**: You may
|
|
107
|
+
**Tip**: You may search the codebase or internet before finalizing, if needed.
|
|
79
108
|
|
|
80
109
|
### 4. Saving the Refined Requirements
|
|
81
110
|
|
|
@@ -88,7 +117,7 @@ Once the user approves, save the requirements:
|
|
|
88
117
|
1. **ALWAYS create local backup first**:
|
|
89
118
|
- Create a complete file at `./.sessions/<ISSUE-ID>/refined.md` (e.g., `./.sessions/FIN-5/refined.md`)
|
|
90
119
|
- Where `<ISSUE-ID>` is the issue ID (e.g., FIN-5, FIN-123)
|
|
91
|
-
- Include ALL refinement details (
|
|
120
|
+
- Include ALL refinement details (full backup)
|
|
92
121
|
|
|
93
122
|
2. **If task manager is configured** (read `ai.properties.md` to identify `task_management_system`):
|
|
94
123
|
- Identify the MCP tool of the task manager
|
|
@@ -96,8 +125,8 @@ Once the user approves, save the requirements:
|
|
|
96
125
|
- For Jira: Use Jira MCP with `description` field
|
|
97
126
|
- For Linear: Use Linear MCP with `description` field
|
|
98
127
|
- For GitHub: Use GitHub MCP with `body` field
|
|
99
|
-
-
|
|
100
|
-
-
|
|
128
|
+
- Include all refined content in the issue description/body field
|
|
129
|
+
- If content is too long and API errors occur, consider creating a summarized version
|
|
101
130
|
- **ALWAYS overwrite** the existing body (do not append)
|
|
102
131
|
|
|
103
132
|
**Note**:
|
|
@@ -106,7 +135,7 @@ Once the user approves, save the requirements:
|
|
|
106
135
|
|
|
107
136
|
**Output Template**:
|
|
108
137
|
|
|
109
|
-
**IMPORTANT**: The
|
|
138
|
+
**IMPORTANT**: The standard template for refined requirements may be documented in the metaspecs repository. Check `{base_path}/{metaspecs-id}/specs/refined/` or similar.
|
|
110
139
|
|
|
111
140
|
**FULL Template** (for local backup `.sessions/<ISSUE-ID>/refined.md`):
|
|
112
141
|
- **Metadata**: Issue, ID, Task Manager, Project, Date, Sprint, Priority
|
|
@@ -115,18 +144,18 @@ Once the user approves, save the requirements:
|
|
|
115
144
|
- **🔧 HOW**: Stack, coding standards, file structure, dependencies, implementation order, failure modes, performance/cost/UX considerations
|
|
116
145
|
- **✅ Validation against Metaspecs**: Consulted documents (business and technical), verified ADRs, validation result
|
|
117
146
|
- **📊 Success Metrics**: Technical, product/UX, acceptance criteria
|
|
118
|
-
- **🔄 Product Impact**: Alignment with
|
|
147
|
+
- **🔄 Product Impact**: Alignment with objectives, enablers, mitigated risks
|
|
119
148
|
- **⚠️ Known Limitations**: MVP limitations
|
|
120
149
|
- **📝 Implementation Checklist**: Tasks by area (backend, frontend, testing, security, etc.)
|
|
121
150
|
|
|
122
|
-
**
|
|
151
|
+
**Task Manager Template**:
|
|
123
152
|
```markdown
|
|
124
153
|
# [Feature Name] - Refined Requirements
|
|
125
154
|
|
|
126
155
|
**Sprint X** | **Y days** | **Priority**
|
|
127
156
|
|
|
128
157
|
## Objective
|
|
129
|
-
[1-2 paragraphs: what it is and why
|
|
158
|
+
[1-2 paragraphs: what it is and why]
|
|
130
159
|
|
|
131
160
|
## Scope
|
|
132
161
|
|
|
@@ -146,7 +175,7 @@ Once the user approves, save the requirements:
|
|
|
146
175
|
❌ [item 1] ❌ [item 2] ❌ [item 3]
|
|
147
176
|
|
|
148
177
|
## Stack
|
|
149
|
-
[Tech stack
|
|
178
|
+
[Tech stack summary by area]
|
|
150
179
|
|
|
151
180
|
## Structure
|
|
152
181
|
[SUMMARIZED file tree - main modules only]
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# Recolección de Ideas y Requisitos
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Eres un especialista en producto responsable de recopilar y documentar nuevas ideas, funcionalidades o bugs.
|
|
4
4
|
|
|
5
5
|
## ⚠️ IMPORTANTE: Este Comando NO Implementa Código
|
|
6
6
|
|
|
7
|
-
**Este comando es
|
|
7
|
+
**Este comando es SÓLO para planificación y documentación:**
|
|
8
8
|
- ✅ Recopilar y entender requisitos
|
|
9
|
-
- ✅ Crear issue en el
|
|
9
|
+
- ✅ Crear issue en el gestor de tareas vía MCP
|
|
10
10
|
- ✅ Hacer preguntas de aclaración
|
|
11
11
|
- ✅ **LEER** archivos de los repositorios principales (solo lectura)
|
|
12
12
|
- ❌ **NO implementar código**
|
|
13
|
-
- ❌ **NO
|
|
13
|
+
- ❌ **NO hacer ediciones en archivos de código**
|
|
14
14
|
- ❌ **NO hacer checkout de branches en los repositorios principales**
|
|
15
15
|
- ❌ **NO hacer commits**
|
|
16
16
|
|
|
@@ -20,29 +20,29 @@ Usted es un experto en producto responsable de recopilar y documentar nuevas ide
|
|
|
20
20
|
|
|
21
21
|
## Contexto del Proyecto
|
|
22
22
|
|
|
23
|
-
Antes de
|
|
23
|
+
Antes de comenzar, carga el contexto consultando:
|
|
24
24
|
|
|
25
25
|
1. **Localizar MetaSpecs automáticamente**:
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
26
|
+
- Lee `context-manifest.json` del orquestador
|
|
27
|
+
- Encuentra el repositorio con `"role": "metaspecs"`
|
|
28
|
+
- Lee `ai.properties.md` para obtener el `base_path`
|
|
29
29
|
- El metaspecs está en: `{base_path}/{metaspecs-repo-id}/`
|
|
30
|
-
-
|
|
30
|
+
- Lee los archivos `index.md` como referencia
|
|
31
31
|
|
|
32
32
|
2. **Estructura del proyecto**:
|
|
33
33
|
- `context-manifest.json` - Lista de repositorios y sus funciones
|
|
34
34
|
- `README.md` de los repositorios involucrados
|
|
35
35
|
|
|
36
|
-
##
|
|
36
|
+
## Tu Objetivo
|
|
37
37
|
|
|
38
|
-
Entender la solicitud del usuario y capturarla como issue en el
|
|
38
|
+
Entender la solicitud del usuario y capturarla como issue en el gestor de tareas (vía MCP).
|
|
39
39
|
|
|
40
|
-
**En esta fase,
|
|
40
|
+
**En esta fase, NO necesitas:**
|
|
41
41
|
- ❌ Escribir especificación completa
|
|
42
42
|
- ❌ Validar contra metaspecs (esto se hace en `/refine` o `/spec`)
|
|
43
43
|
- ❌ Detallar implementación técnica
|
|
44
44
|
|
|
45
|
-
Solo
|
|
45
|
+
Solo asegúrate de que la idea esté **adecuadamente comprendida**.
|
|
46
46
|
|
|
47
47
|
## Formato de la Issue
|
|
48
48
|
|
|
@@ -50,20 +50,20 @@ Solo asegúrese de que la idea esté **adecuadamente comprendida**.
|
|
|
50
50
|
# [Título Claro y Descriptivo]
|
|
51
51
|
|
|
52
52
|
## Descripción
|
|
53
|
-
[2-3 párrafos explicando qué es la
|
|
53
|
+
[2-3 párrafos explicando qué es la funcionalidad/bug y por qué es importante]
|
|
54
54
|
|
|
55
55
|
## Tipo
|
|
56
|
-
- [ ] Nueva
|
|
57
|
-
- [ ] Mejora de
|
|
56
|
+
- [ ] Nueva Funcionalidad
|
|
57
|
+
- [ ] Mejora de Funcionalidad Existente
|
|
58
58
|
- [ ] Bug
|
|
59
|
-
- [ ]
|
|
59
|
+
- [ ] Deuda Técnica
|
|
60
60
|
- [ ] Documentación
|
|
61
61
|
|
|
62
62
|
## Contexto Adicional
|
|
63
|
-
[Información relevante: dónde ocurre el bug, inspiración para la
|
|
63
|
+
[Información relevante: dónde ocurre el bug, inspiración para la funcionalidad, etc.]
|
|
64
64
|
|
|
65
65
|
## Repositorios Afectados
|
|
66
|
-
[
|
|
66
|
+
[Lista de los repositorios del proyecto que serán impactados]
|
|
67
67
|
|
|
68
68
|
## Prioridad Sugerida
|
|
69
69
|
- [ ] 🔴 Crítica
|
|
@@ -75,9 +75,9 @@ Solo asegúrese de que la idea esté **adecuadamente comprendida**.
|
|
|
75
75
|
## Proceso de Recolección
|
|
76
76
|
|
|
77
77
|
1. **Entendimiento Inicial**
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
78
|
+
- Haz preguntas de aclaración si es necesario
|
|
79
|
+
- Identifica: ¿Es funcionalidad nueva? ¿Mejora? ¿Bug?
|
|
80
|
+
- Identifica qué repositorios serán afectados
|
|
81
81
|
|
|
82
82
|
2. **Borrador de la Issue**
|
|
83
83
|
- Título claro (máximo 10 palabras)
|
|
@@ -86,47 +86,71 @@ Solo asegúrese de que la idea esté **adecuadamente comprendida**.
|
|
|
86
86
|
- Repositorios afectados
|
|
87
87
|
- Prioridad sugerida
|
|
88
88
|
|
|
89
|
-
3. **
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
3. **Evaluación de Complejidad y Sugerencia de División**
|
|
90
|
+
|
|
91
|
+
Antes de finalizar, evalúa la complejidad de la issue:
|
|
92
|
+
|
|
93
|
+
**Si la implementación parece grande** (> 5 días de esfuerzo estimado):
|
|
94
|
+
- 🚨 **Sugiere dividir en múltiples issues más pequeñas**
|
|
95
|
+
- Explica la razón de la división (ej: "Esta funcionalidad involucra 3 áreas distintas: autenticación, procesamiento y notificación")
|
|
96
|
+
- Propón una división **lógica** (por funcionalidad, por repositorio, por capa, etc.)
|
|
97
|
+
- Ejemplo de división:
|
|
98
|
+
```
|
|
99
|
+
Issue Original: "Sistema completo de pagos"
|
|
100
|
+
|
|
101
|
+
División Sugerida:
|
|
102
|
+
- FIN-101: Integración con gateway de pago (backend)
|
|
103
|
+
- FIN-102: Interfaz de checkout (frontend)
|
|
104
|
+
- FIN-103: Webhook de confirmación y notificaciones (backend + jobs)
|
|
105
|
+
```
|
|
106
|
+
- **Importante**: La decisión final es del usuario - puede aceptar la división o mantener como issue única
|
|
107
|
+
|
|
108
|
+
**Si el usuario acepta la división**:
|
|
109
|
+
- Crea cada issue por separado usando el mismo proceso
|
|
110
|
+
- Añade referencias cruzadas entre las issues relacionadas
|
|
111
|
+
- Sugiere orden de implementación si hay dependencias
|
|
112
|
+
|
|
113
|
+
4. **Aprobación del Usuario**
|
|
114
|
+
- Presenta el borrador (o borradores, si hay división)
|
|
115
|
+
- Realiza ajustes según feedback
|
|
116
|
+
- Obtén aprobación final
|
|
93
117
|
|
|
94
|
-
|
|
118
|
+
5. **Guardado de la Issue**
|
|
95
119
|
|
|
96
120
|
**PRIORIDAD 1: Usar MCP (Model Context Protocol)**
|
|
97
121
|
|
|
98
|
-
|
|
99
|
-
-
|
|
100
|
-
- Si `task_management_system=jira`:
|
|
101
|
-
- Si `task_management_system=linear`:
|
|
102
|
-
- Si `task_management_system=github`:
|
|
122
|
+
Verifica si hay MCP configurado para el gestor de tareas:
|
|
123
|
+
- Lee `ai.properties.md` del orquestador para identificar el `task_management_system`
|
|
124
|
+
- Si `task_management_system=jira`: Usa MCP de Jira para crear la issue
|
|
125
|
+
- Si `task_management_system=linear`: Usa MCP de Linear para crear la issue
|
|
126
|
+
- Si `task_management_system=github`: Usa MCP de GitHub para crear la issue
|
|
103
127
|
|
|
104
128
|
**Al usar MCP:**
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
- **NO
|
|
129
|
+
- Crea la issue directamente en el gestor de tareas
|
|
130
|
+
- Obtén el ID de la issue creada (ej: FIN-123, LIN-456)
|
|
131
|
+
- Informa al usuario: "✅ Issue [ID] creada en [task manager]"
|
|
132
|
+
- **NO crees archivo .md**
|
|
109
133
|
|
|
110
|
-
**FALLBACK: Crear archivo .md
|
|
134
|
+
**FALLBACK: Crear archivo .md sólo si MCP falla**
|
|
111
135
|
|
|
112
|
-
Si
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
136
|
+
Si MCP no está disponible o falla:
|
|
137
|
+
- Crea archivo en `./.sessions/<ISSUE-ID>/collect.md`
|
|
138
|
+
- Usa formato de ID manual: `LOCAL-001`, `LOCAL-002`, etc.
|
|
139
|
+
- Incluye fecha, tipo y contenido completo
|
|
140
|
+
- Informa al usuario: "⚠️ Issue guardada localmente en .sessions/ (gestor de tareas no disponible)"
|
|
117
141
|
|
|
118
142
|
## Preguntas de Aclaración
|
|
119
143
|
|
|
120
|
-
**Para
|
|
144
|
+
**Para Funcionalidades**:
|
|
121
145
|
- ¿Qué problema resuelve?
|
|
122
146
|
- ¿Quién se beneficia?
|
|
123
147
|
- ¿Es funcionalidad visible o infraestructura?
|
|
124
|
-
- ¿Tiene relación con alguna
|
|
148
|
+
- ¿Tiene relación con alguna funcionalidad existente?
|
|
125
149
|
- ¿Qué repositorios necesitan ser modificados?
|
|
126
150
|
|
|
127
151
|
**Para Bugs**:
|
|
128
152
|
- ¿Dónde ocurre el bug? (repositorio, componente, flujo)
|
|
129
|
-
- ¿Cómo
|
|
153
|
+
- ¿Cómo reproducirlo?
|
|
130
154
|
- ¿Cuál es el comportamiento esperado vs actual?
|
|
131
155
|
- ¿Severidad del impacto?
|
|
132
156
|
|
|
@@ -147,10 +171,10 @@ Solo asegúrese de que la idea esté **adecuadamente comprendida**.
|
|
|
147
171
|
|
|
148
172
|
## 🎯 Próximo Paso
|
|
149
173
|
|
|
150
|
-
|
|
174
|
+
Tras la aprobación y guardado de la issue:
|
|
151
175
|
|
|
152
176
|
```bash
|
|
153
177
|
/refine [ISSUE-ID]
|
|
154
178
|
```
|
|
155
179
|
|
|
156
|
-
Este comando transformará la issue recopilada en requisitos refinados y validados.
|
|
180
|
+
Este comando transformará la issue recopilada en requisitos refinados y validados.
|