@smartsoft001-mobilems/claude-plugins 2.76.0 → 2.78.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 (44) hide show
  1. package/package.json +1 -1
  2. package/plugins/flow/.claude-plugin/merge-permissions.js +17 -0
  3. package/plugins/flow/.claude-plugin/plugin.json +1 -1
  4. package/plugins/flow/.claude-plugin/settings.template.json +5 -0
  5. package/plugins/flow/agents/shared-impl-teammate.md +201 -0
  6. package/plugins/flow/agents/shared-linear-subtask-iterator.md +1 -1
  7. package/plugins/flow/agents/shared-plan-perspective.md +269 -0
  8. package/plugins/flow/agents/shared-report-synthesizer.md +188 -0
  9. package/plugins/flow/agents/shared-review-teammate.md +189 -0
  10. package/plugins/flow/agents/shared-subtask-dependency-analyzer.md +188 -0
  11. package/plugins/flow/agents/shared-team-coordinator.md +189 -0
  12. package/plugins/flow/skills/impl/SKILL.md +102 -1
  13. package/plugins/flow/skills/plan/SKILL.md +164 -1
  14. package/plugins/flow/skills/review/SKILL.md +443 -0
  15. package/plugins/flow-external/.claude-plugin/README.md +152 -0
  16. package/plugins/flow-external/.claude-plugin/merge-permissions.js +80 -0
  17. package/plugins/flow-external/.claude-plugin/plugin.json +5 -0
  18. package/plugins/flow-external/.claude-plugin/settings.template.json +75 -0
  19. package/plugins/flow-external/agents/angular-component-scaffolder.md +269 -0
  20. package/plugins/flow-external/agents/angular-directive-builder.md +130 -0
  21. package/plugins/flow-external/agents/angular-guard-builder.md +70 -0
  22. package/plugins/flow-external/agents/angular-pipe-builder.md +82 -0
  23. package/plugins/flow-external/agents/angular-resolver-builder.md +74 -0
  24. package/plugins/flow-external/agents/angular-service-builder.md +160 -0
  25. package/plugins/flow-external/agents/angular-state-builder.md +254 -0
  26. package/plugins/flow-external/agents/shared-build-verifier.md +67 -0
  27. package/plugins/flow-external/agents/shared-impl-orchestrator.md +88 -0
  28. package/plugins/flow-external/agents/shared-impl-reporter.md +107 -0
  29. package/plugins/flow-external/agents/shared-linear-subtask-iterator.md +70 -0
  30. package/plugins/flow-external/agents/shared-ui-classifier.md +38 -0
  31. package/plugins/flow-external/agents/ui-web-designer.md +179 -0
  32. package/plugins/flow-external/skills/a11y-audit/SKILL.md +96 -0
  33. package/plugins/flow-external/skills/angular-cli-conventions/SKILL.md +267 -0
  34. package/plugins/flow-external/skills/angular-patterns/SKILL.md +170 -0
  35. package/plugins/flow-external/skills/browser-capture/SKILL.md +68 -0
  36. package/plugins/flow-external/skills/commit/SKILL.md +113 -0
  37. package/plugins/flow-external/skills/debug-helper/SKILL.md +131 -0
  38. package/plugins/flow-external/skills/impl/SKILL.md +158 -0
  39. package/plugins/flow-external/skills/linear-suggestion/SKILL.md +62 -0
  40. package/plugins/flow-external/skills/maia-files-delete/SKILL.md +34 -0
  41. package/plugins/flow-external/skills/maia-files-upload/SKILL.md +41 -0
  42. package/plugins/flow-external/skills/plan/SKILL.md +163 -0
  43. package/plugins/flow-external/skills/push/SKILL.md +201 -0
  44. package/plugins/flow-legacy/.claude-plugin/plugin.json +1 -1
