xibecode 0.7.5 → 0.7.6
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/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +5 -0
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/run-pr.d.ts.map +1 -1
- package/dist/commands/run-pr.js +4 -1
- package/dist/commands/run-pr.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +3 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/core/agent.d.ts +3 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +5 -1
- package/dist/core/agent.js.map +1 -1
- package/dist/core/planMode.d.ts.map +1 -1
- package/dist/core/planMode.js +6 -2
- package/dist/core/planMode.js.map +1 -1
- package/dist/core/skill-selection.d.ts +36 -0
- package/dist/core/skill-selection.d.ts.map +1 -0
- package/dist/core/skill-selection.js +172 -0
- package/dist/core/skill-selection.js.map +1 -0
- package/dist/core/skills.d.ts +14 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -0
- package/dist/core/skills.js.map +1 -1
- package/dist/webui/server.d.ts +2 -0
- package/dist/webui/server.d.ts.map +1 -1
- package/dist/webui/server.js +7 -0
- package/dist/webui/server.js.map +1 -1
- package/package.json +2 -1
- package/skills/accessibility-web.md +22 -0
- package/skills/ci-cd-github.md +20 -0
- package/skills/code-review-pr.md +25 -0
- package/skills/css-design-tokens.md +18 -0
- package/skills/data-privacy-gdpr.md +18 -0
- package/skills/database-patterns.md +21 -0
- package/skills/debug-production.md +49 -0
- package/skills/dependency-security.md +18 -0
- package/skills/docker-containers.md +19 -0
- package/skills/documentation.md +21 -0
- package/skills/go-conventions.md +19 -0
- package/skills/graphql-apis.md +18 -0
- package/skills/grpc-protobuf.md +18 -0
- package/skills/i18n-l10n.md +18 -0
- package/skills/incident-response.md +18 -0
- package/skills/java-jvm.md +18 -0
- package/skills/kubernetes-basics.md +19 -0
- package/skills/llm-integration.md +18 -0
- package/skills/message-queues-events.md +18 -0
- package/skills/microservices-boundaries.md +18 -0
- package/skills/mobile-native-ui.md +18 -0
- package/skills/mobile-responsive.md +18 -0
- package/skills/monorepo-workflows.md +18 -0
- package/skills/node-api-design.md +21 -0
- package/skills/observability-logging.md +21 -0
- package/skills/openapi-rest.md +18 -0
- package/skills/optimize-performance.md +90 -0
- package/skills/playwright-e2e.md +18 -0
- package/skills/python-quality.md +21 -0
- package/skills/react-next-patterns.md +24 -0
- package/skills/redis-caching.md +18 -0
- package/skills/refactor-clean-code.md +38 -0
- package/skills/rust-patterns.md +18 -0
- package/skills/sandbox-autonomous.md +25 -0
- package/skills/security-audit.md +79 -0
- package/skills/seo-web.md +18 -0
- package/skills/shell-scripting.md +18 -0
- package/skills/terraform-iac.md +18 -0
- package/skills/typescript-quality.md +23 -0
- package/skills/websockets-realtime.md +18 -0
- package/skills/write-tests.md +62 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Dockerfiles, multi-stage builds, and image hygiene
|
|
3
|
+
tags: docker, containers, devops
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Docker & Containers
|
|
7
|
+
|
|
8
|
+
## Dockerfiles
|
|
9
|
+
|
|
10
|
+
- Prefer multi-stage builds to keep runtime images small; pin base image digests when the project does.
|
|
11
|
+
- Use non-root users in production images when the stack supports it.
|
|
12
|
+
|
|
13
|
+
## Caches
|
|
14
|
+
|
|
15
|
+
- Order layers so dependency installs cache well (copy lockfiles before source).
|
|
16
|
+
|
|
17
|
+
## Secrets
|
|
18
|
+
|
|
19
|
+
- Never bake secrets into images; use build args only for non-secret metadata.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: README updates, API docs, and user-facing copy
|
|
3
|
+
tags: docs, readme, technical-writing
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Documentation
|
|
7
|
+
|
|
8
|
+
## When to update docs
|
|
9
|
+
|
|
10
|
+
- User-facing behavior changes need README or docs updates in the same change set when the repo keeps them in sync.
|
|
11
|
+
- New CLI flags, config keys, or environment variables must be documented where other options are listed.
|
|
12
|
+
|
|
13
|
+
## Style
|
|
14
|
+
|
|
15
|
+
- Use clear, imperative titles; short paragraphs; code blocks with correct language tags.
|
|
16
|
+
- Link to upstream docs for heavy reference material instead of copying pages of API surface.
|
|
17
|
+
|
|
18
|
+
## Examples
|
|
19
|
+
|
|
20
|
+
- Prefer one minimal, copy-pastable example over many partial snippets.
|
|
21
|
+
- Keep version numbers and install commands aligned with the package manager the project uses (e.g. pnpm).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Go modules, interfaces, and idiomatic error handling
|
|
3
|
+
tags: go, golang, modules
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Go Conventions
|
|
7
|
+
|
|
8
|
+
## Modules
|
|
9
|
+
|
|
10
|
+
- Respect `go.mod` / `go.sum`; run `go mod tidy` after dependency changes when appropriate.
|
|
11
|
+
|
|
12
|
+
## Errors
|
|
13
|
+
|
|
14
|
+
- Wrap errors with context (`fmt.Errorf` with `%w`) where the codebase does; avoid panics in libraries.
|
|
15
|
+
|
|
16
|
+
## Style
|
|
17
|
+
|
|
18
|
+
- Run `gofmt` / `goimports` to match existing formatting.
|
|
19
|
+
- Keep interfaces small; prefer composition over deep inheritance (Go has none).
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: GraphQL schema design, resolvers, and N+1 pitfalls
|
|
3
|
+
tags: graphql, api, apollo
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# GraphQL APIs
|
|
7
|
+
|
|
8
|
+
## Schema
|
|
9
|
+
|
|
10
|
+
- Evolve schemas carefully: prefer additive changes; use deprecations before removals.
|
|
11
|
+
|
|
12
|
+
## Performance
|
|
13
|
+
|
|
14
|
+
- Watch for N+1 query patterns; use dataloaders or batching when the codebase does.
|
|
15
|
+
|
|
16
|
+
## Errors
|
|
17
|
+
|
|
18
|
+
- Return user-safe error messages; log detailed errors server-side only.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: gRPC services, protobuf evolution, and streaming RPCs
|
|
3
|
+
tags: grpc, protobuf, rpc
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# gRPC & Protobuf
|
|
7
|
+
|
|
8
|
+
## Compatibility
|
|
9
|
+
|
|
10
|
+
- Add fields with care; reserve numbers; avoid reusing field numbers.
|
|
11
|
+
|
|
12
|
+
## Evolution
|
|
13
|
+
|
|
14
|
+
- Follow repo policy for required vs optional fields across language generators.
|
|
15
|
+
|
|
16
|
+
## Errors
|
|
17
|
+
|
|
18
|
+
- Map RPC failures to meaningful status codes; propagate rich error details only when safe.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Internationalization, locales, and translation workflows
|
|
3
|
+
tags: i18n, l10n, translations
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# i18n & l10n
|
|
7
|
+
|
|
8
|
+
## Strings
|
|
9
|
+
|
|
10
|
+
- No user-visible concatenation of translated fragments; use ICU or framework message formats.
|
|
11
|
+
|
|
12
|
+
## Locales
|
|
13
|
+
|
|
14
|
+
- Respect RTL locales when adding layout; test date/number formatting per locale.
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
- Keep translation keys stable; update catalogs when adding strings.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Outages, rollbacks, and communication during incidents
|
|
3
|
+
tags: incident, sre, on-call, postmortem
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Incident Response
|
|
7
|
+
|
|
8
|
+
## Triage
|
|
9
|
+
|
|
10
|
+
- Stabilize first: rollback, feature flag, or scale — pick what matches the playbook.
|
|
11
|
+
|
|
12
|
+
## Communication
|
|
13
|
+
|
|
14
|
+
- Short status updates; avoid blame; track timeline for post-incident review.
|
|
15
|
+
|
|
16
|
+
## Follow-up
|
|
17
|
+
|
|
18
|
+
- Document root cause, action items, and monitoring gaps; link to tickets.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: JVM projects, Gradle/Maven, and Java conventions
|
|
3
|
+
tags: java, jvm, gradle, maven
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Java & JVM
|
|
7
|
+
|
|
8
|
+
## Build
|
|
9
|
+
|
|
10
|
+
- Match Gradle vs Maven layout already in the repo; respect toolchain versions.
|
|
11
|
+
|
|
12
|
+
## Style
|
|
13
|
+
|
|
14
|
+
- Follow project checkstyle/Spotless settings if present.
|
|
15
|
+
|
|
16
|
+
## Dependencies
|
|
17
|
+
|
|
18
|
+
- Prefer BOMs or version catalogs for consistent versions across modules.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Kubernetes manifests, resources, and safe rollouts
|
|
3
|
+
tags: kubernetes, k8s, yaml, devops
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Kubernetes Basics
|
|
7
|
+
|
|
8
|
+
## Manifests
|
|
9
|
+
|
|
10
|
+
- Match API versions already in the repo; validate with `kubectl apply --dry-run=server` when possible.
|
|
11
|
+
|
|
12
|
+
## Workloads
|
|
13
|
+
|
|
14
|
+
- Set sensible `resources` requests/limits when the cluster pattern expects them.
|
|
15
|
+
- Use readiness/liveness probes consistent with how the service exposes health.
|
|
16
|
+
|
|
17
|
+
## Rollouts
|
|
18
|
+
|
|
19
|
+
- Prefer gradual rollouts when the project uses them; document breaking chart changes.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Prompting, tool use, and safe LLM features in applications
|
|
3
|
+
tags: llm, ai, prompts, openai
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# LLM Integration in Apps
|
|
7
|
+
|
|
8
|
+
## Safety
|
|
9
|
+
|
|
10
|
+
- Treat model output as untrusted for code execution; validate and sandbox when generating code or commands.
|
|
11
|
+
|
|
12
|
+
## Cost & latency
|
|
13
|
+
|
|
14
|
+
- Cache where appropriate; bound context size; stream responses when UX allows.
|
|
15
|
+
|
|
16
|
+
## Evaluation
|
|
17
|
+
|
|
18
|
+
- Add regression prompts or evals when changing prompts or models in critical flows.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Queues, pub/sub, and event-driven integration
|
|
3
|
+
tags: kafka, rabbitmq, sqs, events
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Message Queues & Events
|
|
7
|
+
|
|
8
|
+
## Semantics
|
|
9
|
+
|
|
10
|
+
- Prefer at-least-once with idempotent consumers unless exactly-once is already guaranteed.
|
|
11
|
+
|
|
12
|
+
## Schemas
|
|
13
|
+
|
|
14
|
+
- Version event payloads; use schema registries when the platform does.
|
|
15
|
+
|
|
16
|
+
## Ops
|
|
17
|
+
|
|
18
|
+
- Monitor lag, DLQs, and replay procedures; never silently drop failed messages without policy.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Service boundaries, contracts, and distributed failure modes
|
|
3
|
+
tags: microservices, architecture, soa
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Microservice Boundaries
|
|
7
|
+
|
|
8
|
+
## Ownership
|
|
9
|
+
|
|
10
|
+
- Prefer clear bounded contexts; avoid shared databases across services unless already the pattern.
|
|
11
|
+
|
|
12
|
+
## Communication
|
|
13
|
+
|
|
14
|
+
- Use sync vs async boundaries intentionally; document timeouts and retries.
|
|
15
|
+
|
|
16
|
+
## Failure
|
|
17
|
+
|
|
18
|
+
- Design for partial outages: idempotency, deduplication, and poison-message handling where queues exist.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Native mobile patterns (Swift/Kotlin) and platform guidelines
|
|
3
|
+
tags: ios, android, swift, kotlin, mobile
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Native Mobile UI
|
|
7
|
+
|
|
8
|
+
## Platforms
|
|
9
|
+
|
|
10
|
+
- Follow Human Interface Guidelines / Material guidelines as the product targets.
|
|
11
|
+
|
|
12
|
+
## Lifecycle
|
|
13
|
+
|
|
14
|
+
- Respect app backgrounding, permissions flows, and store review policies for APIs used.
|
|
15
|
+
|
|
16
|
+
## Sharing
|
|
17
|
+
|
|
18
|
+
- Keep business logic in shared modules only when the repo already uses KMP or similar.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Responsive layouts, touch targets, and mobile UX
|
|
3
|
+
tags: responsive, mobile, viewport
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Mobile & Responsive
|
|
7
|
+
|
|
8
|
+
## Layout
|
|
9
|
+
|
|
10
|
+
- Test key breakpoints used in the codebase; avoid fixed widths that break small screens.
|
|
11
|
+
|
|
12
|
+
## Touch
|
|
13
|
+
|
|
14
|
+
- Minimum tap targets (~44px) for primary actions when targeting mobile users.
|
|
15
|
+
|
|
16
|
+
## Performance
|
|
17
|
+
|
|
18
|
+
- Lazy-load heavy media; avoid main-thread blocking on low-end devices when possible.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Monorepos, workspaces, and cross-package changes
|
|
3
|
+
tags: monorepo, pnpm, turborepo, nx
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monorepo Workflows
|
|
7
|
+
|
|
8
|
+
## Tooling
|
|
9
|
+
|
|
10
|
+
- Use the workspace’s task runner (`turbo`, `nx`, `pnpm -r`) as configured; don’t bypass caches without reason.
|
|
11
|
+
|
|
12
|
+
## Changes
|
|
13
|
+
|
|
14
|
+
- When touching shared packages, bump dependents or use workspace protocol consistently.
|
|
15
|
+
|
|
16
|
+
## CI
|
|
17
|
+
|
|
18
|
+
- Run affected tests/builds when the pipeline supports it; otherwise follow project conventions.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: HTTP APIs, validation, and Node.js service boundaries
|
|
3
|
+
tags: node, api, http, rest
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Node API Design
|
|
7
|
+
|
|
8
|
+
## Structure
|
|
9
|
+
|
|
10
|
+
- One clear entry for HTTP handling (router layer) and thin handlers that call domain logic.
|
|
11
|
+
- Validate inputs at the boundary (schema library or manual checks) and return consistent error shapes.
|
|
12
|
+
|
|
13
|
+
## HTTP semantics
|
|
14
|
+
|
|
15
|
+
- Use correct status codes: 400 client errors, 401/403 auth, 404 missing resources, 409 conflicts, 500 only for unexpected server faults.
|
|
16
|
+
- Include actionable error messages for API consumers without leaking secrets or stack traces in production.
|
|
17
|
+
|
|
18
|
+
## Security
|
|
19
|
+
|
|
20
|
+
- Never log tokens, passwords, or full PII. Redact sensitive fields in logs.
|
|
21
|
+
- Rate-limit and authenticate public endpoints when the project already does so.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Structured logging, metrics, and debugging production issues
|
|
3
|
+
tags: logging, observability, monitoring
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Observability & Logging
|
|
7
|
+
|
|
8
|
+
## Logging
|
|
9
|
+
|
|
10
|
+
- Use the project's logger if one exists; otherwise structured JSON logs in servers.
|
|
11
|
+
- Log levels: `debug` for development detail, `info` for lifecycle events, `warn`/`error` for problems.
|
|
12
|
+
- Include `requestId` or `traceId` when the app supports distributed tracing.
|
|
13
|
+
|
|
14
|
+
## Errors
|
|
15
|
+
|
|
16
|
+
- Log the error message and a stack trace server-side; return sanitized messages to clients.
|
|
17
|
+
- Avoid logging environment variable names with values, API keys, or session cookies.
|
|
18
|
+
|
|
19
|
+
## Metrics
|
|
20
|
+
|
|
21
|
+
- When adding critical paths, consider counters or histograms if the codebase already exports metrics.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: OpenAPI specs, REST versioning, and contract testing
|
|
3
|
+
tags: openapi, swagger, rest, api
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OpenAPI & REST Contracts
|
|
7
|
+
|
|
8
|
+
## Specs
|
|
9
|
+
|
|
10
|
+
- Keep OpenAPI in sync with handlers; generate clients when the repo does.
|
|
11
|
+
|
|
12
|
+
## Versioning
|
|
13
|
+
|
|
14
|
+
- Follow URL or header versioning already in use; avoid breaking changes without version bumps.
|
|
15
|
+
|
|
16
|
+
## Testing
|
|
17
|
+
|
|
18
|
+
- Add contract or snapshot tests for critical endpoints when the project supports them.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Performance optimization and profiling
|
|
3
|
+
tags: performance, optimization, profiling
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Performance Optimization Skill
|
|
7
|
+
|
|
8
|
+
You are a performance expert focused on identifying and fixing bottlenecks. When this skill is active:
|
|
9
|
+
|
|
10
|
+
## Performance Workflow
|
|
11
|
+
|
|
12
|
+
1. **Measure First**
|
|
13
|
+
- Profile the application
|
|
14
|
+
- Identify slow operations
|
|
15
|
+
- Measure baseline metrics
|
|
16
|
+
- Set performance targets
|
|
17
|
+
|
|
18
|
+
2. **Find Bottlenecks**
|
|
19
|
+
- **CPU-bound**: Heavy computations, inefficient algorithms
|
|
20
|
+
- **I/O-bound**: Database queries, file operations, network calls
|
|
21
|
+
- **Memory**: Large objects, memory leaks
|
|
22
|
+
- **Rendering**: DOM manipulation, layout thrashing
|
|
23
|
+
|
|
24
|
+
3. **Optimize**
|
|
25
|
+
- Apply appropriate optimization technique
|
|
26
|
+
- Measure improvement
|
|
27
|
+
- Verify correctness (run tests)
|
|
28
|
+
|
|
29
|
+
4. **Verify**
|
|
30
|
+
- Re-profile after changes
|
|
31
|
+
- Compare before/after metrics
|
|
32
|
+
- Check for regressions
|
|
33
|
+
|
|
34
|
+
## Common Optimizations
|
|
35
|
+
|
|
36
|
+
### Database
|
|
37
|
+
|
|
38
|
+
- Add indexes for frequent queries
|
|
39
|
+
- Use query caching
|
|
40
|
+
- Batch operations
|
|
41
|
+
- Avoid N+1 queries
|
|
42
|
+
- Use connection pooling
|
|
43
|
+
|
|
44
|
+
### Algorithms
|
|
45
|
+
|
|
46
|
+
- Choose right data structure (Map vs Array)
|
|
47
|
+
- Reduce time complexity (O(n²) → O(n log n))
|
|
48
|
+
- Memoization for expensive computations
|
|
49
|
+
- Lazy evaluation
|
|
50
|
+
|
|
51
|
+
### Caching
|
|
52
|
+
|
|
53
|
+
- Cache expensive operations
|
|
54
|
+
- Use CDN for static assets
|
|
55
|
+
- Browser caching headers
|
|
56
|
+
- In-memory caching (Redis)
|
|
57
|
+
|
|
58
|
+
### Code-Level
|
|
59
|
+
|
|
60
|
+
- Avoid premature optimization
|
|
61
|
+
- Reduce allocations
|
|
62
|
+
- Reuse objects
|
|
63
|
+
- Minimize DOM manipulation
|
|
64
|
+
- Debounce/throttle events
|
|
65
|
+
|
|
66
|
+
### Network
|
|
67
|
+
|
|
68
|
+
- Compress responses (gzip)
|
|
69
|
+
- Minimize payload size
|
|
70
|
+
- Use HTTP/2
|
|
71
|
+
- Implement pagination
|
|
72
|
+
- Lazy load resources
|
|
73
|
+
|
|
74
|
+
## Performance Checklist
|
|
75
|
+
|
|
76
|
+
- [ ] Profiled to identify bottlenecks
|
|
77
|
+
- [ ] Baseline metrics recorded
|
|
78
|
+
- [ ] Optimization applied
|
|
79
|
+
- [ ] Tests still pass
|
|
80
|
+
- [ ] Performance improved (measured)
|
|
81
|
+
- [ ] No new bugs introduced
|
|
82
|
+
- [ ] Documented optimization rationale
|
|
83
|
+
|
|
84
|
+
## Tools & Commands
|
|
85
|
+
|
|
86
|
+
- Use `run_command` for profiling tools
|
|
87
|
+
- Use `grep_code` to find inefficient patterns
|
|
88
|
+
- Monitor memory usage
|
|
89
|
+
- Check bundle sizes
|
|
90
|
+
- Analyze database query plans
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Playwright tests, selectors, and flake resistance
|
|
3
|
+
tags: playwright, e2e, testing
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Playwright E2E
|
|
7
|
+
|
|
8
|
+
## Selectors
|
|
9
|
+
|
|
10
|
+
- Prefer role- and test-id-based selectors over brittle CSS when the app exposes them.
|
|
11
|
+
|
|
12
|
+
## Stability
|
|
13
|
+
|
|
14
|
+
- Use auto-waiting; avoid fixed sleeps except as last resort.
|
|
15
|
+
|
|
16
|
+
## CI
|
|
17
|
+
|
|
18
|
+
- Run headless in CI; shard when runtime is high; capture traces on failure when enabled.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Python packaging, typing, and project layout
|
|
3
|
+
tags: python, pip, uv, typing
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Python Quality
|
|
7
|
+
|
|
8
|
+
## Layout
|
|
9
|
+
|
|
10
|
+
- Prefer `src/` layouts when the repo already uses them; match `pyproject.toml` or `setup.cfg` style.
|
|
11
|
+
- Use virtual environments; never commit `.venv` or `__pycache__`.
|
|
12
|
+
|
|
13
|
+
## Typing
|
|
14
|
+
|
|
15
|
+
- Prefer type hints on public functions; use `from __future__ import annotations` when the project does.
|
|
16
|
+
- Match strictness to existing `mypy` / `pyright` config.
|
|
17
|
+
|
|
18
|
+
## Tools
|
|
19
|
+
|
|
20
|
+
- Prefer `uv` or `pip` to match lockfiles (`uv.lock`, `requirements.txt`).
|
|
21
|
+
- Format and lint with whatever the project uses (`ruff`, `black`, `isort`).
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: React and Next.js components, hooks, and data fetching
|
|
3
|
+
tags: react, nextjs, frontend
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# React & Next.js Patterns
|
|
7
|
+
|
|
8
|
+
## Components
|
|
9
|
+
|
|
10
|
+
- Prefer small, focused components; colocate styles and tests when the repo does.
|
|
11
|
+
- Keep side effects in `useEffect` (or server-only code in Server Components) with correct dependency arrays.
|
|
12
|
+
|
|
13
|
+
## State
|
|
14
|
+
|
|
15
|
+
- Lift state only as high as needed; prefer local state or existing stores (Redux, Zustand, etc.) to match the codebase.
|
|
16
|
+
|
|
17
|
+
## Next.js
|
|
18
|
+
|
|
19
|
+
- Use App Router vs Pages Router conventions already in the project — do not mix routers in one route tree.
|
|
20
|
+
- For Server Actions and forms, follow existing patterns for validation and error handling.
|
|
21
|
+
|
|
22
|
+
## Performance
|
|
23
|
+
|
|
24
|
+
- Memoize only when profiling or clear re-render cost; avoid premature `useMemo`/`useCallback` everywhere.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Caching layers, TTLs, and Redis usage patterns
|
|
3
|
+
tags: redis, cache, performance
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Redis & Caching
|
|
7
|
+
|
|
8
|
+
## Correctness
|
|
9
|
+
|
|
10
|
+
- Invalidate or version cache keys when underlying data can change; avoid stale reads for auth or billing.
|
|
11
|
+
|
|
12
|
+
## TTL
|
|
13
|
+
|
|
14
|
+
- Set sensible expirations; document cache stampede mitigations if traffic spikes.
|
|
15
|
+
|
|
16
|
+
## Keys
|
|
17
|
+
|
|
18
|
+
- Use namespaces/prefixes consistent with the codebase; avoid unbounded key growth.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Refactor code to follow clean code principles and best practices
|
|
3
|
+
tags: refactoring, code-quality, clean-code
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Clean Code Refactoring Skill
|
|
7
|
+
|
|
8
|
+
You are an expert code refactorer focused on clean code principles. When this skill is active:
|
|
9
|
+
|
|
10
|
+
## Refactoring Principles
|
|
11
|
+
|
|
12
|
+
1. **Naming**: Use descriptive, intention-revealing names for variables, functions, and classes
|
|
13
|
+
2. **Functions**: Keep functions small (< 20 lines), single responsibility
|
|
14
|
+
3. **DRY**: Eliminate code duplication through abstraction
|
|
15
|
+
4. **SOLID**: Apply SOLID principles where applicable
|
|
16
|
+
5. **Comments**: Code should be self-documenting; use comments only for "why", not "what"
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
1. **Read & Analyze**: Read the target file(s) thoroughly
|
|
21
|
+
2. **Identify Issues**: Look for:
|
|
22
|
+
- Long functions (> 30 lines)
|
|
23
|
+
- Unclear variable names
|
|
24
|
+
- Code duplication
|
|
25
|
+
- Deep nesting (> 3 levels)
|
|
26
|
+
- Magic numbers/strings
|
|
27
|
+
3. **Refactor Incrementally**: Make small, testable changes
|
|
28
|
+
4. **Verify**: Run tests after each change
|
|
29
|
+
5. **Document**: Explain refactoring decisions
|
|
30
|
+
|
|
31
|
+
## Best Practices
|
|
32
|
+
|
|
33
|
+
- Always run tests before and after refactoring
|
|
34
|
+
- Use `verified_edit` for safety
|
|
35
|
+
- Preserve existing behavior (no functional changes)
|
|
36
|
+
- Extract methods/functions for clarity
|
|
37
|
+
- Use constants for magic values
|
|
38
|
+
- Apply consistent formatting
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Rust ownership patterns, crates, and unsafe boundaries
|
|
3
|
+
tags: rust, cargo, systems
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Rust Patterns
|
|
7
|
+
|
|
8
|
+
## Safety
|
|
9
|
+
|
|
10
|
+
- Avoid `unsafe` unless the project already uses it; contain it behind small, reviewed modules.
|
|
11
|
+
|
|
12
|
+
## Crates
|
|
13
|
+
|
|
14
|
+
- Follow workspace `Cargo.toml` layout; keep feature flags consistent with existing crates.
|
|
15
|
+
|
|
16
|
+
## Errors
|
|
17
|
+
|
|
18
|
+
- Use `Result` and project error types (`thiserror`, `anyhow`) as established in the repo.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Safe autonomous runs in sandboxes, CI, and ephemeral environments
|
|
3
|
+
tags: sandbox, automation, safety, non-interactive
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Sandbox & Autonomous Execution
|
|
7
|
+
|
|
8
|
+
## Working directory
|
|
9
|
+
|
|
10
|
+
- Treat the printed working directory as the only project root unless the user explicitly says otherwise.
|
|
11
|
+
- Do not assume fixed paths like `/workspace` unless that is literally `cwd`.
|
|
12
|
+
|
|
13
|
+
## Non-interactive commands
|
|
14
|
+
|
|
15
|
+
- Always pass `--yes`, `-y`, or tool-specific non-interactive flags so installs and CLIs never block on prompts.
|
|
16
|
+
- If a tool still prompts, use the `input` parameter on `run_command` to pipe answers.
|
|
17
|
+
|
|
18
|
+
## Secrets & network
|
|
19
|
+
|
|
20
|
+
- Never print API keys, tokens, or `.env` contents. Do not commit secrets.
|
|
21
|
+
- In CI or sandboxes, only use credentials provided by the environment; do not embed long-lived keys in code.
|
|
22
|
+
|
|
23
|
+
## Side effects
|
|
24
|
+
|
|
25
|
+
- Prefer reversible edits and small commits. Avoid destructive operations on git history unless the task requires it.
|