@smartsoft001-mobilems/claude-plugins 2.70.0 → 2.72.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 +8 -8
- package/plugins/flow/.claude-plugin/plugin.json +2 -2
- package/plugins/flow/.claude-plugin/settings.template.json +2 -1
- package/plugins/flow/agents/shared-agent-evolver.md +8 -8
- package/plugins/flow/{commands/commit.md → skills/commit/SKILL.md} +28 -1
- package/plugins/flow/{commands/impl.md → skills/impl/SKILL.md} +76 -5
- package/plugins/flow/skills/linear-suggestion/SKILL.md +9 -9
- package/plugins/flow/{commands/plan.md → skills/plan/SKILL.md} +79 -2
- package/plugins/flow/{commands/push.md → skills/push/SKILL.md} +127 -11
- package/plugins/flow-legacy/.claude-plugin/README.md +7 -7
- package/plugins/flow-legacy/.claude-plugin/plugin.json +2 -2
- package/plugins/flow-legacy/.claude-plugin/settings.template.json +2 -1
- package/plugins/flow-legacy/{commands/commit.md → skills/commit/SKILL.md} +28 -1
- package/plugins/flow-legacy/{commands/impl.md → skills/impl/SKILL.md} +118 -12
- package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +10 -10
- package/plugins/flow-legacy/{commands/plan.md → skills/plan/SKILL.md} +86 -2
- package/plugins/flow-legacy/{commands/push.md → skills/push/SKILL.md} +127 -11
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Flow Plugin for Claude Code
|
|
2
2
|
|
|
3
|
-
Development flow
|
|
3
|
+
Development flow skills for Linear-driven development workflow.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Workflow Skills
|
|
6
6
|
|
|
7
|
-
|
|
|
8
|
-
|
|
7
|
+
| Skill | Description |
|
|
8
|
+
|-------|-------------|
|
|
9
9
|
| `/commit` | Create conventional commit based on Linear task |
|
|
10
10
|
| `/impl` | Implement plans from Linear task comments |
|
|
11
11
|
| `/plan` | Create implementation plan and save to Linear |
|
|
@@ -58,15 +58,15 @@ Configure these in your `.mcp.json`:
|
|
|
58
58
|
- Nx commands (test, lint, build)
|
|
59
59
|
- Linear API (read/write issues, comments)
|
|
60
60
|
- Playwright (screenshots)
|
|
61
|
-
-
|
|
61
|
+
- Utility skills
|
|
62
62
|
|
|
63
63
|
### Requires Confirmation (ask)
|
|
64
|
-
-
|
|
64
|
+
- Workflow skills (/commit, /impl, /plan, /push)
|
|
65
65
|
- `git commit` - creating commits
|
|
66
66
|
- `git push` - pushing to remote
|
|
67
67
|
- `gh pr create` - creating pull requests
|
|
68
68
|
|
|
69
|
-
## Skills
|
|
69
|
+
## Utility Skills
|
|
70
70
|
|
|
71
71
|
| Skill | Description |
|
|
72
72
|
|-------|-------------|
|
|
@@ -79,4 +79,4 @@ Configure these in your `.mcp.json`:
|
|
|
79
79
|
|
|
80
80
|
## Agents
|
|
81
81
|
|
|
82
|
-
See `agents/` directory for full list of specialized agents used by flow
|
|
82
|
+
See `agents/` directory for full list of specialized agents used by flow skills.
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"mcp__linear-server__list_issues",
|
|
39
39
|
"mcp__linear-server__list_comments",
|
|
40
40
|
"mcp__linear-server__create_comment",
|
|
41
|
+
"mcp__linear-server__delete_comment",
|
|
41
42
|
"mcp__linear-server__update_issue",
|
|
42
43
|
"mcp__linear-server__list_issue_statuses",
|
|
43
44
|
"mcp__linear-server__create_issue",
|
|
@@ -72,4 +73,4 @@
|
|
|
72
73
|
"enabledPlugins": {
|
|
73
74
|
"flow@mobilems": true
|
|
74
75
|
}
|
|
75
|
-
}
|
|
76
|
+
}
|
|
@@ -3,7 +3,7 @@ name: shared-agent-evolver
|
|
|
3
3
|
description: Analyze user feedback during implementation and file agent improvement suggestions as Linear issues in the "MobileMS Framework" project via linear-suggestion skill.
|
|
4
4
|
tools: Read, Glob, Grep
|
|
5
5
|
model: opus
|
|
6
|
-
color:
|
|
6
|
+
color: '#2563EB'
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
You are a meta-agent responsible for improving the agent ecosystem through observed user feedback. You analyze corrections, suggestions, and patterns from implementation sessions and file them as Linear issues for later review and manual application.
|
|
@@ -32,7 +32,7 @@ Classify each feedback item into one of these categories:
|
|
|
32
32
|
| `EVOLVE_RULE` | New rule or anti-pattern | File Linear issue suggesting rule addition |
|
|
33
33
|
| `EVOLVE_TEMPLATE` | New code template or example | File Linear issue suggesting template addition |
|
|
34
34
|
| `CREATE_AGENT` | Entirely new capability needed | File Linear issue proposing new agent |
|
|
35
|
-
| `UPDATE_WORKFLOW` | Process/
|
|
35
|
+
| `UPDATE_WORKFLOW` | Process/skill improvement | File Linear issue proposing workflow change |
|
|
36
36
|
|
|
37
37
|
## Detection Heuristics
|
|
38
38
|
|
|
@@ -82,7 +82,7 @@ title: [short description of the proposed agent change]
|
|
|
82
82
|
description: |
|
|
83
83
|
[full proposal content — type, trigger, target, current content, proposed change, rationale, impact]
|
|
84
84
|
source: shared-agent-evolver
|
|
85
|
-
targetFile: [path to the agent/
|
|
85
|
+
targetFile: [path to the agent/skill file to modify]
|
|
86
86
|
category: [PATTERN_UPDATE | NEW_RULE | OPTIMIZATION]
|
|
87
87
|
```
|
|
88
88
|
|
|
@@ -99,7 +99,7 @@ Each proposal is filed as a Linear issue. The description sent to `linear-sugges
|
|
|
99
99
|
|
|
100
100
|
**Type**: [EVOLVE_PATTERN | EVOLVE_RULE | EVOLVE_TEMPLATE | CREATE_AGENT | UPDATE_WORKFLOW]
|
|
101
101
|
**Trigger**: "[exact user feedback that prompted this]"
|
|
102
|
-
**Target**: [file path of agent/
|
|
102
|
+
**Target**: [file path of agent/skill to modify]
|
|
103
103
|
**Scope**: [section within the file to modify]
|
|
104
104
|
|
|
105
105
|
### Current Content
|
|
@@ -281,14 +281,14 @@ category: PATTERN_UPDATE
|
|
|
281
281
|
|
|
282
282
|
### Example 5: UPDATE_WORKFLOW
|
|
283
283
|
|
|
284
|
-
**User feedback**: "The impl
|
|
284
|
+
**User feedback**: "The impl skill should always run lint before tests, not after"
|
|
285
285
|
|
|
286
286
|
**Classification**: `UPDATE_WORKFLOW` (process improvement, explicit request)
|
|
287
287
|
|
|
288
|
-
**Action**: File Linear issue proposing the verification order change in `impl.md`.
|
|
288
|
+
**Action**: File Linear issue proposing the verification order change in `skills/impl/SKILL.md`.
|
|
289
289
|
|
|
290
290
|
## When to Use This Agent
|
|
291
291
|
|
|
292
|
-
- At evolution checkpoints during implementation (Step 3g-evolve in impl.md)
|
|
293
|
-
- After completing all subtasks for session-wide analysis (Step 4a-evolve in impl.md)
|
|
292
|
+
- At evolution checkpoints during implementation (Step 3g-evolve in skills/impl/SKILL.md)
|
|
293
|
+
- After completing all subtasks for session-wide analysis (Step 4a-evolve in skills/impl/SKILL.md)
|
|
294
294
|
- When explicitly requested by the user to analyze and improve agents
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: commit
|
|
3
|
+
description: Create a conventional commit message based on Linear task and staged changes. Fetches task details, analyzes changes, generates commit message, and optionally runs parallelization analysis.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
- mcp__linear-server__get_issue
|
|
11
|
+
- mcp__linear-server__list_comments
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Commit Skill
|
|
2
15
|
|
|
3
16
|
Create a conventional commit message based on Linear task and staged changes.
|
|
4
17
|
|
|
@@ -12,6 +25,20 @@ Create a conventional commit message based on Linear task and staged changes.
|
|
|
12
25
|
|
|
13
26
|
- `linearTaskId` - Linear task ID (e.g., ENG-123)
|
|
14
27
|
|
|
28
|
+
## Execution Checklist
|
|
29
|
+
|
|
30
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
31
|
+
|
|
32
|
+
- [ ] **1. Fetch Linear task** — get title, description, labels/type from MCP Linear server
|
|
33
|
+
- [ ] **2. Analyze staged changes** — run `git diff --cached` to understand scope
|
|
34
|
+
- [ ] **3. Verify completeness** — compare task requirements with staged changes; if incomplete, ask user whether to continue or stop
|
|
35
|
+
- [ ] **4. Read commitlint config** — read `commitlint.config.js` for valid scopes and format
|
|
36
|
+
- [ ] **5. Generate commit message** — draft `<type>(<scope>): <subject>` with body and `Refs: <linearTaskId>`
|
|
37
|
+
- [ ] **6. Show message to user** — present commit message for approval before proceeding
|
|
38
|
+
- [ ] **7. MANDATORY: Pre-commit preparation** — run `nvm use 24` then `npm run format`, stage any formatting changes
|
|
39
|
+
- [ ] **8. Create commit** — execute `git commit` with the approved message
|
|
40
|
+
- [ ] **9. Parallelization analysis (optional)** — fetch Linear comments, search for orchestration plan, delegate to `shared-parallelization-analyzer` if found
|
|
41
|
+
|
|
15
42
|
## Instructions
|
|
16
43
|
|
|
17
44
|
You are tasked with creating a git commit based on a Linear task and staged changes.
|
|
@@ -1,7 +1,59 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: impl
|
|
3
|
+
description: Implement plans from Linear task comments. Iteratively processes subtasks with TDD, UI classification, agent orchestration, screenshot capture, and 3x3 rule checkpoints.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Edit
|
|
8
|
+
- Write
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
- Task
|
|
13
|
+
- mcp__linear-server__get_issue
|
|
14
|
+
- mcp__linear-server__list_issues
|
|
15
|
+
- mcp__linear-server__list_comments
|
|
16
|
+
- mcp__linear-server__create_comment
|
|
17
|
+
- mcp__linear-server__update_issue
|
|
18
|
+
- mcp__linear-server__list_issue_statuses
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Implementation Skill
|
|
2
22
|
|
|
3
23
|
Implement plans from Linear task comments. For tasks with subtasks, iteratively implement each subtask that is in "To Do" status.
|
|
4
24
|
|
|
25
|
+
## Execution Checklist
|
|
26
|
+
|
|
27
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
28
|
+
|
|
29
|
+
### Initial Setup
|
|
30
|
+
|
|
31
|
+
- [ ] **1. Fetch task and subtasks** — delegate to `shared-linear-subtask-iterator` agent
|
|
32
|
+
|
|
33
|
+
### Per Subtask (repeat for each "To Do" subtask)
|
|
34
|
+
|
|
35
|
+
- [ ] **2. Set status to "In Progress"** — update subtask status via MCP (subtasks only, not parent)
|
|
36
|
+
- [ ] **3. Fetch implementation plan** — find `## Implementation Plan` in task comments
|
|
37
|
+
- [ ] **4. MANDATORY: UI change classification** — delegate to `shared-ui-classifier` agent, output `UI_CHANGE_REQUIRED: YES/NO`
|
|
38
|
+
- [ ] **5. MANDATORY: Agent orchestration plan** — delegate to `shared-impl-orchestrator`, post plan to Linear
|
|
39
|
+
- [ ] **6. Check external library blockers** — if blockers found, set status to Blocked and skip
|
|
40
|
+
- [ ] **7. Capture "before" screenshots** — if `UI_CHANGE_REQUIRED: YES`, launch `screenshot-reporter` in background
|
|
41
|
+
- [ ] **8. MANDATORY: Implement with 3x3 rule** — pause every 3 changes, use `shared-tdd-developer` for ALL code (RED → GREEN → REFACTOR)
|
|
42
|
+
- [ ] **9. Verify implementation** — run tests, lint, build check
|
|
43
|
+
- [ ] **10. Capture "after" screenshots** — if `UI_CHANGE_REQUIRED: YES`, capture + post comparison to Linear + cleanup
|
|
44
|
+
- [ ] **11. MANDATORY: Screenshot verification** — output `SCREENSHOT_REQUIREMENT_MET: YES/NO`, block if missing
|
|
45
|
+
- [ ] **12. Create completion comment** — delegate to `shared-impl-reporter`, post to Linear
|
|
46
|
+
- [ ] **13. MANDATORY: Write reports in Polish** — all Linear comments must be in Polish language
|
|
47
|
+
- [ ] **14. Update status** — delegate to `shared-linear-subtask-iterator` for status determination
|
|
48
|
+
- [ ] **15. Agent evolution** — if user confirmed feedback, delegate to `shared-agent-evolver`
|
|
49
|
+
- [ ] **16. Pause for user confirmation** — ALWAYS wait before proceeding to next subtask
|
|
50
|
+
|
|
51
|
+
### Finalization
|
|
52
|
+
|
|
53
|
+
- [ ] **17. Final summary** — present summary of all subtasks with statuses
|
|
54
|
+
- [ ] **18. Session-wide evolution** — analyze all feedback across session
|
|
55
|
+
- [ ] **19. ALWAYS pause** — wait for user confirmation at end
|
|
56
|
+
|
|
5
57
|
## Role
|
|
6
58
|
|
|
7
59
|
**You are a highly experienced senior TypeScript developer** with:
|
|
@@ -258,7 +310,23 @@ Continue? (yes/no/adjust)
|
|
|
258
310
|
|
|
259
311
|
**Feedback Collection for Agent Evolution:**
|
|
260
312
|
|
|
261
|
-
During 3x3 checkpoints, when the user provides corrections or suggestions about coding patterns, implementation approach, or agent behavior —
|
|
313
|
+
During 3x3 checkpoints, when the user provides corrections or suggestions about coding patterns, implementation approach, or agent behavior — **ASK the user explicitly** if they want to create a Linear issue for the improvement.
|
|
314
|
+
|
|
315
|
+
**When user provides a correction or pattern suggestion, ASK:**
|
|
316
|
+
|
|
317
|
+
```
|
|
318
|
+
🔄 Detected potential improvement suggestion:
|
|
319
|
+
"[summary of user's correction]"
|
|
320
|
+
|
|
321
|
+
Would you like to create a Linear issue for this pattern improvement?
|
|
322
|
+
- Yes - File as Linear issue in "MobileMS Framework"
|
|
323
|
+
- No - Note for this session only
|
|
324
|
+
- Skip - Ignore this feedback
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**Only feedback confirmed with "Yes"** should be collected as **evolution feedback items** and processed in Step 3g-evolve via `linear-suggestion` skill.
|
|
328
|
+
|
|
329
|
+
Look for signals like: universal language ("always", "never"), pattern-level corrections, or explicit requests to update agent behavior.
|
|
262
330
|
|
|
263
331
|
**IMPORTANT**: Also STOP and wait for user confirmation:
|
|
264
332
|
|
|
@@ -400,12 +468,14 @@ The agent will determine the correct status and provide MCP command to execute.
|
|
|
400
468
|
|
|
401
469
|
#### Step 3g-evolve: Agent Evolution Checkpoint
|
|
402
470
|
|
|
471
|
+
**Prerequisites**: Only execute this step if user confirmed at least one feedback item with "Yes" during 3x3 checkpoints.
|
|
472
|
+
|
|
403
473
|
**Delegate to `shared-agent-evolver` agent:**
|
|
404
474
|
|
|
405
475
|
```
|
|
406
476
|
Analyze feedback from current subtask implementation:
|
|
407
477
|
- Subtask ID: [current subtask ID]
|
|
408
|
-
- User corrections
|
|
478
|
+
- User-confirmed corrections: [list of feedback items where user answered "Yes"]
|
|
409
479
|
- Files that were implemented: [list of files modified/created]
|
|
410
480
|
- Patterns the user corrected or suggested: [specific corrections]
|
|
411
481
|
```
|
|
@@ -420,7 +490,8 @@ The agent will:
|
|
|
420
490
|
**IMPORTANT**:
|
|
421
491
|
|
|
422
492
|
- Agent files are NOT modified directly — proposals are filed as Linear issues for manual review
|
|
423
|
-
-
|
|
493
|
+
- **Only process feedback explicitly confirmed by user** — do not auto-collect without asking
|
|
494
|
+
- If no user-confirmed feedback was collected during this subtask, skip this step
|
|
424
495
|
- This step runs BEFORE the subtask pause (Step 3h) so evolution is complete before moving on
|
|
425
496
|
- If Linear issue creation fails, continue silently — do not block the workflow
|
|
426
497
|
|
|
@@ -609,7 +680,7 @@ When verification fails, delegate to appropriate fix agent:
|
|
|
609
680
|
20. **Capture after screenshots + post to Linear**: After implementation, launch `screenshot-reporter` agent to capture "after" screenshots, generate comparison report, post to Linear, and cleanup
|
|
610
681
|
21. **Document translations changes**: If `apps/web/public/translations.json` was modified, include a table with added/changed translation keys and their PL/EN values in the Implementation Report
|
|
611
682
|
22. **Capture screenshots in both modes**: Agent captures screenshots in BOTH normal mode and dark mode (high contrast) for complete visual documentation
|
|
612
|
-
23. **
|
|
683
|
+
23. **Ask before collecting feedback for agent evolution**: When user provides corrections or suggestions during implementation, **explicitly ask** if they want to create a Linear issue for the improvement. Only user-confirmed feedback (answered "Yes") should be processed at evolution checkpoints (Step 3g-evolve, Step 4a) via `shared-agent-evolver` agent.
|
|
613
684
|
24. **Never modify agent files directly during implementation**: The `shared-agent-evolver` agent files all proposals as Linear issues for manual review — it does NOT modify agent, command, or skill files directly.
|
|
614
685
|
|
|
615
686
|
## Example Flow
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: linear-suggestion
|
|
3
|
-
description: Create a Linear issue in the "MobileMS Framework" project with a suggestion for agent
|
|
3
|
+
description: Create a Linear issue in the "MobileMS Framework" project with a suggestion for agent or skill improvements.
|
|
4
4
|
allowed-tools: mcp__linear-server__create_issue
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Linear Suggestion
|
|
8
8
|
|
|
9
|
-
Create a Linear issue in the **MobileMS Framework** project containing a suggestion for improving agent definitions
|
|
9
|
+
Create a Linear issue in the **MobileMS Framework** project containing a suggestion for improving agent definitions or skills. Used by automated analysis agents to propose changes without blocking the workflow.
|
|
10
10
|
|
|
11
11
|
## When to Use
|
|
12
12
|
|
|
13
|
-
- When an automated agent (e.g., `shared-parallelization-analyzer`) identifies a recurring pattern that could improve an agent
|
|
13
|
+
- When an automated agent (e.g., `shared-parallelization-analyzer`) identifies a recurring pattern that could improve an agent or skill
|
|
14
14
|
- When proposing orchestrator rule changes based on parallelization analysis
|
|
15
15
|
- When any non-interactive process needs to suggest framework improvements
|
|
16
16
|
|
|
@@ -18,13 +18,13 @@ Create a Linear issue in the **MobileMS Framework** project containing a suggest
|
|
|
18
18
|
|
|
19
19
|
The invoking agent must provide:
|
|
20
20
|
|
|
21
|
-
| Parameter | Required | Description
|
|
22
|
-
| ------------- | -------- |
|
|
23
|
-
| `title` | YES | Short summary of the suggestion (max 100 chars)
|
|
24
|
-
| `description` | YES | Full markdown description with rationale and proposed changes
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
| ------------- | -------- | ----------------------------------------------------------------------------- |
|
|
23
|
+
| `title` | YES | Short summary of the suggestion (max 100 chars) |
|
|
24
|
+
| `description` | YES | Full markdown description with rationale and proposed changes |
|
|
25
25
|
| `source` | YES | Agent that generated the suggestion (e.g., `shared-parallelization-analyzer`) |
|
|
26
|
-
| `targetFile` | NO | Path to the file to be modified (e.g., `agents/shared-impl-orchestrator.md`)
|
|
27
|
-
| `category` | NO | One of: `OPTIMIZATION`, `NEW_RULE`, `PATTERN_UPDATE`, `BUG_FIX`
|
|
26
|
+
| `targetFile` | NO | Path to the file to be modified (e.g., `agents/shared-impl-orchestrator.md`) |
|
|
27
|
+
| `category` | NO | One of: `OPTIMIZATION`, `NEW_RULE`, `PATTERN_UPDATE`, `BUG_FIX` |
|
|
28
28
|
|
|
29
29
|
## Issue Format
|
|
30
30
|
|
|
@@ -1,7 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: plan
|
|
3
|
+
description: Create an implementation plan for a Linear task and save it as a comment. Analyzes codebase, previous commits, and external dependencies to generate detailed plans for tasks and subtasks.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
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__delete_comment
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Plan Skill
|
|
2
18
|
|
|
3
19
|
Create an implementation plan for a Linear task and save it as a comment. If the task has subtasks, create individual plans for each subtask.
|
|
4
20
|
|
|
21
|
+
## Execution Checklist
|
|
22
|
+
|
|
23
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
24
|
+
|
|
25
|
+
- [ ] **1. Fetch Linear task** — get title, description, labels, priority, estimate from MCP Linear server
|
|
26
|
+
- [ ] **2. Fetch subtasks** — check for children; if present, plan each subtask individually
|
|
27
|
+
- [ ] **3. Fetch existing comments** — check parent task and each subtask for existing context
|
|
28
|
+
- [ ] **4. Determine planning needs** — check for existing plans and plan change requests; record old plan comment IDs for replacement; skip tasks with valid plans
|
|
29
|
+
- [ ] **5. Analyze previous commits** — `git log --all --grep="<taskId>"` for each task/subtask
|
|
30
|
+
- [ ] **6. Analyze staged changes** — `git status` and `git diff --cached` for work in progress
|
|
31
|
+
- [ ] **7. MANDATORY: Analyze codebase** — explore affected files, patterns, dependencies, and test coverage
|
|
32
|
+
- [ ] **8. Analyze external library deps** — check if `@smartsoft001` or `@smartsoft001-mobilems` changes are needed (mark as separate process)
|
|
33
|
+
- [ ] **9. Create implementation plans** — generate structured plans per task/subtask with all required sections
|
|
34
|
+
- [ ] **10. MANDATORY: Write plans in Polish** — all plan content must be in Polish language
|
|
35
|
+
- [ ] **11. Show plans to user** — present plans for review and approval before saving
|
|
36
|
+
- [ ] **12. MANDATORY: Confirm old plan deletion** — if replacing existing plans, ask user to confirm deletion of old plan comments before proceeding
|
|
37
|
+
- [ ] **13. Delete old plan comments and save new ones** — delete outdated plan comments from Linear, then post new plans via MCP
|
|
38
|
+
- [ ] **14. Confirm to user** — list saved plans with summaries and Linear links
|
|
39
|
+
|
|
5
40
|
## Role
|
|
6
41
|
|
|
7
42
|
**You are a highly experienced software architect** with:
|
|
@@ -105,6 +140,9 @@ Create a list of tasks/subtasks that need planning:
|
|
|
105
140
|
|
|
106
141
|
- `tasksNeedingPlan`: Array of task IDs that need a new or updated plan
|
|
107
142
|
- `tasksWithExistingPlan`: Array of task IDs that already have valid plans (skip these)
|
|
143
|
+
- `oldPlanCommentIds`: Map of task ID → comment ID for existing plan comments that will be replaced (needed for deletion in Step 9)
|
|
144
|
+
|
|
145
|
+
**Important**: When a plan change is requested, record the **comment ID** of the existing plan comment. This ID is needed later to delete the old plan before saving the new one.
|
|
108
146
|
|
|
109
147
|
**Important**: If ALL tasks already have valid plans and no changes are requested, inform the user and ask if they want to regenerate plans anyway.
|
|
110
148
|
|
|
@@ -405,7 +443,45 @@ _Plan generated by Claude Code_
|
|
|
405
443
|
_Plan generated by Claude Code_
|
|
406
444
|
```
|
|
407
445
|
|
|
408
|
-
### Step 9:
|
|
446
|
+
### Step 9: Confirm and Delete Old Plan Comments
|
|
447
|
+
|
|
448
|
+
**This step applies only when replacing existing plans** (i.e., `oldPlanCommentIds` from Step 3a is not empty).
|
|
449
|
+
|
|
450
|
+
Before saving new plans, ask the user to confirm deletion of old plan comments:
|
|
451
|
+
|
|
452
|
+
```markdown
|
|
453
|
+
## Zastąpienie istniejących planów
|
|
454
|
+
|
|
455
|
+
Następujące komentarze z planami zostaną usunięte i zastąpione nowymi:
|
|
456
|
+
|
|
457
|
+
| Task | Stary komentarz (ID) |
|
|
458
|
+
| --------- | -------------------- |
|
|
459
|
+
| <task-id> | <comment-id> |
|
|
460
|
+
|
|
461
|
+
Czy potwierdzasz usunięcie starych planów i zapisanie nowych?
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Use `AskUserQuestion` tool with options:
|
|
465
|
+
|
|
466
|
+
- "Tak, usuń stare plany i zapisz nowe" (Recommended)
|
|
467
|
+
- "Nie, zachowaj stare plany (zapisz nowe obok)"
|
|
468
|
+
- "Anuluj"
|
|
469
|
+
|
|
470
|
+
**If user confirms deletion:**
|
|
471
|
+
|
|
472
|
+
1. For each task in `oldPlanCommentIds`, delete the old plan comment using `mcp__linear-server__delete_comment`
|
|
473
|
+
2. If `delete_comment` is not available, add a strikethrough header to the old comment body: `~~## Implementation Plan~~ (Zastąpiony nowym planem)` — use `mcp__linear-server__update_comment` as fallback
|
|
474
|
+
3. Then proceed to save new plan comments
|
|
475
|
+
|
|
476
|
+
**If user chooses to keep old plans:**
|
|
477
|
+
|
|
478
|
+
- Skip deletion, save new plans as additional comments (old plans remain)
|
|
479
|
+
|
|
480
|
+
**If user cancels:**
|
|
481
|
+
|
|
482
|
+
- Stop the entire process, do not save any plans
|
|
483
|
+
|
|
484
|
+
### Step 9a: Save New Plans as Comments
|
|
409
485
|
|
|
410
486
|
Use the MCP Linear server to create comments:
|
|
411
487
|
|
|
@@ -443,6 +519,7 @@ After successfully saving the plans, confirm to the user:
|
|
|
443
519
|
12. **Identify external library changes**: Always check if task requires changes in `@smartsoft001` (repo: `../smartsoft001`) or `@smartsoft001-mobilems` (repo: `../mobilems-framework`). Mark these as separate process items, not part of current implementation
|
|
444
520
|
13. **Skip tasks with existing plans**: Only create plans for tasks that don't have a plan yet, or where a newer comment requests plan changes. Don't regenerate plans unnecessarily.
|
|
445
521
|
14. **Detect plan change requests**: Look for keywords in newer comments that indicate a plan change is needed (e.g., "zmień plan", "zaktualizuj plan", "popraw plan", "uwagi do planu")
|
|
522
|
+
15. **Delete old plans when replacing**: When creating a replacement plan, always ask user to confirm deletion of the old plan comment. Delete old comment before saving new one to keep Linear comments clean. Record old plan comment IDs during Step 3a for use in Step 9
|
|
446
523
|
|
|
447
524
|
## Example with Subtasks
|
|
448
525
|
|
|
@@ -1,7 +1,63 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: push
|
|
3
|
+
description: Push local changes to remote repository, update Linear task status, monitor CI pipeline, verify QA deployment, and optionally create pull requests for feature branches.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
- WebFetch
|
|
11
|
+
- mcp__linear-server__get_issue
|
|
12
|
+
- mcp__linear-server__list_issues
|
|
13
|
+
- mcp__linear-server__list_comments
|
|
14
|
+
- mcp__linear-server__create_comment
|
|
15
|
+
- mcp__linear-server__update_issue
|
|
16
|
+
- mcp__linear-server__list_issue_statuses
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Push Skill
|
|
2
20
|
|
|
3
21
|
Push local changes to remote and optionally update Linear task status.
|
|
4
22
|
|
|
23
|
+
## Execution Checklist
|
|
24
|
+
|
|
25
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
26
|
+
|
|
27
|
+
### Pre-Push
|
|
28
|
+
|
|
29
|
+
- [ ] **1. Check git status** — verify branch, commits ahead, warn about uncommitted changes
|
|
30
|
+
- [ ] **2. Get commits to push** — `git log origin/<branch>..HEAD --oneline`; exit if none
|
|
31
|
+
- [ ] **3. Fetch Linear task** — get title, status, subtasks and their statuses via MCP
|
|
32
|
+
- [ ] **4. Analyze subtasks** — classify completed vs incomplete, find reasons for incomplete ones
|
|
33
|
+
- [ ] **5. MANDATORY: Show summary to user** — present commits + subtask status, ask about status change
|
|
34
|
+
- [ ] **6. Update Linear status** — BEFORE push: set completed subtasks to "In Review", post summary comment in Polish
|
|
35
|
+
- [ ] **7. MANDATORY: Write Linear comments in Polish** — all comments must be in Polish language
|
|
36
|
+
|
|
37
|
+
### Push
|
|
38
|
+
|
|
39
|
+
- [ ] **8. Push to remote** — `git push`; handle errors gracefully
|
|
40
|
+
|
|
41
|
+
### Post-Push (branch-specific)
|
|
42
|
+
|
|
43
|
+
#### If `development` branch:
|
|
44
|
+
|
|
45
|
+
- [ ] **9a. Ask about deployment verification** — offer optional CI monitoring + QA check
|
|
46
|
+
- [ ] **10a. Monitor CI pipeline** — poll `gh run view` every 30s until completion
|
|
47
|
+
- [ ] **11a. Handle CI failure** — revert task to "To Do", post error comment to Linear
|
|
48
|
+
- [ ] **12a. Verify package.json update** — `git pull`, compare versions
|
|
49
|
+
- [ ] **13a. Verify QA deployment** — wait 5 min, check `<meta name="app-version">` matches
|
|
50
|
+
|
|
51
|
+
#### If feature branch:
|
|
52
|
+
|
|
53
|
+
- [ ] **9b. Check for existing PR** — `gh pr list --head <branch> --base development`
|
|
54
|
+
- [ ] **10b. Ask about PR creation** — if no PR exists and subtasks are ready
|
|
55
|
+
- [ ] **11b. Create PR** — `gh pr create` with structured summary
|
|
56
|
+
|
|
57
|
+
### Final
|
|
58
|
+
|
|
59
|
+
- [ ] **12. Show final status** — complete summary of all actions taken
|
|
60
|
+
|
|
5
61
|
## Usage
|
|
6
62
|
|
|
7
63
|
```
|
|
@@ -336,19 +392,78 @@ If user chooses not to verify, end the command here.
|
|
|
336
392
|
|
|
337
393
|
**If workflow FAILED**:
|
|
338
394
|
|
|
339
|
-
|
|
340
|
-
## ❌ CI Pipeline Failed
|
|
395
|
+
1. **Get failed job logs**:
|
|
341
396
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
397
|
+
```bash
|
|
398
|
+
gh run view <run-id> --log-failed 2>&1 | tail -100
|
|
399
|
+
```
|
|
345
400
|
|
|
346
|
-
|
|
401
|
+
2. **Revert Linear task to "To Do"**:
|
|
347
402
|
|
|
348
|
-
|
|
403
|
+
If Linear task was provided and status was changed to "In Review":
|
|
349
404
|
|
|
350
|
-
|
|
351
|
-
|
|
405
|
+
- Move the parent task back to "To Do" status
|
|
406
|
+
- For tasks with subtasks: Move all subtasks that were changed to "In Review" back to "To Do"
|
|
407
|
+
|
|
408
|
+
3. **Add error comment to Linear task**:
|
|
409
|
+
|
|
410
|
+
Create a comment on the **parent task** with CI error details:
|
|
411
|
+
|
|
412
|
+
```markdown
|
|
413
|
+
## ❌ CI Build Failed
|
|
414
|
+
|
|
415
|
+
### Branch
|
|
416
|
+
|
|
417
|
+
`<branch-name>`
|
|
418
|
+
|
|
419
|
+
### Workflow
|
|
420
|
+
|
|
421
|
+
**Name**: <workflow-name>
|
|
422
|
+
**Run ID**: <run-id>
|
|
423
|
+
**URL**: https://github.com/<owner>/<repo>/actions/runs/<run-id>
|
|
424
|
+
|
|
425
|
+
### Error Details
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
<last 50-100 lines of error logs from gh run view --log-failed>
|
|
429
|
+
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### Status
|
|
433
|
+
|
|
434
|
+
Task przywrócony do "To Do" z powodu błędu CI.
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
_Raport wygenerowany przez Claude Code_
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
4. **Show error to user**:
|
|
442
|
+
|
|
443
|
+
```markdown
|
|
444
|
+
## ❌ CI Pipeline Failed
|
|
445
|
+
|
|
446
|
+
**Workflow**: <workflow-name>
|
|
447
|
+
**Run ID**: <run-id>
|
|
448
|
+
**Conclusion**: failure
|
|
449
|
+
|
|
450
|
+
### Linear Task Status
|
|
451
|
+
|
|
452
|
+
⚠️ Task [linearTaskId] przywrócony do "To Do"
|
|
453
|
+
✅ Komentarz z błędem dodany do taska
|
|
454
|
+
|
|
455
|
+
### View logs
|
|
456
|
+
|
|
457
|
+
Run `gh run view <run-id> --log-failed` to see error details.
|
|
458
|
+
|
|
459
|
+
Or visit: https://github.com/<owner>/<repo>/actions/runs/<run-id>
|
|
460
|
+
|
|
461
|
+
### Następne kroki
|
|
462
|
+
|
|
463
|
+
1. Przeanalizuj błędy w CI
|
|
464
|
+
2. Napraw problemy lokalnie
|
|
465
|
+
3. Uruchom `/push-local` ponownie
|
|
466
|
+
```
|
|
352
467
|
|
|
353
468
|
Stop here if workflow failed.
|
|
354
469
|
|
|
@@ -485,7 +600,8 @@ Show complete summary:
|
|
|
485
600
|
8. **Deployment verification is optional**: Always ask user before starting the 10-minute verification process
|
|
486
601
|
9. **Read SITE_URL from .env.dev**: Use the SITE_URL variable from `.env.dev` file for QA verification
|
|
487
602
|
10. **Version comparison**: Compare `package.json` version with `<meta name="app-version">` tag on QA site
|
|
488
|
-
11. **
|
|
603
|
+
11. **Revert on CI failure**: If CI pipeline fails, move task back to "To Do" and add error comment
|
|
604
|
+
12. **Branch-specific post-push actions**:
|
|
489
605
|
- **`development` branch**: Offer deployment verification (CI monitoring + QA version check)
|
|
490
606
|
- **Feature branch (e.g., `MOB-123`)**: Check/create PR to `development` when all subtasks are ready
|
|
491
607
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Flow-Legacy Plugin for Claude Code
|
|
2
2
|
|
|
3
|
-
Development flow
|
|
3
|
+
Development flow skills for **legacy Angular 14 projects** with Linear-driven workflow.
|
|
4
4
|
|
|
5
5
|
## Target Projects
|
|
6
6
|
|
|
@@ -22,10 +22,10 @@ This plugin is designed for older MobileMS projects using:
|
|
|
22
22
|
| Components | NgModules | Standalone |
|
|
23
23
|
| Nx packages | `@nrwl/*` | `@nx/*` |
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## Workflow Skills
|
|
26
26
|
|
|
27
|
-
|
|
|
28
|
-
|
|
27
|
+
| Skill | Description |
|
|
28
|
+
|-------|-------------|
|
|
29
29
|
| `/commit` | Create conventional commit based on Linear task |
|
|
30
30
|
| `/impl` | Implement plans from Linear task comments |
|
|
31
31
|
| `/plan` | Create implementation plan and save to Linear |
|
|
@@ -67,15 +67,15 @@ Configure these in your `.mcp.json`:
|
|
|
67
67
|
- Nx commands (test, lint, build)
|
|
68
68
|
- Linear API (read/write issues, comments)
|
|
69
69
|
- Playwright (screenshots)
|
|
70
|
-
-
|
|
70
|
+
- Utility skills
|
|
71
71
|
|
|
72
72
|
### Requires Confirmation (ask)
|
|
73
|
-
-
|
|
73
|
+
- Workflow skills (/commit, /impl, /plan, /push)
|
|
74
74
|
- `git commit` - creating commits
|
|
75
75
|
- `git push` - pushing to remote
|
|
76
76
|
- `gh pr create` - creating pull requests
|
|
77
77
|
|
|
78
|
-
## Skills
|
|
78
|
+
## Utility Skills
|
|
79
79
|
|
|
80
80
|
| Skill | Description |
|
|
81
81
|
|-------|-------------|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flow-legacy",
|
|
3
|
-
"description": "Development flow
|
|
4
|
-
"version": "2.
|
|
3
|
+
"description": "Development flow skills for legacy Angular 14 projects with Linear-driven workflow",
|
|
4
|
+
"version": "2.72.0"
|
|
5
5
|
}
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"mcp__linear-server__list_issues",
|
|
39
39
|
"mcp__linear-server__list_comments",
|
|
40
40
|
"mcp__linear-server__create_comment",
|
|
41
|
+
"mcp__linear-server__delete_comment",
|
|
41
42
|
"mcp__linear-server__update_issue",
|
|
42
43
|
"mcp__linear-server__list_issue_statuses",
|
|
43
44
|
"mcp__linear-server__create_issue",
|
|
@@ -72,4 +73,4 @@
|
|
|
72
73
|
"enabledPlugins": {
|
|
73
74
|
"flow-legacy@mobilems": true
|
|
74
75
|
}
|
|
75
|
-
}
|
|
76
|
+
}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: commit
|
|
3
|
+
description: Create a conventional commit message based on Linear task and staged changes. Fetches task details, analyzes changes, generates commit message, and optionally runs parallelization analysis.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
- mcp__linear-server__get_issue
|
|
11
|
+
- mcp__linear-server__list_comments
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Commit Skill
|
|
2
15
|
|
|
3
16
|
Create a conventional commit message based on Linear task and staged changes.
|
|
4
17
|
|
|
@@ -12,6 +25,20 @@ Create a conventional commit message based on Linear task and staged changes.
|
|
|
12
25
|
|
|
13
26
|
- `linearTaskId` - Linear task ID (e.g., ENG-123)
|
|
14
27
|
|
|
28
|
+
## Execution Checklist
|
|
29
|
+
|
|
30
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
31
|
+
|
|
32
|
+
- [ ] **1. Fetch Linear task** — get title, description, labels/type from MCP Linear server
|
|
33
|
+
- [ ] **2. Analyze staged changes** — run `git diff --cached` to understand scope
|
|
34
|
+
- [ ] **3. Verify completeness** — compare task requirements with staged changes; if incomplete, ask user whether to continue or stop
|
|
35
|
+
- [ ] **4. Read commitlint config** — read `commitlint.config.js` for valid scopes and format
|
|
36
|
+
- [ ] **5. Generate commit message** — draft `<type>(<scope>): <subject>` with body and `Refs: <linearTaskId>`
|
|
37
|
+
- [ ] **6. Show message to user** — present commit message for approval before proceeding
|
|
38
|
+
- [ ] **7. MANDATORY: Pre-commit preparation** — run `nvm use 18` (legacy Node.js version)
|
|
39
|
+
- [ ] **8. Create commit** — execute `git commit` with the approved message
|
|
40
|
+
- [ ] **9. Parallelization analysis (optional)** — fetch Linear comments, search for orchestration plan, delegate to `shared-parallelization-analyzer` if found
|
|
41
|
+
|
|
15
42
|
## Instructions
|
|
16
43
|
|
|
17
44
|
You are tasked with creating a git commit based on a Linear task and staged changes.
|
|
@@ -1,7 +1,59 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: impl
|
|
3
|
+
description: Implement plans from Linear task comments using Angular 14 legacy patterns. Iteratively processes subtasks with TDD, UI classification, agent orchestration, and 3x3 rule checkpoints.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Edit
|
|
8
|
+
- Write
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
- Task
|
|
13
|
+
- mcp__linear-server__get_issue
|
|
14
|
+
- mcp__linear-server__list_issues
|
|
15
|
+
- mcp__linear-server__list_comments
|
|
16
|
+
- mcp__linear-server__create_comment
|
|
17
|
+
- mcp__linear-server__update_issue
|
|
18
|
+
- mcp__linear-server__list_issue_statuses
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Implementation Skill
|
|
2
22
|
|
|
3
23
|
Implement plans from Linear task comments. For tasks with subtasks, iteratively implement each subtask that is in "To Do" status.
|
|
4
24
|
|
|
25
|
+
## Execution Checklist
|
|
26
|
+
|
|
27
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
28
|
+
|
|
29
|
+
### Initial Setup
|
|
30
|
+
|
|
31
|
+
- [ ] **1. Fetch task and subtasks** — delegate to `shared-linear-subtask-iterator` agent
|
|
32
|
+
|
|
33
|
+
### Per Subtask (repeat for each "To Do" subtask)
|
|
34
|
+
|
|
35
|
+
- [ ] **2. Set status to "In Progress"** — update subtask status via MCP (subtasks only, not parent)
|
|
36
|
+
- [ ] **3. Fetch implementation plan** — find `## Implementation Plan` in task comments
|
|
37
|
+
- [ ] **4. MANDATORY: UI change classification** — delegate to `shared-ui-classifier` agent, output `UI_CHANGE_REQUIRED: YES/NO`
|
|
38
|
+
- [ ] **5. MANDATORY: Agent orchestration plan** — delegate to `shared-impl-orchestrator` with `Angular Version: 14 (LEGACY)`, post plan to Linear
|
|
39
|
+
- [ ] **6. Check external library blockers** — if blockers found, set status to Blocked and skip
|
|
40
|
+
- [ ] **7. Capture "before" screenshots** — if `UI_CHANGE_REQUIRED: YES`, launch `screenshot-reporter` in background
|
|
41
|
+
- [ ] **8. MANDATORY: Implement with 3x3 rule** — pause every 3 changes, use `shared-tdd-developer` for ALL code (RED → GREEN → REFACTOR)
|
|
42
|
+
- [ ] **9. MANDATORY: Use Angular 14 patterns** — `*ngIf`/`*ngFor`, constructor DI, `@Input()`/`@Output()`, BehaviorSubject — NEVER signals, `@if`/`@for`, `inject()`
|
|
43
|
+
- [ ] **10. Verify implementation** — run tests, lint, build check
|
|
44
|
+
- [ ] **11. Capture "after" screenshots** — if `UI_CHANGE_REQUIRED: YES`, capture + post comparison to Linear + cleanup
|
|
45
|
+
- [ ] **12. MANDATORY: Screenshot verification** — output `SCREENSHOT_REQUIREMENT_MET: YES/NO`, block if missing
|
|
46
|
+
- [ ] **13. Create completion comment** — delegate to `shared-impl-reporter`, post to Linear
|
|
47
|
+
- [ ] **14. MANDATORY: Write reports in Polish** — all Linear comments must be in Polish language
|
|
48
|
+
- [ ] **15. Update status** — delegate to `shared-linear-subtask-iterator` for status determination
|
|
49
|
+
- [ ] **16. Agent evolution** — if user confirmed feedback, delegate to `shared-agent-evolver`
|
|
50
|
+
- [ ] **17. Pause for user confirmation** — ALWAYS wait before proceeding to next subtask
|
|
51
|
+
|
|
52
|
+
### Finalization
|
|
53
|
+
|
|
54
|
+
- [ ] **18. Final summary** — present summary of all subtasks with statuses
|
|
55
|
+
- [ ] **19. ALWAYS pause** — wait for user confirmation at end
|
|
56
|
+
|
|
5
57
|
## Role
|
|
6
58
|
|
|
7
59
|
**You are a highly experienced senior TypeScript developer** with:
|
|
@@ -30,6 +82,7 @@ You implement code that is:
|
|
|
30
82
|
**ALWAYS use these patterns in legacy projects:**
|
|
31
83
|
|
|
32
84
|
### Components
|
|
85
|
+
|
|
33
86
|
```typescript
|
|
34
87
|
// CORRECT (Angular 14)
|
|
35
88
|
@Component({
|
|
@@ -45,7 +98,7 @@ export class ExampleComponent implements OnInit {
|
|
|
45
98
|
|
|
46
99
|
constructor(
|
|
47
100
|
private readonly dataService: DataService,
|
|
48
|
-
private readonly router: Router
|
|
101
|
+
private readonly router: Router,
|
|
49
102
|
) {}
|
|
50
103
|
|
|
51
104
|
ngOnInit(): void {
|
|
@@ -61,13 +114,12 @@ export class ExampleComponent implements OnInit {
|
|
|
61
114
|
```
|
|
62
115
|
|
|
63
116
|
### Templates
|
|
117
|
+
|
|
64
118
|
```html
|
|
65
119
|
<!-- CORRECT (Angular 14) -->
|
|
66
120
|
<div *ngIf="isLoading">Loading...</div>
|
|
67
121
|
<ul *ngIf="items.length > 0">
|
|
68
|
-
<li *ngFor="let item of items; trackBy: trackByFn">
|
|
69
|
-
{{ item.name }}
|
|
70
|
-
</li>
|
|
122
|
+
<li *ngFor="let item of items; trackBy: trackByFn">{{ item.name }}</li>
|
|
71
123
|
</ul>
|
|
72
124
|
|
|
73
125
|
<!-- WRONG (Angular 20+ - DO NOT USE) -->
|
|
@@ -76,6 +128,7 @@ export class ExampleComponent implements OnInit {
|
|
|
76
128
|
```
|
|
77
129
|
|
|
78
130
|
### Services
|
|
131
|
+
|
|
79
132
|
```typescript
|
|
80
133
|
// CORRECT (Angular 14)
|
|
81
134
|
@Injectable({ providedIn: 'root' })
|
|
@@ -295,6 +348,7 @@ Use tools:
|
|
|
295
348
|
- `Glob` and `Grep` for additional exploration if needed
|
|
296
349
|
|
|
297
350
|
**CRITICAL - Angular 14 Pattern Enforcement:**
|
|
351
|
+
|
|
298
352
|
- ALWAYS use `*ngIf`, `*ngFor` in templates
|
|
299
353
|
- ALWAYS use constructor injection
|
|
300
354
|
- ALWAYS use `@Input()`, `@Output()` decorators
|
|
@@ -313,6 +367,7 @@ Use tools:
|
|
|
313
367
|
3. ✅ [Change 3 description] - `path/to/file3.ts`
|
|
314
368
|
|
|
315
369
|
### Angular 14 Patterns Used
|
|
370
|
+
|
|
316
371
|
- Constructor DI: ✅
|
|
317
372
|
- *ngIf/*ngFor: ✅
|
|
318
373
|
- @Input/@Output: ✅
|
|
@@ -332,6 +387,26 @@ Use tools:
|
|
|
332
387
|
Continue? (yes/no/adjust)
|
|
333
388
|
```
|
|
334
389
|
|
|
390
|
+
**Feedback Collection for Agent Evolution:**
|
|
391
|
+
|
|
392
|
+
During 3x3 checkpoints, when the user provides corrections or suggestions about coding patterns, implementation approach, or agent behavior — **ASK the user explicitly** if they want to create a Linear issue for the improvement.
|
|
393
|
+
|
|
394
|
+
**When user provides a correction or pattern suggestion, ASK:**
|
|
395
|
+
|
|
396
|
+
```
|
|
397
|
+
🔄 Detected potential improvement suggestion:
|
|
398
|
+
"[summary of user's correction]"
|
|
399
|
+
|
|
400
|
+
Would you like to create a Linear issue for this pattern improvement?
|
|
401
|
+
- Yes - File as Linear issue in "MobileMS Framework"
|
|
402
|
+
- No - Note for this session only
|
|
403
|
+
- Skip - Ignore this feedback
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
**Only feedback confirmed with "Yes"** should be collected as **evolution feedback items** and processed in Step 3g-evolve via `linear-suggestion` skill.
|
|
407
|
+
|
|
408
|
+
Look for signals like: universal language ("always", "never"), pattern-level corrections, or explicit requests to update agent behavior.
|
|
409
|
+
|
|
335
410
|
#### Step 3e: Verify Implementation
|
|
336
411
|
|
|
337
412
|
After implementing:
|
|
@@ -408,6 +483,35 @@ The agent will determine the correct status and provide MCP command to execute.
|
|
|
408
483
|
|
|
409
484
|
**Execute the status update** via MCP Linear server.
|
|
410
485
|
|
|
486
|
+
#### Step 3g-evolve: Agent Evolution Checkpoint
|
|
487
|
+
|
|
488
|
+
**Prerequisites**: Only execute this step if user confirmed at least one feedback item with "Yes" during 3x3 checkpoints.
|
|
489
|
+
|
|
490
|
+
**Delegate to `shared-agent-evolver` agent:**
|
|
491
|
+
|
|
492
|
+
```
|
|
493
|
+
Analyze feedback from current subtask implementation:
|
|
494
|
+
- Subtask ID: [current subtask ID]
|
|
495
|
+
- User-confirmed corrections: [list of feedback items where user answered "Yes"]
|
|
496
|
+
- Files that were implemented: [list of files modified/created]
|
|
497
|
+
- Patterns the user corrected or suggested: [specific corrections]
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
The agent will:
|
|
501
|
+
|
|
502
|
+
1. Classify each feedback item (IGNORE / EVOLVE_PATTERN / EVOLVE_RULE / EVOLVE_TEMPLATE / CREATE_AGENT / UPDATE_WORKFLOW)
|
|
503
|
+
2. Generate proposals for non-IGNORE items
|
|
504
|
+
3. File each proposal as a Linear issue in "MobileMS Framework" via `linear-suggestion` skill
|
|
505
|
+
4. Return Evolution Report with created issue IDs
|
|
506
|
+
|
|
507
|
+
**IMPORTANT**:
|
|
508
|
+
|
|
509
|
+
- Agent files are NOT modified directly — proposals are filed as Linear issues for manual review
|
|
510
|
+
- **Only process feedback explicitly confirmed by user** — do not auto-collect without asking
|
|
511
|
+
- If no user-confirmed feedback was collected during this subtask, skip this step
|
|
512
|
+
- This step runs BEFORE the subtask pause (Step 3h) so evolution is complete before moving on
|
|
513
|
+
- If Linear issue creation fails, continue silently — do not block the workflow
|
|
514
|
+
|
|
411
515
|
#### Step 3h: Pause After Subtask Completion
|
|
412
516
|
|
|
413
517
|
**Delegate to `shared-linear-subtask-iterator` agent:**
|
|
@@ -460,13 +564,14 @@ To Do → In Progress → In Review (if completed)
|
|
|
460
564
|
|
|
461
565
|
**ALWAYS stop and wait for user confirmation at these points:**
|
|
462
566
|
|
|
463
|
-
| Pause Point | When | What to Show
|
|
464
|
-
| -------------------- | ----------------------------------- |
|
|
465
|
-
| **3x3 Checkpoint** | After every 3 changes | Summary of 3 changes + next 3 steps
|
|
466
|
-
| **Subtask Complete** | After finishing each subtask | Subtask summary + next subtask info
|
|
467
|
-
| **Task Complete** | After finishing all subtasks | Final summary with all results
|
|
468
|
-
| **Blocker Found** | When external dependency found | Blocker details + options
|
|
469
|
-
| **Error/Issue** | When unexpected problem occurs | Error details + proposed solution
|
|
567
|
+
| Pause Point | When | What to Show |
|
|
568
|
+
| -------------------- | ----------------------------------- | ----------------------------------------- |
|
|
569
|
+
| **3x3 Checkpoint** | After every 3 changes | Summary of 3 changes + next 3 steps |
|
|
570
|
+
| **Subtask Complete** | After finishing each subtask | Subtask summary + next subtask info |
|
|
571
|
+
| **Task Complete** | After finishing all subtasks | Final summary with all results |
|
|
572
|
+
| **Blocker Found** | When external dependency found | Blocker details + options |
|
|
573
|
+
| **Error/Issue** | When unexpected problem occurs | Error details + proposed solution |
|
|
574
|
+
| **Agent Evolution** | After subtask / after final summary | Evolution report with filed Linear issues |
|
|
470
575
|
|
|
471
576
|
**Never proceed automatically** - always wait for explicit user confirmation before:
|
|
472
577
|
|
|
@@ -489,6 +594,7 @@ To Do → In Progress → In Review (if completed)
|
|
|
489
594
|
11. **Follow existing patterns**: Match the codebase conventions when implementing
|
|
490
595
|
12. **Commit changes**: After each subtask implementation, consider if a commit is needed
|
|
491
596
|
13. **Ask for clarification**: If implementation plan is unclear, ask before proceeding
|
|
597
|
+
14. **Ask before collecting feedback for agent evolution**: When user provides corrections or suggestions during implementation, **explicitly ask** if they want to create a Linear issue for the improvement. Only user-confirmed feedback (answered "Yes") should be processed at evolution checkpoints (Step 3g-evolve) via `shared-agent-evolver` agent.
|
|
492
598
|
|
|
493
599
|
---
|
|
494
600
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: linear-suggestion
|
|
3
|
-
description: Create a Linear issue in the "MobileMS Framework" project with a suggestion for agent
|
|
3
|
+
description: Create a Linear issue in the "MobileMS Framework" project with a suggestion for agent or skill improvements.
|
|
4
4
|
allowed-tools: mcp__linear-server__create_issue
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Linear Suggestion
|
|
8
8
|
|
|
9
|
-
Create a Linear issue in the **MobileMS Framework** project containing a suggestion for improving agent definitions
|
|
9
|
+
Create a Linear issue in the **MobileMS Framework** project containing a suggestion for improving agent definitions or skills. Used by automated analysis agents to propose changes without blocking the workflow.
|
|
10
10
|
|
|
11
11
|
## When to Use
|
|
12
12
|
|
|
13
|
-
- When an automated agent (e.g., `shared-parallelization-analyzer`) identifies a recurring pattern that could improve an agent
|
|
13
|
+
- When an automated agent (e.g., `shared-parallelization-analyzer`) identifies a recurring pattern that could improve an agent or skill
|
|
14
14
|
- When proposing orchestrator rule changes based on parallelization analysis
|
|
15
15
|
- When any non-interactive process needs to suggest framework improvements
|
|
16
16
|
|
|
@@ -18,13 +18,13 @@ Create a Linear issue in the **MobileMS Framework** project containing a suggest
|
|
|
18
18
|
|
|
19
19
|
The invoking agent must provide:
|
|
20
20
|
|
|
21
|
-
| Parameter | Required | Description
|
|
22
|
-
| ------------- | -------- |
|
|
23
|
-
| `title` | YES | Short summary of the suggestion (max 100 chars)
|
|
24
|
-
| `description` | YES | Full markdown description with rationale and proposed changes
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
| ------------- | -------- | ----------------------------------------------------------------------------- |
|
|
23
|
+
| `title` | YES | Short summary of the suggestion (max 100 chars) |
|
|
24
|
+
| `description` | YES | Full markdown description with rationale and proposed changes |
|
|
25
25
|
| `source` | YES | Agent that generated the suggestion (e.g., `shared-parallelization-analyzer`) |
|
|
26
|
-
| `targetFile` | NO | Path to the file to be modified (e.g., `agents/shared-impl-orchestrator.md`)
|
|
27
|
-
| `category` | NO | One of: `OPTIMIZATION`, `NEW_RULE`, `PATTERN_UPDATE`, `BUG_FIX`
|
|
26
|
+
| `targetFile` | NO | Path to the file to be modified (e.g., `agents/shared-impl-orchestrator.md`) |
|
|
27
|
+
| `category` | NO | One of: `OPTIMIZATION`, `NEW_RULE`, `PATTERN_UPDATE`, `BUG_FIX` |
|
|
28
28
|
|
|
29
29
|
## Issue Format
|
|
30
30
|
|
|
@@ -129,4 +129,4 @@ Linear issue created:
|
|
|
129
129
|
- ID: MOB-815
|
|
130
130
|
- Title: [Agent Suggestion] Add parallel scaffolding rule to orchestrator
|
|
131
131
|
- URL: https://linear.app/mobilems/issue/MOB-815
|
|
132
|
-
```
|
|
132
|
+
```
|
|
@@ -1,7 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: plan
|
|
3
|
+
description: Create an implementation plan for a Linear task and save it as a comment. Analyzes codebase with Angular 14 legacy patterns, previous commits, and external dependencies.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
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__delete_comment
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Plan Skill
|
|
2
18
|
|
|
3
19
|
Create an implementation plan for a Linear task and save it as a comment. If the task has subtasks, create individual plans for each subtask.
|
|
4
20
|
|
|
21
|
+
## Execution Checklist
|
|
22
|
+
|
|
23
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
24
|
+
|
|
25
|
+
- [ ] **1. Fetch Linear task** — get title, description, labels, priority, estimate from MCP Linear server
|
|
26
|
+
- [ ] **2. Fetch subtasks** — check for children; if present, plan each subtask individually
|
|
27
|
+
- [ ] **3. Fetch existing comments** — check parent task and each subtask for existing context
|
|
28
|
+
- [ ] **4. Determine planning needs** — check for existing plans and plan change requests; record old plan comment IDs for replacement; skip tasks with valid plans
|
|
29
|
+
- [ ] **5. Analyze previous commits** — `git log --all --grep="<taskId>"` for each task/subtask
|
|
30
|
+
- [ ] **6. Analyze staged changes** — `git status` and `git diff --cached` for work in progress
|
|
31
|
+
- [ ] **7. MANDATORY: Analyze codebase** — explore affected files, patterns, dependencies, and test coverage
|
|
32
|
+
- [ ] **8. MANDATORY: Verify Angular 14 patterns** — confirm `*ngIf`/`*ngFor`, constructor DI, `@Input()`/`@Output()`, BehaviorSubject in existing code
|
|
33
|
+
- [ ] **9. Analyze external library deps** — check if `@smartsoft001` or `@smartsoft001-mobilems` changes are needed (mark as separate process)
|
|
34
|
+
- [ ] **10. Create implementation plans** — generate structured plans per task/subtask with all required sections, using Angular 14 patterns
|
|
35
|
+
- [ ] **11. MANDATORY: Write plans in Polish** — all plan content must be in Polish language
|
|
36
|
+
- [ ] **12. Show plans to user** — present plans for review and approval before saving
|
|
37
|
+
- [ ] **13. MANDATORY: Confirm old plan deletion** — if replacing existing plans, ask user to confirm deletion of old plan comments before proceeding
|
|
38
|
+
- [ ] **14. Delete old plan comments and save new ones** — delete outdated plan comments from Linear, then post new plans via MCP
|
|
39
|
+
- [ ] **15. Confirm to user** — list saved plans with summaries and Linear links
|
|
40
|
+
|
|
5
41
|
## Role
|
|
6
42
|
|
|
7
43
|
**You are a highly experienced software architect** with:
|
|
@@ -38,17 +74,20 @@ You create plans that are:
|
|
|
38
74
|
When creating plans, always use these legacy patterns:
|
|
39
75
|
|
|
40
76
|
### Components
|
|
77
|
+
|
|
41
78
|
- Use `@Component` with `NgModule` (NOT standalone)
|
|
42
79
|
- Use `*ngIf` and `*ngFor` (NOT `@if` and `@for`)
|
|
43
80
|
- Use constructor injection (NOT `inject()`)
|
|
44
81
|
- Use `@Input()` and `@Output()` decorators (NOT `input()`, `output()`)
|
|
45
82
|
|
|
46
83
|
### Services
|
|
84
|
+
|
|
47
85
|
- Use `BehaviorSubject` and `Observable` (NOT signals)
|
|
48
86
|
- Use constructor injection
|
|
49
87
|
- Use `@Injectable({ providedIn: 'root' })` or module providers
|
|
50
88
|
|
|
51
89
|
### State Management
|
|
90
|
+
|
|
52
91
|
- Use NgRx Store/Effects or BehaviorSubject patterns
|
|
53
92
|
- NO signals, computed(), or effect()
|
|
54
93
|
|
|
@@ -126,6 +165,9 @@ Create a list of tasks/subtasks that need planning:
|
|
|
126
165
|
|
|
127
166
|
- `tasksNeedingPlan`: Array of task IDs that need a new or updated plan
|
|
128
167
|
- `tasksWithExistingPlan`: Array of task IDs that already have valid plans (skip these)
|
|
168
|
+
- `oldPlanCommentIds`: Map of task ID → comment ID for existing plan comments that will be replaced (needed for deletion in Step 9)
|
|
169
|
+
|
|
170
|
+
**Important**: When a plan change is requested, record the **comment ID** of the existing plan comment. This ID is needed later to delete the old plan before saving the new one.
|
|
129
171
|
|
|
130
172
|
**Important**: If ALL tasks already have valid plans and no changes are requested, inform the user and ask if they want to regenerate plans anyway.
|
|
131
173
|
|
|
@@ -185,6 +227,7 @@ Use tools like:
|
|
|
185
227
|
- `Read` to understand specific implementations
|
|
186
228
|
|
|
187
229
|
**Important**: Always check for Angular 14 patterns in existing code:
|
|
230
|
+
|
|
188
231
|
- Look for `*ngIf`, `*ngFor` usage (NOT `@if`, `@for`)
|
|
189
232
|
- Look for constructor injection patterns
|
|
190
233
|
- Look for `@Input()`, `@Output()` decorators
|
|
@@ -297,6 +340,7 @@ Create a **separate plan for each subtask** that includes:
|
|
|
297
340
|
[Key findings from codebase exploration]
|
|
298
341
|
|
|
299
342
|
**Angular 14 patterns to follow:**
|
|
343
|
+
|
|
300
344
|
- Use `*ngIf` / `*ngFor` for control flow
|
|
301
345
|
- Use constructor injection for DI
|
|
302
346
|
- Use `@Input()` / `@Output()` for component communication
|
|
@@ -393,6 +437,7 @@ _Plan generated by Claude Code (flow-legacy)_
|
|
|
393
437
|
[Findings specific to this subtask]
|
|
394
438
|
|
|
395
439
|
**Angular 14 patterns to follow:**
|
|
440
|
+
|
|
396
441
|
- Use `*ngIf` / `*ngFor` for control flow
|
|
397
442
|
- Use constructor injection for DI
|
|
398
443
|
- Use `@Input()` / `@Output()` for component communication
|
|
@@ -443,7 +488,45 @@ _Plan generated by Claude Code (flow-legacy)_
|
|
|
443
488
|
_Plan generated by Claude Code (flow-legacy)_
|
|
444
489
|
```
|
|
445
490
|
|
|
446
|
-
### Step 9:
|
|
491
|
+
### Step 9: Confirm and Delete Old Plan Comments
|
|
492
|
+
|
|
493
|
+
**This step applies only when replacing existing plans** (i.e., `oldPlanCommentIds` from Step 3a is not empty).
|
|
494
|
+
|
|
495
|
+
Before saving new plans, ask the user to confirm deletion of old plan comments:
|
|
496
|
+
|
|
497
|
+
```markdown
|
|
498
|
+
## Zastąpienie istniejących planów
|
|
499
|
+
|
|
500
|
+
Następujące komentarze z planami zostaną usunięte i zastąpione nowymi:
|
|
501
|
+
|
|
502
|
+
| Task | Stary komentarz (ID) |
|
|
503
|
+
| --------- | -------------------- |
|
|
504
|
+
| <task-id> | <comment-id> |
|
|
505
|
+
|
|
506
|
+
Czy potwierdzasz usunięcie starych planów i zapisanie nowych?
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
Use `AskUserQuestion` tool with options:
|
|
510
|
+
|
|
511
|
+
- "Tak, usuń stare plany i zapisz nowe" (Recommended)
|
|
512
|
+
- "Nie, zachowaj stare plany (zapisz nowe obok)"
|
|
513
|
+
- "Anuluj"
|
|
514
|
+
|
|
515
|
+
**If user confirms deletion:**
|
|
516
|
+
|
|
517
|
+
1. For each task in `oldPlanCommentIds`, delete the old plan comment using `mcp__linear-server__delete_comment`
|
|
518
|
+
2. If `delete_comment` is not available, add a strikethrough header to the old comment body: `~~## Implementation Plan~~ (Zastąpiony nowym planem)` — use `mcp__linear-server__update_comment` as fallback
|
|
519
|
+
3. Then proceed to save new plan comments
|
|
520
|
+
|
|
521
|
+
**If user chooses to keep old plans:**
|
|
522
|
+
|
|
523
|
+
- Skip deletion, save new plans as additional comments (old plans remain)
|
|
524
|
+
|
|
525
|
+
**If user cancels:**
|
|
526
|
+
|
|
527
|
+
- Stop the entire process, do not save any plans
|
|
528
|
+
|
|
529
|
+
### Step 9a: Save New Plans as Comments
|
|
447
530
|
|
|
448
531
|
Use the MCP Linear server to create comments:
|
|
449
532
|
|
|
@@ -482,6 +565,7 @@ After successfully saving the plans, confirm to the user:
|
|
|
482
565
|
13. **Skip tasks with existing plans**: Only create plans for tasks that don't have a plan yet, or where a newer comment requests plan changes. Don't regenerate plans unnecessarily.
|
|
483
566
|
14. **Detect plan change requests**: Look for keywords in newer comments that indicate a plan change is needed (e.g., "zmień plan", "zaktualizuj plan", "popraw plan", "uwagi do planu")
|
|
484
567
|
15. **Use Angular 14 patterns**: Always plan for `*ngIf`/`*ngFor`, constructor DI, `@Input()`/`@Output()`, BehaviorSubject - NOT signals, `@if`/`@for`, or `inject()`
|
|
568
|
+
16. **Delete old plans when replacing**: When creating a replacement plan, always ask user to confirm deletion of the old plan comment. Delete old comment before saving new one to keep Linear comments clean. Record old plan comment IDs during Step 3a for use in Step 9
|
|
485
569
|
|
|
486
570
|
---
|
|
487
571
|
|
|
@@ -1,7 +1,63 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: push
|
|
3
|
+
description: Push local changes to remote repository, update Linear task status, monitor CI pipeline, verify QA deployment, and optionally create pull requests for feature branches. Uses Angular 14 legacy patterns.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
- WebFetch
|
|
11
|
+
- mcp__linear-server__get_issue
|
|
12
|
+
- mcp__linear-server__list_issues
|
|
13
|
+
- mcp__linear-server__list_comments
|
|
14
|
+
- mcp__linear-server__create_comment
|
|
15
|
+
- mcp__linear-server__update_issue
|
|
16
|
+
- mcp__linear-server__list_issue_statuses
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Push Skill
|
|
2
20
|
|
|
3
21
|
Push local changes to remote and optionally update Linear task status.
|
|
4
22
|
|
|
23
|
+
## Execution Checklist
|
|
24
|
+
|
|
25
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
26
|
+
|
|
27
|
+
### Pre-Push
|
|
28
|
+
|
|
29
|
+
- [ ] **1. Check git status** — verify branch, commits ahead, warn about uncommitted changes
|
|
30
|
+
- [ ] **2. Get commits to push** — `git log origin/<branch>..HEAD --oneline`; exit if none
|
|
31
|
+
- [ ] **3. Fetch Linear task** — get title, status, subtasks and their statuses via MCP
|
|
32
|
+
- [ ] **4. Analyze subtasks** — classify completed vs incomplete, find reasons for incomplete ones
|
|
33
|
+
- [ ] **5. MANDATORY: Show summary to user** — present commits + subtask status, ask about status change
|
|
34
|
+
- [ ] **6. Update Linear status** — BEFORE push: set completed subtasks to "In Review", post summary comment in Polish
|
|
35
|
+
- [ ] **7. MANDATORY: Write Linear comments in Polish** — all comments must be in Polish language
|
|
36
|
+
|
|
37
|
+
### Push
|
|
38
|
+
|
|
39
|
+
- [ ] **8. Push to remote** — `git push`; handle errors gracefully
|
|
40
|
+
|
|
41
|
+
### Post-Push (branch-specific)
|
|
42
|
+
|
|
43
|
+
#### If `development` branch:
|
|
44
|
+
|
|
45
|
+
- [ ] **9a. Ask about deployment verification** — offer optional CI monitoring + QA check
|
|
46
|
+
- [ ] **10a. Monitor CI pipeline** — poll `gh run view` every 30s until completion
|
|
47
|
+
- [ ] **11a. Handle CI failure** — revert task to "To Do", post error comment to Linear
|
|
48
|
+
- [ ] **12a. Verify package.json update** — `git pull`, compare versions
|
|
49
|
+
- [ ] **13a. Verify QA deployment** — wait 5 min, check `<meta name="app-version">` matches
|
|
50
|
+
|
|
51
|
+
#### If feature branch:
|
|
52
|
+
|
|
53
|
+
- [ ] **9b. Check for existing PR** — `gh pr list --head <branch> --base development`
|
|
54
|
+
- [ ] **10b. Ask about PR creation** — if no PR exists and subtasks are ready
|
|
55
|
+
- [ ] **11b. Create PR** — `gh pr create` with structured summary including Angular 14 tech stack
|
|
56
|
+
|
|
57
|
+
### Final
|
|
58
|
+
|
|
59
|
+
- [ ] **12. Show final status** — complete summary of all actions taken
|
|
60
|
+
|
|
5
61
|
## Usage
|
|
6
62
|
|
|
7
63
|
```
|
|
@@ -337,19 +393,78 @@ If user chooses not to verify, end the command here.
|
|
|
337
393
|
|
|
338
394
|
**If workflow FAILED**:
|
|
339
395
|
|
|
340
|
-
|
|
341
|
-
## ❌ CI Pipeline Failed
|
|
396
|
+
1. **Get failed job logs**:
|
|
342
397
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
398
|
+
```bash
|
|
399
|
+
gh run view <run-id> --log-failed 2>&1 | tail -100
|
|
400
|
+
```
|
|
346
401
|
|
|
347
|
-
|
|
402
|
+
2. **Revert Linear task to "To Do"**:
|
|
348
403
|
|
|
349
|
-
|
|
404
|
+
If Linear task was provided and status was changed to "In Review":
|
|
350
405
|
|
|
351
|
-
|
|
352
|
-
|
|
406
|
+
- Move the parent task back to "To Do" status
|
|
407
|
+
- For tasks with subtasks: Move all subtasks that were changed to "In Review" back to "To Do"
|
|
408
|
+
|
|
409
|
+
3. **Add error comment to Linear task**:
|
|
410
|
+
|
|
411
|
+
Create a comment on the **parent task** with CI error details:
|
|
412
|
+
|
|
413
|
+
```markdown
|
|
414
|
+
## ❌ CI Build Failed
|
|
415
|
+
|
|
416
|
+
### Branch
|
|
417
|
+
|
|
418
|
+
`<branch-name>`
|
|
419
|
+
|
|
420
|
+
### Workflow
|
|
421
|
+
|
|
422
|
+
**Name**: <workflow-name>
|
|
423
|
+
**Run ID**: <run-id>
|
|
424
|
+
**URL**: https://github.com/<owner>/<repo>/actions/runs/<run-id>
|
|
425
|
+
|
|
426
|
+
### Error Details
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
<last 50-100 lines of error logs from gh run view --log-failed>
|
|
430
|
+
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### Status
|
|
434
|
+
|
|
435
|
+
Task przywrócony do "To Do" z powodu błędu CI.
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
_Raport wygenerowany przez Claude Code (flow-legacy)_
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
4. **Show error to user**:
|
|
443
|
+
|
|
444
|
+
```markdown
|
|
445
|
+
## ❌ CI Pipeline Failed
|
|
446
|
+
|
|
447
|
+
**Workflow**: <workflow-name>
|
|
448
|
+
**Run ID**: <run-id>
|
|
449
|
+
**Conclusion**: failure
|
|
450
|
+
|
|
451
|
+
### Linear Task Status
|
|
452
|
+
|
|
453
|
+
⚠️ Task [linearTaskId] przywrócony do "To Do"
|
|
454
|
+
✅ Komentarz z błędem dodany do taska
|
|
455
|
+
|
|
456
|
+
### View logs
|
|
457
|
+
|
|
458
|
+
Run `gh run view <run-id> --log-failed` to see error details.
|
|
459
|
+
|
|
460
|
+
Or visit: https://github.com/<owner>/<repo>/actions/runs/<run-id>
|
|
461
|
+
|
|
462
|
+
### Następne kroki
|
|
463
|
+
|
|
464
|
+
1. Przeanalizuj błędy w CI
|
|
465
|
+
2. Napraw problemy lokalnie
|
|
466
|
+
3. Uruchom `/push` ponownie
|
|
467
|
+
```
|
|
353
468
|
|
|
354
469
|
Stop here if workflow failed.
|
|
355
470
|
|
|
@@ -416,7 +531,8 @@ Angular 14 (legacy patterns)
|
|
|
416
531
|
7. **Document incomplete subtasks**: Always explain WHY a subtask wasn't completed
|
|
417
532
|
8. **Deployment verification is optional**: Always ask user before starting the verification process
|
|
418
533
|
9. **Read SITE_URL from .env.dev**: Use the SITE_URL variable from `.env.dev` file for QA verification
|
|
419
|
-
10. **
|
|
534
|
+
10. **Revert on CI failure**: If CI pipeline fails, move task back to "To Do" and add error comment
|
|
535
|
+
11. **Branch-specific post-push actions**:
|
|
420
536
|
- **`development` branch**: Offer deployment verification (CI monitoring + QA version check)
|
|
421
537
|
- **Feature branch (e.g., `MOB-123`)**: Check/create PR to `development` when all subtasks are ready
|
|
422
538
|
|