symfonia-ai-tools 1.4.1 → 1.5.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/README.md CHANGED
@@ -1,116 +1,117 @@
1
1
  # symfonia-ai-tools
2
2
 
3
- Interaktywny konfigurator AI toolingu dla projektow. Jeden `npx` — kompletna konfiguracja Claude Code, GitHub Copilot, Cursor, Gemini, Junie i GSD.
3
+ Interactive AI tooling configurator for projects. One `npx` — complete setup for Claude Code, GitHub Copilot, Cursor, Gemini, Junie, and GSD.
4
4
 
5
- ## Instalacja
5
+ ## Installation
6
6
 
7
- Wymagany: Node.js 18+
7
+ Required: Node.js 18+
8
8
 
9
9
  ```bash
10
10
  npx symfonia-ai-tools@latest
11
11
  ```
12
12
 
13
- Mozesz tez zainstalowac globalnie:
13
+ You can also install globally:
14
14
 
15
15
  ```bash
16
16
  npm install -g symfonia-ai-tools
17
17
  symfonia-ai-tools
18
18
  ```
19
19
 
20
- Konfigurator przeprowadzi Cie przez:
21
- 1. Wybor typu projektu, opis, tech stack
22
- 2. Wybor pakietow instrukcji i skilli (checkboxy)
23
- 3. Narzedzia AI do skonfigurowania (checkboxy)
24
- 4. Wybor skilli do zainstalowania (checkboxy — bazowe + z wybranych pakietow)
25
- 5. Sciezki, komendy, CI pipeline, prefix JIRA
26
- 6. Serwery MCP (checkboxy + tokeny)
27
- 7. Instalacje CLI (checkboxy)
20
+ The configurator guides you through:
21
+ 1. Language selection (Polish / English)
22
+ 2. Project type, description, tech stack
23
+ 3. Instruction & skill packs (checkboxes)
24
+ 4. AI tools to configure (checkboxes)
25
+ 5. Skills to install (checkboxes base + from selected packs)
26
+ 6. Paths, commands, CI pipeline, JIRA prefix
27
+ 7. MCP servers (checkboxes + tokens)
28
+ 8. CLI installation (checkboxes)
28
29
 
29
- Caly konfigurator uzywa nawigacji strzalkamizero wpisywania cyferek.
30
+ The entire configurator uses arrow-key navigation no typing numbers.
30
31
 
31
- Na koniec automatycznie uruchamia GSD:
32
- - **Nowy projekt** → `/gsd-new-project`
33
- - **Istniejacy projekt** → `/gsd-map-codebase` → `/gsd-new-project`
32
+ Finally, it automatically runs GSD:
33
+ - **New project** → `/gsd-new-project`
34
+ - **Existing project** → `/gsd-map-codebase` → `/gsd-new-project`
34
35
 
35
- ### Tryby instalacji (istniejacy projekt)
36
+ ### Installation modes (existing project)
36
37
 
37
- | Tryb | Opis |
38
- |------|------|
39
- | **Nadpisz wszystko** | Pelna reinstalacjanadpisuje istniejace pliki |
40
- | **Tylko nowe pliki** | Dodaje brakujace pliki, nie rusza istniejacych |
41
- | **Tylko MCP** | Konfiguruje serwery MCP bez ruszania reszty |
38
+ | Mode | Description |
39
+ |------|-------------|
40
+ | **Overwrite everything** | Full reinstalloverwrites existing files |
41
+ | **Only new files** | Adds missing files, keeps existing ones |
42
+ | **MCP only** | Configures MCP servers without touching the rest |
42
43
 
43
44
  ---
44
45
 
45
- ## Architektura: Single Source of Truth
46
+ ## Architecture: Single Source of Truth
46
47
 
47
- Wszystkie narzedzia AI czytaja te same zasady z jednego miejsca:
48
+ All AI tools read the same rules from one place:
48
49
 
49
50
  ```
50
- .ai/guidelines.md ← JEDYNE ZRODLO PRAWDY
51
+ .ai/guidelines.md ← SINGLE SOURCE OF TRUTH
51
52
 
52
- ├── CLAUDE.md (referencja)
53
+ ├── CLAUDE.md (reference)
53
54
  ├── .github/copilot-instructions.md (pointer)
54
55
  ├── .cursor/rules/global.mdc (pointer)
55
- ├── .gemini/settings.json (referencja)
56
+ ├── .gemini/settings.json (reference)
56
57
  └── .junie/guidelines.md (pointer)
57
58
  ```
58
59
 
59
- Zmien `.ai/guidelines.md` — wszystkie agenty to zobacza.
60
+ Change `.ai/guidelines.md` — all agents will see it.
60
61
 
61
62
  ---
62
63
 
63
- ## Pakiety (packs)
64
+ ## Packs
64
65
 
65
- Zamiast wybierania jednego stacka, wybierasz dowolne pakiety instrukcji i skillicheckboxami. Kazdy pakiet deklaruje swoje instrukcje, skille i wymagane placeholdery w `pack.json`.
66
+ Instead of choosing a single stack, you pick any combination of instruction & skill packs with checkboxes. Each pack declares its instructions, skills, and required placeholders in `pack.json`.
66
67
 
67
- ### Dostepne pakiety
68
+ ### Available packs
68
69
 
69
- | Pakiet | Zawartosc | Domyslny |
70
- |--------|-----------|----------|
71
- | **Vue 3 + TypeScript** | 6 instrukcji, 3 skille | Tak |
72
- | **Vitest** | 1 instrukcja | Tak |
73
- | **Storybook** | 1 instrukcja | Nie |
74
- | **Laravel + PHP** | 4 instrukcje, 7 skilli | Nie |
75
- | **Playwright** | 1 instrukcja, 3 skille | Nie |
76
- | **Docker** | 1 instrukcja | Nie |
70
+ | Pack | Contents | Default |
71
+ |------|----------|---------|
72
+ | **Vue 3 + TypeScript** | 6 instructions, 3 skills | Yes |
73
+ | **Vitest** | 1 instruction | Yes |
74
+ | **Storybook** | 1 instruction | No |
75
+ | **Laravel + PHP** | 4 instructions, 7 skills | No |
76
+ | **Playwright E2E** | 1 instruction, 3 skills | No |
77
+ | **Docker** | 1 instruction | No |
77
78
 
