@smartsoft001-mobilems/claude-plugins 2.80.0 → 2.82.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.
Files changed (31) hide show
  1. package/package.json +1 -1
  2. package/plugins/flow/.claude-plugin/README.md +13 -4
  3. package/plugins/flow/.claude-plugin/plugin.json +1 -1
  4. package/plugins/flow/.claude-plugin/settings.template.json +11 -8
  5. package/plugins/flow/agents/shared-impl-orchestrator.md +1 -1
  6. package/plugins/flow/agents/shared-impl-teammate.md +2 -2
  7. package/plugins/flow/agents/ui-screenshot-reporter.md +3 -3
  8. package/plugins/flow/skills/commit/SKILL.md +2 -2
  9. package/plugins/flow/skills/impl/SKILL.md +60 -30
  10. package/plugins/flow/skills/linear-suggestion/SKILL.md +1 -1
  11. package/plugins/flow/skills/plan/SKILL.md +144 -77
  12. package/plugins/flow/skills/push/SKILL.md +6 -6
  13. package/plugins/flow/skills/review/SKILL.md +3 -3
  14. package/plugins/flow-external/.claude-plugin/README.md +1 -1
  15. package/plugins/flow-external/.claude-plugin/plugin.json +1 -1
  16. package/plugins/flow-external/.claude-plugin/settings.template.json +11 -8
  17. package/plugins/flow-external/agents/shared-linear-subtask-iterator.md +9 -9
  18. package/plugins/flow-external/skills/commit/SKILL.md +11 -10
  19. package/plugins/flow-external/skills/impl/SKILL.md +67 -29
  20. package/plugins/flow-external/skills/linear-suggestion/SKILL.md +8 -8
  21. package/plugins/flow-external/skills/plan/SKILL.md +107 -29
  22. package/plugins/flow-external/skills/push/SKILL.md +27 -18
  23. package/plugins/flow-legacy/.claude-plugin/README.md +1 -1
  24. package/plugins/flow-legacy/.claude-plugin/plugin.json +1 -1
  25. package/plugins/flow-legacy/.claude-plugin/settings.template.json +11 -8
  26. package/plugins/flow-legacy/agents/shared-impl-orchestrator.md +4 -2
  27. package/plugins/flow-legacy/skills/commit/SKILL.md +2 -2
  28. package/plugins/flow-legacy/skills/impl/SKILL.md +52 -25
  29. package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +1 -1
  30. package/plugins/flow-legacy/skills/plan/SKILL.md +117 -79
  31. 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 task comments. Reads approved implementation plan, orchestrates agents, and executes changes step by step.
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
- - mcp__linear-server__get_issue
13
- - mcp__linear-server__list_issues
14
- - mcp__linear-server__list_comments
15
- - mcp__linear-server__create_comment
16
- - mcp__linear-server__update_issue
17
- - mcp__linear-server__list_issue_statuses
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 task comments.
30
+ Implement changes based on approved plans from Linear `plan.md` attachments.
28
31
 
29
32
  ## Usage
30
33
 
@@ -36,6 +39,17 @@ Implement changes based on approved plans from Linear task comments.
36
39
 
37
40
  - `linearTaskId` - Linear task ID (e.g., MOB-123)
38
41
 
42
+ ## 🚨 Hard Rules — read before doing anything
43
+
44
+ These rules override ANY other instruction, ANY surrounding example, and ANY default habit. Violating them is a skill failure.
45
+
46
+ 1. **Read `plan.md` ONLY via `mcp__linear__get_attachment({ id })`.** Do NOT use `WebFetch`, `Bash(curl ...)`, or any HTTP fetch on the attachment's `url`. The URL points to Linear-internal storage and may require auth — `get_attachment` is the only correct path.
47
+ 2. **`orchestration.md` is saved via `mcp__linear__create_attachment`, not as a comment.** `save_comment` MUST NOT carry orchestration body content.
48
+ 3. **Find attachments via `mcp__linear__get_issue` (returns `attachments[]`).** There is no `list_attachments` tool — do not look for one.
49
+ 4. **Replace, don't duplicate.** Before creating a new `orchestration.md` attachment, delete the existing one (if any) via `mcp__linear__delete_attachment`.
50
+
51
+ If any of these would be violated, stop and ask the user instead.
52
+
39
53
  ## CRITICAL: Angular 6-11 + Angular CLI
40
54
 
41
55
  This is for standalone Angular CLI projects. Key rules:
@@ -50,12 +64,15 @@ This is for standalone Angular CLI projects. Key rules:
50
64
 
