@dedesfr/prompter 0.9.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +105 -77
  3. package/dist/cli/index.js +25 -1
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +35 -9
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/login.d.ts +4 -0
  9. package/dist/commands/login.d.ts.map +1 -0
  10. package/dist/commands/login.js +56 -0
  11. package/dist/commands/login.js.map +1 -0
  12. package/dist/commands/logout.d.ts +4 -0
  13. package/dist/commands/logout.d.ts.map +1 -0
  14. package/dist/commands/logout.js +14 -0
  15. package/dist/commands/logout.js.map +1 -0
  16. package/dist/commands/update.d.ts +0 -2
  17. package/dist/commands/update.d.ts.map +1 -1
  18. package/dist/commands/update.js +19 -48
  19. package/dist/commands/update.js.map +1 -1
  20. package/dist/commands/whoami.d.ts +4 -0
  21. package/dist/commands/whoami.d.ts.map +1 -0
  22. package/dist/commands/whoami.js +42 -0
  23. package/dist/commands/whoami.js.map +1 -0
  24. package/dist/core/auth-store.d.ts +10 -0
  25. package/dist/core/auth-store.d.ts.map +1 -0
  26. package/dist/core/auth-store.js +39 -0
  27. package/dist/core/auth-store.js.map +1 -0
  28. package/dist/core/config.d.ts +0 -7
  29. package/dist/core/config.d.ts.map +1 -1
  30. package/dist/core/config.js +0 -128
  31. package/dist/core/config.js.map +1 -1
  32. package/dist/core/registry.d.ts +18 -0
  33. package/dist/core/registry.d.ts.map +1 -0
  34. package/dist/core/registry.js +94 -0
  35. package/dist/core/registry.js.map +1 -0
  36. package/package.json +7 -1
  37. package/AGENTS.md +0 -123
  38. package/CLAUDE.md +0 -17
  39. package/build.js +0 -20
  40. package/convex-setup.md +0 -403
  41. package/dist/core/prompt-templates.d.ts +0 -23
  42. package/dist/core/prompt-templates.d.ts.map +0 -1
  43. package/dist/core/prompt-templates.js +0 -3485
  44. package/dist/core/prompt-templates.js.map +0 -1
  45. package/prompt/ai-humanizer.md +0 -45
  46. package/prompt/api-contract-generator.md +0 -234
  47. package/prompt/apply.md +0 -17
  48. package/prompt/archive.md +0 -21
  49. package/prompt/design-system.md +0 -210
  50. package/prompt/document-explainer.md +0 -149
  51. package/prompt/epic-generator.md +0 -198
  52. package/prompt/epic-single.md +0 -47
  53. package/prompt/erd-generator.md +0 -130
  54. package/prompt/fsd-generator.md +0 -157
  55. package/prompt/prd-agent-generator.md +0 -147
  56. package/prompt/prd-generator.md +0 -195
  57. package/prompt/product-brief.md +0 -289
  58. package/prompt/proposal.md +0 -22
  59. package/prompt/qa-test-scenario.md +0 -133
  60. package/prompt/skill-creator.md +0 -350
  61. package/prompt/story-generator.md +0 -278
  62. package/prompt/story-single.md +0 -70
  63. package/prompt/tdd-generator.md +0 -294
  64. package/prompt/tdd-lite-generator.md +0 -224
  65. package/prompt/wireframe-generator.md +0 -219
  66. package/skills/ai-context-generator/SKILL.md +0 -54
  67. package/skills/ai-context-generator/references/AGENTS.template.md +0 -83
  68. package/skills/ai-context-generator/references/CLAUDE.template.md +0 -39
  69. package/skills/ai-context-generator/references/behavioral-guidelines.md +0 -71
  70. package/skills/ai-context-generator/references/discovery-checklist.md +0 -40
  71. package/skills/ai-context-generator/references/examples/AGENTS.good.md +0 -103
  72. package/skills/ai-context-generator/references/extraction-checklist.md +0 -23
  73. package/skills/ai-context-generator/references/overlays/laravel.md +0 -44
  74. package/skills/ai-humanizer/SKILL.md +0 -50
  75. package/skills/api-contract-generator/SKILL.md +0 -243
  76. package/skills/apply/SKILL.md +0 -23
  77. package/skills/archive/SKILL.md +0 -27
  78. package/skills/cerebro/SKILL.md +0 -187
  79. package/skills/cerebro/references/agents.md +0 -213
  80. package/skills/code-review/SKILL.md +0 -373
  81. package/skills/code-review/assets/report-template-agent.md +0 -212
  82. package/skills/code-review/assets/report-template-compact.md +0 -81
  83. package/skills/code-review/assets/report-template-full.md +0 -264
  84. package/skills/code-review/assets/report-template-human.md +0 -168
  85. package/skills/code-review/references/universal-patterns.md +0 -495
  86. package/skills/design-md/README.md +0 -34
  87. package/skills/design-md/SKILL.md +0 -172
  88. package/skills/design-md/examples/DESIGN.md +0 -154
  89. package/skills/design-system/SKILL.md +0 -216
  90. package/skills/design-system-generator/SKILL.md +0 -324
  91. package/skills/design-system-generator/assets/design-system-template.md +0 -348
  92. package/skills/design-system-generator/references/extraction-patterns.md +0 -321
  93. package/skills/doc-builder/SKILL.md +0 -115
  94. package/skills/doc-builder/references/ui-patterns.md +0 -394
  95. package/skills/document-explainer/SKILL.md +0 -155
  96. package/skills/document-translator/SKILL.md +0 -58
  97. package/skills/enhance/SKILL.md +0 -47
  98. package/skills/enhance-prompt/README.md +0 -34
  99. package/skills/enhance-prompt/SKILL.md +0 -204
  100. package/skills/enhance-prompt/references/KEYWORDS.md +0 -114
  101. package/skills/epic-generator/SKILL.md +0 -204
  102. package/skills/epic-single/SKILL.md +0 -63
  103. package/skills/erd-generator/SKILL.md +0 -138
  104. package/skills/feature-planner/SKILL.md +0 -305
  105. package/skills/feature-planner/assets/implementation-plan-template.md +0 -85
  106. package/skills/frontend-design/LICENSE.txt +0 -177
  107. package/skills/frontend-design/SKILL.md +0 -42
  108. package/skills/fsd-generator/SKILL.md +0 -163
  109. package/skills/gamma-builder/SKILL.md +0 -134
  110. package/skills/laravel-code-review/SKILL.md +0 -383
  111. package/skills/laravel-code-review/assets/report-template-agent.md +0 -195
  112. package/skills/laravel-code-review/assets/report-template-compact.md +0 -79
  113. package/skills/laravel-code-review/assets/report-template-full.md +0 -253
  114. package/skills/laravel-code-review/assets/report-template-human.md +0 -159
  115. package/skills/laravel-code-review/references/laravel-patterns.md +0 -571
  116. package/skills/laravel-code-review/references/php84-features.md +0 -442
  117. package/skills/mcp-builder/LICENSE.txt +0 -202
  118. package/skills/mcp-builder/SKILL.md +0 -236
  119. package/skills/mcp-builder/reference/evaluation.md +0 -602
  120. package/skills/mcp-builder/reference/mcp_best_practices.md +0 -249
  121. package/skills/mcp-builder/reference/node_mcp_server.md +0 -970
  122. package/skills/mcp-builder/reference/python_mcp_server.md +0 -719
  123. package/skills/mcp-builder/scripts/connections.py +0 -151
  124. package/skills/mcp-builder/scripts/evaluation.py +0 -373
  125. package/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
  126. package/skills/mcp-builder/scripts/requirements.txt +0 -2
  127. package/skills/meeting-notes/SKILL.md +0 -159
  128. package/skills/meeting-notes/evals/evals.json +0 -23
  129. package/skills/prd-agent-generator/SKILL.md +0 -132
  130. package/skills/prd-generator/SKILL.md +0 -211
  131. package/skills/product-brief/SKILL.md +0 -141
  132. package/skills/project-orchestrator/SKILL.md +0 -487
  133. package/skills/project-orchestrator/assets/caddy-vps-setup.md +0 -180
  134. package/skills/project-orchestrator/assets/plan-summary-template.md +0 -159
  135. package/skills/prompter-specs/SKILL.md +0 -115
  136. package/skills/prompter-workflow/SKILL.md +0 -166
  137. package/skills/prompter-workflow/evals/evals.json +0 -89
  138. package/skills/proposal/SKILL.md +0 -28
  139. package/skills/qa-test-scenario/SKILL.md +0 -149
  140. package/skills/skill-creator/SKILL.md +0 -173
  141. package/skills/sph-generator/SKILL.md +0 -488
  142. package/skills/story-generator/SKILL.md +0 -285
  143. package/skills/story-single/SKILL.md +0 -86
  144. package/skills/tdd-generator/SKILL.md +0 -300
  145. package/skills/tdd-lite-generator/SKILL.md +0 -230
  146. package/skills/ui-ux-pro/SKILL.md +0 -199
  147. package/skills/ui-ux-pro/assets/design-spec-template.md +0 -173
  148. package/skills/ui-ux-pro/references/component-patterns.md +0 -255
  149. package/skills/ui-ux-pro/references/design-principles.md +0 -167
  150. package/skills/wireframe-generator/SKILL.md +0 -227
  151. package/src/cli/index.ts +0 -223
  152. package/src/commands/archive.ts +0 -302
  153. package/src/commands/change.ts +0 -292
  154. package/src/commands/config.ts +0 -233
  155. package/src/commands/guide.ts +0 -50
  156. package/src/commands/init.ts +0 -597
  157. package/src/commands/list.ts +0 -194
  158. package/src/commands/show.ts +0 -138
  159. package/src/commands/spec.ts +0 -251
  160. package/src/commands/update.ts +0 -129
  161. package/src/commands/upgrade.ts +0 -30
  162. package/src/commands/validate.ts +0 -326
  163. package/src/core/artifact-graph/graph.ts +0 -167
  164. package/src/core/artifact-graph/index.ts +0 -44
  165. package/src/core/artifact-graph/instruction-loader.ts +0 -302
  166. package/src/core/artifact-graph/resolver.ts +0 -226
  167. package/src/core/artifact-graph/schema.ts +0 -124
  168. package/src/core/artifact-graph/state.ts +0 -64
  169. package/src/core/artifact-graph/types.ts +0 -65
  170. package/src/core/completions/command-registry.ts +0 -382
  171. package/src/core/completions/completion-provider.ts +0 -128
  172. package/src/core/completions/generators/bash-generator.ts +0 -191
  173. package/src/core/completions/generators/fish-generator.ts +0 -188
  174. package/src/core/completions/generators/powershell-generator.ts +0 -223
  175. package/src/core/completions/generators/zsh-generator.ts +0 -281
  176. package/src/core/completions/templates/bash-templates.ts +0 -24
  177. package/src/core/completions/templates/fish-templates.ts +0 -40
  178. package/src/core/completions/templates/powershell-templates.ts +0 -25
  179. package/src/core/completions/templates/zsh-templates.ts +0 -36
  180. package/src/core/completions/types.ts +0 -90
  181. package/src/core/config-schema.ts +0 -230
  182. package/src/core/config.ts +0 -181
  183. package/src/core/configurators/slash/antigravity.ts +0 -10
  184. package/src/core/configurators/slash/base.ts +0 -109
  185. package/src/core/configurators/slash/claude.ts +0 -10
  186. package/src/core/configurators/slash/codex.ts +0 -10
  187. package/src/core/configurators/slash/droid.ts +0 -10
  188. package/src/core/configurators/slash/forge.ts +0 -10
  189. package/src/core/configurators/slash/github-copilot.ts +0 -10
  190. package/src/core/configurators/slash/index.ts +0 -10
  191. package/src/core/configurators/slash/kilocode.ts +0 -10
  192. package/src/core/configurators/slash/opencode.ts +0 -10
  193. package/src/core/configurators/slash/registry.ts +0 -51
  194. package/src/core/converters/json-converter.ts +0 -62
  195. package/src/core/global-config.ts +0 -136
  196. package/src/core/parsers/change-parser.ts +0 -234
  197. package/src/core/parsers/markdown-parser.ts +0 -237
  198. package/src/core/parsers/requirement-blocks.ts +0 -234
  199. package/src/core/prompt-templates.ts +0 -3504
  200. package/src/core/schemas/base.schema.ts +0 -20
  201. package/src/core/schemas/change.schema.ts +0 -42
  202. package/src/core/schemas/index.ts +0 -20
  203. package/src/core/schemas/spec.schema.ts +0 -17
  204. package/src/core/skill-discovery.ts +0 -68
  205. package/src/core/specs-apply.ts +0 -483
  206. package/src/core/styles/palette.ts +0 -8
  207. package/src/core/templates/agents-template.ts +0 -459
  208. package/src/core/templates/claude-template.ts +0 -2
  209. package/src/core/templates/index.ts +0 -3
  210. package/src/core/templates/project-template.ts +0 -32
  211. package/src/core/validation/constants.ts +0 -48
  212. package/src/core/validation/types.ts +0 -19
  213. package/src/core/validation/validator.ts +0 -449
  214. package/src/core/view.ts +0 -219
  215. package/src/index.ts +0 -1
  216. package/src/utils/change-metadata.ts +0 -171
  217. package/src/utils/change-utils.ts +0 -131
  218. package/src/utils/file-system.ts +0 -252
  219. package/src/utils/index.ts +0 -12
  220. package/src/utils/interactive.ts +0 -29
  221. package/src/utils/item-discovery.ts +0 -66
  222. package/src/utils/match.ts +0 -26
  223. package/src/utils/shell-detection.ts +0 -62
  224. package/src/utils/task-progress.ts +0 -43
  225. package/tsconfig.json +0 -28