78
- Pakiety sa niezaleznemozesz laczyc np. Vue 3 + Playwright + Docker.
79
+ Packs are independentyou can combine e.g. Vue 3 + Playwright + Docker.
79
80
 
80
81
  ---
81
82
 
82
- ## Co instaluje
83
+ ## What it installs
83
84
 
84
- ### Pliki per narzedzie
85
+ ### Per-tool files
85
86
 
86
- | Narzedzie | Pliki |
87
- |-----------|-------|
87
+ | Tool | Files |
88
+ |------|-------|
88
89
  | **Claude Code** | `CLAUDE.md`, `.claude/settings.local.json` (permissions + deny rules) |
89
90
  | **GitHub Copilot** | `.github/copilot-instructions.md`, `.github/pull_request_template.md`, `.github/instructions/`, `.github/prompts/`, `.github/skills/` |
90
91
  | **Cursor IDE** | `.cursor/rules/global.mdc`, `.cursor/mcp.json` |
91
92
  | **Gemini** | `.gemini/settings.json` |
92
93
  | **JetBrains Junie** | `.junie/guidelines.md` |
93
94
 
94
- ### Pliki wspolne
95
+ ### Shared files
95
96
 
96
- | Plik | Opis |
97
- |------|------|
98
- | `.ai/guidelines.md` | Glowne zasady projektu (source of truth) |
99
- | `.ai/instructions/` | Instrukcje kontekstowe per typ pliku |
100
- | `.ai/prompts/` | Reusable prompty AI |
101
- | `.ai/skills/` | Skillekrok-po-krok workflow |
102
- | `.ai/context/` | Kontekst projektowy (architektura, API spec, slownik) |
97
+ | File | Description |
98
+ |------|-------------|
99
+ | `.ai/guidelines.md` | Main project rules (source of truth) |
100
+ | `.ai/instructions/` | Contextual instructions per file type |
101
+ | `.ai/prompts/` | Reusable AI prompts |
102
+ | `.ai/skills/` | Skillsstep-by-step workflows |
103
+ | `.ai/context/` | Project context (architecture, API spec, glossary) |
103
104
  | `commit-instructions.md` | Commit conventions + branch naming |
104
- | `.gitignore` | Pre-konfigurowany (AI tokeny, .env, IDE) |
105
- | `.editorconfig` | Konsystentne formatowanie (utf-8, lf, spaces) |
105
+ | `.gitignore` | Pre-configured (AI tokens, .env, IDE) |
106
+ | `.editorconfig` | Consistent formatting (utf-8, lf, spaces) |
106
107
 
107
108
  ---
108
109
 
109
- ## Instructions (kontekstowe instrukcje)
110
+ ## Instructions (contextual instructions)
110
111
 
111
- Instructions to pliki z zasadami, ktore AI stosuje automatycznie gdy pracuje z pasujacymi plikami. Kazda instrukcja ma frontmatter `applyTo` z glob pattern.
112
+ Instructions are files with rules that AI applies automatically when working with matching files. Each instruction has an `applyTo` frontmatter with a glob pattern.
112
113
 
113
- ### Jak dzialaja
114
+ ### How they work
114
115
 
115
116
  ```yaml
116
117
  ---
@@ -120,205 +121,206 @@ applyTo: "**/*.vue"
120
121
  ...
121
122
  ```
122
123
 
123
- Gdy AI otwiera/edytuje plik pasujacy do `applyTo`, automatycznie laduje te instrukcje jako kontekst.
124
+ When AI opens/edits a file matching `applyTo`, it automatically loads those instructions as context.
124
125
 
125
- ### Vue 3 + TypeScript (6 instrukcji)
126
+ ### Vue 3 + TypeScript (6 instructions)
126
127
 
127
- | Instrukcja | applyTo | Czego uczy AI |
128
- |-----------|---------|---------------|
128
+ | Instruction | applyTo | What it teaches AI |
129
+ |-------------|---------|-------------------|
129
130
  | `vue.instructions.md` | `**/*.vue` | Composition API, defineProps, withDefaults, template order |
130
- | `store.instructions.md` | `**/*.store.ts, **/stores/**` | Pinia setup syntax, ref/computed, akcje async |
131
- | `api.instructions.md` | `**/*Service*.ts, **/api/**` | useApi singleton, interceptory, error handling |
132
- | `coding-conventions.instructions.md` | `**/*.vue, **/*.ts, **/*.scss` | Naming (camelCase/PascalCase), I/E/T prefixy, CSS single-dash |
131
+ | `store.instructions.md` | `**/*.store.ts, **/stores/**` | Pinia setup syntax, ref/computed, async actions |
132
+ | `api.instructions.md` | `**/*Service*.ts, **/api/**` | useApi singleton, interceptors, error handling |
133
+ | `coding-conventions.instructions.md` | `**/*.vue, **/*.ts, **/*.scss` | Naming (camelCase/PascalCase), I/E/T prefixes, CSS single-dash |
133
134
  | `composables.instructions.md` | `**/composables/**, **/use*.ts` | useAsyncDataLoader, form composable, filter composable |
134
135
  | `forms.instructions.md` | `**/*Form*.vue, **/validation*` | ValidationBuilder, computed validation, 422 handling |
135
136
 
136
- ### Vitest (1 instrukcja)
137
+ ### Vitest (1 instruction)
137
138
 
138
- | Instrukcja | applyTo | Czego uczy AI |
139
- |-----------|---------|---------------|
140
- | `vitest.instructions.md` | `**/*.test.ts, **/*.spec.ts` | mount, shallowMount, mocking, data-testid selektory |
139
+ | Instruction | applyTo | What it teaches AI |
140
+ |-------------|---------|-------------------|
141
+ | `vitest.instructions.md` | `**/*.test.ts, **/*.spec.ts` | mount, shallowMount, mocking, data-testid selectors |
141
142
 
