codehava-agent-kit 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 +56 -0
- package/bin/cli.js +56 -0
- package/package.json +26 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/templates/.agent/agents/backend-specialist.md +263 -0
- package/templates/.agent/agents/code-archaeologist.md +106 -0
- package/templates/.agent/agents/database-architect.md +226 -0
- package/templates/.agent/agents/debugger.md +225 -0
- package/templates/.agent/agents/devops-engineer.md +242 -0
- package/templates/.agent/agents/documentation-writer.md +104 -0
- package/templates/.agent/agents/explorer-agent.md +73 -0
- package/templates/.agent/agents/frontend-specialist.md +593 -0
- package/templates/.agent/agents/game-developer.md +162 -0
- package/templates/.agent/agents/mobile-developer.md +377 -0
- package/templates/.agent/agents/orchestrator.md +416 -0
- package/templates/.agent/agents/penetration-tester.md +188 -0
- package/templates/.agent/agents/performance-optimizer.md +187 -0
- package/templates/.agent/agents/product-manager.md +112 -0
- package/templates/.agent/agents/product-owner.md +95 -0
- package/templates/.agent/agents/project-planner.md +406 -0
- package/templates/.agent/agents/qa-automation-engineer.md +103 -0
- package/templates/.agent/agents/security-auditor.md +170 -0
- package/templates/.agent/agents/seo-specialist.md +111 -0
- package/templates/.agent/agents/test-engineer.md +158 -0
- package/templates/.agent/mcp_config.json +129 -0
- package/templates/.agent/rules/GEMINI.md +273 -0
- package/templates/.agent/scripts/auto_preview.py +148 -0
- package/templates/.agent/scripts/checklist.py +217 -0
- package/templates/.agent/scripts/session_manager.py +120 -0
- package/templates/.agent/scripts/verify_all.py +327 -0
- package/templates/.agent/skills/api-patterns/SKILL.md +81 -0
- package/templates/.agent/skills/api-patterns/api-style.md +42 -0
- package/templates/.agent/skills/api-patterns/auth.md +24 -0
- package/templates/.agent/skills/api-patterns/documentation.md +26 -0
- package/templates/.agent/skills/api-patterns/graphql.md +41 -0
- package/templates/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/templates/.agent/skills/api-patterns/response.md +37 -0
- package/templates/.agent/skills/api-patterns/rest.md +40 -0
- package/templates/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/templates/.agent/skills/api-patterns/security-testing.md +122 -0
- package/templates/.agent/skills/api-patterns/trpc.md +41 -0
- package/templates/.agent/skills/api-patterns/versioning.md +22 -0
- package/templates/.agent/skills/app-builder/SKILL.md +75 -0
- package/templates/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/templates/.agent/skills/app-builder/feature-building.md +53 -0
- package/templates/.agent/skills/app-builder/project-detection.md +34 -0
- package/templates/.agent/skills/app-builder/scaffolding.md +118 -0
- package/templates/.agent/skills/app-builder/tech-stack.md +41 -0
- package/templates/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/templates/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/templates/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/templates/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/templates/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/templates/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/templates/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/templates/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/templates/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/templates/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/templates/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/templates/.agent/skills/architecture/SKILL.md +55 -0
- package/templates/.agent/skills/architecture/context-discovery.md +43 -0
- package/templates/.agent/skills/architecture/examples.md +94 -0
- package/templates/.agent/skills/architecture/pattern-selection.md +68 -0
- package/templates/.agent/skills/architecture/patterns-reference.md +50 -0
- package/templates/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/templates/.agent/skills/bash-linux/SKILL.md +199 -0
- package/templates/.agent/skills/behavioral-modes/SKILL.md +242 -0
- package/templates/.agent/skills/better-auth-patterns/SKILL.md +121 -0
- package/templates/.agent/skills/brainstorming/SKILL.md +163 -0
- package/templates/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
- package/templates/.agent/skills/bullmq-worker/SKILL.md +124 -0
- package/templates/.agent/skills/clean-code/SKILL.md +201 -0
- package/templates/.agent/skills/code-review-checklist/SKILL.md +109 -0
- package/templates/.agent/skills/database-design/SKILL.md +52 -0
- package/templates/.agent/skills/database-design/database-selection.md +43 -0
- package/templates/.agent/skills/database-design/indexing.md +39 -0
- package/templates/.agent/skills/database-design/migrations.md +48 -0
- package/templates/.agent/skills/database-design/optimization.md +36 -0
- package/templates/.agent/skills/database-design/orm-selection.md +30 -0
- package/templates/.agent/skills/database-design/schema-design.md +56 -0
- package/templates/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/templates/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/templates/.agent/skills/doc.md +177 -0
- package/templates/.agent/skills/documentation-templates/SKILL.md +194 -0
- package/templates/.agent/skills/feature-spec-writer/SKILL.md +76 -0
- package/templates/.agent/skills/frontend-design/SKILL.md +452 -0
- package/templates/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/templates/.agent/skills/frontend-design/color-system.md +311 -0
- package/templates/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/templates/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/templates/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/templates/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/templates/.agent/skills/frontend-design/typography-system.md +345 -0
- package/templates/.agent/skills/frontend-design/ux-psychology.md +1116 -0
- package/templates/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/templates/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/templates/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/templates/.agent/skills/game-development/SKILL.md +167 -0
- package/templates/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/templates/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/templates/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/templates/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/templates/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/templates/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/templates/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/templates/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/templates/.agent/skills/geo-fundamentals/SKILL.md +156 -0
- package/templates/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/templates/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/templates/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/templates/.agent/skills/intelligent-routing/SKILL.md +335 -0
- package/templates/.agent/skills/lint-and-validate/SKILL.md +45 -0
- package/templates/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/templates/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/templates/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/templates/.agent/skills/mobile-design/SKILL.md +394 -0
- package/templates/.agent/skills/mobile-design/decision-trees.md +516 -0
- package/templates/.agent/skills/mobile-design/mobile-backend.md +491 -0
- package/templates/.agent/skills/mobile-design/mobile-color-system.md +420 -0
- package/templates/.agent/skills/mobile-design/mobile-debugging.md +122 -0
- package/templates/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/templates/.agent/skills/mobile-design/mobile-navigation.md +458 -0
- package/templates/.agent/skills/mobile-design/mobile-performance.md +767 -0
- package/templates/.agent/skills/mobile-design/mobile-testing.md +356 -0
- package/templates/.agent/skills/mobile-design/mobile-typography.md +433 -0
- package/templates/.agent/skills/mobile-design/platform-android.md +666 -0
- package/templates/.agent/skills/mobile-design/platform-ios.md +561 -0
- package/templates/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/templates/.agent/skills/mobile-design/touch-psychology.md +537 -0
- package/templates/.agent/skills/neo-storage/SKILL.md +115 -0
- package/templates/.agent/skills/nextjs-api-route/SKILL.md +134 -0
- package/templates/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +351 -0
- package/templates/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/templates/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/templates/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/templates/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/templates/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/templates/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/templates/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/templates/.agent/skills/nextjs-react-expert/9-cache-components.md +103 -0
- package/templates/.agent/skills/nextjs-react-expert/SKILL.md +293 -0
- package/templates/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/templates/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/templates/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/templates/.agent/skills/parallel-agents/SKILL.md +175 -0
- package/templates/.agent/skills/performance-profiling/SKILL.md +143 -0
- package/templates/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/templates/.agent/skills/plan-writing/SKILL.md +152 -0
- package/templates/.agent/skills/powershell-windows/SKILL.md +167 -0
- package/templates/.agent/skills/prisma-7-patterns/SKILL.md +91 -0
- package/templates/.agent/skills/python-patterns/SKILL.md +441 -0
- package/templates/.agent/skills/red-team-tactics/SKILL.md +199 -0
- package/templates/.agent/skills/rust-pro/SKILL.md +176 -0
- package/templates/.agent/skills/seo-fundamentals/SKILL.md +129 -0
- package/templates/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/templates/.agent/skills/server-management/SKILL.md +161 -0
- package/templates/.agent/skills/systematic-debugging/SKILL.md +109 -0
- package/templates/.agent/skills/tailwind-patterns/SKILL.md +269 -0
- package/templates/.agent/skills/tdd-workflow/SKILL.md +149 -0
- package/templates/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/templates/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/templates/.agent/skills/uu-pdp-feature-check/SKILL.md +116 -0
- package/templates/.agent/skills/vibe-buildplan/SKILL.md +232 -0
- package/templates/.agent/skills/vibe-prd/SKILL.md +226 -0
- package/templates/.agent/skills/vibe-research/SKILL.md +162 -0
- package/templates/.agent/skills/vibe-techdesign/SKILL.md +195 -0
- package/templates/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/templates/.agent/skills/vulnerability-scanner/checklists.md +121 -0
- package/templates/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/templates/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/templates/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/templates/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/templates/.agent/skills/xendit-integration/SKILL.md +100 -0
- package/templates/.agent/snippets/@react-component-template.tsx +29 -0
- package/templates/.agent/workflows/brainstorm.md +113 -0
- package/templates/.agent/workflows/create.md +59 -0
- package/templates/.agent/workflows/db-migrate.md +26 -0
- package/templates/.agent/workflows/debug.md +103 -0
- package/templates/.agent/workflows/deploy.md +35 -0
- package/templates/.agent/workflows/dev-reset.md +40 -0
- package/templates/.agent/workflows/enhance.md +63 -0
- package/templates/.agent/workflows/git-commit.md +24 -0
- package/templates/.agent/workflows/health-check.md +34 -0
- package/templates/.agent/workflows/new-feature.md +32 -0
- package/templates/.agent/workflows/orchestrate.md +237 -0
- package/templates/.agent/workflows/plan.md +89 -0
- package/templates/.agent/workflows/preview.md +81 -0
- package/templates/.agent/workflows/status.md +86 -0
- package/templates/.agent/workflows/test.md +144 -0
- package/templates/.agent/workflows/ui-ux-pro-max.md +296 -0
- package/templates/.agent/workflows/vibe-plan.md +133 -0
- package/templates/.agent/workflows/vibe-recap.md +17 -0
- package/templates/.antigravity/rules.md +64 -0
- package/templates/AGENTS.md +268 -0
- package/templates/docs/00A-PROJECT-CHARTER.md +33 -0
- package/templates/docs/00B-BRD.md +25 -0
- package/templates/docs/01-PRD.md +122 -0
- package/templates/docs/01B-SRS-LENGKAP.md +60 -0
- package/templates/docs/02-TECH-DESIGN.md +491 -0
- package/templates/docs/03-UI-GUIDELINES.md +301 -0
- package/templates/docs/04-BACKLOG.md +127 -0
- package/templates/docs/05-DEPLOYMENT.md +363 -0
- package/templates/docs/06-DEVELOPMENT-LOG.md +78 -0
- package/templates/specs/README.md +54 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Skill: performance-profiling
|
|
4
|
+
Script: lighthouse_audit.py
|
|
5
|
+
Purpose: Run Lighthouse performance audit on a URL
|
|
6
|
+
Usage: python lighthouse_audit.py https://example.com
|
|
7
|
+
Output: JSON with performance scores
|
|
8
|
+
Note: Requires lighthouse CLI (npm install -g lighthouse)
|
|
9
|
+
"""
|
|
10
|
+
import subprocess
|
|
11
|
+
import json
|
|
12
|
+
import sys
|
|
13
|
+
import os
|
|
14
|
+
import tempfile
|
|
15
|
+
|
|
16
|
+
def run_lighthouse(url: str) -> dict:
|
|
17
|
+
"""Run Lighthouse audit on URL."""
|
|
18
|
+
try:
|
|
19
|
+
with tempfile.NamedTemporaryFile(suffix='.json', delete=False) as f:
|
|
20
|
+
output_path = f.name
|
|
21
|
+
|
|
22
|
+
result = subprocess.run(
|
|
23
|
+
[
|
|
24
|
+
"lighthouse",
|
|
25
|
+
url,
|
|
26
|
+
"--output=json",
|
|
27
|
+
f"--output-path={output_path}",
|
|
28
|
+
"--chrome-flags=--headless",
|
|
29
|
+
"--only-categories=performance,accessibility,best-practices,seo"
|
|
30
|
+
],
|
|
31
|
+
capture_output=True,
|
|
32
|
+
text=True,
|
|
33
|
+
timeout=120
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
if os.path.exists(output_path):
|
|
37
|
+
with open(output_path, 'r') as f:
|
|
38
|
+
report = json.load(f)
|
|
39
|
+
os.unlink(output_path)
|
|
40
|
+
|
|
41
|
+
categories = report.get("categories", {})
|
|
42
|
+
return {
|
|
43
|
+
"url": url,
|
|
44
|
+
"scores": {
|
|
45
|
+
"performance": int(categories.get("performance", {}).get("score", 0) * 100),
|
|
46
|
+
"accessibility": int(categories.get("accessibility", {}).get("score", 0) * 100),
|
|
47
|
+
"best_practices": int(categories.get("best-practices", {}).get("score", 0) * 100),
|
|
48
|
+
"seo": int(categories.get("seo", {}).get("score", 0) * 100)
|
|
49
|
+
},
|
|
50
|
+
"summary": get_summary(categories)
|
|
51
|
+
}
|
|
52
|
+
else:
|
|
53
|
+
return {"error": "Lighthouse failed to generate report", "stderr": result.stderr[:500]}
|
|
54
|
+
|
|
55
|
+
except subprocess.TimeoutExpired:
|
|
56
|
+
return {"error": "Lighthouse audit timed out"}
|
|
57
|
+
except FileNotFoundError:
|
|
58
|
+
return {"error": "Lighthouse CLI not found. Install with: npm install -g lighthouse"}
|
|
59
|
+
|
|
60
|
+
def get_summary(categories: dict) -> str:
|
|
61
|
+
"""Generate summary based on scores."""
|
|
62
|
+
perf = categories.get("performance", {}).get("score", 0) * 100
|
|
63
|
+
if perf >= 90:
|
|
64
|
+
return "[OK] Excellent performance"
|
|
65
|
+
elif perf >= 50:
|
|
66
|
+
return "[!] Needs improvement"
|
|
67
|
+
else:
|
|
68
|
+
return "[X] Poor performance"
|
|
69
|
+
|
|
70
|
+
if __name__ == "__main__":
|
|
71
|
+
if len(sys.argv) < 2:
|
|
72
|
+
print(json.dumps({"error": "Usage: python lighthouse_audit.py <url>"}))
|
|
73
|
+
sys.exit(1)
|
|
74
|
+
|
|
75
|
+
result = run_lighthouse(sys.argv[1])
|
|
76
|
+
print(json.dumps(result, indent=2))
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-writing
|
|
3
|
+
description: Structured task planning with clear breakdowns, dependencies, and verification criteria. Use when implementing features, refactoring, or any multi-step work.
|
|
4
|
+
allowed-tools: Read, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Plan Writing
|
|
8
|
+
|
|
9
|
+
> Source: obra/superpowers
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
This skill provides a framework for breaking down work into clear, actionable tasks with verification criteria.
|
|
13
|
+
|
|
14
|
+
## Task Breakdown Principles
|
|
15
|
+
|
|
16
|
+
### 1. Small, Focused Tasks
|
|
17
|
+
- Each task should take 2-5 minutes
|
|
18
|
+
- One clear outcome per task
|
|
19
|
+
- Independently verifiable
|
|
20
|
+
|
|
21
|
+
### 2. Clear Verification
|
|
22
|
+
- How do you know it's done?
|
|
23
|
+
- What can you check/test?
|
|
24
|
+
- What's the expected output?
|
|
25
|
+
|
|
26
|
+
### 3. Logical Ordering
|
|
27
|
+
- Dependencies identified
|
|
28
|
+
- Parallel work where possible
|
|
29
|
+
- Critical path highlighted
|
|
30
|
+
- **Phase X: Verification is always LAST**
|
|
31
|
+
|
|
32
|
+
### 4. Dynamic Naming in Project Root
|
|
33
|
+
- Plan files are saved as `{task-slug}.md` in the PROJECT ROOT
|
|
34
|
+
- Name derived from task (e.g., "add auth" → `auth-feature.md`)
|
|
35
|
+
- **NEVER** inside `.claude/`, `docs/`, or temp folders
|
|
36
|
+
|
|
37
|
+
## Planning Principles (NOT Templates!)
|
|
38
|
+
|
|
39
|
+
> 🔴 **NO fixed templates. Each plan is UNIQUE to the task.**
|
|
40
|
+
|
|
41
|
+
### Principle 1: Keep It SHORT
|
|
42
|
+
|
|
43
|
+
| ❌ Wrong | ✅ Right |
|
|
44
|
+
|----------|----------|
|
|
45
|
+
| 50 tasks with sub-sub-tasks | 5-10 clear tasks max |
|
|
46
|
+
| Every micro-step listed | Only actionable items |
|
|
47
|
+
| Verbose descriptions | One-line per task |
|
|
48
|
+
|
|
49
|
+
> **Rule:** If plan is longer than 1 page, it's too long. Simplify.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### Principle 2: Be SPECIFIC, Not Generic
|
|
54
|
+
|
|
55
|
+
| ❌ Wrong | ✅ Right |
|
|
56
|
+
|----------|----------|
|
|
57
|
+
| "Set up project" | "Run `npx create-next-app`" |
|
|
58
|
+
| "Add authentication" | "Install next-auth, create `/api/auth/[...nextauth].ts`" |
|
|
59
|
+
| "Style the UI" | "Add Tailwind classes to `Header.tsx`" |
|
|
60
|
+
|
|
61
|
+
> **Rule:** Each task should have a clear, verifiable outcome.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Principle 3: Dynamic Content Based on Project Type
|
|
66
|
+
|
|
67
|
+
**For NEW PROJECT:**
|
|
68
|
+
- What tech stack? (decide first)
|
|
69
|
+
- What's the MVP? (minimal features)
|
|
70
|
+
- What's the file structure?
|
|
71
|
+
|
|
72
|
+
**For FEATURE ADDITION:**
|
|
73
|
+
- Which files are affected?
|
|
74
|
+
- What dependencies needed?
|
|
75
|
+
- How to verify it works?
|
|
76
|
+
|
|
77
|
+
**For BUG FIX:**
|
|
78
|
+
- What's the root cause?
|
|
79
|
+
- What file/line to change?
|
|
80
|
+
- How to test the fix?
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### Principle 4: Scripts Are Project-Specific
|
|
85
|
+
|
|
86
|
+
> 🔴 **DO NOT copy-paste script commands. Choose based on project type.**
|
|
87
|
+
|
|
88
|
+
| Project Type | Relevant Scripts |
|
|
89
|
+
|--------------|------------------|
|
|
90
|
+
| Frontend/React | `ux_audit.py`, `accessibility_checker.py` |
|
|
91
|
+
| Backend/API | `api_validator.py`, `security_scan.py` |
|
|
92
|
+
| Mobile | `mobile_audit.py` |
|
|
93
|
+
| Database | `schema_validator.py` |
|
|
94
|
+
| Full-stack | Mix of above based on what you touched |
|
|
95
|
+
|
|
96
|
+
**Wrong:** Adding all scripts to every plan
|
|
97
|
+
**Right:** Only scripts relevant to THIS task
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### Principle 5: Verification is Simple
|
|
102
|
+
|
|
103
|
+
| ❌ Wrong | ✅ Right |
|
|
104
|
+
|----------|----------|
|
|
105
|
+
| "Verify the component works correctly" | "Run `npm run dev`, click button, see toast" |
|
|
106
|
+
| "Test the API" | "curl localhost:3000/api/users returns 200" |
|
|
107
|
+
| "Check styles" | "Open browser, verify dark mode toggle works" |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Plan Structure (Flexible, Not Fixed!)
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
# [Task Name]
|
|
115
|
+
|
|
116
|
+
## Goal
|
|
117
|
+
One sentence: What are we building/fixing?
|
|
118
|
+
|
|
119
|
+
## Tasks
|
|
120
|
+
- [ ] Task 1: [Specific action] → Verify: [How to check]
|
|
121
|
+
- [ ] Task 2: [Specific action] → Verify: [How to check]
|
|
122
|
+
- [ ] Task 3: [Specific action] → Verify: [How to check]
|
|
123
|
+
|
|
124
|
+
## Done When
|
|
125
|
+
- [ ] [Main success criteria]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
> **That's it.** No phases, no sub-sections unless truly needed.
|
|
129
|
+
> Keep it minimal. Add complexity only when required.
|
|
130
|
+
|
|
131
|
+
## Notes
|
|
132
|
+
[Any important considerations]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Best Practices (Quick Reference)
|
|
138
|
+
|
|
139
|
+
1. **Start with goal** - What are we building/fixing?
|
|
140
|
+
2. **Max 10 tasks** - If more, break into multiple plans
|
|
141
|
+
3. **Each task verifiable** - Clear "done" criteria
|
|
142
|
+
4. **Project-specific** - No copy-paste templates
|
|
143
|
+
5. **Update as you go** - Mark `[x]` when complete
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## When to Use
|
|
148
|
+
|
|
149
|
+
- New project from scratch
|
|
150
|
+
- Adding a feature
|
|
151
|
+
- Fixing a bug (if complex)
|
|
152
|
+
- Refactoring multiple files
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: powershell-windows
|
|
3
|
+
description: PowerShell Windows patterns. Critical pitfalls, operator syntax, error handling.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PowerShell Windows Patterns
|
|
8
|
+
|
|
9
|
+
> Critical patterns and pitfalls for Windows PowerShell.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Operator Syntax Rules
|
|
14
|
+
|
|
15
|
+
### CRITICAL: Parentheses Required
|
|
16
|
+
|
|
17
|
+
| ❌ Wrong | ✅ Correct |
|
|
18
|
+
|----------|-----------|
|
|
19
|
+
| `if (Test-Path "a" -or Test-Path "b")` | `if ((Test-Path "a") -or (Test-Path "b"))` |
|
|
20
|
+
| `if (Get-Item $x -and $y -eq 5)` | `if ((Get-Item $x) -and ($y -eq 5))` |
|
|
21
|
+
|
|
22
|
+
**Rule:** Each cmdlet call MUST be in parentheses when using logical operators.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. Unicode/Emoji Restriction
|
|
27
|
+
|
|
28
|
+
### CRITICAL: No Unicode in Scripts
|
|
29
|
+
|
|
30
|
+
| Purpose | ❌ Don't Use | ✅ Use |
|
|
31
|
+
|---------|-------------|--------|
|
|
32
|
+
| Success | ✅ ✓ | [OK] [+] |
|
|
33
|
+
| Error | ❌ ✗ 🔴 | [!] [X] |
|
|
34
|
+
| Warning | ⚠️ 🟡 | [*] [WARN] |
|
|
35
|
+
| Info | ℹ️ 🔵 | [i] [INFO] |
|
|
36
|
+
| Progress | ⏳ | [...] |
|
|
37
|
+
|
|
38
|
+
**Rule:** Use ASCII characters only in PowerShell scripts.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. Null Check Patterns
|
|
43
|
+
|
|
44
|
+
### Always Check Before Access
|
|
45
|
+
|
|
46
|
+
| ❌ Wrong | ✅ Correct |
|
|
47
|
+
|----------|-----------|
|
|
48
|
+
| `$array.Count -gt 0` | `$array -and $array.Count -gt 0` |
|
|
49
|
+
| `$text.Length` | `if ($text) { $text.Length }` |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 4. String Interpolation
|
|
54
|
+
|
|
55
|
+
### Complex Expressions
|
|
56
|
+
|
|
57
|
+
| ❌ Wrong | ✅ Correct |
|
|
58
|
+
|----------|-----------|
|
|
59
|
+
| `"Value: $($obj.prop.sub)"` | Store in variable first |
|
|
60
|
+
|
|
61
|
+
**Pattern:**
|
|
62
|
+
```
|
|
63
|
+
$value = $obj.prop.sub
|
|
64
|
+
Write-Output "Value: $value"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 5. Error Handling
|
|
70
|
+
|
|
71
|
+
### ErrorActionPreference
|
|
72
|
+
|
|
73
|
+
| Value | Use |
|
|
74
|
+
|-------|-----|
|
|
75
|
+
| Stop | Development (fail fast) |
|
|
76
|
+
| Continue | Production scripts |
|
|
77
|
+
| SilentlyContinue | When errors expected |
|
|
78
|
+
|
|
79
|
+
### Try/Catch Pattern
|
|
80
|
+
|
|
81
|
+
- Don't return inside try block
|
|
82
|
+
- Use finally for cleanup
|
|
83
|
+
- Return after try/catch
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 6. File Paths
|
|
88
|
+
|
|
89
|
+
### Windows Path Rules
|
|
90
|
+
|
|
91
|
+
| Pattern | Use |
|
|
92
|
+
|---------|-----|
|
|
93
|
+
| Literal path | `C:\Users\User\file.txt` |
|
|
94
|
+
| Variable path | `Join-Path $env:USERPROFILE "file.txt"` |
|
|
95
|
+
| Relative | `Join-Path $ScriptDir "data"` |
|
|
96
|
+
|
|
97
|
+
**Rule:** Use Join-Path for cross-platform safety.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 7. Array Operations
|
|
102
|
+
|
|
103
|
+
### Correct Patterns
|
|
104
|
+
|
|
105
|
+
| Operation | Syntax |
|
|
106
|
+
|-----------|--------|
|
|
107
|
+
| Empty array | `$array = @()` |
|
|
108
|
+
| Add item | `$array += $item` |
|
|
109
|
+
| ArrayList add | `$list.Add($item) | Out-Null` |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 8. JSON Operations
|
|
114
|
+
|
|
115
|
+
### CRITICAL: Depth Parameter
|
|
116
|
+
|
|
117
|
+
| ❌ Wrong | ✅ Correct |
|
|
118
|
+
|----------|-----------|
|
|
119
|
+
| `ConvertTo-Json` | `ConvertTo-Json -Depth 10` |
|
|
120
|
+
|
|
121
|
+
**Rule:** Always specify `-Depth` for nested objects.
|
|
122
|
+
|
|
123
|
+
### File Operations
|
|
124
|
+
|
|
125
|
+
| Operation | Pattern |
|
|
126
|
+
|-----------|---------|
|
|
127
|
+
| Read | `Get-Content "file.json" -Raw | ConvertFrom-Json` |
|
|
128
|
+
| Write | `$data | ConvertTo-Json -Depth 10 | Out-File "file.json" -Encoding UTF8` |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 9. Common Errors
|
|
133
|
+
|
|
134
|
+
| Error Message | Cause | Fix |
|
|
135
|
+
|---------------|-------|-----|
|
|
136
|
+
| "parameter 'or'" | Missing parentheses | Wrap cmdlets in () |
|
|
137
|
+
| "Unexpected token" | Unicode character | Use ASCII only |
|
|
138
|
+
| "Cannot find property" | Null object | Check null first |
|
|
139
|
+
| "Cannot convert" | Type mismatch | Use .ToString() |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 10. Script Template
|
|
144
|
+
|
|
145
|
+
```powershell
|
|
146
|
+
# Strict mode
|
|
147
|
+
Set-StrictMode -Version Latest
|
|
148
|
+
$ErrorActionPreference = "Continue"
|
|
149
|
+
|
|
150
|
+
# Paths
|
|
151
|
+
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
152
|
+
|
|
153
|
+
# Main
|
|
154
|
+
try {
|
|
155
|
+
# Logic here
|
|
156
|
+
Write-Output "[OK] Done"
|
|
157
|
+
exit 0
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
Write-Warning "Error: $_"
|
|
161
|
+
exit 1
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
> **Remember:** PowerShell has unique syntax rules. Parentheses, ASCII-only, and null checks are non-negotiable.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prisma-7-patterns
|
|
3
|
+
description: |
|
|
4
|
+
Use when writing ANY Prisma database code, creating models, running queries,
|
|
5
|
+
setting up the Prisma client, or running migrations. Triggers on "prisma",
|
|
6
|
+
"database query", "db.", "schema.prisma", or "migrate". Do NOT use for
|
|
7
|
+
raw SQL unrelated to Prisma.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Prisma 7 — Pola Wajib Project Ini
|
|
11
|
+
|
|
12
|
+
## Breaking Changes dari Prisma 6 (CRITICAL)
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
// ❌ SALAH — Prisma 6 style, akan error di project ini
|
|
16
|
+
import { PrismaClient } from '@prisma/client'
|
|
17
|
+
const prisma = new PrismaClient()
|
|
18
|
+
|
|
19
|
+
// ✅ BENAR — Prisma 7 style
|
|
20
|
+
import { PrismaClient } from '@/generated/prisma'
|
|
21
|
+
import { PrismaPg } from '@prisma/adapter-pg'
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```prisma
|
|
25
|
+
// ❌ SALAH — generator lama
|
|
26
|
+
generator client {
|
|
27
|
+
provider = "prisma-client-js"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// ✅ BENAR — Prisma 7
|
|
31
|
+
generator client {
|
|
32
|
+
provider = "prisma-client"
|
|
33
|
+
output = "../src/generated/prisma"
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Singleton Client (`lib/db/index.ts`)
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import { PrismaClient } from '@/generated/prisma'
|
|
41
|
+
import { PrismaPg } from '@prisma/adapter-pg'
|
|
42
|
+
|
|
43
|
+
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL! })
|
|
44
|
+
const globalForPrisma = globalThis as unknown as { prisma: PrismaClient }
|
|
45
|
+
|
|
46
|
+
export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter })
|
|
47
|
+
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Aturan Query Wajib
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// SELALU ada limit — jangan findMany tanpa take
|
|
54
|
+
const users = await prisma.user.findMany({ take: 20, skip: 0 })
|
|
55
|
+
|
|
56
|
+
// SELALU gunakan transaction untuk operasi multi-tabel
|
|
57
|
+
await prisma.$transaction(async (tx) => {
|
|
58
|
+
const order = await tx.order.create({ data: orderData })
|
|
59
|
+
await tx.orderItem.createMany({ data: items.map(i => ({ ...i, orderId: order.id })) })
|
|
60
|
+
return order
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
// SELALU error handling
|
|
64
|
+
try {
|
|
65
|
+
const data = await prisma.user.findMany({ take: 20 })
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.error('[user:findMany]', error)
|
|
68
|
+
throw error
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Konvensi Schema
|
|
73
|
+
|
|
74
|
+
- Nama model: `PascalCase` (model User, model Order)
|
|
75
|
+
- Nama tabel: `snake_case` via `@@map("order_item")`
|
|
76
|
+
- Semua tabel wajib: `createdAt DateTime @default(now())` + `updatedAt DateTime @updatedAt`
|
|
77
|
+
- Soft delete: `deletedAt DateTime?` — jangan hard delete data penting
|
|
78
|
+
- ID: `@id @default(cuid())`
|
|
79
|
+
|
|
80
|
+
## Migration Commands
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Development (local) — reset + seed
|
|
84
|
+
npx prisma migrate dev --name nama_migration
|
|
85
|
+
|
|
86
|
+
# Production — apply only, JANGAN pakai migrate dev
|
|
87
|
+
npx prisma migrate deploy
|
|
88
|
+
|
|
89
|
+
# Setelah ubah schema — regenerate client
|
|
90
|
+
npx prisma generate
|
|
91
|
+
```
|