@smartsoft001-mobilems/claude-plugins 2.79.0 → 2.81.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/package.json +1 -1
- package/plugins/flow/.claude-plugin/README.md +13 -4
- package/plugins/flow/.claude-plugin/plugin.json +1 -1
- package/plugins/flow/.claude-plugin/settings.template.json +11 -8
- package/plugins/flow/agents/shared-impl-orchestrator.md +1 -1
- package/plugins/flow/agents/shared-impl-teammate.md +2 -2
- package/plugins/flow/agents/ui-screenshot-reporter.md +3 -3
- package/plugins/flow/skills/commit/SKILL.md +2 -2
- package/plugins/flow/skills/impl/SKILL.md +41 -32
- package/plugins/flow/skills/linear-suggestion/SKILL.md +1 -1
- package/plugins/flow/skills/plan/SKILL.md +128 -77
- package/plugins/flow/skills/push/SKILL.md +6 -6
- package/plugins/flow/skills/review/SKILL.md +3 -3
- package/plugins/flow-external/.claude-plugin/README.md +1 -1
- package/plugins/flow-external/.claude-plugin/plugin.json +1 -1
- package/plugins/flow-external/.claude-plugin/settings.template.json +11 -8
- package/plugins/flow-external/agents/shared-linear-subtask-iterator.md +9 -9
- package/plugins/flow-external/skills/commit/SKILL.md +11 -10
- package/plugins/flow-external/skills/impl/SKILL.md +52 -29
- package/plugins/flow-external/skills/linear-suggestion/SKILL.md +8 -8
- package/plugins/flow-external/skills/plan/SKILL.md +95 -29
- package/plugins/flow-external/skills/push/SKILL.md +27 -18
- package/plugins/flow-legacy/.claude-plugin/README.md +1 -1
- package/plugins/flow-legacy/.claude-plugin/plugin.json +1 -1
- package/plugins/flow-legacy/.claude-plugin/settings.template.json +11 -8
- package/plugins/flow-legacy/agents/shared-impl-orchestrator.md +4 -2
- package/plugins/flow-legacy/skills/commit/SKILL.md +2 -2
- package/plugins/flow-legacy/skills/impl/SKILL.md +36 -27
- package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +1 -1
- package/plugins/flow-legacy/skills/plan/SKILL.md +104 -79
- package/plugins/flow-legacy/skills/push/SKILL.md +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: impl
|
|
3
|
-
description: Implement plans from Linear
|
|
3
|
+
description: Implement plans from `plan.md` attachments on Linear issues. Reads approved plan attachment, orchestrates agents (saving `orchestration.md` attachment), and executes changes step by step.
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- Bash
|
|
6
6
|
- Read
|
|
@@ -9,12 +9,15 @@ allowed-tools:
|
|
|
9
9
|
- Glob
|
|
10
10
|
- Grep
|
|
11
11
|
- AskUserQuestion
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
12
|
+
- mcp__linear__get_issue
|
|
13
|
+
- mcp__linear__list_issues
|
|
14
|
+
- mcp__linear__list_comments
|
|
15
|
+
- mcp__linear__save_comment
|
|
16
|
+
- mcp__linear__save_issue
|
|
17
|
+
- mcp__linear__list_issue_statuses
|
|
18
|
+
- mcp__linear__create_attachment
|
|
19
|
+
- mcp__linear__get_attachment
|
|
20
|
+
- mcp__linear__delete_attachment
|
|
18
21
|
- mcp__playwright__browser_navigate
|
|
19
22
|
- mcp__playwright__browser_snapshot
|
|
20
23
|
- mcp__playwright__browser_take_screenshot
|
|
@@ -24,7 +27,7 @@ allowed-tools:
|
|
|
24
27
|
|
|
25
28
|
# Implementation Skill
|
|
26
29
|
|
|
27
|
-
Implement changes based on approved plans from Linear
|
|
30
|
+
Implement changes based on approved plans from Linear `plan.md` attachments.
|
|
28
31
|
|
|
29
32
|
## Usage
|
|
30
33
|
|
|
@@ -50,12 +53,13 @@ This is for standalone Angular CLI projects. Key rules:
|
|
|
50
53
|
|
|
51
54
|
## Execution Steps
|
|
52
55
|
|
|
53
|
-
### Step 1: Fetch Task and Plan
|
|
56
|
+
### Step 1: Fetch Task and Plan Attachment
|
|
54
57
|
|
|
55
|
-
1. Fetch the Linear task using `
|
|
56
|
-
2.
|
|
57
|
-
3.
|
|
58
|
-
4.
|
|
58
|
+
1. Fetch the Linear task using `mcp__linear__get_issue({ id: taskId })` — the response includes an `attachments` array.
|
|
59
|
+
2. Find the attachment where `title == "plan.md"` (or `filename == "plan.md"`) and capture its `id`.
|
|
60
|
+
3. Fetch the plan content via `mcp__linear__get_attachment({ id: <attachmentId> })`. Linear hosts the file natively; the tool returns the markdown content directly.
|
|
61
|
+
4. Parse the plan content.
|
|
62
|
+
5. If no `plan.md` attachment exists, inform the user and suggest running `/plan <taskId>` first. Do NOT fall back to parsing plan content from comments.
|
|
59
63
|
|
|
60
64
|
### Step 2: Detect Project Structure
|
|
61
65
|
|
|
@@ -70,6 +74,7 @@ cat package.json 2>/dev/null || cat app/package.json 2>/dev/null
|
|
|
70
74
|
```
|
|
71
75
|
|
|
72
76
|
Key things to detect:
|
|
77
|
+
|
|
73
78
|
- Angular version (6-11)
|
|
74
79
|
- CSS framework (Bootstrap 4 / custom SCSS / none)
|
|
75
80
|
- NgRx version and patterns
|
|
@@ -80,10 +85,28 @@ Key things to detect:
|
|
|
80
85
|
|
|
81
86
|
If task has subtasks:
|
|
82
87
|
|
|
83
|
-
1. Fetch subtasks using `
|
|
88
|
+
1. Fetch subtasks using `mcp__linear__list_issues` with parent filter
|
|
84
89
|
2. Sort by priority/creation order
|
|
85
90
|
3. Process each subtask in order
|
|
86
91
|
|
|
92
|
+
### Step 3a: Save Orchestration Plan as Native Linear Attachment
|
|
93
|
+
|
|
94
|
+
Use `shared-impl-orchestrator` agent to generate a `🎭 Agent Orchestration Plan` that lists which agents run in what order (Angular 6-11 + CLI context).
|
|
95
|
+
|
|
96
|
+
Then save it as an `orchestration.md` attachment on the task (not as a comment):
|
|
97
|
+
|
|
98
|
+
1. **Replace existing orchestration**: use `mcp__linear__get_issue` to list attachments; if one titled `orchestration.md` exists, delete it via `mcp__linear__delete_attachment({ id: oldAttachmentId })`. Linear hosts the file natively, so nothing else needs cleanup.
|
|
99
|
+
2. **Write locally**: `Write` the orchestration markdown to `/tmp/claude-plans/<taskId>-orchestration.md`.
|
|
100
|
+
3. **Base64-encode**: `b64=$(base64 -i /tmp/claude-plans/<taskId>-orchestration.md)`.
|
|
101
|
+
4. **Create Linear attachment** via `mcp__linear__create_attachment`:
|
|
102
|
+
- `issue`: the task ID
|
|
103
|
+
- `filename`: `orchestration.md`
|
|
104
|
+
- `contentType`: `text/markdown`
|
|
105
|
+
- `title`: `orchestration.md` (exact)
|
|
106
|
+
- `subtitle`: `Plan orkiestracji wygenerowany przez Claude Code (external)`
|
|
107
|
+
- `base64Content`: the base64 string from step 3
|
|
108
|
+
5. **Clean up** local `/tmp/claude-plans/<taskId>-orchestration.md` file after the attachment is created.
|
|
109
|
+
|
|
87
110
|
### Step 4: Implement Each Step
|
|
88
111
|
|
|
89
112
|
For each step in the plan:
|
|
@@ -114,16 +137,16 @@ Create a summary comment on the Linear task:
|
|
|
114
137
|
|
|
115
138
|
### Zrealizowane
|
|
116
139
|
|
|
117
|
-
| Podzadanie | Tytul
|
|
118
|
-
|
|
119
|
-
| MOB-549
|
|
140
|
+
| Podzadanie | Tytul | Status |
|
|
141
|
+
| ---------- | ------- | ------------ |
|
|
142
|
+
| MOB-549 | [title] | Zrealizowane |
|
|
120
143
|
|
|
121
144
|
### Zmiany
|
|
122
145
|
|
|
123
|
-
| Plik
|
|
124
|
-
|
|
125
|
-
| `src/app/components/feature.component.ts` | Nowy
|
|
126
|
-
| `src/app/components/feature.module.ts`
|
|
146
|
+
| Plik | Typ | Opis |
|
|
147
|
+
| ----------------------------------------- | ------------- | ----------------- |
|
|
148
|
+
| `src/app/components/feature.component.ts` | Nowy | Komponent |
|
|
149
|
+
| `src/app/components/feature.module.ts` | Zmodyfikowany | Dodano deklaracje |
|
|
127
150
|
|
|
128
151
|
### Build
|
|
129
152
|
|
|
@@ -136,15 +159,15 @@ _Raport wygenerowany przez Claude Code_
|
|
|
136
159
|
|
|
137
160
|
## Agent Selection
|
|
138
161
|
|
|
139
|
-
| Task Type
|
|
140
|
-
|
|
141
|
-
| New component
|
|
142
|
-
| New service
|
|
143
|
-
| NgRx state
|
|
144
|
-
| New directive
|
|
145
|
-
| New pipe
|
|
162
|
+
| Task Type | Agent |
|
|
163
|
+
| -------------- | ---------------------------------------------------- |
|
|
164
|
+
| New component | `angular-component-scaffolder` |
|
|
165
|
+
| New service | `angular-service-builder` |
|
|
166
|
+
| NgRx state | `angular-state-builder` |
|
|
167
|
+
| New directive | `angular-directive-builder` |
|
|
168
|
+
| New pipe | `angular-pipe-builder` |
|
|
146
169
|
| Guard/resolver | `angular-guard-builder` / `angular-resolver-builder` |
|
|
147
|
-
| Styling
|
|
170
|
+
| Styling | `ui-web-designer` |
|
|
148
171
|
|
|
149
172
|
## Guidelines
|
|
150
173
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: linear-suggestion
|
|
3
3
|
description: Create a Linear issue in the "MobileMS Framework" project with a suggestion for agent or skill improvements.
|
|
4
|
-
allowed-tools:
|
|
4
|
+
allowed-tools: mcp__linear__save_issue
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Linear Suggestion
|
|
@@ -16,13 +16,13 @@ Create a Linear issue in the **MobileMS Framework** project containing a suggest
|
|
|
16
16
|
|
|
17
17
|
## Input Parameters
|
|
18
18
|
|
|
19
|
-
| Parameter
|
|
20
|
-
|
|
21
|
-
| `title`
|
|
22
|
-
| `description` | YES
|
|
23
|
-
| `source`
|
|
24
|
-
| `targetFile`
|
|
25
|
-
| `category`
|
|
19
|
+
| Parameter | Required | Description |
|
|
20
|
+
| ------------- | -------- | --------------------------------------------------------------- |
|
|
21
|
+
| `title` | YES | Short summary (max 100 chars) |
|
|
22
|
+
| `description` | YES | Full markdown description with rationale |
|
|
23
|
+
| `source` | YES | Agent that generated the suggestion |
|
|
24
|
+
| `targetFile` | NO | Path to the file to be modified |
|
|
25
|
+
| `category` | NO | One of: `OPTIMIZATION`, `NEW_RULE`, `PATTERN_UPDATE`, `BUG_FIX` |
|
|
26
26
|
|
|
27
27
|
## Issue Format
|
|
28
28
|
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan
|
|
3
|
-
description: Create implementation plan and save
|
|
3
|
+
description: Create implementation plan and save it as a `plan.md` attachment on the Linear issue. Analyzes codebase, understands task requirements, and generates structured plan.
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- Bash
|
|
6
6
|
- Read
|
|
7
|
+
- Write
|
|
7
8
|
- Glob
|
|
8
9
|
- Grep
|
|
9
10
|
- AskUserQuestion
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
11
|
+
- mcp__linear__get_issue
|
|
12
|
+
- mcp__linear__list_issues
|
|
13
|
+
- mcp__linear__list_comments
|
|
14
|
+
- mcp__linear__save_comment
|
|
15
|
+
- mcp__linear__save_issue
|
|
16
|
+
- mcp__linear__save_issue
|
|
17
|
+
- mcp__linear__create_attachment
|
|
18
|
+
- mcp__linear__delete_attachment
|
|
19
|
+
- mcp__linear__list_issue_labels
|
|
16
20
|
---
|
|
17
21
|
|
|
18
22
|
# Plan Skill
|
|
19
23
|
|
|
20
|
-
Create a structured implementation plan for a Linear task and save it as a
|
|
24
|
+
Create a structured implementation plan for a Linear task and save it as a `plan.md` attachment on the issue. After saving, add the `AI Plan` label to the task.
|
|
21
25
|
|
|
22
26
|
## Usage
|
|
23
27
|
|
|
@@ -41,11 +45,21 @@ This is for standalone Angular CLI projects (Angular 6-11). Key constraints:
|
|
|
41
45
|
|
|
42
46
|
## Execution Steps
|
|
43
47
|
|
|
44
|
-
### Step 1: Fetch Task Details
|
|
48
|
+
### Step 1: Fetch Task Details, Attachments and Comments
|
|
45
49
|
|
|
46
|
-
1. Fetch the Linear task using `
|
|
47
|
-
2.
|
|
48
|
-
3. Fetch
|
|
50
|
+
1. Fetch the Linear task using `mcp__linear__get_issue`.
|
|
51
|
+
2. Fetch task attachments with `mcp__linear__get_issue` (attachments included in response). Look for one titled exactly `plan.md`.
|
|
52
|
+
3. Fetch comments with `mcp__linear__list_comments` — keep `id`, `createdAt`, body.
|
|
53
|
+
|
|
54
|
+
#### Regeneration decision (mtime rule)
|
|
55
|
+
|
|
56
|
+
- If no `plan.md` attachment exists → generate a new plan.
|
|
57
|
+
- If `plan.md` exists AND at least one comment's `createdAt` is greater than `plan.md.updatedAt` (fall back to `createdAt`) → regenerate (the comment is treated as feedback on the plan).
|
|
58
|
+
- Otherwise skip — the plan is still fresh.
|
|
59
|
+
|
|
60
|
+
Secondary signal: if `plan.md` is fresh but the user's latest prompt uses plan-change keywords ("zmień plan", "zaktualizuj plan", "popraw plan", etc.), ask explicitly before regenerating.
|
|
61
|
+
|
|
62
|
+
When regenerating, record the old `plan.md` attachment ID so it can be deleted via `mcp__linear__delete_attachment` before the new one is created.
|
|
49
63
|
|
|
50
64
|
### Step 2: Analyze Codebase
|
|
51
65
|
|
|
@@ -71,6 +85,7 @@ ls -la src/app/ 2>/dev/null || ls -la app/src/app/ 2>/dev/null
|
|
|
71
85
|
### Step 3: Identify Affected Areas
|
|
72
86
|
|
|
73
87
|
Based on the task:
|
|
88
|
+
|
|
74
89
|
1. Find relevant existing files
|
|
75
90
|
2. Identify what needs to be created vs modified
|
|
76
91
|
3. Check for existing patterns to follow
|
|
@@ -101,14 +116,15 @@ Structure the plan as follows:
|
|
|
101
116
|
|
|
102
117
|
**Pliki do zmiany:**
|
|
103
118
|
|
|
104
|
-
| Plik
|
|
105
|
-
|
|
106
|
-
| `src/app/components/feature.component.ts`
|
|
107
|
-
| `src/app/components/feature.component.html` | Nowy
|
|
108
|
-
| `src/app/components/feature.component.scss` | Nowy
|
|
109
|
-
| `src/app/feature.module.ts`
|
|
119
|
+
| Plik | Akcja | Opis |
|
|
120
|
+
| ------------------------------------------- | ----------- | ------------------ |
|
|
121
|
+
| `src/app/components/feature.component.ts` | Nowy | Komponent widoku |
|
|
122
|
+
| `src/app/components/feature.component.html` | Nowy | Szablon |
|
|
123
|
+
| `src/app/components/feature.component.scss` | Nowy | Style |
|
|
124
|
+
| `src/app/feature.module.ts` | Modyfikacja | Dodanie deklaracji |
|
|
110
125
|
|
|
111
126
|
**Wzorce:**
|
|
127
|
+
|
|
112
128
|
- Constructor DI
|
|
113
129
|
- *ngIf/*ngFor
|
|
114
130
|
- [CSS approach from project]
|
|
@@ -124,40 +140,90 @@ Structure the plan as follows:
|
|
|
124
140
|
|
|
125
141
|
### Podzadania
|
|
126
142
|
|
|
127
|
-
| ID
|
|
128
|
-
|
|
129
|
-
| -
|
|
130
|
-
| -
|
|
143
|
+
| ID | Tytul | Priorytet | Krok |
|
|
144
|
+
| --- | ----------- | --------- | ---- |
|
|
145
|
+
| - | [Subtask 1] | High | 1 |
|
|
146
|
+
| - | [Subtask 2] | Medium | 2 |
|
|
131
147
|
```
|
|
132
148
|
|
|
133
149
|
### Step 5: Create Subtasks (if needed)
|
|
134
150
|
|
|
135
151
|
For complex tasks, create subtasks in Linear:
|
|
136
|
-
|
|
152
|
+
|
|
153
|
+
- Use `mcp__linear__save_issue` with parent task ID
|
|
137
154
|
- Each subtask should map to a plan step
|
|
138
155
|
|
|
139
|
-
### Step 6:
|
|
156
|
+
### Step 6: Save Plan as Native Linear Attachment
|
|
157
|
+
|
|
158
|
+
Upload the plan directly to Linear via `mcp__linear__create_attachment` — Linear hosts the file itself, no external storage needed.
|
|
159
|
+
|
|
160
|
+
#### 6.1 — If replacing an existing plan, confirm with user
|
|
161
|
+
|
|
162
|
+
If a `plan.md` attachment is being replaced, ask the user via `AskUserQuestion`:
|
|
163
|
+
|
|
164
|
+
- "Tak, usuń stary plan i zapisz nowy" (Recommended)
|
|
165
|
+
- "Anuluj"
|
|
166
|
+
|
|
167
|
+
If confirmed, delete the Linear attachment via `mcp__linear__delete_attachment({ id: oldAttachmentId })`.
|
|
168
|
+
|
|
169
|
+
#### 6.2 — Write `plan.md` locally
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
mkdir -p /tmp/claude-plans
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Use `Write` to save the plan content to `/tmp/claude-plans/<taskId>-plan.md`.
|
|
176
|
+
|
|
177
|
+
#### 6.3 — Base64-encode
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
b64=$(base64 -i /tmp/claude-plans/<taskId>-plan.md)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
#### 6.4 — Create Linear attachment
|
|
184
|
+
|
|
185
|
+
Call `mcp__linear__create_attachment` with:
|
|
186
|
+
|
|
187
|
+
- `issue`: the task ID
|
|
188
|
+
- `filename`: `plan.md`
|
|
189
|
+
- `contentType`: `text/markdown`
|
|
190
|
+
- `title`: `plan.md` (exact — required for detection)
|
|
191
|
+
- `subtitle`: `Plan wygenerowany przez Claude Code (external)`
|
|
192
|
+
- `base64Content`: the base64 string from 6.3
|
|
193
|
+
|
|
194
|
+
#### 6.5 — Clean up local file
|
|
195
|
+
|
|
196
|
+
Delete `/tmp/claude-plans/<taskId>-plan.md` after the attachment is created. `/push` leaves the Linear attachment in place.
|
|
197
|
+
|
|
198
|
+
### Step 7: Add "AI Plan" Label
|
|
199
|
+
|
|
200
|
+
**`AI Plan` is a workspace-level (organization-wide) label that already exists** — do NOT create it.
|
|
140
201
|
|
|
141
|
-
|
|
202
|
+
1. Look up the `AI Plan` label via `mcp__linear__list_issue_labels` (workspace-wide). If not found, surface the error — do NOT create a team-scoped duplicate.
|
|
203
|
+
2. Apply via `mcp__linear__save_issue({ id: taskId, labelIds: [...existingLabelIds, aiPlanLabelId] })`. Preserve existing labels; skip if already present.
|
|
204
|
+
3. If label operations fail, surface the error but do not roll back the plan attachment.
|
|
142
205
|
|
|
143
|
-
### Step
|
|
206
|
+
### Step 8: Confirm to User
|
|
144
207
|
|
|
145
208
|
```markdown
|
|
146
209
|
## Plan zapisany
|
|
147
210
|
|
|
148
|
-
Plan implementacji
|
|
211
|
+
Plan implementacji został dodany jako załącznik `plan.md` do zadania [linearTaskId].
|
|
212
|
+
Etykieta `AI Plan` została dodana.
|
|
149
213
|
|
|
150
|
-
Czy plan jest zaakceptowany? Po akceptacji uruchom `/impl [linearTaskId]` aby
|
|
214
|
+
Czy plan jest zaakceptowany? Po akceptacji uruchom `/impl [linearTaskId]` aby rozpocząć implementację.
|
|
151
215
|
```
|
|
152
216
|
|
|
153
217
|
## Guidelines
|
|
154
218
|
|
|
155
219
|
1. **Always analyze existing code first** before planning
|
|
156
220
|
2. **Follow existing project patterns** - don't introduce new patterns
|
|
157
|
-
3. **Write plan in Polish**
|
|
221
|
+
3. **Write plan in Polish** (content inside the `plan.md` attachment)
|
|
158
222
|
4. **Keep steps small and focused** - one logical change per step
|
|
159
223
|
5. **Don't plan tests** unless explicitly requested in the task
|
|
160
224
|
6. **Don't plan deployment** steps
|
|
161
225
|
7. **Identify the CSS approach** before planning UI changes
|
|
162
226
|
8. **Include build verification** as the final step (`ng build --prod`)
|
|
163
227
|
9. **Use Angular CLI commands** not Nx commands
|
|
228
|
+
10. **Mtime rule is authoritative**: only regenerate `plan.md` when the attachment is missing or a comment is newer than `plan.md.updatedAt`. Keyword detection triggers an explicit user confirmation only.
|
|
229
|
+
11. **Always add "AI Plan" label** after saving the `plan.md` attachment. The label is workspace-level and pre-configured organization-wide — do NOT create a team-scoped duplicate.
|
|
@@ -7,12 +7,12 @@ allowed-tools:
|
|
|
7
7
|
- Glob
|
|
8
8
|
- Grep
|
|
9
9
|
- AskUserQuestion
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
10
|
+
- mcp__linear__get_issue
|
|
11
|
+
- mcp__linear__list_issues
|
|
12
|
+
- mcp__linear__list_comments
|
|
13
|
+
- mcp__linear__save_comment
|
|
14
|
+
- mcp__linear__save_issue
|
|
15
|
+
- mcp__linear__list_issue_statuses
|
|
16
16
|
---
|
|
17
17
|
|
|
18
18
|
# Push Skill
|
|
@@ -39,6 +39,7 @@ git log origin/$(git branch --show-current)..HEAD --oneline
|
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Check for:
|
|
42
|
+
|
|
42
43
|
- Uncommitted changes (warn user)
|
|
43
44
|
- Commits ahead of remote (list them)
|
|
44
45
|
- Current branch name
|
|
@@ -46,12 +47,14 @@ Check for:
|
|
|
46
47
|
### Step 2: Detect Linear Task
|
|
47
48
|
|
|
48
49
|
If `linearTaskId` not provided, try to extract from branch name:
|
|
50
|
+
|
|
49
51
|
- Branch `MOB-123` → task `MOB-123`
|
|
50
52
|
- Branch `feature/MOB-123-description` → task `MOB-123`
|
|
51
53
|
|
|
52
54
|
### Step 3: Fetch Task Details
|
|
53
55
|
|
|
54
56
|
If Linear task ID is available:
|
|
57
|
+
|
|
55
58
|
1. Fetch parent task details
|
|
56
59
|
2. Fetch subtasks if any
|
|
57
60
|
3. Analyze completion status
|
|
@@ -66,14 +69,15 @@ If Linear task ID is available:
|
|
|
66
69
|
|
|
67
70
|
### Commits
|
|
68
71
|
|
|
69
|
-
| Hash
|
|
70
|
-
|
|
71
|
-
| abc1234 | feat(gallery): add lightbox
|
|
72
|
+
| Hash | Message |
|
|
73
|
+
| ------- | ------------------------------ |
|
|
74
|
+
| abc1234 | feat(gallery): add lightbox |
|
|
72
75
|
| def5678 | fix(gallery): fix image sizing |
|
|
73
76
|
|
|
74
77
|
### Linear Task: [ID] - [Title]
|
|
75
78
|
|
|
76
79
|
**Subtasks**:
|
|
80
|
+
|
|
77
81
|
- [x] MOB-549: Completed subtask
|
|
78
82
|
- [x] MOB-550: Another completed
|
|
79
83
|
- [ ] MOB-551: Incomplete (reason)
|
|
@@ -86,12 +90,14 @@ Do you want to push and update Linear status to "In Review"?
|
|
|
86
90
|
```
|
|
87
91
|
|
|
88
92
|
Use `AskUserQuestion` with options:
|
|
93
|
+
|
|
89
94
|
- "Tak, push i zaktualizuj status"
|
|
90
95
|
- "Nie, anuluj"
|
|
91
96
|
|
|
92
97
|
### Step 6: Update Linear Status
|
|
93
98
|
|
|
94
99
|
If confirmed:
|
|
100
|
+
|
|
95
101
|
1. Update parent task status to "In Review"
|
|
96
102
|
2. Update completed subtasks to "In Review"
|
|
97
103
|
3. Create summary comment on parent task (in Polish):
|
|
@@ -101,21 +107,21 @@ If confirmed:
|
|
|
101
107
|
|
|
102
108
|
### Zrealizowane Podzadania
|
|
103
109
|
|
|
104
|
-
| Podzadanie | Tytul
|
|
105
|
-
|
|
106
|
-
| MOB-549
|
|
107
|
-
| MOB-550
|
|
110
|
+
| Podzadanie | Tytul | Status |
|
|
111
|
+
| ---------- | ------- | ------------ |
|
|
112
|
+
| MOB-549 | [title] | Zrealizowane |
|
|
113
|
+
| MOB-550 | [title] | Zrealizowane |
|
|
108
114
|
|
|
109
115
|
### Niezrealizowane Podzadania
|
|
110
116
|
|
|
111
|
-
| Podzadanie | Tytul
|
|
112
|
-
|
|
113
|
-
| MOB-551
|
|
117
|
+
| Podzadanie | Tytul | Powod |
|
|
118
|
+
| ---------- | ------- | -------- |
|
|
119
|
+
| MOB-551 | [title] | [reason] |
|
|
114
120
|
|
|
115
121
|
### Commity
|
|
116
122
|
|
|
117
|
-
| Commit
|
|
118
|
-
|
|
123
|
+
| Commit | Opis |
|
|
124
|
+
| ------- | --------------------------- |
|
|
119
125
|
| abc1234 | feat(gallery): add lightbox |
|
|
120
126
|
|
|
121
127
|
### Status
|
|
@@ -140,11 +146,13 @@ git push
|
|
|
140
146
|
If on a feature branch (not `development` or `main`):
|
|
141
147
|
|
|
142
148
|
1. Check if PR exists:
|
|
149
|
+
|
|
143
150
|
```bash
|
|
144
151
|
gh pr list --head <branch-name> --base development --json number,title,state,url
|
|
145
152
|
```
|
|
146
153
|
|
|
147
154
|
2. If no PR, ask user:
|
|
155
|
+
|
|
148
156
|
```markdown
|
|
149
157
|
## Create Pull Request?
|
|
150
158
|
|
|
@@ -178,6 +186,7 @@ Zmiany wyslane do `origin/<branch-name>`
|
|
|
178
186
|
## Push Failed
|
|
179
187
|
|
|
180
188
|
Updates were rejected. Options:
|
|
189
|
+
|
|
181
190
|
1. `git pull --rebase` then push again
|
|
182
191
|
2. `git pull` and merge
|
|
183
192
|
```
|
|
@@ -57,7 +57,7 @@ Or manually copy permissions from `settings.template.json` to your project's `.c
|
|
|
57
57
|
|
|
58
58
|
Configure these in your `.mcp.json`:
|
|
59
59
|
|
|
60
|
-
- `linear
|
|
60
|
+
- `linear` - Linear API integration (MCP prefix `mcp__linear__`)
|
|
61
61
|
- `playwright` - Browser automation for screenshots
|
|
62
62
|
|
|
63
63
|
## Permission Strategy
|
|
@@ -34,14 +34,17 @@
|
|
|
34
34
|
"Bash(for:*)",
|
|
35
35
|
"Bash(node:*)",
|
|
36
36
|
"Bash(mkdir:*)",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
37
|
+
"mcp__linear__get_issue",
|
|
38
|
+
"mcp__linear__list_issues",
|
|
39
|
+
"mcp__linear__list_comments",
|
|
40
|
+
"mcp__linear__save_comment",
|
|
41
|
+
"mcp__linear__delete_comment",
|
|
42
|
+
"mcp__linear__save_issue",
|
|
43
|
+
"mcp__linear__list_issue_statuses",
|
|
44
|
+
"mcp__linear__create_attachment",
|
|
45
|
+
"mcp__linear__get_attachment",
|
|
46
|
+
"mcp__linear__delete_attachment",
|
|
47
|
+
"mcp__linear__list_issue_labels",
|
|
45
48
|
"mcp__playwright__browser_snapshot",
|
|
46
49
|
"mcp__playwright__browser_take_screenshot",
|
|
47
50
|
"mcp__playwright__browser_navigate",
|
|
@@ -158,11 +158,13 @@ _Orchestration plan generated by flow-legacy_
|
|
|
158
158
|
|
|
159
159
|
## Output
|
|
160
160
|
|
|
161
|
-
Return the orchestration plan
|
|
161
|
+
Return the orchestration plan as a complete, standalone markdown document. The plan will be:
|
|
162
162
|
|
|
163
|
-
1.
|
|
163
|
+
1. Saved as an `orchestration.md` attachment on the Linear task (not posted as a comment)
|
|
164
164
|
2. Used to guide implementation
|
|
165
165
|
|
|
166
|
+
Avoid comment-thread framing (greetings, replies); the document must read as a standalone file.
|
|
167
|
+
|
|
166
168
|
## Checklist
|
|
167
169
|
|
|
168
170
|
- [ ] All Angular agents are legacy-compatible
|