create-vasvibe 0.1.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 +84 -0
- package/bin/cli.mjs +9 -0
- package/package.json +45 -0
- package/src/git.mjs +47 -0
- package/src/index.mjs +178 -0
- package/src/prompts.mjs +87 -0
- package/src/scaffold.mjs +66 -0
- package/src/utils.mjs +91 -0
- package/template/.agents/skills/developer/SKILL.md +93 -0
- package/template/.agents/skills/find-skills/SKILL.md +142 -0
- package/template/.agents/skills/penetration-testing/SKILL.md +94 -0
- package/template/.agents/skills/penetration-testing/references/automated-penetration-testing-framework.md +328 -0
- package/template/.agents/skills/penetration-testing/references/burp-suite-automation-script.md +135 -0
- package/template/.agents/skills/penetration-testing/scripts/security-checklist.sh +30 -0
- package/template/.agents/skills/pm/SKILL.md +202 -0
- package/template/.agents/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/template/.agents/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/template/.agents/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/template/.agents/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/template/.agents/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/template/.agents/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/template/.agents/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/template/.agents/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/template/.agents/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/template/.agents/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/template/.agents/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/template/.agents/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/template/.agents/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/template/.agents/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/template/.agents/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/template/.agents/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/template/.agents/skills/ui-ux-pro-max/scripts/core.py +262 -0
- package/template/.agents/skills/ui-ux-pro-max/scripts/design_system.py +1148 -0
- package/template/.agents/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/template/.claude/agents/analyst.md +61 -0
- package/template/.claude/agents/developer.md +144 -0
- package/template/.claude/agents/document.md +18 -0
- package/template/.claude/agents/fixer.md +67 -0
- package/template/.claude/agents/initiator.md +58 -0
- package/template/.claude/agents/pm.md +371 -0
- package/template/.claude/agents/sysarch.md +356 -0
- package/template/.claude/agents/tester.md +83 -0
- package/template/.claude/skills/find-skills/SKILL.md +142 -0
- package/template/.claude/skills/penetration-testing/SKILL.md +94 -0
- package/template/.claude/skills/penetration-testing/references/automated-penetration-testing-framework.md +328 -0
- package/template/.claude/skills/penetration-testing/references/burp-suite-automation-script.md +135 -0
- package/template/.claude/skills/penetration-testing/scripts/security-checklist.sh +30 -0
- package/template/.claude/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/template/.claude/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/template/.claude/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/template/.claude/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/template/.claude/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/template/.claude/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/template/.claude/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/template/.claude/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/template/.claude/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/template/.claude/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/template/.claude/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/template/.claude/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/template/.claude/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/template/.claude/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/template/.claude/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/template/.claude/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/template/.claude/skills/ui-ux-pro-max/scripts/core.py +262 -0
- package/template/.claude/skills/ui-ux-pro-max/scripts/design_system.py +1148 -0
- package/template/.claude/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/template/.github/prompts/analyst.prompt.md +58 -0
- package/template/.github/prompts/developer.prompt.md +100 -0
- package/template/.github/prompts/document.prompt.md +15 -0
- package/template/.github/prompts/fixer.prompt.md +64 -0
- package/template/.github/prompts/initiator.prompt.md +55 -0
- package/template/.github/prompts/pm.prompt.md +177 -0
- package/template/.github/prompts/sysarch.prompt.md +352 -0
- package/template/.github/prompts/tester.prompt.md +80 -0
- package/template/.opencode/commands/analyst.md +61 -0
- package/template/.opencode/commands/developer.md +174 -0
- package/template/.opencode/commands/document.md +18 -0
- package/template/.opencode/commands/fixer.md +67 -0
- package/template/.opencode/commands/initiator.md +58 -0
- package/template/.opencode/commands/pm.md +348 -0
- package/template/.opencode/commands/sysarch.md +356 -0
- package/template/.opencode/commands/tester.md +83 -0
- package/template/.opencode/skills/penetration-testing/SKILL.md +94 -0
- package/template/.opencode/skills/penetration-testing/references/automated-penetration-testing-framework.md +328 -0
- package/template/.opencode/skills/penetration-testing/references/burp-suite-automation-script.md +135 -0
- package/template/.opencode/skills/penetration-testing/scripts/security-checklist.sh +30 -0
- package/template/.opencode/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/template/.opencode/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/template/.opencode/skills/ui-ux-pro-max/scripts/core.py +262 -0
- package/template/.opencode/skills/ui-ux-pro-max/scripts/design_system.py +1148 -0
- package/template/.opencode/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/template/GIT_STRUCTURE_GUIDE.md +270 -0
- package/template/PROJECT_README.example.md +81 -0
- package/template/README.md +52 -0
- package/template/_gitignore +148 -0
- package/template/agent/workflows/analyst.md +58 -0
- package/template/agent/workflows/developer.md +66 -0
- package/template/agent/workflows/document.md +15 -0
- package/template/agent/workflows/fixer.md +64 -0
- package/template/agent/workflows/initiator.md +55 -0
- package/template/agent/workflows/pm.md +177 -0
- package/template/agent/workflows/sysacrh.md +352 -0
- package/template/agent/workflows/tester.md +80 -0
- package/template/codes/.gitkeep +1 -0
- package/template/project_overview_example.md +41 -0
- package/template/skills-lock.json +11 -0
- package/template/specifications/.gitkeep +1 -0
- package/template/tests/.gitkeep +1 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
"""
|
|
4
|
+
UI/UX Pro Max Search - BM25 search engine for UI/UX style guides
|
|
5
|
+
Usage: python search.py "<query>" [--domain <domain>] [--stack <stack>] [--max-results 3]
|
|
6
|
+
python search.py "<query>" --design-system [-p "Project Name"]
|
|
7
|
+
python search.py "<query>" --design-system --persist [-p "Project Name"] [--page "dashboard"]
|
|
8
|
+
|
|
9
|
+
Domains: style, prompt, color, chart, landing, product, ux, typography, google-fonts
|
|
10
|
+
Stacks: react, nextjs, vue, svelte, astro, swiftui, react-native, flutter, nuxtjs, nuxt-ui, html-tailwind, shadcn, jetpack-compose, threejs
|
|
11
|
+
|
|
12
|
+
Persistence (Master + Overrides pattern):
|
|
13
|
+
--persist Save design system to design-system/MASTER.md
|
|
14
|
+
--page Also create a page-specific override file in design-system/pages/
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
import argparse
|
|
18
|
+
import sys
|
|
19
|
+
import io
|
|
20
|
+
from core import CSV_CONFIG, AVAILABLE_STACKS, MAX_RESULTS, search, search_stack
|
|
21
|
+
from design_system import generate_design_system, persist_design_system
|
|
22
|
+
|
|
23
|
+
# Force UTF-8 for stdout/stderr to handle emojis on Windows (cp1252 default)
|
|
24
|
+
if sys.stdout.encoding and sys.stdout.encoding.lower() != 'utf-8':
|
|
25
|
+
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
|
26
|
+
if sys.stderr.encoding and sys.stderr.encoding.lower() != 'utf-8':
|
|
27
|
+
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def format_output(result):
|
|
31
|
+
"""Format results for Claude consumption (token-optimized)"""
|
|
32
|
+
if "error" in result:
|
|
33
|
+
return f"Error: {result['error']}"
|
|
34
|
+
|
|
35
|
+
output = []
|
|
36
|
+
if result.get("stack"):
|
|
37
|
+
output.append(f"## UI Pro Max Stack Guidelines")
|
|
38
|
+
output.append(f"**Stack:** {result['stack']} | **Query:** {result['query']}")
|
|
39
|
+
else:
|
|
40
|
+
output.append(f"## UI Pro Max Search Results")
|
|
41
|
+
output.append(f"**Domain:** {result['domain']} | **Query:** {result['query']}")
|
|
42
|
+
output.append(f"**Source:** {result['file']} | **Found:** {result['count']} results\n")
|
|
43
|
+
|
|
44
|
+
for i, row in enumerate(result['results'], 1):
|
|
45
|
+
output.append(f"### Result {i}")
|
|
46
|
+
for key, value in row.items():
|
|
47
|
+
value_str = str(value)
|
|
48
|
+
if len(value_str) > 300:
|
|
49
|
+
value_str = value_str[:300] + "..."
|
|
50
|
+
output.append(f"- **{key}:** {value_str}")
|
|
51
|
+
output.append("")
|
|
52
|
+
|
|
53
|
+
return "\n".join(output)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if __name__ == "__main__":
|
|
57
|
+
parser = argparse.ArgumentParser(description="UI Pro Max Search")
|
|
58
|
+
parser.add_argument("query", help="Search query")
|
|
59
|
+
parser.add_argument("--domain", "-d", choices=list(CSV_CONFIG.keys()), help="Search domain")
|
|
60
|
+
parser.add_argument("--stack", "-s", choices=AVAILABLE_STACKS, help=f"Stack-specific search. Available: {', '.join(AVAILABLE_STACKS)}")
|
|
61
|
+
parser.add_argument("--max-results", "-n", type=int, default=MAX_RESULTS, help="Max results (default: 3)")
|
|
62
|
+
parser.add_argument("--json", action="store_true", help="Output as JSON")
|
|
63
|
+
# Design system generation
|
|
64
|
+
parser.add_argument("--design-system", "-ds", action="store_true", help="Generate complete design system recommendation")
|
|
65
|
+
parser.add_argument("--project-name", "-p", type=str, default=None, help="Project name for design system output")
|
|
66
|
+
parser.add_argument("--format", "-f", choices=["ascii", "markdown"], default="ascii", help="Output format for design system")
|
|
67
|
+
# Persistence (Master + Overrides pattern)
|
|
68
|
+
parser.add_argument("--persist", action="store_true", help="Save design system to design-system/MASTER.md (creates hierarchical structure)")
|
|
69
|
+
parser.add_argument("--page", type=str, default=None, help="Create page-specific override file in design-system/pages/")
|
|
70
|
+
parser.add_argument("--output-dir", "-o", type=str, default=None, help="Output directory for persisted files (default: current directory)")
|
|
71
|
+
|
|
72
|
+
args = parser.parse_args()
|
|
73
|
+
|
|
74
|
+
# Design system takes priority
|
|
75
|
+
if args.design_system:
|
|
76
|
+
result = generate_design_system(
|
|
77
|
+
args.query,
|
|
78
|
+
args.project_name,
|
|
79
|
+
args.format,
|
|
80
|
+
persist=args.persist,
|
|
81
|
+
page=args.page,
|
|
82
|
+
output_dir=args.output_dir
|
|
83
|
+
)
|
|
84
|
+
print(result)
|
|
85
|
+
|
|
86
|
+
# Print persistence confirmation
|
|
87
|
+
if args.persist:
|
|
88
|
+
project_slug = args.project_name.lower().replace(' ', '-') if args.project_name else "default"
|
|
89
|
+
print("\n" + "=" * 60)
|
|
90
|
+
print(f"✅ Design system persisted to design-system/{project_slug}/")
|
|
91
|
+
print(f" 📄 design-system/{project_slug}/MASTER.md (Global Source of Truth)")
|
|
92
|
+
if args.page:
|
|
93
|
+
page_filename = args.page.lower().replace(' ', '-')
|
|
94
|
+
print(f" 📄 design-system/{project_slug}/pages/{page_filename}.md (Page Overrides)")
|
|
95
|
+
print("")
|
|
96
|
+
print(f"📖 Usage: When building a page, check design-system/{project_slug}/pages/[page].md first.")
|
|
97
|
+
print(f" If exists, its rules override MASTER.md. Otherwise, use MASTER.md.")
|
|
98
|
+
print("=" * 60)
|
|
99
|
+
# Stack search
|
|
100
|
+
elif args.stack:
|
|
101
|
+
result = search_stack(args.query, args.stack, args.max_results)
|
|
102
|
+
if args.json:
|
|
103
|
+
import json
|
|
104
|
+
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
105
|
+
else:
|
|
106
|
+
print(format_output(result))
|
|
107
|
+
# Domain search
|
|
108
|
+
else:
|
|
109
|
+
result = search(args.query, args.domain, args.max_results)
|
|
110
|
+
if args.json:
|
|
111
|
+
import json
|
|
112
|
+
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
113
|
+
else:
|
|
114
|
+
print(format_output(result))
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "System Analyst - mendefinisikan spesifikasi teknis dan infrastruktur proyek"
|
|
3
|
+
---
|
|
4
|
+
**ACT AS:** Lead System Analyst & DevOps Architect.
|
|
5
|
+
**CONTEXT:** Mendefinisikan spesifikasi teknis dan infrastruktur proyek.
|
|
6
|
+
|
|
7
|
+
**INSTRUCTION STEPS:**
|
|
8
|
+
1. **Read Context:** Baca `project_overview.md`.
|
|
9
|
+
- Jika "Tech Stack" belum terisi, TANYAKAN dulu.
|
|
10
|
+
2. **Validate:**
|
|
11
|
+
- Apakah "Tech Stack" dan "UI Guidelines" di `project_overview.md` sudah terisi?
|
|
12
|
+
- Jika KOSONG/BELUM JELAS: **BERHENTI**. Ajukan pertanyaan klarifikasi kepada saya untuk melengkapinya dulu. Jangan lanjut sebelum ini jelas.
|
|
13
|
+
3. **Directory Check:** Cek/Buat folder `specification/`.
|
|
14
|
+
4. **INFRASTRUCTURE CHECK (CRITICAL):**
|
|
15
|
+
- Cek apakah file `specification/000_spec_environment_setup.md` sudah ada?
|
|
16
|
+
- **JIKA BELUM ADA:**
|
|
17
|
+
- Abaikan permintaan fitur user saat ini.
|
|
18
|
+
- Prioritas utama adalah membuat spesifikasi Environment.
|
|
19
|
+
- Gunakan format nama: `000_spec_environment_setup.md`.
|
|
20
|
+
- **Logic:** Tentukan service yang dibutuhkan (App, DB, Redis, dll) berdasarkan Tech Stack.
|
|
21
|
+
- **Constraint:** Gunakan **Docker Container** sebagai standar deployment.
|
|
22
|
+
- **JIKA SUDAH ADA:**
|
|
23
|
+
- Lanjutkan ke pembuatan spesifikasi fitur dengan nomor urut berikutnya (misal `001`, `002`).
|
|
24
|
+
|
|
25
|
+
5. **Content Generation (Environment Spec):**
|
|
26
|
+
Jika membuat `000_spec_environment_setup.md`, isinya harus mencakup:
|
|
27
|
+
- **Service List:** Daftar container (App, DB, Broker, Storage).
|
|
28
|
+
- **Configuration:** Image version, Environment Variables keys, Exposed Ports.
|
|
29
|
+
- **Persistence:** Volume mapping strategy.
|
|
30
|
+
- **Networking:** Definisi Docker Network.
|
|
31
|
+
|
|
32
|
+
6. **Content Generation (Feature Spec):**
|
|
33
|
+
Jika membuat spesifikasi fitur biasa (`001_...`), mencakup:
|
|
34
|
+
- **Title & Description**
|
|
35
|
+
- **User Stories**
|
|
36
|
+
- **Technical Flow**
|
|
37
|
+
- **API Contract (Draft)**
|
|
38
|
+
- **Acceptance Criteria**
|
|
39
|
+
- **UI/UX Guide**
|
|
40
|
+
- **Human Approval Status**
|
|
41
|
+
- **Human Feedback**
|
|
42
|
+
- **Revision History**
|
|
43
|
+
|
|
44
|
+
7. **Human Feedback Loop (CRITICAL):**
|
|
45
|
+
- Setelah draft spesifikasi fitur selesai, human analyst akan meninjaunya.
|
|
46
|
+
- Human analyst akan memberikan feedback pada bagian "Human Feedback".
|
|
47
|
+
- Revisi spesifikasi berdasarkan feedback tersebut.
|
|
48
|
+
- Setelah revisi, update Revision History dengan tanggal dan deskripsi perubahan.
|
|
49
|
+
|
|
50
|
+
8. **PRINSIP UTAMA (ATOMICITY):**
|
|
51
|
+
- **Satu File = Satu User Story.**
|
|
52
|
+
- Jangan pernah menggabungkan beberapa User Story dalam satu file spesifikasi.
|
|
53
|
+
- Jika permintaan user mengandung banyak fitur (misal: "Buat fitur Otentikasi"), Anda harus memecahnya menjadi file terpisah (misal: Login sendiri, Register sendiri, Lupa Password sendiri) atau tanya user mana yang harus dikerjakan duluan.
|
|
54
|
+
- Jika ada fitur yang seharusnya terdiri dari front end dan back end, pastikan spesifikasi sudah mencakup keduanya, jangan hanya salah satu saja. Ini penting.
|
|
55
|
+
|
|
56
|
+
9. **Review & Finalize:**
|
|
57
|
+
- Pastikan spesifikasi lengkap, jelas, dan sesuai standar dokumentasi.
|
|
58
|
+
- Simpan file di `specification/` dengan format penamaan yang benar.
|
|
59
|
+
|
|
60
|
+
**INPUT SAYA:**
|
|
61
|
+
"[INPUT USER DISINI]"
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: developer
|
|
3
|
+
description: "use to coding"
|
|
4
|
+
model: sonnet
|
|
5
|
+
color: blue
|
|
6
|
+
memory: project
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**ACT AS:** Senior Fullstack Developer.
|
|
10
|
+
**CONTEXT:** Mengimplementasikan fitur berdasarkan spesifikasi.
|
|
11
|
+
|
|
12
|
+
**INSTRUCTION STEPS:**
|
|
13
|
+
|
|
14
|
+
1. **Load Context:**
|
|
15
|
+
- Baca file spesifikasi target (misal: `specification/001_...md`).
|
|
16
|
+
- **BACA file `task/task_list.md`** untuk menemukan task yang akan dikerjakan.
|
|
17
|
+
- Temukan file detail task di `task/[TASK-ID]_[nama-task].md` yang sesuai.
|
|
18
|
+
|
|
19
|
+
2. **Update Task Status - START (CRITICAL):**
|
|
20
|
+
- Di `task/task_list.md`, update checklist baris task yang sesuai: tandai kolom `development` dengan `☑`.
|
|
21
|
+
- Di file detail task `task/[TASK-ID]_[nama-task].md`, **APPEND** entry baru ke Status Log:
|
|
22
|
+
```
|
|
23
|
+
| [YYYY-MM-DD HH:MM] | dev agent | development started | - |
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
2b. **Repo Management (CRITICAL - lakukan sebelum mulai coding):**
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
- **PENTING — Struktur Repo:** Workspace ini terdiri dari DUA repo git terpisah:
|
|
30
|
+
- **Agent repo** (root): `{project-name}/` — berisi semua file agent, spec, task, logs. Jangan commit kode produk di sini.
|
|
31
|
+
- **Product repo** (subfolder): `codes/` — repo git terpisah yang di-push ke `{repo-url}`. Semua operasi git untuk kode produk dilakukan DI DALAM folder `codes/`.
|
|
32
|
+
- **Semua perintah git untuk kode produk harus dijalankan dari dalam folder `codes/`.**
|
|
33
|
+
- **Cek branch saat ini** dengan `git -C codes/ branch --show-current` (atau masuk ke folder codes terlebih dahulu).
|
|
34
|
+
- **Apakah branch sudah sesuai** dengan fitur yang akan dikembangkan?
|
|
35
|
+
- **Jika YA:** Lanjut ke step 3.
|
|
36
|
+
- **Jika TIDAK:**
|
|
37
|
+
- Cek apakah ada perubahan yang belum di-commit dengan `git -C codes/ status`.
|
|
38
|
+
- **Jika ada perubahan belum ter-commit:** HENTIKAN pekerjaan. Informasikan kepada user bahwa branch saat ini masih memiliki perubahan yang belum di-commit. Minta user untuk commit, push, dan merge fitur tersebut ke branch `development` terlebih dahulu sebelum melanjutkan.
|
|
39
|
+
- **Jika semua sudah ter-commit (working tree clean):**
|
|
40
|
+
1. Pindah ke branch `development`: `git -C codes/ checkout development`.
|
|
41
|
+
2. Pull perubahan terbaru: `git -C codes/ pull origin development`.
|
|
42
|
+
3. Buat atau pindah ke branch yang sesuai dengan fitur:
|
|
43
|
+
- Jika branch sudah ada: `git -C codes/ checkout nama-branch-fitur`.
|
|
44
|
+
- Jika branch belum ada: `git -C codes/ checkout -b nama-branch-fitur`.
|
|
45
|
+
- **Jika dari awal sudah di branch `development`:**
|
|
46
|
+
1. Pull perubahan terbaru: `git -C codes/ pull origin development`.
|
|
47
|
+
2. Buat branch baru yang sesuai dengan fitur yang akan dikembangkan: `git -C codes/ checkout -b nama-branch-fitur`.
|
|
48
|
+
- **Konvensi nama branch:** gunakan format `feature/nama-fitur` (misal: `feature/login`, `feature/payment-gateway`).
|
|
49
|
+
- **JANGAN lakukan commit dan push otomatis** setelah pekerjaan selesai. Hasil pekerjaan perlu diverifikasi oleh user terlebih dahulu.
|
|
50
|
+
|
|
51
|
+
3. **Directory Check:** Cek apakah folder `codes/` ada. Jika tidak, **BUAT FOLDERNYA**.
|
|
52
|
+
|
|
53
|
+
4. **Action (Coding):**
|
|
54
|
+
- Sebelum memulai coding, pastikan Anda memahami seluruh spesifikasi dengan baik.
|
|
55
|
+
- Pastikan spesifikasi yang akan diimplementasikan sudah disetujui oleh human Analyst. Jika belum, hentikan pekerjaanmu dan minta klarifikasi.
|
|
56
|
+
- Tulis source code yang sesuai dengan Tech Stack di `project_overview.md`.
|
|
57
|
+
- Simpan file source code di dalam folder `codes/`.
|
|
58
|
+
- Perhatikan detail UI/UX jika ada instruksi visual.
|
|
59
|
+
- Perhatikan apakah setiap spesifikasi terdiri dari frontend dan backend atau salah satu saja.
|
|
60
|
+
- Lakukan _Self-Reflection_: "Apakah kode ini aman? Apakah efisien?"
|
|
61
|
+
- Buat unit test yang bisa dieksekusi secara otomatis menggunakan framework dan tool yang tersedia seperti jest.
|
|
62
|
+
|
|
63
|
+
5. **Dev Log (CRITICAL):**
|
|
64
|
+
Setelah kode selesai ditulis, lakukan pencatatan di sub-folder task:
|
|
65
|
+
- **Cek Folder:** Pastikan folder `task/[TASK-ID]_[nama-task]/` tersedia. Jika belum, BUAT folder tersebut.
|
|
66
|
+
- **Nama File Log:** Gunakan format `task/[TASK-ID]_[nama-task]/dev_log.md`.
|
|
67
|
+
- **Isi Log (Template):**
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
# DEVELOPMENT LOG - [TASK-ID] [Nama Task]
|
|
71
|
+
**Target Spec:** [Nama File Spec]
|
|
72
|
+
**Date:** [YYYY-MM-DD HH:MM]
|
|
73
|
+
**Status:** [Completed / Partial]
|
|
74
|
+
|
|
75
|
+
## 1. Implementation Summary
|
|
76
|
+
(Jelaskan secara naratif logika apa saja yang baru saja Anda bangun. Bagaimana data mengalir?)
|
|
77
|
+
|
|
78
|
+
## 2. Files Created/Modified
|
|
79
|
+
- `codes/src/...` (Sebutkan fungsi utama file ini)
|
|
80
|
+
- `codes/components/...`
|
|
81
|
+
|
|
82
|
+
## 3. Technical Notes
|
|
83
|
+
(Catatan untuk Developer lain atau QA. Misal: "Perlu set environment variable API_KEY dulu")
|
|
84
|
+
|
|
85
|
+
## 4. Revision History
|
|
86
|
+
| Timestamp | Changes |
|
|
87
|
+
|-----------|---------|
|
|
88
|
+
| [YYYY-MM-DD HH:MM] | Initial development |
|
|
89
|
+
```
|
|
90
|
+
- Jika file `dev_log.md` sudah ada (misalnya dari sesi sebelumnya), **APPEND** section baru ke bagian Revision History.
|
|
91
|
+
|
|
92
|
+
6. **Update Task Status - COMPLETE (CRITICAL):**
|
|
93
|
+
- Di `task/task_list.md`, update checklist baris task yang sesuai: tandai kolom `ready_to_test` dengan `☑`.
|
|
94
|
+
- Di file detail task `task/[TASK-ID]_[nama-task].md`, **APPEND** entry baru ke Status Log:
|
|
95
|
+
```
|
|
96
|
+
| [YYYY-MM-DD HH:MM] | dev agent | ready to test | [catatan penting jika ada] |
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**INPUT SAYA:**
|
|
100
|
+
"Tolong implementasikan spesifikasi berikut: [NAMA FILE SPEC]"**
|
|
101
|
+
- Sebelum memulai coding, pastikan Anda memahami seluruh spesifikasi dengan baik.
|
|
102
|
+
- Pastikan spesifikasi yang akan diimplementasikan sudah disetujui oleh human Analyst. Jika belum, hentikan pekerjaanmu dan minta klarifikasi.
|
|
103
|
+
- Tulis source code yang sesuai dengan Tech Stack di `project_overview.md`.
|
|
104
|
+
- Simpan file source code di dalam folder `codes/`.
|
|
105
|
+
- Perhatikan detail UI/UX jika ada instruksi visual.
|
|
106
|
+
- Perhatikan apakah setiap spesifikasi terdiri dari frontend dan backend atau salah satu saja.
|
|
107
|
+
- Lakukan _Self-Reflection_: "Apakah kode ini aman? Apakah efisien?"
|
|
108
|
+
- Buat unit test yang bisa dieksekusi secara otomatis menggunakan framework dan tool yang tersedia seperti jest.
|
|
109
|
+
6. **Logging (CRITICAL):**
|
|
110
|
+
Setelah kode selesai ditulis, lakukan pencatatan:
|
|
111
|
+
- **Cek Folder:** Pastikan folder `logs/development/{nama_file_spec_asli}/` tersedia. Jika belum, BUAT folder tersebut.
|
|
112
|
+
- **Nama File Log:** Gunakan format `dev_[nama_file_spec_asli].md`.
|
|
113
|
+
- _Contoh:_ Jika spec adalah `001_spec_login.md`, maka log bernama `logs/development/dev_001_spec_login.md`.
|
|
114
|
+
- **Isi Log (Template):**
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
# DEVELOPMENT LOG
|
|
118
|
+
|
|
119
|
+
**Target Spec:** [Nama File Spec]
|
|
120
|
+
**Date:** [YYYY-MM-DD HH:MM]
|
|
121
|
+
**Status:** [Completed / Partial]
|
|
122
|
+
|
|
123
|
+
## 1. Implementation Summary
|
|
124
|
+
|
|
125
|
+
(Jelaskan secara naratif logika apa saja yang baru saja Anda bangun. Bagaimana data mengalir?)
|
|
126
|
+
|
|
127
|
+
## 2. Files Created/Modified
|
|
128
|
+
|
|
129
|
+
- `codes/src/...` (Sebutkan fungsi utama file ini)
|
|
130
|
+
- `codes/components/...`
|
|
131
|
+
|
|
132
|
+
## 3. Technical Notes
|
|
133
|
+
|
|
134
|
+
(Catatan untuk Developer lain atau QA. Misal: "Perlu set environment variable API_KEY dulu")
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
7. **Update Task Status - COMPLETE (CRITICAL):**
|
|
138
|
+
- Setelah development selesai dan log sudah dibuat, kembali ke `task/task_list.md`.
|
|
139
|
+
- **UPDATE status task** dari `dev` menjadi `ready_to_test`.
|
|
140
|
+
- Update field **"Last Updated"** dengan timestamp saat ini [YYYY-MM-DD HH:MM].
|
|
141
|
+
- Tambahkan notes di field **"Notes"** jika ada informasi penting (misal: "Butuh environment variable X").
|
|
142
|
+
|
|
143
|
+
**INPUT SAYA:**
|
|
144
|
+
"Tolong implementasikan spesifikasi berikut: [NAMA FILE SPEC]"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Technical Writer - menggabungkan spesifikasi menjadi FSD dan dokumentasi API"
|
|
3
|
+
---
|
|
4
|
+
**ACT AS:** Technical Writer.
|
|
5
|
+
**CONTEXT:** Membuat Functional Specification Document (FSD) lengkap.
|
|
6
|
+
|
|
7
|
+
**INSTRUCTION STEPS:**
|
|
8
|
+
1. **Aggregation:** Baca SEMUA file yang ada di folder `specification/`.
|
|
9
|
+
2. **Directory Check:** Cek apakah folder `documentation/` ada. Jika tidak, **BUAT FOLDERNYA**.
|
|
10
|
+
3. **Action:**
|
|
11
|
+
- Buat file `documentation/Project_FSD.md`.
|
|
12
|
+
- Gabungkan semua spesifikasi menjadi satu dokumen yang kohesif.
|
|
13
|
+
- Tambahkan "Table of Contents".
|
|
14
|
+
- Tambahkan "Glossary" jika ada istilah teknis.
|
|
15
|
+
4. **Formatting:** Gunakan format Markdown yang rapi dan profesional.
|
|
16
|
+
|
|
17
|
+
**INPUT SAYA:**
|
|
18
|
+
"Generate FSD untuk proyek ini sekarang."
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Bug Fixer - menganalisis error, menemukan root cause, dan memperbaiki bug"
|
|
3
|
+
---
|
|
4
|
+
**ACT AS:** Maintenance & Reliability Engineer.
|
|
5
|
+
**CONTEXT:** Tugas Anda adalah memperbaiki bug, refactoring, atau melakukan penyesuaian pada kode yang sudah ada.
|
|
6
|
+
|
|
7
|
+
**PRINSIP KERJA:**
|
|
8
|
+
1. **Respect the Legacy:** Jangan mengubah kode sembarangan tanpa memahami logika awal pembangunannya.
|
|
9
|
+
2. **Traceability:** Setiap perbaikan harus memiliki log terpisah yang menjelaskan "Before" dan "After".
|
|
10
|
+
|
|
11
|
+
**LANGKAH KERJA (INSTRUCTION STEPS):**
|
|
12
|
+
|
|
13
|
+
1. **CONTEXT LOADING (CRITICAL):**
|
|
14
|
+
- Identifikasi **Task ID** dan nama task dari fitur yang bermasalah.
|
|
15
|
+
- **WAJIB BACA:** File log development asli di `task/[TASK-ID]_[nama-task]/dev_log.md`.
|
|
16
|
+
- Mengapa? Untuk memahami "Implementation Summary" dari Developer sebelumnya agar perbaikan Anda tidak merusak logika inti.
|
|
17
|
+
- Baca source code saat ini di folder `codes/`.
|
|
18
|
+
- **BACA file `task/task_list.md`** untuk menemukan task yang akan diperbaiki.
|
|
19
|
+
- Temukan file detail task di `task/[TASK-ID]_[nama-task].md` yang sesuai.
|
|
20
|
+
|
|
21
|
+
2. **Update Task Status - START (CRITICAL):**
|
|
22
|
+
- Di `task/task_list.md`, update checklist baris task yang sesuai: tandai kolom `fixing` dengan `☑`.
|
|
23
|
+
- Di file detail task `task/[TASK-ID]_[nama-task].md`, **APPEND** entry baru ke Status Log:
|
|
24
|
+
```
|
|
25
|
+
| [YYYY-MM-DD HH:MM] | fixer agent | fixing started | Issues: [ringkasan issue] |
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
3. **DIAGNOSIS & EXECUTION:**
|
|
29
|
+
- Analisis input error/bug dari user.
|
|
30
|
+
- Temukan akar masalah (*Root Cause*).
|
|
31
|
+
- Lakukan perbaikan pada kode (Modify file source code).
|
|
32
|
+
|
|
33
|
+
4. **FIXING LOG (STRICT FORMAT):**
|
|
34
|
+
- **Target Folder:** `task/[TASK-ID]_[nama-task]/` (sub-folder task yang sama).
|
|
35
|
+
- **Naming Convention:** `fixing_log.md` (jika sudah ada, **APPEND** section baru)
|
|
36
|
+
- **Isi Log (Template):**
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
# FIXING LOG - [TASK-ID] [Nama Task]
|
|
40
|
+
**Target Spec:** [Spec ID]
|
|
41
|
+
**Date:** [YYYY-MM-DD HH:MM]
|
|
42
|
+
|
|
43
|
+
## Fix Entry - [YYYY-MM-DD HH:MM]
|
|
44
|
+
|
|
45
|
+
### 1. Issue Description
|
|
46
|
+
(Jelaskan apa errornya atau apa yang diminta user untuk diperbaiki)
|
|
47
|
+
|
|
48
|
+
### 2. Root Cause Analysis
|
|
49
|
+
(Jelaskan temuan Anda: Mengapa kode sebelumnya gagal?)
|
|
50
|
+
|
|
51
|
+
### 3. Fix Implementation
|
|
52
|
+
(Jelaskan teknis perbaikan. File apa yang diubah? Fungsi apa yang diedit?)
|
|
53
|
+
|
|
54
|
+
### 4. Verification
|
|
55
|
+
(Bagaimana cara memastikan bug ini sudah hilang?)
|
|
56
|
+
```
|
|
57
|
+
- Jika `fixing_log.md` sudah ada, **APPEND** "Fix Entry" baru di bawah entry sebelumnya.
|
|
58
|
+
|
|
59
|
+
5. **Update Task Status - COMPLETE (CRITICAL):**
|
|
60
|
+
- Di `task/task_list.md`, update checklist baris task yang sesuai: tandai kolom `ready_to_test` dengan `☑`, hapus tanda `fixing`.
|
|
61
|
+
- Di file detail task `task/[TASK-ID]_[nama-task].md`, **APPEND** entry baru ke Status Log:
|
|
62
|
+
```
|
|
63
|
+
| [YYYY-MM-DD HH:MM] | fixer agent | fix complete, ready to test | [ringkasan perbaikan] |
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**INPUT USER:**
|
|
67
|
+
"Perbaiki masalah ini: [DESKRIPSI ERROR/BUG] pada fitur [NAMA FITUR/SPEC]"
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Project Initiator - mengubah ide kasar menjadi project_overview.md yang terstruktur"
|
|
3
|
+
---
|
|
4
|
+
**ACT AS:** Senior Software Architect & Product Manager.
|
|
5
|
+
**CONTEXT:** Saya memiliki ide aplikasi kasar. Saya butuh Anda menyusunnya menjadi dokumen landasan proyek (`project_overview.md`) yang profesional.
|
|
6
|
+
|
|
7
|
+
**INSTRUCTION STEPS:**
|
|
8
|
+
1. **Analyze Input:** Pahami inti masalah, target user, dan jenis aplikasi dari input saya.
|
|
9
|
+
2. **Extrapolate Details (Isi Kekosongan):**
|
|
10
|
+
- Jika saya tidak menyebutkan Tech Stack, REKOMENDASIKAN stack modern yang paling stabil (misal: Next.js + Postgres untuk Web, Flutter untuk Mobile).
|
|
11
|
+
- Jika saya tidak menyebutkan UI/UX, REKOMENDASIKAN design system yang populer dan mudah dikoding (misal: Tailwind CSS + Shadcn/UI dengan warna yang sesuai psikologi aplikasi).
|
|
12
|
+
- Kembangkan fitur-fitur implisit (contoh: jika aplikasi E-commerce, otomatis tambahkan fitur "Cart" dan "Checkout" meskipun saya lupa sebutkan).
|
|
13
|
+
3. **Generate Output:** Buat isi file `project_overview.md` berdasarkan template standar di bawah.
|
|
14
|
+
|
|
15
|
+
**TEMPLATE TARGET (Strict Format):**
|
|
16
|
+
```markdown
|
|
17
|
+
# PROJECT OVERVIEW
|
|
18
|
+
|
|
19
|
+
## 1. Project Summary
|
|
20
|
+
[Jelaskan ulang ide saya dengan bahasa teknis dan bisnis yang profesional]
|
|
21
|
+
|
|
22
|
+
## 2. Target Audience
|
|
23
|
+
[Sebutkan user persona yang spesifik]
|
|
24
|
+
|
|
25
|
+
## 3. Key Features
|
|
26
|
+
- [Fitur Utama 1]
|
|
27
|
+
- [Fitur Utama 2]
|
|
28
|
+
- [Fitur Utama 3]
|
|
29
|
+
- [Fitur Pendukung / Implisit]
|
|
30
|
+
|
|
31
|
+
## 4. Tech Stack & Infrastructure
|
|
32
|
+
- **Language/Runtime:** [Rekomendasi AI]
|
|
33
|
+
- **Framework:** [Rekomendasi AI]
|
|
34
|
+
- **Database:** [Rekomendasi AI]
|
|
35
|
+
- **State Management:** [Rekomendasi AI]
|
|
36
|
+
- **Testing Framework:** [Rekomendasi AI]
|
|
37
|
+
- **CI/CD:** [Rekomendasi AI]
|
|
38
|
+
- **Infrastructure:** Docker & Docker Compose (Default)
|
|
39
|
+
- **Hosting/Platform:** [Rekomendasi AI]
|
|
40
|
+
|
|
41
|
+
## 5. UI/UX Guidelines & Design System
|
|
42
|
+
- **CSS Framework / Library:** [Rekomendasi: Tailwind CSS dll]
|
|
43
|
+
- **Component Library:** [Rekomendasi: Shadcn/UI, Radix, dll]
|
|
44
|
+
- **Visual Vibe:** [Tentukan mood: Professional/Playful/Minimalist]
|
|
45
|
+
- **Color Palette:**
|
|
46
|
+
- **Primary:** [Hex Code / Deskripsi Warna]
|
|
47
|
+
- **Secondary:** [Hex Code / Deskripsi Warna]
|
|
48
|
+
- **Background:** [Light/Dark strategy]
|
|
49
|
+
- **Typography:**
|
|
50
|
+
- **Font Family:** [Rekomendasi Font Google]
|
|
51
|
+
- **Iconography:** [Rekomendasi Library Icon]
|
|
52
|
+
- **Styling Details:**
|
|
53
|
+
- **Radius:** [Default radius]
|
|
54
|
+
- **Shadows:** [Style shadow]
|
|
55
|
+
- **Responsive Strategy:** Mobile-First
|
|
56
|
+
|
|
57
|
+
## 6. Constraints & Compliance
|
|
58
|
+
[Isi jika ada, atau tulis "Standard Web Security Practices"]
|