@@ -0,0 +1,170 @@
1
+ ---
2
+ name: angular-patterns
3
+ description: Angular 6-11 legacy patterns including *ngIf/*ngFor directives, constructor DI, @Input/@Output decorators, and NgRx state management
4
+ ---
5
+
6
+ # Angular 6-11 Patterns
7
+
8
+ This skill provides guidance on Angular 6-11 patterns for standalone projects.
9
+
10
+ ## CRITICAL: Use Legacy Patterns ONLY
11
+
12
+ **DO NOT use modern Angular features (Angular 14+):**
13
+
14
+ | Feature | CORRECT (Angular 6-11) | WRONG (Modern) |
15
+ |---------|------------------------|----------------|
16
+ | Control flow | `*ngIf`, `*ngFor`, `[ngSwitch]` | `@if`, `@for`, `@switch` |
17
+ | DI | Constructor injection | `inject()` |
18
+ | Inputs | `@Input()` decorator | `input()` function |
19
+ | Outputs | `@Output()` decorator | `output()` function |
20
+ | Two-way | `@Input()` + `@Output()` | `model()` |
21
+ | State | BehaviorSubject, NgRx | signals, `signal()` |
22
+ | Derived | `pipe(map())`, getters | `computed()` |
23
+ | Side effects | `subscribe()`, NgRx effects | `effect()` |
24
+ | Components | NgModule-based | standalone |
25
+
26
+ ## 1. Control Flow
27
+
28
+ ```html
29
+ <!-- *ngIf with else -->
30
+ <div *ngIf="isLoading; else content">
31
+ <app-spinner></app-spinner>
32
+ </div>
33
+ <ng-template #content>
34
+ <ul>
35
+ <li *ngFor="let item of items; trackBy: trackById">{{ item.name }}</li>
36
+ </ul>
37
+ </ng-template>
38
+ ```
39
+
40
+ ```typescript
41
+ trackById(index: number, item: Item): string {
42
+ return item.id;
43
+ }
44
+ ```
45
+
46
+ ## 2. BehaviorSubject State Management
47
+
48
+ ```typescript
49
+ @Injectable({ providedIn: 'root' })
50
+ export class StateService {
51
+ private readonly _items = new BehaviorSubject<Item[]>([]);
52
+ readonly items$ = this._items.asObservable();
53
+
54
+ readonly count$ = this._items.pipe(
55
+ map(items => items.length)
56
+ );
57
+
58
+ setItems(items: Item[]): void {
59
+ this._items.next(items);
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## 3. Constructor Injection
65
+
66
+ ```typescript
67
+ @Component({
68
+ selector: 'app-feature',
69
+ templateUrl: './feature.component.html',
70
+ })
71
+ export class FeatureComponent implements OnInit, OnDestroy {
72
+ private readonly destroy$ = new Subject<void>();
73
+
74
+ constructor(
75
+ private readonly service: FeatureService,
76
+ private readonly router: Router
77
+ ) {}
78
+
79
+ ngOnInit(): void {
80
+ this.service.items$
81
+ .pipe(takeUntil(this.destroy$))
82
+ .subscribe(items => this.items = items);
83
+ }
84
+
85
+ ngOnDestroy(): void {
86
+ this.destroy$.next();
87
+ this.destroy$.complete();
88
+ }
89
+ }
90
+ ```
91
+
92
+ ## 4. Input/Output Decorators
93
+
94
+ ```typescript
95
+ @Component({
96
+ selector: 'app-card',
97
+ templateUrl: './card.component.html',
98
+ })
99
+ export class CardComponent {
100
+ @Input() item!: Item;
101
+ @Input() showActions = true;
102
+ @Output() selected = new EventEmitter<Item>();
103
+
104
+ // Two-way binding
105
+ @Input() value = '';
106
+ @Output() valueChange = new EventEmitter<string>();
107
+ }
108
+ ```
109
+
110
+ ## 5. NgModule
111
+
112
+ ```typescript
113
+ @NgModule({
114
+ declarations: [FeatureComponent, CardComponent],
115
+ imports: [CommonModule, TranslateModule, NgbModule],
116
+ exports: [FeatureComponent],
117
+ })
118
+ export class FeatureModule {}
119
+ ```
120
+
121
+ ## 6. NgRx Patterns
122
+
123
+ ```typescript
124
+ // Actions
125
+ export const loadItems = createAction('[Items] Load');
126
+ export const loadItemsSuccess = createAction('[Items] Load Success', props<{ items: Item[] }>());
127
+
128
+ // Reducer
129
+ export const reducer = createReducer(
130
+ initialState,
131
+ on(loadItems, state => ({ ...state, loading: true })),
132
+ on(loadItemsSuccess, (state, { items }) => ({ ...state, items, loading: false }))
133
+ );
134
+
135
+ // Effects
136
+ @Injectable()
137
+ export class ItemEffects {
138
+ constructor(private actions$: Actions, private service: ItemService) {}
139
+
140
+ load$ = createEffect(() => this.actions$.pipe(
141
+ ofType(loadItems),
142
+ mergeMap(() => this.service.getAll().pipe(
143
+ map(items => loadItemsSuccess({ items })),
144
+ catchError(error => of(loadItemsFailure({ error: error.message })))
145
+ ))
146
+ ));
147
+ }
148
+ ```
149
+
150
+ ## 7. Async Pipe
151
+
152
+ ```html
153
+ <div *ngIf="isLoading$ | async; else content">Loading...</div>
154
+ <ng-template #content>
155
+ <li *ngFor="let item of items$ | async; trackBy: trackById">
156
+ {{ item.name }}
157
+ </li>
158
+ </ng-template>
159
+ ```
160
+
161
+ ## 8. PR Checklist
162
+
163
+ - [ ] Using `*ngIf`/`*ngFor` (NOT `@if`/`@for`)
164
+ - [ ] Every `*ngFor` has `trackBy`
165
+ - [ ] Using constructor DI (NOT `inject()`)
166
+ - [ ] Using `@Input()`/`@Output()` (NOT `input()`/`output()`)
167
+ - [ ] Using BehaviorSubject/NgRx for state (NOT signals)
168
+ - [ ] Component declared in NgModule
169
+ - [ ] Using `async` pipe in templates
170
+ - [ ] `OnDestroy` with `takeUntil` pattern
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: browser-capture
3
+ description: Manage browser sessions and capture screenshots. Ensures dev server is running, navigates to pages, and captures responsive screenshots.
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - Glob
8
+ - mcp__playwright__browser_navigate
9
+ - mcp__playwright__browser_snapshot
10
+ - mcp__playwright__browser_take_screenshot
11
+ - mcp__playwright__browser_resize
12
+ - mcp__playwright__browser_close
13
+ ---
14
+
15
+ # Browser Capture Skill
16
+
17
+ Capture screenshots of web pages at multiple viewport sizes.
18
+
19
+ ## Server Management
20
+
21
+ ### Detect Port
22
+
23
+ ```bash
24
+ # Check angular.json location and read port
25
+ if [ -f "angular.json" ]; then
26
+ grep -o '"port":[^,}]*' angular.json | head -1
27
+ elif [ -f "app/angular.json" ]; then
28
+ grep -o '"port":[^,}]*' app/angular.json | head -1
29
+ fi
30
+ # Default: 4200
31
+ ```
32
+
33
+ ### Start Server if Needed
34
+
35
+ ```bash
36
+ lsof -i :4200 -t || (npm start & for i in {1..15}; do curl -s http://localhost:4200 > /dev/null && break; sleep 2; done)
37
+ ```
38
+
39
+ ## Capture Process
40
+
41
+ 1. Ensure server is running
42
+ 2. Navigate to URL with `mcp__playwright__browser_navigate`
43
+ 3. For each viewport:
44
+ - `mcp__playwright__browser_resize` → set dimensions
45
+ - `mcp__playwright__browser_take_screenshot` → capture
46
+
47
+ ### Viewport Sizes
48
+
49
+ | Name | Width | Height |
50
+ |------|-------|--------|
51
+ | Desktop | 1920 | 1080 |
52
+ | Tablet | 768 | 1024 |
53
+ | Mobile | 375 | 667 |
54
+
55
+ ## Upload
56
+
57
+ Delegate to `maia-api` agent for upload to temporary storage.
58
+
59
+ ## Output
60
+
61
+ ```json
62
+ {
63
+ "screenshots": [
64
+ { "viewport": "desktop", "url": "https://maia-ai-api.smartsoft.biz.pl/files/abc123" },
65
+ { "viewport": "mobile", "url": "https://maia-ai-api.smartsoft.biz.pl/files/def456" }
66
+ ]
67
+ }
68
+ ```
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: commit
3
+ description: Create a conventional commit message based on Linear task and staged changes. Fetches task details, analyzes changes, and generates commit message.
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
15
+
16
+ Create a conventional commit message based on Linear task and staged changes.
17
+
18
+ ## Usage
19
+
20
+ ```
21
+ /commit [linearTaskId]
22
+ ```
23
+
24
+ ## Parameters
25
+
26
+ - `linearTaskId` - Linear task ID (e.g., MOB-123)
27
+
28
+ ## Execution Checklist
29
+
30
+ - [ ] **1. Fetch Linear task** — get title, description, labels/type from MCP Linear server
31
+ - [ ] **2. Analyze staged changes** — run `git diff --cached` to understand scope
32
+ - [ ] **3. Verify completeness** — compare task requirements with staged changes; if incomplete, ask user whether to continue or stop
33
+ - [ ] **4. Determine commit type and scope** — based on changes and task type
34
+ - [ ] **5. Generate commit message** — draft `<type>(<scope>): <subject>` with body and `Refs: <linearTaskId>`
35
+ - [ ] **6. Show message to user** — present commit message for approval before proceeding
36
+ - [ ] **7. Create commit** — execute `git commit` with the approved message
37
+
38
+ ## Commit Message Format
39
+
40
+ ```
41
+ <type>(<scope>): <subject>
42
+
43
+ <body>
44
+
45
+ Refs: <linearTaskId>
46
+ ```
47
+
48
+ ### Type
49
+
50
+ | Type | Use when |
51
+ |------|----------|
52
+ | `feat` | New feature or functionality |
53
+ | `fix` | Bug fix |
54
+ | `refactor` | Code restructuring without behavior change |
55
+ | `style` | Styling/CSS changes only |
56
+ | `docs` | Documentation changes |
57
+ | `chore` | Maintenance, config, dependencies |
58
+ | `perf` | Performance improvements |
59
+
60
+ ### Scope
61
+
62
+ Determine scope from the changed files and project structure. Common scopes for external projects:
63
+
64
+ - Component name (e.g., `gallery`, `articles`, `navigation`)
65
+ - Feature area (e.g., `wcag`, `i18n`, `auth`)
66
+ - Infrastructure (e.g., `config`, `docker`)
67
+
68
+ ### Subject
69
+
70
+ - Imperative mood ("add feature" not "added feature")
71
+ - Lowercase first letter
72
+ - No period at end
73
+ - Max 72 characters
74
+
75
+ ### Body
76
+
77
+ - Explain WHAT changed and WHY
78
+ - Reference Linear task
79
+ - List affected files if helpful
80
+
81
+ ## Example
82
+
83
+ ```
84
+ feat(gallery): add lightbox for exhibition photos
85
+
86
+ Add lightbox modal for viewing gallery photos in full screen.
87
+ Uses ng-bootstrap modal with keyboard navigation support.
88
+
89
+ Refs: MOB-548
90
+ ```
91
+
92
+ ## Error Handling
93
+
94
+ ### No Staged Changes
95
+
96
+ ```markdown
97
+ ## No staged changes
98
+
99
+ Run `git add` to stage your changes before committing.
100
+ ```
101
+
102
+ ### Linear Task Not Found
103
+
104
+ If linearTaskId is not provided or task not found:
105
+ - Try to detect from branch name
106
+ - If still not found, proceed without Linear context
107
+
108
+ ## Guidelines
109
+
110
+ 1. **Always show commit message for approval** before creating the commit
111
+ 2. **Use Polish branch naming** if branch follows MOB-XXX pattern
112
+ 3. **Include Refs:** with Linear task ID when available
113
+ 4. **Keep subject line under 72 characters**
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: debug-helper
3
+ description: Debugging workflows for Angular 6-11 standalone projects
4
+ ---
5
+
6
+ # Debug Helper (Angular 6-11)
7
+
8
+ Debugging workflows for standalone Angular CLI projects.
9
+
10
+ ## 1. Angular Debugging
11
+
12
+ ### Component Not Rendering
13
+
14
+ 1. Check selector matches template usage
15
+ 2. Check NgModule declarations - is component declared?
16
+ 3. Check NgModule exports - is it exported for external use?
17
+ 4. Check NgModule imports - is the feature module imported?
18
+
19
+ ### BehaviorSubject Issues
20
+
21
+ ```typescript
22
+ // Wrong: mutating array (won't trigger update)
23
+ const items = this._items.getValue();
24
+ items.push(newItem);
25
+ this._items.next(items);
26
+
27
+ // Correct: create new reference
28
+ this._items.next([...this._items.getValue(), newItem]);
29
+ ```
30
+
31
+ ### Memory Leaks
32
+
33
+ ```typescript
34
+ // Always use takeUntil pattern
35
+ private readonly destroy$ = new Subject<void>();
36
+
37
+ ngOnInit(): void {
38
+ this.service.data$
39
+ .pipe(takeUntil(this.destroy$))
40
+ .subscribe(data => this.data = data);
41
+ }
42
+
43
+ ngOnDestroy(): void {
44
+ this.destroy$.next();
45
+ this.destroy$.complete();
46
+ }
47
+ ```
48
+
49
+ ### Change Detection
50
+
51
+ ```typescript
52
+ constructor(private cdr: ChangeDetectorRef) {}
53
+
54
+ // Force detection
55
+ this.cdr.detectChanges();
56
+
57
+ // Mark for check (OnPush)
58
+ this.cdr.markForCheck();
59
+ ```
60
+
61
+ ### Template Debugging
62
+
63
+ ```html
64
+ <pre>{{ data | json }}</pre>
65
+ <p>isLoading: {{ isLoading }}</p>
66
+ ```
67
+
68
+ ## 2. NgRx Debugging
69
+
70
+ ### State Not Updating
71
+
72
+ 1. Verify action is dispatched: add `tap(action => console.log(action))` to effects
73
+ 2. Verify reducer handles the action
74
+ 3. Verify selector reads correct state slice
75
+ 4. Check Redux DevTools (install Chrome extension)
76
+
77
+ ### Effects Not Running
78
+
79
+ 1. Check effect is registered in `EffectsModule.forFeature([Effects])`
80
+ 2. Check `ofType` matches dispatched action
81
+ 3. Check effect observable completes (use `mergeMap` not `switchMap` for parallel)
82
+
83
+ ## 3. Common Errors
84
+
85
+ ### "Cannot read property of undefined"
86
+
87
+ ```typescript
88
+ // Use optional chaining
89
+ const name = user?.profile?.name ?? 'Unknown';
90
+
91
+ // In templates
92
+ {{ user?.profile?.name }}
93
+ ```
94
+
95
+ ### "Expression has changed after it was checked"
96
+
97
+ ```typescript
98
+ ngAfterViewInit(): void {
99
+ setTimeout(() => this.value = newValue);
100
+ }
101
+ ```
102
+
103
+ ### "NullInjectorError: No provider for X"
104
+
105
+ ```typescript
106
+ // Add to module providers or use providedIn: 'root'
107
+ @Injectable({ providedIn: 'root' })
108
+ export class MyService {}
109
+ ```
110
+
111
+ ### "Circular dependency detected"
112
+
113
+ ```typescript
114
+ // Use forwardRef
115
+ @Inject(forwardRef(() => ServiceB))
116
+ private serviceB: ServiceB
117
+ ```
118
+
119
+ ## 4. Build Errors
120
+
121
+ ```bash
122
+ # Check TypeScript errors
123
+ npx tsc --noEmit
124
+
125
+ # Check Angular build
126
+ ng build --prod 2>&1 | head -50
127
+
128
+ # Common: AOT compilation errors
129
+ # - Private members used in templates (make them public or use getters)
130
+ # - Function calls in templates (extract to component methods)
131
+ ```
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: impl
3
+ description: Implement plans from Linear task comments. Reads approved implementation plan, orchestrates agents, and executes changes step by step.
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
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
18
+ - mcp__playwright__browser_navigate
19
+ - mcp__playwright__browser_snapshot
20
+ - mcp__playwright__browser_take_screenshot
21
+ - mcp__playwright__browser_resize
22
+ - mcp__playwright__browser_close
23
+ ---
24
+
25
+ # Implementation Skill
26
+
27
+ Implement changes based on approved plans from Linear task comments.
28
+
29
+ ## Usage
30
+
31
+ ```
32
+ /impl <linearTaskId>
33
+ ```
34
+
35
+ ## Parameters
36
+
37
+ - `linearTaskId` - Linear task ID (e.g., MOB-123)
38
+
39
+ ## CRITICAL: Angular 6-11 + Angular CLI
40
+
41
+ This is for standalone Angular CLI projects. Key rules:
42
+
43
+ - Use `ng` commands (NOT `nx`)
44
+ - Use constructor DI (NOT `inject()`)
45
+ - Use `*ngIf`/`*ngFor` (NOT `@if`/`@for`)
46
+ - Use `@Input()`/`@Output()` (NOT `input()`/`output()`)
47
+ - Use BehaviorSubject/NgRx (NOT signals)
48
+ - Use NgModules (NOT standalone components)
49
+ - Styling: follow whatever CSS approach the project uses (check `package.json` for Bootstrap, etc.)
50
+
51
+ ## Execution Steps
52
+
53
+ ### Step 1: Fetch Task and Plan
54
+
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
59
+
60
+ ### Step 2: Detect Project Structure
61
+
62
+ Before implementing, detect the project layout:
63
+
64
+ ```bash
65
+ # Check if angular.json is at root or in app/ subdirectory
66
+ ls angular.json 2>/dev/null && echo "ROOT" || (ls app/angular.json 2>/dev/null && echo "APP_DIR")
67
+
68
+ # Check package.json for dependencies
69
+ cat package.json 2>/dev/null || cat app/package.json 2>/dev/null
70
+ ```
71
+
72
+ Key things to detect:
73
+ - Angular version (6-11)
74
+ - CSS framework (Bootstrap 4 / custom SCSS / none)
75
+ - NgRx version and patterns
76
+ - i18n setup (ngx-translate)
77
+ - Project structure (app/src/ vs src/)
78
+
79
+ ### Step 3: List Subtasks
80
+
81
+ If task has subtasks:
82
+
83
+ 1. Fetch subtasks using `mcp__linear-server__list_issues` with parent filter
84
+ 2. Sort by priority/creation order
85
+ 3. Process each subtask in order
86
+
87
+ ### Step 4: Implement Each Step
88
+
89
+ For each step in the plan:
90
+
91
+ 1. **Read relevant files** - Understand existing code before modifying
92
+ 2. **Follow existing patterns** - Match the codebase style exactly
93
+ 3. **Create/modify files** - Implement the planned changes
94
+ 4. **Register in modules** - Add declarations/imports to NgModules
95
+ 5. **Update subtask status** - Mark as Done when complete
96
+
97
+ ### Step 5: Build Verification
98
+
99
+ After all steps are complete:
100
+
101
+ ```bash
102
+ # Verify build passes (adapt path based on project structure)
103
+ ng build --prod
104
+ # OR
105
+ cd app && ng build --prod
106
+ ```
107
+
108
+ ### Step 6: Report Results
109
+
110
+ Create a summary comment on the Linear task:
111
+
112
+ ```markdown
113
+ ## Raport Implementacji
114
+
115
+ ### Zrealizowane
116
+
117
+ | Podzadanie | Tytul | Status |
118
+ |-----------|-------|--------|
119
+ | MOB-549 | [title] | Zrealizowane |
120
+
121
+ ### Zmiany
122
+
123
+ | Plik | Typ | Opis |
124
+ |------|-----|------|
125
+ | `src/app/components/feature.component.ts` | Nowy | Komponent |
126
+ | `src/app/components/feature.module.ts` | Zmodyfikowany | Dodano deklaracje |
127
+
128
+ ### Build
129
+
130
+ - `ng build --prod` - Sukces
131
+
132
+ ---
133
+
134
+ _Raport wygenerowany przez Claude Code_
135
+ ```
136
+
137
+ ## Agent Selection
138
+
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` |
146
+ | Guard/resolver | `angular-guard-builder` / `angular-resolver-builder` |
147
+ | Styling | `ui-web-designer` |
148
+
149
+ ## Guidelines
150
+
151
+ 1. **Always read existing code first** before making changes
152
+ 2. **Follow the project's existing patterns** exactly
153
+ 3. **Register everything in NgModules** - declarations, imports, exports
154
+ 4. **Use the project's CSS approach** - detect from package.json
155
+ 5. **Write all Linear comments in Polish**
156
+ 6. **Verify build after implementation**
157
+ 7. **Do NOT add tests** unless explicitly requested
158
+ 8. **Do NOT modify deployment configuration**
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: linear-suggestion
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
5
+ ---
6
+
7
+ # Linear Suggestion
8
+
9
+ Create a Linear issue in the **MobileMS Framework** project containing a suggestion for improving agent definitions or skills.
10
+
11
+ ## When to Use
12
+
13
+ - When an automated agent identifies a recurring pattern that could improve an agent or skill
14
+ - When proposing orchestrator rule changes
15
+ - When any non-interactive process needs to suggest framework improvements
16
+
17
+ ## Input Parameters
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` |
26
+
27
+ ## Issue Format
28
+
29
+ ### Title
30
+
31
+ ```
32
+ [Agent Suggestion] {title}
33
+ ```
34
+
35
+ ### Description
36
+
37
+ ```markdown
38
+ ## Agent Improvement Suggestion
39
+
40
+ **Source agent**: `{source}`
41
+ **Category**: {category}
42
+ **Target file**: `{targetFile}`
43
+
44
+ ---
45
+
46
+ {description}
47
+
48
+ ---
49
+
50
+ _This issue was automatically created by `{source}` via the `linear-suggestion` skill._
51
+ ```
52
+
53
+ ## Process
54
+
55
+ 1. Format the issue title with `[Agent Suggestion]` prefix
56
+ 2. Build the description using the template
57
+ 3. Create the issue using MCP Linear server
58
+ 4. Return the issue ID and URL
59
+
60
+ ## Error Handling
61
+
62
+ If creation fails, log error silently and do NOT block the parent workflow.