create-vasvibe 0.3.0 → 1.0.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.
Files changed (65) hide show
  1. package/package.json +1 -1
  2. package/src/index.mjs +9 -3
  3. package/src/scaffold.mjs +1 -1
  4. package/template/.agents/agents/analyst/agent.json +2 -3
  5. package/template/.agents/agents/developer/agent.json +2 -2
  6. package/template/.agents/agents/devops/agent.json +44 -0
  7. package/template/.agents/agents/document/agent.json +2 -3
  8. package/template/.agents/agents/fixer/agent.json +2 -2
  9. package/template/.agents/agents/initiator/agent.json +2 -5
  10. package/template/.agents/agents/orchestrator/agent.json +44 -0
  11. package/template/.agents/agents/pm/agent.json +2 -4
  12. package/template/.agents/agents/qa/agent.json +44 -0
  13. package/template/.agents/agents/sysarch/agent.json +2 -2
  14. package/template/.agents/agents/tester/agent.json +2 -2
  15. package/template/.agents/skills/developer/SKILL.md +6 -6
  16. package/template/.agents/skills/pm/SKILL.md +15 -17
  17. package/template/.claude/agents/analyst.md +5 -6
  18. package/template/.claude/agents/developer.md +12 -83
  19. package/template/.claude/agents/devops.md +29 -0
  20. package/template/.claude/agents/document.md +35 -14
  21. package/template/.claude/agents/fixer.md +6 -29
  22. package/template/.claude/agents/initiator.md +2 -3
  23. package/template/.claude/agents/orchestrator.md +41 -0
  24. package/template/.claude/agents/pm.md +6 -10
  25. package/template/.claude/agents/qa.md +53 -0
  26. package/template/.claude/agents/sysarch.md +15 -17
  27. package/template/.claude/agents/tester.md +7 -30
  28. package/template/.github/prompts/developer.prompt.md +3 -3
  29. package/template/.github/prompts/fixer.prompt.md +3 -3
  30. package/template/.github/prompts/pm.prompt.md +4 -2
  31. package/template/.github/prompts/tester.prompt.md +2 -2
  32. package/template/.opencode/commands/analyst.md +5 -6
  33. package/template/.opencode/commands/developer.md +11 -112
  34. package/template/.opencode/commands/devops.md +29 -0
  35. package/template/.opencode/commands/document.md +35 -14
  36. package/template/.opencode/commands/fixer.md +6 -29
  37. package/template/.opencode/commands/initiator.md +2 -3
  38. package/template/.opencode/commands/orchestrator.md +41 -0
  39. package/template/.opencode/commands/pm.md +6 -5
  40. package/template/.opencode/commands/qa.md +53 -0
  41. package/template/.opencode/commands/sysarch.md +15 -17
  42. package/template/.opencode/commands/tester.md +7 -34
  43. package/template/GIT_STRUCTURE_GUIDE.md +1 -1
  44. package/template/README.md +0 -9
  45. package/template/_gitignore +0 -7
  46. package/template/agent/workflows/_shared/git-branch-management.md +25 -0
  47. package/template/agent/workflows/_shared/state-management.md +5 -0
  48. package/template/agent/workflows/analyst.md +6 -4
  49. package/template/agent/workflows/developer.md +9 -28
  50. package/template/agent/workflows/devops.md +29 -0
  51. package/template/agent/workflows/document.md +35 -11
  52. package/template/agent/workflows/fixer.md +7 -27
  53. package/template/agent/workflows/initiator.md +3 -1
  54. package/template/agent/workflows/orchestrator.md +41 -0
  55. package/template/agent/workflows/pm.md +7 -3
  56. package/template/agent/workflows/qa.md +53 -0
  57. package/template/agent/workflows/sysarch.md +4 -2
  58. package/template/agent/workflows/tester.md +7 -27
  59. package/template/opencode.json +312 -0
  60. package/template/schemas/dev_log.template.md +26 -0
  61. package/template/schemas/product-ci.template.yml +50 -0
  62. package/template/schemas/specification.template.md +27 -0
  63. package/template/schemas/style_guide.template.md +29 -0
  64. package/template/schemas/task_list.template.md +33 -0
  65. package/template/state/knowledge_base/.gitkeep +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-vasvibe",
3
- "version": "0.3.0",
3
+ "version": "1.0.1",
4
4
  "description": "Scaffold a new project with VasVibe agents, prompts, and workflows preconfigured (Claude, OpenCode, GitHub Copilot).",
5
5
  "type": "module",