142
- ### Storybook (1 instrukcja)
143
+ ### Storybook (1 instruction)
143
144
 
144
- | Instrukcja | applyTo | Czego uczy AI |
145
- |-----------|---------|---------------|
146
- | `storybook.instructions.md` | `**/*.stories.ts` | Meta + StoryObj, autodocs, argTypes, warianty |
145
+ | Instruction | applyTo | What it teaches AI |
146
+ |-------------|---------|-------------------|
147
+ | `storybook.instructions.md` | `**/*.stories.ts` | Meta + StoryObj, autodocs, argTypes, variants |
147
148
 
148
- ### Laravel + PHP (4 instrukcje)
149
+ ### Laravel + PHP (4 instructions)
149
150
 
150
- | Instrukcja | applyTo | Czego uczy AI |
151
- |-----------|---------|---------------|
152
- | `module.instructions.md` | `**/Modules/**` | Struktura modulu, module.json, ServiceProvider |
151
+ | Instruction | applyTo | What it teaches AI |
152
+ |-------------|---------|-------------------|
153
+ | `module.instructions.md` | `**/Modules/**` | Module structure, module.json, ServiceProvider |
153
154
  | `service-repository.instructions.md` | `**/*Service*.php, **/*Repository*.php` | CQRS (Command/Query repos), readonly services, DTO |
154
- | `api-resource.instructions.md` | `**/*Resource*.php, **/*Request*.php` | Resources z whenLoaded(), Form Requests, Policies |
155
+ | `api-resource.instructions.md` | `**/*Resource*.php, **/*Request*.php` | Resources with whenLoaded(), Form Requests, Policies |
155
156
  | `testing.instructions.md` | `**/*Test*.php, **/tests/**` | PHPUnit, data providers, factories, Laravel fakes |
156
157
 
157
- ### Playwright (1 instrukcja)
158
+ ### Playwright (1 instruction)
158
159
 
159
- | Instrukcja | applyTo | Czego uczy AI |
160
- |-----------|---------|---------------|
161
- | `playwright.instructions.md` | `**/*.spec.ts (e2e)` | Page Object Model, selektory, czekanie na elementy |
160
+ | Instruction | applyTo | What it teaches AI |
161
+ |-------------|---------|-------------------|
162
+ | `playwright.instructions.md` | `**/*.spec.ts (e2e)` | Page Object Model, selectors, waiting for elements |
162
163
 
163
- ### Docker (1 instrukcja)
164
+ ### Docker (1 instruction)
164
165
 
165
- | Instrukcja | applyTo | Czego uczy AI |
166
- |-----------|---------|---------------|
167
- | `docker.instructions.md` | `**/Dockerfile, **/docker-compose*` | Artisan w kontenerze, multi-stage build |
166
+ | Instruction | applyTo | What it teaches AI |
167
+ |-------------|---------|-------------------|
168
+ | `docker.instructions.md` | `**/Dockerfile, **/docker-compose*` | Artisan in container, multi-stage build |
168
169
 
169
- ### Dodawanie wlasnej instrukcji
170
+ ### Adding your own instruction
170
171
 
171
- 1. Utworz plik w `.ai/instructions/`:
172
+ 1. Create a file in `.ai/instructions/`:
172
173
  ```markdown
173
174
  ---
174
175
  applyTo: "**/*.graphql"
175
176
  ---
176
177
  # GraphQL Instructions
177
- Zasady specyficzne dla plikow GraphQL...
178
+ Rules specific to GraphQL files...
178
179
  ```
179
- 2. Mirror do `.github/instructions/` dzieje sie automatycznie jesli Copilot jest wybrany
180
+ 2. Mirror to `.github/instructions/` happens automatically if Copilot is selected
180
181
 
181
182
  ---
182
183
 
183
- ## Guidelines — co zawiera
184
+ ## Guidelines — what it contains
184
185
 
185
- Plik `.ai/guidelines.md` jest skladany automatycznie z:
186
- 1. **Header** — project overview, tech stack, komendy, CI, commit rules, branch naming, sekcja Forbidden, testing strategy
187
- 2. **Sekcje pakietow** — kazdy wybrany pack dolacza swoja sekcje (np. Vue 3 architecture, Laravel conventions)
186
+ The `.ai/guidelines.md` file is assembled automatically from:
187
+ 1. **Header** — project overview, tech stack, commands, CI, commit rules, branch naming, Forbidden section, testing strategy
188
+ 2. **Pack sections** — each selected pack appends its section (e.g. Vue 3 architecture, Laravel conventions)
188
189
 
189
- ### Sekcje w guidelines
190
+ ### Sections in guidelines
190
191
 
191
- | Sekcja | Co zawiera |
192
- |--------|-----------|
193
- | Project Overview | Nazwa, opis, tech stack |
192
+ | Section | Contents |
193
+ |---------|----------|
194
+ | Project Overview | Name, description, tech stack |
194
195
  | Commands | test, build, lint, CI |
195
- | Commits & Branches | Format commitow, branch naming convention |
196
- | CI Pipeline | Komenda ktora musi przejsc przed PR |
197
- | Forbidden | Czego AI NIE wolno robic bez zgody |
198
- | Testing Strategy | Kiedy unit, integration, E2E, regression |
199
- | Skills | Pointer do `.ai/skills/` |
200
- | Instructions | Pointer do `.ai/instructions/` |
201
- | Context | Pointer do `.ai/context/` |
196
+ | Commits & Branches | Commit format, branch naming convention |
197
+ | CI Pipeline | Command that must pass before PR |
198
+ | Forbidden | What AI must NOT do without approval |
199
+ | Testing Strategy | When to use unit, integration, E2E, regression |
200
+ | Skills | Pointer to `.ai/skills/` |
201
+ | Instructions | Pointer to `.ai/instructions/` |
202
+ | Context | Pointer to `.ai/context/` |
202
203
 
203
204
  ---
204
205
 
205
- ## Skills (krok-po-krok workflow)
206
+ ## Skills (step-by-step workflows)
206
207
 