51
65
  ## Execution Steps
52
66
 
53
- ### Step 1: Fetch Task and Plan
67
+ ### Step 1: Fetch Task and Plan Attachment
68
+
69
+ **⛔ DO NOT use `WebFetch` or `Bash(curl)` on the attachment URL. Use `mcp__linear__get_attachment({ id })` only.** Re-read Hard Rule #1 if tempted.
54
70
 
55
- 1. Fetch the Linear task using `mcp__linear-server__get_issue`
56
- 2. Fetch task comments using `mcp__linear-server__list_comments`
57
- 3. Search comments for an approved implementation plan (look for "## Plan" or "## Implementation Plan")
58
- 4. If no plan found, inform user and suggest running `/plan` first
71
+ 1. `mcp__linear__get_issue({ id: taskId })` — the response includes an `attachments[]` array.
72
+ 2. Find the attachment where `title == "plan.md"` (or `filename == "plan.md"`) and capture its `id`. Do NOT use the `url` field for fetching.
73
+ 3. `mcp__linear__get_attachment({ id: <attachmentId> })` — returns the markdown content directly (Linear hosts the file natively).
74
+ 4. Parse the plan content.
75
+ 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, and do NOT attempt `curl`/`WebFetch` on a URL.
59
76
 
60
77
  ### Step 2: Detect Project Structure
61
78
 
@@ -70,6 +87,7 @@ cat package.json 2>/dev/null || cat app/package.json 2>/dev/null
70
87
  ```
71
88
 
72
89
  Key things to detect:
90
+
73
91
  - Angular version (6-11)
74
92
  - CSS framework (Bootstrap 4 / custom SCSS / none)
75
93
  - NgRx version and patterns
@@ -80,10 +98,30 @@ Key things to detect:
80
98
 
81
99
  If task has subtasks:
82
100
 
83
- 1. Fetch subtasks using `mcp__linear-server__list_issues` with parent filter
101
+ 1. Fetch subtasks using `mcp__linear__list_issues` with parent filter
84
102
  2. Sort by priority/creation order
85
103
  3. Process each subtask in order
86
104
 
105
+ ### Step 3a: Save Orchestration Plan as Native Linear Attachment
106
+
107
+ **⛔ Calling `mcp__linear__save_comment` with the orchestration body is FORBIDDEN. Use `mcp__linear__create_attachment` only.** Re-read Hard Rule #2 if tempted.
108
+
109
+ Use `shared-impl-orchestrator` agent to generate a `🎭 Agent Orchestration Plan` that lists which agents run in what order (Angular 6-11 + CLI context).
110
+
111
+ Then save it as an `orchestration.md` attachment on the task (not as a comment):
112
+
113
+ 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.
114
+ 2. **Write locally**: `Write` the orchestration markdown to `/tmp/claude-plans/<taskId>-orchestration.md`.
115
+ 3. **Base64-encode**: `b64=$(base64 -i /tmp/claude-plans/<taskId>-orchestration.md)`.
116
+ 4. **Create Linear attachment** via `mcp__linear__create_attachment`:
117
+ - `issue`: the task ID
118
+ - `filename`: `orchestration.md`
119
+ - `contentType`: `text/markdown`
120
+ - `title`: `orchestration.md` (exact)
121
+ - `subtitle`: `Plan orkiestracji wygenerowany przez Claude Code (external)`
122
+ - `base64Content`: the base64 string from step 3
123
+ 5. **Clean up** local `/tmp/claude-plans/<taskId>-orchestration.md` file after the attachment is created.
124
+
87
125
  ### Step 4: Implement Each Step
88
126
 
89
127
  For each step in the plan:
@@ -114,16 +152,16 @@ Create a summary comment on the Linear task:
114
152
 
115
153
  ### Zrealizowane
116
154
 
117
- | Podzadanie | Tytul | Status |
118
- |-----------|-------|--------|
119
- | MOB-549 | [title] | Zrealizowane |
155
+ | Podzadanie | Tytul | Status |
156
+ | ---------- | ------- | ------------ |
157
+ | MOB-549 | [title] | Zrealizowane |
120
158
 
121
159
  ### Zmiany
122
160
 
123
- | Plik | Typ | Opis |
124
- |------|-----|------|
125
- | `src/app/components/feature.component.ts` | Nowy | Komponent |
126
- | `src/app/components/feature.module.ts` | Zmodyfikowany | Dodano deklaracje |
161
+ | Plik | Typ | Opis |
162
+ | ----------------------------------------- | ------------- | ----------------- |
163
+ | `src/app/components/feature.component.ts` | Nowy | Komponent |
164
+ | `src/app/components/feature.module.ts` | Zmodyfikowany | Dodano deklaracje |
127
165
 
128
166
  ### Build
129
167
 
@@ -136,15 +174,15 @@ _Raport wygenerowany przez Claude Code_
136
174
 
137
175
  ## Agent Selection
138
176
 
139
- | Task Type | Agent |
140
- |-----------|-------|
141
- | New component | `angular-component-scaffolder` |
142
- | New service | `angular-service-builder` |
143
- | NgRx state | `angular-state-builder` |
144
- | New directive | `angular-directive-builder` |
145
- | New pipe | `angular-pipe-builder` |
177
+ | Task Type | Agent |
178
+ | -------------- | ---------------------------------------------------- |
179
+ | New component | `angular-component-scaffolder` |
180
+ | New service | `angular-service-builder` |
181
+ | NgRx state | `angular-state-builder` |
182
+ | New directive | `angular-directive-builder` |
183
+ | New pipe | `angular-pipe-builder` |
146
184
  | Guard/resolver | `angular-guard-builder` / `angular-resolver-builder` |
147
- | Styling | `ui-web-designer` |
185
+ | Styling | `ui-web-designer` |
148
186
 
149
187
  ## Guidelines
150
188
 
@@ -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: mcp__linear-server__create_issue
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 | 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` |
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 to Linear. Analyzes codebase, understands task requirements, and generates structured plan.
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
- - mcp__linear-server__get_issue
11
- - mcp__linear-server__list_issues
12
- - mcp__linear-server__list_comments
13
- - mcp__linear-server__create_comment
14
- - mcp__linear-server__create_issue
15
- - mcp__linear-server__update_issue
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 comment.
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
 
