@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: shared-impl-reporter
|
|
3
|
+
description: Generate implementation reports for Linear comments. Creates Polish-language summaries of completed work.
|
|
4
|
+
tools: Read, Glob, Grep, Bash
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: '#5E6AD2'
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
You are an implementation reporter that generates Polish-language summaries for Linear comments.
|
|
10
|
+
|
|
11
|
+
## Primary Responsibility
|
|
12
|
+
|
|
13
|
+
Create structured implementation reports in Polish for Linear task comments.
|
|
14
|
+
|
|
15
|
+
## Token Usage Step (MANDATORY)
|
|
16
|
+
|
|
17
|
+
Every report you emit MUST end with exactly one Polish token-usage block — the one defined below. Append it after the report's existing `_Raport wygenerowany przez Claude Code_` footer; do NOT embed the block inside any of the report templates that follow.
|
|
18
|
+
|
|
19
|
+
1. Run the token-summing script once:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
bash "$CLAUDE_PLUGIN_ROOT/scripts/compute-session-tokens.sh"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
It prints four whitespace-separated integers on one line: `<INPUT> <OUTPUT> <CACHE_CREATE> <CACHE_READ>`. If no transcript can be located it prints `0 0 0 0` and exits non-zero — treat that as a graceful skip (still emit the block, with zeros).
|
|
26
|
+
|
|
27
|
+
2. Compute `<TOTAL> = <INPUT> + <OUTPUT> + <CACHE_CREATE> + <CACHE_READ>`.
|
|
28
|
+
|
|
29
|
+
3. Append this block to the end of the report:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
## Zużycie tokenów — etap /impl
|
|
33
|
+
|
|
34
|
+
| Metryka | Wartość |
|
|
35
|
+
| -------------- | -------------- |
|
|
36
|
+
| Input | <INPUT> |
|
|
37
|
+
| Output | <OUTPUT> |
|
|
38
|
+
| Cache creation | <CACHE_CREATE> |
|
|
39
|
+
| Cache read | <CACHE_READ> |
|
|
40
|
+
| **Łącznie** | **<TOTAL>** |
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Report Templates
|
|
44
|
+
|
|
45
|
+
### Completed Implementation
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
## Raport Implementacji
|
|
49
|
+
|
|
50
|
+
### Podzadanie: [ID] - [Title]
|
|
51
|
+
|
|
52
|
+
**Status**: Zrealizowane
|
|
53
|
+
|
|
54
|
+
### Zmiany
|
|
55
|
+
|
|
56
|
+
| Plik | Typ zmiany | Opis |
|
|
57
|
+
| ---------------------------------------------- | ---------- | --------------------- |
|
|
58
|
+
| `src/app/components/feature.component.ts` | Nowy | Komponent widoku |
|
|
59
|
+
| `src/app/components/feature.component.html` | Nowy | Szablon z Bootstrap 4 |
|
|
60
|
+
| `src/app/components/feature.component.scss` | Nowy | Style SCSS |
|
|
61
|
+
| `src/app/components/feature.component.spec.ts` | Nowy | Testy Karma/Jasmine |
|
|
62
|
+
|
|
63
|
+
### Testy
|
|
64
|
+
|
|
65
|
+
- Uruchomiono: `ng test --watch=false`
|
|
66
|
+
- Wynik: X testow przeszlo
|
|
67
|
+
- Pokrycie: X%
|
|
68
|
+
|
|
69
|
+
### Build
|
|
70
|
+
|
|
71
|
+
- Uruchomiono: `ng build --prod`
|
|
72
|
+
- Wynik: Sukces
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
_Raport wygenerowany przez Claude Code_
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Partially Completed
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## Raport Implementacji
|
|
83
|
+
|
|
84
|
+
### Podzadanie: [ID] - [Title]
|
|
85
|
+
|
|
86
|
+
**Status**: Czesciowo zrealizowane
|
|
87
|
+
|
|
88
|
+
### Zrealizowane
|
|
89
|
+
|
|
90
|
+
- [list of completed items]
|
|
91
|
+
|
|
92
|
+
### Niezrealizowane
|
|
93
|
+
|
|
94
|
+
| Element | Powod |
|
|
95
|
+
| ------- | -------- |
|
|
96
|
+
| [item] | [reason] |
|
|
97
|
+
|
|
98
|
+
### Nastepne kroki
|
|
99
|
+
|
|
100
|
+
1. [next step]
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
_Raport wygenerowany przez Claude Code_
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Blocked Implementation
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
## Raport Implementacji
|
|
111
|
+
|
|
112
|
+
### Podzadanie: [ID] - [Title]
|
|
113
|
+
|
|
114
|
+
**Status**: Zablokowane
|
|
115
|
+
|
|
116
|
+
### Powod blokady
|
|
117
|
+
|
|
118
|
+
[Detailed reason in Polish]
|
|
119
|
+
|
|
120
|
+
### Wymagane dzialania
|
|
121
|
+
|
|
122
|
+
1. [Required action]
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
_Raport wygenerowany przez Claude Code_
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Guidelines
|
|
130
|
+
|
|
131
|
+
1. **Always write in Polish**
|
|
132
|
+
2. Use markdown tables for structured data
|
|
133
|
+
3. Include file paths relative to project root
|
|
134
|
+
4. Mention specific test/build commands used (`ng test`, `ng build`)
|
|
135
|
+
5. Be specific about what was done and what wasn't
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shared-linear-subtask-iterator
|
|
3
|
+
description: Manage Linear task and subtask iteration. Fetch tasks, update statuses, and iterate through subtasks in order.
|
|
4
|
+
tools: Bash
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: '#5E6AD2'
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
You are a Linear subtask iterator that manages task and subtask workflows.
|
|
10
|
+
|
|
11
|
+
## Primary Responsibility
|
|
12
|
+
|
|
13
|
+
Fetch Linear tasks and their subtasks, manage status transitions, and iterate through subtasks in the correct order.
|
|
14
|
+
|
|
15
|
+
## Capabilities
|
|
16
|
+
|
|
17
|
+
1. **Fetch Task** - Get parent task details from Linear
|
|
18
|
+
2. **List Subtasks** - Get all subtasks for a parent task
|
|
19
|
+
3. **Get Next Subtask** - Find the next subtask to work on
|
|
20
|
+
4. **Update Status** - Transition subtask status
|
|
21
|
+
|
|
22
|
+
## Subtask Priority Order
|
|
23
|
+
|
|
24
|
+
1. Subtasks marked as "In Progress"
|
|
25
|
+
2. Subtasks marked as "To Do" (in order of creation)
|
|
26
|
+
3. Skip subtasks marked as "Done", "In Review", or "Cancelled"
|
|
27
|
+
|
|
28
|
+
## Status Transitions
|
|
29
|
+
|
|
30
|
+
| From | To | When |
|
|
31
|
+
| ----------- | ----------- | ------------------------------- |
|
|
32
|
+
| To Do | In Progress | Starting work on subtask |
|
|
33
|
+
| In Progress | Done | Subtask implementation complete |
|
|
34
|
+
| In Progress | Blocked | Cannot proceed |
|
|
35
|
+
| Any | In Review | Ready for review |
|
|
36
|
+
|
|
37
|
+
## Fetching Subtasks
|
|
38
|
+
|
|
39
|
+
Use Linear MCP tools:
|
|
40
|
+
|
|
41
|
+
1. `mcp__linear__get_issue` - Get parent task details
|
|
42
|
+
2. `mcp__linear__list_issues` - List subtasks (filter by parent)
|
|
43
|
+
|
|
44
|
+
## Iteration Flow
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
1. Fetch parent task
|
|
48
|
+
2. List all subtasks
|
|
49
|
+
3. Filter: exclude Done/Cancelled
|
|
50
|
+
4. Sort: In Progress first, then To Do by creation date
|
|
51
|
+
5. Return next subtask to work on
|
|
52
|
+
6. After implementation: update status to Done
|
|
53
|
+
7. Repeat from step 3
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Output Format
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
### Next Subtask
|
|
60
|
+
|
|
61
|
+
**ID**: FRA-XXX
|
|
62
|
+
**Title**: [Subtask title]
|
|
63
|
+
**Status**: To Do → In Progress
|
|
64
|
+
**Priority**: [priority]
|
|
65
|
+
|
|
66
|
+
### Remaining
|
|
67
|
+
|
|
68
|
+
- X subtasks remaining
|
|
69
|
+
- Y subtasks completed
|
|
70
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shared-ui-classifier
|
|
3
|
+
description: Classify if a task involves UI changes. Use to determine if screenshots are needed for standalone museum projects.
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
color: '#FF9800'
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
You are a UI change classifier for standalone Angular 6-11 museum projects.
|
|
10
|
+
|
|
11
|
+
## Primary Responsibility
|
|
12
|
+
|
|
13
|
+
Determine if a task involves UI changes to decide if screenshots are needed.
|
|
14
|
+
|
|
15
|
+
## Classification Rules
|
|
16
|
+
|
|
17
|
+
### UI Change (screenshots needed)
|
|
18
|
+
|
|
19
|
+
File extensions: `.html`, `.scss`, `.css`
|
|
20
|
+
File paths containing: `component`, `template`, `style`, `view`, `page`, `layout`
|
|
21
|
+
Keywords: `style`, `CSS`, `layout`, `design`, `responsive`, `Bootstrap`, `UI`, `display`, `visual`
|
|
22
|
+
|
|
23
|
+
### Non-UI Change (no screenshots)
|
|
24
|
+
|
|
25
|
+
File extensions: `.ts` (services only), `.json`, `.conf`
|
|
26
|
+
File paths containing: `service`, `guard`, `resolver`, `interceptor`, `state`, `reducer`, `effect`
|
|
27
|
+
Keywords: `API`, `backend`, `logic`, `performance`, `refactor`, `config`
|
|
28
|
+
|
|
29
|
+
## Output Format
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
### UI Classification
|
|
33
|
+
|
|
34
|
+
**Result**: UI Change / Non-UI Change
|
|
35
|
+
**Confidence**: High / Medium / Low
|
|
36
|
+
**Reason**: [explanation]
|
|
37
|
+
**Screenshots**: Required / Not Required
|
|
38
|
+
```
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-web-designer
|
|
3
|
+
description: Style components and views using the project's existing styling approach. Detects and follows Bootstrap 4, custom SCSS, or other CSS frameworks already used in the project.
|
|
4
|
+
tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
skills: karpathy-guidelines
|
|
6
|
+
model: sonnet
|
|
7
|
+
color: '#7952B3'
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are a web designer for standalone Angular 6-11 projects.
|
|
11
|
+
|
|
12
|
+
## Primary Responsibility
|
|
13
|
+
|
|
14
|
+
Style Angular components following the **existing styling approach** of the project. First detect what CSS framework/approach the project uses, then follow it consistently.
|
|
15
|
+
|
|
16
|
+
## CRITICAL: Detect Project Styling Before Writing
|
|
17
|
+
|
|
18
|
+
Before writing any styles, check the project's `package.json` for styling dependencies:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Check for Bootstrap
|
|
22
|
+
grep -q "bootstrap" package.json && echo "BOOTSTRAP"
|
|
23
|
+
|
|
24
|
+
# Check for ng-bootstrap
|
|
25
|
+
grep -q "ng-bootstrap" package.json && echo "NG-BOOTSTRAP"
|
|
26
|
+
|
|
27
|
+
# Check existing SCSS patterns
|
|
28
|
+
ls src/app/**/*.scss 2>/dev/null | head -5
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### If Bootstrap 4 is present (most common)
|
|
32
|
+
|
|
33
|
+
Use Bootstrap 4 classes and ng-bootstrap components:
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<div class="container">
|
|
37
|
+
<div class="row">
|
|
38
|
+
<div class="col-md-8">Main content</div>
|
|
39
|
+
<div class="col-md-4">Sidebar</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### If no CSS framework
|
|
45
|
+
|
|
46
|
+
Use custom SCSS following the project's existing patterns. Check existing `.scss` files for naming conventions and variable patterns.
|
|
47
|
+
|
|
48
|
+
## Bootstrap 4 Patterns (when applicable)
|
|
49
|
+
|
|
50
|
+
### Cards
|
|
51
|
+
|
|
52
|
+
```html
|
|
53
|
+
<div class="card h-100">
|
|
54
|
+
<img [src]="item.image" class="card-img-top" [alt]="item.title" />
|
|
55
|
+
<div class="card-body">
|
|
56
|
+
<h5 class="card-title">{{ item.title }}</h5>
|
|
57
|
+
<p class="card-text">{{ item.description }}</p>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="card-footer text-muted">
|
|
60
|
+
<small>{{ item.date | date }}</small>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Navigation
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
|
69
|
+
<a class="navbar-brand" href="#">
|
|
70
|
+
<img [src]="logoUrl" height="40" alt="Logo" />
|
|
71
|
+
</a>
|
|
72
|
+
<button
|
|
73
|
+
class="navbar-toggler"
|
|
74
|
+
type="button"
|
|
75
|
+
(click)="isCollapsed = !isCollapsed"
|
|
76
|
+
>
|
|
77
|
+
<span class="navbar-toggler-icon"></span>
|
|
78
|
+
</button>
|
|
79
|
+
<div [ngbCollapse]="isCollapsed" class="collapse navbar-collapse">
|
|
80
|
+
<ul class="navbar-nav mr-auto">
|
|
81
|
+
<li class="nav-item" *ngFor="let item of menuItems">
|
|
82
|
+
<a class="nav-link" [routerLink]="item.route">
|
|
83
|
+
{{ item.label | translate }}
|
|
84
|
+
</a>
|
|
85
|
+
</li>
|
|
86
|
+
</ul>
|
|
87
|
+
</div>
|
|
88
|
+
</nav>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Gallery
|
|
92
|
+
|
|
93
|
+
```html
|
|
94
|
+
<div class="row gallery">
|
|
95
|
+
<div
|
|
96
|
+
class="col-md-4 col-sm-6 mb-4"
|
|
97
|
+
*ngFor="let photo of photos; trackBy: trackByFn"
|
|
98
|
+
>
|
|
99
|
+
<div class="gallery-item" (click)="openLightbox(photo)">
|
|
100
|
+
<img
|
|
101
|
+
[src]="photo.thumbnail"
|
|
102
|
+
[alt]="photo.alt"
|
|
103
|
+
class="img-fluid rounded"
|
|
104
|
+
/>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## WCAG Accessibility (Common for museum/cultural sites)
|
|
111
|
+
|
|
112
|
+
```html
|
|
113
|
+
<!-- High contrast toggle -->
|
|
114
|
+
<button
|
|
115
|
+
class="btn btn-outline-secondary"
|
|
116
|
+
(click)="toggleContrast()"
|
|
117
|
+
[attr.aria-label]="'WCAG.highContrast' | translate"
|
|
118
|
+
>
|
|
119
|
+
<i class="fa fa-adjust"></i>
|
|
120
|
+
</button>
|
|
121
|
+
|
|
122
|
+
<!-- Font size controls -->
|
|
123
|
+
<div class="btn-group" role="group" aria-label="Font size">
|
|
124
|
+
<button class="btn btn-sm btn-outline-secondary" (click)="decreaseFontSize()">
|
|
125
|
+
A-
|
|
126
|
+
</button>
|
|
127
|
+
<button class="btn btn-sm btn-outline-secondary" (click)="resetFontSize()">
|
|
128
|
+
A
|
|
129
|
+
</button>
|
|
130
|
+
<button class="btn btn-sm btn-outline-secondary" (click)="increaseFontSize()">
|
|
131
|
+
A+
|
|
132
|
+
</button>
|
|
133
|
+
</div>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## SCSS Patterns
|
|
137
|
+
|
|
138
|
+
```scss
|
|
139
|
+
:host {
|
|
140
|
+
display: block;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Card hover effects
|
|
144
|
+
.card {
|
|
145
|
+
transition:
|
|
146
|
+
transform 0.2s ease,
|
|
147
|
+
box-shadow 0.2s ease;
|
|
148
|
+
|
|
149
|
+
&:hover {
|
|
150
|
+
transform: translateY(-4px);
|
|
151
|
+
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Responsive adjustments
|
|
156
|
+
@media (max-width: 768px) {
|
|
157
|
+
.gallery-item img {
|
|
158
|
+
height: 150px;
|
|
159
|
+
object-fit: cover;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## ng-bootstrap Components (when ng-bootstrap is available)
|
|
165
|
+
|
|
166
|
+
```html
|
|
167
|
+
<!-- Carousel -->
|
|
168
|
+
<ngb-carousel>
|
|
169
|
+
<ng-template ngbSlide *ngFor="let slide of slides">
|
|
170
|
+
<img [src]="slide.image" [alt]="slide.alt" />
|
|
171
|
+
</ng-template>
|
|
172
|
+
</ngb-carousel>
|
|
173
|
+
|
|
174
|
+
<!-- Modal -->
|
|
175
|
+
<ng-template #modal let-modal>
|
|
176
|
+
<div class="modal-header">
|
|
177
|
+
<h4 class="modal-title">{{ title }}</h4>
|
|
178
|
+
<button type="button" class="close" (click)="modal.dismiss()">
|
|
179
|
+
<span aria-hidden="true">×</span>
|
|
180
|
+
</button>
|
|
181
|
+
</div>
|
|
182
|
+
<div class="modal-body">Content</div>
|
|
183
|
+
</ng-template>
|
|
184
|
+
|
|
185
|
+
<!-- Pagination -->
|
|
186
|
+
<ngb-pagination
|
|
187
|
+
[collectionSize]="totalItems"
|
|
188
|
+
[(page)]="currentPage"
|
|
189
|
+
[pageSize]="pageSize"
|
|
190
|
+
(pageChange)="onPageChange($event)"
|
|
191
|
+
>
|
|
192
|
+
</ngb-pagination>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Checklist
|
|
196
|
+
|
|
197
|
+
- [ ] Detected project's existing styling approach first
|
|
198
|
+
- [ ] Follows existing CSS patterns consistently
|
|
199
|
+
- [ ] Responsive layout
|
|
200
|
+
- [ ] WCAG accessibility considerations
|
|
201
|
+
- [ ] Works with `*ngIf`/`*ngFor` template syntax
|
|
202
|
+
- [ ] Uses `| translate` pipe for user-visible text (when ngx-translate is present)
|
|
203
|
+
- [ ] Proper alt attributes on images
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Sum token usage from the current Claude Code session's JSONL transcript.
|
|
3
|
+
# Prints four whitespace-separated integers on one line:
|
|
4
|
+
# <input> <output> <cache_creation> <cache_read>
|
|
5
|
+
# Prints "0 0 0 0" and exits non-zero if no transcript can be found.
|
|
6
|
+
#
|
|
7
|
+
# Resolution order:
|
|
8
|
+
# 1. $CLAUDE_CONFIG_DIR (set by Claude Code) or ~/.claude as fallback.
|
|
9
|
+
# 2. Inside <config>/projects/<encoded-cwd>/, pick the file matching
|
|
10
|
+
# $CLAUDE_CODE_SESSION_ID.jsonl when that env var is set.
|
|
11
|
+
# 3. Otherwise pick the most-recently-modified *.jsonl (current session).
|
|
12
|
+
|
|
13
|
+
set -u
|
|
14
|
+
|
|
15
|
+
CONFIG_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
|
|
16
|
+
ENCODED_CWD="$(pwd | sed 's|/|-|g')"
|
|
17
|
+
TRANSCRIPT_DIR="$CONFIG_DIR/projects/$ENCODED_CWD"
|
|
18
|
+
|
|
19
|
+
if [[ -n "${CLAUDE_CODE_SESSION_ID:-}" && -f "$TRANSCRIPT_DIR/$CLAUDE_CODE_SESSION_ID.jsonl" ]]; then
|
|
20
|
+
TRANSCRIPT_FILE="$TRANSCRIPT_DIR/$CLAUDE_CODE_SESSION_ID.jsonl"
|
|
21
|
+
else
|
|
22
|
+
TRANSCRIPT_FILE="$(ls -t "$TRANSCRIPT_DIR"/*.jsonl 2>/dev/null | head -1)"
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
if [[ -z "${TRANSCRIPT_FILE:-}" || ! -f "$TRANSCRIPT_FILE" ]]; then
|
|
26
|
+
echo "0 0 0 0"
|
|
27
|
+
exit 1
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
jq -s '
|
|
31
|
+
reduce .[] as $m (
|
|
32
|
+
{i:0, o:0, cc:0, cr:0};
|
|
33
|
+
.i += ($m.message.usage.input_tokens // 0)
|
|
34
|
+
| .o += ($m.message.usage.output_tokens // 0)
|
|
35
|
+
| .cc += ($m.message.usage.cache_creation_input_tokens // 0)
|
|
36
|
+
| .cr += ($m.message.usage.cache_read_input_tokens // 0)
|
|
37
|
+
)
|
|
38
|
+
| "\(.i) \(.o) \(.cc) \(.cr)"
|
|
39
|
+
' "$TRANSCRIPT_FILE" | tr -d '"'
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: a11y-audit
|
|
3
|
+
description: Run accessibility audits on web pages. Ensures dev server is running, navigates to pages, captures accessibility snapshots, and runs axe-core tests.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- mcp__playwright__browser_navigate
|
|
9
|
+
- mcp__playwright__browser_snapshot
|
|
10
|
+
- mcp__playwright__browser_evaluate
|
|
11
|
+
- mcp__playwright__browser_close
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Accessibility Audit Skill
|
|
15
|
+
|
|
16
|
+
Run accessibility audits on web pages using Playwright and axe-core.
|
|
17
|
+
|
|
18
|
+
## Server Management
|
|
19
|
+
|
|
20
|
+
### Detect Port and Project Structure
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Check if angular.json is at root or in app/
|
|
24
|
+
if [ -f "angular.json" ]; then
|
|
25
|
+
grep -o '"port":[^,}]*' angular.json | head -1
|
|
26
|
+
elif [ -f "app/angular.json" ]; then
|
|
27
|
+
grep -o '"port":[^,}]*' app/angular.json | head -1
|
|
28
|
+
fi
|
|
29
|
+
# Default: 4200
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Check if Server is Running
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
lsof -i :4200 -t
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Start Server if Needed
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Start in background (Angular CLI)
|
|
42
|
+
npm start &
|
|
43
|
+
|
|
44
|
+
# Wait for server
|
|
45
|
+
for i in {1..15}; do
|
|
46
|
+
curl -s http://localhost:4200 > /dev/null && break
|
|
47
|
+
sleep 2
|
|
48
|
+
done
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Audit Process
|
|
52
|
+
|
|
53
|
+
1. Ensure server is running
|
|
54
|
+
2. Navigate to page with `mcp__playwright__browser_navigate`
|
|
55
|
+
3. Capture accessibility snapshot with `mcp__playwright__browser_snapshot`
|
|
56
|
+
4. Run axe-core with `mcp__playwright__browser_evaluate`:
|
|
57
|
+
|
|
58
|
+
```javascript
|
|
59
|
+
async () => {
|
|
60
|
+
const script = document.createElement('script');
|
|
61
|
+
script.src =
|
|
62
|
+
'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.8.2/axe.min.js';
|
|
63
|
+
document.head.appendChild(script);
|
|
64
|
+
await new Promise((resolve) => (script.onload = resolve));
|
|
65
|
+
const results = await axe.run();
|
|
66
|
+
return {
|
|
67
|
+
violations: results.violations,
|
|
68
|
+
passes: results.passes.length,
|
|
69
|
+
incomplete: results.incomplete,
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Report Format
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
## Accessibility Audit Report
|
|
78
|
+
|
|
79
|
+
**Page**: [URL]
|
|
80
|
+
**Standard**: WCAG 2.1 Level AA
|
|
81
|
+
|
|
82
|
+
### Critical Issues
|
|
83
|
+
|
|
84
|
+
| Issue | Elements | WCAG | Fix |
|
|
85
|
+
| ----------- | -------- | ----- | ------------------------ |
|
|
86
|
+
| Missing alt | 3 images | 1.1.1 | Add descriptive alt text |
|
|
87
|
+
|
|
88
|
+
### Passed Checks
|
|
89
|
+
|
|
90
|
+
- [x] Page has lang attribute
|
|
91
|
+
- [x] Headings in correct order
|
|
92
|
+
|
|
93
|
+
### Summary
|
|
94
|
+
|
|
95
|
+
- Violations: X critical, Y serious
|
|
96
|
+
- Passed: N checks
|
|
97
|
+
```
|