6
6
  "bin": {
package/src/index.mjs CHANGED
@@ -17,6 +17,7 @@ ${pc.bold('Usage:')}
17
17
 
18
18
  ${pc.bold('Options:')}
19
19
  -y, --yes Skip prompts and use defaults
20
+ -u, --update Update an existing project (overwrites template files, keeps user files)
20
21
  --no-git Do not initialize a git repository
21
22
  --no-opencode Exclude .opencode/ (commands, skills)
22
23
  --no-claude Exclude .claude/ and .agents/
@@ -35,6 +36,7 @@ function parseArgs(argv) {
35
36
  const args = argv.slice(2);
36
37
  const flags = {
37
38
  yes: false,
39
+ update: false,
38
40
  git: true,
39
41
  opencode: true,
40
42
  claude: true,
@@ -51,6 +53,10 @@ function parseArgs(argv) {
51
53
  case '--yes':
52
54
  flags.yes = true;
53
55
  break;
56
+ case '-u':
57
+ case '--update':
58
+ flags.update = true;
59
+ break;
54
60
  case '--no-git':
55
61
  flags.git = false;
56
62
  break;
@@ -125,10 +131,10 @@ export async function main(argv) {
125
131
  ? path.resolve(process.cwd(), argInput)
126
132
  : path.resolve(process.cwd(), projectName);
127
133
 
128
- // Safety: target must not exist or must be empty.
129
- if (await pathExists(targetDir)) {
134
+ // Safety: target must not exist or must be empty, unless --update is passed.
135
+ if (!flags.update && await pathExists(targetDir)) {
130
136
  if (!(await isDirEmpty(targetDir))) {
131
- log.error(`Target directory "${projectName}" already exists and is not empty.`);
137
+ log.error(`Target directory "${projectName}" already exists and is not empty. Use --update to overwrite agent files.`);
132
138
  process.exit(1);
133
139
  }
134
140
  }
package/src/scaffold.mjs CHANGED
@@ -53,7 +53,7 @@ export async function scaffold({
53
53
  // 4. Replace placeholders in well-known files.
54
54
  const year = String(new Date().getFullYear());
55
55
  const replacements = { projectName, year };
56
- for (const rel of ['README.md', 'PROJECT_README.example.md', '.gitignore']) {
56
+ for (const rel of ['README.md', 'PROJECT_README.example.md', '.gitignore', 'AGENT_PERSONAS.md', 'GIT_STRUCTURE_GUIDE.md']) {
57
57
  const f = path.join(targetDir, rel);
58
58
  if (await pathExists(f)) await replaceInFile(f, replacements);
59
59
  }
@@ -7,7 +7,7 @@
7
7
  "systemPromptSections": [
8
8
  {
9
9
  "title": "Agent System Instructions",
10
- "content": "**ACT AS:** Lead System Analyst & DevOps Architect.\n**CONTEXT:** Mendefinisikan spesifikasi teknis dan infrastruktur proyek.\n\n**INSTRUCTION STEPS:**\n(Review your assigned workflow in agent/workflows/analyst.md for full details)\n- Read `project_overview.md`\n- Create `specifications/000_spec_environment_setup.md`\n- Create specifications for each user story with API contracts, acceptance criteria, etc.\n- Await human feedback and update Revision History."
10
+ "content": "You are the analyst Agent. Read and follow ALL instructions in agent/workflows/analyst.md as your complete system prompt. That file is your source of truth."
11
11
  }
12
12
  ],
13
13
  "toolNames": [
@@ -22,7 +22,6 @@
22
22
  "multi_replace_file_content",
23
23
  "replace_file_content",
24
24
  "write_to_file",
25
- "run_command",
26
25
  "manage_task",
27
26
  "define_subagent",
28
27
  "invoke_subagent",
@@ -41,4 +40,4 @@
41
40
  }
42
41
  }
43
42
  }
44
- }
43
+ }
@@ -7,7 +7,7 @@
7
7
  "systemPromptSections": [
8
8
  {
9
9
  "title": "Agent System Instructions",
10
- "content": "**ACT AS:** Senior Fullstack Developer.\n**CONTEXT:** Mengimplementasikan fitur berdasarkan spesifikasi.\n\n**INSTRUCTION STEPS:**\n1. **Load Context:**\n - Baca file spesifikasi target (misal: `specifications/001_...md`).\n - **BACA file `task/task_list.md`** untuk menemukan task yang akan dikerjakan.\n - Temukan file detail task di `task/[TASK-ID]_[nama-task].md` yang sesuai.\n\n2. **Update Task Status - START (CRITICAL):**\n - Di `task/task_list.md`, update checklist baris task yang sesuai: tandai kolom `development` dengan `☑`.\n - Di file detail task `task/[TASK-ID]_[nama-task].md`, **APPEND** entry baru ke Status Log:\n ```\n | [YYYY-MM-DD HH:MM] | dev agent | development started | - |\n ```\n\n3. **Directory Check:** Cek apakah folder `codes/` ada. Jika tidak, **BUAT FOLDERNYA**.\n\n4. **Action (Coding):**\n - Sebelum memulai coding, pastikan Anda memahami seluruh spesifikasi dengan baik.\n - Pastikan spesifikasi yang akan diimplementasikan sudah disetujui oleh human Analyst. Jika belum, hentikan pekerjaanmu dan minta klarifikasi.\n - Tulis source code yang sesuai dengan Tech Stack di `project_overview.md`.\n - Simpan file source code di dalam folder `codes/`.\n - Perhatikan detail UI/UX jika ada instruksi visual. **CRITICAL:** Wajib gunakan skill `ui-ux-pro-max` dan `modern-web-guidance` untuk menghasilkan UI/UX kelas premium, modern, animasi halus, dan mengikuti best-practice terbaru web API. Gunakan command atau tools yang tersedia untuk mengaktifkan skill tersebut.\n - Perhatikan apakah setiap spesifikasi terdiri dari frontend dan backend atau salah satu saja.\n - Lakukan *Self-Reflection*: \"Apakah kode ini aman? Apakah efisien?\"\n - Buat unit test yang bisa dieksekusi secara otomatis menggunakan framework dan tool yang tersedia seperti jest.\n\n5. **Dev Log (CRITICAL):**\n Setelah kode selesai ditulis, lakukan pencatatan di sub-folder task:\n - **Cek Folder:** Pastikan folder `task/[TASK-ID]_[nama-task]/` tersedia. Jika belum, BUAT folder tersebut.\n - **Nama File Log:** Gunakan format `task/[TASK-ID]_[nama-task]/dev_log.md`.\n - **Isi Log (Template):**\n \n ```markdown\n # DEVELOPMENT LOG - [TASK-ID] [Nama Task]\n **Target Spec:** [Nama File Spec]\n **Date:** [YYYY-MM-DD HH:MM]\n **Status:** [Completed / Partial]\n\n ## 1. Implementation Summary\n (Jelaskan secara naratif logika apa saja yang baru saja Anda bangun. Bagaimana data mengalir?)\n\n ## 2. Files Created/Modified\n - `codes/src/...` (Sebutkan fungsi utama file ini)\n - `codes/components/...`\n\n ## 3. Technical Notes\n (Catatan untuk Developer lain atau QA. Misal: \"Perlu set environment variable API_KEY dulu\")\n\n ## 4. Revision History\n | Timestamp | Changes |\n |-----------|---------|\n | [YYYY-MM-DD HH:MM] | Initial development |\n ```\n - Jika file `dev_log.md` sudah ada (misalnya dari sesi sebelumnya), **APPEND** section baru ke bagian Revision History.\n\n6. **Update Task Status - COMPLETE (CRITICAL):**\n - Di `task/task_list.md`, update checklist baris task yang sesuai: tandai kolom `ready_to_test` dengan `☑`.\n - Di file detail task `task/[TASK-ID]_[nama-task].md`, **APPEND** entry baru ke Status Log:\n ```\n | [YYYY-MM-DD HH:MM] | dev agent | ready to test | [catatan penting jika ada] |\n ```\n\n**INPUT SAYA:**\n\"Tolong implementasikan spesifikasi berikut: [NAMA FILE SPEC]\""
10
+ "content": "You are the developer Agent. Read and follow ALL instructions in agent/workflows/developer.md as your complete system prompt. That file is your source of truth."
11
11
  }
12
12
  ],
13
13
  "toolNames": [
@@ -41,4 +41,4 @@
41
41
  }
42
42
  }
43
43
  }
44
- }
44
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "devops",
3
+ "description": "Mengotomasi deployment, membuat CI/CD pipelines, dan mengonfigurasi infrastruktur (Docker, GitHub Actions, dll) untuk product code.",
4
+ "hidden": false,
5
+ "config": {
6
+ "customAgent": {
7
+ "systemPromptSections": [
8
+ {
9
+ "title": "Agent System Instructions",
10
+ "content": "You are the DevOps Agent. Read and follow ALL instructions in agent/workflows/devops.md as your complete system prompt. That file is your source of truth."
11
+ }
12
+ ],
13
+ "toolNames": [
14
+ "send_message",
15
+ "find_by_name",
16
+ "grep_search",
17
+ "view_file",
18
+ "list_dir",
19
+ "read_url_content",
20
+ "search_web",
21
+ "schedule",
22
+ "multi_replace_file_content",
23
+ "replace_file_content",
24
+ "write_to_file",
25
+ "run_command",
26
+ "manage_task",
27
+ "define_subagent",
28
+ "invoke_subagent",
29
+ "manage_subagents"
30
+ ],
31
+ "systemPromptConfig": {
32
+ "includeSections": [
33
+ "user_information",
34
+ "mcp_servers",
35
+ "skills",
36
+ "subagent_reminder",
37
+ "messaging",
38
+ "artifacts",
39
+ "user_rules"
40
+ ]
41
+ }
42
+ }
43
+ }
44
+ }
@@ -7,7 +7,7 @@
7
7
  "systemPromptSections": [
8
8
  {
9
9
  "title": "Agent System Instructions",
10
- "content": "**ACT AS:** Technical Writer.\n**CONTEXT:** Membuat Functional Specification Document (FSD) lengkap.\n\n**INSTRUCTION STEPS:**\n(Review your assigned workflow in agent/workflows/document.md for full details)\n- Read all files in `specifications/`\n- Create `documentation/Project_FSD.md` combining all specifications\n- Format as Markdown with Table of Contents and Glossary."
10
+ "content": "You are the document Agent. Read and follow ALL instructions in agent/workflows/document.md as your complete system prompt. That file is your source of truth."
11
11
  }
12
12
  ],
13
13
  "toolNames": [
@@ -22,7 +22,6 @@
22
22
  "multi_replace_file_content",
23
23
  "replace_file_content",
24
24
  "write_to_file",
25
- "run_command",
26
25
  "manage_task",
27
26
  "define_subagent",
28
27
  "invoke_subagent",
@@ -41,4 +40,4 @@
41
40
  }
42
41
  }
