opencode-skills-collection 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -42
- package/bundled-skills/.antigravity-install-manifest.json +127 -1
- package/bundled-skills/360-feedback-system/SKILL.md +481 -0
- package/bundled-skills/access-matrix/SKILL.md +338 -0
- package/bundled-skills/accounting-audit-system-builder/SKILL.md +302 -0
- package/bundled-skills/accounting-audit-system-builder/references/catalog.md +114 -0
- package/bundled-skills/accounting-software-selection/SKILL.md +427 -0
- package/bundled-skills/accounting-software-selection/references/build-artifacts.md +362 -0
- package/bundled-skills/accounting-software-selection/references/common-pitfalls.md +44 -0
- package/bundled-skills/accounting-software-selection/references/field-reference.md +93 -0
- package/bundled-skills/accounting-software-selection/references/select-options.md +202 -0
- package/bundled-skills/admin-access-register/SKILL.md +381 -0
- package/bundled-skills/advanced-analytics-dashboard/SKILL.md +318 -0
- package/bundled-skills/ai-image-generation-studio/SKILL.md +259 -0
- package/bundled-skills/ai-logo-maker/SKILL.md +259 -0
- package/bundled-skills/ai-multilingual-dubbing/SKILL.md +259 -0
- package/bundled-skills/ai-photo-restyler/SKILL.md +259 -0
- package/bundled-skills/ai-podcast-voiceover/SKILL.md +259 -0
- package/bundled-skills/alumni-re-hire-tracker/SKILL.md +314 -0
- package/bundled-skills/announcement-board/SKILL.md +336 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +48 -3
- package/bundled-skills/asset-it-management/SKILL.md +407 -0
- package/bundled-skills/attendance/SKILL.md +331 -0
- package/bundled-skills/audit-log/SKILL.md +314 -0
- package/bundled-skills/audit-preparation/SKILL.md +416 -0
- package/bundled-skills/beatra/SKILL.md +260 -0
- package/bundled-skills/board-governance/SKILL.md +360 -0
- package/bundled-skills/brand-growth-system-builder/SKILL.md +360 -0
- package/bundled-skills/brand-kit-print-collateral/SKILL.md +498 -0
- package/bundled-skills/buddy-program-manager/SKILL.md +329 -0
- package/bundled-skills/budget-cash-flow/SKILL.md +352 -0
- package/bundled-skills/busabase/SKILL.md +118 -0
- package/bundled-skills/business-email-template/SKILL.md +480 -0
- package/bundled-skills/business-email-template/references/common-pitfalls.md +30 -0
- package/bundled-skills/business-website-setup/SKILL.md +489 -0
- package/bundled-skills/business-website-setup/references/common-pitfalls.md +32 -0
- package/bundled-skills/candidate-talent-pool/SKILL.md +359 -0
- package/bundled-skills/capacity-workload-planner/SKILL.md +354 -0
- package/bundled-skills/changelog-entry/SKILL.md +141 -0
- package/bundled-skills/clients-accounts/SKILL.md +398 -0
- package/bundled-skills/code-of-conduct/SKILL.md +488 -0
- package/bundled-skills/code-of-conduct/references/common-pitfalls.md +31 -0
- package/bundled-skills/company-email-accounts/SKILL.md +404 -0
- package/bundled-skills/competency-matrix/SKILL.md +335 -0
- package/bundled-skills/contract-document-renewal/SKILL.md +396 -0
- package/bundled-skills/course-upskilling-requests/SKILL.md +354 -0
- package/bundled-skills/credit-cycle-analysis/SKILL.md +303 -0
- package/bundled-skills/credit-cycle-analysis/references/best-practices.md +35 -0
- package/bundled-skills/credit-cycle-analysis/references/common-pitfalls.md +5 -0
- package/bundled-skills/credit-cycle-analysis/references/examples.md +34 -0
- package/bundled-skills/credit-cycle-analysis/references/field-reference.md +47 -0
- package/bundled-skills/credit-cycle-analysis/references/how-it-works.md +494 -0
- package/bundled-skills/credit-cycle-analysis/references/security-notes.md +16 -0
- package/bundled-skills/credit-cycle-analysis/references/select-options.md +32 -0
- package/bundled-skills/csv-manual-export/SKILL.md +499 -0
- package/bundled-skills/csv-manual-export/references/common-pitfalls.md +19 -0
- package/bundled-skills/culture-retention/SKILL.md +346 -0
- package/bundled-skills/data-export-engine/SKILL.md +308 -0
- package/bundled-skills/data-privacy-controls/SKILL.md +317 -0
- package/bundled-skills/day-book/SKILL.md +499 -0
- package/bundled-skills/day-book/references/best-practices.md +32 -0
- package/bundled-skills/day-book/references/common-pitfalls.md +58 -0
- package/bundled-skills/day-book/references/field-reference.md +45 -0
- package/bundled-skills/day-book/references/how-it-works.md +7 -0
- package/bundled-skills/day-book/references/related-skills.md +18 -0
- package/bundled-skills/day-book/references/relations.md +14 -0
- package/bundled-skills/day-book/references/reusable-prompt.md +50 -0
- package/bundled-skills/day-book/references/security-safety-notes.md +19 -0
- package/bundled-skills/day-book/references/select-options.md +38 -0
- package/bundled-skills/dei-dashboard/SKILL.md +307 -0
- package/bundled-skills/design-theme-guide/SKILL.md +472 -0
- package/bundled-skills/disciplinary-pip-tracker/SKILL.md +345 -0
- package/bundled-skills/document-management-system/SKILL.md +328 -0
- package/bundled-skills/ecommerce-listing-image-set/SKILL.md +259 -0
- package/bundled-skills/employee-suggestion-hub/SKILL.md +322 -0
- package/bundled-skills/esop-equity-tracker/SKILL.md +331 -0
- package/bundled-skills/events-activities/SKILL.md +355 -0
- package/bundled-skills/expense-accounting/SKILL.md +496 -0
- package/bundled-skills/expense-accounting/references/common-pitfalls.md +41 -0
- package/bundled-skills/expense-accounting/references/related-skills.md +11 -0
- package/bundled-skills/expense-accounting/references/reusable-prompt.md +36 -0
- package/bundled-skills/expense-management/SKILL.md +351 -0
- package/bundled-skills/free-design-resources/SKILL.md +480 -0
- package/bundled-skills/free-design-resources/references/common-pitfalls.md +44 -0
- package/bundled-skills/free-design-resources/references/related-skills.md +24 -0
- package/bundled-skills/free-design-resources/references/reusable-prompt.md +12 -0
- package/bundled-skills/gamification-engine/SKILL.md +307 -0
- package/bundled-skills/gbp-local-seo-intent/SKILL.md +466 -0
- package/bundled-skills/gbp-local-seo-intent/references/best-practices.md +41 -0
- package/bundled-skills/gbp-local-seo-intent/references/common-pitfalls.md +40 -0
- package/bundled-skills/gbp-local-seo-intent/references/related-skills.md +17 -0
- package/bundled-skills/gbp-local-seo-intent/references/reusable-prompt.md +11 -0
- package/bundled-skills/gbp-local-seo-intent/references/security-safety-notes.md +27 -0
- package/bundled-skills/health-wellness/SKILL.md +334 -0
- package/bundled-skills/intern-program/SKILL.md +354 -0
- package/bundled-skills/internal-communication/SKILL.md +318 -0
- package/bundled-skills/inventory-stock-reconciliation/SKILL.md +470 -0
- package/bundled-skills/inventory-stock-reconciliation/references/best-practices.md +18 -0
- package/bundled-skills/inventory-stock-reconciliation/references/common-pitfalls.md +42 -0
- package/bundled-skills/inventory-stock-reconciliation/references/related-skills.md +13 -0
- package/bundled-skills/inventory-stock-reconciliation/references/relations.md +8 -0
- package/bundled-skills/inventory-stock-reconciliation/references/reusable-prompt.md +31 -0
- package/bundled-skills/inventory-stock-reconciliation/references/security-safety-notes.md +17 -0
- package/bundled-skills/inventory-stock-reconciliation/references/select-options.md +45 -0
- package/bundled-skills/invoices-billing/SKILL.md +385 -0
- package/bundled-skills/issue-grievance-tracker/SKILL.md +400 -0
- package/bundled-skills/json-schema-manual/SKILL.md +309 -0
- package/bundled-skills/json-schema-manual/references/best-practices.md +9 -0
- package/bundled-skills/json-schema-manual/references/common-pitfalls.md +25 -0
- package/bundled-skills/json-schema-manual/references/input-modules.md +203 -0
- package/bundled-skills/json-schema-manual/references/related-skills.md +8 -0
- package/bundled-skills/json-schema-manual/references/reusable-prompt.md +10 -0
- package/bundled-skills/json-schema-manual/references/security-safety-notes.md +13 -0
- package/bundled-skills/knowledge-base/SKILL.md +318 -0
- package/bundled-skills/kpi-tracker/SKILL.md +345 -0
- package/bundled-skills/learning-career-development/SKILL.md +349 -0
- package/bundled-skills/leave-management/SKILL.md +341 -0
- package/bundled-skills/legal-compliance-vault/SKILL.md +324 -0
- package/bundled-skills/linktree-link-hub/SKILL.md +453 -0
- package/bundled-skills/logo-image-design/SKILL.md +459 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +3 -3
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +2 -1
- package/bundled-skills/mentorship-program/SKILL.md +332 -0
- package/bundled-skills/mirrord/SKILL.md +90 -0
- package/bundled-skills/monthly-closing-statements/SKILL.md +488 -0
- package/bundled-skills/monthly-closing-statements/references/related-skills.md +17 -0
- package/bundled-skills/monthly-closing-statements/references/reusable-prompt.md +8 -0
- package/bundled-skills/music-generation-studio/SKILL.md +259 -0
- package/bundled-skills/notification-reminder-hub/SKILL.md +324 -0
- package/bundled-skills/notion-manual-import/SKILL.md +376 -0
- package/bundled-skills/notion-manual-import/references/best-practices.md +10 -0
- package/bundled-skills/notion-manual-import/references/common-pitfalls.md +26 -0
- package/bundled-skills/notion-manual-import/references/input-modules.md +203 -0
- package/bundled-skills/notion-manual-import/references/related-skills.md +7 -0
- package/bundled-skills/notion-manual-import/references/reusable-prompt.md +8 -0
- package/bundled-skills/notion-manual-import/references/security-safety-notes.md +15 -0
- package/bundled-skills/observability-cloud-planning/SKILL.md +487 -0
- package/bundled-skills/observability-cloud-planning/references/common-pitfalls.md +39 -0
- package/bundled-skills/observability-cloud-planning/references/related-skills.md +20 -0
- package/bundled-skills/observability-cloud-planning/references/reusable-prompt.md +12 -0
- package/bundled-skills/observability-cloud-planning/references/security-safety-notes.md +30 -0
- package/bundled-skills/offboarding-exit/SKILL.md +343 -0
- package/bundled-skills/offer-appointment/SKILL.md +351 -0
- package/bundled-skills/okr-system/SKILL.md +355 -0
- package/bundled-skills/omentir-linkedin-outreach/SKILL.md +96 -0
- package/bundled-skills/onboarding-playbook/SKILL.md +292 -0
- package/bundled-skills/organization-design/SKILL.md +324 -0
- package/bundled-skills/party-ledger-reconciliation/SKILL.md +411 -0
- package/bundled-skills/payment-accounting/SKILL.md +421 -0
- package/bundled-skills/payments-received/SKILL.md +315 -0
- package/bundled-skills/payroll-finance/SKILL.md +351 -0
- package/bundled-skills/people-directory/SKILL.md +459 -0
- package/bundled-skills/performance-management/SKILL.md +367 -0
- package/bundled-skills/petty-cash-management/SKILL.md +448 -0
- package/bundled-skills/policy-acknowledgement/SKILL.md +314 -0
- package/bundled-skills/policy-library/SKILL.md +327 -0
- package/bundled-skills/poster-design-studio/SKILL.md +259 -0
- package/bundled-skills/pre-boarding/SKILL.md +326 -0
- package/bundled-skills/presentation-deck/SKILL.md +491 -0
- package/bundled-skills/presentation-deck/references/related-skills.md +19 -0
- package/bundled-skills/presentation-deck/references/reusable-prompt.md +11 -0
- package/bundled-skills/probation-tracker/SKILL.md +347 -0
- package/bundled-skills/product-photo-studio/SKILL.md +259 -0
- package/bundled-skills/project-based-performance/SKILL.md +323 -0
- package/bundled-skills/projects-work-management/SKILL.md +368 -0
- package/bundled-skills/promotion-upgrade-requests/SKILL.md +377 -0
- package/bundled-skills/purchase-accounting/SKILL.md +414 -0
- package/bundled-skills/receipt-accounting/SKILL.md +424 -0
- package/bundled-skills/recognition-rewards/SKILL.md +324 -0
- package/bundled-skills/recruitment-pipeline/SKILL.md +399 -0
- package/bundled-skills/remote-work-tracker/SKILL.md +306 -0
- package/bundled-skills/reports-analytics/SKILL.md +320 -0
- package/bundled-skills/salary-benchmarking/SKILL.md +318 -0
- package/bundled-skills/salary-wage-accounting/SKILL.md +412 -0
- package/bundled-skills/sales-accounting/SKILL.md +494 -0
- package/bundled-skills/sales-accounting/references/common-pitfalls.md +28 -0
- package/bundled-skills/sales-accounting/references/related-skills.md +13 -0
- package/bundled-skills/sales-accounting/references/reusable-prompt.md +8 -0
- package/bundled-skills/seo-directory-backlinks/SKILL.md +484 -0
- package/bundled-skills/seo-directory-backlinks/references/common-pitfalls.md +36 -0
- package/bundled-skills/seo-directory-backlinks/references/related-skills.md +15 -0
- package/bundled-skills/seo-directory-backlinks/references/reusable-prompt.md +11 -0
- package/bundled-skills/since-cutoff/SKILL.md +68 -0
- package/bundled-skills/skill-gap-analysis/SKILL.md +338 -0
- package/bundled-skills/social-media-setup/SKILL.md +477 -0
- package/bundled-skills/social-media-setup/references/common-pitfalls.md +34 -0
- package/bundled-skills/social-media-setup/references/related-skills.md +19 -0
- package/bundled-skills/social-media-setup/references/reusable-prompt.md +11 -0
- package/bundled-skills/social-media-setup/references/security-safety-notes.md +27 -0
- package/bundled-skills/sop-company-wiki/SKILL.md +324 -0
- package/bundled-skills/source-document-filing/SKILL.md +368 -0
- package/bundled-skills/spreadsheet-manual-build/SKILL.md +493 -0
- package/bundled-skills/spreadsheet-manual-build/references/best-practices.md +9 -0
- package/bundled-skills/spreadsheet-manual-build/references/common-pitfalls.md +22 -0
- package/bundled-skills/spreadsheet-manual-build/references/related-skills.md +8 -0
- package/bundled-skills/spreadsheet-manual-build/references/reusable-prompt.md +9 -0
- package/bundled-skills/spreadsheet-manual-build/references/security-safety-notes.md +16 -0
- package/bundled-skills/stakeholder-investor-reports/SKILL.md +303 -0
- package/bundled-skills/suno-lyrics-to-song/SKILL.md +259 -0
- package/bundled-skills/talking-avatar-video/SKILL.md +260 -0
- package/bundled-skills/tax-register/SKILL.md +363 -0
- package/bundled-skills/tds-booking-payment/SKILL.md +405 -0
- package/bundled-skills/team-calendar/SKILL.md +312 -0
- package/bundled-skills/telegram/assets/boilerplate/nodejs/package-lock.json +3 -3
- package/bundled-skills/telegram/assets/boilerplate/nodejs/package.json +1 -0
- package/bundled-skills/template-library/SKILL.md +304 -0
- package/bundled-skills/time-tracking/SKILL.md +353 -0
- package/bundled-skills/vendor-contractor-management/SKILL.md +327 -0
- package/bundled-skills/viral-video-teardown-remake/SKILL.md +260 -0
- package/bundled-skills/voice-cloning-studio/SKILL.md +260 -0
- package/bundled-skills/voiceover-narration-studio/SKILL.md +259 -0
- package/bundled-skills/whatsapp-cloud-api/assets/boilerplate/nodejs/package-lock.json +3 -3
- package/bundled-skills/whatsapp-cloud-api/assets/boilerplate/nodejs/package.json +1 -0
- package/dist/skill-pointer/index.d.ts +2 -1
- package/dist/skill-pointer/index.js +2 -1
- package/dist/skill-pointer/pointer-generator.d.ts +4 -2
- package/dist/skill-pointer/pointer-generator.js +4 -2
- package/package.json +1 -1
- package/skills_index.json +4312 -0
|
@@ -0,0 +1,494 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sales-accounting
|
|
3
|
+
description: 'Sales register: customer, invoice, gross amount, discount, VAT and TDS, net receivable, credit terms and balance. Use for sales accounting.'
|
|
4
|
+
category: business
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-26"
|
|
9
|
+
author: WHOISABHISHEKADHIKARI
|
|
10
|
+
tags: [sme, accounting, audit, finance, database, csv, notion, sql, sales]
|
|
11
|
+
tools: []
|
|
12
|
+
source_repo: WHOISABHISHEKADHIKARI/sme-ops-system-builder
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Sales Accounting
|
|
16
|
+
|
|
17
|
+
**What it is:** Sales invoices, the receivables they create, and the documents that support them.
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Works out the smallest useful **Sales Accounting** setup for the business in front of it, then
|
|
22
|
+
builds it only when asked. The default output is a short recommendation, not a
|
|
23
|
+
spreadsheet. Artifacts - CSV, SQL DDL, JSON Schema, Notion mapping - are produced on
|
|
24
|
+
request, from one field list so they cannot drift apart.
|
|
25
|
+
|
|
26
|
+
**Scope of one row.** This is a single-table skill and one row is one invoice carrying
|
|
27
|
+
**one line item**. It is deliberately not a multi-line billing engine. An invoice with
|
|
28
|
+
several items either becomes several rows that repeat the same `Invoice Number`, or is
|
|
29
|
+
kept in a separate line table alongside this one - whichever the business actually needs.
|
|
30
|
+
Decide that in Step 2, do not assume it.
|
|
31
|
+
|
|
32
|
+
**Everything is conditional.** Not every sale is on credit, not every invoice has an order
|
|
33
|
+
or a challan, not every sale attracts VAT, and not every customer deducts TDS. Those fields
|
|
34
|
+
exist to record what was confirmed; they are left unset when the answer is "not applicable"
|
|
35
|
+
or "not known". Never fill them with a default to make the row look complete.
|
|
36
|
+
|
|
37
|
+
Layer: Layer 3: Record. Fits: Starter stage. Table code: n/a.
|
|
38
|
+
|
|
39
|
+
## When to Use This Skill
|
|
40
|
+
|
|
41
|
+
- sales accounting
|
|
42
|
+
- sales invoice register
|
|
43
|
+
- customer billing and receivable tracker
|
|
44
|
+
- sales vat register log
|
|
45
|
+
|
|
46
|
+
Also use it when the user describes invoicing, billing or tracking who has paid, or the same
|
|
47
|
+
process happening in a spreadsheet, a document or someone's inbox.
|
|
48
|
+
|
|
49
|
+
Do not use it for: customer collections, tax filing, or legal advice. This skill produces
|
|
50
|
+
empty templates only - it never holds or processes real customer or financial data.
|
|
51
|
+
|
|
52
|
+
## How It Works
|
|
53
|
+
|
|
54
|
+
Follow the shared execution contract. The module-specific rules below define only domain fields, decisions, calculations, and safety constraints.
|
|
55
|
+
|
|
56
|
+
### Step 1 - Identify intent
|
|
57
|
+
|
|
58
|
+
Read the request and pick the intent before asking anything.
|
|
59
|
+
|
|
60
|
+
- "set up" or "build" or "create" -> the user wants artifacts; go to Step 2.
|
|
61
|
+
- "our process is ..." or "it is in a sheet" -> the user wants to move an existing process; capture it, then Step 2.
|
|
62
|
+
- "is this right" or "review" or "audit" -> the user wants a check, not a build; answer from what they share.
|
|
63
|
+
- "how do I ..." -> advice question; answer directly and offer the build only if it helps.
|
|
64
|
+
|
|
65
|
+
Then read everything the user has already said and work out which single missing answer
|
|
66
|
+
would actually change the recommendation. If the request already contains enough to
|
|
67
|
+
recommend, do not ask anything yet - go to Step 4. If the user is describing a problem
|
|
68
|
+
rather than requesting a build, answer it first; a question is not owed.
|
|
69
|
+
|
|
70
|
+
Never open with a fixed question such as "How are sales invoices raised today?" when the
|
|
71
|
+
request has already answered it.
|
|
72
|
+
|
|
73
|
+
### Step 2 - Ask only what is missing
|
|
74
|
+
|
|
75
|
+
Treat ambiguous replies as unanswered and ask which explicit option the user means. Record unknown values as `Unknown`; `Unknown` is not zero. A record must not be `Done` when a required check fails.
|
|
76
|
+
|
|
77
|
+
Skip anything the user already answered, in any earlier message. Ask the rest one at a
|
|
78
|
+
time, and stop as soon as the remaining answers would not change the output.
|
|
79
|
+
|
|
80
|
+
- **Volume** - How many invoices a month? / Roughly how many lines per invoice?
|
|
81
|
+
- **Documents** - Is there a sales order every time, or only for some customers? / Is a delivery challan used at all?
|
|
82
|
+
- **Taxes and credit** - Is VAT charged, and at what rate? / Do any customers deduct TDS, and at what rate? / How many sales are on credit? / Standard credit period? / Who follows up?
|
|
83
|
+
- **Current process** - Tracked now? / Software or sheet? / What gets missed?
|
|
84
|
+
- **Outcome** - What do you need? / A sales register, an aging view or both?
|
|
85
|
+
|
|
86
|
+
Never invent an answer. If the user does not know, record it as unknown and carry on.
|
|
87
|
+
|
|
88
|
+
### Step 3 - Hold the internal context
|
|
89
|
+
|
|
90
|
+
Hold the answers in this shape. It stays internal - it is not shown to the user unless
|
|
91
|
+
they ask, and it never carries a value the user did not give.
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
module: sales-accounting
|
|
95
|
+
intent: null # setup | advice | review | fix | build | convert | export
|
|
96
|
+
scale: null # Starter | Growth | Scale, only if the answer changes it
|
|
97
|
+
areas:
|
|
98
|
+
"Volume": null
|
|
99
|
+
"Documents": null
|
|
100
|
+
"Taxes and credit": null
|
|
101
|
+
"Current process": null
|
|
102
|
+
"Outcome": null
|
|
103
|
+
requested_outputs: [] # csv | sql | json | notion | xlsx - requested formats only
|
|
104
|
+
confirmed_facts: [] # only what the user actually said
|
|
105
|
+
open_questions: [] # the unanswered ones, in the order worth asking
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Step 4 - Recommend the smallest workflow
|
|
109
|
+
|
|
110
|
+
Build an already requested artifact without asking again. For advice-only requests, give a short recommendation and offer the relevant artifact. Use
|
|
111
|
+
conditional language and name what is conditional.
|
|
112
|
+
|
|
113
|
+
**Recommended approach:** One invoice register, one row per invoice with a single line item.
|
|
114
|
+
Link the sales order, delivery challan and source document only where the business actually
|
|
115
|
+
raises them. Record VAT and TDS rates only where they were confirmed. For credit sales, add
|
|
116
|
+
the credit terms, due date, amount received, balance, a payment status and an aging status;
|
|
117
|
+
leave those unset for cash sales.
|
|
118
|
+
|
|
119
|
+
**Why this one:** A sales register that stops at the invoice total loses the receivable.
|
|
120
|
+
Splitting payment state from aging state is what turns billing into a collections list -
|
|
121
|
+
"paid" and "overdue" are different questions and one field cannot answer both.
|
|
122
|
+
|
|
123
|
+
**Workflow:** Documents prepared (where used) → Invoice issued → VAT register updated (where VAT applies) → Recorded → Receivable confirmed against the debtor ledger
|
|
124
|
+
|
|
125
|
+
### Step 5 - Build only on request
|
|
126
|
+
|
|
127
|
+
Once the user asks for it, derive the fields from the confirmed context and emit the
|
|
128
|
+
requested artifacts. For machine-readable text, keep prose outside the data; for files,
|
|
129
|
+
provide a usable link. Report material validation failures or limitations separately.
|
|
130
|
+
|
|
131
|
+
**A selected Notion output is rendered by `notion-manual-import`, so route the
|
|
132
|
+
Notion step there.** When the user selects Notion, hand that step to
|
|
133
|
+
@notion-manual-import: it holds the CSV, the property
|
|
134
|
+
mapping, the import steps and the verification checklist, and it renders the Field
|
|
135
|
+
Reference below instead of defining a table of its own. Do not restate the mapping
|
|
136
|
+
here and do not improvise the import steps. Manual CSV and mapping outputs need no
|
|
137
|
+
connection. For requested workspace changes, follow the shared contract: verify actual
|
|
138
|
+
tool access and the target before writing. A user saying "connected" is not tool evidence.
|
|
139
|
+
Never ask for a Notion password or token.
|
|
140
|
+
|
|
141
|
+
The SQL below is written in PostgreSQL-flavoured DDL. `SERIAL PRIMARY KEY` and
|
|
142
|
+
`TIMESTAMP DEFAULT NOW()` are PostgreSQL-specific; on another engine use that engine's
|
|
143
|
+
identity column and default-timestamp syntax. `created_at` and `updated_at` are maintained
|
|
144
|
+
by the database and are not business fields - leave them out of the CSV, JSON Schema and
|
|
145
|
+
Notion mapping.
|
|
146
|
+
|
|
147
|
+
```csv
|
|
148
|
+
Sales Number,Customer,Customer PAN/VAT,Sales Order,Delivery Challan,Invoice Number,Invoice Date,Item Description,Quantity,UOM,Rate,Gross Amount,Discount,Taxable Value,VAT Rate %,VAT Amount,TDS Rate %,TDS Amount,Invoice Total,Net Receivable,Credit Terms (Days),Due Date,Payment Status,Aging Status,Amount Received,Balance,Ledger Account,Source Document,VAT Register Updated,Entry Verified,Prepared By,Notes,Sales ID
|
|
149
|
+
SAL-2026-0033,Example Customer Ltd,ZZZZZ0000Z,SO-2026-0094,DC-2026-0911,INV-2026-0733,2026-08-16,Corrugated carton packs printed,800,Nos,142.50,114000.00,2280.00,111720.00,18,20109.60,2,2234.40,131829.60,129595.20,30,2026-09-15,Part Paid,Overdue,50000.00,79595.20,Sales - Cartons,DOC-2026-0455,Done,In progress,Example Preparer,Credit sale net 30; order raised for this customer only.,
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
```sql
|
|
153
|
+
-- PostgreSQL-flavoured DDL. See the note above for other engines.
|
|
154
|
+
CREATE TABLE sales_accounting (
|
|
155
|
+
sales_number VARCHAR(255),
|
|
156
|
+
customer VARCHAR(255),
|
|
157
|
+
customer_pan_vat VARCHAR(255),
|
|
158
|
+
sales_order VARCHAR(255), -- relation -> sales order database
|
|
159
|
+
delivery_challan VARCHAR(255), -- relation -> delivery challan database
|
|
160
|
+
invoice_number VARCHAR(255),
|
|
161
|
+
invoice_date DATE NOT NULL,
|
|
162
|
+
item_description VARCHAR(255),
|
|
163
|
+
quantity NUMERIC NOT NULL,
|
|
164
|
+
uom VARCHAR(100) NOT NULL,
|
|
165
|
+
rate NUMERIC(14,2) NOT NULL,
|
|
166
|
+
gross_amount NUMERIC(14,2) NOT NULL,
|
|
167
|
+
discount NUMERIC(14,2) NOT NULL,
|
|
168
|
+
taxable_value NUMERIC(14,2) NOT NULL,
|
|
169
|
+
vat_rate_pct NUMERIC,
|
|
170
|
+
vat_amount NUMERIC(14,2),
|
|
171
|
+
tds_rate_pct NUMERIC,
|
|
172
|
+
tds_amount NUMERIC(14,2),
|
|
173
|
+
invoice_total NUMERIC(14,2) NOT NULL,
|
|
174
|
+
net_receivable NUMERIC(14,2) NOT NULL,
|
|
175
|
+
credit_terms_days NUMERIC,
|
|
176
|
+
due_date DATE,
|
|
177
|
+
payment_status VARCHAR(100) NOT NULL,
|
|
178
|
+
aging_status VARCHAR(100) NOT NULL,
|
|
179
|
+
amount_received NUMERIC(14,2) NOT NULL,
|
|
180
|
+
balance NUMERIC(14,2) NOT NULL,
|
|
181
|
+
ledger_account VARCHAR(255),
|
|
182
|
+
source_document VARCHAR(255), -- relation -> source document register
|
|
183
|
+
vat_register_updated VARCHAR(100) NOT NULL,
|
|
184
|
+
entry_verified VARCHAR(100) NOT NULL,
|
|
185
|
+
prepared_by VARCHAR(255),
|
|
186
|
+
notes TEXT,
|
|
187
|
+
sales_id SERIAL PRIMARY KEY,
|
|
188
|
+
created_at TIMESTAMP DEFAULT NOW(),
|
|
189
|
+
updated_at TIMESTAMP DEFAULT NOW()
|
|
190
|
+
);
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
196
|
+
"title": "Sales Accounting",
|
|
197
|
+
"type": "object",
|
|
198
|
+
"additionalProperties": false,
|
|
199
|
+
"properties": {
|
|
200
|
+
"Sales Number": { "type": "string" },
|
|
201
|
+
"Customer": { "type": "string" },
|
|
202
|
+
"Customer PAN/VAT": { "type": "string" },
|
|
203
|
+
"Sales Order": { "type": "string" },
|
|
204
|
+
"Delivery Challan": { "type": "string" },
|
|
205
|
+
"Invoice Number": { "type": "string" },
|
|
206
|
+
"Invoice Date": { "type": "string", "format": "date" },
|
|
207
|
+
"Item Description": { "type": "string" },
|
|
208
|
+
"Quantity": { "type": "number" },
|
|
209
|
+
"UOM": { "type": "string" },
|
|
210
|
+
"Rate": { "type": "number" },
|
|
211
|
+
"Gross Amount": { "type": "number" },
|
|
212
|
+
"Discount": { "type": "number" },
|
|
213
|
+
"Taxable Value": { "type": "number" },
|
|
214
|
+
"VAT Rate %": { "type": "number" },
|
|
215
|
+
"VAT Amount": { "type": "number" },
|
|
216
|
+
"TDS Rate %": { "type": "number" },
|
|
217
|
+
"TDS Amount": { "type": "number" },
|
|
218
|
+
"Invoice Total": { "type": "number" },
|
|
219
|
+
"Net Receivable": { "type": "number" },
|
|
220
|
+
"Credit Terms (Days)": { "type": "number" },
|
|
221
|
+
"Due Date": { "type": "string", "format": "date" },
|
|
222
|
+
"Payment Status": { "type": "string" },
|
|
223
|
+
"Aging Status": { "type": "string" },
|
|
224
|
+
"Amount Received": { "type": "number" },
|
|
225
|
+
"Balance": { "type": "number" },
|
|
226
|
+
"Ledger Account": { "type": "string" },
|
|
227
|
+
"Source Document": { "type": "string" },
|
|
228
|
+
"VAT Register Updated": { "type": "string" },
|
|
229
|
+
"Entry Verified": { "type": "string" },
|
|
230
|
+
"Prepared By": { "type": "string" },
|
|
231
|
+
"Notes": { "type": "string" },
|
|
232
|
+
"Sales ID": { "type": "integer" }
|
|
233
|
+
},
|
|
234
|
+
"required": [
|
|
235
|
+
"Invoice Date",
|
|
236
|
+
"Quantity",
|
|
237
|
+
"UOM",
|
|
238
|
+
"Rate",
|
|
239
|
+
"Gross Amount",
|
|
240
|
+
"Discount",
|
|
241
|
+
"Taxable Value",
|
|
242
|
+
"Invoice Total",
|
|
243
|
+
"Net Receivable",
|
|
244
|
+
"Payment Status",
|
|
245
|
+
"Aging Status",
|
|
246
|
+
"Amount Received",
|
|
247
|
+
"Balance",
|
|
248
|
+
"VAT Register Updated",
|
|
249
|
+
"Entry Verified"
|
|
250
|
+
]
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
```markdown
|
|
255
|
+
| CSV column | Notion property | Set after import |
|
|
256
|
+
|---|---|---|
|
|
257
|
+
| Sales Number | Title | Use as the database title |
|
|
258
|
+
| Customer | Text | Leave as Text |
|
|
259
|
+
| Customer PAN/VAT | Text | Leave as Text |
|
|
260
|
+
| Sales Order | Relation (link to the sales order database) | Convert to Relation, link to the sales order database |
|
|
261
|
+
| Delivery Challan | Relation (link to the delivery challan database) | Convert to Relation, link to the delivery challan database |
|
|
262
|
+
| Invoice Number | Text | Leave as Text |
|
|
263
|
+
| Invoice Date | Date | Convert to Date |
|
|
264
|
+
| Item Description | Text | Leave as Text |
|
|
265
|
+
| Quantity | Number | Convert to Number |
|
|
266
|
+
| UOM | Select (add options after import) | Convert to Select, add options: "Nos", "Kg", "Litre", "Metre", "Set", "Hour", "Box", "Packet" |
|
|
267
|
+
| Rate | Number (format: currency) | Convert to Number, set format to Currency |
|
|
268
|
+
| Gross Amount | Number (format: currency) | Convert to Number, set format to Currency |
|
|
269
|
+
| Discount | Number (format: currency) | Convert to Number, set format to Currency |
|
|
270
|
+
| Taxable Value | Number (format: currency) | Convert to Number, set format to Currency |
|
|
271
|
+
| VAT Rate % | Number | Convert to Number |
|
|
272
|
+
| VAT Amount | Number (format: currency) | Convert to Number, set format to Currency |
|
|
273
|
+
| TDS Rate % | Number | Convert to Number |
|
|
274
|
+
| TDS Amount | Number (format: currency) | Convert to Number, set format to Currency |
|
|
275
|
+
| Invoice Total | Number (format: currency) | Convert to Number, set format to Currency |
|
|
276
|
+
| Net Receivable | Number (format: currency) | Convert to Number, set format to Currency |
|
|
277
|
+
| Credit Terms (Days) | Number | Convert to Number |
|
|
278
|
+
| Due Date | Date | Convert to Date |
|
|
279
|
+
| Payment Status | Select (add options after import) | Convert to Select, add options: "Unpaid", "Part Paid", "Paid", "Written Off" |
|
|
280
|
+
| Aging Status | Select (add options after import) | Convert to Select, add options: "Current", "Due Soon", "Overdue" |
|
|
281
|
+
| Amount Received | Number (format: currency) | Convert to Number, set format to Currency |
|
|
282
|
+
| Balance | Number (format: currency) | Convert to Number, set format to Currency |
|
|
283
|
+
| Ledger Account | Text | Leave as Text |
|
|
284
|
+
| Source Document | Relation (link to the source document register) | Convert to Relation, link to the source document register |
|
|
285
|
+
| VAT Register Updated | Select (add options after import) | Convert to Select, add options: "Not started", "In progress", "Blocked", "Done", "Cancelled" |
|
|
286
|
+
| Entry Verified | Select (add options after import) | Convert to Select, add options: "Not started", "In progress", "Blocked", "Done", "Cancelled" |
|
|
287
|
+
| Prepared By | Text | Leave as Text |
|
|
288
|
+
| Notes | Text | Leave as Text |
|
|
289
|
+
| Sales ID | Text (preserve source ID) | Keep imported IDs as Text; optionally add a separate Unique ID property |
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
The rows above are documentation examples only. Emit empty templates unless the user explicitly requests examples. Money stays `currency`, dates stay `date`,
|
|
293
|
+
and anything pointing at another table stays `relation`.
|
|
294
|
+
|
|
295
|
+
## Field Reference
|
|
296
|
+
|
|
297
|
+
| # | Field | Type | SQL | JSON Schema | Notion | CSV example |
|
|
298
|
+
|---:|---|---|---|---|---|---|
|
|
299
|
+
| 1 | Sales Number | `text` | `VARCHAR(255)` | `string` | Text | `SAL-2026-0033` |
|
|
300
|
+
| 2 | Customer | `text` | `VARCHAR(255)` | `string` | Text | `Example Customer Ltd` |
|
|
301
|
+
| 3 | Customer PAN/VAT | `text` | `VARCHAR(255)` | `string` | Text | `ZZZZZ0000Z` |
|
|
302
|
+
| 4 | Sales Order | `relation` | `VARCHAR(255)` | `string` | Relation (link to the sales order database) | `SO-2026-0094` |
|
|
303
|
+
| 5 | Delivery Challan | `relation` | `VARCHAR(255)` | `string` | Relation (link to the delivery challan database) | `DC-2026-0911` |
|
|
304
|
+
| 6 | Invoice Number | `text` | `VARCHAR(255)` | `string` | Text | `INV-2026-0733` |
|
|
305
|
+
| 7 | Invoice Date | `date` | `DATE` | `string, format: date` | Date | `2026-08-16` |
|
|
306
|
+
| 8 | Item Description | `text` | `VARCHAR(255)` | `string` | Text | `Corrugated carton packs printed` |
|
|
307
|
+
| 9 | Quantity | `number` | `NUMERIC` | `number` | Number | `800` |
|
|
308
|
+
| 10 | UOM | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Nos` |
|
|
309
|
+
| 11 | Rate | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `142.50` |
|
|
310
|
+
| 12 | Gross Amount | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `114000.00` |
|
|
311
|
+
| 13 | Discount | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `2280.00` |
|
|
312
|
+
| 14 | Taxable Value | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `111720.00` |
|
|
313
|
+
| 15 | VAT Rate % | `number` | `NUMERIC` | `number` | Number | `18` |
|
|
314
|
+
| 16 | VAT Amount | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `20109.60` |
|
|
315
|
+
| 17 | TDS Rate % | `number` | `NUMERIC` | `number` | Number | `2` |
|
|
316
|
+
| 18 | TDS Amount | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `2234.40` |
|
|
317
|
+
| 19 | Invoice Total | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `131829.60` |
|
|
318
|
+
| 20 | Net Receivable | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `129595.20` |
|
|
319
|
+
| 21 | Credit Terms (Days) | `number` | `NUMERIC` | `number` | Number | `30` |
|
|
320
|
+
| 22 | Due Date | `date` | `DATE` | `string, format: date` | Date | `2026-09-15` |
|
|
321
|
+
| 23 | Payment Status | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Part Paid` |
|
|
322
|
+
| 24 | Aging Status | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Overdue` |
|
|
323
|
+
| 25 | Amount Received | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `50000.00` |
|
|
324
|
+
| 26 | Balance | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `79595.20` |
|
|
325
|
+
| 27 | Ledger Account | `text` | `VARCHAR(255)` | `string` | Text | `Sales - Cartons` |
|
|
326
|
+
| 28 | Source Document | `relation` | `VARCHAR(255)` | `string` | Relation (link to the source document register) | `DOC-2026-0455` |
|
|
327
|
+
| 29 | VAT Register Updated | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Done` |
|
|
328
|
+
| 30 | Entry Verified | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `In progress` |
|
|
329
|
+
| 31 | Prepared By | `text` | `VARCHAR(255)` | `string` | Text | `Example Preparer` |
|
|
330
|
+
| 32 | Notes | `long_text` | `TEXT` | `string` | Text | `Credit sale net 30; order raised for this customer only.` |
|
|
331
|
+
| 33 | Sales ID | `id` | `SERIAL PRIMARY KEY` | `integer` | Text (preserve source ID) | `(blank)` |
|
|
332
|
+
|
|
333
|
+
The table above is the single source of truth. The CSV, SQL, JSON Schema and Notion mapping
|
|
334
|
+
are all derived from it - never edit one without the others.
|
|
335
|
+
|
|
336
|
+
How the amounts relate, so a reviewer can check any row:
|
|
337
|
+
|
|
338
|
+
- `Gross Amount` = `Quantity` x `Rate`
|
|
339
|
+
- `Taxable Value` = `Gross Amount` - `Discount`
|
|
340
|
+
- `Invoice Total` = `Taxable Value` + `VAT Amount` (equals `Taxable Value` when no VAT applies)
|
|
341
|
+
- `Net Receivable` = `Invoice Total` - `TDS Amount` (equals `Invoice Total` when no TDS applies)
|
|
342
|
+
- `Balance` = `Net Receivable` - `Amount Received`
|
|
343
|
+
- `Due Date` = `Invoice Date` + `Credit Terms (Days)`; both stay unset on a cash sale
|
|
344
|
+
|
|
345
|
+
`VAT Rate %`, `VAT Amount`, `TDS Rate %`, `TDS Amount`, `Credit Terms (Days)` and
|
|
346
|
+
`Due Date` are optional. Set them only from a confirmed answer, and never carry a rate as a
|
|
347
|
+
universal default - a TDS rate belongs to a specific customer, contract and jurisdiction,
|
|
348
|
+
and VAT applicability is a fact about the business and the supply.
|
|
349
|
+
|
|
350
|
+
`Payment Status` is what has been received: `Unpaid`, `Part Paid`, `Paid`, `Written Off`.
|
|
351
|
+
`Aging Status` is how late it is against `Due Date`: `Current`, `Due Soon`, `Overdue`,
|
|
352
|
+
assessed as at the reporting date. They are separate because an invoice can be fully paid
|
|
353
|
+
and no longer aging, or unpaid and long overdue.
|
|
354
|
+
|
|
355
|
+
`Sales Number` is the internal reference used inside the business; `Invoice Number` is the
|
|
356
|
+
number the customer is given. They are different things and both are useful, so both are
|
|
357
|
+
kept - but if the business only has one, drop `Sales Number` and keep the invoice number.
|
|
358
|
+
`Sales ID` is an internal database identifier only. It exists so the target database can
|
|
359
|
+
address a row, it is left blank in the example, and it is not a business reference - do not
|
|
360
|
+
print it on an invoice or quote it to a customer.
|
|
361
|
+
|
|
362
|
+
## Select Options
|
|
363
|
+
|
|
364
|
+
**UOM**
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
Nos | Kg | Litre | Metre | Set | Hour | Box | Packet
|
|
368
|
+
```
|
|
369
|
+
**Payment Status**
|
|
370
|
+
|
|
371
|
+
```
|
|
372
|
+
Unpaid | Part Paid | Paid | Written Off
|
|
373
|
+
```
|
|
374
|
+
**Aging Status**
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
Current | Due Soon | Overdue
|
|
378
|
+
```
|
|
379
|
+
**VAT Register Updated**
|
|
380
|
+
|
|
381
|
+
```
|
|
382
|
+
Not started | In progress | Blocked | Done | Cancelled
|
|
383
|
+
```
|
|
384
|
+
**Entry Verified**
|
|
385
|
+
|
|
386
|
+
```
|
|
387
|
+
Not started | In progress | Blocked | Done | Cancelled
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## Relations
|
|
391
|
+
|
|
392
|
+
Link fields: `Sales Order`, `Delivery Challan`, `Source Document`
|
|
393
|
+
|
|
394
|
+
All three are optional. Many invoices carry none of them, and a cash sale usually carries
|
|
395
|
+
none. Leave the cell unset rather than inventing a reference.
|
|
396
|
+
|
|
397
|
+
- `Sales Order` -> the sales order database. Links to the order this invoice was raised
|
|
398
|
+
against, where the business raises orders at all.
|
|
399
|
+
- `Delivery Challan` -> the delivery challan database. Links to the challan evidencing
|
|
400
|
+
despatch, where the business issues them at all.
|
|
401
|
+
- `Source Document` -> the source document filing register (`source-document-filing`).
|
|
402
|
+
Links to the filed invoice and its supporting papers.
|
|
403
|
+
|
|
404
|
+
Each is a genuine link to a named database, not a typed reference. If the business does not
|
|
405
|
+
run that register, keep the field as `text` and say so, rather than labelling plain text a
|
|
406
|
+
relation.
|
|
407
|
+
|
|
408
|
+
## Examples
|
|
409
|
+
|
|
410
|
+
**Prompt**
|
|
411
|
+
|
|
412
|
+
```
|
|
413
|
+
We issue credit invoices and nobody can tell which customers have actually paid.
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
**Context first** - one question per message, nothing already answered:
|
|
417
|
+
|
|
418
|
+
> **Q:** Roughly how many lines does one invoice usually carry?
|
|
419
|
+
> **A:** Usually one, sometimes two.
|
|
420
|
+
>
|
|
421
|
+
> **Q:** Do you always raise an order and a challan?
|
|
422
|
+
> **A:** Order only for bigger customers. No challan at all.
|
|
423
|
+
>
|
|
424
|
+
> **Q:** Is VAT charged, and do any customers deduct TDS?
|
|
425
|
+
> **A:** VAT yes. TDS only two customers, different rates.
|
|
426
|
+
|
|
427
|
+
**Recommended next step** - offered, not built:
|
|
428
|
+
|
|
429
|
+
> Based on what you have confirmed: one invoice register, one row per invoice. Because most
|
|
430
|
+
> of your invoices carry a single line, this stays a single table; for the two-item invoices,
|
|
431
|
+
> either add a second row repeating the invoice number or keep a separate line table - tell me
|
|
432
|
+
> which, and the build follows that choice.
|
|
433
|
+
>
|
|
434
|
+
> Sales order links only where you raise one, so that field is optional. No challan field is
|
|
435
|
+
> worth carrying since you do not issue them - say the word and it comes out.
|
|
436
|
+
>
|
|
437
|
+
> VAT applies, so the rate and amount are recorded. TDS stays optional, recorded per customer
|
|
438
|
+
> at whatever rate that customer actually deducts, rather than a fixed rate.
|
|
439
|
+
>
|
|
440
|
+
> For your credit sales, credit terms, due date, amount received and balance, plus a payment
|
|
441
|
+
> status and a separate aging status - paid and overdue are different questions.
|
|
442
|
+
>
|
|
443
|
+
> Workflow: Order raised where needed → Invoice issued → VAT register updated → Recorded → Receivable confirmed against the debtor ledger
|
|
444
|
+
>
|
|
445
|
+
> Want the CSV, SQL DDL, JSON Schema and Notion mapping for this?
|
|
446
|
+
|
|
447
|
+
## Best Practices
|
|
448
|
+
|
|
449
|
+
- Build when requested; recommend and offer a build for advice-only requests.
|
|
450
|
+
- One question per message. A batched intake reads as a form and gets guessed at.
|
|
451
|
+
- Skip any question the request has already answered. Asking it anyway costs trust.
|
|
452
|
+
- Keep payment state and aging state in separate fields. Collapsing them loses the
|
|
453
|
+
collections view.
|
|
454
|
+
- Leave conditional fields unset when the answer is "not applicable" or "not known". A
|
|
455
|
+
plausible default is worse than an empty cell, because nobody can tell it apart from fact.
|
|
456
|
+
- Record a tax rate only when it was confirmed for that customer or supply, never as a
|
|
457
|
+
standing default.
|
|
458
|
+
- Keep display names identical across CSV and JSON; document normalized SQL identifiers.
|
|
459
|
+
- Use `relation` for anything that genuinely points at another table, `text` only for free text.
|
|
460
|
+
- Money fields are `currency`, never `text`. Dates are `date`, never free text.
|
|
461
|
+
- If the user requests an example row, keep it obviously fake so nobody imports it as real data.
|
|
462
|
+
|
|
463
|
+
## Limitations
|
|
464
|
+
|
|
465
|
+
- One row is one invoice with a single line item. Multi-line invoices need repeated invoice
|
|
466
|
+
numbers or a separate line table; this skill does not model line-level tax or discounts.
|
|
467
|
+
- Empty template only. It does not compute tax, file returns or keep ledgers.
|
|
468
|
+
- Does not raise or send invoices, collect money, execute accounting entries, or call any
|
|
469
|
+
external API. The surrounding platform decides whether such tools exist.
|
|
470
|
+
- Not legal or tax advice, and not a substitute for it. Confirm applicability with a
|
|
471
|
+
qualified adviser for the jurisdiction in question.
|
|
472
|
+
- Notion relations need both databases imported before the link column resolves.
|
|
473
|
+
- Select options are a starting set. Rename them to match how the business talks.
|
|
474
|
+
- No automation, reminders or sync. Those need the integration layer.
|
|
475
|
+
- `Sales ID` is a database identifier, not a business reference.
|
|
476
|
+
|
|
477
|
+
## Security & Safety Notes
|
|
478
|
+
|
|
479
|
+
- Never fill in real customer names, tax identifiers, bank details or any real financial
|
|
480
|
+
data. Placeholders only.
|
|
481
|
+
- This is a sales and receivables skill: it has no employee, payroll, leave or medical data
|
|
482
|
+
and should not be asked to hold any.
|
|
483
|
+
- Keep bank details masked and never mark an example row `Confidential`.
|
|
484
|
+
- Local reads, generation commands, and validation are part of a requested artifact build.
|
|
485
|
+
External writes, messages, provisioning, and publication require authorization for that
|
|
486
|
+
action and target; existing explicit authorization does not need to be repeated.
|
|
487
|
+
- If sensitive data is supplied, avoid repeating unnecessary identifiers. Use only what
|
|
488
|
+
the requested review needs; keep generated templates empty. Do not claim deletion
|
|
489
|
+
from the conversation or service storage.
|
|
490
|
+
- Anything that becomes a tax or legal filing needs a qualified human reviewer.
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
See the [Common Pitfalls](references/common-pitfalls.md) reference for the full guidance.
|
|
494
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Common Pitfalls
|
|
2
|
+
|
|
3
|
+
- **Problem:** a static mapping is described as a completed workspace build.
|
|
4
|
+
**Solution:** deliver manual mappings without a connection; claim a live change only
|
|
5
|
+
after the authorized tool operation succeeds.
|
|
6
|
+
- **Problem:** asked all six questions in one message.
|
|
7
|
+
**Solution:** ask one, wait, and drop any the first answer already covered.
|
|
8
|
+
- **Problem:** opened with "how are sales invoices raised today?" when the user had already
|
|
9
|
+
described the process.
|
|
10
|
+
**Solution:** read the request first; ask only what would change the recommendation.
|
|
11
|
+
- **Problem:** one status field carrying both "paid" and "overdue".
|
|
12
|
+
**Solution:** split them - `Payment Status` for what was received, `Aging Status` for
|
|
13
|
+
how late it is.
|
|
14
|
+
- **Problem:** every row shows a TDS rate, so nobody can tell which invoices actually had it.
|
|
15
|
+
**Solution:** leave it unset unless it was confirmed for that customer.
|
|
16
|
+
- **Problem:** credit terms and due date filled in on a cash sale.
|
|
17
|
+
**Solution:** those fields are optional; a cash sale leaves them empty.
|
|
18
|
+
- **Problem:** a single table silently truncating a two-item invoice.
|
|
19
|
+
**Solution:** settle the line question in Step 2 - repeated rows or a line table.
|
|
20
|
+
- **Problem:** built a full system when one table was asked for.
|
|
21
|
+
**Solution:** build what was requested; mention the parent skill separately.
|
|
22
|
+
- **Problem:** all four artifacts drift apart.
|
|
23
|
+
**Solution:** derive all four from the Field Reference, never by hand.
|
|
24
|
+
- **Problem:** Notion import shows every column as Text.
|
|
25
|
+
**Solution:** that is expected. Apply the property mapping table once, after import.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
See the [Related Skills](references/related-skills.md) reference for the full guidance.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Related Skills
|
|
2
|
+
|
|
3
|
+
- @accounting-audit-system-builder - routes to this skill and the other accounting modules.
|
|
4
|
+
- ](https://github.com/sickn33/agentic-awesome-skills/blob/main/skills/source-document-filing/SKILL.md) - files the invoice with its supporting documents.
|
|
5
|
+
- @receipt-accounting - clears the receivable carried in `Net Receivable` and `Balance`.
|
|
6
|
+
- @payment-accounting - records the receipt against `Payment Status` and reduces `Balance`.
|
|
7
|
+
- @credit-cycle-analysis - ages the outstanding balances this module produces.
|
|
8
|
+
- @party-ledger-reconciliation - reconciles the debtor ledger against this register.
|
|
9
|
+
- @tds-booking-payment - handles TDS customers deduct, at the rate confirmed for that customer.
|
|
10
|
+
- @day-book - the daily entry log this register feeds.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
See the [Reusable Prompt](references/reusable-prompt.md) reference for the full guidance.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Reusable Prompt
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
I want to set up sales invoices and the receivables they create for my company.
|
|
5
|
+
Ask me one short question at a time, and only about what I have not already told you.
|
|
6
|
+
Then recommend the smallest setup that fits, and wait for me to ask before you build it.
|
|
7
|
+
When I ask, output CSV, SQL DDL, JSON Schema and a Notion property mapping. Data only.
|
|
8
|
+
```
|