start-vibing-stacks 2.6.0 → 2.7.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/dist/index.js +16 -2
- package/dist/migrate.d.ts +27 -0
- package/dist/migrate.js +217 -0
- package/dist/setup.js +10 -0
- package/package.json +1 -1
- package/stacks/_shared/agents/claude-md-compactor.md +1 -0
- package/stacks/_shared/agents/commit-manager.md +1 -0
- package/stacks/_shared/agents/documenter.md +1 -0
- package/stacks/_shared/agents/domain-updater.md +1 -0
- package/stacks/_shared/agents/research-web.md +1 -0
- package/stacks/_shared/agents/security-auditor.md +168 -0
- package/stacks/_shared/agents/tester.md +1 -0
- package/stacks/_shared/hooks/final-check.ts +205 -0
- package/stacks/_shared/hooks/stop-validator.ts +77 -1
- package/stacks/_shared/skills/accessibility-wcag22/SKILL.md +284 -0
- package/stacks/_shared/skills/ci-pipelines/SKILL.md +166 -0
- package/stacks/_shared/skills/codebase-knowledge/SKILL.md +5 -0
- package/stacks/_shared/skills/database-migrations/SKILL.md +256 -0
- package/stacks/_shared/skills/debugging-patterns/SKILL.md +5 -0
- package/stacks/_shared/skills/docker-patterns/SKILL.md +5 -0
- package/stacks/_shared/skills/docs-tracker/SKILL.md +5 -0
- package/stacks/_shared/skills/error-handling/SKILL.md +335 -0
- package/stacks/_shared/skills/final-check/SKILL.md +74 -37
- package/stacks/_shared/skills/git-workflow/SKILL.md +5 -0
- package/stacks/_shared/skills/hook-development/SKILL.md +5 -0
- package/stacks/_shared/skills/observability/SKILL.md +351 -0
- package/stacks/_shared/skills/performance-patterns/SKILL.md +5 -0
- package/stacks/_shared/skills/playwright-automation/SKILL.md +5 -0
- package/stacks/_shared/skills/quality-gate/SKILL.md +5 -0
- package/stacks/_shared/skills/research-cache/SKILL.md +5 -0
- package/stacks/_shared/skills/secrets-management/SKILL.md +245 -0
- package/stacks/_shared/skills/security-baseline/SKILL.md +202 -0
- package/stacks/_shared/skills/test-coverage/SKILL.md +5 -0
- package/stacks/_shared/skills/ui-ux-audit/SKILL.md +5 -0
- package/stacks/frontend/react/skills/preline-ui/SKILL.md +5 -0
- package/stacks/frontend/react/skills/react-patterns/SKILL.md +5 -0
- package/stacks/frontend/react/skills/react-standards/SKILL.md +5 -0
- package/stacks/frontend/react/skills/react-ui-patterns/SKILL.md +5 -0
- package/stacks/frontend/react/skills/shadcn-ui/SKILL.md +5 -0
- package/stacks/frontend/react/skills/tailwind-patterns/SKILL.md +5 -0
- package/stacks/frontend/react/skills/zod-validation/SKILL.md +5 -0
- package/stacks/frontend/react-inertia/skills/inertia-react/SKILL.md +5 -0
- package/stacks/frontend/react-inertia/skills/react-standards/SKILL.md +5 -0
- package/stacks/nodejs/skills/api-security-node/SKILL.md +275 -0
- package/stacks/nodejs/skills/bun-runtime/SKILL.md +5 -0
- package/stacks/nodejs/skills/mongoose-patterns/SKILL.md +5 -0
- package/stacks/nodejs/skills/nextjs-app-router/SKILL.md +5 -0
- package/stacks/nodejs/skills/trpc-api/SKILL.md +5 -0
- package/stacks/nodejs/skills/typescript-strict/SKILL.md +5 -0
- package/stacks/nodejs/stack.json +2 -1
- package/stacks/nodejs/workflows/ci.yml +90 -0
- package/stacks/nodejs/workflows/security.yml +45 -0
- package/stacks/php/skills/api-design/SKILL.md +5 -0
- package/stacks/php/skills/api-security/SKILL.md +5 -0
- package/stacks/php/skills/composer-workflow/SKILL.md +5 -0
- package/stacks/php/skills/external-api-patterns/SKILL.md +5 -0
- package/stacks/php/skills/inertia-react/SKILL.md +5 -0
- package/stacks/php/skills/laravel-inertia-i18n/SKILL.md +5 -0
- package/stacks/php/skills/laravel-octane/SKILL.md +5 -0
- package/stacks/php/skills/laravel-patterns/SKILL.md +5 -0
- package/stacks/php/skills/mariadb-octane/SKILL.md +5 -0
- package/stacks/php/skills/php-patterns/SKILL.md +5 -0
- package/stacks/php/skills/phpstan-analysis/SKILL.md +5 -0
- package/stacks/php/skills/phpunit-testing/SKILL.md +5 -0
- package/stacks/php/skills/security-scan-php/SKILL.md +5 -0
- package/stacks/php/workflows/ci.yml +106 -0
- package/stacks/php/workflows/security.yml +36 -0
- package/stacks/python/skills/api-security-python/SKILL.md +312 -0
- package/stacks/python/skills/async-patterns/SKILL.md +5 -0
- package/stacks/python/skills/django-patterns/SKILL.md +5 -0
- package/stacks/python/skills/fastapi-patterns/SKILL.md +5 -0
- package/stacks/python/skills/pydantic-validation/SKILL.md +5 -0
- package/stacks/python/skills/pytest-testing/SKILL.md +5 -0
- package/stacks/python/skills/python-patterns/SKILL.md +5 -0
- package/stacks/python/skills/python-performance/SKILL.md +5 -0
- package/stacks/python/skills/scripting-automation/SKILL.md +5 -0
- package/stacks/python/stack.json +2 -1
- package/stacks/python/workflows/ci.yml +76 -0
- package/stacks/python/workflows/security.yml +56 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
concurrency:
|
|
9
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
10
|
+
cancel-in-progress: true
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
ci:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
timeout-minutes: 15
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
|
|
22
|
+
- uses: oven-sh/setup-bun@v2
|
|
23
|
+
with:
|
|
24
|
+
bun-version: latest
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: bun install --frozen-lockfile
|
|
28
|
+
|
|
29
|
+
- name: Typecheck
|
|
30
|
+
run: bun run typecheck
|
|
31
|
+
|
|
32
|
+
- name: Lint
|
|
33
|
+
run: bun run lint
|
|
34
|
+
|
|
35
|
+
- name: Unit tests
|
|
36
|
+
run: bun run test
|
|
37
|
+
|
|
38
|
+
- name: Build
|
|
39
|
+
run: bun run build
|
|
40
|
+
|
|
41
|
+
security:
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
timeout-minutes: 10
|
|
44
|
+
steps:
|
|
45
|
+
- uses: actions/checkout@v4
|
|
46
|
+
with:
|
|
47
|
+
fetch-depth: 0
|
|
48
|
+
|
|
49
|
+
- uses: oven-sh/setup-bun@v2
|
|
50
|
+
with:
|
|
51
|
+
bun-version: latest
|
|
52
|
+
|
|
53
|
+
- name: Install dependencies
|
|
54
|
+
run: bun install --frozen-lockfile
|
|
55
|
+
|
|
56
|
+
- name: Audit dependencies
|
|
57
|
+
run: bun audit --audit-level=high
|
|
58
|
+
continue-on-error: false
|
|
59
|
+
|
|
60
|
+
- name: Gitleaks (secret scan)
|
|
61
|
+
uses: gitleaks/gitleaks-action@v2
|
|
62
|
+
env:
|
|
63
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
64
|
+
|
|
65
|
+
e2e:
|
|
66
|
+
runs-on: ubuntu-latest
|
|
67
|
+
timeout-minutes: 30
|
|
68
|
+
if: github.event_name == 'pull_request' || github.ref == 'refs/heads/main'
|
|
69
|
+
steps:
|
|
70
|
+
- uses: actions/checkout@v4
|
|
71
|
+
|
|
72
|
+
- uses: oven-sh/setup-bun@v2
|
|
73
|
+
with:
|
|
74
|
+
bun-version: latest
|
|
75
|
+
|
|
76
|
+
- name: Install dependencies
|
|
77
|
+
run: bun install --frozen-lockfile
|
|
78
|
+
|
|
79
|
+
- name: Install Playwright browsers
|
|
80
|
+
run: bunx playwright install --with-deps chromium
|
|
81
|
+
|
|
82
|
+
- name: Run Playwright tests
|
|
83
|
+
run: bunx playwright test
|
|
84
|
+
|
|
85
|
+
- uses: actions/upload-artifact@v4
|
|
86
|
+
if: failure()
|
|
87
|
+
with:
|
|
88
|
+
name: playwright-report
|
|
89
|
+
path: playwright-report/
|
|
90
|
+
retention-days: 14
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: Security
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: '0 4 * * 1' # Mondays 04:00 UTC
|
|
6
|
+
push:
|
|
7
|
+
branches: [main]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
security-events: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
audit:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
timeout-minutes: 10
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
- uses: oven-sh/setup-bun@v2
|
|
21
|
+
with:
|
|
22
|
+
bun-version: latest
|
|
23
|
+
- run: bun install --frozen-lockfile
|
|
24
|
+
- run: bun audit --audit-level=high
|
|
25
|
+
|
|
26
|
+
gitleaks:
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
timeout-minutes: 5
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v4
|
|
31
|
+
with:
|
|
32
|
+
fetch-depth: 0
|
|
33
|
+
- uses: gitleaks/gitleaks-action@v2
|
|
34
|
+
env:
|
|
35
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
36
|
+
|
|
37
|
+
codeql:
|
|
38
|
+
runs-on: ubuntu-latest
|
|
39
|
+
timeout-minutes: 20
|
|
40
|
+
steps:
|
|
41
|
+
- uses: actions/checkout@v4
|
|
42
|
+
- uses: github/codeql-action/init@v3
|
|
43
|
+
with:
|
|
44
|
+
languages: javascript-typescript
|
|
45
|
+
- uses: github/codeql-action/analyze@v3
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
concurrency:
|
|
9
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
10
|
+
cancel-in-progress: true
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
ci:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
timeout-minutes: 15
|
|
19
|
+
services:
|
|
20
|
+
mariadb:
|
|
21
|
+
image: mariadb:11
|
|
22
|
+
env:
|
|
23
|
+
MARIADB_ROOT_PASSWORD: root
|
|
24
|
+
MARIADB_DATABASE: testing
|
|
25
|
+
ports: ['3306:3306']
|
|
26
|
+
options: >-
|
|
27
|
+
--health-cmd "healthcheck.sh --connect --innodb_initialized"
|
|
28
|
+
--health-interval 10s --health-timeout 5s --health-retries 5
|
|
29
|
+
redis:
|
|
30
|
+
image: redis:7-alpine
|
|
31
|
+
ports: ['6379:6379']
|
|
32
|
+
options: >-
|
|
33
|
+
--health-cmd "redis-cli ping"
|
|
34
|
+
--health-interval 10s --health-timeout 5s --health-retries 5
|
|
35
|
+
steps:
|
|
36
|
+
- uses: actions/checkout@v4
|
|
37
|
+
|
|
38
|
+
- uses: shivammathur/setup-php@v2
|
|
39
|
+
with:
|
|
40
|
+
php-version: '8.3'
|
|
41
|
+
extensions: mbstring, pdo_mysql, redis, swoole, intl, bcmath, zip
|
|
42
|
+
coverage: pcov
|
|
43
|
+
tools: composer:v2
|
|
44
|
+
|
|
45
|
+
- name: Cache composer
|
|
46
|
+
uses: actions/cache@v4
|
|
47
|
+
with:
|
|
48
|
+
path: vendor
|
|
49
|
+
key: composer-${{ hashFiles('composer.lock') }}
|
|
50
|
+
|
|
51
|
+
- name: Install dependencies
|
|
52
|
+
run: composer install --no-interaction --prefer-dist --optimize-autoloader
|
|
53
|
+
|
|
54
|
+
- name: Copy env
|
|
55
|
+
run: cp .env.example .env && php artisan key:generate
|
|
56
|
+
|
|
57
|
+
- name: PHPStan
|
|
58
|
+
run: vendor/bin/phpstan analyse --no-progress --memory-limit=512M
|
|
59
|
+
|
|
60
|
+
- name: Pint (code style)
|
|
61
|
+
run: vendor/bin/pint --test
|
|
62
|
+
|
|
63
|
+
- name: Migrate
|
|
64
|
+
env:
|
|
65
|
+
DB_CONNECTION: mariadb
|
|
66
|
+
DB_HOST: 127.0.0.1
|
|
67
|
+
DB_PORT: 3306
|
|
68
|
+
DB_DATABASE: testing
|
|
69
|
+
DB_USERNAME: root
|
|
70
|
+
DB_PASSWORD: root
|
|
71
|
+
run: php artisan migrate --force
|
|
72
|
+
|
|
73
|
+
- name: PHPUnit / Pest
|
|
74
|
+
env:
|
|
75
|
+
DB_CONNECTION: mariadb
|
|
76
|
+
DB_HOST: 127.0.0.1
|
|
77
|
+
DB_PORT: 3306
|
|
78
|
+
DB_DATABASE: testing
|
|
79
|
+
DB_USERNAME: root
|
|
80
|
+
DB_PASSWORD: root
|
|
81
|
+
REDIS_HOST: 127.0.0.1
|
|
82
|
+
run: vendor/bin/pest --coverage --min=70
|
|
83
|
+
|
|
84
|
+
security:
|
|
85
|
+
runs-on: ubuntu-latest
|
|
86
|
+
timeout-minutes: 10
|
|
87
|
+
steps:
|
|
88
|
+
- uses: actions/checkout@v4
|
|
89
|
+
with:
|
|
90
|
+
fetch-depth: 0
|
|
91
|
+
|
|
92
|
+
- uses: shivammathur/setup-php@v2
|
|
93
|
+
with:
|
|
94
|
+
php-version: '8.3'
|
|
95
|
+
tools: composer:v2
|
|
96
|
+
|
|
97
|
+
- name: Install dependencies
|
|
98
|
+
run: composer install --no-interaction --prefer-dist
|
|
99
|
+
|
|
100
|
+
- name: Composer audit
|
|
101
|
+
run: composer audit
|
|
102
|
+
|
|
103
|
+
- name: Gitleaks (secret scan)
|
|
104
|
+
uses: gitleaks/gitleaks-action@v2
|
|
105
|
+
env:
|
|
106
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Security
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: '0 4 * * 1'
|
|
6
|
+
push:
|
|
7
|
+
branches: [main]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
security-events: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
audit:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
timeout-minutes: 10
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
- uses: shivammathur/setup-php@v2
|
|
21
|
+
with:
|
|
22
|
+
php-version: '8.3'
|
|
23
|
+
tools: composer:v2
|
|
24
|
+
- run: composer install --no-interaction --prefer-dist
|
|
25
|
+
- run: composer audit
|
|
26
|
+
|
|
27
|
+
gitleaks:
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
timeout-minutes: 5
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v4
|
|
32
|
+
with:
|
|
33
|
+
fetch-depth: 0
|
|
34
|
+
- uses: gitleaks/gitleaks-action@v2
|
|
35
|
+
env:
|
|
36
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|