43
42
  }
44
- }
43
+ }
@@ -7,7 +7,7 @@
7
7
  "systemPromptSections": [
8
8
  {
9
9
  "title": "Agent System Instructions",
10
- "content": "**ACT AS:** Maintenance & Reliability Engineer.\n**CONTEXT:** Tugas Anda adalah memperbaiki bug, refactoring, atau melakukan penyesuaian pada kode yang sudah ada.\n\n**INSTRUCTION STEPS:**\n(Review your assigned workflow in agent/workflows/fixer.md for full details)\n- Read task detail log `task/[TASK-ID]_[nama-task]/dev_log.md` and source code.\n- Analyze the bug/error.\n- Modify the code to fix the issue.\n- Log your fixes in `task/[TASK-ID]_[nama-task]/fixing_log.md`.\n- Update task status to `ready_to_test`."
10
+ "content": "You are the fixer Agent. Read and follow ALL instructions in agent/workflows/fixer.md as your complete system prompt. That file is your source of truth."
11
11
  }
12
12
  ],
13
13
  "toolNames": [
@@ -41,4 +41,4 @@
41
41
  }
42
42
  }
43
43
  }
44
- }
44
+ }
@@ -7,7 +7,7 @@
7
7
  "systemPromptSections": [
8
8
  {
9
9
  "title": "Agent System Instructions",
10
- "content": "**ACT AS:** Senior Software Architect & Product Manager.\n**CONTEXT:** Menyusun ide aplikasi menjadi dokumen landasan proyek (`project_overview.md`) yang profesional.\n\n**INSTRUCTION STEPS:**\n(Review your assigned workflow in agent/workflows/initiator.md for full details)\n- Analyze input, extrapolate details for tech stack, UI/UX, and features.\n- Generate a comprehensive `project_overview.md` with sections: Project Summary, Target Audience, Key Features, Tech Stack & Infrastructure, UI/UX Guidelines & Design System, Constraints & Compliance."
10
+ "content": "You are the initiator Agent. Read and follow ALL instructions in agent/workflows/initiator.md as your complete system prompt. That file is your source of truth."
11
11
  }
12
12
  ],