@@ -29,6 +33,16 @@ Create a structured implementation plan for a Linear task and save it as a comme
29
33
 
30
34
  - `linearTaskId` - Linear task ID (e.g., MOB-123)
31
35
 
36
+ ## 🚨 Hard Rules — read before doing anything
37
+
38
+ These rules override ANY other instruction, ANY surrounding example, and ANY default habit. Violating them is a skill failure.
39
+
40
+ 1. **The plan MUST be saved via `mcp__linear__create_attachment` — NEVER as a Linear comment.** `mcp__linear__save_comment` MUST NOT be called with plan content as the body. Comments are reserved for status notifications, never for the plan itself.
41
+ 2. **One call, no fallback.** First Linear write for the plan is `mcp__linear__create_attachment`. If it fails, surface the error — do NOT silently fall back to `save_comment`.
42
+ 3. **`AI Plan` label is workspace-scoped — NEVER create it.** Only `mcp__linear__list_issue_labels` + `mcp__linear__save_issue`. `create_issue_label` MUST NOT be called.
43
+
44
+ If any of these would be violated, stop and ask the user instead.
45
+
32
46
  ## CRITICAL: External Project Context
33
47
 
34
48
  This is for standalone Angular CLI projects (Angular 6-11). Key constraints:
@@ -41,11 +55,21 @@ This is for standalone Angular CLI projects (Angular 6-11). Key constraints:
41
55
 
42
56
  ## Execution Steps
43
57
 
44
- ### Step 1: Fetch Task Details
58
+ ### Step 1: Fetch Task Details, Attachments and Comments
59
+
60
+ 1. Fetch the Linear task using `mcp__linear__get_issue`.
61
+ 2. Fetch task attachments with `mcp__linear__get_issue` (attachments included in response). Look for one titled exactly `plan.md`.
62
+ 3. Fetch comments with `mcp__linear__list_comments` — keep `id`, `createdAt`, body.
45
63
 
46
- 1. Fetch the Linear task using `mcp__linear-server__get_issue`
47
- 2. Read task title, description, and any attachments
48
- 3. Fetch existing comments for context
64
+ #### Regeneration decision (mtime rule)
65
+
66
+ - If no `plan.md` attachment exists → generate a new plan.
67
+ - 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).
68
+ - Otherwise skip — the plan is still fresh.
69
+
70
+ 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.
71
+
72
+ 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
73
 
50
74
  ### Step 2: Analyze Codebase
51
75
 
@@ -71,6 +95,7 @@ ls -la src/app/ 2>/dev/null || ls -la app/src/app/ 2>/dev/null
71
95
  ### Step 3: Identify Affected Areas
