symfonia-ai-tools 1.0.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 +489 -0
- package/bin/cli.mjs +35 -0
- package/lib/installer.mjs +495 -0
- package/lib/questions.mjs +332 -0
- package/lib/ui.mjs +76 -0
- package/lib/utils.mjs +231 -0
- package/package.json +26 -0
- package/templates/base/CLAUDE.md +34 -0
- package/templates/base/_ai/_guidelines_header.md +70 -0
- package/templates/base/_ai/context/README.md +20 -0
- package/templates/base/_ai/prompts/codereview.prompt.md +324 -0
- package/templates/base/_ai/prompts/duplicate-code-analysis.prompt.md +128 -0
- package/templates/base/_ai/prompts/figma-analysis.prompt.md +155 -0
- package/templates/base/_ai/prompts/security-review.prompt.md +46 -0
- package/templates/base/_ai/skills/README.md +80 -0
- package/templates/base/_ai/skills/TEMPLATE.md +106 -0
- package/templates/base/_ai/skills/babysit-prs/SKILL.md +105 -0
- package/templates/base/_ai/skills/debug/SKILL.md +93 -0
- package/templates/base/_ai/skills/fill-worklogs/SKILL.md +158 -0
- package/templates/base/_ai/skills/hotfix/SKILL.md +52 -0
- package/templates/base/_ai/skills/jira-task/SKILL.md +170 -0
- package/templates/base/_ai/skills/my-prs/SKILL.md +78 -0
- package/templates/base/_ai/skills/pr-dashboard/SKILL.md +43 -0
- package/templates/base/_ai/skills/pr-prepare/SKILL.md +106 -0
- package/templates/base/_ai/skills/refactor/SKILL.md +87 -0
- package/templates/base/_ai/skills/write-tests/SKILL.md +109 -0
- package/templates/base/_claude/settings.local.json +37 -0
- package/templates/base/_cursor/rules/global.mdc +7 -0
- package/templates/base/_editorconfig +18 -0
- package/templates/base/_gemini/settings.json +3 -0
- package/templates/base/_github/copilot-instructions.md +1 -0
- package/templates/base/_github/pull_request_template.md +23 -0
- package/templates/base/_gitignore +22 -0
- package/templates/base/_junie/guidelines.md +1 -0
- package/templates/base/commit-instructions.md +92 -0
- package/templates/packs/docker/_ai/instructions/docker.instructions.md +193 -0
- package/templates/packs/docker/_guidelines.md +10 -0
- package/templates/packs/docker/pack.json +8 -0
- package/templates/packs/laravel/_ai/instructions/api-resource.instructions.md +251 -0
- package/templates/packs/laravel/_ai/instructions/module.instructions.md +133 -0
- package/templates/packs/laravel/_ai/instructions/service-repository.instructions.md +215 -0
- package/templates/packs/laravel/_ai/instructions/testing.instructions.md +278 -0
- package/templates/packs/laravel/_ai/skills/migration/SKILL.md +172 -0
- package/templates/packs/laravel/_ai/skills/new-endpoint/SKILL.md +165 -0
- package/templates/packs/laravel/_ai/skills/new-module/SKILL.md +208 -0
- package/templates/packs/laravel/_ai/skills/queued-job/SKILL.md +248 -0
- package/templates/packs/laravel/_ai/skills/testing-feature/SKILL.md +196 -0
- package/templates/packs/laravel/_ai/skills/testing-manual/SKILL.md +186 -0
- package/templates/packs/laravel/_ai/skills/testing-unit/SKILL.md +200 -0
- package/templates/packs/laravel/_guidelines.md +25 -0
- package/templates/packs/laravel/pack.json +6 -0
- package/templates/packs/playwright/_ai/instructions/playwright.instructions.md +219 -0
- package/templates/packs/playwright/_ai/skills/playwright/README.md +194 -0
- package/templates/packs/playwright/_ai/skills/playwright/SKILL.md +1245 -0
- package/templates/packs/playwright/_ai/skills/playwright-codereview/SKILL.md +642 -0
- package/templates/packs/playwright/_ai/skills/playwright-record/README.md +87 -0
- package/templates/packs/playwright/_ai/skills/playwright-record/SKILL.md +564 -0
- package/templates/packs/playwright/_guidelines.md +12 -0
- package/templates/packs/playwright/pack.json +9 -0
- package/templates/packs/storybook/_ai/instructions/storybook.instructions.md +181 -0
- package/templates/packs/storybook/pack.json +6 -0
- package/templates/packs/vitest/_ai/instructions/vitest.instructions.md +688 -0
- package/templates/packs/vitest/pack.json +6 -0
- package/templates/packs/vue3/_ai/instructions/api.instructions.md +163 -0
- package/templates/packs/vue3/_ai/instructions/coding-conventions.instructions.md +160 -0
- package/templates/packs/vue3/_ai/instructions/composables.instructions.md +218 -0
- package/templates/packs/vue3/_ai/instructions/forms.instructions.md +227 -0
- package/templates/packs/vue3/_ai/instructions/store.instructions.md +504 -0
- package/templates/packs/vue3/_ai/instructions/vue.instructions.md +339 -0
- package/templates/packs/vue3/_ai/skills/api-integration/SKILL.md +195 -0
- package/templates/packs/vue3/_ai/skills/new-component/SKILL.md +133 -0
- package/templates/packs/vue3/_ai/skills/new-module/SKILL.md +177 -0
- package/templates/packs/vue3/_guidelines.md +45 -0
- package/templates/packs/vue3/pack.json +11 -0
package/README.md
ADDED
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
# symfonia-ai-tools
|
|
2
|
+
|
|
3
|
+
Interaktywny konfigurator AI toolingu dla projektow. Jeden `npx` — kompletna konfiguracja Claude Code, GitHub Copilot, Cursor, Gemini, Junie i GSD.
|
|
4
|
+
|
|
5
|
+
## Instalacja
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx symfonia-ai-tools
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Konfigurator przeprowadzi Cie przez:
|
|
12
|
+
1. Wybor typu projektu, opis, tech stack
|
|
13
|
+
2. Wybor pakietow instrukcji i skilli (checkboxy)
|
|
14
|
+
3. Narzedzia AI do skonfigurowania (checkboxy)
|
|
15
|
+
4. Wybor skilli do zainstalowania (checkboxy — bazowe + z wybranych pakietow)
|
|
16
|
+
5. Sciezki, komendy, CI pipeline, prefix JIRA
|
|
17
|
+
6. Serwery MCP (checkboxy + tokeny)
|
|
18
|
+
7. Instalacje CLI (checkboxy)
|
|
19
|
+
|
|
20
|
+
Caly konfigurator uzywa nawigacji strzalkami — zero wpisywania cyferek.
|
|
21
|
+
|
|
22
|
+
Na koniec automatycznie uruchamia GSD:
|
|
23
|
+
- **Nowy projekt** → `/gsd:new-project`
|
|
24
|
+
- **Istniejacy projekt** → `/gsd:map-codebase` → `/gsd:new-project`
|
|
25
|
+
|
|
26
|
+
### Tryby instalacji (istniejacy projekt)
|
|
27
|
+
|
|
28
|
+
| Tryb | Opis |
|
|
29
|
+
|------|------|
|
|
30
|
+
| **Nadpisz wszystko** | Pelna reinstalacja — nadpisuje istniejace pliki |
|
|
31
|
+
| **Tylko nowe pliki** | Dodaje brakujace pliki, nie rusza istniejacych |
|
|
32
|
+
| **Tylko MCP** | Konfiguruje serwery MCP bez ruszania reszty |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Architektura: Single Source of Truth
|
|
37
|
+
|
|
38
|
+
Wszystkie narzedzia AI czytaja te same zasady z jednego miejsca:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
.ai/guidelines.md ← JEDYNE ZRODLO PRAWDY
|
|
42
|
+
│
|
|
43
|
+
├── CLAUDE.md (referencja)
|
|
44
|
+
├── .github/copilot-instructions.md (pointer)
|
|
45
|
+
├── .cursor/rules/global.mdc (pointer)
|
|
46
|
+
├── .gemini/settings.json (referencja)
|
|
47
|
+
└── .junie/guidelines.md (pointer)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Zmien `.ai/guidelines.md` — wszystkie agenty to zobacza.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Pakiety (packs)
|
|
55
|
+
|
|
56
|
+
Zamiast wybierania jednego stacka, wybierasz dowolne pakiety instrukcji i skilli — checkboxami. Kazdy pakiet deklaruje swoje instrukcje, skille i wymagane placeholdery w `pack.json`.
|
|
57
|
+
|
|
58
|
+
### Dostepne pakiety
|
|
59
|
+
|
|
60
|
+
| Pakiet | Zawartosc | Domyslny |
|
|
61
|
+
|--------|-----------|----------|
|
|
62
|
+
| **Vue 3 + TypeScript** | 6 instrukcji, 3 skille | Tak |
|
|
63
|
+
| **Vitest** | 1 instrukcja | Tak |
|
|
64
|
+
| **Storybook** | 1 instrukcja | Nie |
|
|
65
|
+
| **Laravel + PHP** | 4 instrukcje, 7 skilli | Nie |
|
|
66
|
+
| **Playwright** | 1 instrukcja, 3 skille | Nie |
|
|
67
|
+
| **Docker** | 1 instrukcja | Nie |
|
|
68
|
+
|
|
69
|
+
Pakiety sa niezalezne — mozesz laczyc np. Vue 3 + Playwright + Docker.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Co instaluje
|
|
74
|
+
|
|
75
|
+
### Pliki per narzedzie
|
|
76
|
+
|
|
77
|
+
| Narzedzie | Pliki |
|
|
78
|
+
|-----------|-------|
|
|
79
|
+
| **Claude Code** | `CLAUDE.md`, `.claude/settings.local.json` (permissions + deny rules) |
|
|
80
|
+
| **GitHub Copilot** | `.github/copilot-instructions.md`, `.github/pull_request_template.md`, `.github/instructions/`, `.github/prompts/`, `.github/skills/` |
|
|
81
|
+
| **Cursor IDE** | `.cursor/rules/global.mdc`, `.cursor/mcp.json` |
|
|
82
|
+
| **Gemini** | `.gemini/settings.json` |
|
|
83
|
+
| **JetBrains Junie** | `.junie/guidelines.md` |
|
|
84
|
+
|
|
85
|
+
### Pliki wspolne
|
|
86
|
+
|
|
87
|
+
| Plik | Opis |
|
|
88
|
+
|------|------|
|
|
89
|
+
| `.ai/guidelines.md` | Glowne zasady projektu (source of truth) |
|
|
90
|
+
| `.ai/instructions/` | Instrukcje kontekstowe per typ pliku |
|
|
91
|
+
| `.ai/prompts/` | Reusable prompty AI |
|
|
92
|
+
| `.ai/skills/` | Skille — krok-po-krok workflow |
|
|
93
|
+
| `.ai/context/` | Kontekst projektowy (architektura, API spec, slownik) |
|
|
94
|
+
| `commit-instructions.md` | Commit conventions + branch naming |
|
|
95
|
+
| `.gitignore` | Pre-konfigurowany (AI tokeny, .env, IDE) |
|
|
96
|
+
| `.editorconfig` | Konsystentne formatowanie (utf-8, lf, spaces) |
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Instructions (kontekstowe instrukcje)
|
|
101
|
+
|
|
102
|
+
Instructions to pliki z zasadami, ktore AI stosuje automatycznie gdy pracuje z pasujacymi plikami. Kazda instrukcja ma frontmatter `applyTo` z glob pattern.
|
|
103
|
+
|
|
104
|
+
### Jak dzialaja
|
|
105
|
+
|
|
106
|
+
```yaml
|
|
107
|
+
---
|
|
108
|
+
applyTo: "**/*.vue"
|
|
109
|
+
---
|
|
110
|
+
# Vue Component Instructions
|
|
111
|
+
...
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Gdy AI otwiera/edytuje plik pasujacy do `applyTo`, automatycznie laduje te instrukcje jako kontekst.
|
|
115
|
+
|
|
116
|
+
### Vue 3 + TypeScript (6 instrukcji)
|
|
117
|
+
|
|
118
|
+
| Instrukcja | applyTo | Czego uczy AI |
|
|
119
|
+
|-----------|---------|---------------|
|
|
120
|
+
| `vue.instructions.md` | `**/*.vue` | Composition API, defineProps, withDefaults, template order |
|
|
121
|
+
| `store.instructions.md` | `**/*.store.ts, **/stores/**` | Pinia setup syntax, ref/computed, akcje async |
|
|
122
|
+
| `api.instructions.md` | `**/*Service*.ts, **/api/**` | useApi singleton, interceptory, error handling |
|
|
123
|
+
| `coding-conventions.instructions.md` | `**/*.vue, **/*.ts, **/*.scss` | Naming (camelCase/PascalCase), I/E/T prefixy, CSS single-dash |
|
|
124
|
+
| `composables.instructions.md` | `**/composables/**, **/use*.ts` | useAsyncDataLoader, form composable, filter composable |
|
|
125
|
+
| `forms.instructions.md` | `**/*Form*.vue, **/validation*` | ValidationBuilder, computed validation, 422 handling |
|
|
126
|
+
|
|
127
|
+
### Vitest (1 instrukcja)
|
|
128
|
+
|
|
129
|
+
| Instrukcja | applyTo | Czego uczy AI |
|
|
130
|
+
|-----------|---------|---------------|
|
|
131
|
+
| `vitest.instructions.md` | `**/*.test.ts, **/*.spec.ts` | mount, shallowMount, mocking, data-testid selektory |
|
|
132
|
+
|
|
133
|
+
### Storybook (1 instrukcja)
|
|
134
|
+
|
|
135
|
+
| Instrukcja | applyTo | Czego uczy AI |
|
|
136
|
+
|-----------|---------|---------------|
|
|
137
|
+
| `storybook.instructions.md` | `**/*.stories.ts` | Meta + StoryObj, autodocs, argTypes, warianty |
|
|
138
|
+
|
|
139
|
+
### Laravel + PHP (4 instrukcje)
|
|
140
|
+
|
|
141
|
+
| Instrukcja | applyTo | Czego uczy AI |
|
|
142
|
+
|-----------|---------|---------------|
|
|
143
|
+
| `module.instructions.md` | `**/Modules/**` | Struktura modulu, module.json, ServiceProvider |
|
|
144
|
+
| `service-repository.instructions.md` | `**/*Service*.php, **/*Repository*.php` | CQRS (Command/Query repos), readonly services, DTO |
|
|
145
|
+
| `api-resource.instructions.md` | `**/*Resource*.php, **/*Request*.php` | Resources z whenLoaded(), Form Requests, Policies |
|
|
146
|
+
| `testing.instructions.md` | `**/*Test*.php, **/tests/**` | PHPUnit, data providers, factories, Laravel fakes |
|
|
147
|
+
|
|
148
|
+
### Playwright (1 instrukcja)
|
|
149
|
+
|
|
150
|
+
| Instrukcja | applyTo | Czego uczy AI |
|
|
151
|
+
|-----------|---------|---------------|
|
|
152
|
+
| `playwright.instructions.md` | `**/*.spec.ts (e2e)` | Page Object Model, selektory, czekanie na elementy |
|
|
153
|
+
|
|
154
|
+
### Docker (1 instrukcja)
|
|
155
|
+
|
|
156
|
+
| Instrukcja | applyTo | Czego uczy AI |
|
|
157
|
+
|-----------|---------|---------------|
|
|
158
|
+
| `docker.instructions.md` | `**/Dockerfile, **/docker-compose*` | Artisan w kontenerze, multi-stage build |
|
|
159
|
+
|
|
160
|
+
### Dodawanie wlasnej instrukcji
|
|
161
|
+
|
|
162
|
+
1. Utworz plik w `.ai/instructions/`:
|
|
163
|
+
```markdown
|
|
164
|
+
---
|
|
165
|
+
applyTo: "**/*.graphql"
|
|
166
|
+
---
|
|
167
|
+
# GraphQL Instructions
|
|
168
|
+
Zasady specyficzne dla plikow GraphQL...
|
|
169
|
+
```
|
|
170
|
+
2. Mirror do `.github/instructions/` dzieje sie automatycznie jesli Copilot jest wybrany
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Guidelines — co zawiera
|
|
175
|
+
|
|
176
|
+
Plik `.ai/guidelines.md` jest skladany automatycznie z:
|
|
177
|
+
1. **Header** — project overview, tech stack, komendy, CI, commit rules, branch naming, sekcja Forbidden, testing strategy
|
|
178
|
+
2. **Sekcje pakietow** — kazdy wybrany pack dolacza swoja sekcje (np. Vue 3 architecture, Laravel conventions)
|
|
179
|
+
|
|
180
|
+
### Sekcje w guidelines
|
|
181
|
+
|
|
182
|
+
| Sekcja | Co zawiera |
|
|
183
|
+
|--------|-----------|
|
|
184
|
+
| Project Overview | Nazwa, opis, tech stack |
|
|
185
|
+
| Commands | test, build, lint, CI |
|
|
186
|
+
| Commits & Branches | Format commitow, branch naming convention |
|
|
187
|
+
| CI Pipeline | Komenda ktora musi przejsc przed PR |
|
|
188
|
+
| Forbidden | Czego AI NIE wolno robic bez zgody |
|
|
189
|
+
| Testing Strategy | Kiedy unit, integration, E2E, regression |
|
|
190
|
+
| Skills | Pointer do `.ai/skills/` |
|
|
191
|
+
| Instructions | Pointer do `.ai/instructions/` |
|
|
192
|
+
| Context | Pointer do `.ai/context/` |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Skills (krok-po-krok workflow)
|
|
197
|
+
|
|
198
|
+
Skills to gotowe procedury, ktore AI wykonuje krok po kroku. Kazdy skill ma trigger, input, steps i verification checklist.
|
|
199
|
+
|
|
200
|
+
### Jak uzywac
|
|
201
|
+
|
|
202
|
+
Powiedz AI:
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
"Uzywajac skilla new-module, stworz modul uzytkownicy"
|
|
206
|
+
"Wykonaj skilla debug dla bledu TypeError w UserService"
|
|
207
|
+
"Postepuj wedlug skilla pr-prepare"
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
AI przeczyta `SKILL.md` i wykona kroki po kolei.
|
|
211
|
+
|
|
212
|
+
### Skills bazowe (wszystkie pakiety)
|
|
213
|
+
|
|
214
|
+
| Skill | Cel | Kiedy uzywac |
|
|
215
|
+
|-------|-----|-------------|
|
|
216
|
+
| `debug` | Systematyczne debugowanie | Bug, blad, nieoczekiwane zachowanie |
|
|
217
|
+
| `refactor` | Bezpieczny refactoring | Wydzielanie, upraszczanie, przenoszenie kodu |
|
|
218
|
+
| `write-tests` | Dodanie testow | Istniejacy kod bez pokrycia testami |
|
|
219
|
+
| `pr-prepare` | Przygotowanie PR | Przed push — self-review, cleanup, opis |
|
|
220
|
+
| `hotfix` | Szybka poprawka produkcji | Branch z main, minimalny fix, regression test |
|
|
221
|
+
| `babysit-prs` | Monitoring PRow do review | Cykliczne sprawdzanie nowych PRow (GitHub + Bitbucket) |
|
|
222
|
+
| `my-prs` | Status wlasnych PRow | Sprawdzenie approvals, komentarzy, brakujacych review |
|
|
223
|
+
| `pr-dashboard` | Dashboard PRow | Combo babysit-prs + my-prs z opcjonalnym loopem |
|
|
224
|
+
| `fill-worklogs` | Wypelnianie worklogow Jira | Automatyczne uzupelnianie godzin na bazie commitow git |
|
|
225
|
+
| `jira-task` | Pelny workflow Jira | Ticket → branch → implementacja → PR → aktualizacja Jira |
|
|
226
|
+
|
|
227
|
+
### Skills Vue 3 + TypeScript
|
|
228
|
+
|
|
229
|
+
| Skill | Cel | Kiedy uzywac |
|
|
230
|
+
|-------|-----|-------------|
|
|
231
|
+
| `new-module` | Nowy modul od zera | types → service → store → composables → views → routes → testy |
|
|
232
|
+
| `new-component` | Nowy komponent | Komponent + story + test + data-testid |
|
|
233
|
+
| `api-integration` | Podlaczenie do API | types + mapper → service → store → composable → widok |
|
|
234
|
+
|
|
235
|
+
### Skills Laravel + PHP
|
|
236
|
+
|
|
237
|
+
| Skill | Cel | Kiedy uzywac |
|
|
238
|
+
|-------|-----|-------------|
|
|
239
|
+
| `new-module` | Nowy modul od zera | model → migration → CQRS repos → service → DTO → controller → testy |
|
|
240
|
+
| `new-endpoint` | Nowy endpoint API | request → controller → DTO → service → resource → policy → route → testy |
|
|
241
|
+
| `migration` | Migracja DB | create/modify table → rollback test → model update → factory |
|
|
242
|
+
| `queued-job` | Job / Event / Listener | Job class → retry/backoff → failed handler → idempotentnosc → testy |
|
|
243
|
+
| `testing-feature` | Testy feature (HTTP/DB) | Konwencje testow feature, delta pattern, data resilience |
|
|
244
|
+
| `testing-unit` | Testy jednostkowe | Izolowane testy bez DB, PHPUnit mocks, data providers |
|
|
245
|
+
| `testing-manual` | Testy manualne HTTP | JetBrains HTTP Client — pliki `.http` do interaktywnego testowania API |
|
|
246
|
+
|
|
247
|
+
### Skills Playwright
|
|
248
|
+
|
|
249
|
+
| Skill | Cel | Kiedy uzywac |
|
|
250
|
+
|-------|-----|-------------|
|
|
251
|
+
| `playwright` | Nowy test E2E | Page Object → scenariusz → asercje |
|
|
252
|
+
| `playwright-record` | Nagrywanie testu | codegen → cleanup → Page Object |
|
|
253
|
+
| `playwright-codereview` | Review testu E2E | Checklist jakosci testu Playwright |
|
|
254
|
+
|
|
255
|
+
### Tworzenie wlasnego skilla
|
|
256
|
+
|
|
257
|
+
1. Utworz katalog w `.ai/skills/nazwa-skilla/`
|
|
258
|
+
2. Skopiuj szablon: `cp .ai/skills/TEMPLATE.md .ai/skills/nazwa-skilla/SKILL.md`
|
|
259
|
+
3. Wypelnij sekcje: Trigger, Input, Steps, Verification checklist
|
|
260
|
+
4. Jesli uzywasz Copilot, skopiuj do `.github/skills/`
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Prompts (reusable prompty)
|
|
265
|
+
|
|
266
|
+
Prompty to gotowe polecenia dla AI do wykonania zlozonych zadan jednym wywolaniem.
|
|
267
|
+
|
|
268
|
+
### Dostepne prompty
|
|
269
|
+
|
|
270
|
+
| Prompt | Cel | Jak uzyc |
|
|
271
|
+
|--------|-----|----------|
|
|
272
|
+
| `codereview.prompt.md` | Kompleksowy code review brancha | "Wykonaj code review wg `.ai/prompts/codereview.prompt.md`" |
|
|
273
|
+
| `security-review.prompt.md` | Audyt bezpieczenstwa (OWASP Top 10) | "Wykonaj security review wg `.ai/prompts/security-review.prompt.md`" |
|
|
274
|
+
| `figma-analysis.prompt.md` | Analiza komponentu Figma (wymaga MCP Figma) | "Przeanalizuj ten komponent Figma wg promptu figma-analysis" |
|
|
275
|
+
| `duplicate-code-analysis.prompt.md` | Wykrywanie duplikatow kodu | "Znajdz duplikaty wg `.ai/prompts/duplicate-code-analysis.prompt.md`" |
|
|
276
|
+
|
|
277
|
+
### Uzycie w roznych narzedziach
|
|
278
|
+
|
|
279
|
+
**Claude Code:**
|
|
280
|
+
```
|
|
281
|
+
Przeczytaj .ai/prompts/codereview.prompt.md i wykonaj review tego brancha
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**GitHub Copilot Chat:**
|
|
285
|
+
```
|
|
286
|
+
@workspace Wykonaj code review zgodnie z .github/prompts/codereview.prompt.md
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## Serwery MCP
|
|
292
|
+
|
|
293
|
+
MCP (Model Context Protocol) pozwala AI na komunikacje z zewnetrznymi systemami.
|
|
294
|
+
|
|
295
|
+
| Serwer | Do czego | Wymaga tokena |
|
|
296
|
+
|--------|----------|---------------|
|
|
297
|
+
| **Jira Cloud** | Pobieranie ticketow do kontekstu AI | Tak |
|
|
298
|
+
| **Bitbucket Cloud** | Integracja z repozytorium | Tak |
|
|
299
|
+
| **Figma** | Analiza mockupow UI | Tak |
|
|
300
|
+
| **Context7** | Dokumentacja bibliotek | Nie |
|
|
301
|
+
|
|
302
|
+
### Gdzie wygenerowac tokeny
|
|
303
|
+
|
|
304
|
+
| Serwis | Link |
|
|
305
|
+
|--------|------|
|
|
306
|
+
| Jira API Token | https://id.atlassian.com/manage-profile/security/api-tokens |
|
|
307
|
+
| Bitbucket App Password | https://bitbucket.org/account/settings/app-passwords/ |
|
|
308
|
+
| Figma Access Token | Figma → Settings → Personal access tokens |
|
|
309
|
+
|
|
310
|
+
### Konfiguracja automatyczna
|
|
311
|
+
|
|
312
|
+
Instalator automatycznie:
|
|
313
|
+
- Zapisuje config do `.claude/settings.local.json` i `.cursor/mcp.json`
|
|
314
|
+
- Rejestruje serwery w Claude CLI (`claude mcp add -s project`)
|
|
315
|
+
- Weryfikacja: `claude mcp list`
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## GSD (Get Shit Done)
|
|
320
|
+
|
|
321
|
+
GSD to system do strukturyzacji pracy z AI — planowanie, wykonanie i weryfikacja w powtarzalnym procesie.
|
|
322
|
+
|
|
323
|
+
### Dlaczego wymagany
|
|
324
|
+
|
|
325
|
+
- Zapobiega **context rot** (degradacji jakosci AI po dlugiej sesji)
|
|
326
|
+
- Strukturyzuje prace w fazy z checkpointami
|
|
327
|
+
- Automatycznie mapuje codebase w istniejacych projektach
|
|
328
|
+
|
|
329
|
+
### Instalacja
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
npx get-shit-done-cc@latest
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Kluczowe komendy
|
|
336
|
+
|
|
337
|
+
| Komenda | Cel |
|
|
338
|
+
|---------|-----|
|
|
339
|
+
| `/gsd:new-project` | Inicjalizacja projektu |
|
|
340
|
+
| `/gsd:plan-phase` | Planowanie fazy |
|
|
341
|
+
| `/gsd:execute-phase` | Wykonanie |
|
|
342
|
+
| `/gsd:verify-work` | Weryfikacja UAT |
|
|
343
|
+
| `/gsd:progress` | Status i nastepne kroki |
|
|
344
|
+
| `/gsd:debug` | Systematyczny debugging |
|
|
345
|
+
| `/gsd:map-codebase` | Mapowanie istniejacego kodu |
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Struktura zainstalowanych plikow
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
projekt/
|
|
353
|
+
├── .ai/
|
|
354
|
+
│ ├── guidelines.md # Source of truth (header + wybrane pakiety)
|
|
355
|
+
│ ├── instructions/ # Kontekstowe instrukcje (applyTo)
|
|
356
|
+
│ │ ├── vue.instructions.md
|
|
357
|
+
│ │ └── ...
|
|
358
|
+
│ ├── prompts/ # Reusable prompty
|
|
359
|
+
│ │ ├── codereview.prompt.md
|
|
360
|
+
│ │ ├── security-review.prompt.md
|
|
361
|
+
│ │ ├── figma-analysis.prompt.md
|
|
362
|
+
│ │ └── duplicate-code-analysis.prompt.md
|
|
363
|
+
│ ├── skills/ # Workflow skille
|
|
364
|
+
│ │ ├── debug/SKILL.md
|
|
365
|
+
│ │ ├── refactor/SKILL.md
|
|
366
|
+
│ │ ├── write-tests/SKILL.md
|
|
367
|
+
│ │ ├── pr-prepare/SKILL.md
|
|
368
|
+
│ │ ├── hotfix/SKILL.md
|
|
369
|
+
│ │ ├── babysit-prs/SKILL.md
|
|
370
|
+
│ │ ├── my-prs/SKILL.md
|
|
371
|
+
│ │ ├── pr-dashboard/SKILL.md
|
|
372
|
+
│ │ ├── fill-worklogs/SKILL.md
|
|
373
|
+
│ │ ├── jira-task/SKILL.md
|
|
374
|
+
│ │ └── [pack-specific]/SKILL.md
|
|
375
|
+
│ └── context/ # Kontekst projektowy
|
|
376
|
+
│ └── README.md # (tu dodaj architecture.md, api-spec.md, etc.)
|
|
377
|
+
├── .claude/
|
|
378
|
+
│ └── settings.local.json # Permissions (allow/deny) + MCP servers
|
|
379
|
+
├── .github/
|
|
380
|
+
│ ├── copilot-instructions.md # Pointer → .ai/guidelines.md
|
|
381
|
+
│ ├── pull_request_template.md # Szablon PR
|
|
382
|
+
│ ├── instructions/ # Mirror z .ai/instructions/
|
|
383
|
+
│ ├── prompts/ # Mirror z .ai/prompts/
|
|
384
|
+
│ └── skills/ # Mirror z .ai/skills/
|
|
385
|
+
├── .cursor/
|
|
386
|
+
│ ├── rules/global.mdc # Pointer → .ai/guidelines.md
|
|
387
|
+
│ └── mcp.json # MCP servers
|
|
388
|
+
├── .gemini/
|
|
389
|
+
│ └── settings.json # Pointer → .ai/guidelines.md
|
|
390
|
+
├── .junie/
|
|
391
|
+
│ └── guidelines.md # Pointer → .ai/guidelines.md
|
|
392
|
+
├── .editorconfig # Formatowanie (utf-8, lf, spaces)
|
|
393
|
+
├── .gitignore # Pre-konfigurowany (AI tokeny, .env)
|
|
394
|
+
├── CLAUDE.md # Claude Code entry point
|
|
395
|
+
└── commit-instructions.md # Commit conventions + branch naming
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
> **Mirror**: `.ai/instructions/`, `.ai/prompts/` i `.ai/skills/` sa automatycznie kopiowane do `.github/` jesli wybrany jest GitHub Copilot.
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## Rozwoj pakietu
|
|
403
|
+
|
|
404
|
+
### Dodanie nowego packa
|
|
405
|
+
|
|
406
|
+
1. Utworz `templates/packs/nazwa-packa/`
|
|
407
|
+
2. Dodaj `pack.json`:
|
|
408
|
+
```json
|
|
409
|
+
{
|
|
410
|
+
"name": "Nazwa Packa",
|
|
411
|
+
"description": "Opis co zawiera",
|
|
412
|
+
"default": false,
|
|
413
|
+
"placeholders": {
|
|
414
|
+
"MY_PLACEHOLDER": {
|
|
415
|
+
"question": "Pytanie wyswietlane uzytkownikowi",
|
|
416
|
+
"default": "wartosc domyslna"
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
```
|
|
421
|
+
3. Dodaj instrukcje w `_ai/instructions/` (z frontmatter `applyTo`)
|
|
422
|
+
4. Dodaj skille w `_ai/skills/`
|
|
423
|
+
5. Opcjonalnie dodaj `_guidelines.md` — sekcja dolaczana do guidelines.md
|
|
424
|
+
|
|
425
|
+
### Dodanie nowego skilla
|
|
426
|
+
|
|
427
|
+
1. Utworz `templates/[base|packs/pack]/_ai/skills/nazwa/SKILL.md`
|
|
428
|
+
2. Uzyj struktury: Trigger → Input → Steps → Verification checklist
|
|
429
|
+
3. Uzywaj `{{PLACEHOLDER}}` dla wartosci zastepowanych podczas instalacji
|
|
430
|
+
|
|
431
|
+
### Dostepne placeholdery
|
|
432
|
+
|
|
433
|
+
| Placeholder | Opis |
|
|
434
|
+
|-------------|------|
|
|
435
|
+
| `{{PROJECT_NAME}}` | Nazwa projektu |
|
|
436
|
+
| `{{PROJECT_DESCRIPTION}}` | Krotki opis projektu |
|
|
437
|
+
| `{{TECH_STACK}}` | Tech stack (wolny tekst) |
|
|
438
|
+
| `{{CI_COMMAND}}` | Komenda CI (wszystkie checki) |
|
|
439
|
+
| `{{MODULE_PATH}}` | Sciezka do modulow |
|
|
440
|
+
| `{{COMPONENT_LIB_PATH}}` | Sciezka do komponentow UI |
|
|
441
|
+
| `{{COMPONENT_LIB_IMPORT}}` | Import komponentow |
|
|
442
|
+
| `{{API_BASE_URL}}` | Bazowy URL API |
|
|
443
|
+
| `{{TEST_COMMAND}}` | Komenda testow |
|
|
444
|
+
| `{{BUILD_COMMAND}}` | Komenda builda |
|
|
445
|
+
| `{{LINT_COMMAND}}` | Komenda lintera |
|
|
446
|
+
| `{{DOCKER_CONTAINER}}` | Nazwa kontenera Docker |
|
|
447
|
+
| `{{JIRA_PREFIX}}` | Prefix taskow JIRA |
|
|
448
|
+
| `{{PLAYWRIGHT_DIR}}` | Katalog Playwright |
|
|
449
|
+
| `{{BASE_URL}}` | Base URL aplikacji |
|
|
450
|
+
|
|
451
|
+
### Struktura templates
|
|
452
|
+
|
|
453
|
+
```
|
|
454
|
+
templates/
|
|
455
|
+
├── base/ # Wspolne dla wszystkich pakietow
|
|
456
|
+
│ ├── CLAUDE.md
|
|
457
|
+
│ ├── commit-instructions.md
|
|
458
|
+
│ ├── _gitignore # → .gitignore
|
|
459
|
+
│ ├── _editorconfig # → .editorconfig
|
|
460
|
+
│ ├── _ai/ # → .ai/
|
|
461
|
+
│ │ ├── _guidelines_header.md # Naglowek guidelines
|
|
462
|
+
│ │ ├── context/ # Kontekst projektowy
|
|
463
|
+
│ │ ├── prompts/ # codereview, security-review, figma, duplicates
|
|
464
|
+
│ │ └── skills/ # 10 skilli bazowych
|
|
465
|
+
│ ├── _claude/ # → .claude/ (permissions + deny)
|
|
466
|
+
│ ├── _github/ # → .github/ (copilot pointer + PR template)
|
|
467
|
+
│ ├── _cursor/ # → .cursor/
|
|
468
|
+
│ ├── _gemini/ # → .gemini/
|
|
469
|
+
│ └── _junie/ # → .junie/
|
|
470
|
+
└── packs/
|
|
471
|
+
├── vue3/ # 6 instr. · 3 skille
|
|
472
|
+
│ ├── pack.json
|
|
473
|
+
│ ├── _guidelines.md # Sekcja dolaczana do guidelines
|
|
474
|
+
│ └── _ai/instructions/
|
|
475
|
+
├── vitest/ # 1 instr.
|
|
476
|
+
├── storybook/ # 1 instr.
|
|
477
|
+
├── laravel/ # 4 instr. · 7 skilli
|
|
478
|
+
├── playwright/ # 1 instr. · 3 skille
|
|
479
|
+
└── docker/ # 1 instr.
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
> Katalogi z prefixem `_` sa zamieniane na `.` podczas instalacji.
|
|
483
|
+
> Katalogi per narzedzie (`_claude/`, `_github/`, etc.) sa kopiowane tylko jesli to narzedzie zostalo wybrane.
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## Licencja
|
|
488
|
+
|
|
489
|
+
MIT
|
package/bin/cli.mjs
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
|
+
import { askQuestions } from '../lib/questions.mjs';
|
|
6
|
+
import { install } from '../lib/installer.mjs';
|
|
7
|
+
import { box, boldCyan, boldMagenta, cyan, dim, red, yellow } from '../lib/ui.mjs';
|
|
8
|
+
|
|
9
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
+
const __dirname = dirname(__filename);
|
|
11
|
+
const ROOT = join(__dirname, '..');
|
|
12
|
+
|
|
13
|
+
console.log('');
|
|
14
|
+
box([
|
|
15
|
+
boldMagenta('♫ SymfoniaAITools'),
|
|
16
|
+
'',
|
|
17
|
+
cyan(' Claude Code · GitHub Copilot · Cursor'),
|
|
18
|
+
cyan(' Gemini · Junie · GSD'),
|
|
19
|
+
'',
|
|
20
|
+
dim(' Jeden konfigurator — wszystkie agenty gotowe'),
|
|
21
|
+
]);
|
|
22
|
+
console.log('');
|
|
23
|
+
|
|
24
|
+
try {
|
|
25
|
+
const packsDir = join(ROOT, 'templates', 'packs');
|
|
26
|
+
const answers = await askQuestions(packsDir);
|
|
27
|
+
await install(ROOT, answers);
|
|
28
|
+
} catch (err) {
|
|
29
|
+
if (err.message === 'USER_ABORT') {
|
|
30
|
+
console.log(`\n ${yellow('Przerwano.')}\n`);
|
|
31
|
+
process.exit(0);
|
|
32
|
+
}
|
|
33
|
+
console.error(`\n ${red('Blad:')} ${err.message}\n`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|