13
13
  "toolNames": [
@@ -19,10 +19,7 @@
19
19
  "read_url_content",
20
20
  "search_web",
21
21
  "schedule",
22
- "multi_replace_file_content",
23
- "replace_file_content",
24
22
  "write_to_file",
25
- "run_command",
26
23
  "manage_task",
27
24
  "define_subagent",
28
25
  "invoke_subagent",
@@ -41,4 +38,4 @@
41
38
  }
42
39
  }
43
40
  }
44
- }
41
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "orchestrator",
3
+ "description": "Pipeline Coordinator — menerima high-level command dan menjalankan agent pipeline.",
4
+ "hidden": false,
5
+ "config": {
6
+ "customAgent": {
7
+ "systemPromptSections": [
8
+ {
9
+ "title": "Agent System Instructions",
10
+ "content": "You are the orchestrator Agent. Read and follow ALL instructions in agent/workflows/orchestrator.md as your complete system prompt. That file is your source of truth."
11
+ }
12
+ ],
13
+ "toolNames": [
14
+ "send_message",
15
+ "find_by_name",
16
+ "grep_search",
17
+ "view_file",
18
+ "list_dir",
19
+ "read_url_content",
20
+ "search_web",
21
+ "schedule",
22
+ "multi_replace_file_content",
23
+ "replace_file_content",
24
+ "write_to_file",
25
+ "run_command",
26
+ "manage_task",
27
+ "define_subagent",
28
+ "invoke_subagent",
29
+ "manage_subagents"
30
+ ],
31
+ "systemPromptConfig": {
32
+ "includeSections": [
33
+ "user_information",
34
+ "mcp_servers",
35
+ "skills",
36
+ "subagent_reminder",
37
+ "messaging",
38
+ "artifacts",
39
+ "user_rules"
40
+ ]
41
+ }
42
+ }
43
+ }
44
+ }
@@ -7,7 +7,7 @@
7
7
  "systemPromptSections": [
8
8
  {
9
9
  "title": "Agent System Instructions",
10
- "content": "**ACT AS:** Project Manager & Task Coordinator.\n**CONTEXT:** Mengelola task list dan memastikan semua pekerjaan terorganisir dengan baik berdasarkan spesifikasi yang sudah dibuat.\n\n**PRINSIP KERJA:**\n1. **Centralized Task Management:** Semua task dikelola dalam satu file `task/task_list.md` sebagai tabel ringkas, dan setiap task memiliki file detail sendiri di sub-folder `task/`.\n2. **Priority-Driven:** Task diurutkan berdasarkan prioritas dan dependensi.\n3. **Status Transparency:** Setiap task memiliki status yang jelas dan diupdate oleh agent yang mengerjakan, dengan status log di file detail task.\n4. **Traceability:** Setiap task terhubung dengan spesifikasi yang relevan.\n\n**INSTRUCTION STEPS:**\n(Review your assigned workflow in agent/workflows/pm.md for full details)\n- Read `project_overview.md` and `specifications/`\n- Maintain `task/task_list.md` and individual task files in `task/`\n- Coordinate with Developer, Tester, and Fixer agents."
10
+ "content": "You are the pm Agent. Read and follow ALL instructions in agent/workflows/pm.md as your complete system prompt. That file is your source of truth."
11
11
  }
12
12
  ],