207
- Skills to gotowe procedury, ktore AI wykonuje krok po kroku. Kazdy skill ma trigger, input, steps i verification checklist.
208
+ Skills are ready-made procedures that AI executes step by step. Each skill has a trigger, input, steps, and verification checklist.
208
209
 
209
- ### Jak uzywac
210
+ ### How to use
210
211
 
211
- Powiedz AI:
212
+ Tell the AI:
212
213
 
213
214
  ```
214
- "Uzywajac skilla smf-new-module, stworz modul uzytkownicy"
215
- "Wykonaj skilla smf-debug dla bledu TypeError w UserService"
216
- "Postepuj wedlug skilla smf-pr-prepare"
217
- "wtf" — szybki status sesji
215
+ "Using skill smf-new-module, create a users module"
216
+ "Run skill smf-debug for the TypeError in UserService"
217
+ "Follow skill smf-pr-prepare"
218
+ "wtf" — quick session status
218
219
  ```
219
220
 
220
- AI przeczyta `SKILL.md` i wykona kroki po kolei.
221
-
222
- Wszystkie skille maja prefix `smf-` (Symfonia). Konfigurator pozwala wybrac checkboxami ktore skille zainstalowac.
223
-
224
- ### Skills bazowe (14 skilli)
225
-
226
- | Skill | Cel | Kiedy uzywac | Wymaga |
227
- |-------|-----|-------------|--------|
228
- | `smf-debug` | Systematyczne debugowanie | Bug, blad, nieoczekiwane zachowanie | — |
229
- | `smf-refactor` | Bezpieczny refactoring | Wydzielanie, upraszczanie, przenoszenie kodu | — |
230
- | `smf-write-tests` | Dodanie testow | Istniejacy kod bez pokrycia testami | — |
231
- | `smf-pr-prepare` | Przygotowanie PR | Przed push — self-review, cleanup, opis | — |
232
- | `smf-hotfix` | Szybka poprawka produkcji | Branch z main, minimalny fix, regression test | — |
233
- | `smf-wtf` | Szybki status sesji | "Gdzie bylem?", resume po przerwie | — |
234
- | `smf-babysit-prs` | Monitoring PRow do review | Cykliczne sprawdzanie nowych PRow | gh CLI |
235
- | `smf-my-prs` | Status wlasnych PRow | Sprawdzenie approvals, komentarzy | gh CLI |
236
- | `smf-pr-dashboard` | Dashboard PRow | Combo babysit-prs + my-prs z loopem | gh CLI |
237
- | `smf-jira-task` | Pelny workflow Jira | Ticket → branch → impl → PR → Jira update | Jira MCP + gh CLI |
238
- | `smf-jira-explorer` | Przegladanie Jira | Sprint, epic, backlog, szukanie, statystyki | Jira MCP |
239
- | `smf-fill-worklogs` | Wypelnianie worklogow | Uzupelnianie godzin na bazie commitow git | Jira MCP |
240
- | `smf-grafana-logs` | Logi z Grafany | Debugowanie prodquery Loki, analiza bledow | Grafana MCP |
241
- | `smf-aws-analysis` | Analiza AWS | Dobor serwisow, architektura, koszty | Context7 MCP |
242
-
243
- ### Skills Vue 3 + TypeScript (3 skille)
244
-
245
- | Skill | Cel | Kiedy uzywac |
246
- |-------|-----|-------------|
247
- | `smf-new-module` | Nowy modul od zera | types → service → store → composables → views → routes → testy |
248
- | `smf-new-component` | Nowy komponent | Komponent + story + test + data-testid |
249
- | `smf-api-integration` | Podlaczenie do API | types + mapper service store → composable → widok |
250
-
251
- ### Skills Laravel + PHP (7 skilli)
252
-
253
- | Skill | Cel | Kiedy uzywac |
254
- |-------|-----|-------------|
255
- | `smf-new-module` | Nowy modul od zera | model → migration → CQRS repos → service → DTO → controller → testy |
256
- | `smf-new-endpoint` | Nowy endpoint API | requestcontrollerDTO → service → resourcepolicyroute → testy |
257
- | `smf-migration` | Migracja DB | create/modify tablerollback testmodel updatefactory |
258
- | `smf-queued-job` | Job / Event / Listener | Job classretry/backoff failed handler idempotentnosc → testy |
259
- | `smf-testing-feature` | Testy feature (HTTP/DB) | Konwencje testow feature, delta pattern, data resilience |
260
- | `smf-testing-unit` | Testy jednostkowe | Izolowane testy bez DB, PHPUnit mocks, data providers |
261
- | `smf-testing-manual` | Testy manualne HTTP | JetBrains HTTP Client pliki `.http` do interaktywnego testowania API |
262
-
263
- ### Skills Playwright (3 skille)
264
-
265
- | Skill | Cel | Kiedy uzywac |
266
- |-------|-----|-------------|
267
- | `smf-playwright` | Nowy test E2E | Page Object → scenariusz → asercje |
268
- | `smf-playwright-record` | Nagrywanie testu | codegencleanupPage Object |
269
- | `smf-playwright-codereview` | Review testu E2E | Checklist jakosci testu Playwright |
270
-
271
- ### Tworzenie wlasnego skilla
272
-
273
- 1. Utworz katalog w `.ai/skills/smf-nazwa-skilla/`
274
- 2. Skopiuj szablon: `cp .ai/skills/TEMPLATE.md .ai/skills/smf-nazwa-skilla/SKILL.md`
275
- 3. Wypelnij sekcje: Trigger, Input, Steps, Verification checklist
276
- 4. Jesli uzywasz Copilot, skopiuj do `.github/skills/`
221
+ AI reads `SKILL.md` and executes the steps sequentially.
222
+
223
+ All skills have the `smf-` prefix (Symfonia). The configurator lets you choose which skills to install with checkboxes.
224
+
225
+ ### Base skills (15 skills)
226
+
227
+ | Skill | Purpose | When to use | Requires |
228
+ |-------|---------|-------------|----------|
229
+ | `smf-debug` | Systematic debugging | Bug, error, unexpected behavior | — |
230
+ | `smf-refactor` | Safe refactoring | Extracting, simplifying, moving code | — |
231
+ | `smf-write-tests` | Adding tests | Existing code without test coverage | — |
232
+ | `smf-pr-prepare` | PR preparation | Before push — self-review, cleanup, description | — |
233
+ | `smf-hotfix` | Quick production fix | Branch from main, minimal fix, regression test | — |
234
+ | `smf-wtf` | Quick session status | "Where was I?", resume after break | — |
235
+ | `smf-babysit-prs` | PR review monitoring | Periodic checking for new PRs to review | gh CLI |
236
+ | `smf-my-prs` | Own PR status | Check approvals, comments | gh CLI |
237
+ | `smf-pr-dashboard` | PR dashboard | Combo babysit-prs + my-prs with loop | gh CLI |
238
+ | `smf-jira-task` | Full Jira workflow | Ticket → branch → impl → PR → Jira update | Jira MCP + gh CLI |
239
+ | `smf-jira-explorer` | Browse Jira | Sprint, epic, backlog, search, statistics | Jira MCP |
240
+ | `smf-fill-worklogs` | Fill worklogs | Populate hours based on git commits | Jira MCP |
241
+ | `smf-grafana-logs` | Grafana logs | Production debuggingLoki queries, error analysis | Grafana MCP |
242
+ | `smf-aws-analysis` | AWS analysis | Service selection, architecture, costs | Context7 MCP |
243
+ | `smf-figma-analysis` | Figma mockup analysis | Figma selection link → UI specification | Figma MCP |
244
+
245
+ ### Vue 3 + TypeScript skills (3 skills)
246
+
247
+ | Skill | Purpose | When to use |
248
+ |-------|---------|-------------|
249
+ | `smf-new-module` | New module from scratch | types service store composables → views → routes → tests |
250
+ | `smf-new-component` | New component | Component + story + test + data-testid |
251
+ | `smf-api-integration` | API integration | types + mapper → service → store → composable → view |
252
+
253
+ ### Laravel + PHP skills (7 skills)
254
+
255
+ | Skill | Purpose | When to use |
256
+ |-------|---------|-------------|
257
+ | `smf-new-module` | New module from scratch | modelmigrationCQRS repos → service → DTOcontrollertests |
258
+ | `smf-new-endpoint` | New API endpoint | request controller DTO service resource policy route → tests |
259
+ | `smf-migration` | DB migration | create/modify table rollback testmodel updatefactory |
260
+ | `smf-queued-job` | Job / Event / Listener | Job class retry/backoff failed handler → idempotency → tests |
261
+ | `smf-testing-feature` | Feature tests (HTTP/DB) | Feature test conventions, delta pattern, data resilience |
262
+ | `smf-testing-unit` | Unit tests | Isolated tests without DB, PHPUnit mocks, data providers |
263
+ | `smf-testing-manual` | Manual HTTP tests | JetBrains HTTP Client — `.http` files for interactive API testing |
264
+
265
+ ### Playwright skills (3 skills)
266
+
267
+ | Skill | Purpose | When to use |
268
+ |-------|---------|-------------|
269
+ | `smf-playwright` | New E2E test | Page Object scenarioassertions |
270
+ | `smf-playwright-record` | Record test | codegen cleanup Page Object |
271
+ | `smf-playwright-codereview` | E2E test review | Playwright test quality checklist |
272
+
273
+ ### Creating your own skill
274
+
275
+ 1. Create a directory in `.ai/skills/smf-your-skill/`
276
+ 2. Copy the template: `cp .ai/skills/TEMPLATE.md .ai/skills/smf-your-skill/SKILL.md`
277
+ 3. Fill in sections: Trigger, Input, Steps, Verification checklist
278
+ 4. If using Copilot, copy to `.github/skills/`
277
279
 
