@smartsoft001-mobilems/claude-plugins 2.85.0 → 2.87.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/.claude-plugin/marketplace.json +2 -6
- package/package.json +2 -2
- package/plugins/mobilems/.claude-plugin/README.md +30 -0
- package/plugins/mobilems/.claude-plugin/plugin.json +5 -0
- package/plugins/mobilems/scripts/refresh-mobilems-api-spec.sh +372 -0
- package/plugins/mobilems/skills/mobilems-articles/SKILL.md +84 -0
- package/plugins/mobilems/skills/mobilems-articles/references/lib-contents.md +164 -0
- package/plugins/mobilems/skills/mobilems-articles/references/module-and-routes.md +146 -0
- package/plugins/mobilems/skills/mobilems-articles/references/shared-components.md +56 -0
- package/plugins/mobilems/skills/mobilems-articles/scripts/detect-init.sh +29 -0
- package/plugins/mobilems/skills/mobilems-articles/scripts/verify-module.sh +61 -0
- package/plugins/mobilems/skills/mobilems-docs-reader/SKILL.md +116 -0
- package/plugins/mobilems/skills/mobilems-events/SKILL.md +65 -0
- package/plugins/mobilems/skills/mobilems-events/references/lib-contents.md +212 -0
- package/plugins/mobilems/skills/mobilems-events/references/module-and-routes.md +113 -0
- package/plugins/mobilems/skills/mobilems-events/scripts/detect-init.sh +29 -0
- package/plugins/mobilems/skills/mobilems-events/scripts/verify-module.sh +59 -0
- package/plugins/mobilems/skills/mobilems-object-collections/SKILL.md +52 -0
- package/plugins/mobilems/skills/mobilems-object-collections/references/lib-contents.md +76 -0
- package/plugins/mobilems/skills/mobilems-object-collections/references/module-and-routes.md +116 -0
- package/plugins/mobilems/skills/mobilems-object-collections/references/shared-components.md +61 -0
- package/plugins/mobilems/skills/mobilems-object-collections/scripts/detect-init.sh +29 -0
- package/plugins/mobilems/skills/mobilems-object-collections/scripts/verify-module.sh +44 -0
- package/plugins/mobilems/skills/mobilems-objects/SKILL.md +52 -0
- package/plugins/mobilems/skills/mobilems-objects/references/lib-contents.md +68 -0
- package/plugins/mobilems/skills/mobilems-objects/references/module-and-routes.md +108 -0
- package/plugins/mobilems/skills/mobilems-objects/references/shared-components.md +69 -0
- package/plugins/mobilems/skills/mobilems-objects/scripts/detect-init.sh +29 -0
- package/plugins/mobilems/skills/mobilems-objects/scripts/verify-module.sh +51 -0
- package/plugins/mobilems/skills/mobilems-partners/SKILL.md +65 -0
- package/plugins/mobilems/skills/mobilems-partners/references/lib-contents.md +160 -0
- package/plugins/mobilems/skills/mobilems-partners/references/module-and-routes.md +125 -0
- package/plugins/mobilems/skills/mobilems-partners/scripts/detect-init.sh +29 -0
- package/plugins/mobilems/skills/mobilems-partners/scripts/verify-module.sh +59 -0
- package/plugins/mobilems/skills/mobilems-project-init/SKILL.md +134 -0
- package/plugins/mobilems/skills/mobilems-project-init/references/app-shell.md +107 -0
- package/plugins/mobilems/skills/mobilems-project-init/references/claude-config.md +44 -0
- package/plugins/mobilems/skills/mobilems-project-init/references/config-providers.md +203 -0
- package/plugins/mobilems/skills/mobilems-project-init/references/npm-deps.md +66 -0
- package/plugins/mobilems/skills/mobilems-project-init/references/server-env.md +89 -0
- package/plugins/mobilems/skills/mobilems-project-init/references/shared-lib.md +125 -0
- package/plugins/mobilems/skills/mobilems-project-init/references/tailwind-styles.md +106 -0
- package/plugins/mobilems/skills/mobilems-project-init/scripts/classify-shared-components.py +114 -0
- package/plugins/mobilems/skills/mobilems-project-init/scripts/detect-base.sh +49 -0
- package/plugins/mobilems/skills/mobilems-project-init/scripts/verify-init.sh +73 -0
- package/plugins/mobilems/skills/mobilems-thematic-publications/SKILL.md +60 -0
- package/plugins/mobilems/skills/mobilems-thematic-publications/references/lib-contents.md +134 -0
- package/plugins/mobilems/skills/mobilems-thematic-publications/references/module-and-routes.md +107 -0
- package/plugins/mobilems/skills/mobilems-thematic-publications/scripts/detect-init.sh +29 -0
- package/plugins/mobilems/skills/mobilems-thematic-publications/scripts/verify-module.sh +56 -0
- package/plugins/flow/.claude-plugin/README.md +0 -91
- package/plugins/flow/.claude-plugin/merge-permissions.js +0 -97
- package/plugins/flow/.claude-plugin/plugin.json +0 -5
- package/plugins/flow/.claude-plugin/settings.template.json +0 -86
- package/plugins/flow/agents/angular-component-scaffolder.md +0 -175
- package/plugins/flow/agents/angular-directive-builder.md +0 -153
- package/plugins/flow/agents/angular-guard-builder.md +0 -243
- package/plugins/flow/agents/angular-jest-test-writer.md +0 -474
- package/plugins/flow/agents/angular-pipe-builder.md +0 -169
- package/plugins/flow/agents/angular-resolver-builder.md +0 -286
- package/plugins/flow/agents/angular-service-builder.md +0 -161
- package/plugins/flow/agents/angular-signal-state-builder.md +0 -339
- package/plugins/flow/agents/angular-test-diagnostician.md +0 -279
- package/plugins/flow/agents/angular-testbed-configurator.md +0 -315
- package/plugins/flow/agents/arch-scaffolder.md +0 -278
- package/plugins/flow/agents/e2e-data-testid-injector.md +0 -197
- package/plugins/flow/agents/e2e-project-scaffolder.md +0 -194
- package/plugins/flow/agents/e2e-test-writer.md +0 -350
- package/plugins/flow/agents/shared-agent-evolver.md +0 -294
- package/plugins/flow/agents/shared-build-verifier.md +0 -160
- package/plugins/flow/agents/shared-config-updater.md +0 -310
- package/plugins/flow/agents/shared-coverage-enforcer.md +0 -184
- package/plugins/flow/agents/shared-error-handler.md +0 -217
- package/plugins/flow/agents/shared-file-creator.md +0 -344
- package/plugins/flow/agents/shared-impl-orchestrator.md +0 -312
- package/plugins/flow/agents/shared-impl-reporter.md +0 -368
- package/plugins/flow/agents/shared-impl-teammate.md +0 -201
- package/plugins/flow/agents/shared-linear-subtask-iterator.md +0 -337
- package/plugins/flow/agents/shared-logic-implementer.md +0 -243
- package/plugins/flow/agents/shared-maia-api.md +0 -26
- package/plugins/flow/agents/shared-parallelization-analyzer.md +0 -343
- package/plugins/flow/agents/shared-performance-validator.md +0 -168
- package/plugins/flow/agents/shared-plan-perspective.md +0 -269
- package/plugins/flow/agents/shared-project-standardizer.md +0 -205
- package/plugins/flow/agents/shared-report-synthesizer.md +0 -188
- package/plugins/flow/agents/shared-review-teammate.md +0 -189
- package/plugins/flow/agents/shared-security-scanner.md +0 -186
- package/plugins/flow/agents/shared-style-enforcer.md +0 -230
- package/plugins/flow/agents/shared-subtask-dependency-analyzer.md +0 -188
- package/plugins/flow/agents/shared-tdd-developer.md +0 -350
- package/plugins/flow/agents/shared-team-coordinator.md +0 -189
- package/plugins/flow/agents/shared-test-fixer.md +0 -186
- package/plugins/flow/agents/shared-test-runner.md +0 -191
- package/plugins/flow/agents/shared-ui-classifier.md +0 -263
- package/plugins/flow/agents/shared-verification-orchestrator.md +0 -194
- package/plugins/flow/agents/shared-verification-runner.md +0 -140
- package/plugins/flow/agents/ui-a11y-validator.md +0 -305
- package/plugins/flow/agents/ui-screenshot-reporter.md +0 -329
- package/plugins/flow/agents/ui-web-designer.md +0 -214
- package/plugins/flow/scripts/compute-session-tokens.sh +0 -39
- package/plugins/flow/skills/a11y-audit/SKILL.md +0 -214
- package/plugins/flow/skills/angular-patterns/SKILL.md +0 -191
- package/plugins/flow/skills/browser-capture/SKILL.md +0 -238
- package/plugins/flow/skills/commit/SKILL.md +0 -259
- package/plugins/flow/skills/debug-helper/SKILL.md +0 -375
- package/plugins/flow/skills/impl/SKILL.md +0 -992
- package/plugins/flow/skills/linear-suggestion/SKILL.md +0 -132
- package/plugins/flow/skills/maia-files-delete/SKILL.md +0 -59
- package/plugins/flow/skills/maia-files-upload/SKILL.md +0 -57
- package/plugins/flow/skills/nx-conventions/SKILL.md +0 -326
- package/plugins/flow/skills/plan/SKILL.md +0 -1033
- package/plugins/flow/skills/push/SKILL.md +0 -759
- package/plugins/flow/skills/review/SKILL.md +0 -443
- package/plugins/flow/skills/test-e2e/SKILL.md +0 -161
- package/plugins/flow/skills/test-unit/SKILL.md +0 -456
- package/plugins/flow-external/.claude-plugin/README.md +0 -152
- package/plugins/flow-external/.claude-plugin/merge-permissions.js +0 -80
- package/plugins/flow-external/.claude-plugin/plugin.json +0 -5
- package/plugins/flow-external/.claude-plugin/settings.template.json +0 -78
- package/plugins/flow-external/agents/angular-component-scaffolder.md +0 -269
- package/plugins/flow-external/agents/angular-directive-builder.md +0 -130
- package/plugins/flow-external/agents/angular-guard-builder.md +0 -70
- package/plugins/flow-external/agents/angular-pipe-builder.md +0 -82
- package/plugins/flow-external/agents/angular-resolver-builder.md +0 -74
- package/plugins/flow-external/agents/angular-service-builder.md +0 -160
- package/plugins/flow-external/agents/angular-state-builder.md +0 -254
- package/plugins/flow-external/agents/shared-build-verifier.md +0 -67
- package/plugins/flow-external/agents/shared-impl-orchestrator.md +0 -88
- package/plugins/flow-external/agents/shared-impl-reporter.md +0 -135
- package/plugins/flow-external/agents/shared-linear-subtask-iterator.md +0 -70
- package/plugins/flow-external/agents/shared-ui-classifier.md +0 -38
- package/plugins/flow-external/agents/ui-web-designer.md +0 -179
- package/plugins/flow-external/scripts/compute-session-tokens.sh +0 -39
- package/plugins/flow-external/skills/a11y-audit/SKILL.md +0 -96
- package/plugins/flow-external/skills/angular-cli-conventions/SKILL.md +0 -267
- package/plugins/flow-external/skills/angular-patterns/SKILL.md +0 -170
- package/plugins/flow-external/skills/browser-capture/SKILL.md +0 -68
- package/plugins/flow-external/skills/commit/SKILL.md +0 -114
- package/plugins/flow-external/skills/debug-helper/SKILL.md +0 -131
- package/plugins/flow-external/skills/impl/SKILL.md +0 -217
- package/plugins/flow-external/skills/linear-suggestion/SKILL.md +0 -62
- package/plugins/flow-external/skills/maia-files-delete/SKILL.md +0 -34
- package/plugins/flow-external/skills/maia-files-upload/SKILL.md +0 -41
- package/plugins/flow-external/skills/plan/SKILL.md +0 -334
- package/plugins/flow-external/skills/push/SKILL.md +0 -232
- package/plugins/flow-legacy/.claude-plugin/README.md +0 -143
- package/plugins/flow-legacy/.claude-plugin/merge-permissions.js +0 -94
- package/plugins/flow-legacy/.claude-plugin/plugin.json +0 -5
- package/plugins/flow-legacy/.claude-plugin/settings.template.json +0 -79
- package/plugins/flow-legacy/agents/angular-component-scaffolder.md +0 -323
- package/plugins/flow-legacy/agents/angular-directive-builder.md +0 -258
- package/plugins/flow-legacy/agents/angular-guard-builder.md +0 -322
- package/plugins/flow-legacy/agents/angular-pipe-builder.md +0 -227
- package/plugins/flow-legacy/agents/angular-resolver-builder.md +0 -332
- package/plugins/flow-legacy/agents/angular-service-builder.md +0 -271
- package/plugins/flow-legacy/agents/angular-state-builder.md +0 -479
- package/plugins/flow-legacy/agents/shared-impl-orchestrator.md +0 -174
- package/plugins/flow-legacy/agents/shared-impl-reporter.md +0 -232
- package/plugins/flow-legacy/agents/shared-linear-subtask-iterator.md +0 -187
- package/plugins/flow-legacy/agents/shared-tdd-developer.md +0 -306
- package/plugins/flow-legacy/agents/shared-test-runner.md +0 -131
- package/plugins/flow-legacy/agents/shared-ui-classifier.md +0 -145
- package/plugins/flow-legacy/scripts/compute-session-tokens.sh +0 -39
- package/plugins/flow-legacy/skills/a11y-audit/SKILL.md +0 -214
- package/plugins/flow-legacy/skills/angular-patterns/SKILL.md +0 -346
- package/plugins/flow-legacy/skills/browser-capture/SKILL.md +0 -238
- package/plugins/flow-legacy/skills/commit/SKILL.md +0 -215
- package/plugins/flow-legacy/skills/debug-helper/SKILL.md +0 -395
- package/plugins/flow-legacy/skills/impl/SKILL.md +0 -710
- package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +0 -132
- package/plugins/flow-legacy/skills/maia-files-delete/SKILL.md +0 -59
- package/plugins/flow-legacy/skills/maia-files-upload/SKILL.md +0 -57
- package/plugins/flow-legacy/skills/nx-conventions/SKILL.md +0 -368
- package/plugins/flow-legacy/skills/plan/SKILL.md +0 -742
- package/plugins/flow-legacy/skills/push/SKILL.md +0 -645
- package/plugins/flow-legacy/skills/test-unit/SKILL.md +0 -500
|
@@ -1,170 +0,0 @@
|
|
|
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
|
|
@@ -1,68 +0,0 @@
|
|
|
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
|
-
```
|
|
@@ -1,114 +0,0 @@
|
|
|
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__get_issue
|
|
11
|
-
- mcp__linear__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
|
-
|
|
106
|
-
- Try to detect from branch name
|
|
107
|
-
- If still not found, proceed without Linear context
|
|
108
|
-
|
|
109
|
-
## Guidelines
|
|
110
|
-
|
|
111
|
-
1. **Always show commit message for approval** before creating the commit
|
|
112
|
-
2. **Use Polish branch naming** if branch follows MOB-XXX pattern
|
|
113
|
-
3. **Include Refs:** with Linear task ID when available
|
|
114
|
-
4. **Keep subject line under 72 characters**
|
|
@@ -1,131 +0,0 @@
|
|
|
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
|
-
```
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: impl
|
|
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
|
-
allowed-tools:
|
|
5
|
-
- Bash
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
- AskUserQuestion
|
|
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
|
|
21
|
-
- mcp__playwright__browser_navigate
|
|
22
|
-
- mcp__playwright__browser_snapshot
|
|
23
|
-
- mcp__playwright__browser_take_screenshot
|
|
24
|
-
- mcp__playwright__browser_resize
|
|
25
|
-
- mcp__playwright__browser_close
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
# Implementation Skill
|
|
29
|
-
|
|
30
|
-
Implement changes based on approved plans from Linear `plan.md` attachments.
|
|
31
|
-
|
|
32
|
-
## Usage
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
/impl <linearTaskId>
|
|
36
|
-
/impl <linearTaskId> --auto # Non-interactive mode for CI / GitHub Actions
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Parameters
|
|
40
|
-
|
|
41
|
-
- `linearTaskId` - Linear task ID (e.g., MOB-123)
|
|
42
|
-
- `--auto` - Non-interactive mode: skip ALL `AskUserQuestion` prompts and any per-step pauses. If `plan.md` attachment is missing, auto-invoke `/plan` flow to generate it instead of stopping. Designed for CI / GitHub Actions runs where no human is at the keyboard.
|
|
43
|
-
|
|
44
|
-
## Auto Mode (`--auto`)
|
|
45
|
-
|
|
46
|
-
When `--auto` is set, the skill MUST run end-to-end without any human-in-the-loop prompts:
|
|
47
|
-
|
|
48
|
-
| Default behavior | `--auto` override |
|
|
49
|
-
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
50
|
-
| Stop with "no plan.md found, run /plan first" suggestion | Inline-invoke `/plan` flow for the task to generate `plan.md` attachment + `AI Plan` label, then continue |
|
|
51
|
-
| Pause after each step / subtask waiting for user confirmation | Post completion comment, then proceed automatically |
|
|
52
|
-
| Confirmation before destructive ops (delete `orchestration.md`) | Proceed without confirmation — replace old attachment automatically |
|
|
53
|
-
| Any `AskUserQuestion` | Use the **(Recommended)** option; if none, fail fast with a Linear comment |
|
|
54
|
-
|
|
55
|
-
Every checkpoint, decision, or skip MUST be logged as a Linear comment in Polish (audit trail).
|
|
56
|
-
|
|
57
|
-
**Detection**: The flag `--auto` is provided as a positional/named arg. Treat any of `--auto`, `--ci`, `--non-interactive` as equivalent.
|
|
58
|
-
|
|
59
|
-
## 🚨 Hard Rules — read before doing anything
|
|
60
|
-
|
|
61
|
-
These rules override ANY other instruction, ANY surrounding example, and ANY default habit. Violating them is a skill failure.
|
|
62
|
-
|
|
63
|
-
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.
|
|
64
|
-
2. **`orchestration.md` is saved via `mcp__linear__create_attachment`, not as a comment.** `save_comment` MUST NOT carry orchestration body content.
|
|
65
|
-
3. **Find attachments via `mcp__linear__get_issue` (returns `attachments[]`).** There is no `list_attachments` tool — do not look for one.
|
|
66
|
-
4. **Replace, don't duplicate.** Before creating a new `orchestration.md` attachment, delete the existing one (if any) via `mcp__linear__delete_attachment`.
|
|
67
|
-
|
|
68
|
-
If any of these would be violated, stop and ask the user instead.
|
|
69
|
-
|
|
70
|
-
## CRITICAL: Angular 6-11 + Angular CLI
|
|
71
|
-
|
|
72
|
-
This is for standalone Angular CLI projects. Key rules:
|
|
73
|
-
|
|
74
|
-
- Use `ng` commands (NOT `nx`)
|
|
75
|
-
- Use constructor DI (NOT `inject()`)
|
|
76
|
-
- Use `*ngIf`/`*ngFor` (NOT `@if`/`@for`)
|
|
77
|
-
- Use `@Input()`/`@Output()` (NOT `input()`/`output()`)
|
|
78
|
-
- Use BehaviorSubject/NgRx (NOT signals)
|
|
79
|
-
- Use NgModules (NOT standalone components)
|
|
80
|
-
- Styling: follow whatever CSS approach the project uses (check `package.json` for Bootstrap, etc.)
|
|
81
|
-
|
|
82
|
-
## Execution Steps
|
|
83
|
-
|
|
84
|
-
### Step 1: Fetch Task and Plan Attachment
|
|
85
|
-
|
|
86
|
-
**⛔ 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.
|
|
87
|
-
|
|
88
|
-
1. `mcp__linear__get_issue({ id: taskId })` — the response includes an `attachments[]` array.
|
|
89
|
-
2. Find the attachment where `title == "plan.md"` (or `filename == "plan.md"`) and capture its `id`. Do NOT use the `url` field for fetching.
|
|
90
|
-
3. `mcp__linear__get_attachment({ id: <attachmentId> })` — returns the markdown content directly (Linear hosts the file natively).
|
|
91
|
-
4. Parse the plan content.
|
|
92
|
-
5. If no `plan.md` attachment exists:
|
|
93
|
-
- **Default mode**: inform the user and suggest running `/plan <taskId>` first. Stop the skill.
|
|
94
|
-
- **`--auto` mode**: inline-invoke the `/plan` skill flow for this task to generate `plan.md` attachment + `AI Plan` label, then proceed with implementation. Post a Linear comment in Polish noting the plan was auto-generated.
|
|
95
|
-
|
|
96
|
-
Do NOT fall back to parsing plan content from comments, and do NOT attempt `curl`/`WebFetch` on a URL.
|
|
97
|
-
|
|
98
|
-
### Step 2: Detect Project Structure
|
|
99
|
-
|
|
100
|
-
Before implementing, detect the project layout:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
# Check if angular.json is at root or in app/ subdirectory
|
|
104
|
-
ls angular.json 2>/dev/null && echo "ROOT" || (ls app/angular.json 2>/dev/null && echo "APP_DIR")
|
|
105
|
-
|
|
106
|
-
# Check package.json for dependencies
|
|
107
|
-
cat package.json 2>/dev/null || cat app/package.json 2>/dev/null
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Key things to detect:
|
|
111
|
-
|
|
112
|
-
- Angular version (6-11)
|
|
113
|
-
- CSS framework (Bootstrap 4 / custom SCSS / none)
|
|
114
|
-
- NgRx version and patterns
|
|
115
|
-
- i18n setup (ngx-translate)
|
|
116
|
-
- Project structure (app/src/ vs src/)
|
|
117
|
-
|
|
118
|
-
### Step 3: List Subtasks
|
|
119
|
-
|
|
120
|
-
If task has subtasks:
|
|
121
|
-
|
|
122
|
-
1. Fetch subtasks using `mcp__linear__list_issues` with parent filter
|
|
123
|
-
2. Sort by priority/creation order
|
|
124
|
-
3. Process each subtask in order
|
|
125
|
-
|
|
126
|
-
### Step 3a: Save Orchestration Plan as Native Linear Attachment
|
|
127
|
-
|
|
128
|
-
**⛔ Calling `mcp__linear__save_comment` with the orchestration body is FORBIDDEN. Use `mcp__linear__create_attachment` only.** Re-read Hard Rule #2 if tempted.
|
|
129
|
-
|
|
130
|
-
Use `shared-impl-orchestrator` agent to generate a `🎭 Agent Orchestration Plan` that lists which agents run in what order (Angular 6-11 + CLI context).
|
|
131
|
-
|
|
132
|
-
Then save it as an `orchestration.md` attachment on the task (not as a comment):
|
|
133
|
-
|
|
134
|
-
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.
|
|
135
|
-
2. **Write locally**: `Write` the orchestration markdown to `/tmp/claude-plans/<taskId>-orchestration.md`.
|
|
136
|
-
3. **Base64-encode**: `b64=$(base64 -i /tmp/claude-plans/<taskId>-orchestration.md)`.
|
|
137
|
-
4. **Create Linear attachment** via `mcp__linear__create_attachment`:
|
|
138
|
-
- `issue`: the task ID
|
|
139
|
-
- `filename`: `orchestration.md`
|
|
140
|
-
- `contentType`: `text/markdown`
|
|
141
|
-
- `title`: `orchestration.md` (exact)
|
|
142
|
-
- `subtitle`: `Plan orkiestracji wygenerowany przez Claude Code (external)`
|
|
143
|
-
- `base64Content`: the base64 string from step 3
|
|
144
|
-
5. **Clean up** local `/tmp/claude-plans/<taskId>-orchestration.md` file after the attachment is created.
|
|
145
|
-
|
|
146
|
-
### Step 4: Implement Each Step
|
|
147
|
-
|
|
148
|
-
For each step in the plan:
|
|
149
|
-
|
|
150
|
-
1. **Read relevant files** - Understand existing code before modifying
|
|
151
|
-
2. **Follow existing patterns** - Match the codebase style exactly
|
|
152
|
-
3. **Create/modify files** - Implement the planned changes
|
|
153
|
-
4. **Register in modules** - Add declarations/imports to NgModules
|
|
154
|
-
5. **Update subtask status** - Mark as Done when complete
|
|
155
|
-
|
|
156
|
-
### Step 5: Build Verification
|
|
157
|
-
|
|
158
|
-
After all steps are complete:
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
# Verify build passes (adapt path based on project structure)
|
|
162
|
-
ng build --prod
|
|
163
|
-
# OR
|
|
164
|
-
cd app && ng build --prod
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Step 6: Report Results
|
|
168
|
-
|
|
169
|
-
Create a summary comment on the Linear task:
|
|
170
|
-
|
|
171
|
-
```markdown
|
|
172
|
-
## Raport Implementacji
|
|
173
|
-
|
|
174
|
-
### Zrealizowane
|
|
175
|
-
|
|
176
|
-
| Podzadanie | Tytul | Status |
|
|
177
|
-
| ---------- | ------- | ------------ |
|
|
178
|
-
| MOB-549 | [title] | Zrealizowane |
|
|
179
|
-
|
|
180
|
-
### Zmiany
|
|
181
|
-
|
|
182
|
-
| Plik | Typ | Opis |
|
|
183
|
-
| ----------------------------------------- | ------------- | ----------------- |
|
|
184
|
-
| `src/app/components/feature.component.ts` | Nowy | Komponent |
|
|
185
|
-
| `src/app/components/feature.module.ts` | Zmodyfikowany | Dodano deklaracje |
|
|
186
|
-
|
|
187
|
-
### Build
|
|
188
|
-
|
|
189
|
-
- `ng build --prod` - Sukces
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
_Raport wygenerowany przez Claude Code_
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
## Agent Selection
|
|
197
|
-
|
|
198
|
-
| Task Type | Agent |
|
|
199
|
-
| -------------- | ---------------------------------------------------- |
|
|
200
|
-
| New component | `angular-component-scaffolder` |
|
|
201
|
-
| New service | `angular-service-builder` |
|
|
202
|
-
| NgRx state | `angular-state-builder` |
|
|
203
|
-
| New directive | `angular-directive-builder` |
|
|
204
|
-
| New pipe | `angular-pipe-builder` |
|
|
205
|
-
| Guard/resolver | `angular-guard-builder` / `angular-resolver-builder` |
|
|
206
|
-
| Styling | `ui-web-designer` |
|
|
207
|
-
|
|
208
|
-
## Guidelines
|
|
209
|
-
|
|
210
|
-
1. **Always read existing code first** before making changes
|
|
211
|
-
2. **Follow the project's existing patterns** exactly
|
|
212
|
-
3. **Register everything in NgModules** - declarations, imports, exports
|
|
213
|
-
4. **Use the project's CSS approach** - detect from package.json
|
|
214
|
-
5. **Write all Linear comments in Polish**
|
|
215
|
-
6. **Verify build after implementation**
|
|
216
|
-
7. **Do NOT add tests** unless explicitly requested
|
|
217
|
-
8. **Do NOT modify deployment configuration**
|