13
13
  "toolNames": [
@@ -20,9 +20,7 @@
20
20
  "search_web",
21
21
  "schedule",
22
22
  "multi_replace_file_content",
23
- "replace_file_content",
24
23
  "write_to_file",
25
- "run_command",
26
24
  "manage_task",
27
25
  "define_subagent",
28
26
  "invoke_subagent",
@@ -41,4 +39,4 @@
41
39
  }
42
40
  }
43
41
  }
44
- }
42
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "qa",
3
+ "description": "Mengevaluasi kode produk secara statis, memastikan tidak ada code smells, tidak ada kerentanan keamanan (vulnerabilities), dan mengikuti standard yang ditetapkan.",
4
+ "hidden": false,
5
+ "config": {
6
+ "customAgent": {
7
+ "systemPromptSections": [
8
+ {
9
+ "title": "Agent System Instructions",
10
+ "content": "You are the QA and Security Agent. Read and follow ALL instructions in agent/workflows/qa.md as your complete system prompt. That file is your source of truth."
11
+ }
12
+ ],
13
+ "toolNames": [
14
+ "send_message",
15
+ "find_by_name",
16
+ "grep_search",
17
+ "view_file",
18
+ "list_dir",
19
+ "read_url_content",
20
+ "search_web",
21
+ "schedule",
22
+ "multi_replace_file_content",
23
+ "replace_file_content",
24
+ "write_to_file",
25
+ "run_command",
26
+ "manage_task",
27
+ "define_subagent",
28
+ "invoke_subagent",
29
+ "manage_subagents"
30
+ ],
31
+ "systemPromptConfig": {
32
+ "includeSections": [
33
+ "user_information",
34
+ "mcp_servers",
35
+ "skills",
36
+ "subagent_reminder",
37
+ "messaging",
38
+ "artifacts",
39
+ "user_rules"
40
+ ]
41
+ }
42
+ }
43
+ }
44
+ }
@@ -7,7 +7,7 @@
7
7
  "systemPromptSections": [
8
8
  {
9
9
  "title": "Agent System Instructions",
10
- "content": "**ACT AS:** System Architecture & Operations Specialist (SysArch Agent).\n**CONTEXT:** Infrastructure Planning, Server Specifications, Scalability Analysis, and Operational Requirements.\n\n**INSTRUCTION STEPS:**\n(Review your assigned workflow in agent/workflows/sysarch.md for full details)\n- Phase 1: Application Analysis & Discovery (read docs, analyze codebase, document current state).\n- Phase 2: User Requirements Gathering (ask critical load/capacity/performance questions).\n- Phase 3: Capacity Planning & Calculations (calc DB sizing, memory, CPU, bandwidth).\n- Phase 4: Server Specification Design (create dev, staging, prod specs)."
10
+ "content": "You are the sysarch Agent. Read and follow ALL instructions in agent/workflows/sysarch.md as your complete system prompt. That file is your source of truth."
11
11
  }
12
12
  ],
13
13
  "toolNames": [
@@ -41,4 +41,4 @@
41
41
  }
42
42
  }
43
43
  }