278
280
  ---
279
281
 
280
- ## Prompts (reusable prompty)
282
+ ## Prompts (reusable prompts)
281
283
 
282
- Prompty to gotowe polecenia dla AI do wykonania zlozonych zadan jednym wywolaniem.
284
+ Prompts are ready-made commands for AI to execute complex tasks in a single invocation.
283
285
 
284
- ### Dostepne prompty
286
+ ### Available prompts
285
287
 
286
- | Prompt | Cel | Jak uzyc |
287
- |--------|-----|----------|
288
- | `codereview.prompt.md` | Kompleksowy code review brancha | "Wykonaj code review wg `.ai/prompts/codereview.prompt.md`" |
289
- | `security-review.prompt.md` | Audyt bezpieczenstwa (OWASP Top 10) | "Wykonaj security review wg `.ai/prompts/security-review.prompt.md`" |
290
- | `duplicate-code-analysis.prompt.md` | Wykrywanie duplikatow kodu | "Znajdz duplikaty wg `.ai/prompts/duplicate-code-analysis.prompt.md`" |
288
+ | Prompt | Purpose | How to use |
289
+ |--------|---------|------------|
290
+ | `codereview.prompt.md` | Comprehensive branch code review | "Run code review per `.ai/prompts/codereview.prompt.md`" |
291
+ | `security-review.prompt.md` | Security audit (OWASP Top 10) | "Run security review per `.ai/prompts/security-review.prompt.md`" |
292
+ | `duplicate-code-analysis.prompt.md` | Code duplication detection | "Find duplicates per `.ai/prompts/duplicate-code-analysis.prompt.md`" |
291
293
 
292
- ### Uzycie w roznych narzedziach
294
+ ### Usage across tools
293
295
 
294
296
  **Claude Code:**
295
297
  ```
296
- Przeczytaj .ai/prompts/codereview.prompt.md i wykonaj review tego brancha
298
+ Read .ai/prompts/codereview.prompt.md and review this branch
297
299
  ```
298
300
 
299
301
  **GitHub Copilot Chat:**
300
302
  ```
301
- @workspace Wykonaj code review zgodnie z .github/prompts/codereview.prompt.md
303
+ @workspace Run code review per .github/prompts/codereview.prompt.md
302
304
  ```
303
305
 
304
306
  ---
305
307
 
306
- ## Serwery MCP
308
+ ## MCP Servers
307
309
 
