@sylphx/flow 2.29.3 → 3.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/CHANGELOG.md +30 -0
- package/assets/agents/builder.md +73 -1
- package/assets/slash-commands/issues.md +46 -0
- package/assets/slash-commands/refactor.md +60 -0
- package/package.json +1 -1
- package/src/config/servers.ts +1 -1
- package/assets/agents/coder.md +0 -128
- package/assets/agents/reviewer.md +0 -123
- package/assets/agents/writer.md +0 -120
- package/assets/skills/abuse-prevention/SKILL.md +0 -33
- package/assets/skills/account-security/SKILL.md +0 -35
- package/assets/skills/admin/SKILL.md +0 -37
- package/assets/skills/appsec/SKILL.md +0 -35
- package/assets/skills/auth/SKILL.md +0 -34
- package/assets/skills/billing/SKILL.md +0 -35
- package/assets/skills/code-quality/SKILL.md +0 -34
- package/assets/skills/competitive-analysis/SKILL.md +0 -29
- package/assets/skills/data-modeling/SKILL.md +0 -34
- package/assets/skills/database/SKILL.md +0 -34
- package/assets/skills/delivery/SKILL.md +0 -36
- package/assets/skills/deployments/SKILL.md +0 -33
- package/assets/skills/growth/SKILL.md +0 -31
- package/assets/skills/i18n/SKILL.md +0 -35
- package/assets/skills/ledger/SKILL.md +0 -32
- package/assets/skills/observability/SKILL.md +0 -32
- package/assets/skills/performance/SKILL.md +0 -33
- package/assets/skills/pricing/SKILL.md +0 -32
- package/assets/skills/privacy/SKILL.md +0 -36
- package/assets/skills/pwa/SKILL.md +0 -36
- package/assets/skills/referral/SKILL.md +0 -30
- package/assets/skills/seo/SKILL.md +0 -40
- package/assets/skills/storage/SKILL.md +0 -33
- package/assets/skills/support/SKILL.md +0 -31
- package/assets/skills/uiux/SKILL.md +0 -40
- package/assets/slash-commands/cleanup.md +0 -59
- package/assets/slash-commands/continue.md +0 -94
- package/assets/slash-commands/continue2.md +0 -61
- package/assets/slash-commands/improve.md +0 -153
- package/assets/slash-commands/init.md +0 -34
- package/assets/slash-commands/polish.md +0 -87
- package/assets/slash-commands/quality.md +0 -181
- package/assets/slash-commands/release.md +0 -103
- package/assets/slash-commands/review.md +0 -44
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: admin
|
|
3
|
-
description: Admin panel - RBAC, config, admin tools. Use when building admin UI.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Admin Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Framework**: Next.js (with Turbopack)
|
|
11
|
-
* **API**: tRPC
|
|
12
|
-
* **Database**: Neon (Postgres)
|
|
13
|
-
* **ORM**: Drizzle
|
|
14
|
-
* **Components**: Radix UI
|
|
15
|
-
* **Styling**: Tailwind CSS
|
|
16
|
-
|
|
17
|
-
## Non-Negotiables
|
|
18
|
-
|
|
19
|
-
* Admin bootstrap via INITIAL_SUPERADMIN_EMAIL only (one-time, non-reentrant)
|
|
20
|
-
* All privilege grants must be audited (who/when/why)
|
|
21
|
-
* Actions affecting money/access/security require step-up verification
|
|
22
|
-
* Secrets must never be exposed through admin UI
|
|
23
|
-
* Only super_admin can promote to admin or access system config
|
|
24
|
-
|
|
25
|
-
## Context
|
|
26
|
-
|
|
27
|
-
The admin platform is where operational power lives — and where operational mistakes happen. A well-designed admin reduces human error while giving operators tools to resolve issues quickly.
|
|
28
|
-
|
|
29
|
-
MFA requirements for admin roles are enforced via `account-security`.
|
|
30
|
-
|
|
31
|
-
## Driving Questions
|
|
32
|
-
|
|
33
|
-
* Is bootstrap using INITIAL_SUPERADMIN_EMAIL correctly?
|
|
34
|
-
* Can an admin accidentally cause serious damage?
|
|
35
|
-
* How would we detect admin access misuse?
|
|
36
|
-
* What repetitive admin tasks should be automated?
|
|
37
|
-
* Where is audit logging missing?
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: appsec
|
|
3
|
-
description: Application security - OWASP, validation, secrets. Use when securing the app.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# AppSec Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Rate Limiting**: Upstash Redis
|
|
11
|
-
* **Framework**: Next.js (with Turbopack)
|
|
12
|
-
* **Platform**: Vercel
|
|
13
|
-
|
|
14
|
-
## Non-Negotiables
|
|
15
|
-
|
|
16
|
-
* OWASP Top 10:2025 vulnerabilities must be addressed
|
|
17
|
-
* Security headers present (CSP, HSTS, X-Frame-Options, X-Content-Type-Options)
|
|
18
|
-
* CSRF protection on state-changing requests
|
|
19
|
-
* No plaintext secrets in logs, returns, storage, or telemetry
|
|
20
|
-
* Required configuration must fail-fast at build/startup if missing
|
|
21
|
-
* Secrets must not be hardcoded or committed
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
Security isn't a feature — it's a foundational property. A single vulnerability can compromise everything else. Think like an attacker: where are the weak points?
|
|
26
|
-
|
|
27
|
-
MFA and session security live in `account-security`. This skill focuses on application-level attack surface.
|
|
28
|
-
|
|
29
|
-
## Driving Questions
|
|
30
|
-
|
|
31
|
-
* What would an attacker target first?
|
|
32
|
-
* Where is rate limiting missing or insufficient?
|
|
33
|
-
* How are secrets managed and what's the rotation strategy?
|
|
34
|
-
* What happens when a secret is compromised?
|
|
35
|
-
* Where does "security by obscurity" substitute for real controls?
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: auth
|
|
3
|
-
description: Authentication patterns - sign-in, SSO, passkeys, sessions. Use when implementing auth flows.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Auth Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Auth**: Better Auth
|
|
11
|
-
* **Framework**: Next.js (with Turbopack)
|
|
12
|
-
* **Database**: Neon (Postgres)
|
|
13
|
-
* **ORM**: Drizzle
|
|
14
|
-
|
|
15
|
-
## Non-Negotiables
|
|
16
|
-
|
|
17
|
-
* All authentication via Better Auth (no custom implementation)
|
|
18
|
-
* All authorization decisions must be server-enforced (no client-trust)
|
|
19
|
-
* Email verification required for high-impact capabilities
|
|
20
|
-
* Session token in httpOnly cookie only
|
|
21
|
-
* If SSO provider secrets are missing, hide the option (no broken UI)
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
Auth handles how users get sessions — sign-in, SSO, token issuance. Session management (visibility, revocation, step-up) lives in `account-security`.
|
|
26
|
-
|
|
27
|
-
Better Auth is the SSOT for authentication. No custom auth implementations.
|
|
28
|
-
|
|
29
|
-
## Driving Questions
|
|
30
|
-
|
|
31
|
-
* Is all auth handled by Better Auth?
|
|
32
|
-
* Are we building custom auth logic that Better Auth already provides?
|
|
33
|
-
* What's the sign-in experience for first-time vs returning users?
|
|
34
|
-
* What happens when a user loses access to their primary auth method?
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: billing
|
|
3
|
-
description: Billing - Stripe, webhooks, subscriptions. Use when implementing payments.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Billing Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Payments**: Stripe
|
|
11
|
-
* **Workflows**: Upstash Workflows + QStash
|
|
12
|
-
* **Database**: Neon (Postgres)
|
|
13
|
-
* **ORM**: Drizzle
|
|
14
|
-
|
|
15
|
-
## Non-Negotiables
|
|
16
|
-
|
|
17
|
-
* Webhook signature must be verified (reject unverifiable events)
|
|
18
|
-
* Stripe event ID must be used for idempotency
|
|
19
|
-
* Webhooks must handle out-of-order delivery
|
|
20
|
-
* Subscription state changes must be audit-logged
|
|
21
|
-
* Payment failures must trigger appropriate user communication
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
Billing handles the payment processing mechanics — webhooks, subscription lifecycle, payment methods. It's the plumbing that moves money. Pricing strategy and entitlements live in `pricing`.
|
|
26
|
-
|
|
27
|
-
The platform owns billing logic. Stripe is a payment processor. All billing configuration must be in code, not Stripe dashboard.
|
|
28
|
-
|
|
29
|
-
## Driving Questions
|
|
30
|
-
|
|
31
|
-
* Are webhooks handling all subscription lifecycle events?
|
|
32
|
-
* What happens when payment fails mid-cycle?
|
|
33
|
-
* How are disputes and chargebacks handled end-to-end?
|
|
34
|
-
* Can failed webhooks be safely replayed?
|
|
35
|
-
* Where could revenue leak (failed renewals, unhandled states)?
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: code-quality
|
|
3
|
-
description: Code quality - patterns, testing, maintainability. Use for code review.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Code Quality Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Runtime**: Bun
|
|
11
|
-
* **Linting/Formatting**: Biome
|
|
12
|
-
* **Testing**: Bun test
|
|
13
|
-
* **Language**: TypeScript (strict)
|
|
14
|
-
|
|
15
|
-
## Non-Negotiables
|
|
16
|
-
|
|
17
|
-
* No TODOs, hacks, or workarounds in production code
|
|
18
|
-
* Strict TypeScript with end-to-end type safety (DB → API → UI)
|
|
19
|
-
* No dead or unused code
|
|
20
|
-
|
|
21
|
-
## Context
|
|
22
|
-
|
|
23
|
-
Code quality isn't about following rules — it's about making the codebase a place where good work is easy and bad work is hard. High-quality code is readable, testable, and changeable. Low-quality code fights you on every change.
|
|
24
|
-
|
|
25
|
-
Don't just look for rule violations. Look for code that technically works but is confusing, fragile, or painful to modify. Look for patterns that will cause bugs. Look for complexity that doesn't need to exist.
|
|
26
|
-
|
|
27
|
-
## Driving Questions
|
|
28
|
-
|
|
29
|
-
* What code would you be embarrassed to show a senior engineer?
|
|
30
|
-
* Where is complexity hiding that makes the codebase hard to understand?
|
|
31
|
-
* What would break if someone new tried to make changes here?
|
|
32
|
-
* Where are types lying (as any, incorrect generics, missing null checks)?
|
|
33
|
-
* What test coverage gaps exist for code that really matters?
|
|
34
|
-
* If we could rewrite one part of this codebase, what would have the highest impact?
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: competitive-analysis
|
|
3
|
-
description: Competitive analysis - market research, feature gaps. Use when exploring what competitors do.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Competitive Analysis Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* Research across the product's full stack as needed
|
|
11
|
-
|
|
12
|
-
## Non-Negotiables
|
|
13
|
-
|
|
14
|
-
* None — this is pure exploration
|
|
15
|
-
|
|
16
|
-
## Context
|
|
17
|
-
|
|
18
|
-
Discovery is about finding what's missing, what's possible, and what would make the product significantly more competitive. It's not about fixing bugs — it's about identifying opportunities that don't yet exist.
|
|
19
|
-
|
|
20
|
-
Look at competitors, market trends, user expectations, and technological possibilities. What would make users choose this product over alternatives? What capabilities would unlock new business models?
|
|
21
|
-
|
|
22
|
-
## Driving Questions
|
|
23
|
-
|
|
24
|
-
* What are competitors doing that we're not?
|
|
25
|
-
* What do users expect based on industry standards that we lack?
|
|
26
|
-
* What integrations would add significant value?
|
|
27
|
-
* What pricing models are common in the market and how do we compare?
|
|
28
|
-
* What technical capabilities could enable new business models?
|
|
29
|
-
* What would make this product a category leader rather than a follower?
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: data-modeling
|
|
3
|
-
description: Data modeling - entities, relationships, schemas. Use when designing data structures.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Data Modeling Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **API**: tRPC
|
|
11
|
-
* **Framework**: Next.js (with Turbopack)
|
|
12
|
-
* **Database**: Neon (Postgres)
|
|
13
|
-
* **ORM**: Drizzle
|
|
14
|
-
|
|
15
|
-
## Non-Negotiables
|
|
16
|
-
|
|
17
|
-
* All authorization must be server-enforced (no client-trust)
|
|
18
|
-
* Platform is source of truth — third-party services sync FROM platform
|
|
19
|
-
* UI must never contradict server-truth
|
|
20
|
-
* High-value mutations must have audit trail (who/when/why/before/after)
|
|
21
|
-
|
|
22
|
-
## Context
|
|
23
|
-
|
|
24
|
-
Data modeling is conceptual — entities, relationships, domain boundaries. Physical implementation (indexes, migrations, query performance) lives in `database`.
|
|
25
|
-
|
|
26
|
-
Consider: what are the real-world entities? How do they relate? What invariants must hold? What will break when requirements change?
|
|
27
|
-
|
|
28
|
-
## Driving Questions
|
|
29
|
-
|
|
30
|
-
* If we were designing this from scratch, what would be different?
|
|
31
|
-
* Where will the current model break as the product scales?
|
|
32
|
-
* What implicit assumptions are waiting to cause bugs?
|
|
33
|
-
* Where is complexity hiding that makes the system hard to reason about?
|
|
34
|
-
* What domain boundaries are we violating?
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: database
|
|
3
|
-
description: Database - schema, indexes, migrations. Use when working with databases.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Database Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Database**: Neon (Postgres)
|
|
11
|
-
* **ORM**: Drizzle
|
|
12
|
-
* **Migrations**: Drizzle Kit
|
|
13
|
-
|
|
14
|
-
## Non-Negotiables
|
|
15
|
-
|
|
16
|
-
* All database access through Drizzle (no raw SQL unless necessary)
|
|
17
|
-
* Migration files must exist, be complete, and be committed
|
|
18
|
-
* CI must fail if schema changes aren't represented by migrations
|
|
19
|
-
* No schema drift between environments
|
|
20
|
-
* Drizzle schema is SSOT for database structure
|
|
21
|
-
|
|
22
|
-
## Context
|
|
23
|
-
|
|
24
|
-
Database handles physical implementation — schema, indexes, migrations, query performance. Conceptual modeling (entities, relationships) lives in `data-modeling`.
|
|
25
|
-
|
|
26
|
-
Drizzle is the SSOT for database access. Type-safe, end-to-end.
|
|
27
|
-
|
|
28
|
-
## Driving Questions
|
|
29
|
-
|
|
30
|
-
* Is all database access through Drizzle?
|
|
31
|
-
* Are migrations complete and committed?
|
|
32
|
-
* What constraints are missing that would prevent invalid state?
|
|
33
|
-
* Where are missing indexes causing slow queries?
|
|
34
|
-
* What queries are N+1 or unbounded?
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: delivery
|
|
3
|
-
description: Delivery - CI/CD, testing, releases. Use when improving pipelines.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Delivery Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **CI**: GitHub Actions
|
|
11
|
-
* **Testing**: Bun test
|
|
12
|
-
* **Linting**: Biome
|
|
13
|
-
* **Platform**: Vercel
|
|
14
|
-
|
|
15
|
-
## Non-Negotiables
|
|
16
|
-
|
|
17
|
-
* All release gates must be automated (manual verification doesn't count)
|
|
18
|
-
* Build must fail-fast on missing required configuration
|
|
19
|
-
* CI must block on: lint, typecheck, tests, build
|
|
20
|
-
* `/en/*` must redirect (no duplicate content)
|
|
21
|
-
* Security headers must be verified by tests
|
|
22
|
-
* Consent gating must be verified by tests
|
|
23
|
-
|
|
24
|
-
## Context
|
|
25
|
-
|
|
26
|
-
Delivery handles pre-production — CI/CD pipeline, release gates, quality checks. Post-deployment operations (rollback, feature flags, runbooks) live in `deployments`.
|
|
27
|
-
|
|
28
|
-
The question isn't "what tests do we have?" but "what could go wrong that we wouldn't catch?"
|
|
29
|
-
|
|
30
|
-
## Driving Questions
|
|
31
|
-
|
|
32
|
-
* What could ship to production that shouldn't?
|
|
33
|
-
* Where does manual verification substitute for automation?
|
|
34
|
-
* What flaky tests are training people to ignore failures?
|
|
35
|
-
* How fast is the feedback loop, and what slows it down?
|
|
36
|
-
* What's the worst thing that shipped recently that tests should have caught?
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: deployments
|
|
3
|
-
description: Deployments - rollback, feature flags, ops tooling. Use when shipping to production.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Deployments Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Workflows**: Upstash Workflows + QStash
|
|
11
|
-
* **Cache**: Upstash Redis
|
|
12
|
-
* **Platform**: Vercel
|
|
13
|
-
|
|
14
|
-
## Non-Negotiables
|
|
15
|
-
|
|
16
|
-
* Rollback plan must exist and be exercisable
|
|
17
|
-
* Dead-letter handling must exist and be operable (visible, replayable)
|
|
18
|
-
* Side-effects (email, billing, ledger) must be idempotent or safely re-entrant
|
|
19
|
-
* Drift alerts must have remediation playbooks
|
|
20
|
-
|
|
21
|
-
## Context
|
|
22
|
-
|
|
23
|
-
Deployments handles post-deployment operations — rollback, feature flags, runbooks, incident response. Pre-production CI/CD lives in `delivery`.
|
|
24
|
-
|
|
25
|
-
When something goes wrong, can an operator fix it without deploying code?
|
|
26
|
-
|
|
27
|
-
## Driving Questions
|
|
28
|
-
|
|
29
|
-
* What happens when a job fails permanently?
|
|
30
|
-
* How would an operator know something is stuck?
|
|
31
|
-
* Can failed workflows be safely replayed without duplicating side-effects?
|
|
32
|
-
* What's the rollback plan if a deploy breaks something critical?
|
|
33
|
-
* What runbooks exist, and what runbooks should exist but don't?
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: growth
|
|
3
|
-
description: Growth - onboarding, activation, retention. Use for growth features.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Growth Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Analytics**: PostHog
|
|
11
|
-
* **Framework**: Next.js (with Turbopack)
|
|
12
|
-
|
|
13
|
-
## Non-Negotiables
|
|
14
|
-
|
|
15
|
-
* Sharing/virality mechanics must be consent-aware
|
|
16
|
-
* Growth instrumentation must not violate privacy constraints
|
|
17
|
-
|
|
18
|
-
## Context
|
|
19
|
-
|
|
20
|
-
Growth isn't about tricks — it's about removing friction from value delivery. Users who quickly experience value stay; users who don't, leave.
|
|
21
|
-
|
|
22
|
-
The review should consider: what's preventing users from reaching their "aha moment" faster? What would make them want to share? What brings them back? These aren't features to add — they're fundamental product questions.
|
|
23
|
-
|
|
24
|
-
## Driving Questions
|
|
25
|
-
|
|
26
|
-
* Where do users drop off before experiencing value?
|
|
27
|
-
* What would cut time-to-value in half?
|
|
28
|
-
* Why would a user tell someone else about this product?
|
|
29
|
-
* What brings users back after their first session?
|
|
30
|
-
* What signals predict churn before it happens?
|
|
31
|
-
* What would a 10x better onboarding look like?
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: i18n
|
|
3
|
-
description: Internationalization - localization, translations. Use when adding languages.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# i18n Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **i18n**: next-intl
|
|
11
|
-
* **Framework**: Next.js (with Turbopack)
|
|
12
|
-
|
|
13
|
-
## Non-Negotiables
|
|
14
|
-
|
|
15
|
-
* All i18n via next-intl (no custom implementation)
|
|
16
|
-
* `/en/*` must not exist (permanently redirect to non-prefixed)
|
|
17
|
-
* Missing translation keys must fail build
|
|
18
|
-
* No hardcoded user-facing strings outside localization
|
|
19
|
-
* Translation bundles must be split by namespace (no monolithic files)
|
|
20
|
-
* Server Components for translations wherever possible
|
|
21
|
-
* Client bundles must not include server-only translations
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
Internationalization isn't just translation — it's making the product feel native to each market. Bad i18n signals users are second-class citizens. Good i18n is invisible.
|
|
26
|
-
|
|
27
|
-
next-intl is the SSOT for i18n. No custom implementations.
|
|
28
|
-
|
|
29
|
-
## Driving Questions
|
|
30
|
-
|
|
31
|
-
* Is next-intl handling all translations?
|
|
32
|
-
* Are bundles split by namespace?
|
|
33
|
-
* What would make the product feel native to non-English users?
|
|
34
|
-
* Where do translations feel awkward?
|
|
35
|
-
* How large are client-side translation bundles?
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ledger
|
|
3
|
-
description: Financial ledger - transactions, audit trails. Use when tracking money.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Ledger Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Database**: Neon (Postgres)
|
|
11
|
-
* **ORM**: Drizzle
|
|
12
|
-
|
|
13
|
-
## Non-Negotiables
|
|
14
|
-
|
|
15
|
-
* Balances must be immutable ledger (append-only), not mutable fields
|
|
16
|
-
* No floating-point for money (use deterministic precision)
|
|
17
|
-
* All financial mutations must be idempotent
|
|
18
|
-
* Every balance must be provable by replaying the ledger
|
|
19
|
-
|
|
20
|
-
## Context
|
|
21
|
-
|
|
22
|
-
Ledger handles financial integrity — transaction history, balance correctness, audit trail. Payment processing lives in `billing`, pricing strategy lives in `pricing`.
|
|
23
|
-
|
|
24
|
-
A bug that creates or destroys money is a serious incident. This must be bulletproof.
|
|
25
|
-
|
|
26
|
-
## Driving Questions
|
|
27
|
-
|
|
28
|
-
* Does a balance/credits system exist, and is it implemented correctly?
|
|
29
|
-
* Where could money be created or destroyed by a bug?
|
|
30
|
-
* What happens during concurrent transactions?
|
|
31
|
-
* How would we detect if balances drifted from reality?
|
|
32
|
-
* Can we prove every balance by replaying the ledger?
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: observability
|
|
3
|
-
description: Observability - logging, metrics, tracing. Use when adding monitoring.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Observability Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Error Tracking**: Sentry
|
|
11
|
-
* **Analytics**: PostHog
|
|
12
|
-
* **Platform**: Vercel
|
|
13
|
-
|
|
14
|
-
## Non-Negotiables
|
|
15
|
-
|
|
16
|
-
* Correlation IDs must exist end-to-end (request → job → webhook)
|
|
17
|
-
* Alerts must exist for critical failures
|
|
18
|
-
* Errors must be actionable, not noise
|
|
19
|
-
|
|
20
|
-
## Context
|
|
21
|
-
|
|
22
|
-
Observability is about answering questions when things go wrong. It's 3am, something is broken — can you figure out what happened? How fast?
|
|
23
|
-
|
|
24
|
-
PII protection in logs is enforced via `privacy`. This skill focuses on making debugging effective.
|
|
25
|
-
|
|
26
|
-
## Driving Questions
|
|
27
|
-
|
|
28
|
-
* If something breaks now, how would we find out?
|
|
29
|
-
* What blind spots exist where errors go unnoticed?
|
|
30
|
-
* How long to trace a request through the system?
|
|
31
|
-
* What alerts exist, and do they fire correctly?
|
|
32
|
-
* Where is noise training people to ignore alerts?
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: performance
|
|
3
|
-
description: Performance - Core Web Vitals, bundle size. Use when optimizing speed.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Performance Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Framework**: Next.js (with Turbopack)
|
|
11
|
-
* **Platform**: Vercel
|
|
12
|
-
* **Tooling**: Bun
|
|
13
|
-
|
|
14
|
-
## Non-Negotiables
|
|
15
|
-
|
|
16
|
-
* Core Web Vitals must meet thresholds (LCP < 2.5s, CLS < 0.1, INP < 200ms)
|
|
17
|
-
* Performance regressions must be detectable
|
|
18
|
-
* JavaScript bundle size must be monitored and optimized
|
|
19
|
-
|
|
20
|
-
## Context
|
|
21
|
-
|
|
22
|
-
Performance is a feature. Slow products feel broken, even when they're correct. Users don't read loading spinners — they leave. Every 100ms of latency costs engagement.
|
|
23
|
-
|
|
24
|
-
Don't just measure — understand. Where does time go? What's blocking the critical path? What would make the product feel instant? Sometimes small architectural changes have bigger impact than optimization.
|
|
25
|
-
|
|
26
|
-
## Driving Questions
|
|
27
|
-
|
|
28
|
-
* What makes the product feel slow to users?
|
|
29
|
-
* Where are the biggest bottlenecks in the critical user journeys?
|
|
30
|
-
* What's in the critical rendering path that shouldn't be?
|
|
31
|
-
* How large is the JavaScript bundle, and what's bloating it?
|
|
32
|
-
* What database queries are slow, and why?
|
|
33
|
-
* If we could make one thing 10x faster, what would have the most impact?
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pricing
|
|
3
|
-
description: Pricing strategy - tiers, feature gating. Use when designing pricing.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Pricing Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Payments**: Stripe
|
|
11
|
-
* **Database**: Neon (Postgres)
|
|
12
|
-
* **ORM**: Drizzle
|
|
13
|
-
|
|
14
|
-
## Non-Negotiables
|
|
15
|
-
|
|
16
|
-
* Platform is source of truth — Stripe syncs FROM platform, never reverse
|
|
17
|
-
* All pricing/product configuration must be in code
|
|
18
|
-
* Feature entitlements derived from platform state, not Stripe metadata
|
|
19
|
-
* Pricing drift must be detectable and auto-correctable
|
|
20
|
-
* No manual Stripe dashboard configuration
|
|
21
|
-
|
|
22
|
-
## Context
|
|
23
|
-
|
|
24
|
-
Pricing owns strategy — what tiers exist, what features each tier gets, how upgrades work. Billing handles the payment mechanics. This separation allows switching payment processors without repricing.
|
|
25
|
-
|
|
26
|
-
## Driving Questions
|
|
27
|
-
|
|
28
|
-
* Is all pricing defined in code?
|
|
29
|
-
* How do we test pricing changes before going live?
|
|
30
|
-
* What would make upgrading feel like an obvious decision?
|
|
31
|
-
* How do we communicate value at each tier?
|
|
32
|
-
* Can we A/B test pricing without Stripe changes?
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: privacy
|
|
3
|
-
description: Privacy and data protection - GDPR, CCPA, consent. Use when handling user data.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Privacy Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Analytics**: PostHog
|
|
11
|
-
* **Email**: Resend
|
|
12
|
-
* **Tag Management**: GTM (marketing only)
|
|
13
|
-
* **Observability**: Sentry
|
|
14
|
-
|
|
15
|
-
## Non-Negotiables
|
|
16
|
-
|
|
17
|
-
* Analytics and marketing must not fire before user consent
|
|
18
|
-
* PII must not leak into logs, Sentry, PostHog, or third-party services
|
|
19
|
-
* Account deletion must propagate to all third-party processors
|
|
20
|
-
* Marketing tags (GTM, Google Ads) must not load without consent
|
|
21
|
-
* Conversion tracking must be server-truth aligned, idempotent, and deduplicated
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
Privacy isn't just compliance — it's trust. Users share data expecting it to be handled responsibly. Every log line, every analytics event, every third-party integration is a potential privacy leak.
|
|
26
|
-
|
|
27
|
-
The review should verify that actual behavior matches stated policy. If the privacy policy says "we don't track without consent," does the code actually enforce that? Mismatches are not just bugs — they're trust violations.
|
|
28
|
-
|
|
29
|
-
## Driving Questions
|
|
30
|
-
|
|
31
|
-
* Does the consent implementation actually block tracking, or just record preference?
|
|
32
|
-
* Where does PII leak that we haven't noticed?
|
|
33
|
-
* If a user requests data deletion, what actually gets deleted vs. retained?
|
|
34
|
-
* Does the privacy policy accurately reflect what the code actually does?
|
|
35
|
-
* How would we handle a GDPR data subject access request today?
|
|
36
|
-
* What data are we collecting that we don't actually need?
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pwa
|
|
3
|
-
description: PWA - native app parity, offline-first, engagement. Use when building installable web apps.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# PWA Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Framework**: Next.js (with Turbopack)
|
|
11
|
-
* **Service Worker**: Serwist (Next.js integration)
|
|
12
|
-
* **Platform**: Vercel
|
|
13
|
-
|
|
14
|
-
## Non-Negotiables
|
|
15
|
-
|
|
16
|
-
* Service worker must not cache personalized/sensitive/authorized content
|
|
17
|
-
* Cache invalidation on deploy must be correct (no stale content)
|
|
18
|
-
* Offline experience must be functional, not just a fallback page
|
|
19
|
-
* Installation prompt must be contextual (after value demonstrated)
|
|
20
|
-
* Complete manifest.webmanifest with all required fields
|
|
21
|
-
* All required icons present (favicon, apple-touch-icon, PWA icons, maskable)
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
PWA goal: users forget they're in a browser. The gap between "website" and "app" is measured in micro-interactions — haptics, gestures, offline resilience, and engagement hooks.
|
|
26
|
-
|
|
27
|
-
A bad PWA is worse than no PWA. But a great PWA can match 90% of native with 10% of the effort.
|
|
28
|
-
|
|
29
|
-
## Driving Questions
|
|
30
|
-
|
|
31
|
-
* What breaks when the user goes offline mid-action?
|
|
32
|
-
* What would make users install this instead of bookmarking?
|
|
33
|
-
* Which native gestures (swipe, pull, long-press) are missing?
|
|
34
|
-
* What local notifications would drive daily engagement?
|
|
35
|
-
* Where does the app feel "webby" instead of native?
|
|
36
|
-
* What's the first thing users see when they open the installed app?
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: referral
|
|
3
|
-
description: Referral systems - referral programs, viral loops. Use for referrals.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Referral Guideline
|
|
7
|
-
|
|
8
|
-
## Tech Stack
|
|
9
|
-
|
|
10
|
-
* **Analytics**: PostHog
|
|
11
|
-
* **Database**: Neon (Postgres)
|
|
12
|
-
* **ORM**: Drizzle
|
|
13
|
-
|
|
14
|
-
## Non-Negotiables
|
|
15
|
-
|
|
16
|
-
* Referral attribution must be accurate and auditable
|
|
17
|
-
* Rewards must be fraud-resistant (no self-referral, duplicate abuse)
|
|
18
|
-
* Terms must be clear and enforced consistently
|
|
19
|
-
|
|
20
|
-
## Context
|
|
21
|
-
|
|
22
|
-
Referrals turn happy users into growth engines. But poorly designed referral programs create fraud opportunities and erode trust. The best referral programs feel generous, not gameable.
|
|
23
|
-
|
|
24
|
-
## Driving Questions
|
|
25
|
-
|
|
26
|
-
* What would make users genuinely want to refer others?
|
|
27
|
-
* How do we prevent referral fraud without punishing legitimate users?
|
|
28
|
-
* Is referral attribution working correctly across all channels?
|
|
29
|
-
* What's the referral conversion rate and what affects it?
|
|
30
|
-
* Are referral rewards actually motivating behavior?
|