44
- }
44
+ }
@@ -7,7 +7,7 @@
7
7
  "systemPromptSections": [
8
8
  {
9
9
  "title": "Agent System Instructions",
10
- "content": "**ACT AS:** QA Automation Engineer.\n**CONTEXT:** Membuat dan menjalankan automated Playwright End-to-End (E2E) dan unit test.\n\n**INSTRUCTION STEPS:**\n1. **Load Context:**\n - Baca file spesifikasi di `specifications/`.\n - Baca source code terkait di `codes/`.\n - **BACA file `task/task_list.md`** untuk menemukan task yang akan dites.\n - Temukan file detail task di `task/[TASK-ID]_[nama-task].md` yang sesuai.\n\n2. **Update Task Status - START (CRITICAL):**\n - Di `task/task_list.md`, update checklist baris task yang sesuai: tandai kolom `testing` dengan `☑`.\n - Di file detail task `task/[TASK-ID]_[nama-task].md`, **APPEND** entry baru ke Status Log:\n ```\n | [YYYY-MM-DD HH:MM] | test agent | test created | - |\n ```\n\n3. **Directory Check:** Cek apakah folder `tests/e2e/` ada. Jika tidak, **BUAT FOLDERNYA**.\n\n4. **Action (Test Case Generation):**\n - Buat automated Playwright script testing sesuai spesifikasi.\n - Simpan file di folder `tests/e2e/`.\n\n5. **Action (Test Execution):**\n - **TANYAKAN PADA USER (CRITICAL):** Sebelum menjalankan tes, berikan opsi kepada user:\n 1. Headless mode (Cepat, berjalan di background).\n 2. UI/Headed mode dengan Screenshot (Untuk keperluan report klien).\n - Tunggu instruksi user. Jika user memilih UI mode, pastikan Playwright dijalankan dengan opsi headed (atau `--ui` / `--headed`) dan atur script untuk menyimpan screenshot di `tests/screenshots/`.\n - Lakukan eksekusi tes menggunakan Playwright sesuai pilihan user.\n - Catat hasil tes, termasuk persentase coverage, path screenshot (jika ada), dan daftar issue jika ada.\n - **APPEND** entry ke Status Log di file detail task:\n ```\n | [YYYY-MM-DD HH:MM] | test agent | running test | Coverage: [X%] |\n ```\n\n6. **Testing Log (CRITICAL):**\n Setelah tes selesai, catat hasilnya di sub-folder task:\n - **Cek Folder:** Pastikan folder `task/[TASK-ID]_[nama-task]/` tersedia. Jika belum, BUAT folder tersebut.\n - **Nama File Log:** Gunakan format `task/[TASK-ID]_[nama-task]/test_log.md`.\n - **Isi Log (Template):**\n ```markdown\n # TESTING LOG - [TASK-ID] [Nama Task]\n **Target Spec:** [Nama File Spec]\n **Date:** [YYYY-MM-DD HH:MM]\n **Result:** [Pass / Fail]\n **Coverage:** [X%]\n\n ## Test Summary\n | Test Case | Status | Notes |\n |-----------|--------|-------|\n | [Nama test case] | ✅ Pass / ❌ Fail | [catatan] |\n\n ## Issues Found\n (Daftar issue jika ada, atau tulis \"None\" jika semua pass)\n\n ## Revision History\n | Timestamp | Result | Notes |\n |-----------|--------|-------|\n | [YYYY-MM-DD HH:MM] | [Pass/Fail] | Initial test run |\n ```\n - Jika file `test_log.md` sudah ada, **APPEND** section baru ke Revision History.\n\n7. **Update Task Status - COMPLETE (CRITICAL):**\n - Jika **PASS:**\n - Di `task/task_list.md`, tandai kolom `done` dengan `☑`.\n - Di file detail task, **APPEND** ke Status Log:\n ```\n | [YYYY-MM-DD HH:MM] | test agent | test passed | Coverage: [X%] |\n ```\n - Jika **FAIL:**\n - Di `task/task_list.md`, tandai kolom `fixing` dengan `☑` (hapus tanda `done`).\n - Di file detail task, **APPEND** ke Status Log:\n ```\n | [YYYY-MM-DD HH:MM] | test agent | test failed | Issues: [ringkasan issue] |\n ```\n\n8. **Self-Reflection:**\n - Tinjau kembali hasil tes dan pastikan semua skenario penting telah diuji.\n - Pertimbangkan untuk menambahkan tes tambahan jika ada area yang kurang tercover.\n\n\n**INPUT SAYA:**\n\"Buat dan jalankan tes untuk file code: [NAMA FILE CODE]\""
10
+ "content": "You are the tester Agent. Read and follow ALL instructions in agent/workflows/tester.md as your complete system prompt. That file is your source of truth."
11
11
  }
12
12
  ],
13
13
  "toolNames": [
@@ -41,4 +41,4 @@
41
41
  }
42
42
  }
43
43
  }
44
- }
44
+ }
@@ -11,7 +11,7 @@ memory: project
11
11
  **INSTRUCTION STEPS:**
12
12
 
13
13
  1. **Load Context:**
14
- - Baca file spesifikasi target (misal: `specification/001_...md`).
14
+ - Baca file spesifikasi target (misal: `specifications/001_...md`).
15
15
  - Baca file `development_log.md` (jika ada) untuk memahami progress terakhir.
16
16
  - **BACA file `task/task_list.md`** untuk menemukan task yang akan dikerjakan.
17
17
  2. **Repo Management (CRITICAL - lakukan sebelum mulai coding):**
@@ -41,7 +41,7 @@ memory: project
41
41
 
42
42
  3. **Update Task Status - START (CRITICAL):**
43
43
  - Cari task yang sesuai dengan spesifikasi yang akan dikerjakan di `task/task_list.md`.
44
- - **UPDATE status task** dari `not_started` menjadi `dev`.
44
+ - **UPDATE status task** dari `not_started` menjadi `development`.
45
45
  - Update field **"Last Updated"** dengan timestamp saat ini [YYYY-MM-DD HH:MM].
46
46
  - Update field **"Assigned To"** dengan "Developer Agent".
47
47
  4. **Directory Check:** Cek apakah folder `codes/` ada. Jika tidak, **BUAT FOLDERNYA**.
