opencode-skills-collection 4.1.1 → 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/bundled-skills/.antigravity-install-manifest.json +125 -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/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/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/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/package.json +1 -1
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: day-book
|
|
3
|
+
description: 'Daily cash, bank and digital day book: opening and closing balances per book, in/out movements, debit/credit presentation and reconciliation status. Use for daily bookkeeping.'
|
|
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, day-book, cash-book, bank-book, reconciliation]
|
|
11
|
+
tools: []
|
|
12
|
+
source_repo: WHOISABHISHEKADHIKARI/sme-ops-system-builder
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Day Book
|
|
16
|
+
|
|
17
|
+
**What it is:** The daily cash, bank and digital receipt-and-payment record, with a day-end control row that reconciles the day before it is closed.
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Works out the smallest useful **Day Book** setup for the business in front of it, then builds it
|
|
22
|
+
only when asked. The default output is a short recommendation, not a spreadsheet. Artifacts - CSV,
|
|
23
|
+
SQL DDL, JSON Schema, Notion mapping - are produced on request, from one field list so they
|
|
24
|
+
cannot drift apart.
|
|
25
|
+
|
|
26
|
+
Layer: Layer 4: Cash. Fits: Starter stage. Table code: n/a.
|
|
27
|
+
|
|
28
|
+
**Before anything is generated, the design is checked against itself.** A day book is the easiest
|
|
29
|
+
table in the pack to write badly, because the same column can mean two different things on two
|
|
30
|
+
different rows and neither reading looks wrong on its own. So before emitting any artifact:
|
|
31
|
+
|
|
32
|
+
- Look for conflicts in the rules, the examples, the field definitions, the row meanings and the
|
|
33
|
+
output formats. Where the design, the examples or the business's existing sheet disagree with
|
|
34
|
+
each other, do not reproduce them as they stand.
|
|
35
|
+
- Name the conflict out loud, then resolve it with the simplest accounting-safe interpretation.
|
|
36
|
+
The simplest safe reading of a disputed field is the one that keeps cash equal to the bank
|
|
37
|
+
position and never invents a movement to make a total look right.
|
|
38
|
+
- Derive CSV, SQL DDL, JSON Schema and the Notion mapping from **one** field model afterwards, so
|
|
39
|
+
that no field exists in one artifact and is missing or differently defined in another.
|
|
40
|
+
|
|
41
|
+
**The rule this table exists to enforce: the debit/credit presentation of a day book depends on
|
|
42
|
+
the software's day-book format.** It is not a universal rule that all receipts are debit and all
|
|
43
|
+
payments are credit - some books present receipts on the payment side, some carry both columns,
|
|
44
|
+
some carry neither. So this table does not hardcode a Debit/Credit pair. `Debit/Credit
|
|
45
|
+
Presentation` is a text field that records the presentation **as configured in the business's own
|
|
46
|
+
software**, and the six in/out amount columns plus the six balance columns are the part that is
|
|
47
|
+
universal. Where a book labels its columns `Dr` and `Cr`, that label is what goes into
|
|
48
|
+
`Debit/Credit Presentation`; nothing in this table decides which side a receipt sits on.
|
|
49
|
+
|
|
50
|
+
**Two row types, and they are not the same kind of thing.** `Row Type` says which one a row is, and
|
|
51
|
+
the two are read differently.
|
|
52
|
+
|
|
53
|
+
| | `Movement` row | `Day Summary` row |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| What it is | one receipt or one payment | one per day, written after the day is closed |
|
|
56
|
+
| What it books | money, into exactly one book | no money at all - it totals and proves |
|
|
57
|
+
| `Book Section` | the one book it was booked to | `All Books` |
|
|
58
|
+
| `Mode` | the instrument used | `Mixed` when the day's instruments differ |
|
|
59
|
+
| The six In/Out columns | the amount in its own book, and the other two are not applicable | the day's totals for all three books |
|
|
60
|
+
| The six balance columns | brought forward, and the running balance **after** this entry | the day's opening and closing balances |
|
|
61
|
+
| `Transaction Reference`, `Voucher Number`, `Party` | the entry itself | the day's detail set, not a single voucher |
|
|
62
|
+
| `Duplicate Check` | this entry checked against the day's other entries | the whole day's set checked |
|
|
63
|
+
| `Balance Difference`, `Reconciliation Status` | not applicable - a single movement is not reconciled on its own | the day's break, and the status of it |
|
|
64
|
+
|
|
65
|
+
**What each balance field means.** Every one of the six balance fields is a balance, never a
|
|
66
|
+
movement. `Opening Cash Balance`, `Opening Bank Balance` and `Opening Digital Balance` are what
|
|
67
|
+
was brought into the day. `Cash Closing Balance`, `Bank Closing Balance` and `Digital Closing
|
|
68
|
+
Balance` are what was left at the end of it. The identity that connects them, per book, is:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
opening balance + money in - money out = closing balance
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
On a `Day Summary` row that identity must hold separately for cash, for bank and for digital. On
|
|
75
|
+
a `Movement` row, the opening balance is what was brought forward into that entry and the closing
|
|
76
|
+
balance is the running balance **after** it, in that entry's own book only.
|
|
77
|
+
|
|
78
|
+
**The identity that carries the day forward.** A day's opening balance is not a fresh number. It
|
|
79
|
+
is the **previous day's closing balance** for the same book. So the check that closes a day is:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
previous day's closing balance + today's movement = today's closing balance
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Where it does not hold, the difference goes in `Balance Difference` - signed, and not spread
|
|
86
|
+
across the books - and `Reconciliation Status` is set to `Needs Review` or `Unreconciled`. The
|
|
87
|
+
component is never edited to make the row tie. A day book whose balances are adjusted until they
|
|
88
|
+
agree records nothing about the business.
|
|
89
|
+
|
|
90
|
+
**`Balance Difference` and `Reconciliation Status`.** `Balance Difference` is the total
|
|
91
|
+
unexplained difference across the three books on that row: negative where the book is above the
|
|
92
|
+
counted or agreed figure, positive where it is below. Where a difference is confined to one book,
|
|
93
|
+
write which one in `Notes` with both figures, because one column cannot hold three breaks.
|
|
94
|
+
`Reconciliation Status` is the **worst** of the three books, never the best. A bank balance that
|
|
95
|
+
agrees does not make a cash count that does not agree reconciled.
|
|
96
|
+
|
|
97
|
+
**A day is not `Done` while the cash count or the bank position is unreconciled.** Neither is it
|
|
98
|
+
`Done` while `Duplicate Check` is `Not Checked`, or `Reconciliation Status` is anything other than
|
|
99
|
+
`Reconciled`, or while an entry is `Blocked`. `Entry Verified` is the workflow status
|
|
100
|
+
(`Not started | In progress | Blocked | Done | Cancelled`) and it moves to `Done` only when the
|
|
101
|
+
control row for that day is clean, or when a human has reviewed and accepted a recorded difference.
|
|
102
|
+
|
|
103
|
+
**Money, dates and rounding.** Amounts are the gross amounts that actually moved, exactly as
|
|
104
|
+
recorded in the business's books, tax-inclusive where the entry was tax-inclusive. This module
|
|
105
|
+
does not split tax out of a movement. Money is a bare number with no currency symbol in the cell,
|
|
106
|
+
and the currency itself is `Unknown` until the user states it. Dates are ISO `YYYY-MM-DD` in real
|
|
107
|
+
date fields. Round once, at the end, to two decimal places, so the day's components re-derive the
|
|
108
|
+
day's totals.
|
|
109
|
+
|
|
110
|
+
## When to Use This Skill
|
|
111
|
+
|
|
112
|
+
- day book
|
|
113
|
+
- daily cash and bank book
|
|
114
|
+
- cash book and bank book
|
|
115
|
+
- daily receipts and payments register
|
|
116
|
+
- end-of-day balance check
|
|
117
|
+
- petty cash day sheet
|
|
118
|
+
|
|
119
|
+
Also use it when the user says "the daily cash, bank and digital receipt-and-payment record, with a
|
|
120
|
+
day-end control row that reconciles the day before it is closed", or describes the same process
|
|
121
|
+
happening in a spreadsheet, a document or someone inboxes.
|
|
122
|
+
|
|
123
|
+
Do not use it for: making payments, recording receipts in detail, tax filing, or legal advice. This
|
|
124
|
+
skill produces empty templates only - it never holds or processes real transaction data.
|
|
125
|
+
|
|
126
|
+
## How It Works
|
|
127
|
+
|
|
128
|
+
Follow the shared execution contract. The module-specific rules below define only domain fields, decisions, calculations, and safety constraints.
|
|
129
|
+
|
|
130
|
+
### Step 1 - Identify intent
|
|
131
|
+
|
|
132
|
+
Read the request and pick the intent before asking anything.
|
|
133
|
+
|
|
134
|
+
- "set up" or "build" or "create" -> the user wants artifacts; go to Step 2.
|
|
135
|
+
- "our process is ..." or "it is in a sheet" -> `import` or `fix`; capture what is there, then Step 2.
|
|
136
|
+
- "is this right" or "review this" or "audit this" -> `review`; answer from what they share and do
|
|
137
|
+
not rebuild anything.
|
|
138
|
+
- "show me the movement" or "where did the cash go" -> `report`; answer from what they share.
|
|
139
|
+
- "how do I ..." -> advice question; answer directly and offer the build only if it helps.
|
|
140
|
+
|
|
141
|
+
If the intent is already clear from the request, do not ask the user to repeat it.
|
|
142
|
+
|
|
143
|
+
On a `review`, check the design against itself before checking the numbers: the rules against the
|
|
144
|
+
examples, the field definitions against the row meanings, and the four artifacts against each
|
|
145
|
+
other. Report the conflicts and the simplest accounting-safe reading of each, then report the
|
|
146
|
+
control gaps - an unreconciled balance with no difference field, a `Done` day with an open cash
|
|
147
|
+
count, a hardcoded Debit/Credit rule. Do not rebuild the book because a review was asked for.
|
|
148
|
+
|
|
149
|
+
On a `fix`, preserve every valid fact already in the book, name each contradiction, correct the
|
|
150
|
+
model, and keep the change to the minimum that makes it consistent. Rebuild the artifacts only
|
|
151
|
+
when the fix request asks for them.
|
|
152
|
+
|
|
153
|
+
One message, one question, no batching. Open with the question that decides which columns exist:
|
|
154
|
+
|
|
155
|
+
> **Q:** Which books do you keep separate in the day book - cash, bank, or a digital wallet?
|
|
156
|
+
|
|
157
|
+
### Step 2 - Ask only what is missing
|
|
158
|
+
|
|
159
|
+
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.
|
|
160
|
+
|
|
161
|
+
Skip anything the user already answered, in any earlier message. Ask the rest one at a time, and
|
|
162
|
+
stop as soon as the remaining answers would not change the recommendation or the requested
|
|
163
|
+
artifact. Never batch two questions into one message.
|
|
164
|
+
|
|
165
|
+
- **Books** - Cash, bank and digital all separate? Which software or format is the book kept in?
|
|
166
|
+
Entries made daily or weekly?
|
|
167
|
+
- **Entries** - Who writes them? From vouchers, or from the bank feed? Same day or the next?
|
|
168
|
+
- **Day-end control** - What is actually checked at day end? Is the cash counted? Is the bank
|
|
169
|
+
position agreed, and to what? Who signs it off?
|
|
170
|
+
- **Open items** - Digital wallets that settle late? Known duplicate patterns? How is a difference
|
|
171
|
+
handled when it appears?
|
|
172
|
+
- **Outcome** - What do you need? The daily book, the day-end reconciliation record, or both?
|
|
173
|
+
|
|
174
|
+
**An ambiguous answer is not an answer.** `yes`, `no`, `maybe`, `same`, `okay` and `fine` do not
|
|
175
|
+
answer a multiple-choice question. Re-ask as an explicit choice:
|
|
176
|
+
|
|
177
|
+
> **Q:** Which do you mean: **a count of the cash drawer** or **the balance your bank statement
|
|
178
|
+
> shows at close**?
|
|
179
|
+
|
|
180
|
+
A partial answer keeps only the part that was answered. "We check it monthly, and the cash on
|
|
181
|
+
Fridays" records the frequency and leaves the digital-wallet position `Unknown`.
|
|
182
|
+
|
|
183
|
+
**Never invent a business fact.** Not an amount, a balance, a date, a voucher number, a bank
|
|
184
|
+
reference, an account number, a mode, a book section, a reviewer name, a status or a difference.
|
|
185
|
+
If a value was not supplied by the user or derived by a documented formula from supplied data, it
|
|
186
|
+
is `Unknown` or blank. Never turn Unknown into zero - a blank says the count has not been done,
|
|
187
|
+
a zero says the drawer is empty. Record `Unknown`, move on, and never re-ask an unknown the user
|
|
188
|
+
has already said they do not have.
|
|
189
|
+
|
|
190
|
+
Where the count or the statement has not been seen, the day's `Balance Difference` is blank and
|
|
191
|
+
`Reconciliation Status` is `Unknown`. It is not zero, because a zero difference is a claim that
|
|
192
|
+
the money was counted and agreed.
|
|
193
|
+
|
|
194
|
+
### Step 3 - Hold the internal context
|
|
195
|
+
|
|
196
|
+
Hold the answers in this shape. It stays internal - it is not shown to the user unless they ask,
|
|
197
|
+
and it never carries a value the user did not give.
|
|
198
|
+
|
|
199
|
+
```yaml
|
|
200
|
+
module: day-book
|
|
201
|
+
intent: null # setup | advice | review | fix | build | convert | export
|
|
202
|
+
scale: null # Starter | Growth | Scale, only if the answer changes it
|
|
203
|
+
areas:
|
|
204
|
+
"Books": null
|
|
205
|
+
"Entries": null
|
|
206
|
+
"Day-end control": null
|
|
207
|
+
"Open items": null
|
|
208
|
+
"Outcome": null
|
|
209
|
+
books: null # which of cash | bank | digital are kept separately
|
|
210
|
+
book_format: null # the day-book format of the software in use
|
|
211
|
+
debit_credit_presentation: null
|
|
212
|
+
cash_counted_daily: null
|
|
213
|
+
bank_agreed_to: null # statement, feed, or neither
|
|
214
|
+
sign_off: null
|
|
215
|
+
late_settling_wallets: null
|
|
216
|
+
known_duplicate_pattern: null
|
|
217
|
+
difference_handling: null
|
|
218
|
+
requested_outputs: [] # csv | sql | json | notion | xlsx - requested formats only
|
|
219
|
+
confirmed_facts: [] # only what the user actually said
|
|
220
|
+
unknowns: [] # asked and not answered
|
|
221
|
+
open_questions: [] # the unanswered ones, in the order worth asking
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Step 4 - Recommend the smallest workflow
|
|
225
|
+
|
|
226
|
+
Build an already requested artifact without asking again. For advice-only requests, give a short recommendation and offer the relevant artifact.
|
|
227
|
+
|
|
228
|
+
**Recommended approach:** One day book carrying both row types in one field model. One `Movement`
|
|
229
|
+
row per receipt and per payment, with a `Book Section` naming cash, bank or digital; one
|
|
230
|
+
`Day Summary` row per day carrying that day's opening and closing balance and totals for all three
|
|
231
|
+
books; a `Balance Difference` and a `Reconciliation Status` on the day row; and a `Duplicate Check`
|
|
232
|
+
before the day is closed.
|
|
233
|
+
|
|
234
|
+
**Why this one:** The day book is where a missing or duplicated entry becomes visible, and
|
|
235
|
+
everything else in the cash cycle is downstream of the balance agreeing at day end. Keeping the
|
|
236
|
+
movement rows and the day-end control row in one model - separated by `Row Type` rather than by
|
|
237
|
+
guesswork - is what lets the day be proved from itself. Splitting them into two tables loses the
|
|
238
|
+
link, and merging them without a discriminator makes a summary row look like one more movement.
|
|
239
|
+
|
|
240
|
+
**Workflow:** Receipt or payment recorded from voucher → Booked to cash, bank or digital as a
|
|
241
|
+
`Movement` row → Running balance updated → Duplicate and missing entries checked → `Day Summary`
|
|
242
|
+
row proves previous closing plus movement equals closing, per book → Difference recorded and marked
|
|
243
|
+
→ Day-end balance verified and reviewed → Day closed
|
|
244
|
+
|
|
245
|
+
### Step 5 - Build only on request
|
|
246
|
+
|
|
247
|
+
Once the user asks for it, derive the fields from one canonical field list and emit the artifacts
|
|
248
|
+
as data only. Keep prose outside machine-readable data; provide file links and material limitations separately. A field present in one artifact is present
|
|
249
|
+
in all four, in the same order, with the same meaning. Build only what was asked for.
|
|
250
|
+
|
|
251
|
+
**A selected Notion output is rendered by `notion-manual-import`, so route the
|
|
252
|
+
Notion step there.** When the user selects Notion, hand that step to
|
|
253
|
+
@notion-manual-import: it holds the CSV, the property
|
|
254
|
+
mapping, the import steps and the verification checklist, and it renders the Field
|
|
255
|
+
Reference below instead of defining a table of its own. Do not restate the mapping
|
|
256
|
+
here and do not improvise the import steps. Manual CSV and mapping outputs need no
|
|
257
|
+
connection. For requested workspace changes, follow the shared contract: verify actual
|
|
258
|
+
tool access and the target before writing. A user saying "connected" is not tool evidence.
|
|
259
|
+
Never ask for a Notion password or token.
|
|
260
|
+
|
|
261
|
+
```csv
|
|
262
|
+
Entry Number,Entry Date,Row Type,Book Section,Transaction Reference,Voucher Number,Party,Narration,Mode,Cash In,Cash Out,Opening Cash Balance,Cash Closing Balance,Bank In,Bank Out,Opening Bank Balance,Bank Closing Balance,Digital In,Digital Out,Opening Digital Balance,Digital Closing Balance,Debit/Credit Presentation,Source Documents,Duplicate Check,Balance Difference,Reconciliation Status,Prepared By,Reviewed By,Entry Verified,Notes,Day Book ID
|
|
263
|
+
DB-EXAMPLE-001,2026-01-15,Day Summary,All Books,DAY-EXAMPLE-001,VCH-EXAMPLE-001 to VCH-EXAMPLE-014,Several parties,Day total across the three books; each movement line carries its own reference,Mixed,15000.00,11800.00,25000.00,28050.00,140000.00,95485.00,1250000.00,1294515.00,24600.00,4300.00,5000.00,25300.00,As per software day-book format,DOC-EXAMPLE-001,Checked - Clear,-150.00,Needs Review,Example Preparer,Example Reviewer,In progress,"Cash counted 28050.00 against a book closing of 28200.00, so 150.00 is unexplained and is recorded rather than adjusted. Bank agrees to the statement and the wallet balance agrees to the app.",
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
```sql
|
|
267
|
+
-- Engine assumption: PostgreSQL. If the target database is not PostgreSQL, replace
|
|
268
|
+
-- SERIAL PRIMARY KEY with that engine's auto-increment form; nothing else here is
|
|
269
|
+
-- engine-specific.
|
|
270
|
+
CREATE TABLE day_book (
|
|
271
|
+
entry_number VARCHAR(255),
|
|
272
|
+
entry_date DATE NOT NULL,
|
|
273
|
+
row_type VARCHAR(100) NOT NULL,
|
|
274
|
+
book_section VARCHAR(100) NOT NULL,
|
|
275
|
+
transaction_reference VARCHAR(255),
|
|
276
|
+
voucher_number VARCHAR(255),
|
|
277
|
+
party VARCHAR(255),
|
|
278
|
+
narration VARCHAR(255),
|
|
279
|
+
mode VARCHAR(100),
|
|
280
|
+
cash_in NUMERIC(14,2),
|
|
281
|
+
cash_out NUMERIC(14,2),
|
|
282
|
+
opening_cash_balance NUMERIC(14,2) NOT NULL,
|
|
283
|
+
cash_closing_balance NUMERIC(14,2) NOT NULL,
|
|
284
|
+
bank_in NUMERIC(14,2),
|
|
285
|
+
bank_out NUMERIC(14,2),
|
|
286
|
+
opening_bank_balance NUMERIC(14,2) NOT NULL,
|
|
287
|
+
bank_closing_balance NUMERIC(14,2) NOT NULL,
|
|
288
|
+
digital_in NUMERIC(14,2),
|
|
289
|
+
digital_out NUMERIC(14,2),
|
|
290
|
+
opening_digital_balance NUMERIC(14,2) NOT NULL,
|
|
291
|
+
digital_closing_balance NUMERIC(14,2) NOT NULL,
|
|
292
|
+
debit_credit_presentation VARCHAR(255),
|
|
293
|
+
source_documents VARCHAR(255), -- relation -> target record
|
|
294
|
+
duplicate_check VARCHAR(100) NOT NULL,
|
|
295
|
+
balance_difference NUMERIC(14,2),
|
|
296
|
+
reconciliation_status VARCHAR(100) NOT NULL,
|
|
297
|
+
prepared_by VARCHAR(255),
|
|
298
|
+
reviewed_by VARCHAR(255),
|
|
299
|
+
entry_verified VARCHAR(100) NOT NULL,
|
|
300
|
+
notes TEXT,
|
|
301
|
+
day_book_id SERIAL PRIMARY KEY,
|
|
302
|
+
created_at TIMESTAMP DEFAULT NOW(),
|
|
303
|
+
updated_at TIMESTAMP DEFAULT NOW(),
|
|
304
|
+
CONSTRAINT day_book_amounts_non_negative CHECK (
|
|
305
|
+
cash_in >= 0
|
|
306
|
+
AND cash_out >= 0
|
|
307
|
+
AND bank_in >= 0
|
|
308
|
+
AND bank_out >= 0
|
|
309
|
+
AND digital_in >= 0
|
|
310
|
+
AND digital_out >= 0),
|
|
311
|
+
CONSTRAINT day_book_row_type_values CHECK (row_type IN ('Movement', 'Day Summary')),
|
|
312
|
+
CONSTRAINT day_book_reconciliation_values CHECK (reconciliation_status IN (
|
|
313
|
+
'Reconciled', 'Needs Review', 'Unreconciled', 'Unknown'))
|
|
314
|
+
);
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
```json
|
|
318
|
+
{
|
|
319
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
320
|
+
"title": "Day Book",
|
|
321
|
+
"type": "object",
|
|
322
|
+
"additionalProperties": false,
|
|
323
|
+
"properties": {
|
|
324
|
+
"Entry Number": { "type": "string" },
|
|
325
|
+
"Entry Date": { "type": "string", "format": "date" },
|
|
326
|
+
"Row Type": { "type": "string" },
|
|
327
|
+
"Book Section": { "type": "string" },
|
|
328
|
+
"Transaction Reference": { "type": "string" },
|
|
329
|
+
"Voucher Number": { "type": "string" },
|
|
330
|
+
"Party": { "type": "string" },
|
|
331
|
+
"Narration": { "type": "string" },
|
|
332
|
+
"Mode": { "type": "string" },
|
|
333
|
+
"Cash In": { "type": "number" },
|
|
334
|
+
"Cash Out": { "type": "number" },
|
|
335
|
+
"Opening Cash Balance": { "type": "number" },
|
|
336
|
+
"Cash Closing Balance": { "type": "number" },
|
|
337
|
+
"Bank In": { "type": "number" },
|
|
338
|
+
"Bank Out": { "type": "number" },
|
|
339
|
+
"Opening Bank Balance": { "type": "number" },
|
|
340
|
+
"Bank Closing Balance": { "type": "number" },
|
|
341
|
+
"Digital In": { "type": "number" },
|
|
342
|
+
"Digital Out": { "type": "number" },
|
|
343
|
+
"Opening Digital Balance": { "type": "number" },
|
|
344
|
+
"Digital Closing Balance": { "type": "number" },
|
|
345
|
+
"Debit/Credit Presentation": { "type": "string" },
|
|
346
|
+
"Source Documents": { "type": "string" },
|
|
347
|
+
"Duplicate Check": { "type": "string" },
|
|
348
|
+
"Balance Difference": { "type": "number" },
|
|
349
|
+
"Reconciliation Status": { "type": "string" },
|
|
350
|
+
"Prepared By": { "type": "string" },
|
|
351
|
+
"Reviewed By": { "type": "string" },
|
|
352
|
+
"Entry Verified": { "type": "string" },
|
|
353
|
+
"Notes": { "type": "string" },
|
|
354
|
+
"Day Book ID": { "type": "integer" }
|
|
355
|
+
},
|
|
356
|
+
"required": [
|
|
357
|
+
"Entry Date",
|
|
358
|
+
"Row Type",
|
|
359
|
+
"Book Section",
|
|
360
|
+
"Opening Cash Balance",
|
|
361
|
+
"Cash Closing Balance",
|
|
362
|
+
"Opening Bank Balance",
|
|
363
|
+
"Bank Closing Balance",
|
|
364
|
+
"Opening Digital Balance",
|
|
365
|
+
"Digital Closing Balance",
|
|
366
|
+
"Duplicate Check",
|
|
367
|
+
"Reconciliation Status",
|
|
368
|
+
"Entry Verified"
|
|
369
|
+
]
|
|
370
|
+
}
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
`required` is a business-necessity list, not an availability list. `Entry Date`, `Row Type` and
|
|
374
|
+
`Book Section` are required because without them the row cannot be read at all - a row with no
|
|
375
|
+
`Row Type` cannot be told apart from a summary, and a row with no `Book Section` touches all three
|
|
376
|
+
books by accident. The six balance columns are required because a balance that is not recorded is
|
|
377
|
+
not a balance; the six In/Out columns are deliberately **not** required, because on a
|
|
378
|
+
`Movement` row the two books it did not touch are not applicable rather than zero, and a required
|
|
379
|
+
column invites exactly that substitution. `Duplicate Check`, `Reconciliation Status` and
|
|
380
|
+
`Entry Verified` are required so that no day can be closed without the control having been given
|
|
381
|
+
an answer. `Balance Difference` is optional, because an uncounted day legitimately has none.
|
|
382
|
+
|
|
383
|
+
```markdown
|
|
384
|
+
| CSV column | Notion property | Set after import |
|
|
385
|
+
|---|---|---|
|
|
386
|
+
| Entry Number | Title | Use as the database title |
|
|
387
|
+
| Entry Date | Date | Convert to Date |
|
|
388
|
+
| Row Type | Select (add options after import) | Convert to Select, add options: "Movement", "Day Summary" |
|
|
389
|
+
| Book Section | Select (add options after import) | Convert to Select, add options: "Cash Book", "Bank Book", "Digital Payments Book", "All Books" |
|
|
390
|
+
| Transaction Reference | Text | Leave as Text |
|
|
391
|
+
| Voucher Number | Text | Leave as Text |
|
|
392
|
+
| Party | Text | Leave as Text |
|
|
393
|
+
| Narration | Text | Leave as Text |
|
|
394
|
+
| Mode | Select (add options after import) | Convert to Select, add options: "Cash", "Bank", "Cheque", "Fonepay/QR", "Other Digital Payment", "Mixed" |
|
|
395
|
+
| Cash In | Number (format: currency) | Convert to Number, set format to Currency |
|
|
396
|
+
| Cash Out | Number (format: currency) | Convert to Number, set format to Currency |
|
|
397
|
+
| Opening Cash Balance | Number (format: currency) | Convert to Number, set format to Currency |
|
|
398
|
+
| Cash Closing Balance | Number (format: currency) | Convert to Number, set format to Currency |
|
|
399
|
+
| Bank In | Number (format: currency) | Convert to Number, set format to Currency |
|
|
400
|
+
| Bank Out | Number (format: currency) | Convert to Number, set format to Currency |
|
|
401
|
+
| Opening Bank Balance | Number (format: currency) | Convert to Number, set format to Currency |
|
|
402
|
+
| Bank Closing Balance | Number (format: currency) | Convert to Number, set format to Currency |
|
|
403
|
+
| Digital In | Number (format: currency) | Convert to Number, set format to Currency |
|
|
404
|
+
| Digital Out | Number (format: currency) | Convert to Number, set format to Currency |
|
|
405
|
+
| Opening Digital Balance | Number (format: currency) | Convert to Number, set format to Currency |
|
|
406
|
+
| Digital Closing Balance | Number (format: currency) | Convert to Number, set format to Currency |
|
|
407
|
+
| Debit/Credit Presentation | Text | Leave as Text |
|
|
408
|
+
| Source Documents | Relation (link to the target database) | Convert to Relation, link to the target database |
|
|
409
|
+
| Duplicate Check | Select (add options after import) | Convert to Select, add options: "Checked - Clear", "Checked - Duplicate Found", "Not Checked" |
|
|
410
|
+
| Balance Difference | Number (format: currency) | Convert to Number, set format to Currency |
|
|
411
|
+
| Reconciliation Status | Select (add options after import) | Convert to Select, add options: "Reconciled", "Needs Review", "Unreconciled", "Unknown" |
|
|
412
|
+
| Prepared By | Text | Leave as Text |
|
|
413
|
+
| Reviewed By | Text | Leave as Text |
|
|
414
|
+
| Entry Verified | Select (add options after import) | Convert to Select, add options: "Not started", "In progress", "Blocked", "Done", "Cancelled" |
|
|
415
|
+
| Notes | Text | Leave as Text |
|
|
416
|
+
| Day Book ID | Text (preserve source ID) | Keep imported IDs as Text; optionally add a separate Unique ID property |
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
The rows above are documentation examples only. Emit empty templates unless the user explicitly requests examples. Money stays `currency`, dates stay `date`, and
|
|
420
|
+
anything pointing at another table stays `relation`. Every option list below is a starting set -
|
|
421
|
+
add options after import, and use the values the business already uses.
|
|
422
|
+
|
|
423
|
+
**The internal-consistency check, run before the artifacts go out.** On the design as proposed,
|
|
424
|
+
and again on the four artifacts as written:
|
|
425
|
+
|
|
426
|
+
- Does every rule have a matching example, and does every example obey every rule?
|
|
427
|
+
- Does every field mean the same thing in the CSV, the SQL, the JSON Schema and the Notion
|
|
428
|
+
mapping - same type, same meaning, same position in the list?
|
|
429
|
+
- Is any field present in one artifact and missing, renamed or retyped in another?
|
|
430
|
+
- Does any single field carry two meanings, and is `Row Type` what separates them?
|
|
431
|
+
- Does a stated check have a field that records its result? A check with no field is a claim.
|
|
432
|
+
- Does the debit/credit statement match the `Debit/Credit Presentation` field, or has a universal
|
|
433
|
+
rule crept into the model?
|
|
434
|
+
|
|
435
|
+
See the [How It Works](references/how-it-works.md) reference for the rest of this section.
|
|
436
|
+
## Examples
|
|
437
|
+
|
|
438
|
+
**Prompt**
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
We cannot tell at the end of the day whether the bank balance is right, and twice we found the
|
|
442
|
+
same payment entered twice.
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
**Context first** - one question per message, nothing already answered:
|
|
446
|
+
|
|
447
|
+
> **Q:** Which books do you keep separate in the day book?
|
|
448
|
+
> **A:** Bank and one Fonepay number. Cash is in the drawer.
|
|
449
|
+
>
|
|
450
|
+
> **Q:** Who writes the entries?
|
|
451
|
+
> **A:** My accounts person, from the vouchers, in the evening.
|
|
452
|
+
>
|
|
453
|
+
> **Q:** What do you check before the day is closed?
|
|
454
|
+
> **A:** Against the bank statement once a month. The cash just goes in the drawer.
|
|
455
|
+
|
|
456
|
+
**Recommended next step** - offered, not built:
|
|
457
|
+
|
|
458
|
+
> One day book carrying both row types: a `Movement` row per receipt and per payment with a
|
|
459
|
+
> `Book Section` naming cash, bank or digital, and a `Day Summary` row per day carrying that day's
|
|
460
|
+
> opening and closing balances and totals for all three books, plus a `Balance Difference` and a
|
|
461
|
+
> `Reconciliation Status` on the day row.
|
|
462
|
+
>
|
|
463
|
+
> Workflow: Receipt or payment recorded from voucher → Booked to cash, bank or digital as a
|
|
464
|
+
> `Movement` row → Running balance updated → Duplicate and missing entries checked → `Day Summary`
|
|
465
|
+
> row proves previous closing plus movement equals closing, per book → Difference recorded and
|
|
466
|
+
> marked → Day-end balance verified and reviewed → Day closed
|
|
467
|
+
>
|
|
468
|
+
> Want the CSV, SQL, JSON Schema and Notion mapping for this?
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
See the [Best Practices](references/best-practices.md) reference for the full guidance.
|
|
472
|
+
|
|
473
|
+
## Limitations
|
|
474
|
+
|
|
475
|
+
- Empty template only. It does not post entries, move money or connect to a bank feed.
|
|
476
|
+
- The debit/credit presentation cannot be settled by this skill. It follows whatever the
|
|
477
|
+
business's software produces, so read the format out of the software and write it into
|
|
478
|
+
`Debit/Credit Presentation` rather than assuming one.
|
|
479
|
+
- The six balance columns are entered, not computed. The identity on a `Day Summary` row is what
|
|
480
|
+
tests them, and `Balance Difference` is what records the test failing - so a book that is never
|
|
481
|
+
tested is a book that never finds its own errors.
|
|
482
|
+
- `Balance Difference` holds the total across the three books. A break in more than one book
|
|
483
|
+
cannot be attributed from that column alone, so per-book figures go in `Notes`.
|
|
484
|
+
- A day book is a record of what was entered, not proof that it was correct. The proof comes from
|
|
485
|
+
the supporting document, which is why the source link and the voucher number are on every row.
|
|
486
|
+
- Digital wallet balances settle late against some aggregators, so a same-day agreement is not
|
|
487
|
+
always possible. `Reconciliation Status` = `Unknown` exists for that, and it is an honest answer.
|
|
488
|
+
- Reconciliation against the bank statement is a separate routine; this table records that it was
|
|
489
|
+
done, not what it found.
|
|
490
|
+
- It records a duplicate; it does not delete one, and it does not decide which of two identical
|
|
491
|
+
entries is the mistaken one.
|
|
492
|
+
- Notion relations need both databases imported before the link column resolves.
|
|
493
|
+
- Select options are a starting set. Rename them to match how the business talks.
|
|
494
|
+
- No automation, reminders or sync. Those need the integration layer.
|
|
495
|
+
- Legal, tax and HR review is still required before this drives real decisions.
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
See the [Security & Safety Notes](references/security-safety-notes.md) reference for the full guidance.
|
|
499
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Best Practices
|
|
2
|
+
|
|
3
|
+
- Build when requested; recommend and offer a build for advice-only requests.
|
|
4
|
+
- One question per message. A batched intake reads as a form and gets guessed at.
|
|
5
|
+
- Check the design against itself before generating anything, and resolve each conflict with the
|
|
6
|
+
simplest accounting-safe reading rather than reproducing both versions.
|
|
7
|
+
- Never hardcode a Debit/Credit rule, and never write that all receipts are debit. The
|
|
8
|
+
presentation follows the software's day-book format, and `Debit/Credit Presentation` records
|
|
9
|
+
what that format actually is.
|
|
10
|
+
- Never let one field carry two meanings. `Row Type` says whether a row is a movement or a day-end
|
|
11
|
+
control, and `Book Section` only ever names the book.
|
|
12
|
+
- Close the day, not the week. Count the cash, agree the bank balance to the statement and confirm
|
|
13
|
+
the digital wallet balance before the day is marked verified.
|
|
14
|
+
- A day's opening balance is the previous day's closing balance. Where they disagree, that is the
|
|
15
|
+
difference - not a fresh number typed in to make the day look complete.
|
|
16
|
+
- Record the difference, never repair it. `Balance Difference` is signed, and the component that
|
|
17
|
+
caused it is left alone for a human to resolve.
|
|
18
|
+
- Take `Reconciliation Status` as the worst of the three books. A bank that agrees does not
|
|
19
|
+
reconcile a cash drawer that does not.
|
|
20
|
+
- Use `Duplicate Check` honestly. `Not Checked` is a valid answer; a false `Checked - Clear` is
|
|
21
|
+
not, and it is not compatible with `Done`.
|
|
22
|
+
- One `Movement` row per entry, from the voucher. A day book written from memory is where
|
|
23
|
+
duplicates and omissions come from.
|
|
24
|
+
- Leave a book that a movement did not touch blank rather than zero. Blank means not applicable
|
|
25
|
+
here; zero would claim the drawer was counted and empty.
|
|
26
|
+
- Keep the narration specific enough to be understood six months later - invoice number, party and
|
|
27
|
+
what it was for.
|
|
28
|
+
- Keep every field name, type and position identical across CSV, SQL, JSON Schema and the Notion
|
|
29
|
+
mapping. A field that is in one and missing or retyped in another is the defect, not a detail.
|
|
30
|
+
- Money fields are `currency`, never `text`. Dates are `date`, never free text. Round once, at the
|
|
31
|
+
end, so the day re-derives from its movements.
|
|
32
|
+
- If the user requests an example row, keep it obviously fake so nobody imports it as real data.
|
|
@@ -0,0 +1,58 @@
|
|
|
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:** the day book was built with hardcoded Debit and Credit columns, or receipts were
|
|
9
|
+
assumed to be on the debit side.
|
|
10
|
+
**Solution:** the presentation depends on the software's format. Capture it in
|
|
11
|
+
`Debit/Credit Presentation` instead of assuming a universal rule.
|
|
12
|
+
- **Problem:** a summary row got read as one more movement, and the day's totals were added to the
|
|
13
|
+
day's movements.
|
|
14
|
+
**Solution:** `Row Type` is what tells them apart. A `Day Summary` row books no money; it totals
|
|
15
|
+
the `Movement` rows above it and tests the identity per book.
|
|
16
|
+
- **Problem:** a balance field was read as today's money moved.
|
|
17
|
+
**Solution:** the balance fields are balances. The `Opening * Balance` fields are brought
|
|
18
|
+
forward, the `* Closing Balance` fields are what is left after the entry or the day.
|
|
19
|
+
- **Problem:** the Overview claimed the day row proved the balance while the model had no field
|
|
20
|
+
that could record whether it did.
|
|
21
|
+
**Solution:** a check with no field is a claim. `Balance Difference` and `Reconciliation Status`
|
|
22
|
+
are the fields that make the day-end control real.
|
|
23
|
+
- **Problem:** an earlier bare `Balance Verified` yes/no was marked `Yes` on a day when the cash
|
|
24
|
+
was short and only the bank had been agreed.
|
|
25
|
+
**Solution:** `Reconciliation Status` takes the worst of the three books, and `Balance
|
|
26
|
+
Difference` says by how much.
|
|
27
|
+
- **Problem:** the day was marked `Done` with the cash drawer uncounted and the bank position
|
|
28
|
+
unagreed.
|
|
29
|
+
**Solution:** a day must not be `Done` while the cash count or the bank position is
|
|
30
|
+
unreconciled, or while `Duplicate Check` is `Not Checked`. The day is `In progress` until a
|
|
31
|
+
human accepts a recorded difference.
|
|
32
|
+
- **Problem:** a balance break was absorbed by editing the closing balance so the row tied.
|
|
33
|
+
**Solution:** record the signed difference, set the status, and leave the component alone.
|
|
34
|
+
- **Problem:** a book a movement did not touch was filled with `0.00`.
|
|
35
|
+
**Solution:** leave it blank. Blank means not applicable on this row; zero claims a count was
|
|
36
|
+
taken and the drawer was empty.
|
|
37
|
+
- **Problem:** the same cheque or UTR is entered twice and both stay.
|
|
38
|
+
**Solution:** run the duplicate check on the transaction reference, set `Checked - Duplicate
|
|
39
|
+
Found`, and resolve it with a human.
|
|
40
|
+
- **Problem:** the balance is verified only at month end.
|
|
41
|
+
**Solution:** day end is the control. `Reconciliation Status` = `Unknown` is what an uncounted
|
|
42
|
+
day looks like.
|
|
43
|
+
- **Problem:** a day-book line is written with no source document.
|
|
44
|
+
**Solution:** the line is a claim. Link the source or mark the entry blocked.
|
|
45
|
+
- **Problem:** a field existed in the CSV but not in the SQL, or was defined differently in the
|
|
46
|
+
JSON Schema or the Notion mapping.
|
|
47
|
+
**Solution:** derive all four from one field list, and run the internal-consistency check before
|
|
48
|
+
the artifacts go out.
|
|
49
|
+
- **Problem:** built a full system when the daily book alone was asked for.
|
|
50
|
+
**Solution:** build what was requested; mention the parent skill separately.
|
|
51
|
+
- **Problem:** all four artifacts drift apart.
|
|
52
|
+
**Solution:** derive all four from the field list in this file, never by hand.
|
|
53
|
+
- **Problem:** Notion import shows every column as Text.
|
|
54
|
+
**Solution:** that is expected. Apply the property mapping table once, after import, and add the
|
|
55
|
+
Select options then.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
See the [Related Skills](references/related-skills.md) reference for the full guidance.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Field Reference
|
|
2
|
+
|
|
3
|
+
| # | Field | Type | SQL | JSON Schema | Notion | CSV example |
|
|
4
|
+
|---:|---|---|---|---|---|---|
|
|
5
|
+
| 1 | Entry Number | `text` | `VARCHAR(255)` | `string` | Text | `DB-EXAMPLE-001` |
|
|
6
|
+
| 2 | Entry Date | `date` | `DATE` | `string, format: date` | Date | `2026-01-15` |
|
|
7
|
+
| 3 | Row Type | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Day Summary` |
|
|
8
|
+
| 4 | Book Section | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `All Books` |
|
|
9
|
+
| 5 | Transaction Reference | `text` | `VARCHAR(255)` | `string` | Text | `DAY-EXAMPLE-001` |
|
|
10
|
+
| 6 | Voucher Number | `text` | `VARCHAR(255)` | `string` | Text | `VCH-EXAMPLE-001 to VCH-EXAMPLE-014` |
|
|
11
|
+
| 7 | Party | `text` | `VARCHAR(255)` | `string` | Text | `Several parties` |
|
|
12
|
+
| 8 | Narration | `text` | `VARCHAR(255)` | `string` | Text | `Day total across the three books; each movement line carries its own reference` |
|
|
13
|
+
| 9 | Mode | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Mixed` |
|
|
14
|
+
| 10 | Cash In | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `15000.00` |
|
|
15
|
+
| 11 | Cash Out | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `11800.00` |
|
|
16
|
+
| 12 | Opening Cash Balance | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `25000.00` |
|
|
17
|
+
| 13 | Cash Closing Balance | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `28050.00` |
|
|
18
|
+
| 14 | Bank In | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `140000.00` |
|
|
19
|
+
| 15 | Bank Out | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `95485.00` |
|
|
20
|
+
| 16 | Opening Bank Balance | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `1250000.00` |
|
|
21
|
+
| 17 | Bank Closing Balance | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `1294515.00` |
|
|
22
|
+
| 18 | Digital In | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `24600.00` |
|
|
23
|
+
| 19 | Digital Out | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `4300.00` |
|
|
24
|
+
| 20 | Opening Digital Balance | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `5000.00` |
|
|
25
|
+
| 21 | Digital Closing Balance | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `25300.00` |
|
|
26
|
+
| 22 | Debit/Credit Presentation | `text` | `VARCHAR(255)` | `string` | Text | `As per software day-book format` |
|
|
27
|
+
| 23 | Source Documents | `relation` | `VARCHAR(255)` | `string` | Relation (link to the target database) | `DOC-EXAMPLE-001` |
|
|
28
|
+
| 24 | Duplicate Check | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Checked - Clear` |
|
|
29
|
+
| 25 | Balance Difference | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `-150.00` |
|
|
30
|
+
| 26 | Reconciliation Status | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Needs Review` |
|
|
31
|
+
| 27 | Prepared By | `text` | `VARCHAR(255)` | `string` | Text | `Example Preparer` |
|
|
32
|
+
| 28 | Reviewed By | `text` | `VARCHAR(255)` | `string` | Text | `Example Reviewer` |
|
|
33
|
+
| 29 | Entry Verified | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `In progress` |
|
|
34
|
+
| 30 | Notes | `long_text` | `TEXT` | `string` | Text | `Cash counted 28050.00 against a book closing of 28200.00, so 150.00 is unexplained and is recorded rather than adjusted. Bank agrees to the statement and the wallet balance agrees to the app.` |
|
|
35
|
+
| 31 | Day Book ID | `id` | `SERIAL PRIMARY KEY` | `integer` | Text (preserve source ID) | `(blank)` |
|
|
36
|
+
|
|
37
|
+
`Balance Difference` and `Reconciliation Status` are in this list because the day-end control is
|
|
38
|
+
the whole point of the table, and a control with no field to record its result is a claim rather
|
|
39
|
+
than a check. They replace an earlier bare `Balance Verified` yes/no, which could say *that*
|
|
40
|
+
something was out but not *how much*, and which a day with a cash break and an agreed bank
|
|
41
|
+
position could have marked `Yes`. `Reconciliation Status` carries the value set
|
|
42
|
+
`Reconciled | Needs Review | Unreconciled | Unknown`, and it takes the worst of the three books.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
See the [Select Options](references/select-options.md) reference for the full guidance.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# How It Works (continued)
|
|
2
|
+
|
|
3
|
+
If any answer is no, fix the model first and then re-derive the artifacts. Do not ship a set of
|
|
4
|
+
four artifacts that disagree with each other.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
See the [Field Reference](references/field-reference.md) reference for the full guidance.
|