72
96
 
73
97
  Based on the task:
98
+
74
99
  1. Find relevant existing files
75
100
  2. Identify what needs to be created vs modified
76
101
  3. Check for existing patterns to follow
@@ -101,14 +126,15 @@ Structure the plan as follows:
101
126
 
102
127
  **Pliki do zmiany:**
103
128
 
104
- | Plik | Akcja | Opis |
105
- |------|-------|------|
106
- | `src/app/components/feature.component.ts` | Nowy | Komponent widoku |
107
- | `src/app/components/feature.component.html` | Nowy | Szablon |
108
- | `src/app/components/feature.component.scss` | Nowy | Style |
109
- | `src/app/feature.module.ts` | Modyfikacja | Dodanie deklaracji |
129
+ | Plik | Akcja | Opis |
130
+ | ------------------------------------------- | ----------- | ------------------ |
131
+ | `src/app/components/feature.component.ts` | Nowy | Komponent widoku |
132
+ | `src/app/components/feature.component.html` | Nowy | Szablon |
133
+ | `src/app/components/feature.component.scss` | Nowy | Style |
134
+ | `src/app/feature.module.ts` | Modyfikacja | Dodanie deklaracji |
110
135
 
111
136
  **Wzorce:**
137
+
112
138
  - Constructor DI