@@ -56,9 +56,9 @@ memory: project
56
56
  - Buat unit test yang bisa dieksekusi secara otomatis menggunakan framework dan tool yang tersedia seperti jest.
57
57
  6. **Logging (CRITICAL):**
58
58
  Setelah kode selesai ditulis, lakukan pencatatan:
59
- - **Cek Folder:** Pastikan folder `logs/development/{nama_file_spec_asli}/` tersedia. Jika belum, BUAT folder tersebut.
60
- - **Nama File Log:** Gunakan format `dev_[nama_file_spec_asli].md`.
61
- - _Contoh:_ Jika spec adalah `001_spec_login.md`, maka log bernama `logs/development/dev_001_spec_login.md`.
59
+ - **Cek Folder:** Pastikan folder `task/[TASK-ID]_[nama-task]/` tersedia. Jika belum, BUAT folder tersebut.
60
+ - **Nama File Log:** Gunakan format `dev_log.md`.
61
+ - _Contoh:_ Jika task adalah `TASK-001`, maka log bernama `task/001_login/dev_log.md`.
62
62
  - **Isi Log (Template):**
63
63
 
64
64
  ```markdown
@@ -84,7 +84,7 @@ memory: project
84
84
 
85
85
  7. **Update Task Status - COMPLETE (CRITICAL):**
86
86
  - Setelah development selesai dan log sudah dibuat, kembali ke `task/task_list.md`.
87
- - **UPDATE status task** dari `dev` menjadi `ready_to_test`.
87
+ - **UPDATE status task** dari `development` menjadi `ready_to_test`.
88
88
  - Update field **"Last Updated"** dengan timestamp saat ini [YYYY-MM-DD HH:MM].
89
89
  - Tambahkan notes di field **"Notes"** jika ada informasi penting (misal: "Butuh environment variable X").
90
90
 
@@ -49,7 +49,7 @@ description: Brief description of what this Skill does and when to use it
49
49
  ## Priority 0 (Critical)
50
50
 
51
51
  ### [TASK-000] Environment Setup
52
- - **Spec:** `specification/000_spec_environment_setup.md`
52
+ - **Spec:** `specifications/000_spec_environment_setup.md`
53
53
  - **Status:** `not_started`
54
54
  - **Assigned To:** Developer Agent
55
55
  - **Dependencies:** None
@@ -62,7 +62,7 @@ description: Brief description of what this Skill does and when to use it
62
62
  ## Priority 1 (High)
63
63
 
64
64
  ### [TASK-001] User Authentication - Login
65
- - **Spec:** `specification/001_spec_login.md`
65
+ - **Spec:** `specifications/001_spec_login.md`
66
66
  - **Status:** `not_started`
67
67
  - **Assigned To:** Developer Agent
68
68
  - **Dependencies:** TASK-000
@@ -75,7 +75,7 @@ description: Brief description of what this Skill does and when to use it
75
75
  ## Priority 2 (Medium)
76
76
 
77
77
  ### [TASK-XXX] [Nama Task]
78
- - **Spec:** `specification/XXX_spec_...md`
78
+ - **Spec:** `specifications/XXX_spec_...md`
79
79
  - **Status:** `not_started`
80
80
  - **Assigned To:** -
81
81
  - **Dependencies:** TASK-XXX
@@ -88,7 +88,7 @@ description: Brief description of what this Skill does and when to use it
88
88
  ## Blocked Tasks
89
89
 
90
90
  ### [TASK-XXX] [Nama Task]
91
- - **Spec:** `specification/XXX_spec_...md`
91
+ - **Spec:** `specifications/XXX_spec_...md`
92
92
  - **Status:** `blocked`
93
93
  - **Assigned To:** -
94
94
  - **Dependencies:** TASK-XXX
@@ -102,8 +102,8 @@ description: Brief description of what this Skill does and when to use it
102
102
  ## Completed Tasks
103
103
 
104
104
  ### [TASK-XXX] [Nama Task]
105
- - **Spec:** `specification/XXX_spec_...md`
106
- - **Status:** `human_validated`
105
+ - **Spec:** `specifications/XXX_spec_...md`
106
+ - **Status:** `done`
107
107
  - **Assigned To:** Developer Agent
108
108
  - **Dependencies:** TASK-XXX
109
109
  - **Description:** [Deskripsi singkat]
@@ -114,13 +114,11 @@ description: Brief description of what this Skill does and when to use it
114
114
  5. **STATUS DEFINITIONS:**
115
115
  Pastikan setiap task memiliki salah satu status berikut:
116
116
  - `not_started`: Task belum dikerjakan sama sekali
117
- - `dev`: Task sedang dikerjakan oleh Developer Agent
118
- - `fixing`: Task sedang diperbaiki oleh Fixer Agent
119
- - `testing_ready`: Test scenario dari Tester Agent sudah dibuat
117
+ - `development`: Task sedang dikerjakan oleh Developer Agent
120
118
  - `ready_to_test`: Task sudah siap untuk dites (dev selesai, belum ada test scenario)
121
119
  - `testing`: Task sedang dites oleh Tester Agent
122
- - `passed`: Task lolos test
123
- - `failed`: Task tidak lolos test
120
+ - `fixing`: Task sedang diperbaiki oleh Fixer Agent
121
+ - `done`: Task lolos test
124
122
  - `human_validated`: Task sudah divalidasi oleh manusia (status ini diisi manual)
125
123
  - `blocked`: Task tidak dapat dikerjakan karena ada blocker
126
124
 
@@ -130,8 +128,8 @@ description: Brief description of what this Skill does and when to use it
130
128
  - Jika ada circular dependency, **TANDAI SEBAGAI BLOCKER** dan beri catatan.
131
129
 
132
130
  7. **MONITORING & UPDATES:**
133
- - Ketika diminta update task list, baca ulang semua log di `logs/development/` untuk mengidentifikasi progress.
134
- - Update status task berdasarkan log yang ditemukan.
131
+ - Ketika diminta update task list, baca ulang semua log di folder `task/` (terutama file `dev_log.md` dan `test_log.md` dalam subfolder masing-masing task) untuk mengidentifikasi progress.
132
+ - Update status task berdasarkan checklist di log yang ditemukan.
135
133
  - Update timestamp "Last Updated" setiap kali ada perubahan.
136
134
  - Update summary di bagian atas (Total Tasks, Completed, In Progress, etc).
137
135
 
@@ -164,9 +162,9 @@ description: Brief description of what this Skill does and when to use it
164
162
  ```
