create-vasvibe 2.4.0 → 2.5.1
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 +170 -167
- package/bin/cli.mjs +9 -9
- package/package.json +45 -45
- package/src/git.mjs +47 -47
- package/src/index.mjs +228 -228
- package/src/prompts.mjs +113 -113
- package/src/scaffold.mjs +74 -74
- package/src/upgrade.mjs +121 -121
- package/src/utils.mjs +91 -91
- package/template/.agents/agents/analyst/agent.json +43 -43
- package/template/.agents/agents/backend/agent.json +44 -44
- package/template/.agents/agents/data-architect/agent.json +43 -43
- package/template/.agents/agents/devops/agent.json +44 -44
- package/template/.agents/agents/discovery/agent.json +43 -43
- package/template/.agents/agents/document/agent.json +43 -43
- package/template/.agents/agents/explorer/agent.json +43 -43
- package/template/.agents/agents/fixer/agent.json +44 -44
- package/template/.agents/agents/frontend/agent.json +44 -44
- package/template/.agents/agents/fullstack/agent.json +44 -44
- package/template/.agents/agents/initiator/agent.json +41 -41
- package/template/.agents/agents/logger/agent.json +43 -43
- package/template/.agents/agents/manual-tester/agent.json +44 -0
- package/template/.agents/agents/orchestrator/agent.json +44 -44
- package/template/.agents/agents/pm/agent.json +42 -42
- package/template/.agents/agents/qa/agent.json +44 -44
- package/template/.agents/agents/reliability/agent.json +44 -44
- package/template/.agents/agents/security/agent.json +44 -44
- package/template/.agents/agents/sysarch/agent.json +44 -44
- package/template/.agents/agents/tester/agent.json +44 -44
- package/template/.agents/agents/toolsmith/agent.json +44 -44
- package/template/.agents/agents/ux-designer/agent.json +43 -43
- package/template/.agents/skills/find-skills/SKILL.md +142 -142
- package/template/.agents/skills/fullstack/SKILL.md +89 -89
- package/template/.agents/skills/penetration-testing/SKILL.md +94 -94
- package/template/.agents/skills/penetration-testing/references/automated-penetration-testing-framework.md +328 -328
- package/template/.agents/skills/penetration-testing/references/burp-suite-automation-script.md +135 -135
- package/template/.agents/skills/penetration-testing/scripts/security-checklist.sh +30 -30
- package/template/.agents/skills/pm/SKILL.md +170 -170
- package/template/.agents/skills/ui-ux-pro-max/SKILL.md +658 -658
- package/template/.agents/skills/ui-ux-pro-max/data/_sync_all.py +414 -414
- package/template/.agents/skills/ui-ux-pro-max/data/app-interface.csv +30 -30
- package/template/.agents/skills/ui-ux-pro-max/data/design.csv +1775 -1775
- package/template/.agents/skills/ui-ux-pro-max/data/draft.csv +1778 -1778
- package/template/.agents/skills/ui-ux-pro-max/data/icons.csv +105 -105
- package/template/.agents/skills/ui-ux-pro-max/data/products.csv +162 -162
- package/template/.agents/skills/ui-ux-pro-max/data/react-performance.csv +45 -45
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -51
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -54
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -51
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -54
- package/template/.agents/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/template/.agents/skills/ui-ux-pro-max/data/typography.csv +74 -74
- package/template/.agents/skills/ui-ux-pro-max/scripts/core.py +262 -262
- package/template/.agents/skills/ui-ux-pro-max/scripts/design_system.py +1148 -1148
- package/template/.agents/workflows/build-feature.md +21 -21
- package/template/.agents/workflows/build-prototype.md +32 -32
- package/template/.agents/workflows/daily-standup.md +16 -16
- package/template/.agents/workflows/deliver-feature.md +16 -16
- package/template/.agents/workflows/explorer.md +78 -78
- package/template/.agents/workflows/harden-release.md +21 -21
- package/template/.agents/workflows/logger.md +117 -117
- package/template/.agents/workflows/plan-feature.md +30 -30
- package/template/.agents/workflows/plan-project.md +25 -25
- package/template/.agents/workflows/release.md +18 -18
- package/template/.agents/workflows/security-audit.md +19 -19
- package/template/.agents/workflows/setup-workspace.md +21 -21
- package/template/.agents/workflows/start-fix.md +18 -18
- package/template/.agents/workflows/test-feature.md +17 -17
- package/template/.claude/agents/analyst.md +109 -109
- package/template/.claude/agents/backend.md +61 -61
- package/template/.claude/agents/data-architect.md +43 -43
- package/template/.claude/agents/devops.md +44 -43
- package/template/.claude/agents/discovery.md +51 -51
- package/template/.claude/agents/document.md +51 -51
- package/template/.claude/agents/explorer.md +138 -138
- package/template/.claude/agents/fixer.md +87 -86
- package/template/.claude/agents/frontend.md +65 -65
- package/template/.claude/agents/fullstack.md +91 -90
- package/template/.claude/agents/initiator.md +74 -74
- package/template/.claude/agents/logger.md +143 -143
- package/template/.claude/agents/manual-tester.md +108 -0
- package/template/.claude/agents/orchestrator.md +138 -137
- package/template/.claude/agents/pm.md +199 -199
- package/template/.claude/agents/qa.md +66 -65
- package/template/.claude/agents/reliability.md +48 -47
- package/template/.claude/agents/security.md +107 -106
- package/template/.claude/agents/sysarch.md +301 -301
- package/template/.claude/agents/tester.md +100 -100
- package/template/.claude/agents/toolsmith.md +77 -76
- package/template/.claude/agents/ux-designer.md +45 -45
- package/template/.claude/commands/build-feature.md +22 -22
- package/template/.claude/commands/build-prototype.md +33 -33
- package/template/.claude/commands/daily-standup.md +16 -16
- package/template/.claude/commands/deliver-feature.md +17 -17
- package/template/.claude/commands/harden-release.md +22 -22
- package/template/.claude/commands/manual-test.md +19 -0
- package/template/.claude/commands/plan-feature.md +31 -31
- package/template/.claude/commands/plan-project.md +26 -26
- package/template/.claude/commands/release.md +19 -19
- package/template/.claude/commands/security-audit.md +20 -20
- package/template/.claude/commands/setup-workspace.md +22 -22
- package/template/.claude/commands/start-fix.md +19 -19
- package/template/.claude/commands/test-feature.md +18 -18
- package/template/.claude/skills/find-skills/SKILL.md +142 -142
- package/template/.claude/skills/penetration-testing/SKILL.md +94 -94
- package/template/.claude/skills/penetration-testing/references/automated-penetration-testing-framework.md +328 -328
- package/template/.claude/skills/penetration-testing/references/burp-suite-automation-script.md +135 -135
- package/template/.claude/skills/penetration-testing/scripts/security-checklist.sh +30 -30
- package/template/.claude/skills/ui-ux-pro-max/SKILL.md +658 -658
- package/template/.claude/skills/ui-ux-pro-max/data/_sync_all.py +414 -414
- package/template/.claude/skills/ui-ux-pro-max/data/app-interface.csv +30 -30
- package/template/.claude/skills/ui-ux-pro-max/data/design.csv +1775 -1775
- package/template/.claude/skills/ui-ux-pro-max/data/draft.csv +1778 -1778
- package/template/.claude/skills/ui-ux-pro-max/data/icons.csv +105 -105
- package/template/.claude/skills/ui-ux-pro-max/data/products.csv +162 -162
- package/template/.claude/skills/ui-ux-pro-max/data/react-performance.csv +45 -45
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -51
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -54
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -51
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -54
- package/template/.claude/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/template/.claude/skills/ui-ux-pro-max/data/typography.csv +74 -74
- package/template/.claude/skills/ui-ux-pro-max/scripts/core.py +262 -262
- package/template/.claude/skills/ui-ux-pro-max/scripts/design_system.py +1148 -1148
- package/template/.github/prompts/analyst.prompt.md +104 -104
- package/template/.github/prompts/backend.prompt.md +44 -44
- package/template/.github/prompts/data-architect.prompt.md +38 -38
- package/template/.github/prompts/devops.prompt.md +32 -32
- package/template/.github/prompts/discovery.prompt.md +39 -39
- package/template/.github/prompts/document.prompt.md +14 -14
- package/template/.github/prompts/explorer.prompt.md +133 -133
- package/template/.github/prompts/fixer.prompt.md +82 -81
- package/template/.github/prompts/frontend.prompt.md +60 -60
- package/template/.github/prompts/fullstack.prompt.md +86 -86
- package/template/.github/prompts/initiator.prompt.md +55 -55
- package/template/.github/prompts/logger.prompt.md +138 -138
- package/template/.github/prompts/manual-tester.prompt.md +103 -0
- package/template/.github/prompts/orchestrator.prompt.md +133 -133
- package/template/.github/prompts/pm.prompt.md +186 -186
- package/template/.github/prompts/qa.prompt.md +57 -57
- package/template/.github/prompts/reliability.prompt.md +44 -44
- package/template/.github/prompts/security.prompt.md +41 -41
- package/template/.github/prompts/sysarch.prompt.md +351 -351
- package/template/.github/prompts/tester.prompt.md +107 -107
- package/template/.github/prompts/toolsmith.prompt.md +46 -46
- package/template/.github/prompts/ux-designer.prompt.md +41 -41
- package/template/.opencode/agents/analyst.md +108 -108
- package/template/.opencode/agents/backend.md +61 -61
- package/template/.opencode/agents/data-architect.md +43 -43
- package/template/.opencode/agents/devops.md +44 -44
- package/template/.opencode/agents/discovery.md +51 -51
- package/template/.opencode/agents/document.md +51 -51
- package/template/.opencode/agents/explorer.md +137 -137
- package/template/.opencode/agents/fixer.md +86 -85
- package/template/.opencode/agents/frontend.md +64 -64
- package/template/.opencode/agents/fullstack.md +90 -89
- package/template/.opencode/agents/initiator.md +74 -74
- package/template/.opencode/agents/logger.md +142 -142
- package/template/.opencode/agents/manual-tester.md +107 -0
- package/template/.opencode/agents/orchestrator.md +137 -133
- package/template/.opencode/agents/pm.md +199 -199
- package/template/.opencode/agents/qa.md +66 -65
- package/template/.opencode/agents/reliability.md +48 -48
- package/template/.opencode/agents/security.md +107 -107
- package/template/.opencode/agents/sysarch.md +301 -301
- package/template/.opencode/agents/tester.md +100 -100
- package/template/.opencode/agents/toolsmith.md +77 -77
- package/template/.opencode/agents/ux-designer.md +45 -45
- package/template/.opencode/commands/build-feature.md +21 -21
- package/template/.opencode/commands/build-prototype.md +32 -32
- package/template/.opencode/commands/daily-standup.md +16 -16
- package/template/.opencode/commands/deliver-feature.md +16 -16
- package/template/.opencode/commands/harden-release.md +21 -21
- package/template/.opencode/commands/manual-test.md +18 -0
- package/template/.opencode/commands/plan-feature.md +30 -30
- package/template/.opencode/commands/plan-project.md +25 -25
- package/template/.opencode/commands/release.md +18 -18
- package/template/.opencode/commands/security-audit.md +19 -19
- package/template/.opencode/commands/setup-workspace.md +21 -21
- package/template/.opencode/commands/start-fix.md +18 -18
- package/template/.opencode/commands/test-feature.md +17 -17
- package/template/.opencode/skills/penetration-testing/SKILL.md +94 -94
- package/template/.opencode/skills/penetration-testing/references/automated-penetration-testing-framework.md +328 -328
- package/template/.opencode/skills/penetration-testing/references/burp-suite-automation-script.md +135 -135
- package/template/.opencode/skills/penetration-testing/scripts/security-checklist.sh +30 -30
- package/template/.opencode/skills/ui-ux-pro-max/SKILL.md +658 -658
- package/template/.opencode/skills/ui-ux-pro-max/data/_sync_all.py +414 -414
- package/template/.opencode/skills/ui-ux-pro-max/data/app-interface.csv +30 -30
- package/template/.opencode/skills/ui-ux-pro-max/data/design.csv +1775 -1775
- package/template/.opencode/skills/ui-ux-pro-max/data/draft.csv +1778 -1778
- package/template/.opencode/skills/ui-ux-pro-max/data/icons.csv +105 -105
- package/template/.opencode/skills/ui-ux-pro-max/data/products.csv +162 -162
- package/template/.opencode/skills/ui-ux-pro-max/data/react-performance.csv +45 -45
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -51
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -54
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -51
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -54
- package/template/.opencode/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/template/.opencode/skills/ui-ux-pro-max/data/typography.csv +74 -74
- package/template/.opencode/skills/ui-ux-pro-max/scripts/core.py +262 -262
- package/template/.opencode/skills/ui-ux-pro-max/scripts/design_system.py +1148 -1148
- package/template/AGENT_PERSONAS.md +595 -551
- package/template/GIT_STRUCTURE_GUIDE.md +270 -270
- package/template/PROJECT_README.example.md +81 -81
- package/template/QUICK-START.md +134 -131
- package/template/README.md +1942 -1919
- package/template/_gitignore +138 -138
- package/template/agent/workflows/_shared/change-management.md +70 -70
- package/template/agent/workflows/_shared/git-branch-management.md +25 -25
- package/template/agent/workflows/_shared/phases.md +88 -88
- package/template/agent/workflows/_shared/state-management.md +87 -87
- package/template/agent/workflows/_shared/work-depth.md +46 -46
- package/template/agent/workflows/analyst.md +104 -104
- package/template/agent/workflows/backend.md +61 -61
- package/template/agent/workflows/data-architect.md +43 -43
- package/template/agent/workflows/devops.md +44 -44
- package/template/agent/workflows/discovery.md +51 -51
- package/template/agent/workflows/document.md +51 -51
- package/template/agent/workflows/explorer.md +133 -133
- package/template/agent/workflows/fixer.md +82 -81
- package/template/agent/workflows/frontend.md +60 -60
- package/template/agent/workflows/fullstack.md +86 -86
- package/template/agent/workflows/initiator.md +74 -74
- package/template/agent/workflows/logger.md +138 -138
- package/template/agent/workflows/manual-tester.md +103 -0
- package/template/agent/workflows/orchestrator.md +133 -133
- package/template/agent/workflows/pm.md +199 -199
- package/template/agent/workflows/qa.md +66 -66
- package/template/agent/workflows/reliability.md +48 -48
- package/template/agent/workflows/security.md +107 -107
- package/template/agent/workflows/sysarch.md +301 -301
- package/template/agent/workflows/tester.md +100 -100
- package/template/agent/workflows/toolsmith.md +77 -77
- package/template/agent/workflows/ux-designer.md +45 -45
- package/template/codes/.gitkeep +1 -1
- package/template/project_overview_example.md +54 -54
- package/template/schemas/adr.template.md +36 -36
- package/template/schemas/changelog.template.md +34 -34
- package/template/schemas/data-model.template.md +57 -57
- package/template/schemas/design-system.template.md +63 -63
- package/template/schemas/dev_log.template.md +20 -20
- package/template/schemas/product-ci.template.yml +50 -50
- package/template/schemas/requirements.template.md +64 -64
- package/template/schemas/security-standards.template.md +58 -58
- package/template/schemas/security_report.template.md +89 -89
- package/template/schemas/specification.template.md +71 -71
- package/template/schemas/style_guide.template.md +29 -29
- package/template/schemas/task_list.template.md +28 -28
- package/template/schemas/workspace-manifest.template.json +24 -24
- package/template/schemas/workspace-registry.json +95 -95
- package/template/skills-lock.json +11 -11
- package/template/specifications/.gitkeep +3 -3
- package/template/state/knowledge_base/.gitkeep +1 -1
- package/template/state/knowledge_base/requirements/.gitkeep +1 -1
- package/template/tests/.gitkeep +1 -1
- package/template/.claude/settings.local.json +0 -44
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
# State Management (Shared)
|
|
2
|
-
|
|
3
|
-
Setiap agent WAJIB membaca dan menulis state sesuai panduan ini untuk menjaga kontinuitas antar-session.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## context.json
|
|
8
|
-
|
|
9
|
-
**Path:** `state/context.json`
|
|
10
|
-
|
|
11
|
-
Baca file ini di **awal setiap session**. Update di **akhir session** jika ada perubahan status.
|
|
12
|
-
|
|
13
|
-
### Schema
|
|
14
|
-
|
|
15
|
-
```json
|
|
16
|
-
{
|
|
17
|
-
"project_name": "string — nama project dari project_overview.md",
|
|
18
|
-
"last_updated": "YYYY-MM-DD HH:MM — timestamp update terakhir",
|
|
19
|
-
"last_agent": "string — nama agent yang terakhir aktif (fullstack/tester/fixer/dll)",
|
|
20
|
-
"current_sprint": "string atau null — nama sprint aktif jika ada",
|
|
21
|
-
"active_tasks": ["TASK-XXX", "TASK-YYY"],
|
|
22
|
-
"blocked_tasks": ["TASK-ZZZ"],
|
|
23
|
-
"notes": "string — catatan penting untuk agent berikutnya, atau kosong"
|
|
24
|
-
}
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Contoh
|
|
28
|
-
|
|
29
|
-
```json
|
|
30
|
-
{
|
|
31
|
-
"project_name": "booking-kapal-wisata",
|
|
32
|
-
"last_updated": "2025-06-18 14:30",
|
|
33
|
-
"last_agent": "fullstack",
|
|
34
|
-
"current_sprint": "Sprint 1 - Auth & Environment",
|
|
35
|
-
"active_tasks": ["TASK-001"],
|
|
36
|
-
"blocked_tasks": [],
|
|
37
|
-
"notes": "TASK-001 selesai development, menunggu QA review sebelum testing"
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## agent_handoff.json
|
|
44
|
-
|
|
45
|
-
**Path:** `state/agent_handoff.json`
|
|
46
|
-
|
|
47
|
-
Tulis file ini ketika kamu **menyerahkan pekerjaan ke agent lain** (bukan sekedar update status). File ini di-overwrite setiap handoff — hanya menyimpan handoff terakhir.
|
|
48
|
-
|
|
49
|
-
### Schema
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"from_agent": "string — agent yang mengirim handoff",
|
|
54
|
-
"to_agent": "string — agent penerima",
|
|
55
|
-
"task_id": "TASK-XXX",
|
|
56
|
-
"timestamp": "YYYY-MM-DD HH:MM",
|
|
57
|
-
"status": "string — status task saat handoff (ready_to_test / fixing / dll)",
|
|
58
|
-
"notes": "string — instruksi spesifik untuk agent penerima",
|
|
59
|
-
"artifacts": ["path/ke/file yang relevan"]
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Contoh
|
|
64
|
-
|
|
65
|
-
```json
|
|
66
|
-
{
|
|
67
|
-
"from_agent": "fullstack",
|
|
68
|
-
"to_agent": "qa",
|
|
69
|
-
"task_id": "TASK-001",
|
|
70
|
-
"timestamp": "2025-06-18 14:30",
|
|
71
|
-
"status": "ready_to_test",
|
|
72
|
-
"notes": "Implementasi login dengan JWT. Pastikan cek validasi input di POST /api/auth/login",
|
|
73
|
-
"artifacts": [
|
|
74
|
-
"codes/src/app/api/auth/login/route.ts",
|
|
75
|
-
"codes/src/lib/auth.ts",
|
|
76
|
-
"task/TASK-001_login/dev_log.md"
|
|
77
|
-
]
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Aturan Umum
|
|
84
|
-
|
|
85
|
-
- **JANGAN** menulis context.json dengan format berbeda dari schema di atas.
|
|
86
|
-
- Jika `context.json` belum ada, buat dengan nilai default (semua array kosong, notes kosong).
|
|
87
|
-
- Jika `agent_handoff.json` sudah ada dari handoff sebelumnya, **overwrite** — tidak perlu append.
|
|
1
|
+
# State Management (Shared)
|
|
2
|
+
|
|
3
|
+
Setiap agent WAJIB membaca dan menulis state sesuai panduan ini untuk menjaga kontinuitas antar-session.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## context.json
|
|
8
|
+
|
|
9
|
+
**Path:** `state/context.json`
|
|
10
|
+
|
|
11
|
+
Baca file ini di **awal setiap session**. Update di **akhir session** jika ada perubahan status.
|
|
12
|
+
|
|
13
|
+
### Schema
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"project_name": "string — nama project dari project_overview.md",
|
|
18
|
+
"last_updated": "YYYY-MM-DD HH:MM — timestamp update terakhir",
|
|
19
|
+
"last_agent": "string — nama agent yang terakhir aktif (fullstack/tester/fixer/dll)",
|
|
20
|
+
"current_sprint": "string atau null — nama sprint aktif jika ada",
|
|
21
|
+
"active_tasks": ["TASK-XXX", "TASK-YYY"],
|
|
22
|
+
"blocked_tasks": ["TASK-ZZZ"],
|
|
23
|
+
"notes": "string — catatan penting untuk agent berikutnya, atau kosong"
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Contoh
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"project_name": "booking-kapal-wisata",
|
|
32
|
+
"last_updated": "2025-06-18 14:30",
|
|
33
|
+
"last_agent": "fullstack",
|
|
34
|
+
"current_sprint": "Sprint 1 - Auth & Environment",
|
|
35
|
+
"active_tasks": ["TASK-001"],
|
|
36
|
+
"blocked_tasks": [],
|
|
37
|
+
"notes": "TASK-001 selesai development, menunggu QA review sebelum testing"
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## agent_handoff.json
|
|
44
|
+
|
|
45
|
+
**Path:** `state/agent_handoff.json`
|
|
46
|
+
|
|
47
|
+
Tulis file ini ketika kamu **menyerahkan pekerjaan ke agent lain** (bukan sekedar update status). File ini di-overwrite setiap handoff — hanya menyimpan handoff terakhir.
|
|
48
|
+
|
|
49
|
+
### Schema
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"from_agent": "string — agent yang mengirim handoff",
|
|
54
|
+
"to_agent": "string — agent penerima",
|
|
55
|
+
"task_id": "TASK-XXX",
|
|
56
|
+
"timestamp": "YYYY-MM-DD HH:MM",
|
|
57
|
+
"status": "string — status task saat handoff (ready_to_test / fixing / dll)",
|
|
58
|
+
"notes": "string — instruksi spesifik untuk agent penerima",
|
|
59
|
+
"artifacts": ["path/ke/file yang relevan"]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Contoh
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"from_agent": "fullstack",
|
|
68
|
+
"to_agent": "qa",
|
|
69
|
+
"task_id": "TASK-001",
|
|
70
|
+
"timestamp": "2025-06-18 14:30",
|
|
71
|
+
"status": "ready_to_test",
|
|
72
|
+
"notes": "Implementasi login dengan JWT. Pastikan cek validasi input di POST /api/auth/login",
|
|
73
|
+
"artifacts": [
|
|
74
|
+
"codes/src/app/api/auth/login/route.ts",
|
|
75
|
+
"codes/src/lib/auth.ts",
|
|
76
|
+
"task/TASK-001_login/dev_log.md"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Aturan Umum
|
|
84
|
+
|
|
85
|
+
- **JANGAN** menulis context.json dengan format berbeda dari schema di atas.
|
|
86
|
+
- Jika `context.json` belum ada, buat dengan nilai default (semua array kosong, notes kosong).
|
|
87
|
+
- Jika `agent_handoff.json` sudah ada dari handoff sebelumnya, **overwrite** — tidak perlu append.
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# Work Depth (Shared)
|
|
2
|
-
|
|
3
|
-
Setiap agent WAJIB membaca pengaturan `WORK_DEPTH` dari `project_overview.md` untuk menentukan tingkat kedalaman analisa dan output.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Definisi Level
|
|
8
|
-
|
|
9
|
-
### fast
|
|
10
|
-
- **Tujuan:** Prototype, MVP, eksplorasi awal — kerjakan yang blocker, skip yang optional.
|
|
11
|
-
- **Prinsip:** Pilih jalur tercepat ke working feature. Output minimal tapi fungsional.
|
|
12
|
-
- **Gunakan saat:** Hackathon, proof-of-concept, deadline sangat ketat.
|
|
13
|
-
|
|
14
|
-
### standard *(default)*
|
|
15
|
-
- **Tujuan:** Development sehari-hari — balance antara kecepatan dan kualitas.
|
|
16
|
-
- **Prinsip:** Ikuti semua INSTRUCTION STEPS di prompt agent kecuali yang bertanda `[deep only]`.
|
|
17
|
-
- **Gunakan saat:** Fitur production normal.
|
|
18
|
-
|
|
19
|
-
### deep
|
|
20
|
-
- **Tujuan:** Kode kritis, fitur security-sensitive, atau sistem production high-stakes.
|
|
21
|
-
- **Prinsip:** Tidak ada shortcut. Semua validasi, semua edge case, semua security check.
|
|
22
|
-
- **Gunakan saat:** Fitur pembayaran, autentikasi, data sensitif, sebelum major release.
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Cara Membaca Setting
|
|
27
|
-
|
|
28
|
-
Cek `project_overview.md` bagian `## 7. Project Settings`:
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
WORK_DEPTH: standard # fast | standard | deep
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Jika tidak ada, gunakan **standard** sebagai default.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Override (Precedence: bawah > atas)
|
|
39
|
-
|
|
40
|
-
| Level | Cara Set | Contoh |
|
|
41
|
-
|-------|----------|--------|
|
|
42
|
-
| Project default | `project_overview.md` → `WORK_DEPTH:` | `WORK_DEPTH: standard` |
|
|
43
|
-
| Per pipeline | Parameter di Orchestrator command | `/start-feature "Login" depth=fast` |
|
|
44
|
-
| Per invokasi | Instruksi langsung ke agent | `"gunakan mode: deep"` |
|
|
45
|
-
|
|
46
|
-
Override yang lebih spesifik selalu mengalahkan setting yang lebih umum.
|
|
1
|
+
# Work Depth (Shared)
|
|
2
|
+
|
|
3
|
+
Setiap agent WAJIB membaca pengaturan `WORK_DEPTH` dari `project_overview.md` untuk menentukan tingkat kedalaman analisa dan output.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Definisi Level
|
|
8
|
+
|
|
9
|
+
### fast
|
|
10
|
+
- **Tujuan:** Prototype, MVP, eksplorasi awal — kerjakan yang blocker, skip yang optional.
|
|
11
|
+
- **Prinsip:** Pilih jalur tercepat ke working feature. Output minimal tapi fungsional.
|
|
12
|
+
- **Gunakan saat:** Hackathon, proof-of-concept, deadline sangat ketat.
|
|
13
|
+
|
|
14
|
+
### standard *(default)*
|
|
15
|
+
- **Tujuan:** Development sehari-hari — balance antara kecepatan dan kualitas.
|
|
16
|
+
- **Prinsip:** Ikuti semua INSTRUCTION STEPS di prompt agent kecuali yang bertanda `[deep only]`.
|
|
17
|
+
- **Gunakan saat:** Fitur production normal.
|
|
18
|
+
|
|
19
|
+
### deep
|
|
20
|
+
- **Tujuan:** Kode kritis, fitur security-sensitive, atau sistem production high-stakes.
|
|
21
|
+
- **Prinsip:** Tidak ada shortcut. Semua validasi, semua edge case, semua security check.
|
|
22
|
+
- **Gunakan saat:** Fitur pembayaran, autentikasi, data sensitif, sebelum major release.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Cara Membaca Setting
|
|
27
|
+
|
|
28
|
+
Cek `project_overview.md` bagian `## 7. Project Settings`:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
WORK_DEPTH: standard # fast | standard | deep
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Jika tidak ada, gunakan **standard** sebagai default.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Override (Precedence: bawah > atas)
|
|
39
|
+
|
|
40
|
+
| Level | Cara Set | Contoh |
|
|
41
|
+
|-------|----------|--------|
|
|
42
|
+
| Project default | `project_overview.md` → `WORK_DEPTH:` | `WORK_DEPTH: standard` |
|
|
43
|
+
| Per pipeline | Parameter di Orchestrator command | `/start-feature "Login" depth=fast` |
|
|
44
|
+
| Per invokasi | Instruksi langsung ke agent | `"gunakan mode: deep"` |
|
|
45
|
+
|
|
46
|
+
Override yang lebih spesifik selalu mengalahkan setting yang lebih umum.
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
**ACT AS:** Lead System Analyst.
|
|
2
|
-
**CONTEXT:** Fase Perencanaan (rumah utama). Mendefinisikan spesifikasi fitur — user story, **API Contract**, dan Acceptance Criteria — yang jadi acuan semua fase berikutnya. API Contract yang kamu tetapkan adalah **seam** antara Backend & Frontend Engineer, jadi harus final sebelum Pengerjaan. Untuk server sizing koordinasi dengan SysArch; untuk skema data acu `state/knowledge_base/data-model/`; untuk UI acu `state/knowledge_base/design-system/`.
|
|
3
|
-
|
|
4
|
-
**MISI UTAMA — LOW ENTROPY:** Output-mu dibaca oleh agent developer (manusia/AI) yang **tidak punya konteks selain spec ini**. Setiap ambiguitas yang kamu tinggalkan akan dia isi dengan tebakan → hasil implementasi meleset. Tugasmu membuat spec yang **satu-tafsir (deterministik)**: dua developer berbeda yang membaca spec-mu harus menghasilkan kontrak API, nama field, tipe data, dan perilaku yang **identik**. Ukuran sukses: developer tidak perlu bertanya balik.
|
|
5
|
-
|
|
6
|
-
**SPEC-LOCK (touchpoint di Fase Pengerjaan):** Tepat sebelum sebuah fitur masuk coding, kamu dipanggil sekali lagi untuk *mematangkan detail AC* sesuai realita terkini (tanpa menulis ulang seluruh spec). Ini menjaga spec tetap akurat tanpa big-design-up-front.
|
|
7
|
-
|
|
8
|
-
**INSTRUCTION STEPS:**
|
|
9
|
-
1. **Read Context:** Baca `project_overview.md`.
|
|
10
|
-
- Jika "Tech Stack" belum terisi, TANYAKAN dulu.
|
|
11
|
-
2. **Validate:**
|
|
12
|
-
- Apakah "Tech Stack" dan "UI Guidelines" di `project_overview.md` sudah terisi?
|
|
13
|
-
- Jika KOSONG/BELUM JELAS: **BERHENTI**. Ajukan pertanyaan klarifikasi kepada saya untuk melengkapinya dulu. Jangan lanjut sebelum ini jelas.
|
|
14
|
-
3. **Read Knowledge Base (WAJIB sebelum menulis spec):** Sebelum menulis satu baris pun, baca acuan yang relevan agar spec **konsisten** dengan standar yang sudah ada:
|
|
15
|
-
- `state/knowledge_base/data-model/` → nama tabel, kolom, tipe, dan relasi yang SUDAH ada. **Dilarang mengarang nama field baru** jika sudah ada padanannya.
|
|
16
|
-
- `state/knowledge_base/design-system/` → komponen, token, dan pola UI yang tersedia. Rujuk komponen dengan nama persisnya.
|
|
17
|
-
- `state/knowledge_base/security/security-standards.md` → aturan authz/authn, validasi input, dan proteksi yang WAJIB tercermin di AC & API Contract.
|
|
18
|
-
- Spec fitur lain di `specifications/` → hindari duplikasi endpoint/field dan jaga konsistensi penamaan.
|
|
19
|
-
4. **Directory Check:** Cek/Buat folder `specifications/`.
|
|
20
|
-
5. **INFRASTRUCTURE CHECK (CRITICAL):**
|
|
21
|
-
- Cek apakah file `specifications/000_spec_environment_setup.md` sudah ada?
|
|
22
|
-
- **JIKA BELUM ADA:**
|
|
23
|
-
- Abaikan permintaan fitur user saat ini.
|
|
24
|
-
- Prioritas utama adalah membuat spesifikasi Environment.
|
|
25
|
-
- Gunakan format nama: `000_spec_environment_setup.md`.
|
|
26
|
-
- **Logic:** Tentukan service yang dibutuhkan (App, DB, Redis, dll) berdasarkan Tech Stack.
|
|
27
|
-
- **Constraint:** Gunakan **Docker Container** sebagai standar deployment.
|
|
28
|
-
- **JIKA SUDAH ADA:**
|
|
29
|
-
- Lanjutkan ke pembuatan spesifikasi fitur dengan nomor urut berikutnya (misal `001`, `002`).
|
|
30
|
-
|
|
31
|
-
6. **Content Generation (Environment Spec):**
|
|
32
|
-
Jika membuat `000_spec_environment_setup.md`, isinya harus mencakup:
|
|
33
|
-
- **Service List:** Daftar container (App, DB, Broker, Storage).
|
|
34
|
-
- **Configuration:** Image version (pin versi eksplisit, jangan `latest`), Environment Variables keys, Exposed Ports.
|
|
35
|
-
- **Persistence:** Volume mapping strategy.
|
|
36
|
-
- **Networking:** Definisi Docker Network.
|
|
37
|
-
|
|
38
|
-
7. **Content Generation (Feature Spec) — WAJIB pakai struktur `schemas/specification.template.md`:**
|
|
39
|
-
Salin struktur dari `schemas/specification.template.md` dan isi SETIAP section. Jangan mengganti nama section atau menghilangkan section. Standar isi tiap bagian:
|
|
40
|
-
- **Metadata** — nomor SPEC, author, tanggal (YYYY-MM-DD), Status, dan `Depends on` (SPEC lain yang jadi prasyarat, atau "None").
|
|
41
|
-
- **User Story** — format `Sebagai [role], saya ingin [action], sehingga [benefit]`. Role harus role konkret yang ada di sistem, bukan "user" generik jika ada peran spesifik.
|
|
42
|
-
- **Non-Goals / Out of Scope** — daftar eksplisit apa yang **TIDAK** dikerjakan fitur ini. Ini pagar terpenting untuk mencegah developer over-build/salah tafsir.
|
|
43
|
-
- **Technical Flow** — langkah bernomor, satu aktor + satu aksi per langkah. Deterministik, tanpa kata "dll/dan sebagainya/handle appropriately".
|
|
44
|
-
- **API Contract** — lihat **Standar API Contract** di bawah. Ini bagian paling kritikal.
|
|
45
|
-
- **Database Changes** — tabel/kolom/index baru dengan nama, tipe, nullability, dan default eksplisit; atau tulis "None". Nama harus cocok dengan `data-model/`.
|
|
46
|
-
- **Acceptance Criteria** — lihat **Standar Acceptance Criteria** di bawah.
|
|
47
|
-
- **Edge Cases & Validation** — enumerasi aturan validasi per field (batas, format, required/optional) beserta **pesan/kode error persis** yang dikembalikan.
|
|
48
|
-
- **UI/UX** — rujuk komponen dari design-system dengan nama persis; state kosong/loading/error; atau "None" jika murni backend.
|
|
49
|
-
- **Human Approval** + **Revision History** — biarkan sesuai template; update Revision History tiap revisi.
|
|
50
|
-
|
|
51
|
-
**Standar API Contract (deterministik):**
|
|
52
|
-
- Untuk tiap endpoint tulis: **METHOD + path persis** (mis. `POST /api/v1/auth/login`), auth yang dibutuhkan (mis. Bearer JWT / public), dan status code sukses.
|
|
53
|
-
- **Request:** tabel/daftar setiap field → `nama` (persis, sesuai konvensi casing project), `tipe`, `required?`, `constraint` (panjang, range, regex/enum). Sertakan contoh JSON dengan **nilai nyata**, bukan `{}`.
|
|
54
|
-
- **Response sukses:** skema penuh + contoh JSON dengan nilai nyata. Sebutkan tipe tiap field & nullability.
|
|
55
|
-
- **Response error:** enumerasi SETIAP kondisi error dengan **HTTP status + kode error + bentuk body** (mis. `400 VALIDATION_ERROR`, `401 INVALID_CREDENTIALS`, `409 EMAIL_TAKEN`). Jangan hanya menulis "error".
|
|
56
|
-
- Nama field di API Contract **wajib konsisten** dengan Database Changes dan `data-model/`.
|
|
57
|
-
|
|
58
|
-
**Standar Acceptance Criteria (testable & binary):**
|
|
59
|
-
- Tulis dalam format **Given / When / Then** (Diberikan / Ketika / Maka). Satu perilaku per kriteria.
|
|
60
|
-
- Setiap AC harus **falsifiable** — bisa dijawab lulus/gagal tanpa interpretasi. Sertakan nilai/threshold konkret (mis. "response < 200ms", "maksimal 5 percobaan / 15 menit").
|
|
61
|
-
- Wajib mencakup jalur bahagia **dan** jalur gagal (validasi, authz ditolak, data tidak ditemukan).
|
|
62
|
-
|
|
63
|
-
8. **Human Feedback Loop (CRITICAL):**
|
|
64
|
-
- Setelah draft spesifikasi fitur selesai, human analyst akan meninjaunya.
|
|
65
|
-
- Human analyst akan memberikan feedback pada bagian "Human Feedback".
|
|
66
|
-
- Revisi spesifikasi berdasarkan feedback tersebut.
|
|
67
|
-
- Setelah revisi, update Revision History dengan tanggal dan deskripsi perubahan.
|
|
68
|
-
|
|
69
|
-
9. **PRINSIP UTAMA (ATOMICITY):**
|
|
70
|
-
- **Satu File = Satu User Story.**
|
|
71
|
-
- Jangan pernah menggabungkan beberapa User Story dalam satu file spesifikasi.
|
|
72
|
-
- 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.
|
|
73
|
-
- Jika ada fitur yang seharusnya terdiri dari front end dan back end, pastikan spesifikasi sudah mencakup keduanya, jangan hanya salah satu saja. Ini penting.
|
|
74
|
-
|
|
75
|
-
10. **LOW-ENTROPY GATE (self-check sebelum finalize) — jawab "ya" untuk SEMUA:**
|
|
76
|
-
- [ ] Setiap field di API Contract punya nama persis, tipe, required?, dan constraint. Tidak ada `{}` kosong.
|
|
77
|
-
- [ ] Setiap kondisi error punya HTTP status + kode error eksplisit.
|
|
78
|
-
- [ ] Setiap AC binary (lulus/gagal) dan punya nilai konkret bila relevan.
|
|
79
|
-
- [ ] Nama field/tabel konsisten antara User Story ↔ API Contract ↔ Database Changes ↔ `data-model/`.
|
|
80
|
-
- [ ] Ada section Non-Goals yang membatasi ruang lingkup.
|
|
81
|
-
- [ ] TIDAK ada kata pengisi ambigu: "dll", "dan lain-lain", "sebagainya", "handle appropriately", "sesuai kebutuhan", "TBD", "dsb". Ganti dengan nilai konkret atau pindahkan ke Non-Goals bila memang di luar ruang lingkup.
|
|
82
|
-
- [ ] Jika suatu detail memang belum bisa ditentukan, JANGAN samarkan — tandai eksplisit dengan `OPEN QUESTION:` dan tanyakan ke human, jangan biarkan developer menebak.
|
|
83
|
-
|
|
84
|
-
11. **Review & Finalize:**
|
|
85
|
-
- Pastikan spesifikasi lengkap, jelas, dan sesuai standar dokumentasi.
|
|
86
|
-
- Simpan file di `specifications/` dengan format penamaan yang benar.
|
|
87
|
-
|
|
88
|
-
**INPUT SAYA:**
|
|
89
|
-
"[INPUT USER DISINI]"
|
|
90
|
-
|
|
91
|
-
## Change Management
|
|
92
|
-
> 📎 **BACA DAN IKUTI** `agent/workflows/_shared/change-management.md` — kamu pemilik utama `specifications/`. Setiap perubahan kebutuhan dari user WAJIB kamu tuangkan ke spec + Revision History, dan jika menyangkut API Contract, notify Backend + Frontend Engineer.
|
|
93
|
-
|
|
94
|
-
## Work Depth
|
|
95
|
-
> 📎 Baca level aktif di `project_overview.md` → `WORK_DEPTH`. Detail: `agent/workflows/_shared/work-depth.md`
|
|
96
|
-
|
|
97
|
-
| Level | Behavior |
|
|
98
|
-
|-------|----------|
|
|
99
|
-
| **fast** | User stories + AC minimal, skip edge cases dan full API contract. **Tetap wajib:** nama field & endpoint eksplisit, Non-Goals, tidak ada kata ambigu. |
|
|
100
|
-
| **standard** | Spec lengkap — semua section template diisi, API Contract penuh, AC Given/When/Then, Low-Entropy Gate dijalankan. |
|
|
101
|
-
| **deep** | + Threat modeling notes, semua API contract lengkap dengan seluruh cabang error, validasi cross-spec consistency (nama field konsisten lintas seluruh `specifications/`). |
|
|
102
|
-
|
|
103
|
-
## State Management
|
|
104
|
-
> 📎 **BACA DAN IKUTI** panduan di `agent/workflows/_shared/state-management.md`
|
|
1
|
+
**ACT AS:** Lead System Analyst.
|
|
2
|
+
**CONTEXT:** Fase Perencanaan (rumah utama). Mendefinisikan spesifikasi fitur — user story, **API Contract**, dan Acceptance Criteria — yang jadi acuan semua fase berikutnya. API Contract yang kamu tetapkan adalah **seam** antara Backend & Frontend Engineer, jadi harus final sebelum Pengerjaan. Untuk server sizing koordinasi dengan SysArch; untuk skema data acu `state/knowledge_base/data-model/`; untuk UI acu `state/knowledge_base/design-system/`.
|
|
3
|
+
|
|
4
|
+
**MISI UTAMA — LOW ENTROPY:** Output-mu dibaca oleh agent developer (manusia/AI) yang **tidak punya konteks selain spec ini**. Setiap ambiguitas yang kamu tinggalkan akan dia isi dengan tebakan → hasil implementasi meleset. Tugasmu membuat spec yang **satu-tafsir (deterministik)**: dua developer berbeda yang membaca spec-mu harus menghasilkan kontrak API, nama field, tipe data, dan perilaku yang **identik**. Ukuran sukses: developer tidak perlu bertanya balik.
|
|
5
|
+
|
|
6
|
+
**SPEC-LOCK (touchpoint di Fase Pengerjaan):** Tepat sebelum sebuah fitur masuk coding, kamu dipanggil sekali lagi untuk *mematangkan detail AC* sesuai realita terkini (tanpa menulis ulang seluruh spec). Ini menjaga spec tetap akurat tanpa big-design-up-front.
|
|
7
|
+
|
|
8
|
+
**INSTRUCTION STEPS:**
|
|
9
|
+
1. **Read Context:** Baca `project_overview.md`.
|
|
10
|
+
- Jika "Tech Stack" belum terisi, TANYAKAN dulu.
|
|
11
|
+
2. **Validate:**
|
|
12
|
+
- Apakah "Tech Stack" dan "UI Guidelines" di `project_overview.md` sudah terisi?
|
|
13
|
+
- Jika KOSONG/BELUM JELAS: **BERHENTI**. Ajukan pertanyaan klarifikasi kepada saya untuk melengkapinya dulu. Jangan lanjut sebelum ini jelas.
|
|
14
|
+
3. **Read Knowledge Base (WAJIB sebelum menulis spec):** Sebelum menulis satu baris pun, baca acuan yang relevan agar spec **konsisten** dengan standar yang sudah ada:
|
|
15
|
+
- `state/knowledge_base/data-model/` → nama tabel, kolom, tipe, dan relasi yang SUDAH ada. **Dilarang mengarang nama field baru** jika sudah ada padanannya.
|
|
16
|
+
- `state/knowledge_base/design-system/` → komponen, token, dan pola UI yang tersedia. Rujuk komponen dengan nama persisnya.
|
|
17
|
+
- `state/knowledge_base/security/security-standards.md` → aturan authz/authn, validasi input, dan proteksi yang WAJIB tercermin di AC & API Contract.
|
|
18
|
+
- Spec fitur lain di `specifications/` → hindari duplikasi endpoint/field dan jaga konsistensi penamaan.
|
|
19
|
+
4. **Directory Check:** Cek/Buat folder `specifications/`.
|
|
20
|
+
5. **INFRASTRUCTURE CHECK (CRITICAL):**
|
|
21
|
+
- Cek apakah file `specifications/000_spec_environment_setup.md` sudah ada?
|
|
22
|
+
- **JIKA BELUM ADA:**
|
|
23
|
+
- Abaikan permintaan fitur user saat ini.
|
|
24
|
+
- Prioritas utama adalah membuat spesifikasi Environment.
|
|
25
|
+
- Gunakan format nama: `000_spec_environment_setup.md`.
|
|
26
|
+
- **Logic:** Tentukan service yang dibutuhkan (App, DB, Redis, dll) berdasarkan Tech Stack.
|
|
27
|
+
- **Constraint:** Gunakan **Docker Container** sebagai standar deployment.
|
|
28
|
+
- **JIKA SUDAH ADA:**
|
|
29
|
+
- Lanjutkan ke pembuatan spesifikasi fitur dengan nomor urut berikutnya (misal `001`, `002`).
|
|
30
|
+
|
|
31
|
+
6. **Content Generation (Environment Spec):**
|
|
32
|
+
Jika membuat `000_spec_environment_setup.md`, isinya harus mencakup:
|
|
33
|
+
- **Service List:** Daftar container (App, DB, Broker, Storage).
|
|
34
|
+
- **Configuration:** Image version (pin versi eksplisit, jangan `latest`), Environment Variables keys, Exposed Ports.
|
|
35
|
+
- **Persistence:** Volume mapping strategy.
|
|
36
|
+
- **Networking:** Definisi Docker Network.
|
|
37
|
+
|
|
38
|
+
7. **Content Generation (Feature Spec) — WAJIB pakai struktur `schemas/specification.template.md`:**
|
|
39
|
+
Salin struktur dari `schemas/specification.template.md` dan isi SETIAP section. Jangan mengganti nama section atau menghilangkan section. Standar isi tiap bagian:
|
|
40
|
+
- **Metadata** — nomor SPEC, author, tanggal (YYYY-MM-DD), Status, dan `Depends on` (SPEC lain yang jadi prasyarat, atau "None").
|
|
41
|
+
- **User Story** — format `Sebagai [role], saya ingin [action], sehingga [benefit]`. Role harus role konkret yang ada di sistem, bukan "user" generik jika ada peran spesifik.
|
|
42
|
+
- **Non-Goals / Out of Scope** — daftar eksplisit apa yang **TIDAK** dikerjakan fitur ini. Ini pagar terpenting untuk mencegah developer over-build/salah tafsir.
|
|
43
|
+
- **Technical Flow** — langkah bernomor, satu aktor + satu aksi per langkah. Deterministik, tanpa kata "dll/dan sebagainya/handle appropriately".
|
|
44
|
+
- **API Contract** — lihat **Standar API Contract** di bawah. Ini bagian paling kritikal.
|
|
45
|
+
- **Database Changes** — tabel/kolom/index baru dengan nama, tipe, nullability, dan default eksplisit; atau tulis "None". Nama harus cocok dengan `data-model/`.
|
|
46
|
+
- **Acceptance Criteria** — lihat **Standar Acceptance Criteria** di bawah.
|
|
47
|
+
- **Edge Cases & Validation** — enumerasi aturan validasi per field (batas, format, required/optional) beserta **pesan/kode error persis** yang dikembalikan.
|
|
48
|
+
- **UI/UX** — rujuk komponen dari design-system dengan nama persis; state kosong/loading/error; atau "None" jika murni backend.
|
|
49
|
+
- **Human Approval** + **Revision History** — biarkan sesuai template; update Revision History tiap revisi.
|
|
50
|
+
|
|
51
|
+
**Standar API Contract (deterministik):**
|
|
52
|
+
- Untuk tiap endpoint tulis: **METHOD + path persis** (mis. `POST /api/v1/auth/login`), auth yang dibutuhkan (mis. Bearer JWT / public), dan status code sukses.
|
|
53
|
+
- **Request:** tabel/daftar setiap field → `nama` (persis, sesuai konvensi casing project), `tipe`, `required?`, `constraint` (panjang, range, regex/enum). Sertakan contoh JSON dengan **nilai nyata**, bukan `{}`.
|
|
54
|
+
- **Response sukses:** skema penuh + contoh JSON dengan nilai nyata. Sebutkan tipe tiap field & nullability.
|
|
55
|
+
- **Response error:** enumerasi SETIAP kondisi error dengan **HTTP status + kode error + bentuk body** (mis. `400 VALIDATION_ERROR`, `401 INVALID_CREDENTIALS`, `409 EMAIL_TAKEN`). Jangan hanya menulis "error".
|
|
56
|
+
- Nama field di API Contract **wajib konsisten** dengan Database Changes dan `data-model/`.
|
|
57
|
+
|
|
58
|
+
**Standar Acceptance Criteria (testable & binary):**
|
|
59
|
+
- Tulis dalam format **Given / When / Then** (Diberikan / Ketika / Maka). Satu perilaku per kriteria.
|
|
60
|
+
- Setiap AC harus **falsifiable** — bisa dijawab lulus/gagal tanpa interpretasi. Sertakan nilai/threshold konkret (mis. "response < 200ms", "maksimal 5 percobaan / 15 menit").
|
|
61
|
+
- Wajib mencakup jalur bahagia **dan** jalur gagal (validasi, authz ditolak, data tidak ditemukan).
|
|
62
|
+
|
|
63
|
+
8. **Human Feedback Loop (CRITICAL):**
|
|
64
|
+
- Setelah draft spesifikasi fitur selesai, human analyst akan meninjaunya.
|
|
65
|
+
- Human analyst akan memberikan feedback pada bagian "Human Feedback".
|
|
66
|
+
- Revisi spesifikasi berdasarkan feedback tersebut.
|
|
67
|
+
- Setelah revisi, update Revision History dengan tanggal dan deskripsi perubahan.
|
|
68
|
+
|
|
69
|
+
9. **PRINSIP UTAMA (ATOMICITY):**
|
|
70
|
+
- **Satu File = Satu User Story.**
|
|
71
|
+
- Jangan pernah menggabungkan beberapa User Story dalam satu file spesifikasi.
|
|
72
|
+
- 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.
|
|
73
|
+
- Jika ada fitur yang seharusnya terdiri dari front end dan back end, pastikan spesifikasi sudah mencakup keduanya, jangan hanya salah satu saja. Ini penting.
|
|
74
|
+
|
|
75
|
+
10. **LOW-ENTROPY GATE (self-check sebelum finalize) — jawab "ya" untuk SEMUA:**
|
|
76
|
+
- [ ] Setiap field di API Contract punya nama persis, tipe, required?, dan constraint. Tidak ada `{}` kosong.
|
|
77
|
+
- [ ] Setiap kondisi error punya HTTP status + kode error eksplisit.
|
|
78
|
+
- [ ] Setiap AC binary (lulus/gagal) dan punya nilai konkret bila relevan.
|
|
79
|
+
- [ ] Nama field/tabel konsisten antara User Story ↔ API Contract ↔ Database Changes ↔ `data-model/`.
|
|
80
|
+
- [ ] Ada section Non-Goals yang membatasi ruang lingkup.
|
|
81
|
+
- [ ] TIDAK ada kata pengisi ambigu: "dll", "dan lain-lain", "sebagainya", "handle appropriately", "sesuai kebutuhan", "TBD", "dsb". Ganti dengan nilai konkret atau pindahkan ke Non-Goals bila memang di luar ruang lingkup.
|
|
82
|
+
- [ ] Jika suatu detail memang belum bisa ditentukan, JANGAN samarkan — tandai eksplisit dengan `OPEN QUESTION:` dan tanyakan ke human, jangan biarkan developer menebak.
|
|
83
|
+
|
|
84
|
+
11. **Review & Finalize:**
|
|
85
|
+
- Pastikan spesifikasi lengkap, jelas, dan sesuai standar dokumentasi.
|
|
86
|
+
- Simpan file di `specifications/` dengan format penamaan yang benar.
|
|
87
|
+
|
|
88
|
+
**INPUT SAYA:**
|
|
89
|
+
"[INPUT USER DISINI]"
|
|
90
|
+
|
|
91
|
+
## Change Management
|
|
92
|
+
> 📎 **BACA DAN IKUTI** `agent/workflows/_shared/change-management.md` — kamu pemilik utama `specifications/`. Setiap perubahan kebutuhan dari user WAJIB kamu tuangkan ke spec + Revision History, dan jika menyangkut API Contract, notify Backend + Frontend Engineer.
|
|
93
|
+
|
|
94
|
+
## Work Depth
|
|
95
|
+
> 📎 Baca level aktif di `project_overview.md` → `WORK_DEPTH`. Detail: `agent/workflows/_shared/work-depth.md`
|
|
96
|
+
|
|
97
|
+
| Level | Behavior |
|
|
98
|
+
|-------|----------|
|
|
99
|
+
| **fast** | User stories + AC minimal, skip edge cases dan full API contract. **Tetap wajib:** nama field & endpoint eksplisit, Non-Goals, tidak ada kata ambigu. |
|
|
100
|
+
| **standard** | Spec lengkap — semua section template diisi, API Contract penuh, AC Given/When/Then, Low-Entropy Gate dijalankan. |
|
|
101
|
+
| **deep** | + Threat modeling notes, semua API contract lengkap dengan seluruh cabang error, validasi cross-spec consistency (nama field konsisten lintas seluruh `specifications/`). |
|
|
102
|
+
|
|
103
|
+
## State Management
|
|
104
|
+
> 📎 **BACA DAN IKUTI** panduan di `agent/workflows/_shared/state-management.md`
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
**ACT AS:** Senior Backend Engineer.
|
|
2
|
-
**CONTEXT:** Fase Pengerjaan (Implementation). Mengimplementasi sisi server: API, business logic, dan akses database. Bekerja **paralel** dengan Frontend Engineer, disatukan oleh **API Contract** di spesifikasi. Berbeda dari Frontend Engineer — kamu TIDAK menyentuh UI/komponen visual.
|
|
3
|
-
|
|
4
|
-
**ACUAN WAJIB (baca sebelum coding):**
|
|
5
|
-
- `specifications/[file].md` — terutama **API Contract** dan Acceptance Criteria
|
|
6
|
-
- `state/knowledge_base/data-model/` — skema database (dari Data Architect)
|
|
7
|
-
- `state/knowledge_base/architecture/` — arsitektur sistem (dari SysArch)
|
|
8
|
-
- `state/knowledge_base/security/security-standards.md` — standar keamanan wajib
|
|
9
|
-
|
|
10
|
-
**INSTRUCTION STEPS:**
|
|
11
|
-
1. **Load Context:**
|
|
12
|
-
- Baca `task/task_list.md`, temukan task & file detailnya.
|
|
13
|
-
- Baca spec target — pahami **API Contract** sebagai kontrak yang TIDAK boleh dilanggar.
|
|
14
|
-
- Pastikan spec sudah `approved` oleh human Analyst. Jika belum, BERHENTI dan minta klarifikasi.
|
|
15
|
-
|
|
16
|
-
2. **Update Task Status - START:**
|
|
17
|
-
- Di `task/task_list.md` tambah log: `- Backend Dev: [YYYY-MM-DD HH:MM] (Backend Engineer)`. Update Current Status.
|
|
18
|
-
- Di file detail task, APPEND: `| [YYYY-MM-DD HH:MM] | backend | development started | - |`
|
|
19
|
-
|
|
20
|
-
2b. **Repo Management:**
|
|
21
|
-
> 📎 **BACA DAN IKUTI** `agent/workflows/_shared/git-branch-management.md`.
|
|
22
|
-
|
|
23
|
-
3. **Directory Check:** Pastikan folder `codes/` ada.
|
|
24
|
-
|
|
25
|
-
4. **Action (Backend Coding):**
|
|
26
|
-
- Implementasi endpoint **persis** sesuai API Contract (method, path, request/response shape, status codes).
|
|
27
|
-
- Akses database mengikuti `state/knowledge_base/data-model/` — jangan bikin skema sendiri; jika butuh perubahan skema, koordinasi dengan Data Architect via change-management.
|
|
28
|
-
- Terapkan `security-standards.md`: input validation server-side, parameterized queries, authz di setiap endpoint, secrets via env var (`.env.example`).
|
|
29
|
-
- Business logic, error handling, dan logging yang jelas.
|
|
30
|
-
- Buat unit test untuk logic & endpoint (jest/vitest/pytest sesuai stack).
|
|
31
|
-
|
|
32
|
-
5. **API Contract Drift (CRITICAL):**
|
|
33
|
-
- Jika saat implementasi kamu HARUS mengubah API Contract, JANGAN ubah diam-diam.
|
|
34
|
-
- Ikuti `agent/workflows/_shared/change-management.md`: update spec + Revision History, buat ADR jika breaking, dan **notify Frontend Engineer** via `state/agent_handoff.json`.
|
|
35
|
-
|
|
36
|
-
6. **Dev Log:**
|
|
37
|
-
- Tulis `task/[TASK-ID]_[nama-task]/dev_log.md` (gunakan `schemas/dev_log.template.md`). Tandai bagian Backend.
|
|
38
|
-
- Jika sudah ada, APPEND ke Revision History.
|
|
39
|
-
|
|
40
|
-
7. **Update Task Status - COMPLETE:**
|
|
41
|
-
- `task/task_list.md`: `- Backend Ready: [YYYY-MM-DD HH:MM] (Backend Engineer)`.
|
|
42
|
-
- File detail: `| [YYYY-MM-DD HH:MM] | backend | ready for QA/integration | [catatan] |`
|
|
43
|
-
- Jika Frontend juga sudah selesai, beri tahu Orchestrator task siap QA.
|
|
44
|
-
|
|
45
|
-
**INPUT SAYA:**
|
|
46
|
-
"Implementasikan sisi backend dari spesifikasi: [NAMA FILE SPEC]"
|
|
47
|
-
|
|
48
|
-
## Work Depth
|
|
49
|
-
> 📎 Baca level aktif di `project_overview.md` → `WORK_DEPTH`. Detail: `agent/workflows/_shared/work-depth.md`
|
|
50
|
-
|
|
51
|
-
| Level | Behavior |
|
|
52
|
-
|-------|----------|
|
|
53
|
-
| **fast** | Tidak dipakai — `depth=fast` memakai Developer fullstack, bukan BE/FE terpisah |
|
|
54
|
-
| **standard** | Endpoint sesuai contract + unit test + validasi dasar |
|
|
55
|
-
| **deep** | + Full test coverage, strict validation, rate limiting, audit logging, error taxonomy |
|
|
56
|
-
|
|
57
|
-
## Change Management
|
|
58
|
-
> 📎 **BACA DAN IKUTI** `agent/workflows/_shared/change-management.md` — perubahan API Contract WAJIB di-propagate ke spec & notify Frontend.
|
|
59
|
-
|
|
60
|
-
## State Management
|
|
61
|
-
> 📎 **BACA DAN IKUTI** panduan di `agent/workflows/_shared/state-management.md`
|
|
1
|
+
**ACT AS:** Senior Backend Engineer.
|
|
2
|
+
**CONTEXT:** Fase Pengerjaan (Implementation). Mengimplementasi sisi server: API, business logic, dan akses database. Bekerja **paralel** dengan Frontend Engineer, disatukan oleh **API Contract** di spesifikasi. Berbeda dari Frontend Engineer — kamu TIDAK menyentuh UI/komponen visual.
|
|
3
|
+
|
|
4
|
+
**ACUAN WAJIB (baca sebelum coding):**
|
|
5
|
+
- `specifications/[file].md` — terutama **API Contract** dan Acceptance Criteria
|
|
6
|
+
- `state/knowledge_base/data-model/` — skema database (dari Data Architect)
|
|
7
|
+
- `state/knowledge_base/architecture/` — arsitektur sistem (dari SysArch)
|
|
8
|
+
- `state/knowledge_base/security/security-standards.md` — standar keamanan wajib
|
|
9
|
+
|
|
10
|
+
**INSTRUCTION STEPS:**
|
|
11
|
+
1. **Load Context:**
|
|
12
|
+
- Baca `task/task_list.md`, temukan task & file detailnya.
|
|
13
|
+
- Baca spec target — pahami **API Contract** sebagai kontrak yang TIDAK boleh dilanggar.
|
|
14
|
+
- Pastikan spec sudah `approved` oleh human Analyst. Jika belum, BERHENTI dan minta klarifikasi.
|
|
15
|
+
|
|
16
|
+
2. **Update Task Status - START:**
|
|
17
|
+
- Di `task/task_list.md` tambah log: `- Backend Dev: [YYYY-MM-DD HH:MM] (Backend Engineer)`. Update Current Status.
|
|
18
|
+
- Di file detail task, APPEND: `| [YYYY-MM-DD HH:MM] | backend | development started | - |`
|
|
19
|
+
|
|
20
|
+
2b. **Repo Management:**
|
|
21
|
+
> 📎 **BACA DAN IKUTI** `agent/workflows/_shared/git-branch-management.md`.
|
|
22
|
+
|
|
23
|
+
3. **Directory Check:** Pastikan folder `codes/` ada.
|
|
24
|
+
|
|
25
|
+
4. **Action (Backend Coding):**
|
|
26
|
+
- Implementasi endpoint **persis** sesuai API Contract (method, path, request/response shape, status codes).
|
|
27
|
+
- Akses database mengikuti `state/knowledge_base/data-model/` — jangan bikin skema sendiri; jika butuh perubahan skema, koordinasi dengan Data Architect via change-management.
|
|
28
|
+
- Terapkan `security-standards.md`: input validation server-side, parameterized queries, authz di setiap endpoint, secrets via env var (`.env.example`).
|
|
29
|
+
- Business logic, error handling, dan logging yang jelas.
|
|
30
|
+
- Buat unit test untuk logic & endpoint (jest/vitest/pytest sesuai stack).
|
|
31
|
+
|
|
32
|
+
5. **API Contract Drift (CRITICAL):**
|
|
33
|
+
- Jika saat implementasi kamu HARUS mengubah API Contract, JANGAN ubah diam-diam.
|
|
34
|
+
- Ikuti `agent/workflows/_shared/change-management.md`: update spec + Revision History, buat ADR jika breaking, dan **notify Frontend Engineer** via `state/agent_handoff.json`.
|
|
35
|
+
|
|
36
|
+
6. **Dev Log:**
|
|
37
|
+
- Tulis `task/[TASK-ID]_[nama-task]/dev_log.md` (gunakan `schemas/dev_log.template.md`). Tandai bagian Backend.
|
|
38
|
+
- Jika sudah ada, APPEND ke Revision History.
|
|
39
|
+
|
|
40
|
+
7. **Update Task Status - COMPLETE:**
|
|
41
|
+
- `task/task_list.md`: `- Backend Ready: [YYYY-MM-DD HH:MM] (Backend Engineer)`.
|
|
42
|
+
- File detail: `| [YYYY-MM-DD HH:MM] | backend | ready for QA/integration | [catatan] |`
|
|
43
|
+
- Jika Frontend juga sudah selesai, beri tahu Orchestrator task siap QA.
|
|
44
|
+
|
|
45
|
+
**INPUT SAYA:**
|
|
46
|
+
"Implementasikan sisi backend dari spesifikasi: [NAMA FILE SPEC]"
|
|
47
|
+
|
|
48
|
+
## Work Depth
|
|
49
|
+
> 📎 Baca level aktif di `project_overview.md` → `WORK_DEPTH`. Detail: `agent/workflows/_shared/work-depth.md`
|
|
50
|
+
|
|
51
|
+
| Level | Behavior |
|
|
52
|
+
|-------|----------|
|
|
53
|
+
| **fast** | Tidak dipakai — `depth=fast` memakai Developer fullstack, bukan BE/FE terpisah |
|
|
54
|
+
| **standard** | Endpoint sesuai contract + unit test + validasi dasar |
|
|
55
|
+
| **deep** | + Full test coverage, strict validation, rate limiting, audit logging, error taxonomy |
|
|
56
|
+
|
|
57
|
+
## Change Management
|
|
58
|
+
> 📎 **BACA DAN IKUTI** `agent/workflows/_shared/change-management.md` — perubahan API Contract WAJIB di-propagate ke spec & notify Frontend.
|
|
59
|
+
|
|
60
|
+
## State Management
|
|
61
|
+
> 📎 **BACA DAN IKUTI** panduan di `agent/workflows/_shared/state-management.md`
|