rbin-task-flow 1.1.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/code_comments.mdc +62 -62
- package/.cursor/rules/commit_practices.mdc +75 -75
- package/.cursor/rules/git_control.mdc +63 -63
- package/.cursor/rules/task_estimate.mdc +92 -0
- package/.cursor/rules/task_execution.mdc +15 -7
- package/.cursor/rules/task_generation.mdc +16 -16
- package/.cursor/rules/task_refactor.mdc +20 -9
- package/.cursor/rules/task_report.mdc +113 -0
- package/.cursor/rules/task_review.mdc +20 -7
- package/.cursor/rules/task_work.mdc +26 -20
- package/.task-flow/README.md +96 -46
- package/.task-flow/screens/example.png.txt +10 -11
- package/.task-flow/tasks.input.txt +4 -4
- package/.task-flow/tasks.status.md +7 -7
- package/CLAUDE.md +13 -5
- package/GEMINI.md +13 -5
- package/README.md +22 -10
- package/bin/cli.js +24 -0
- package/lib/estimate.js +117 -0
- package/lib/install.js +11 -32
- package/lib/report.js +297 -0
- package/lib/utils.js +16 -1
- package/lib/version.js +8 -5
- package/package.json +1 -1
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Rules about code comments - prohibition of explanatory comments, use of dev-logs for documentation, and pattern for separation comments
|
|
3
3
|
globs: **/*
|
|
4
4
|
alwaysApply: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
- **
|
|
8
|
-
- **❌
|
|
9
|
-
- **❌
|
|
10
|
-
- **❌
|
|
11
|
-
- **✅
|
|
7
|
+
- **Prohibition of Explanatory Comments:**
|
|
8
|
+
- **❌ NEVER add** comments that explain what the code does
|
|
9
|
+
- **❌ NEVER add** comments like "// This function does X" or "// Check if user exists"
|
|
10
|
+
- **❌ NEVER add** inline comments explaining business logic
|
|
11
|
+
- **✅ Code must be self-explanatory** through clear variable, function, and class names
|
|
12
12
|
|
|
13
|
-
- **
|
|
14
|
-
- **✅
|
|
15
|
-
- **✅
|
|
16
|
-
- **✅
|
|
17
|
-
- **✅
|
|
13
|
+
- **Documentation in dev-logs:**
|
|
14
|
+
- **✅ When you need to explain something complex**, create a file in `dev-logs/` at the project root
|
|
15
|
+
- **✅ Create the `dev-logs/` folder** if it doesn't exist
|
|
16
|
+
- **✅ Use markdown files** (`.md`) for technical documentation
|
|
17
|
+
- **✅ Include context**, design decisions, and detailed explanations in dev-logs files
|
|
18
18
|
|
|
19
|
-
- **
|
|
19
|
+
- **dev-logs Structure:**
|
|
20
20
|
```
|
|
21
|
-
|
|
21
|
+
project/
|
|
22
22
|
└── dev-logs/
|
|
23
23
|
├── architecture-decisions.md
|
|
24
24
|
├── complex-algorithms.md
|
|
@@ -26,56 +26,56 @@ alwaysApply: true
|
|
|
26
26
|
└── ...
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
- **
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
29
|
+
- **When to Create dev-logs:**
|
|
30
|
+
- Complex algorithms that need detailed explanation
|
|
31
|
+
- Important architecture decisions
|
|
32
|
+
- Complex external API integrations
|
|
33
|
+
- Necessary workarounds or hacks
|
|
34
|
+
- Important historical context
|
|
35
|
+
- Non-obvious project patterns
|
|
36
36
|
|
|
37
|
-
- **
|
|
37
|
+
- **dev-logs File Format:**
|
|
38
38
|
```markdown
|
|
39
|
-
#
|
|
39
|
+
# Topic Title
|
|
40
40
|
|
|
41
|
-
##
|
|
42
|
-
|
|
41
|
+
## Context
|
|
42
|
+
Explanation of context and why this is necessary...
|
|
43
43
|
|
|
44
|
-
##
|
|
45
|
-
|
|
44
|
+
## Implementation
|
|
45
|
+
Implementation details...
|
|
46
46
|
|
|
47
|
-
##
|
|
48
|
-
- Link
|
|
49
|
-
-
|
|
47
|
+
## References
|
|
48
|
+
- Link to documentation
|
|
49
|
+
- Related issue
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
- **
|
|
53
|
-
- **✅
|
|
54
|
-
- **✅
|
|
52
|
+
- **Separation Comments Allowed:**
|
|
53
|
+
- **✅ ALLOWED**: Comments that organize and separate code blocks
|
|
54
|
+
- **✅ ALWAYS use** the exact separation pattern:
|
|
55
55
|
```typescript
|
|
56
56
|
// ────────────────────────────────
|
|
57
57
|
// Prisma Types
|
|
58
58
|
// ────────────────────────────────
|
|
59
59
|
```
|
|
60
|
-
- **✅
|
|
61
|
-
- **✅
|
|
60
|
+
- **✅ Use** to separate logical sections of code
|
|
61
|
+
- **✅ Use** to organize imports, types, constants, etc.
|
|
62
62
|
|
|
63
|
-
- **
|
|
63
|
+
- **Separation Comment Pattern:**
|
|
64
64
|
```typescript
|
|
65
65
|
// ────────────────────────────────
|
|
66
|
-
//
|
|
66
|
+
// Section or Title
|
|
67
67
|
// ────────────────────────────────
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
**
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
- **
|
|
70
|
+
**Characteristics:**
|
|
71
|
+
- Dash line (`─`) with exactly 31 characters
|
|
72
|
+
- Title centered between separation lines
|
|
73
|
+
- Always use `//` for line comments
|
|
74
|
+
- **No blank lines** between separation lines and title
|
|
75
75
|
|
|
76
|
-
- **
|
|
76
|
+
- **Correct Usage Examples:**
|
|
77
77
|
|
|
78
|
-
**✅ DO:
|
|
78
|
+
**✅ DO: Separation comment**
|
|
79
79
|
```typescript
|
|
80
80
|
// ────────────────────────────────
|
|
81
81
|
// Type Definitions
|
|
@@ -91,11 +91,11 @@ alwaysApply: true
|
|
|
91
91
|
// ────────────────────────────────
|
|
92
92
|
|
|
93
93
|
export async function fetchUser(id: string): Promise<User> {
|
|
94
|
-
//
|
|
94
|
+
// code here
|
|
95
95
|
}
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
**❌ DON'T:
|
|
98
|
+
**❌ DON'T: Explanatory comments**
|
|
99
99
|
```typescript
|
|
100
100
|
// ❌ DON'T: This function fetches a user from the database
|
|
101
101
|
export async function fetchUser(id: string): Promise<User> {
|
|
@@ -107,7 +107,7 @@ alwaysApply: true
|
|
|
107
107
|
}
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
**✅ DO:
|
|
110
|
+
**✅ DO: Self-explanatory code + dev-logs if necessary**
|
|
111
111
|
```typescript
|
|
112
112
|
export async function fetchUserById(id: string): Promise<User> {
|
|
113
113
|
const user = await db.user.findUnique({ where: { id } });
|
|
@@ -116,23 +116,23 @@ alwaysApply: true
|
|
|
116
116
|
}
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
If the logic is complex, create `dev-logs/user-fetching.md` with explanations.
|
|
120
120
|
|
|
121
|
-
- **
|
|
122
|
-
- **
|
|
123
|
-
- **
|
|
124
|
-
- **
|
|
125
|
-
- **
|
|
121
|
+
- **Automatic dev-logs Creation:**
|
|
122
|
+
- **Always check** if `dev-logs/` exists before creating file
|
|
123
|
+
- **Create the folder** if it doesn't exist: `mkdir -p dev-logs`
|
|
124
|
+
- **Use descriptive names** for files: `kebab-case.md`
|
|
125
|
+
- **Include date** in file content when relevant
|
|
126
126
|
|
|
127
|
-
- **
|
|
128
|
-
- **
|
|
129
|
-
-
|
|
130
|
-
-
|
|
127
|
+
- **Exceptions and Special Cases:**
|
|
128
|
+
- **NO EXCEPTION** for explanatory comments in code
|
|
129
|
+
- Separation comments **always** follow the exact pattern
|
|
130
|
+
- Complex documentation **always** goes to `dev-logs/`
|
|
131
131
|
|
|
132
|
-
- **
|
|
133
|
-
- [cursor_rules.mdc](mdc:.cursor/rules/cursor_rules.mdc) -
|
|
134
|
-
- [self_improve.mdc](mdc:.cursor/rules/self_improve.mdc) -
|
|
135
|
-
- [commit_practices.mdc](mdc:.cursor/rules/commit_practices.mdc) - Commits
|
|
132
|
+
- **Integration with Other Rules:**
|
|
133
|
+
- [cursor_rules.mdc](mdc:.cursor/rules/cursor_rules.mdc) - Rule formatting
|
|
134
|
+
- [self_improve.mdc](mdc:.cursor/rules/self_improve.mdc) - Continuous improvement
|
|
135
|
+
- [commit_practices.mdc](mdc:.cursor/rules/commit_practices.mdc) - Commits can reference dev-logs
|
|
136
136
|
|
|
137
|
-
- **
|
|
138
|
-
> **
|
|
137
|
+
- **Fundamental Principle:**
|
|
138
|
+
> **Code must be self-explanatory. If something needs explanation, document it in dev-logs/, not in code. Use comments only for visual organization following the exact pattern.**
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Commit practices after task and subtask completion, including automatic message suggestions
|
|
3
3
|
globs: **/*
|
|
4
4
|
alwaysApply: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
- **
|
|
8
|
-
- **
|
|
9
|
-
- **
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
7
|
+
- **Notification and Commit Suggestion After Tasks:**
|
|
8
|
+
- **Always notify user** when a task or subtask is marked as `done`
|
|
9
|
+
- **Suggest a commit message** based on changes made
|
|
10
|
+
- **Include context** of task/subtask in commit suggestion
|
|
11
|
+
- **CRITICAL: NEVER execute git commands** - only suggest, user executes
|
|
12
12
|
|
|
13
|
-
- **
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
13
|
+
- **When to Apply:**
|
|
14
|
+
- After `set_task_status` with status `done` for any task or subtask
|
|
15
|
+
- After complete implementation of a subtask
|
|
16
|
+
- After completion of a parent task (when all subtasks are done)
|
|
17
17
|
|
|
18
|
-
- **
|
|
18
|
+
- **Commit Suggestion Format:**
|
|
19
19
|
```bash
|
|
20
|
-
# ✅ DO:
|
|
21
|
-
git commit -m "feat(module):
|
|
20
|
+
# ✅ DO: Recommended format
|
|
21
|
+
git commit -m "feat(module): Short description of change
|
|
22
22
|
|
|
23
|
-
-
|
|
23
|
+
- Implementation details
|
|
24
24
|
- Task/Subtask ID: X.Y
|
|
25
|
-
-
|
|
25
|
+
- Main changes made"
|
|
26
26
|
|
|
27
|
-
#
|
|
27
|
+
# Real example:
|
|
28
28
|
git commit -m "feat(auth): Implement user login validation
|
|
29
29
|
|
|
30
30
|
- Add email format validation
|
|
@@ -32,34 +32,34 @@ alwaysApply: true
|
|
|
32
32
|
- Task ID: 3.2"
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
- **
|
|
36
|
-
1. **
|
|
37
|
-
2. **
|
|
38
|
-
3. **
|
|
39
|
-
4. **
|
|
40
|
-
5. **
|
|
35
|
+
- **Suggestion Process:**
|
|
36
|
+
1. **Analyze changes**: Use `git status` and `git diff` to identify modified files (read-only, never modify)
|
|
37
|
+
2. **Extract task context**: Include task/subtask ID and title/description
|
|
38
|
+
3. **Generate message**: Create message following conventional commits
|
|
39
|
+
4. **Present to user**: Show formatted suggestion ready to use
|
|
40
|
+
5. **NEVER execute**: Only suggest, user decides when and how to commit
|
|
41
41
|
|
|
42
|
-
- **
|
|
43
|
-
- `feat`:
|
|
44
|
-
- `fix`:
|
|
45
|
-
- `refactor`:
|
|
46
|
-
- `docs`:
|
|
47
|
-
- `style`:
|
|
48
|
-
- `test`:
|
|
49
|
-
- `chore`:
|
|
42
|
+
- **Commit Types (Conventional Commits):**
|
|
43
|
+
- `feat`: New feature (complete task)
|
|
44
|
+
- `fix`: Bug fix
|
|
45
|
+
- `refactor`: Refactoring without behavior change
|
|
46
|
+
- `docs`: Documentation changes
|
|
47
|
+
- `style`: Formatting, semicolons, etc (no code change)
|
|
48
|
+
- `test`: Test addition or fix
|
|
49
|
+
- `chore`: Build, dependency changes, etc
|
|
50
50
|
|
|
51
|
-
- **
|
|
51
|
+
- **Suggested Message Structure:**
|
|
52
52
|
```bash
|
|
53
|
-
<
|
|
53
|
+
<type>(<scope>): <short description>
|
|
54
54
|
|
|
55
|
-
<
|
|
55
|
+
<optional body with details>
|
|
56
56
|
- Task/Subtask: <ID>
|
|
57
|
-
-
|
|
57
|
+
- Modified files: <summary list>
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
- **
|
|
60
|
+
- **Suggestion Examples:**
|
|
61
61
|
|
|
62
|
-
**
|
|
62
|
+
**For implementation subtask:**
|
|
63
63
|
```bash
|
|
64
64
|
git commit -m "feat(api): Add user authentication endpoint
|
|
65
65
|
|
|
@@ -69,7 +69,7 @@ alwaysApply: true
|
|
|
69
69
|
- Subtask ID: 5.3"
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
**
|
|
72
|
+
**For complete task:**
|
|
73
73
|
```bash
|
|
74
74
|
git commit -m "feat(dashboard): Complete user analytics dashboard
|
|
75
75
|
|
|
@@ -79,7 +79,7 @@ alwaysApply: true
|
|
|
79
79
|
- Task ID: 7"
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
**
|
|
82
|
+
**For fix:**
|
|
83
83
|
```bash
|
|
84
84
|
git commit -m "fix(auth): Resolve token expiration issue
|
|
85
85
|
|
|
@@ -88,54 +88,54 @@ alwaysApply: true
|
|
|
88
88
|
- Subtask ID: 8.1"
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
- **
|
|
92
|
-
- `git status --short` -
|
|
93
|
-
- `git diff --stat` -
|
|
94
|
-
- `git diff --name-only` -
|
|
95
|
-
- `git log --oneline -5` -
|
|
91
|
+
- **Useful Commands for Analysis:**
|
|
92
|
+
- `git status --short` - List modified files compactly
|
|
93
|
+
- `git diff --stat` - Change statistics
|
|
94
|
+
- `git diff --name-only` - Only names of modified files
|
|
95
|
+
- `git log --oneline -5` - Last commits for context
|
|
96
96
|
|
|
97
|
-
- **
|
|
98
|
-
- ❌ DON'T:
|
|
99
|
-
- ❌ DON'T:
|
|
100
|
-
- ❌ DON'T:
|
|
101
|
-
- ❌ DON'T:
|
|
97
|
+
- **When NOT to Suggest Commit:**
|
|
98
|
+
- ❌ DON'T: If there are no git changes (no modified files)
|
|
99
|
+
- ❌ DON'T: If user already committed recently (last 5 minutes)
|
|
100
|
+
- ❌ DON'T: If there are unresolved merge conflicts
|
|
101
|
+
- ❌ DON'T: If repository is not a git repo
|
|
102
102
|
|
|
103
|
-
- **
|
|
104
|
-
- **
|
|
105
|
-
- **
|
|
106
|
-
- **
|
|
103
|
+
- **Suggestion Presentation:**
|
|
104
|
+
- **Always notify user** when a task/subtask is completed with clear message and emoji ✅
|
|
105
|
+
- **Show formatted suggestion** ready to copy/paste
|
|
106
|
+
- **Include statistics** of changes (modified files, lines added/removed)
|
|
107
107
|
|
|
108
|
-
**
|
|
108
|
+
**Presentation example:**
|
|
109
109
|
```markdown
|
|
110
|
-
✅ Task 3.2
|
|
110
|
+
✅ Task 3.2 completed!
|
|
111
111
|
|
|
112
|
-
📝
|
|
112
|
+
📝 Commit suggestion:
|
|
113
113
|
```bash
|
|
114
|
-
git commit -m "feat(module):
|
|
114
|
+
git commit -m "feat(module): Change description
|
|
115
115
|
|
|
116
|
-
-
|
|
117
|
-
-
|
|
116
|
+
- Detail 1
|
|
117
|
+
- Detail 2
|
|
118
118
|
- Task ID: 3.2"
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
📊
|
|
122
|
-
- 3
|
|
123
|
-
- 45
|
|
121
|
+
📊 Changes detected:
|
|
122
|
+
- 3 files modified
|
|
123
|
+
- 45 lines added, 12 removed
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
- **
|
|
127
|
-
-
|
|
128
|
-
1.
|
|
129
|
-
2.
|
|
130
|
-
3.
|
|
131
|
-
4.
|
|
126
|
+
- **Integration with RBIN Task Flow:**
|
|
127
|
+
- After marking a task as completed, automatically:
|
|
128
|
+
1. Check if there are git changes
|
|
129
|
+
2. Analyze modified files
|
|
130
|
+
3. Generate commit suggestion based on task
|
|
131
|
+
4. Present to user clearly
|
|
132
132
|
|
|
133
|
-
- **
|
|
134
|
-
- **
|
|
135
|
-
-
|
|
136
|
-
-
|
|
133
|
+
- **Git Control:**
|
|
134
|
+
- **NEVER execute git commands** - only suggest
|
|
135
|
+
- Follow [git_control.mdc](mdc:.cursor/rules/git_control.mdc) for complete user control over git
|
|
136
|
+
- Present suggestions ready for user to copy and execute
|
|
137
137
|
|
|
138
|
-
- **
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
-
|
|
138
|
+
- **References:**
|
|
139
|
+
- Follow [Conventional Commits](https://www.conventionalcommits.org/) patterns
|
|
140
|
+
- Integrate with RBIN Task Flow workflow
|
|
141
|
+
- Git control: [git_control.mdc](mdc:.cursor/rules/git_control.mdc)
|
|
@@ -1,88 +1,88 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Complete user control over Git commands - AI never executes git commands, but can execute any other command without asking
|
|
3
3
|
globs: **/*
|
|
4
4
|
alwaysApply: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
- **
|
|
8
|
-
- **✅
|
|
9
|
-
- **✅
|
|
10
|
-
- **✅
|
|
11
|
-
- **✅
|
|
12
|
-
- **❌
|
|
7
|
+
- **General Command Permission:**
|
|
8
|
+
- **✅ CAN execute** any system command without asking
|
|
9
|
+
- **✅ CAN execute** npm, yarn, pnpm, docker, etc without confirmation
|
|
10
|
+
- **✅ CAN execute** scripts, tests, linters, formatters without asking
|
|
11
|
+
- **✅ DON'T need to ask** before executing simple or common commands
|
|
12
|
+
- **❌ ONLY EXCEPTION**: `git` commands that modify the repository
|
|
13
13
|
|
|
14
|
-
- **
|
|
15
|
-
- **✅
|
|
16
|
-
- `cat`, `head`, `tail`, `less`, `more` -
|
|
17
|
-
- `grep`, `find`, `ls`, `tree` -
|
|
18
|
-
- `wc`, `stat`, `file` -
|
|
19
|
-
- `read_file` (
|
|
20
|
-
-
|
|
21
|
-
- **✅
|
|
22
|
-
- **✅
|
|
14
|
+
- **Read Commands - Automatic Execution:**
|
|
15
|
+
- **✅ ALWAYS execute without asking** commands that only read information:
|
|
16
|
+
- `cat`, `head`, `tail`, `less`, `more` - File viewing
|
|
17
|
+
- `grep`, `find`, `ls`, `tree` - Search and listing
|
|
18
|
+
- `wc`, `stat`, `file` - File information
|
|
19
|
+
- `read_file` (tool) - File reading
|
|
20
|
+
- Any command that **does not modify** files or system
|
|
21
|
+
- **✅ NEVER ask** before executing read commands
|
|
22
|
+
- **✅ Execute immediately** without waiting for user confirmation
|
|
23
23
|
|
|
24
|
-
- **
|
|
25
|
-
- **❌
|
|
26
|
-
- **❌
|
|
27
|
-
- **❌
|
|
28
|
-
- **✅
|
|
29
|
-
- **✅
|
|
24
|
+
- **Absolute Prohibition of Executing Git Commands:**
|
|
25
|
+
- **❌ NEVER execute** `git` commands automatically
|
|
26
|
+
- **❌ NEVER do** `git add`, `git commit`, `git push`, `git pull`, `git merge`, etc
|
|
27
|
+
- **❌ NEVER modify** git repository state
|
|
28
|
+
- **✅ ONLY suggest** git commands when appropriate
|
|
29
|
+
- **✅ ONLY read** git information (git status, git diff, git log) for analysis
|
|
30
30
|
|
|
31
|
-
- **
|
|
32
|
-
- ✅ `git status` -
|
|
33
|
-
- ✅ `git diff` -
|
|
34
|
-
- ✅ `git log` -
|
|
35
|
-
- ✅ `git show` -
|
|
36
|
-
- ✅ `git branch` -
|
|
37
|
-
- ✅
|
|
31
|
+
- **Allowed Git Commands (Read Only):**
|
|
32
|
+
- ✅ `git status` - To check repository state
|
|
33
|
+
- ✅ `git diff` - To analyze changes
|
|
34
|
+
- ✅ `git log` - To view history
|
|
35
|
+
- ✅ `git show` - To view commit details
|
|
36
|
+
- ✅ `git branch` - To list branches (without creating/modifying)
|
|
37
|
+
- ✅ Any git command that **only reads** information
|
|
38
38
|
|
|
39
|
-
- **
|
|
40
|
-
- ❌ `git add` -
|
|
41
|
-
- ❌ `git commit` -
|
|
42
|
-
- ❌ `git push` -
|
|
43
|
-
- ❌ `git pull` -
|
|
44
|
-
- ❌ `git merge` -
|
|
45
|
-
- ❌ `git checkout` -
|
|
46
|
-
- ❌ `git branch -d`
|
|
47
|
-
- ❌ `git reset` -
|
|
48
|
-
- ❌ `git rebase` -
|
|
49
|
-
- ❌ `git tag` -
|
|
50
|
-
- ❌
|
|
39
|
+
- **Prohibited Git Commands (Never Execute):**
|
|
40
|
+
- ❌ `git add` - User adds files
|
|
41
|
+
- ❌ `git commit` - User makes commits
|
|
42
|
+
- ❌ `git push` - User pushes
|
|
43
|
+
- ❌ `git pull` - User pulls
|
|
44
|
+
- ❌ `git merge` - User merges
|
|
45
|
+
- ❌ `git checkout` - User switches branches
|
|
46
|
+
- ❌ `git branch -d` or `-D` - User deletes branches
|
|
47
|
+
- ❌ `git reset` - User resets
|
|
48
|
+
- ❌ `git rebase` - User rebases
|
|
49
|
+
- ❌ `git tag` - User creates tags
|
|
50
|
+
- ❌ Any command that **modifies** the repository
|
|
51
51
|
|
|
52
|
-
- **
|
|
53
|
-
- ✅
|
|
54
|
-
- ✅
|
|
55
|
-
- ✅
|
|
56
|
-
- ✅
|
|
57
|
-
- ✅
|
|
52
|
+
- **When to Suggest Git Commands:**
|
|
53
|
+
- ✅ After task/subtask completion - suggest commit message
|
|
54
|
+
- ✅ When there are uncommitted changes - suggest commit
|
|
55
|
+
- ✅ When there are conflicts - suggest resolution (but don't execute)
|
|
56
|
+
- ✅ When update is needed - suggest pull (but don't execute)
|
|
57
|
+
- ✅ Always present as **suggestion**, never execute
|
|
58
58
|
|
|
59
|
-
- **
|
|
59
|
+
- **Suggestion Format:**
|
|
60
60
|
```markdown
|
|
61
|
-
✅ Task
|
|
61
|
+
✅ Task completed!
|
|
62
62
|
|
|
63
|
-
📝
|
|
63
|
+
📝 Commit suggestion (you execute):
|
|
64
64
|
```bash
|
|
65
65
|
git add .
|
|
66
|
-
git commit -m "feat(module):
|
|
66
|
+
git commit -m "feat(module): Description"
|
|
67
67
|
```
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
**
|
|
70
|
+
**NEVER do:**
|
|
71
71
|
```bash
|
|
72
|
-
# ❌ DON'T:
|
|
72
|
+
# ❌ DON'T: Execute automatically
|
|
73
73
|
git add .
|
|
74
74
|
git commit -m "..."
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
- **
|
|
78
|
-
- **
|
|
79
|
-
- **
|
|
80
|
-
- **
|
|
81
|
-
-
|
|
77
|
+
- **Exceptions and Special Cases:**
|
|
78
|
+
- **NO EXCEPTION for git**: This rule is absolute for git commands
|
|
79
|
+
- **For non-git commands**: Execute directly without asking
|
|
80
|
+
- **For git commands**: Even if user explicitly asks, **always suggest** instead of executing
|
|
81
|
+
- If in doubt about whether a command is git or not, check if it starts with `git` before executing
|
|
82
82
|
|
|
83
|
-
- **
|
|
84
|
-
- [commit_practices.mdc](mdc:.cursor/rules/commit_practices.mdc) -
|
|
85
|
-
-
|
|
83
|
+
- **Integration with Other Rules:**
|
|
84
|
+
- [commit_practices.mdc](mdc:.cursor/rules/commit_practices.mdc) - Suggest commits, never execute
|
|
85
|
+
- RBIN Task Flow workflow should not include automatic git execution
|
|
86
86
|
|
|
87
|
-
- **
|
|
88
|
-
> **
|
|
87
|
+
- **Fundamental Principle:**
|
|
88
|
+
> **User has complete control over the Git repository. AI can execute any system command without asking, EXCEPT git commands. For git, only suggests, analyzes, and informs. Never modifies git state.**
|