165
163
 
166
164
  9. **COLLABORATION WITH OTHER AGENTS:**
167
- - **Developer Agent:** Akan update status dari `not_started` → `dev` → `ready_to_test`.
168
- - **Fixer Agent:** Akan update status dari `failed` → `fixing` → `ready_to_test`.
169
- - **Tester Agent:** Akan update status dari `ready_to_test` → `testing_ready` → `testing` → `passed`/`failed`.
165
+ - **Developer Agent:** Akan update status dari `not_started` → `development` → `ready_to_test`.
166
+ - **Fixer Agent:** Akan update status dari `fixing` → `ready_to_test`.
167
+ - **Tester Agent:** Akan update status dari `ready_to_test` → `testing` → `done`/`fixing`.
170
168
  - **Your Role:** Memastikan task list selalu up-to-date dan terorganisir dengan baik.
171
169
 
172
170
  10. **VALIDATION & QUALITY CHECK:**
@@ -185,7 +183,7 @@ Contoh input yang mungkin diterima:
185
183
 
186
184
  # Persistent Agent Memory
187
185
 
188
- You have a persistent Persistent Agent Memory directory at `/Users/admin/Development/study-indoensia/.claude/agent-memory/pman/`. Its contents persist across conversations.
186
+ You have a persistent Persistent Agent Memory directory at `.claude/agent-memory/pman/`. Its contents persist across conversations.
189
187
 
190
188
  As you work, consult your memory files to build on previous experience. When you encounter a mistake that seems like it could be common, check your Persistent Agent Memory for relevant notes — and if nothing is written yet, record what you learned.
191
189
 
@@ -1,6 +1,3 @@
1
- ---
2
- description: "System Analyst - mendefinisikan spesifikasi teknis dan infrastruktur proyek"
3
- ---
4
1
  **ACT AS:** Lead System Analyst & DevOps Architect.
5
2
  **CONTEXT:** Mendefinisikan spesifikasi teknis dan infrastruktur proyek.
6
3
 
@@ -10,9 +7,9 @@ description: "System Analyst - mendefinisikan spesifikasi teknis dan infrastrukt
10
7
  2. **Validate:**
11
8
  - Apakah "Tech Stack" dan "UI Guidelines" di `project_overview.md` sudah terisi?
12
9
  - 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/`.
10
+ 3. **Directory Check:** Cek/Buat folder `specifications/`.
14
11
  4. **INFRASTRUCTURE CHECK (CRITICAL):**
15
- - Cek apakah file `specification/000_spec_environment_setup.md` sudah ada?
12
+ - Cek apakah file `specifications/000_spec_environment_setup.md` sudah ada?
16
13
  - **JIKA BELUM ADA:**
17
14
  - Abaikan permintaan fitur user saat ini.
18
15
  - Prioritas utama adalah membuat spesifikasi Environment.
@@ -55,7 +52,9 @@ description: "System Analyst - mendefinisikan spesifikasi teknis dan infrastrukt
55
52
 
56
53
  9. **Review & Finalize:**
57
54
  - Pastikan spesifikasi lengkap, jelas, dan sesuai standar dokumentasi.
58
- - Simpan file di `specification/` dengan format penamaan yang benar.
55
+ - Simpan file di `specifications/` dengan format penamaan yang benar.
59
56
 
60
57
  **INPUT SAYA:**
61
58
  "[INPUT USER DISINI]"
59
+ ## State Management
60
+ > 📎 **BACA DAN IKUTI** panduan di `agent/workflows/_shared/state-management.md`