@@ -1,488 +0,0 @@
1
- ---
2
- name: sph-generator
3
- description: Generate a Surat Penawaran Harga (SPH) / Price Quotation Letter as a structured Markdown file that converts cleanly to .docx (via Pandoc) or .pdf. Supports two output languages — Bahasa Indonesia and English — and two modes — goods (barang) and services (jasa, e.g. web development, interior design, consulting). Use this skill whenever the user asks to create, draft, or generate an SPH, surat penawaran, surat penawaran harga, quotation letter, price quote, price offer, business quotation, project proposal with pricing, or any formal price proposal document for goods or services. Trigger this skill even when the user does not explicitly say "SPH" — phrases like "buatkan penawaran untuk klien", "buat penawaran jasa pembuatan website", "draft a quote for the interior design project", "buat surat penawaran", "I need a price offer document", or "tolong buatkan dokumen penawaran harga" all qualify.
4
- ---
5
-
6
- # SPH Generator — Surat Penawaran Harga / Price Quotation Letter
7
-
8
- Generate a clean, business-ready **Surat Penawaran Harga (SPH)** as a single Markdown file. The output is intentionally formatted so it converts well to `.docx` or `.pdf` via Pandoc, Typora, or similar tools — no exotic syntax, no HTML soup, just portable Markdown.
9
-
10
- The skill supports two output languages:
11
- - **Bahasa Indonesia** (default for Indonesian context)
12
- - **English**
13
-
14
- …and two modes:
15
- - **Goods mode (barang)** — concise template for physical/product quotations (e.g. supply alat, hardware, ATK).
16
- - **Services mode (jasa)** — richer template for project-based services (web/app development, desain interior, branding, konsultan, event organizer, dll). Adds Lingkup Pekerjaan, Tahapan & Termin, Asumsi & Pengecualian, dan Revisi — bagian-bagian yang biasanya jadi sumber sengketa kalau tidak dieksplisitkan.
17
-
18
- ## When to use
19
-
20
- Trigger this skill when the user wants to produce a formal price quotation document, including phrasings like:
21
- - "buat SPH ...", "buatkan surat penawaran harga", "draft penawaran untuk ..."
22
- - "create a quotation", "draft a price offer", "I need a quote document"
23
- - Any request that involves sending a vendor's offered price to a prospective client in letter form
24
-
25
- If the user is just asking for a casual price estimate (no letter, no recipient, no terms), this skill is overkill — clarify whether they want a full SPH document or just a price breakdown.
26
-
27
- ## Workflow
28
-
29
- ### 1. Choose the language and mode
30
-
31
- **Language** — ask once **unless** obvious from context (request ditulis dalam Bahasa Indonesia, pihak-pihak lokal → ID).
32
-
33
- > "Mau dibuat dalam Bahasa Indonesia atau English?"
34
-
35
- **Mode (barang vs jasa)** — infer from the items first; only ask if genuinely ambiguous. Heuristic:
36
-
37
- - Kata kunci **jasa**: pembuatan, pengembangan, development, desain, design, konsultasi, consulting, perancangan, instalasi (kalau termasuk pengerjaan), audit, training, maintenance, retainer, project, proyek, event organizer.
38
- - Kata kunci **barang**: supply, pengadaan, unit, pcs, lusin, kg, hardware, alat, peralatan, ATK, mesin, furniture (jadi).
39
-
40
- Kalau campuran (mis. supply + instalasi), pakai **services mode** dan masukkan barangnya sebagai line item di dalam scope — services mode adalah superset.
41
-
42
- ### 2. Gather the required information
43
-
44
- Collect what you need to fill the template. Don't over-interrogate — ask for the missing pieces in one batch. Required fields:
45
-
46
- | Field | Indonesian label | English label |
47
- |---|---|---|
48
- | Letter number | Nomor Surat | Reference No. |
49
- | Date | Tanggal | Date |
50
- | Sender (your company) | Pengirim / Perusahaan | Sender / Company |
51
- | Recipient | Kepada Yth. | To |
52
- | Recipient address | Alamat | Address |
53
- | Subject | Perihal | Subject |
54
- | Item / service lines | Rincian Barang/Jasa | Items / Services |
55
- | Currency | Mata Uang (default IDR) | Currency (default IDR) |
56
- | Tax (PPN) | PPN (umumnya 11%) | VAT (commonly 11% in ID) |
57
- | Validity period | Masa Berlaku Penawaran | Quotation Validity |
58
- | Payment terms | Syarat Pembayaran | Payment Terms |
59
- | Delivery terms | Syarat Pengiriman | Delivery Terms |
60
- | Signatory name & title | Nama & Jabatan Penanda Tangan | Signatory Name & Title |
61
-
62
- **Tambahan untuk services mode:**
63
-
64
- | Field | Indonesian label | English label |
65
- |---|---|---|
66
- | Project background | Latar Belakang Proyek | Project Background |
67
- | Executive summary | Ringkasan Eksekutif | Executive Summary |
68
- | Product type, users, platform, tech stack | Tipe Produk, Pengguna, Platform, Teknologi | Product Type, Users, Platform, Tech |
69
- | Pain points / challenges | Tantangan / Masalah yang Diselesaikan | Pain Points / Challenges |
70
- | Solution overview | Solusi Sistem | Solution Overview |
71
- | Scope of work | Scope of Work | Scope of Work |
72
- | Project deliverables | Project Deliverables | Project Deliverables |
73
- | Payment terms (termin) | Termin Pembayaran | Payment Milestones |
74
- | Warranty | Garansi | Warranty |
75
-
76
- If the user supplies only some of these, fill the rest with sensible placeholders (e.g., `[Nama Klien]`, `[YYYY-MM-DD]`) so the document is still usable as a draft.
77
-
78
- ### 3. Build the cost table
79
-
80
- **Goods mode** — each row: `No. | Deskripsi | Qty | Satuan | Harga Satuan | Subtotal`. Compute subtotals, PPN, and grand total inline.
81
-
82
- **Services mode** — each row: `No. | Deskripsi Pekerjaan | Waktu | Biaya (IDR)`. This reflects how service work is scoped — by effort/duration, not unit price. Rules:
83
- - "Waktu" = duration, e.g. `10 Hari Kerja`, `2 Minggu`
84
- - "Biaya" = lump sum for that work package
85
- - Grand total row: `**TOTAL INVESTASI** | | **X Hari Kerja** | **Rp X**`
86
- - PPN / tax goes in the **Keterangan** below the table (not as a separate table row) — common practice in Indonesian service proposals. State whether price is inclusive or exclusive of tax.
87
- - Termin pembayaran also goes in Keterangan as a numbered list: DP %, mid %, final %
88
-
89
- Format currency cleanly:
90
- - IDR → `Rp 90.000.000` (titik sebagai pemisah ribuan, tanpa desimal)
91
- - USD/EUR → `$90,000.00` / `€90,000.00`
92
-
93
- Verify the total before writing. Also verify that payment termin percentages add up to 100%.
94
-
95
- ### 4. Write the Markdown file
96
-
97
- Save to a sensible filename:
98
- - ID: `SPH-[Nomor]-[NamaKlien].md` (e.g., `SPH-001-PT-Maju-Jaya.md`)
99
- - EN: `Quotation-[RefNo]-[ClientName].md`
100
-
101
- Use the appropriate template below. Keep it portable: standard headings, GFM tables, no raw HTML, no Mermaid, no fancy admonitions. This is what makes the file convert cleanly with `pandoc input.md -o output.docx` or `pandoc input.md -o output.pdf --pdf-engine=xelatex`.
102
-
103
- ### 5. Tell the user how to convert
104
-
105
- After writing the file, mention briefly that they can convert it with Pandoc:
106
-
107
- ```
108
- pandoc SPH-001-Klien.md -o SPH-001-Klien.docx
109
- pandoc SPH-001-Klien.md -o SPH-001-Klien.pdf --pdf-engine=xelatex
110
- ```
111
-
112
- Don't lecture — one short line is enough.
113
-
114
- ---
115
-
116
- ## Template — Bahasa Indonesia
117
-
118
- ```markdown
119
- # SURAT PENAWARAN HARGA
120
-
121
- **Nomor:** {{nomor_surat}}
122
- **Tanggal:** {{tanggal}}
123
- **Perihal:** {{perihal}}
124
-
125
- ---
126
-
127
- **Kepada Yth.**
128
- {{nama_penerima}}
129
- {{jabatan_penerima}}
130
- {{nama_perusahaan_penerima}}
131
- {{alamat_penerima}}
132
-
133
- ---
134
-
135
- Dengan hormat,
136
-
137
- Sehubungan dengan {{konteks_singkat}}, bersama ini kami **{{nama_perusahaan_pengirim}}** dengan senang hati menyampaikan penawaran harga untuk {{ringkasan_lingkup}} sebagai berikut:
138
-
139
- ## Rincian Barang/Jasa
140
-
141
- | No. | Deskripsi | Qty | Satuan | Harga Satuan | Subtotal |
142
- |----:|-----------|----:|:------:|-------------:|---------:|
143
- | 1 | {{deskripsi_1}} | {{qty_1}} | {{satuan_1}} | {{harga_1}} | {{subtotal_1}} |
144
- | 2 | {{deskripsi_2}} | {{qty_2}} | {{satuan_2}} | {{harga_2}} | {{subtotal_2}} |
145
-
146
- | | **Subtotal** | **{{subtotal_total}}** |
147
- |--|--:|--:|
148
- | | PPN (11%) | {{ppn}} |
149
- | | Diskon | {{diskon}} |
150
- | | **Total** | **{{total}}** |
151
-
152
- *Terbilang: {{total_terbilang}} rupiah.*
153
-
154
- ## Syarat dan Ketentuan
155
-
156
- 1. **Masa Berlaku Penawaran:** {{masa_berlaku}} sejak tanggal surat ini.
157
- 2. **Syarat Pembayaran:** {{syarat_pembayaran}}.
158
- 3. **Waktu Pengiriman/Pengerjaan:** {{waktu_pengerjaan}} setelah PO/DP diterima.
159
- 4. **Garansi:** {{garansi}}.
160
- 5. Harga sudah termasuk PPN (kecuali disebutkan lain).
161
- 6. Ketentuan lain dapat dirundingkan lebih lanjut.
162
-
163
- ## Penutup
164
-
165
- Demikian penawaran ini kami sampaikan. Besar harapan kami untuk dapat bekerja sama. Apabila Bapak/Ibu memerlukan informasi tambahan, jangan ragu untuk menghubungi kami.
166
-
167
- Atas perhatian dan kerja samanya, kami ucapkan terima kasih.
168
-
169
- Hormat kami,
170
- **{{nama_perusahaan_pengirim}}**
171
-
172
- <br><br><br>
173
-
174
- **{{nama_penanda_tangan}}**
175
- {{jabatan_penanda_tangan}}
176
- {{kontak_penanda_tangan}}
177
- ```
178
-
179
- ---
180
-
181
- ## Template — English
182
-
183
- ```markdown
184
- # PRICE QUOTATION
185
-
186
- **Reference No.:** {{ref_no}}
187
- **Date:** {{date}}
188
- **Subject:** {{subject}}
189
-
190
- ---
191
-
192
- **To:**
193
- {{recipient_name}}
194
- {{recipient_title}}
195
- {{recipient_company}}
196
- {{recipient_address}}
197
-
198
- ---
199
-
200
- Dear {{recipient_salutation}},
201
-
202
- Following {{brief_context}}, **{{sender_company}}** is pleased to submit the following price quotation for {{scope_summary}}:
203
-
204
- ## Items / Services
205
-
206
- | No. | Description | Qty | Unit | Unit Price | Subtotal |
207
- |----:|-------------|----:|:----:|-----------:|---------:|
208
- | 1 | {{description_1}} | {{qty_1}} | {{unit_1}} | {{price_1}} | {{subtotal_1}} |
209
- | 2 | {{description_2}} | {{qty_2}} | {{unit_2}} | {{price_2}} | {{subtotal_2}} |
210
-
211
- | | **Subtotal** | **{{subtotal_total}}** |
212
- |--|--:|--:|
213
- | | Tax / VAT ({{tax_rate}}%) | {{tax}} |
214
- | | Discount | {{discount}} |
215
- | | **Total** | **{{total}}** |
216
-
217
- ## Terms and Conditions
218
-
219
- 1. **Quotation Validity:** {{validity}} from the date of this letter.
220
- 2. **Payment Terms:** {{payment_terms}}.
221
- 3. **Delivery / Lead Time:** {{lead_time}} after PO / down payment is received.
222
- 4. **Warranty:** {{warranty}}.
223
- 5. Prices are inclusive of applicable taxes unless stated otherwise.
224
- 6. Other terms are negotiable upon request.
225
-
226
- ## Closing
227
-
228
- We hope this quotation meets your requirements and look forward to the opportunity to work with you. Please feel free to reach out if you need further clarification.
229
-
230
- Thank you for your kind attention.
231
-
232
- Sincerely,
233
- **{{sender_company}}**
234
-
235
- <br><br><br>
236
-
237
- **{{signatory_name}}**
238
- {{signatory_title}}
239
- {{signatory_contact}}
240
- ```
241
-
242
- ---
243
-
244
- ## Template — Bahasa Indonesia (Services / Jasa)
245
-
246
- Use this for jasa pembuatan website/aplikasi, desain interior, branding, konsultasi, event organizer, dll. Struktur ini mengikuti format proposal penawaran jasa yang umum digunakan di Indonesia — lengkap dengan latar belakang, executive summary, pain points, solusi, scope, deliverables, dan tabel biaya berbasis waktu pengerjaan.
247
-
248
- Sections yang bersifat opsional (ditandai `[opsional]`) boleh dihilangkan kalau konteks proyek tidak relevan — misalnya, "Technical Architecture" tidak perlu ada untuk proyek desain interior.
249
-
250
- ```markdown
251
- **Proposal Penawaran Harga Jasa {{nama_perusahaan_pengirim}}**
252
-
253
- **{{nama_proyek}}**
254
-
255
- No: {{nomor_surat}} &nbsp;&nbsp;&nbsp; **{{kota_pengirim}}, {{tanggal}}**
256
-
257
- **Kepada Yth.**
258
- {{nama_divisi_penerima}}
259
- **{{nama_perusahaan_penerima}}**
260
-
261
- ---
262
-
263
- **{{nama_proyek}}**
264
-
265
- **Latar Belakang Proyek**
266
-
267
- Dengan hormat,
268
-
269
- {{paragraf_latar_belakang_proyek}}
270
-
271
- **Ringkasan Eksekutif & Sekilas Pandang**
272
-
273
- {{paragraf_ringkasan_eksekutif}}
274
-
275
- - **Tipe Produk:** {{tipe_produk}}
276
- - **Pengguna:** {{segmen_pengguna}}
277
- - **Platform:** {{platform}}
278
- - **Teknologi:** {{teknologi_utama}}
279
-
280
- **Tantangan yang Diselesaikan**
281
-
282
- - {{tantangan_1}}
283
- - {{tantangan_2}}
284
- - {{tantangan_3}}
285
-
286
- **Solusi Sistem Kami**
287
-
288
- {{paragraf_solusi}}
289
-
290
- **Ruang Lingkup Pekerjaan**
291
-
292
- 1. **{{modul_1_nama}}**
293
- - {{modul_1_fitur_1}}
294
- - {{modul_1_fitur_2}}
295
- 2. **{{modul_2_nama}}**
296
- - {{modul_2_fitur_1}}
297
- - {{modul_2_fitur_2}}
298
- 3. **{{modul_3_nama}}**
299
- - {{modul_3_fitur_1}}
300
- - {{modul_3_fitur_2}}
301
-
302
- **Arsitektur Teknis** [opsional — hapus untuk proyek non-teknis]
303
-
304
- {{paragraf_arsitektur_teknis}}
305
-
306
- **Deliverable Proyek**
307
-
308
- - {{deliverable_1}}
309
- - {{deliverable_2}}
310
- - {{deliverable_3}}
311
-
312
- **Struktur Biaya Proyek**
313
-
314
- Berikut adalah estimasi investasi untuk pengembangan dan implementasi **{{nama_proyek}}**:
315
-
316
- | **No** | **Deskripsi Pekerjaan** | **Waktu** | **Biaya (IDR)** |
317
- |-------:|-------------------------|:---------:|----------------:|
318
- | 1 | **{{paket_1_nama}}** *{{paket_1_deskripsi_singkat}}* | {{paket_1_waktu}} | {{paket_1_biaya}} |
319
- | 2 | **{{paket_2_nama}}** *{{paket_2_deskripsi_singkat}}* | {{paket_2_waktu}} | {{paket_2_biaya}} |
320
- | 3 | **{{paket_3_nama}}** *{{paket_3_deskripsi_singkat}}* | {{paket_3_waktu}} | {{paket_3_biaya}} |
321
- | **TOTAL INVESTASI** | | **{{total_waktu}}** | **{{total_biaya}}** |
322
-
323
- Keterangan:
324
-
325
- 1. Biaya yang diajukan {{status_pajak}} *(contoh: "tidak termasuk Pajak (PPN 11%)" atau "sudah termasuk PPN 11%")*
326
- 2. Termin pembayaran:
327
- 1. Termin ke-1: {{termin_1_persen}}% sebagai DP
328
- 2. Termin ke-2: {{termin_2_persen}}% {{termin_2_kondisi}}
329
- 3. Termin ke-3: {{termin_3_persen}}% {{termin_3_kondisi}}
330
-
331
- **Garansi**
332
-
333
- {{paragraf_intro_garansi_singkat}}
334
-
335
- 1. {{ketentuan_garansi_1}}
336
- 2. {{ketentuan_garansi_2}}
337
- 3. {{ketentuan_garansi_3}}
338
- 4. Perubahan dan/atau penambahan di luar lingkup yang tertera akan didiskusikan biaya dan waktunya secara terpisah.
339
-
340
- **Penutup**
341
-
342
- {{paragraf_penutup}}
343
-
344
- Demikian surat penawaran ini kami sampaikan. Kami sangat menantikan kesempatan untuk berdiskusi lebih lanjut.
345
-
346
- Hormat Kami,
347
-
348
- <br><br><br>
349
-
350
- **{{nama_penanda_tangan}}**
351
- [{{jabatan_penanda_tangan}}]
352
- ```
353
-
354
- ---
355
-
356
- ## Template — English (Services)
357
-
358
- Same structure as the Indonesian services template, adapted for English-language proposals.
359
-
360
- ```markdown
361
- **Service Proposal — {{sender_company}}**
362
-
363
- **{{project_name}}**
364
-
365
- Ref: {{ref_no}} &nbsp;&nbsp;&nbsp; **{{sender_city}}, {{date}}**
366
-
367
- **To:**
368
- {{recipient_division}}
369
- **{{recipient_company}}**
370
-
371
- ---
372
-
373
- **{{project_name}}**
374
-
375
- **Project Background**
376
-
377
- Dear Sir/Madam,
378
-
379
- {{project_background_paragraph}}
380
-
381
- **Executive Summary**
382
-
383
- {{executive_summary_paragraph}}
384
-
385
- - **Product Type:** {{product_type}}
386
- - **Users:** {{user_segments}}
387
- - **Platform:** {{platform}}
388
- - **Technology:** {{key_technologies}}
389
-
390
- **Challenges We Address**
391
-
392
- - {{challenge_1}}
393
- - {{challenge_2}}
394
- - {{challenge_3}}
395
-
396
- **Our Solution**
397
-
398
- {{solution_overview_paragraph}}
399
-
400
- **Scope of Work**
401
-
402
- 1. **{{module_1_name}}**
403
- - {{module_1_feature_1}}
404
- - {{module_1_feature_2}}
405
- 2. **{{module_2_name}}**
406
- - {{module_2_feature_1}}
407
- - {{module_2_feature_2}}
408
- 3. **{{module_3_name}}**
409
- - {{module_3_feature_1}}
410
- - {{module_3_feature_2}}
411
-
412
- **Technical Architecture** [optional — remove for non-technical projects]
413
-
414
- {{technical_architecture_paragraph}}
415
-
416
- **Project Deliverables**
417
-
418
- - {{deliverable_1}}
419
- - {{deliverable_2}}
420
- - {{deliverable_3}}
421
-
422
- **Project Cost Structure**
423
-
424
- The following is the estimated investment for the development and implementation of **{{project_name}}**:
425
-
426
- | **No** | **Work Package** | **Duration** | **Cost (IDR)** |
427
- |-------:|------------------|:------------:|---------------:|
428
- | 1 | **{{package_1_name}}** *{{package_1_short_desc}}* | {{package_1_duration}} | {{package_1_cost}} |
429
- | 2 | **{{package_2_name}}** *{{package_2_short_desc}}* | {{package_2_duration}} | {{package_2_cost}} |
430
- | 3 | **{{package_3_name}}** *{{package_3_short_desc}}* | {{package_3_duration}} | {{package_3_cost}} |
431
- | **TOTAL INVESTMENT** | | **{{total_duration}}** | **{{total_cost}}** |
432
-
433
- Notes:
434
-
435
- 1. Quoted prices {{tax_status}} *(e.g. "exclude VAT (11%)" or "include VAT (11%)")*
436
- 2. Payment milestones:
437
- 1. Milestone 1: {{milestone_1_pct}}% as down payment
438
- 2. Milestone 2: {{milestone_2_pct}}% {{milestone_2_condition}}
439
- 3. Milestone 3: {{milestone_3_pct}}% {{milestone_3_condition}}
440
-
441
- **Warranty**
442
-
443
- {{warranty_intro_sentence}}
444
-
445
- 1. {{warranty_term_1}}
446
- 2. {{warranty_term_2}}
447
- 3. {{warranty_term_3}}
448
- 4. Any changes or additions outside the defined scope will be discussed and agreed upon separately in terms of cost and timeline.
449
-
450
- **Closing Remarks**
451
-
452
- {{closing_paragraph}}
453
-
454
- We look forward to the opportunity to discuss this proposal further.
455
-
456
- Sincerely,
457
-
458
- <br><br><br>
459
-
460
- **{{signatory_name}}**
461
- [{{signatory_title}}]
462
- ```
463
-
464
- ---
465
-
466
- ## Notes on Pandoc-friendly Markdown
467
-
468
- A few small choices in the templates above keep conversion smooth:
469
-
470
- - **No raw HTML except `<br>`** — most converters handle line breaks but choke on arbitrary tags. Three `<br>` for signature space is the safest portable trick.
471
- - **GFM tables only** — no merged cells, no colspan tricks. If you need more complex layouts in `.docx`, post-process there.
472
- - **No emoji anywhere** — this is a formal business document. No emoji in headings, bullets, or body text. Use bold labels instead of icons.
473
- - **Use `**bold**` and `*italic*`** — avoid `__` and `_` underscores around words containing numbers/IDs (Pandoc occasionally treats them as subscripts in some modes).
474
- - **Currency formatting is plain text**, not a code block — code blocks survive conversion but render in monospace, which looks wrong in a formal letter.
475
-
476
- If the user later asks for a fancier visual layout, that's a `.docx` template / Typora theme problem — not a Markdown problem.
477
-
478
- ## Common pitfalls
479
-
480
- - **Don't invent line items.** If the user hasn't given specifics, leave bracket placeholders (`[Deskripsi item]`) rather than guessing — a wrong item is worse than a placeholder.
481
- - **Don't forget the tax assumption.** In Indonesia, PPN is 11% as of 2026. If the quote is for an export client or the user explicitly says "tanpa PPN", set tax to 0 and remove the line.
482
- - **Match the language end-to-end.** Don't mix "Subtotal" headings in English with "Hormat kami" in Indonesian. Pick one and commit.
483
- - **Verify arithmetic.** Recompute totals once before writing the file. This is the single biggest failure mode for quotation documents.
484
- - **Scope of Work harus konkret.** Tulis fitur/modul sebagai daftar yang bisa dicentang ("Sistem RBAC dengan 3 role: Admin, Editor, Viewer" — bukan "manajemen pengguna yang canggih"). Scope yang ambigu = revisi tak berujung.
485
- - **Deliverables ≠ Scope.** Scope = apa yang dikerjakan. Deliverables = apa yang diserahkan ke klien (dokumen, source code, akun staging, manual book, dll). Keduanya harus ada di template jasa.
486
- - **Tabel biaya jasa pakai kolom Waktu + Biaya, bukan Qty/Satuan/Harga Satuan.** Jangan campur format tabel goods ke services — tampilannya janggal dan tidak sesuai ekspektasi klien.
487
- - **Persentase termin harus = 100%.** Cek DP% + mid% + final% sebelum menulis file.
488
- - **Warranty jangan salin-tempel generik.** Sesuaikan dengan jenis proyek: "bugfix selama perusahaan berdiri" cocok untuk software; untuk desain interior mungkin lebih relevan "garansi revisi minor 30 hari setelah serah terima".