@dedesfr/prompter 0.8.14 → 0.8.16
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/CHANGELOG.md +21 -0
- package/dist/cli/index.js +1 -1
- package/dist/commands/init.js +2 -2
- package/dist/commands/init.js.map +1 -1
- package/package.json +1 -1
- package/skills/sph-generator/SKILL.md +472 -0
- package/skills/ui-ux-pro/SKILL.md +128 -268
- package/src/cli/index.ts +1 -1
- package/src/commands/init.ts +2 -2
- package/skills/ui-ux-pro-v2/SKILL.md +0 -199
- package/skills/ui-ux-pro-v2/assets/design-spec-template.md +0 -173
- package/skills/ui-ux-pro-v2/references/component-patterns.md +0 -255
- package/skills/ui-ux-pro-v2/references/design-principles.md +0 -167
|
@@ -0,0 +1,472 @@
|
|
|
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
|
+
| Scope of work | Lingkup Pekerjaan | Scope of Work |
|
|
67
|
+
| Deliverables | Hasil Pekerjaan / Deliverables | Deliverables |
|
|
68
|
+
| Phases / milestones | Tahapan & Termin | Phases & Milestones |
|
|
69
|
+
| Project duration | Estimasi Durasi Proyek | Project Timeline |
|
|
70
|
+
| Revisions | Jumlah Revisi | Revision Rounds |
|
|
71
|
+
| Assumptions | Asumsi | Assumptions |
|
|
72
|
+
| Exclusions | Pengecualian / Di Luar Lingkup | Exclusions / Out of Scope |
|
|
73
|
+
|
|
74
|
+
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.
|
|
75
|
+
|
|
76
|
+
### 3. Build the line items table
|
|
77
|
+
|
|
78
|
+
Each item line has: **No. | Deskripsi | Qty | Satuan | Harga Satuan | Subtotal**.
|
|
79
|
+
|
|
80
|
+
Calculate:
|
|
81
|
+
- `Subtotal per line = Qty × Harga Satuan`
|
|
82
|
+
- `Subtotal keseluruhan = Σ subtotal per line`
|
|
83
|
+
- `PPN = Subtotal × tax_rate` (default 11% for Indonesia; 0 if user says "tanpa PPN" or for non-ID English-language quotes unless specified)
|
|
84
|
+
- `Total = Subtotal + PPN - Diskon (jika ada)`
|
|
85
|
+
|
|
86
|
+
Format currency cleanly:
|
|
87
|
+
- IDR → `Rp 1.500.000` (titik sebagai pemisah ribuan, tanpa desimal)
|
|
88
|
+
- USD/EUR → `$1,500.00` / `€1,500.00`
|
|
89
|
+
|
|
90
|
+
Do the arithmetic yourself and double-check the totals before writing the file. A wrong total in a price quote is the most embarrassing failure mode of this skill.
|
|
91
|
+
|
|
92
|
+
### 4. Write the Markdown file
|
|
93
|
+
|
|
94
|
+
Save to a sensible filename:
|
|
95
|
+
- ID: `SPH-[Nomor]-[NamaKlien].md` (e.g., `SPH-001-PT-Maju-Jaya.md`)
|
|
96
|
+
- EN: `Quotation-[RefNo]-[ClientName].md`
|
|
97
|
+
|
|
98
|
+
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`.
|
|
99
|
+
|
|
100
|
+
### 5. Tell the user how to convert
|
|
101
|
+
|
|
102
|
+
After writing the file, mention briefly that they can convert it with Pandoc:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
pandoc SPH-001-Klien.md -o SPH-001-Klien.docx
|
|
106
|
+
pandoc SPH-001-Klien.md -o SPH-001-Klien.pdf --pdf-engine=xelatex
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Don't lecture — one short line is enough.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Template — Bahasa Indonesia
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
# SURAT PENAWARAN HARGA
|
|
117
|
+
|
|
118
|
+
**Nomor:** {{nomor_surat}}
|
|
119
|
+
**Tanggal:** {{tanggal}}
|
|
120
|
+
**Perihal:** {{perihal}}
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
**Kepada Yth.**
|
|
125
|
+
{{nama_penerima}}
|
|
126
|
+
{{jabatan_penerima}}
|
|
127
|
+
{{nama_perusahaan_penerima}}
|
|
128
|
+
{{alamat_penerima}}
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
Dengan hormat,
|
|
133
|
+
|
|
134
|
+
Sehubungan dengan {{konteks_singkat}}, bersama ini kami **{{nama_perusahaan_pengirim}}** dengan senang hati menyampaikan penawaran harga untuk {{ringkasan_lingkup}} sebagai berikut:
|
|
135
|
+
|
|
136
|
+
## Rincian Barang/Jasa
|
|
137
|
+
|
|
138
|
+
| No. | Deskripsi | Qty | Satuan | Harga Satuan | Subtotal |
|
|
139
|
+
|----:|-----------|----:|:------:|-------------:|---------:|
|
|
140
|
+
| 1 | {{deskripsi_1}} | {{qty_1}} | {{satuan_1}} | {{harga_1}} | {{subtotal_1}} |
|
|
141
|
+
| 2 | {{deskripsi_2}} | {{qty_2}} | {{satuan_2}} | {{harga_2}} | {{subtotal_2}} |
|
|
142
|
+
|
|
143
|
+
| | **Subtotal** | **{{subtotal_total}}** |
|
|
144
|
+
|--|--:|--:|
|
|
145
|
+
| | PPN (11%) | {{ppn}} |
|
|
146
|
+
| | Diskon | {{diskon}} |
|
|
147
|
+
| | **Total** | **{{total}}** |
|
|
148
|
+
|
|
149
|
+
*Terbilang: {{total_terbilang}} rupiah.*
|
|
150
|
+
|
|
151
|
+
## Syarat dan Ketentuan
|
|
152
|
+
|
|
153
|
+
1. **Masa Berlaku Penawaran:** {{masa_berlaku}} sejak tanggal surat ini.
|
|
154
|
+
2. **Syarat Pembayaran:** {{syarat_pembayaran}}.
|
|
155
|
+
3. **Waktu Pengiriman/Pengerjaan:** {{waktu_pengerjaan}} setelah PO/DP diterima.
|
|
156
|
+
4. **Garansi:** {{garansi}}.
|
|
157
|
+
5. Harga sudah termasuk PPN (kecuali disebutkan lain).
|
|
158
|
+
6. Ketentuan lain dapat dirundingkan lebih lanjut.
|
|
159
|
+
|
|
160
|
+
## Penutup
|
|
161
|
+
|
|
162
|
+
Demikian penawaran ini kami sampaikan. Besar harapan kami untuk dapat bekerja sama. Apabila Bapak/Ibu memerlukan informasi tambahan, jangan ragu untuk menghubungi kami.
|
|
163
|
+
|
|
164
|
+
Atas perhatian dan kerja samanya, kami ucapkan terima kasih.
|
|
165
|
+
|
|
166
|
+
Hormat kami,
|
|
167
|
+
**{{nama_perusahaan_pengirim}}**
|
|
168
|
+
|
|
169
|
+
<br><br><br>
|
|
170
|
+
|
|
171
|
+
**{{nama_penanda_tangan}}**
|
|
172
|
+
{{jabatan_penanda_tangan}}
|
|
173
|
+
{{kontak_penanda_tangan}}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Template — English
|
|
179
|
+
|
|
180
|
+
```markdown
|
|
181
|
+
# PRICE QUOTATION
|
|
182
|
+
|
|
183
|
+
**Reference No.:** {{ref_no}}
|
|
184
|
+
**Date:** {{date}}
|
|
185
|
+
**Subject:** {{subject}}
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
**To:**
|
|
190
|
+
{{recipient_name}}
|
|
191
|
+
{{recipient_title}}
|
|
192
|
+
{{recipient_company}}
|
|
193
|
+
{{recipient_address}}
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
Dear {{recipient_salutation}},
|
|
198
|
+
|
|
199
|
+
Following {{brief_context}}, **{{sender_company}}** is pleased to submit the following price quotation for {{scope_summary}}:
|
|
200
|
+
|
|
201
|
+
## Items / Services
|
|
202
|
+
|
|
203
|
+
| No. | Description | Qty | Unit | Unit Price | Subtotal |
|
|
204
|
+
|----:|-------------|----:|:----:|-----------:|---------:|
|
|
205
|
+
| 1 | {{description_1}} | {{qty_1}} | {{unit_1}} | {{price_1}} | {{subtotal_1}} |
|
|
206
|
+
| 2 | {{description_2}} | {{qty_2}} | {{unit_2}} | {{price_2}} | {{subtotal_2}} |
|
|
207
|
+
|
|
208
|
+
| | **Subtotal** | **{{subtotal_total}}** |
|
|
209
|
+
|--|--:|--:|
|
|
210
|
+
| | Tax / VAT ({{tax_rate}}%) | {{tax}} |
|
|
211
|
+
| | Discount | {{discount}} |
|
|
212
|
+
| | **Total** | **{{total}}** |
|
|
213
|
+
|
|
214
|
+
## Terms and Conditions
|
|
215
|
+
|
|
216
|
+
1. **Quotation Validity:** {{validity}} from the date of this letter.
|
|
217
|
+
2. **Payment Terms:** {{payment_terms}}.
|
|
218
|
+
3. **Delivery / Lead Time:** {{lead_time}} after PO / down payment is received.
|
|
219
|
+
4. **Warranty:** {{warranty}}.
|
|
220
|
+
5. Prices are inclusive of applicable taxes unless stated otherwise.
|
|
221
|
+
6. Other terms are negotiable upon request.
|
|
222
|
+
|
|
223
|
+
## Closing
|
|
224
|
+
|
|
225
|
+
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.
|
|
226
|
+
|
|
227
|
+
Thank you for your kind attention.
|
|
228
|
+
|
|
229
|
+
Sincerely,
|
|
230
|
+
**{{sender_company}}**
|
|
231
|
+
|
|
232
|
+
<br><br><br>
|
|
233
|
+
|
|
234
|
+
**{{signatory_name}}**
|
|
235
|
+
{{signatory_title}}
|
|
236
|
+
{{signatory_contact}}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Template — Bahasa Indonesia (Services / Jasa)
|
|
242
|
+
|
|
243
|
+
Use this for jasa pembuatan website, aplikasi, desain interior, branding, konsultasi, event, dll. Strukturnya menambah Lingkup, Tahapan & Termin, Asumsi, dan Pengecualian — bagian-bagian yang biasanya jadi sumber dispute kalau tidak ditulis eksplisit di awal.
|
|
244
|
+
|
|
245
|
+
```markdown
|
|
246
|
+
# SURAT PENAWARAN HARGA
|
|
247
|
+
|
|
248
|
+
**Nomor:** {{nomor_surat}}
|
|
249
|
+
**Tanggal:** {{tanggal}}
|
|
250
|
+
**Perihal:** Penawaran Jasa {{nama_proyek}}
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
**Kepada Yth.**
|
|
255
|
+
{{nama_penerima}}
|
|
256
|
+
{{jabatan_penerima}}
|
|
257
|
+
{{nama_perusahaan_penerima}}
|
|
258
|
+
{{alamat_penerima}}
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
Dengan hormat,
|
|
263
|
+
|
|
264
|
+
Menindaklanjuti {{konteks_singkat_diskusi}}, bersama ini **{{nama_perusahaan_pengirim}}** dengan senang hati menyampaikan penawaran untuk **{{nama_proyek}}** sebagai berikut.
|
|
265
|
+
|
|
266
|
+
## 1. Lingkup Pekerjaan
|
|
267
|
+
|
|
268
|
+
{{ringkasan_proyek_1_paragraf}}
|
|
269
|
+
|
|
270
|
+
**Hasil pekerjaan (deliverables) yang akan kami serahkan:**
|
|
271
|
+
|
|
272
|
+
- {{deliverable_1}}
|
|
273
|
+
- {{deliverable_2}}
|
|
274
|
+
- {{deliverable_3}}
|
|
275
|
+
|
|
276
|
+
## 2. Tahapan & Termin Pembayaran
|
|
277
|
+
|
|
278
|
+
| Tahap | Deskripsi | Durasi | Termin |
|
|
279
|
+
|------:|-----------|:------:|-------:|
|
|
280
|
+
| 1 | {{tahap_1_nama}} — {{tahap_1_desc}} | {{tahap_1_durasi}} | {{tahap_1_termin}} |
|
|
281
|
+
| 2 | {{tahap_2_nama}} — {{tahap_2_desc}} | {{tahap_2_durasi}} | {{tahap_2_termin}} |
|
|
282
|
+
| 3 | {{tahap_3_nama}} — {{tahap_3_desc}} | {{tahap_3_durasi}} | {{tahap_3_termin}} |
|
|
283
|
+
|
|
284
|
+
**Estimasi total durasi proyek:** {{durasi_total}} hari kerja sejak DP diterima.
|
|
285
|
+
|
|
286
|
+
## 3. Rincian Biaya
|
|
287
|
+
|
|
288
|
+
| No. | Item / Komponen | Qty | Satuan | Harga Satuan | Subtotal |
|
|
289
|
+
|----:|-----------------|----:|:------:|-------------:|---------:|
|
|
290
|
+
| 1 | {{item_1}} | {{qty_1}} | {{satuan_1}} | {{harga_1}} | {{subtotal_1}} |
|
|
291
|
+
| 2 | {{item_2}} | {{qty_2}} | {{satuan_2}} | {{harga_2}} | {{subtotal_2}} |
|
|
292
|
+
|
|
293
|
+
| | **Subtotal** | **{{subtotal_total}}** |
|
|
294
|
+
|--|--:|--:|
|
|
295
|
+
| | PPN (11%) | {{ppn}} |
|
|
296
|
+
| | Diskon | {{diskon}} |
|
|
297
|
+
| | **Total** | **{{total}}** |
|
|
298
|
+
|
|
299
|
+
*Terbilang: {{total_terbilang}} rupiah.*
|
|
300
|
+
|
|
301
|
+
## 4. Revisi
|
|
302
|
+
|
|
303
|
+
Penawaran ini sudah termasuk **{{jumlah_revisi}}** putaran revisi major per tahap. Revisi tambahan di luar kuota dikenakan biaya **{{biaya_revisi_tambahan}}** per putaran atau dapat digabungkan ke putaran berikutnya tanpa biaya jika belum melebihi kuota.
|
|
304
|
+
|
|
305
|
+
## 5. Asumsi
|
|
306
|
+
|
|
307
|
+
Penawaran ini disusun dengan asumsi berikut. Jika asumsi tidak terpenuhi, lingkup dan biaya dapat ditinjau kembali.
|
|
308
|
+
|
|
309
|
+
- {{asumsi_1}}
|
|
310
|
+
- {{asumsi_2}}
|
|
311
|
+
- {{asumsi_3}}
|
|
312
|
+
|
|
313
|
+
## 6. Pengecualian (Di Luar Lingkup)
|
|
314
|
+
|
|
315
|
+
Hal-hal berikut **tidak termasuk** dalam penawaran ini, dan dapat ditambahkan sebagai pekerjaan terpisah bila dibutuhkan:
|
|
316
|
+
|
|
317
|
+
- {{pengecualian_1}}
|
|
318
|
+
- {{pengecualian_2}}
|
|
319
|
+
- {{pengecualian_3}}
|
|
320
|
+
|
|
321
|
+
## 7. Syarat dan Ketentuan
|
|
322
|
+
|
|
323
|
+
1. **Masa Berlaku Penawaran:** {{masa_berlaku}} sejak tanggal surat ini.
|
|
324
|
+
2. **Syarat Pembayaran:** mengikuti termin per tahap pada bagian 2; pembayaran via transfer bank.
|
|
325
|
+
3. **Tanggal Mulai:** pekerjaan dimulai paling lambat {{lead_time_mulai}} setelah DP & dokumen kebutuhan diterima.
|
|
326
|
+
4. **Hak Cipta & Source File:** {{ketentuan_ipr}}.
|
|
327
|
+
5. **Garansi / Masa Pemeliharaan:** {{garansi}} setelah serah terima akhir.
|
|
328
|
+
6. **Force majeure** dan keterlambatan akibat keterlambatan respons klien akan menggeser timeline secara proporsional.
|
|
329
|
+
|
|
330
|
+
## Penutup
|
|
331
|
+
|
|
332
|
+
Demikian penawaran ini kami sampaikan. Kami siap mendiskusikan penyesuaian lingkup, tahapan, maupun anggaran agar sesuai dengan kebutuhan {{nama_perusahaan_penerima}}.
|
|
333
|
+
|
|
334
|
+
Atas perhatian dan kepercayaannya, kami ucapkan terima kasih.
|
|
335
|
+
|
|
336
|
+
Hormat kami,
|
|
337
|
+
**{{nama_perusahaan_pengirim}}**
|
|
338
|
+
|
|
339
|
+
<br><br><br>
|
|
340
|
+
|
|
341
|
+
**{{nama_penanda_tangan}}**
|
|
342
|
+
{{jabatan_penanda_tangan}}
|
|
343
|
+
{{kontak_penanda_tangan}}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Template — English (Services)
|
|
349
|
+
|
|
350
|
+
Use this for service-based engagements (web/app development, interior design, branding, consulting, etc.).
|
|
351
|
+
|
|
352
|
+
```markdown
|
|
353
|
+
# PRICE QUOTATION
|
|
354
|
+
|
|
355
|
+
**Reference No.:** {{ref_no}}
|
|
356
|
+
**Date:** {{date}}
|
|
357
|
+
**Subject:** Service Proposal — {{project_name}}
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
**To:**
|
|
362
|
+
{{recipient_name}}
|
|
363
|
+
{{recipient_title}}
|
|
364
|
+
{{recipient_company}}
|
|
365
|
+
{{recipient_address}}
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
Dear {{recipient_salutation}},
|
|
370
|
+
|
|
371
|
+
Following {{brief_context}}, **{{sender_company}}** is pleased to submit the following proposal for **{{project_name}}**.
|
|
372
|
+
|
|
373
|
+
## 1. Scope of Work
|
|
374
|
+
|
|
375
|
+
{{project_summary_paragraph}}
|
|
376
|
+
|
|
377
|
+
**Deliverables:**
|
|
378
|
+
|
|
379
|
+
- {{deliverable_1}}
|
|
380
|
+
- {{deliverable_2}}
|
|
381
|
+
- {{deliverable_3}}
|
|
382
|
+
|
|
383
|
+
## 2. Phases & Payment Milestones
|
|
384
|
+
|
|
385
|
+
| Phase | Description | Duration | Payment |
|
|
386
|
+
|------:|-------------|:--------:|--------:|
|
|
387
|
+
| 1 | {{phase_1_name}} — {{phase_1_desc}} | {{phase_1_duration}} | {{phase_1_payment}} |
|
|
388
|
+
| 2 | {{phase_2_name}} — {{phase_2_desc}} | {{phase_2_duration}} | {{phase_2_payment}} |
|
|
389
|
+
| 3 | {{phase_3_name}} — {{phase_3_desc}} | {{phase_3_duration}} | {{phase_3_payment}} |
|
|
390
|
+
|
|
391
|
+
**Estimated total duration:** {{total_duration}} working days from receipt of down payment.
|
|
392
|
+
|
|
393
|
+
## 3. Cost Breakdown
|
|
394
|
+
|
|
395
|
+
| No. | Item / Component | Qty | Unit | Unit Price | Subtotal |
|
|
396
|
+
|----:|------------------|----:|:----:|-----------:|---------:|
|
|
397
|
+
| 1 | {{item_1}} | {{qty_1}} | {{unit_1}} | {{price_1}} | {{subtotal_1}} |
|
|
398
|
+
| 2 | {{item_2}} | {{qty_2}} | {{unit_2}} | {{price_2}} | {{subtotal_2}} |
|
|
399
|
+
|
|
400
|
+
| | **Subtotal** | **{{subtotal_total}}** |
|
|
401
|
+
|--|--:|--:|
|
|
402
|
+
| | Tax / VAT ({{tax_rate}}%) | {{tax}} |
|
|
403
|
+
| | Discount | {{discount}} |
|
|
404
|
+
| | **Total** | **{{total}}** |
|
|
405
|
+
|
|
406
|
+
## 4. Revisions
|
|
407
|
+
|
|
408
|
+
This quotation includes **{{revision_rounds}}** rounds of major revision per phase. Additional revisions beyond this quota are billed at **{{additional_revision_fee}}** per round, or may be carried over to a later phase at no cost if the quota has not been exhausted.
|
|
409
|
+
|
|
410
|
+
## 5. Assumptions
|
|
411
|
+
|
|
412
|
+
This proposal assumes the following. If any assumption does not hold, the scope and pricing may be revisited.
|
|
413
|
+
|
|
414
|
+
- {{assumption_1}}
|
|
415
|
+
- {{assumption_2}}
|
|
416
|
+
- {{assumption_3}}
|
|
417
|
+
|
|
418
|
+
## 6. Exclusions (Out of Scope)
|
|
419
|
+
|
|
420
|
+
The following items are **not included** and can be quoted separately if required:
|
|
421
|
+
|
|
422
|
+
- {{exclusion_1}}
|
|
423
|
+
- {{exclusion_2}}
|
|
424
|
+
- {{exclusion_3}}
|
|
425
|
+
|
|
426
|
+
## 7. Terms and Conditions
|
|
427
|
+
|
|
428
|
+
1. **Quotation Validity:** {{validity}} from the date of this letter.
|
|
429
|
+
2. **Payment Terms:** per phase as detailed in section 2; payable via bank transfer.
|
|
430
|
+
3. **Project Start:** work begins no later than {{start_lead_time}} after DP and requirements documents are received.
|
|
431
|
+
4. **IP & Source Files:** {{ipr_terms}}.
|
|
432
|
+
5. **Warranty / Maintenance:** {{warranty}} after final handover.
|
|
433
|
+
6. Force majeure and delays caused by late client response will shift the timeline proportionally.
|
|
434
|
+
|
|
435
|
+
## Closing
|
|
436
|
+
|
|
437
|
+
We hope this proposal aligns with your needs and we are open to adjusting scope, phases, or budget to fit {{recipient_company}}'s priorities.
|
|
438
|
+
|
|
439
|
+
Thank you for your kind consideration.
|
|
440
|
+
|
|
441
|
+
Sincerely,
|
|
442
|
+
**{{sender_company}}**
|
|
443
|
+
|
|
444
|
+
<br><br><br>
|
|
445
|
+
|
|
446
|
+
**{{signatory_name}}**
|
|
447
|
+
{{signatory_title}}
|
|
448
|
+
{{signatory_contact}}
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
## Notes on Pandoc-friendly Markdown
|
|
454
|
+
|
|
455
|
+
A few small choices in the templates above keep conversion smooth:
|
|
456
|
+
|
|
457
|
+
- **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.
|
|
458
|
+
- **GFM tables only** — no merged cells, no colspan tricks. If you need more complex layouts in `.docx`, post-process there.
|
|
459
|
+
- **No emoji or icons in headings** — they sometimes get stripped or mis-rendered in PDF engines without proper fonts.
|
|
460
|
+
- **Use `**bold**` and `*italic*`** — avoid `__` and `_` underscores around words containing numbers/IDs (Pandoc occasionally treats them as subscripts in some modes).
|
|
461
|
+
- **Currency formatting is plain text**, not a code block — code blocks survive conversion but render in monospace, which looks wrong in a formal letter.
|
|
462
|
+
|
|
463
|
+
If the user later asks for a fancier visual layout, that's a `.docx` template / Typora theme problem — not a Markdown problem.
|
|
464
|
+
|
|
465
|
+
## Common pitfalls
|
|
466
|
+
|
|
467
|
+
- **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.
|
|
468
|
+
- **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.
|
|
469
|
+
- **Match the language end-to-end.** Don't mix "Subtotal" headings in English with "Hormat kami" in Indonesian. Pick one and commit.
|
|
470
|
+
- **Verify arithmetic.** Recompute totals once before writing the file. This is the single biggest failure mode for quotation documents.
|
|
471
|
+
- **Untuk services mode**, jangan biarkan "Lingkup Pekerjaan" jadi paragraf hampa berisi marketing speak. Tulis deliverables sebagai daftar konkret yang bisa dicentang ("3 halaman desain landing page final dalam Figma" — bukan "desain web yang menarik dan modern"). Vague scope = endless revisions.
|
|
472
|
+
- **Tahapan harus konsisten dengan termin.** Jumlah persentase termin (DP + per tahap + pelunasan) wajib = 100%. Cek ulang sebelum menulis file.
|