308
- MCP (Model Context Protocol) pozwala AI na komunikacje z zewnetrznymi systemami.
310
+ MCP (Model Context Protocol) allows AI to communicate with external systems.
309
311
 
310
- | Serwer | Do czego | Wymaga tokena |
311
- |--------|----------|---------------|
312
- | **Jira Cloud** | Pobieranie ticketow do kontekstu AI | Tak |
313
- | **Bitbucket Cloud** | Integracja z repozytorium | Tak |
314
- | **Figma** | Analiza mockupow UI | Tak |
315
- | **Grafana** | Logi aplikacji (Loki) | Tak |
316
- | **Context7** | Dokumentacja bibliotek | Nie |
312
+ | Server | Purpose | Requires token |
313
+ |--------|---------|----------------|
314
+ | **Jira Cloud** | Fetch tickets for AI context | Yes |
315
+ | **Bitbucket Cloud** | Repository integration | Yes |
316
+ | **Figma** | UI mockup analysis | Yes |
317
+ | **Grafana** | Application logs (Loki) | Yes |
318
+ | **Context7** | Library documentation | No |
317
319
 
318
- ### Gdzie wygenerowac tokeny
320
+ ### Where to generate tokens
319
321
 
320
- | Serwis | Link |
321
- |--------|------|
322
+ | Service | Link |
323
+ |---------|------|
322
324
  | Jira API Token | https://id.atlassian.com/manage-profile/security/api-tokens |
323
325
  | Bitbucket App Password | https://bitbucket.org/account/settings/app-passwords/ |
324
326
  | Figma Access Token | Figma → Settings → Personal access tokens |
@@ -326,76 +328,77 @@ MCP (Model Context Protocol) pozwala AI na komunikacje z zewnetrznymi systemami.
326
328
 
327
329
  ### MCP pre-selection
328
330
 
329
- Skille deklaruja wymagane serwery MCP. Gdy wybierzesz np. `smf-jira-task`, Jira Cloud zostanie automatycznie zaznaczony w kroku MCP z informacja ktore skille go wymagaja.
331
+ Skills declare required MCP servers. When you select e.g. `smf-jira-task`, Jira Cloud will be automatically checked in the MCP step with information about which skills require it.
330
332
 
331
- | Skill | Wymaga MCP |
332
- |-------|-----------|
333
+ | Skill | Requires MCP |
334
+ |-------|-------------|
333
335
  | `smf-jira-task`, `smf-jira-explorer`, `smf-fill-worklogs` | Jira Cloud |
334
336
  | `smf-grafana-logs` | Grafana |
335
337
  | `smf-aws-analysis` | Context7 |
338
+ | `smf-figma-analysis` | Figma |
336
339
 
337
340
  ### Auto-detect
338
341
 
339
- Konfigurator automatycznie wykrywa z repozytorium git:
340
- - **Platforme** — GitHub / Bitbucket / GitLab (z `git remote`)
341
- - **JIRA prefix** — z nazw branchy (np. `feature/PROJ-123` → `PROJ`)
342
+ The configurator automatically detects from the git repository:
343
+ - **Platform** — GitHub / Bitbucket / GitLab (from `git remote`)
344
+ - **JIRA prefix** — from branch names (e.g. `feature/PROJ-123` → `PROJ`)
342
345
  - **Base branch** — develop / main / master
343
346
 
344
- Wykryte wartosci sa proponowane jako domyslnemozesz je zmienic.
347
+ Detected values are suggested as defaultsyou can change them.
345
348
 
346
- ### Konfiguracja automatyczna
349
+ ### Automatic configuration
347
350
 
348
- Instalator automatycznie:
349
- - Zapisuje config do `.claude/settings.local.json` i `.cursor/mcp.json`
350
- - Rejestruje serwery w Claude CLI (`claude mcp add -s project`)
351
- - Weryfikacja: `claude mcp list`
351
+ The installer automatically:
352
+ - Saves config to `.claude/settings.local.json` and `.cursor/mcp.json`
353
+ - Registers servers in Claude CLI (`claude mcp add -s project`)
354
+ - Verification: `claude mcp list`
352
355
 
353
356
  ---
354
357
 
355
358
  ## GSD (Get Shit Done)
356
359
 
357
- GSD to system do strukturyzacji pracy z AI planowanie, wykonanie i weryfikacja w powtarzalnym procesie.
360
+ GSD is a system for structuring AI workplanning, execution, and verification in a repeatable process.
358
361
 
359
- ### Dlaczego wymagany
362
+ ### Why it's required
360
363
 
361
- - Zapobiega **context rot** (degradacji jakosci AI po dlugiej sesji)
362
- - Strukturyzuje prace w fazy z checkpointami
363
- - Automatycznie mapuje codebase w istniejacych projektach
364
+ - Prevents **context rot** (AI quality degradation during long sessions)
365
+ - Structures work into phases with checkpoints
366
+ - Automatically maps the codebase in existing projects
364
367
 
365
- ### Instalacja
368
+ ### Installation
366
369
 
367
370
  ```bash
368
371
  npx get-shit-done-cc@latest
369
372
  ```
370
373
 
371
- ### Kluczowe komendy
374
+ ### Key commands
372
375
 
373
- | Komenda | Cel |
374
- |---------|-----|
375
- | `/gsd-new-project` | Inicjalizacja projektu |
376
- | `/gsd-plan-phase` | Planowanie fazy |
377
- | `/gsd-execute-phase` | Wykonanie |
378
- | `/gsd-verify-work` | Weryfikacja UAT |
379
- | `/gsd-progress` | Status i nastepne kroki |
380
- | `/gsd-debug` | Systematyczny debugging |
381
- | `/gsd-map-codebase` | Mapowanie istniejacego kodu |
376
+ | Command | Purpose |
377
+ |---------|---------|
378
+ | `/gsd-new-project` | Project initialization |
379
+ | `/gsd-plan-phase` | Phase planning |
380
+ | `/gsd-execute-phase` | Execution |
381
+ | `/gsd-verify-work` | UAT verification |
382
+ | `/gsd-progress` | Status and next steps |
383
+ | `/gsd-debug` | Systematic debugging |
384
+ | `/gsd-map-codebase` | Existing code mapping |
382
385
 
