Document Templates
Reference for document structures, required fields, and content guidelines for each document type.
Proposal
Structure: Cover -> Executive Summary -> Problem -> Solution -> Scope -> Timeline -> Pricing -> Terms -> About Us -> Contact
Required Fields
| Field | Description | Example |
|---|---|---|
| title | Proposal title | "Cloud Migration Proposal" |
| recipient | Client name/company | "Acme Corporation" |
| author | Your name/company | "TechCo Solutions" |
| date | Proposal date | "2026-03-17" |
| sections.executive_summary | Brief overview | 2-3 paragraphs |
| sections.problem_statement | Client's challenge | What problem are we solving? |
| sections.proposed_solution | Your solution | How do we solve it? |
| sections.timeline | Milestones with dates | Phase 1: Week 1-2, Phase 2: Week 3-4 |
| sections.pricing | Cost breakdown | Table with items and costs |
Optional Fields
| Field | Description |
|---|---|
| subtitle | Secondary title |
| companyName | For footer branding |
| branding.primaryColor | Hex color |
| branding.logoPath | Path to logo file |
| sections.approach | Methodology description |
| sections.terms | Terms and conditions |
| sections.about_us | Company background |
Invoice
Structure: Header (logo, company) -> Client Info -> Line Items Table -> Subtotal/Tax/Total -> Payment Details -> Notes
Required Fields
| Field | Description | Example |
|---|---|---|
| invoiceNumber | Unique identifier | "INV-2026-001" |
| date | Invoice date | "2026-03-17" |
| dueDate | Payment due date | "2026-04-17" |
| companyInfo.name | Your company name | "TechCo Solutions" |
| companyInfo.address | Your address | "123 Main St, City" |
| recipient.name | Client name | "Acme Corporation" |
| items[] | Line items array | See below |
| items[].description | Item description | "Web Development" |
| items[].quantity | Quantity | 10 |
| items[].unitPrice | Price per unit | 150 |
Optional Fields
| Field | Description |
|---|---|
| companyInfo.email | Company email |
| companyInfo.phone | Company phone |
| companyInfo.logo | Logo URL or path |
| recipient.address | Client address |
| recipient.email | Client email |
| tax | Tax amount |
| discount | Discount amount |
| paymentDetails.bank | Bank name |
| paymentDetails.iban | IBAN number |
| paymentDetails.swift | SWIFT code |
| notes | Additional notes |
| currencySymbol | Currency symbol (default: $) |
Line Item Calculation
item.total = item.quantity * item.unitPrice
subtotal = sum of all item.total
total = subtotal + tax - discount
Report
Structure: Cover -> TOC -> Introduction -> Background -> Methodology -> Findings -> Analysis -> Conclusions -> Recommendations -> Appendices -> References
Required Fields
| Field | Description | Example |
|---|---|---|
| title | Report title | "Q1 2026 Performance Analysis" |
| author | Author name | "Data Analytics Team" |
| date | Report date | "2026-03-17" |
| sections.introduction | Context and purpose | Why was this report created? |
| sections.findings | Key findings | Data and observations |
| sections.conclusions | Summary conclusions | What does the data tell us? |
Optional Fields
| Field | Description |
|---|---|
| subtitle | Secondary title |
| sections.background | Background context |
| sections.methodology | How data was collected |
| sections.analysis | Detailed analysis |
| sections.recommendations | Action items |
| sections.appendices | Supporting materials |
| sections.references | Sources cited |
| headerText | Custom header text |
Presentation
Structure: Title Slide -> Agenda -> Content Slides -> Summary -> Contact
Required Fields
| Field | Description | Example |
|---|---|---|
| title | Presentation title | "Product Launch Strategy" |
| slides[] | Array of slide objects | See slide types below |
Slide Types
Title slide:
{ "type": "title", "title": "Main Title", "subtitle": "Subtitle", "date": "2026-03-17" }
Agenda slide:
{ "type": "agenda", "title": "Agenda", "items": ["Topic 1", "Topic 2", "Topic 3"] }
Content slide:
{ "type": "content", "title": "Slide Title", "bullets": ["Point 1", "Point 2"], "image": "path/to/img.png" }
Two-column slide:
{ "type": "two-column", "title": "Comparison", "leftColumn": ["Left 1", "Left 2"], "rightColumn": ["Right 1", "Right 2"] }
Chart slide:
{ "type": "chart", "title": "Revenue", "chartType": "bar", "chartData": [{"name": "Q1", "labels": ["Jan","Feb","Mar"], "values": [100,200,300]}] }
Summary slide:
{ "type": "summary", "title": "Summary", "keyPoints": ["Point 1"], "nextSteps": ["Step 1"] }
Contact slide:
{ "type": "contact", "name": "John Doe", "email": "john@example.com", "phone": "+1-555-0123" }
Optional Fields
| Field | Description |
|---|---|
| author | Presenter name |
| subtitle | Presentation subtitle |
| branding.primaryColor | Theme color |
| branding.secondaryColor | Accent color |
| branding.fontFamily | Font family |
Contract
Structure: Header -> Parties -> Clauses (numbered) -> Signature Blocks
Required Fields
| Field | Description | Example |
|---|---|---|
| title | Contract title | "Service Agreement" |
| date | Agreement date | "2026-03-17" |
| parties.party1.name | First party name | "TechCo Solutions LLC" |
| parties.party2.name | Second party name | "Acme Corporation" |
| clauses[] | Array of clauses | See below |
Standard Clauses
| ID | Title | Required |
|---|---|---|
| definitions | Definitions | Yes |
| scope | Scope of Services | Yes |
| deliverables | Deliverables | No |
| payment | Payment Terms | Yes |
| duration | Duration and Termination | Yes |
| confidentiality | Confidentiality | Yes |
| ip | Intellectual Property | No |
| liability | Limitation of Liability | No |
| force_majeure | Force Majeure | No |
| governing_law | Governing Law | Yes |
| dispute_resolution | Dispute Resolution | No |
| general | General Provisions | No |
Clause Format
{
"id": "scope",
"title": "Scope of Services",
"content": "Paragraph 1 describing the scope.\n\nParagraph 2 with additional details."
}
Each paragraph within content (separated by \n\n) gets auto-numbered as sub-clauses (e.g., 2.1, 2.2).
Optional Fields
| Field | Description |
|---|---|
| contractNumber | Reference number |
| parties.*.address | Party address |
| parties.*.registrationNumber | Registration/tax ID |
| parties.*.label | Custom party label |
Certificate of Completion (Act)
Structure: Header (title, number, date, city) → Intro paragraph → Services table → Totals → Confirmation → Signature blocks
Format: PDF (default). Supports any language for all data values (company names, service descriptions, labels).
Required Fields
| Field | Description | Example |
|---|---|---|
| contractor.name | Contractor (service provider) | "Acme Consulting LLC" |
| contractor.representative | Signatory name | "John Smith" |
| customer.name | Customer (client) | "Global Corp Inc." |
| customer.representative | Signatory name | "Jane Doe" |
| services[] | Array of service rows | See below |
| services[].description | Service or work description | "Web development" |
| services[].quantity | Quantity | 40 |
| services[].unitPrice | Price per unit | 1500 |
| date | Document date | "March 19, 2026" |
Optional Fields
| Field | Description |
|---|---|
| actNumber | Act reference number (e.g., "ACT-001") |
| city | City name (e.g., "Kyiv") |
| contractRef | Reference to contract (e.g., "Contract No. 001 dated 01.01.2026") |
| services[].unit | Unit of measure (hrs/pcs/service) |
| services[].total | Row total (auto-calculated if omitted: qty × unitPrice) |
| vatRate | VAT rate in percent (0 if not VAT payer) |
| totalAmount | Document total (auto-calculated if omitted) |
| currencySymbol | Currency symbol (default: $) |
| contractor.title | Legal role (e.g., "Director", "CEO") |
| contractor.reg | Registration number (company ID / tax ID) |
| customer.title | Legal role (e.g., "Director", "CEO") |
| customer.reg | Registration number (company ID / tax ID) |
| notes | Additional notes |
Calculation
services[].total = services[].quantity × services[].unitPrice
totalAmount = sum of all services[].total
vatAmount = totalAmount × (vatRate / 100)
grandTotal = totalAmount + vatAmount
NDA (Non-Disclosure Agreement)
Structure: Header (title, NDA number, date, city) -> Recital (WHEREAS + NOW THEREFORE) -> Clauses -> Witness clause -> Signature blocks
Format: PDF. Supports mutual (both parties bound) or unilateral (one-way) NDA.
Required Fields
| Field | Description | Example |
|---|---|---|
| date | Agreement date | "April 7, 2026" |
| disclosingParty.name | First party name | "TechCo Solutions LLC" |
| disclosingParty.representative | Signatory name | "Alex Morgan" |
| receivingParty.name | Second party name | "Acme Corporation" |
| receivingParty.representative | Signatory name | "Sarah Chen" |
Optional Fields
| Field | Description | Default |
|---|---|---|
| title | Document title | "Non-Disclosure Agreement" |
| number | NDA reference number | — |
| city | City of execution | — |
| ndaType | "mutual" or "unilateral" | "mutual" |
| jurisdiction | Governing law jurisdiction | "the State of Delaware" |
| termYears | NDA effective period | "two (2)" |
| survivalYears | Post-termination obligation period | "three (3)" |
| disclosingParty.address | Address | — |
| disclosingParty.title | Legal title | — |
| disclosingParty.reg | Registration number | — |
| receivingParty.address | Address | — |
| receivingParty.title | Legal title | — |
| receivingParty.reg | Registration number | — |
Note: All 7 standard clauses (Confidential Info Definition, Obligations, Exclusions, Term, Return of Materials, Remedies, Governing Law) have professional defaults built in. Only override if the user requests specific wording.
Estimate / Quotation
Structure: Header -> Client block -> Summary stats -> Executive summary -> Scope (inclusions/exclusions/assumptions) -> Team -> Phase-based pricing -> Optional items -> Totals -> Timeline (Gantt) -> Payment schedule -> Validity -> Terms -> Acceptance/Signatures
Format: PDF. Always use detailed phase-based format.
Required Fields
| Field | Description | Example |
|---|---|---|
| estimateNumber | Reference number | "EST-2026-019" |
| date | Estimate date | "April 7, 2026" |
| companyInfo.name | Your company | "Stackmakers Studio" |
| recipient.name | Client company | "Acme Corporation" |
| executiveSummary | 2-4 sentence overview | "This estimate covers..." |
| scope.description | What the project is | "End-to-end redesign..." |
| scope.inclusions[] | What IS included | ["Frontend dev", "Testing", ...] |
| scope.exclusions[] | What is NOT included | ["Hosting", "Content", ...] |
| scope.assumptions[] | Conditions/prerequisites | ["Client provides API docs by Week 1", ...] |
| team[] | Team members | See below |
| team[].role | Role name | "Senior Developer" |
| team[].rate | Hourly rate | 175 |
| phases[] | Project phases | See below |
| phases[].name | Phase name | "Phase 1: Discovery" |
| phases[].tasks[] | Tasks in phase | See below |
| phases[].tasks[].description | Task description | "Requirements gathering" |
| phases[].tasks[].role | Who does it | "Project Manager" |
| phases[].tasks[].hours | Estimated hours | 16 |
| phases[].tasks[].rate | Hourly rate | 120 |
| timeline | Project timeline | See below |
| timeline.totalDuration | Total duration | "14 weeks" |
| timeline.phases[] | Timeline phases | Start/end weeks + milestones |
Optional Fields
| Field | Description | Default |
|---|---|---|
| validDays | Validity period | 30 |
| recipient.contactPerson | Contact person name | — |
| team[].allocation | % allocation | — |
| phases[].color | Phase accent color | Auto-assigned |
| optionalItems[] | Add-on items (separate from total) | — |
| contingency.percent | Risk buffer % | — |
| contingency.label | Buffer description | "Risk contingency" |
| paymentSchedule[] | Payment milestones with % | — |
| terms[] | Terms & conditions | — |
| acceptance.enabled | Show signature block | true |
| discount | Discount amount | 0 |
| tax | Tax amount | 0 |
| notes | Additional notes | — |
Template File Locations
All templates are in <plugin_dir>/templates/:
| File | Document Type |
|---|---|
proposal_template.json |
Proposals |
invoice_template.json |
Invoices |
estimate_template.json |
Estimates / Quotations |
report_template.json |
Reports |
presentation_template.json |
Presentations |
contract_template.json |
Contracts |
nda_template.json |
Non-Disclosure Agreements |
act_template.json |
Certificates of Completion (Acts) |
Read the template file to get default structure and styling, then merge with user-provided data.