113
139
  - *ngIf/*ngFor
114
140
  - [CSS approach from project]
@@ -124,40 +150,92 @@ Structure the plan as follows:
124
150
 
125
151
  ### Podzadania
126
152
 
127
- | ID | Tytul | Priorytet | Krok |
128
- |----|-------|-----------|------|
129
- | - | [Subtask 1] | High | 1 |
130
- | - | [Subtask 2] | Medium | 2 |
153
+ | ID | Tytul | Priorytet | Krok |
154
+ | --- | ----------- | --------- | ---- |
155
+ | - | [Subtask 1] | High | 1 |
156
+ | - | [Subtask 2] | Medium | 2 |
131
157
  ```
132
158
 
133
159
  ### Step 5: Create Subtasks (if needed)
134
160
 
135
161
  For complex tasks, create subtasks in Linear:
136
- - Use `mcp__linear-server__create_issue` with parent task ID
162
+
163
+ - Use `mcp__linear__save_issue` with parent task ID
137
164
  - Each subtask should map to a plan step
138
165
 
139
- ### Step 6: Post Plan as Comment
166
+ ### Step 6: Save Plan as Native Linear Attachment
167
+
168
+ **⛔ DO NOT call `mcp__linear__save_comment` with plan content here. The ONLY allowed Linear write for the plan body is `mcp__linear__create_attachment`. Re-read Hard Rule #1 if tempted.**
169
+
170
+ Upload the plan directly to Linear via `mcp__linear__create_attachment` — Linear hosts the file itself, no external storage needed.
171
+
172
+ #### 6.1 — If replacing an existing plan, confirm with user
173
+
174
+ If a `plan.md` attachment is being replaced, ask the user via `AskUserQuestion`:
175
+
176
+ - "Tak, usuń stary plan i zapisz nowy" (Recommended)
177
+ - "Anuluj"
178
+
179
+ If confirmed, delete the Linear attachment via `mcp__linear__delete_attachment({ id: oldAttachmentId })`.
180
+
181
+ #### 6.2 — Write `plan.md` locally
182
+
183
+ ```bash
184
+ mkdir -p /tmp/claude-plans
185
+ ```
186
+
187
+ Use `Write` to save the plan content to `/tmp/claude-plans/<taskId>-plan.md`.
188
+
189
+ #### 6.3 — Base64-encode
190
+
191
+ ```bash
192
+ b64=$(base64 -i /tmp/claude-plans/<taskId>-plan.md)
193
+ ```
194
+
195
+ #### 6.4 — Create Linear attachment
196
+
197
+ Call `mcp__linear__create_attachment` with:
198
+
199
+ - `issue`: the task ID
200
+ - `filename`: `plan.md`
201
+ - `contentType`: `text/markdown`
202
+ - `title`: `plan.md` (exact — required for detection)
203
+ - `subtitle`: `Plan wygenerowany przez Claude Code (external)`
204
+ - `base64Content`: the base64 string from 6.3
205
+
206
+ #### 6.5 — Clean up local file
207
+
208
+ Delete `/tmp/claude-plans/<taskId>-plan.md` after the attachment is created. `/push` leaves the Linear attachment in place.
209
+
210
+ ### Step 7: Add "AI Plan" Label
211
+
212
+ **`AI Plan` is a workspace-level (organization-wide) label that already exists** — do NOT create it.
140
213
 
141
- Post the plan as a comment on the Linear task using `mcp__linear-server__create_comment`.
214
+ 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.
215
+ 2. Apply via `mcp__linear__save_issue({ id: taskId, labelIds: [...existingLabelIds, aiPlanLabelId] })`. Preserve existing labels; skip if already present.
216
+ 3. If label operations fail, surface the error but do not roll back the plan attachment.
142
217
 
143
- ### Step 7: Ask for Approval
218
+ ### Step 8: Confirm to User
144
219
 
145
220
  ```markdown
146
221
  ## Plan zapisany
147
222
 
148
- Plan implementacji zostal dodany jako komentarz do zadania [linearTaskId].
223
+ Plan implementacji został dodany jako załącznik `plan.md` do zadania [linearTaskId].
224
+ Etykieta `AI Plan` została dodana.
149
225
 
150
- Czy plan jest zaakceptowany? Po akceptacji uruchom `/impl [linearTaskId]` aby rozpoczac implementacje.
226
+ Czy plan jest zaakceptowany? Po akceptacji uruchom `/impl [linearTaskId]` aby rozpocząć implementację.
151
227
  ```
152
228
 
153
229
  ## Guidelines
154
230
 
155
231
  1. **Always analyze existing code first** before planning
156
232
  2. **Follow existing project patterns** - don't introduce new patterns
157
- 3. **Write plan in Polish** for Linear comments
233
+ 3. **Write plan in Polish** (content inside the `plan.md` attachment)
158
234
  4. **Keep steps small and focused** - one logical change per step
159
235
  5. **Don't plan tests** unless explicitly requested in the task
160
236
  6. **Don't plan deployment** steps
161
237
  7. **Identify the CSS approach** before planning UI changes
162
238
  8. **Include build verification** as the final step (`ng build --prod`)
163
239
  9. **Use Angular CLI commands** not Nx commands
240
+ 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.
241
+ 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
- - mcp__linear-server__get_issue
11
- - mcp__linear-server__list_issues
12
- - mcp__linear-server__list_comments
13
- - mcp__linear-server__create_comment
14
- - mcp__linear-server__update_issue
15
- - mcp__linear-server__list_issue_statuses
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 | Message |
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 | Status |
105
- |-----------|-------|--------|
106
- | MOB-549 | [title] | Zrealizowane |
107
- | MOB-550 | [title] | Zrealizowane |
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 | Powod |
112
- |-----------|-------|-------|
113
- | MOB-551 | [title] | [reason] |
117
+ | Podzadanie | Tytul | Powod |
118
+ | ---------- | ------- | -------- |
119
+ | MOB-551 | [title] | [reason] |
114
120
 
115
121
  ### Commity
116
122
 
117
- | Commit | Opis |
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-server` - Linear API integration
60
+ - `linear` - Linear API integration (MCP prefix `mcp__linear__`)
61
61
  - `playwright` - Browser automation for screenshots
62
62
 
63
63
  ## Permission Strategy
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "flow-legacy",
3
3
  "description": "Development flow skills for legacy Angular 14 projects with Linear-driven workflow",
4
- "version": "2.80.0"
4
+ "version": "2.82.0"
5
5
  }
@@ -34,14 +34,17 @@
34
34
  "Bash(for:*)",
35
35
  "Bash(node:*)",
36
36
  "Bash(mkdir:*)",
37
- "mcp__linear-server__get_issue",
38
- "mcp__linear-server__list_issues",
39
- "mcp__linear-server__list_comments",
40
- "mcp__linear-server__create_comment",
41
- "mcp__linear-server__delete_comment",
42
- "mcp__linear-server__update_issue",
43
- "mcp__linear-server__list_issue_statuses",
44
- "mcp__linear-server__create_issue",
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 in the format above. The plan will be:
161
+ Return the orchestration plan as a complete, standalone markdown document. The plan will be:
162
162
 
163
- 1. Posted as a comment on the Linear task
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
@@ -11,8 +11,8 @@ allowed-tools:
11
11
  - TaskUpdate
12
12
  - TaskList
13
13
  - TaskGet
14
- - mcp__linear-server__get_issue
15
- - mcp__linear-server__list_comments
14
+ - mcp__linear__get_issue
15
+ - mcp__linear__list_comments
16
16
  ---
17
17
 
18
18
  # Commit Skill