383
386
  ---
384
387
 
385
- ## Struktura zainstalowanych plikow
388
+ ## Installed file structure
386
389
 
387
390
  ```
388
- projekt/
391
+ project/
389
392
  ├── .ai/
390
- │ ├── guidelines.md # Source of truth (header + wybrane pakiety)
391
- │ ├── instructions/ # Kontekstowe instrukcje (applyTo)
393
+ │ ├── guidelines.md # Source of truth (header + selected packs)
394
+ │ ├── instructions/ # Contextual instructions (applyTo)
392
395
  │ │ ├── vue.instructions.md
393
396
  │ │ └── ...
394
- │ ├── prompts/ # Reusable prompty
397
+ │ ├── prompts/ # Reusable prompts
395
398
  │ │ ├── codereview.prompt.md
396
399
  │ │ ├── security-review.prompt.md
397
400
  │ │ └── duplicate-code-analysis.prompt.md
398
- │ ├── skills/ # Workflow skille
401
+ │ ├── skills/ # Workflow skills
399
402
  │ │ ├── smf-debug/SKILL.md
400
403
  │ │ ├── smf-refactor/SKILL.md
401
404
  │ │ ├── smf-write-tests/SKILL.md
@@ -412,16 +415,16 @@ projekt/
412
415
  │ │ ├── smf-aws-analysis/SKILL.md
413
416
  │ │ ├── smf-figma-analysis/SKILL.md
414
417
  │ │ └── [smf-pack-specific]/SKILL.md
415
- │ └── context/ # Kontekst projektowy
416
- │ └── README.md # (tu dodaj architecture.md, api-spec.md, etc.)
418
+ │ └── context/ # Project context
419
+ │ └── README.md # (add architecture.md, api-spec.md, etc. here)
417
420
  ├── .claude/
418
421
  │ └── settings.local.json # Permissions (allow/deny) + MCP servers
419
422
  ├── .github/
420
423
  │ ├── copilot-instructions.md # Pointer → .ai/guidelines.md
421
- │ ├── pull_request_template.md # Szablon PR
422
- │ ├── instructions/ # Mirror z .ai/instructions/
423
- │ ├── prompts/ # Mirror z .ai/prompts/
424
- │ └── skills/ # Mirror z .ai/skills/
424
+ │ ├── pull_request_template.md # PR template
425
+ │ ├── instructions/ # Mirror from .ai/instructions/
426
+ │ ├── prompts/ # Mirror from .ai/prompts/
427
+ │ └── skills/ # Mirror from .ai/skills/
425
428
  ├── .cursor/
426
429
  │ ├── rules/global.mdc # Pointer → .ai/guidelines.md
427
430
  │ └── mcp.json # MCP servers
@@ -429,101 +432,102 @@ projekt/
429
432
  │ └── settings.json # Pointer → .ai/guidelines.md
430
433
  ├── .junie/
431
434
  │ └── guidelines.md # Pointer → .ai/guidelines.md
432
- ├── .editorconfig # Formatowanie (utf-8, lf, spaces)
433
- ├── .gitignore # Pre-konfigurowany (AI tokeny, .env)
435
+ ├── .editorconfig # Formatting (utf-8, lf, spaces)
436
+ ├── .gitignore # Pre-configured (AI tokens, .env)
434
437
  ├── CLAUDE.md # Claude Code entry point
435
438
  └── commit-instructions.md # Commit conventions + branch naming
436
439
  ```
437
440
 
438
- > **Mirror**: `.ai/instructions/`, `.ai/prompts/` i `.ai/skills/` sa automatycznie kopiowane do `.github/` jesli wybrany jest GitHub Copilot.
441
+ > **Mirror**: `.ai/instructions/`, `.ai/prompts/`, and `.ai/skills/` are automatically copied to `.github/` if GitHub Copilot is selected.
439
442
 
440
443
  ---
441
444
 
442
- ## Rozwoj pakietu
445
+ ## Package development
443
446
 
444
- ### Dodanie nowego packa
447
+ ### Adding a new pack
445
448
 
446
- 1. Utworz `templates/packs/nazwa-packa/`
447
- 2. Dodaj `pack.json`:
449
+ 1. Create `templates/packs/pack-name/`
450
+ 2. Add `pack.json`:
448
451
  ```json
449
452
  {
450
- "name": "Nazwa Packa",
451
- "description": "Opis co zawiera",
453
+ "name": "Pack Name",
454
+ "description": "What it contains",
452
455
  "default": false,
453
456
  "placeholders": {
454
457
  "MY_PLACEHOLDER": {
455
- "question": "Pytanie wyswietlane uzytkownikowi",
456
- "default": "wartosc domyslna"
458
+ "question": "Question displayed to user (Polish)",
459
+ "question_en": "Question displayed to user (English)",
460
+ "default": "default value"
457
461
  }
458
462
  }
459
463
  }
460
464
  ```
