@smartsoft001/pro-claude-plugins 0.2.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 +26 -0
- package/README.md +56 -0
- package/package.json +14 -0
- package/plugins/flow/.claude-plugin/README.md +91 -0
- package/plugins/flow/.claude-plugin/merge-permissions.js +115 -0
- package/plugins/flow/.claude-plugin/plugin.json +5 -0
- package/plugins/flow/.claude-plugin/settings.template.json +86 -0
- package/plugins/flow/agents/angular-component-scaffolder.md +176 -0
- package/plugins/flow/agents/angular-directive-builder.md +154 -0
- package/plugins/flow/agents/angular-guard-builder.md +244 -0
- package/plugins/flow/agents/angular-jest-test-writer.md +475 -0
- package/plugins/flow/agents/angular-pipe-builder.md +170 -0
- package/plugins/flow/agents/angular-resolver-builder.md +287 -0
- package/plugins/flow/agents/angular-service-builder.md +162 -0
- package/plugins/flow/agents/angular-signal-state-builder.md +340 -0
- package/plugins/flow/agents/angular-test-diagnostician.md +279 -0
- package/plugins/flow/agents/angular-testbed-configurator.md +315 -0
- package/plugins/flow/agents/arch-scaffolder.md +278 -0
- package/plugins/flow/agents/e2e-data-testid-injector.md +195 -0
- package/plugins/flow/agents/e2e-project-scaffolder.md +194 -0
- package/plugins/flow/agents/e2e-test-writer.md +357 -0
- package/plugins/flow/agents/shared-agent-evolver.md +294 -0
- package/plugins/flow/agents/shared-build-verifier.md +160 -0
- package/plugins/flow/agents/shared-config-updater.md +310 -0
- package/plugins/flow/agents/shared-coverage-enforcer.md +184 -0
- package/plugins/flow/agents/shared-error-handler.md +217 -0
- package/plugins/flow/agents/shared-file-creator.md +344 -0
- package/plugins/flow/agents/shared-impl-orchestrator.md +312 -0
- package/plugins/flow/agents/shared-impl-reporter.md +368 -0
- package/plugins/flow/agents/shared-impl-teammate.md +201 -0
- package/plugins/flow/agents/shared-linear-subtask-iterator.md +337 -0
- package/plugins/flow/agents/shared-logic-implementer.md +244 -0
- package/plugins/flow/agents/shared-maia-api.md +26 -0
- package/plugins/flow/agents/shared-parallelization-analyzer.md +343 -0
- package/plugins/flow/agents/shared-performance-validator.md +168 -0
- package/plugins/flow/agents/shared-plan-perspective.md +271 -0
- package/plugins/flow/agents/shared-project-standardizer.md +205 -0
- package/plugins/flow/agents/shared-report-synthesizer.md +188 -0
- package/plugins/flow/agents/shared-review-teammate.md +189 -0
- package/plugins/flow/agents/shared-security-scanner.md +186 -0
- package/plugins/flow/agents/shared-style-enforcer.md +230 -0
- package/plugins/flow/agents/shared-subtask-dependency-analyzer.md +189 -0
- package/plugins/flow/agents/shared-tdd-developer.md +350 -0
- package/plugins/flow/agents/shared-team-coordinator.md +192 -0
- package/plugins/flow/agents/shared-test-fixer.md +186 -0
- package/plugins/flow/agents/shared-test-runner.md +191 -0
- package/plugins/flow/agents/shared-ui-classifier.md +263 -0
- package/plugins/flow/agents/shared-verification-orchestrator.md +194 -0
- package/plugins/flow/agents/shared-verification-runner.md +140 -0
- package/plugins/flow/agents/ui-a11y-validator.md +305 -0
- package/plugins/flow/agents/ui-screenshot-reporter.md +329 -0
- package/plugins/flow/agents/ui-web-designer.md +214 -0
- package/plugins/flow/scripts/compute-session-tokens.sh +39 -0
- package/plugins/flow/skills/a11y-audit/SKILL.md +214 -0
- package/plugins/flow/skills/angular-patterns/SKILL.md +191 -0
- package/plugins/flow/skills/browser-capture/SKILL.md +238 -0
- package/plugins/flow/skills/commit/SKILL.md +259 -0
- package/plugins/flow/skills/debug-helper/SKILL.md +375 -0
- package/plugins/flow/skills/impl/SKILL.md +992 -0
- package/plugins/flow/skills/karpathy-guidelines/SKILL.md +72 -0
- package/plugins/flow/skills/linear-suggestion/SKILL.md +132 -0
- package/plugins/flow/skills/maia-files-delete/SKILL.md +59 -0
- package/plugins/flow/skills/maia-files-upload/SKILL.md +57 -0
- package/plugins/flow/skills/nx-conventions/SKILL.md +326 -0
- package/plugins/flow/skills/plan/SKILL.md +1033 -0
- package/plugins/flow/skills/push/SKILL.md +759 -0
- package/plugins/flow/skills/review/SKILL.md +443 -0
- package/plugins/flow/skills/test-e2e/SKILL.md +164 -0
- package/plugins/flow/skills/test-unit/SKILL.md +456 -0
- package/plugins/flow-external/.claude-plugin/README.md +146 -0
- package/plugins/flow-external/.claude-plugin/merge-permissions.js +94 -0
- package/plugins/flow-external/.claude-plugin/plugin.json +5 -0
- package/plugins/flow-external/.claude-plugin/settings.template.json +78 -0
- package/plugins/flow-external/agents/angular-component-scaffolder.md +271 -0
- package/plugins/flow-external/agents/angular-directive-builder.md +134 -0
- package/plugins/flow-external/agents/angular-guard-builder.md +73 -0
- package/plugins/flow-external/agents/angular-pipe-builder.md +90 -0
- package/plugins/flow-external/agents/angular-resolver-builder.md +79 -0
- package/plugins/flow-external/agents/angular-service-builder.md +168 -0
- package/plugins/flow-external/agents/angular-state-builder.md +263 -0
- package/plugins/flow-external/agents/shared-build-verifier.md +67 -0
- package/plugins/flow-external/agents/shared-impl-orchestrator.md +90 -0
- package/plugins/flow-external/agents/shared-impl-reporter.md +135 -0
- package/plugins/flow-external/agents/shared-linear-subtask-iterator.md +70 -0
- package/plugins/flow-external/agents/shared-ui-classifier.md +38 -0
- package/plugins/flow-external/agents/ui-web-designer.md +203 -0
- package/plugins/flow-external/scripts/compute-session-tokens.sh +39 -0
- package/plugins/flow-external/skills/a11y-audit/SKILL.md +97 -0
- package/plugins/flow-external/skills/angular-cli-conventions/SKILL.md +268 -0
- package/plugins/flow-external/skills/angular-patterns/SKILL.md +182 -0
- package/plugins/flow-external/skills/browser-capture/SKILL.md +74 -0
- package/plugins/flow-external/skills/commit/SKILL.md +114 -0
- package/plugins/flow-external/skills/debug-helper/SKILL.md +135 -0
- package/plugins/flow-external/skills/impl/SKILL.md +218 -0
- package/plugins/flow-external/skills/karpathy-guidelines/SKILL.md +72 -0
- package/plugins/flow-external/skills/linear-suggestion/SKILL.md +62 -0
- package/plugins/flow-external/skills/maia-files-delete/SKILL.md +34 -0
- package/plugins/flow-external/skills/maia-files-upload/SKILL.md +41 -0
- package/plugins/flow-external/skills/plan/SKILL.md +334 -0
- package/plugins/flow-external/skills/push/SKILL.md +232 -0
- package/plugins/flow-legacy/.claude-plugin/README.md +143 -0
- package/plugins/flow-legacy/.claude-plugin/merge-permissions.js +94 -0
- package/plugins/flow-legacy/.claude-plugin/plugin.json +5 -0
- package/plugins/flow-legacy/.claude-plugin/settings.template.json +79 -0
- package/plugins/flow-legacy/agents/angular-component-scaffolder.md +327 -0
- package/plugins/flow-legacy/agents/angular-directive-builder.md +253 -0
- package/plugins/flow-legacy/agents/angular-guard-builder.md +326 -0
- package/plugins/flow-legacy/agents/angular-pipe-builder.md +238 -0
- package/plugins/flow-legacy/agents/angular-resolver-builder.md +339 -0
- package/plugins/flow-legacy/agents/angular-service-builder.md +271 -0
- package/plugins/flow-legacy/agents/angular-state-builder.md +480 -0
- package/plugins/flow-legacy/agents/shared-impl-orchestrator.md +174 -0
- package/plugins/flow-legacy/agents/shared-impl-reporter.md +232 -0
- package/plugins/flow-legacy/agents/shared-linear-subtask-iterator.md +198 -0
- package/plugins/flow-legacy/agents/shared-tdd-developer.md +307 -0
- package/plugins/flow-legacy/agents/shared-test-runner.md +133 -0
- package/plugins/flow-legacy/agents/shared-ui-classifier.md +145 -0
- package/plugins/flow-legacy/scripts/compute-session-tokens.sh +39 -0
- package/plugins/flow-legacy/skills/a11y-audit/SKILL.md +214 -0
- package/plugins/flow-legacy/skills/angular-patterns/SKILL.md +346 -0
- package/plugins/flow-legacy/skills/browser-capture/SKILL.md +238 -0
- package/plugins/flow-legacy/skills/commit/SKILL.md +215 -0
- package/plugins/flow-legacy/skills/debug-helper/SKILL.md +395 -0
- package/plugins/flow-legacy/skills/impl/SKILL.md +710 -0
- package/plugins/flow-legacy/skills/karpathy-guidelines/SKILL.md +72 -0
- package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +132 -0
- package/plugins/flow-legacy/skills/maia-files-delete/SKILL.md +59 -0
- package/plugins/flow-legacy/skills/maia-files-upload/SKILL.md +57 -0
- package/plugins/flow-legacy/skills/nx-conventions/SKILL.md +368 -0
- package/plugins/flow-legacy/skills/plan/SKILL.md +742 -0
- package/plugins/flow-legacy/skills/push/SKILL.md +645 -0
- package/plugins/flow-legacy/skills/test-unit/SKILL.md +500 -0
- package/plugins/smart-pro/.claude-plugin/README.md +115 -0
- package/plugins/smart-pro/.claude-plugin/merge-permissions.js +129 -0
- package/plugins/smart-pro/.claude-plugin/plugin.json +5 -0
- package/plugins/smart-pro/.claude-plugin/settings.template.json +94 -0
- package/plugins/smart-pro/agents/angular-components/AGENT.md +214 -0
- package/plugins/smart-pro/hooks/CONFIG.md +198 -0
- package/plugins/smart-pro/hooks/README.md +139 -0
- package/plugins/smart-pro/hooks/audit_logger.py +107 -0
- package/plugins/smart-pro/hooks/auto_format.sh +11 -0
- package/plugins/smart-pro/hooks/hooks.json +79 -0
- package/plugins/smart-pro/hooks/safety_validator.py +129 -0
- package/plugins/smart-pro/hooks/sensitive_file_blocker.py +58 -0
- package/plugins/smart-pro/hooks/skill_validator.py +220 -0
- package/plugins/smart-pro/skills/angular-components-action-panel/SKILL.md +159 -0
- package/plugins/smart-pro/skills/angular-components-avatar/SKILL.md +142 -0
- package/plugins/smart-pro/skills/angular-components-badge/SKILL.md +110 -0
- package/plugins/smart-pro/skills/angular-components-breadcrumbs/SKILL.md +91 -0
- package/plugins/smart-pro/skills/angular-components-button/SKILL.md +146 -0
- package/plugins/smart-pro/skills/angular-components-button-group/SKILL.md +121 -0
- package/plugins/smart-pro/skills/angular-components-calendar/SKILL.md +78 -0
- package/plugins/smart-pro/skills/angular-components-card/SKILL.md +110 -0
- package/plugins/smart-pro/skills/angular-components-card-heading/SKILL.md +105 -0
- package/plugins/smart-pro/skills/angular-components-command-palette/SKILL.md +168 -0
- package/plugins/smart-pro/skills/angular-components-container/SKILL.md +93 -0
- package/plugins/smart-pro/skills/angular-components-description-list/SKILL.md +102 -0
- package/plugins/smart-pro/skills/angular-components-details/SKILL.md +70 -0
- package/plugins/smart-pro/skills/angular-components-divider/SKILL.md +110 -0
- package/plugins/smart-pro/skills/angular-components-drawer/SKILL.md +136 -0
- package/plugins/smart-pro/skills/angular-components-dropdown/SKILL.md +131 -0
- package/plugins/smart-pro/skills/angular-components-empty-state/SKILL.md +103 -0
- package/plugins/smart-pro/skills/angular-components-feed/SKILL.md +110 -0
- package/plugins/smart-pro/skills/angular-components-form/SKILL.md +77 -0
- package/plugins/smart-pro/skills/angular-components-grid-list/SKILL.md +91 -0
- package/plugins/smart-pro/skills/angular-components-input/SKILL.md +118 -0
- package/plugins/smart-pro/skills/angular-components-list/SKILL.md +75 -0
- package/plugins/smart-pro/skills/angular-components-list-container/SKILL.md +106 -0
- package/plugins/smart-pro/skills/angular-components-media-object/SKILL.md +133 -0
- package/plugins/smart-pro/skills/angular-components-modal/SKILL.md +159 -0
- package/plugins/smart-pro/skills/angular-components-multi-column-layout/SKILL.md +84 -0
- package/plugins/smart-pro/skills/angular-components-navbar/SKILL.md +93 -0
- package/plugins/smart-pro/skills/angular-components-notification/SKILL.md +147 -0
- package/plugins/smart-pro/skills/angular-components-page/SKILL.md +162 -0
- package/plugins/smart-pro/skills/angular-components-page-heading/SKILL.md +96 -0
- package/plugins/smart-pro/skills/angular-components-paging/SKILL.md +86 -0
- package/plugins/smart-pro/skills/angular-components-progress-bars/SKILL.md +94 -0
- package/plugins/smart-pro/skills/angular-components-searchbar/SKILL.md +113 -0
- package/plugins/smart-pro/skills/angular-components-section-heading/SKILL.md +156 -0
- package/plugins/smart-pro/skills/angular-components-select-menu/SKILL.md +101 -0
- package/plugins/smart-pro/skills/angular-components-sidebar-layout/SKILL.md +121 -0
- package/plugins/smart-pro/skills/angular-components-sidebar-navigation/SKILL.md +80 -0
- package/plugins/smart-pro/skills/angular-components-sign-in-form/SKILL.md +91 -0
- package/plugins/smart-pro/skills/angular-components-stacked-layout/SKILL.md +114 -0
- package/plugins/smart-pro/skills/angular-components-stacked-list/SKILL.md +93 -0
- package/plugins/smart-pro/skills/angular-components-stats/SKILL.md +87 -0
- package/plugins/smart-pro/skills/angular-components-table/SKILL.md +98 -0
- package/plugins/smart-pro/skills/angular-components-tabs/SKILL.md +99 -0
- package/plugins/smart-pro/skills/angular-components-textarea/SKILL.md +111 -0
- package/plugins/smart-pro/skills/angular-components-toggle/SKILL.md +109 -0
- package/plugins/smart-pro/skills/angular-components-vertical-navigation/SKILL.md +139 -0
- package/plugins/smart-pro/skills/audit-log/SKILL.md +82 -0
- package/plugins/smart-pro/skills/format-code/SKILL.md +46 -0
- package/plugins/smart-pro/skills/project-conventions/SKILL.md +90 -0
- package/plugins/smart-pro/skills/safety-check/SKILL.md +0 -0
- package/src/index.d.ts +6 -0
- package/src/index.js +7 -0
- package/src/index.js.map +1 -0
|
@@ -0,0 +1,135 @@
|
|
|
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
|
+
{
|
|
93
|
+
{
|
|
94
|
+
user?.profile?.name;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### "Expression has changed after it was checked"
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
ngAfterViewInit(): void {
|
|
103
|
+
setTimeout(() => this.value = newValue);
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### "NullInjectorError: No provider for X"
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
// Add to module providers or use providedIn: 'root'
|
|
111
|
+
@Injectable({ providedIn: 'root' })
|
|
112
|
+
export class MyService {}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### "Circular dependency detected"
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
// Use forwardRef
|
|
119
|
+
@Inject(forwardRef(() => ServiceB))
|
|
120
|
+
private serviceB: ServiceB
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 4. Build Errors
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Check TypeScript errors
|
|
127
|
+
npx tsc --noEmit
|
|
128
|
+
|
|
129
|
+
# Check Angular build
|
|
130
|
+
ng build --prod 2>&1 | head -50
|
|
131
|
+
|
|
132
|
+
# Common: AOT compilation errors
|
|
133
|
+
# - Private members used in templates (make them public or use getters)
|
|
134
|
+
# - Function calls in templates (extract to component methods)
|
|
135
|
+
```
|
|
@@ -0,0 +1,218 @@
|
|
|
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., FRA-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
|
+
|
|
94
|
+
- **Default mode**: inform the user and suggest running `/plan <taskId>` first. Stop the skill.
|
|
95
|
+
- **`--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.
|
|
96
|
+
|
|
97
|
+
Do NOT fall back to parsing plan content from comments, and do NOT attempt `curl`/`WebFetch` on a URL.
|
|
98
|
+
|
|
99
|
+
### Step 2: Detect Project Structure
|
|
100
|
+
|
|
101
|
+
Before implementing, detect the project layout:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Check if angular.json is at root or in app/ subdirectory
|
|
105
|
+
ls angular.json 2>/dev/null && echo "ROOT" || (ls app/angular.json 2>/dev/null && echo "APP_DIR")
|
|
106
|
+
|
|
107
|
+
# Check package.json for dependencies
|
|
108
|
+
cat package.json 2>/dev/null || cat app/package.json 2>/dev/null
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Key things to detect:
|
|
112
|
+
|
|
113
|
+
- Angular version (6-11)
|
|
114
|
+
- CSS framework (Bootstrap 4 / custom SCSS / none)
|
|
115
|
+
- NgRx version and patterns
|
|
116
|
+
- i18n setup (ngx-translate)
|
|
117
|
+
- Project structure (app/src/ vs src/)
|
|
118
|
+
|
|
119
|
+
### Step 3: List Subtasks
|
|
120
|
+
|
|
121
|
+
If task has subtasks:
|
|
122
|
+
|
|
123
|
+
1. Fetch subtasks using `mcp__linear__list_issues` with parent filter
|
|
124
|
+
2. Sort by priority/creation order
|
|
125
|
+
3. Process each subtask in order
|
|
126
|
+
|
|
127
|
+
### Step 3a: Save Orchestration Plan as Native Linear Attachment
|
|
128
|
+
|
|
129
|
+
**⛔ Calling `mcp__linear__save_comment` with the orchestration body is FORBIDDEN. Use `mcp__linear__create_attachment` only.** Re-read Hard Rule #2 if tempted.
|
|
130
|
+
|
|
131
|
+
Use `shared-impl-orchestrator` agent to generate a `🎭 Agent Orchestration Plan` that lists which agents run in what order (Angular 6-11 + CLI context).
|
|
132
|
+
|
|
133
|
+
Then save it as an `orchestration.md` attachment on the task (not as a comment):
|
|
134
|
+
|
|
135
|
+
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.
|
|
136
|
+
2. **Write locally**: `Write` the orchestration markdown to `/tmp/claude-plans/<taskId>-orchestration.md`.
|
|
137
|
+
3. **Base64-encode**: `b64=$(base64 -i /tmp/claude-plans/<taskId>-orchestration.md)`.
|
|
138
|
+
4. **Create Linear attachment** via `mcp__linear__create_attachment`:
|
|
139
|
+
- `issue`: the task ID
|
|
140
|
+
- `filename`: `orchestration.md`
|
|
141
|
+
- `contentType`: `text/markdown`
|
|
142
|
+
- `title`: `orchestration.md` (exact)
|
|
143
|
+
- `subtitle`: `Plan orkiestracji wygenerowany przez Claude Code (external)`
|
|
144
|
+
- `base64Content`: the base64 string from step 3
|
|
145
|
+
5. **Clean up** local `/tmp/claude-plans/<taskId>-orchestration.md` file after the attachment is created.
|
|
146
|
+
|
|
147
|
+
### Step 4: Implement Each Step
|
|
148
|
+
|
|
149
|
+
For each step in the plan:
|
|
150
|
+
|
|
151
|
+
1. **Read relevant files** - Understand existing code before modifying
|
|
152
|
+
2. **Follow existing patterns** - Match the codebase style exactly
|
|
153
|
+
3. **Create/modify files** - Implement the planned changes
|
|
154
|
+
4. **Register in modules** - Add declarations/imports to NgModules
|
|
155
|
+
5. **Update subtask status** - Mark as Done when complete
|
|
156
|
+
|
|
157
|
+
### Step 5: Build Verification
|
|
158
|
+
|
|
159
|
+
After all steps are complete:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Verify build passes (adapt path based on project structure)
|
|
163
|
+
ng build --prod
|
|
164
|
+
# OR
|
|
165
|
+
cd app && ng build --prod
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Step 6: Report Results
|
|
169
|
+
|
|
170
|
+
Create a summary comment on the Linear task:
|
|
171
|
+
|
|
172
|
+
```markdown
|
|
173
|
+
## Raport Implementacji
|
|
174
|
+
|
|
175
|
+
### Zrealizowane
|
|
176
|
+
|
|
177
|
+
| Podzadanie | Tytul | Status |
|
|
178
|
+
| ---------- | ------- | ------------ |
|
|
179
|
+
| FRA-549 | [title] | Zrealizowane |
|
|
180
|
+
|
|
181
|
+
### Zmiany
|
|
182
|
+
|
|
183
|
+
| Plik | Typ | Opis |
|
|
184
|
+
| ----------------------------------------- | ------------- | ----------------- |
|
|
185
|
+
| `src/app/components/feature.component.ts` | Nowy | Komponent |
|
|
186
|
+
| `src/app/components/feature.module.ts` | Zmodyfikowany | Dodano deklaracje |
|
|
187
|
+
|
|
188
|
+
### Build
|
|
189
|
+
|
|
190
|
+
- `ng build --prod` - Sukces
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
_Raport wygenerowany przez Claude Code_
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Agent Selection
|
|
198
|
+
|
|
199
|
+
| Task Type | Agent |
|
|
200
|
+
| -------------- | ---------------------------------------------------- |
|
|
201
|
+
| New component | `angular-component-scaffolder` |
|
|
202
|
+
| New service | `angular-service-builder` |
|
|
203
|
+
| NgRx state | `angular-state-builder` |
|
|
204
|
+
| New directive | `angular-directive-builder` |
|
|
205
|
+
| New pipe | `angular-pipe-builder` |
|
|
206
|
+
| Guard/resolver | `angular-guard-builder` / `angular-resolver-builder` |
|
|
207
|
+
| Styling | `ui-web-designer` |
|
|
208
|
+
|
|
209
|
+
## Guidelines
|
|
210
|
+
|
|
211
|
+
1. **Always read existing code first** before making changes
|
|
212
|
+
2. **Follow the project's existing patterns** exactly
|
|
213
|
+
3. **Register everything in NgModules** - declarations, imports, exports
|
|
214
|
+
4. **Use the project's CSS approach** - detect from package.json
|
|
215
|
+
5. **Write all Linear comments in Polish**
|
|
216
|
+
6. **Verify build after implementation**
|
|
217
|
+
7. **Do NOT add tests** unless explicitly requested
|
|
218
|
+
8. **Do NOT modify deployment configuration**
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: karpathy-guidelines
|
|
3
|
+
description: Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Karpathy Guidelines
|
|
8
|
+
|
|
9
|
+
Behavioral guidelines to reduce common LLM coding mistakes, derived from [Andrej Karpathy's observations](https://x.com/karpathy/status/2015883857489522876) on LLM coding pitfalls.
|
|
10
|
+
|
|
11
|
+
**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
|
|
12
|
+
|
|
13
|
+
## 1. Think Before Coding
|
|
14
|
+
|
|
15
|
+
**Don't assume. Don't hide confusion. Surface tradeoffs.**
|
|
16
|
+
|
|
17
|
+
Before implementing:
|
|
18
|
+
|
|
19
|
+
- State your assumptions explicitly. If uncertain, ask.
|
|
20
|
+
- If multiple interpretations exist, present them - don't pick silently.
|
|
21
|
+
- If a simpler approach exists, say so. Push back when warranted.
|
|
22
|
+
- If something is unclear, stop. Name what's confusing. Ask.
|
|
23
|
+
|
|
24
|
+
## 2. Simplicity First
|
|
25
|
+
|
|
26
|
+
**Minimum code that solves the problem. Nothing speculative.**
|
|
27
|
+
|
|
28
|
+
- No features beyond what was asked.
|
|
29
|
+
- No abstractions for single-use code.
|
|
30
|
+
- No "flexibility" or "configurability" that wasn't requested.
|
|
31
|
+
- No error handling for impossible scenarios.
|
|
32
|
+
- If you write 200 lines and it could be 50, rewrite it.
|
|
33
|
+
|
|
34
|
+
Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
|
|
35
|
+
|
|
36
|
+
## 3. Surgical Changes
|
|
37
|
+
|
|
38
|
+
**Touch only what you must. Clean up only your own mess.**
|
|
39
|
+
|
|
40
|
+
When editing existing code:
|
|
41
|
+
|
|
42
|
+
- Don't "improve" adjacent code, comments, or formatting.
|
|
43
|
+
- Don't refactor things that aren't broken.
|
|
44
|
+
- Match existing style, even if you'd do it differently.
|
|
45
|
+
- If you notice unrelated dead code, mention it - don't delete it.
|
|
46
|
+
|
|
47
|
+
When your changes create orphans:
|
|
48
|
+
|
|
49
|
+
- Remove imports/variables/functions that YOUR changes made unused.
|
|
50
|
+
- Don't remove pre-existing dead code unless asked.
|
|
51
|
+
|
|
52
|
+
The test: Every changed line should trace directly to the user's request.
|
|
53
|
+
|
|
54
|
+
## 4. Goal-Driven Execution
|
|
55
|
+
|
|
56
|
+
**Define success criteria. Loop until verified.**
|
|
57
|
+
|
|
58
|
+
Transform tasks into verifiable goals:
|
|
59
|
+
|
|
60
|
+
- "Add validation" → "Write tests for invalid inputs, then make them pass"
|
|
61
|
+
- "Fix the bug" → "Write a test that reproduces it, then make it pass"
|
|
62
|
+
- "Refactor X" → "Ensure tests pass before and after"
|
|
63
|
+
|
|
64
|
+
For multi-step tasks, state a brief plan:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
1. [Step] → verify: [check]
|
|
68
|
+
2. [Step] → verify: [check]
|
|
69
|
+
3. [Step] → verify: [check]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: linear-suggestion
|
|
3
|
+
description: Create a Linear issue in the "Framework 2.0" project with a suggestion for agent or skill improvements.
|
|
4
|
+
allowed-tools: mcp__linear__save_issue
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Linear Suggestion
|
|
8
|
+
|
|
9
|
+
Create a Linear issue in the **Framework 2.0** 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.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maia-files-delete
|
|
3
|
+
description: Delete a file from Maia API temporary storage.
|
|
4
|
+
allowed-tools: Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Maia Files Delete
|
|
8
|
+
|
|
9
|
+
Delete a file from Maia AI API temporary storage.
|
|
10
|
+
|
|
11
|
+
## API Endpoint
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
DELETE https://maia-ai-api.smartsoft.biz.pl/files/{id}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
curl -s -X DELETE https://maia-ai-api.smartsoft.biz.pl/files/{id}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Batch Deletion
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
for id in id1 id2 id3; do
|
|
27
|
+
curl -s -X DELETE "https://maia-ai-api.smartsoft.biz.pl/files/$id"
|
|
28
|
+
echo "Deleted: $id"
|
|
29
|
+
done
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Error Handling
|
|
33
|
+
|
|
34
|
+
If deletion fails, report error but continue with remaining files.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maia-files-upload
|
|
3
|
+
description: Upload a file to Maia API temporary storage.
|
|
4
|
+
allowed-tools: Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Maia Files Upload
|
|
8
|
+
|
|
9
|
+
Upload a file to Maia AI API temporary storage.
|
|
10
|
+
|
|
11
|
+
## API Endpoint
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
POST https://maia-ai-api.smartsoft.biz.pl/files
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
curl -s -X POST https://maia-ai-api.smartsoft.biz.pl/files \
|
|
21
|
+
-F "file=@/path/to/file.png"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Response
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{ "id": "abc123def456" }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Result URL
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
https://maia-ai-api.smartsoft.biz.pl/files/{id}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Process
|
|
37
|
+
|
|
38
|
+
1. Validate file exists
|
|
39
|
+
2. Upload file using curl
|
|
40
|
+
3. Extract ID from response
|
|
41
|
+
4. Return ID and full URL
|