461
- 3. Dodaj instrukcje w `_ai/instructions/` (z frontmatter `applyTo`)
462
- 4. Dodaj skille w `_ai/skills/`
463
- 5. Opcjonalnie dodaj `_guidelines.md` — sekcja dolaczana do guidelines.md
464
-
465
- ### Dodanie nowego skilla
466
-
467
- 1. Utworz `templates/[base|packs/pack]/_ai/skills/nazwa/SKILL.md`
468
- 2. Uzyj struktury: Trigger → Input → Steps → Verification checklist
469
- 3. Uzywaj `{{PLACEHOLDER}}` dla wartosci zastepowanych podczas instalacji
470
-
471
- ### Dostepne placeholdery
472
-
473
- | Placeholder | Opis |
474
- |-------------|------|
475
- | `{{PROJECT_NAME}}` | Nazwa projektu |
476
- | `{{PROJECT_DESCRIPTION}}` | Krotki opis projektu |
477
- | `{{TECH_STACK}}` | Tech stack (wolny tekst) |
478
- | `{{CI_COMMAND}}` | Komenda CI (wszystkie checki) |
479
- | `{{MODULE_PATH}}` | Sciezka do modulow |
480
- | `{{COMPONENT_LIB_PATH}}` | Sciezka do komponentow UI |
481
- | `{{COMPONENT_LIB_IMPORT}}` | Import komponentow |
482
- | `{{API_BASE_URL}}` | Bazowy URL API |
483
- | `{{TEST_COMMAND}}` | Komenda testow |
484
- | `{{BUILD_COMMAND}}` | Komenda builda |
485
- | `{{LINT_COMMAND}}` | Komenda lintera |
486
- | `{{DOCKER_CONTAINER}}` | Nazwa kontenera Docker |
487
- | `{{JIRA_PREFIX}}` | Prefix taskow JIRA |
488
- | `{{PLAYWRIGHT_DIR}}` | Katalog Playwright |
489
- | `{{BASE_URL}}` | Base URL aplikacji |
490
-
491
- ### Struktura templates
465
+ 3. Add instructions in `_ai/instructions/` (with `applyTo` frontmatter)
466
+ 4. Add skills in `_ai/skills/`
467
+ 5. Optionally add `_guidelines.md` — section appended to guidelines.md
468
+
469
+ ### Adding a new skill
470
+
471
+ 1. Create `templates/[base|packs/pack]/_ai/skills/name/SKILL.md`
472
+ 2. Use the structure: Trigger → Input → Steps → Verification checklist
473
+ 3. Use `{{PLACEHOLDER}}` for values replaced during installation
474
+
475
+ ### Available placeholders
476
+
477
+ | Placeholder | Description |
478
+ |-------------|-------------|
479
+ | `{{PROJECT_NAME}}` | Project name |
480
+ | `{{PROJECT_DESCRIPTION}}` | Short project description |
481
+ | `{{TECH_STACK}}` | Tech stack (free text) |
482
+ | `{{CI_COMMAND}}` | CI command (all checks) |
483
+ | `{{MODULE_PATH}}` | Modules path |
484
+ | `{{COMPONENT_LIB_PATH}}` | UI components path |
485
+ | `{{COMPONENT_LIB_IMPORT}}` | Components import path |
486
+ | `{{API_BASE_URL}}` | API base URL |
487
+ | `{{TEST_COMMAND}}` | Test command |
488
+ | `{{BUILD_COMMAND}}` | Build command |
489
+ | `{{LINT_COMMAND}}` | Lint command |
490
+ | `{{DOCKER_CONTAINER}}` | Docker container name |
491
+ | `{{JIRA_PREFIX}}` | JIRA task prefix |
492
+ | `{{PLAYWRIGHT_DIR}}` | Playwright directory |
493
+ | `{{BASE_URL}}` | Application base URL |
494
+
495
+ ### Templates structure
492
496
 
493
497
  ```
494
498
  templates/
495
- ├── base/ # Wspolne dla wszystkich pakietow
499
+ ├── base/ # Shared across all packs
496
500
  │ ├── CLAUDE.md
497
501
  │ ├── commit-instructions.md
498
502
  │ ├── _gitignore # → .gitignore
499
503
  │ ├── _editorconfig # → .editorconfig
500
504
  │ ├── _ai/ # → .ai/
501
- │ │ ├── _guidelines_header.md # Naglowek guidelines
502
- │ │ ├── context/ # Kontekst projektowy
503
- │ │ ├── prompts/ # codereview, security-review, figma, duplicates
504
- │ │ └── skills/ # 14 skilli bazowych (smf-*)
505
+ │ │ ├── _guidelines_header.md # Guidelines header
506
+ │ │ ├── context/ # Project context
507
+ │ │ ├── prompts/ # codereview, security-review, duplicates
508
+ │ │ └── skills/ # 15 base skills (smf-*)
505
509
  │ ├── _claude/ # → .claude/ (permissions + deny)
506
510
  │ ├── _github/ # → .github/ (copilot pointer + PR template)
507
511
  │ ├── _cursor/ # → .cursor/
508
512
  │ ├── _gemini/ # → .gemini/
509
513
  │ └── _junie/ # → .junie/
510
514
  └── packs/
511
- ├── vue3/ # 6 instr. · 3 skille
515
+ ├── vue3/ # 6 instr. · 3 skills
512
516
  │ ├── pack.json
513
- │ ├── _guidelines.md # Sekcja dolaczana do guidelines
517
+ │ ├── _guidelines.md # Section appended to guidelines
514
518
  │ └── _ai/instructions/
515
519
  ├── vitest/ # 1 instr.
516
520
  ├── storybook/ # 1 instr.
517
- ├── laravel/ # 4 instr. · 7 skilli
518
- ├── playwright/ # 1 instr. · 3 skille
521
+ ├── laravel/ # 4 instr. · 7 skills
522
+ ├── playwright/ # 1 instr. · 3 skills
519
523
  └── docker/ # 1 instr.
520
524
  ```
521
525
 
522
- > Katalogi z prefixem `_` sa zamieniane na `.` podczas instalacji.
523
- > Katalogi per narzedzie (`_claude/`, `_github/`, etc.) sa kopiowane tylko jesli to narzedzie zostalo wybrane.
526
+ > Directories with `_` prefix are converted to `.` during installation.
527
+ > Per-tool directories (`_claude/`, `_github/`, etc.) are only copied if the tool is selected.
524
528
 
525
529
  ---
526
530
 
527
- ## Licencja
531
+ ## License
528
532
 
529
533
  MIT
package/lib/questions.mjs CHANGED
@@ -16,6 +16,7 @@ const SKILL_MCP_DEPS = {
16
16
  'smf-fill-worklogs': ['mcpJira'],
17
17
  'smf-grafana-logs': ['mcpGrafana'],
18
18
  'smf-aws-analysis': ['mcpContext7'],
19
+ 'smf-figma-analysis': ['mcpFigma'],
19
20
  };
20
21
 
21
22
  const SKILL_CLI_DEPS = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "symfonia-ai-tools",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "description": "AI tooling setup for your project - Claude Code, GitHub Copilot, Cursor, Gemini, Junie, GSD",
5
5
  "type": "module",
6
6
  "bin": {