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,470 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: inventory-stock-reconciliation
|
|
3
|
+
description: 'Stock reconciliation register: count date, item, warehouse, book vs physical quantity, variance quantity and value, variance reason, damage and expiry, adjustment and approval. Use for stock counts.'
|
|
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, reconciliation]
|
|
11
|
+
tools: []
|
|
12
|
+
source_repo: WHOISABHISHEKADHIKARI/sme-ops-system-builder
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Inventory / Stock Reconciliation
|
|
16
|
+
|
|
17
|
+
**What it is:** Physical stock counts against book quantities, differences investigated, and authorised adjustments recorded.
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Works out the smallest useful **Inventory / Stock Reconciliation** setup for the business in
|
|
22
|
+
front of it, then builds it only when asked. The default output is a short recommendation,
|
|
23
|
+
not a 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
|
+
Three guardrails shape the whole table.
|
|
27
|
+
|
|
28
|
+
**The artifact stage is template-only.** What the user receives is a structure: a CSV that is
|
|
29
|
+
a header row and no data row, DDL with no `INSERT`s, a schema with no example values, and a
|
|
30
|
+
property mapping table. Add one clearly labelled illustrative row only when the user
|
|
31
|
+
explicitly asks for one. The failure this prevents is an unknown quietly turning into fake
|
|
32
|
+
data inside a generated artifact.
|
|
33
|
+
|
|
34
|
+
**Counting, verifying and approving are three separate roles.** `Counted By`, `Verified By`
|
|
35
|
+
and `Approved By` answer three different questions and are never inferred from one another.
|
|
36
|
+
The manager who approves an adjustment is not automatically the verifier, and the verifier
|
|
37
|
+
is not automatically the counter. If the business genuinely runs two of these as one job,
|
|
38
|
+
that has to be said, not assumed.
|
|
39
|
+
|
|
40
|
+
**A variance without an investigated reason stays unresolved.** No adjustment is booked
|
|
41
|
+
without a named approver, and a record does not reach `Done` while a difference has no
|
|
42
|
+
recorded cause. A missing answer stays blank or `Unknown` - never a plausible-looking
|
|
43
|
+
number, and never 0.
|
|
44
|
+
|
|
45
|
+
Never manufacture a name, a date, a quantity, a price, a location, an approval, a variance
|
|
46
|
+
reason or a transaction reference to fill a gap. `Unknown` and blank are correct answers.
|
|
47
|
+
|
|
48
|
+
The count is periodic by design. Book quantity is a number the system believes; it is
|
|
49
|
+
only ever as good as the last entry. Until someone walks the shelves and writes down what
|
|
50
|
+
is actually there, the books are an opinion, and the frequency of the count is a business
|
|
51
|
+
decision driven by volume, value and risk rather than a setting anyone can skip. Two
|
|
52
|
+
things follow from that. First, every adjustment needs a named approver before it is
|
|
53
|
+
booked - a correction passed without authorisation is just a quiet write-off. Second,
|
|
54
|
+
investigating a shrinkage is a human judgement, not a calculation: no formula tells you
|
|
55
|
+
whether a missing stack of cartons was theft, a mis-pick, or two dispatches that never got
|
|
56
|
+
a stock entry.
|
|
57
|
+
|
|
58
|
+
Layer: Layer 7: Reconcile. Fits: Growth stage. Table code: n/a.
|
|
59
|
+
|
|
60
|
+
## When to Use This Skill
|
|
61
|
+
|
|
62
|
+
- physical stock count
|
|
63
|
+
- stock variance investigation
|
|
64
|
+
- stock adjustment register
|
|
65
|
+
- inventory shrinkage tracker
|
|
66
|
+
- cycle count sheet
|
|
67
|
+
|
|
68
|
+
Also use it when the user describes the same process happening in a spreadsheet, on paper,
|
|
69
|
+
or in someone's inbox.
|
|
70
|
+
|
|
71
|
+
Do not use it for: purchase or sales booking, inventory valuation method design, reorder-point
|
|
72
|
+
design, or legal or tax advice. This skill produces empty templates only - it never holds or
|
|
73
|
+
processes real employee, customer or stock-movement data.
|
|
74
|
+
|
|
75
|
+
## How It Works
|
|
76
|
+
|
|
77
|
+
Follow the shared execution contract. The module-specific rules below define only domain fields, decisions, calculations, and safety constraints.
|
|
78
|
+
|
|
79
|
+
### Step 1 - Identify intent
|
|
80
|
+
|
|
81
|
+
Read the request and pick the intent before asking anything.
|
|
82
|
+
|
|
83
|
+
- "set up" or "build" or "create" -> a new structure; go to Step 2.
|
|
84
|
+
- "our process is ..." or "it is in a sheet" -> capture the existing process first, then Step 2.
|
|
85
|
+
- "is this right" or "review" or "audit" -> a check, not a build; answer from what they share
|
|
86
|
+
and do not rebuild.
|
|
87
|
+
- "how do I ..." -> advice; answer directly and offer a build only if it helps.
|
|
88
|
+
|
|
89
|
+
### Step 2 - Ask only what is missing
|
|
90
|
+
|
|
91
|
+
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.
|
|
92
|
+
|
|
93
|
+
One message, one question, no batching. Skip anything the user already answered, in any
|
|
94
|
+
earlier message. Ask only questions whose answer would change the recommendation or the
|
|
95
|
+
requested artifact. Stop as soon as the remaining unknowns would not change the output.
|
|
96
|
+
Record `Unknown` and move on when the user does not know, and never ask the same unknown
|
|
97
|
+
twice.
|
|
98
|
+
|
|
99
|
+
The opening question targets the biggest missing fact that changes the output, not a generic
|
|
100
|
+
opener. For a new setup the usual first question is:
|
|
101
|
+
|
|
102
|
+
> **Q:** How many items do you hold, and when did you last count them physically?
|
|
103
|
+
|
|
104
|
+
Treat the two halves independently. If the user answers only one, record only that one and
|
|
105
|
+
ask the other separately if it would change the recommendation. `20 to 50` records the item
|
|
106
|
+
count range and leaves the last physical count date `Unknown`.
|
|
107
|
+
|
|
108
|
+
Then, only as needed:
|
|
109
|
+
|
|
110
|
+
- **Stock** - How many items do you hold? / What do you hold? / How many locations or
|
|
111
|
+
warehouses?
|
|
112
|
+
- **Count** - When did you last count physically? / Full count or cycle count? / How often?
|
|
113
|
+
/ **Who counts?** / **Who verifies?** - ask these as two separate questions, never as one.
|
|
114
|
+
- **Differences** - What gets investigated when the physical count differs from the books? /
|
|
115
|
+
Who approves an adjustment? / Is there a threshold that requires escalation?
|
|
116
|
+
- **Current process** - Is the count currently recorded anywhere? / Spreadsheet, accounting
|
|
117
|
+
package, or another system? / What is currently being missed?
|
|
118
|
+
- **Outcome** - A reconciliation record, a count sheet, or both?
|
|
119
|
+
|
|
120
|
+
**Ambiguous answers are not answers.** `yes`, `no`, `maybe`, `same`, `okay` and `fine` are
|
|
121
|
+
not answers to a multiple-choice question - not even when the question was phrased as two
|
|
122
|
+
options in a sentence. A bare `yes` to "Do you want a full count or a cycle count?" resolves
|
|
123
|
+
nothing, because the question had no yes/no answer to give. Re-ask as an explicit choice and
|
|
124
|
+
wait:
|
|
125
|
+
|
|
126
|
+
> **Q:** Which do you mean: **full count of all items** or **cycle count of selected items**?
|
|
127
|
+
|
|
128
|
+
**Partial answers keep only the answered part.** If a question carries two pieces of
|
|
129
|
+
information and the user answers one, retain only that one and leave the rest `Unknown`.
|
|
130
|
+
Never turn Unknown into 0 - a quantity nobody has counted is not a quantity of zero.
|
|
131
|
+
|
|
132
|
+
Never invent an answer. If the user does not know, record it as `Unknown` and carry on.
|
|
133
|
+
|
|
134
|
+
### Step 3 - Hold the internal context
|
|
135
|
+
|
|
136
|
+
Keep the answers in this shape. It stays internal - it is not shown to the user unless
|
|
137
|
+
they ask, and it never carries a value the user did not give.
|
|
138
|
+
|
|
139
|
+
```yaml
|
|
140
|
+
module: inventory-stock-reconciliation
|
|
141
|
+
intent: null # set in Step 1: set up | fix | review | report | import
|
|
142
|
+
scale: null # Starter | Growth | Scale, only if the answer changes it
|
|
143
|
+
areas:
|
|
144
|
+
"Stock": null
|
|
145
|
+
"Count": null
|
|
146
|
+
"Differences": null
|
|
147
|
+
"Current process": null
|
|
148
|
+
"Outcome": null
|
|
149
|
+
# Sub-areas recorded with the same discipline, and only when the answer changes the build:
|
|
150
|
+
# Stock.item_count | Stock.stock_types | Stock.locations - never assumed
|
|
151
|
+
# Count.count_type | Count.frequency - full vs cycle, and how often
|
|
152
|
+
# Count.counted_by | Count.verified_by - asked separately, never inferred
|
|
153
|
+
# Differences.adjustment_approver | Differences.escalation_threshold
|
|
154
|
+
# Outcome.requested_outputs - csv | sql | json | notion, as asked
|
|
155
|
+
requested_outputs: [] # csv | sql | json | notion | xlsx - requested formats only
|
|
156
|
+
confirmed_facts: [] # only what the user actually said
|
|
157
|
+
unknowns: [] # asked and not answered
|
|
158
|
+
open_questions: [] # the unanswered ones, in the order worth asking
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Step 4 - Recommend the smallest workflow
|
|
162
|
+
|
|
163
|
+
Build an already requested artifact without asking again. For advice-only requests, give a short recommendation and offer the relevant artifact.
|
|
164
|
+
|
|
165
|
+
**Recommended approach:** One reconciliation record per item counted, carrying the book quantity, the physical quantity, the variance, the variance reason, the investigation notes and the authorised adjustment, with the count sheet filed against the same reconciliation.
|
|
166
|
+
|
|
167
|
+
**Why this one:** The minimum defensible record connects the physical count to the book balance, documents why a difference exists, and records who authorised any adjustment. A count that is not reconciled back to the books proves nothing, and an adjustment passed without a named approver is a correction dressed up as control.
|
|
168
|
+
|
|
169
|
+
**Workflow:** Count planned → Items counted → Compared with books → Variance investigated → Adjustment authorised → Adjustment booked → Reconciliation filed
|
|
170
|
+
|
|
171
|
+
If no artifact was requested, offer the relevant format. Otherwise continue the build.
|
|
172
|
+
|
|
173
|
+
### Step 5 - Build only on request
|
|
174
|
+
|
|
175
|
+
Once the user asks, derive the fields from the confirmed context and emit **only the
|
|
176
|
+
artifacts that were requested**. No preamble, no summary, no recommendation repeated, no
|
|
177
|
+
unrequested artifact.
|
|
178
|
+
|
|
179
|
+
**A selected Notion output is rendered by `notion-manual-import`, so route the
|
|
180
|
+
Notion step there.** When the user selects Notion, hand that step to
|
|
181
|
+
@notion-manual-import: it holds the CSV, the property
|
|
182
|
+
mapping, the import steps and the verification checklist, and it renders the Field
|
|
183
|
+
Reference below instead of defining a table of its own. Do not restate the mapping
|
|
184
|
+
here and do not improvise the import steps. Manual CSV and mapping outputs need no
|
|
185
|
+
connection. For requested workspace changes, follow the shared contract: verify actual
|
|
186
|
+
tool access and the target before writing. A user saying "connected" is not tool evidence.
|
|
187
|
+
Never ask for a Notion password or token.
|
|
188
|
+
|
|
189
|
+
**The output is an empty template.** The CSV is a header row with no example row unless the
|
|
190
|
+
user explicitly asks for one; if they do ask, label the row clearly as illustrative and never
|
|
191
|
+
make it look like a real count. The SQL is DDL with no sample records. The JSON Schema is a
|
|
192
|
+
schema with no example values. Add no invented sample transactions, names, dates,
|
|
193
|
+
quantities, prices, locations, approvals or variance reasons to any of them.
|
|
194
|
+
|
|
195
|
+
The blocks below are the documented *shape*, so the Field Reference and the four artifacts
|
|
196
|
+
can be read together. The row in the CSV block is an illustrative placeholder that shows how
|
|
197
|
+
the columns line up; it is not a record, and it is not what ships. Delete it before use.
|
|
198
|
+
|
|
199
|
+
Money basis: `Unit Rate` is the rate as the business records it, and `Variance Value` is the
|
|
200
|
+
variance valued at that rate on the same row. State whether the figures are as recorded or
|
|
201
|
+
rounded to a cost layer, and round once, at the end. The arithmetic ties out as
|
|
202
|
+
`Variance Quantity = Physical Quantity - Book Quantity` and
|
|
203
|
+
`Variance Value = Variance Quantity x Unit Rate`; a row that does not tie is left as it is
|
|
204
|
+
and marked for review, never silently corrected to force a tie-out. This module never states
|
|
205
|
+
a `Debit` or `Credit` side, because which side a movement lands on is software-dependent.
|
|
206
|
+
|
|
207
|
+
**Control rules**
|
|
208
|
+
|
|
209
|
+
1. Never book an adjustment without a named approver. An empty `Approved By` is a blocked
|
|
210
|
+
record, not a formality.
|
|
211
|
+
2. Never invent an approver, a counter or a verifier. Never infer the verifier from the
|
|
212
|
+
approver, and never infer the counter from the verifier.
|
|
213
|
+
3. Never invent a variance reason, a quantity, a value or a date. An unanswered field stays
|
|
214
|
+
blank or `Unknown`.
|
|
215
|
+
4. A variance with no investigated reason remains unresolved, and the record stays below
|
|
216
|
+
`Done` until both the reason and the approver are recorded.
|
|
217
|
+
5. A record must not be `Done` while a required check fails.
|
|
218
|
+
6. Count on a stated frequency and write it into the record once the business has established
|
|
219
|
+
one.
|
|
220
|
+
7. All four artifacts are derived from the same canonical field list, with identical names
|
|
221
|
+
and identical order.
|
|
222
|
+
|
|
223
|
+
```csv
|
|
224
|
+
Reconciliation Number,Count Date,Item Code,Item Name,Category,UOM,Location/Warehouse,Book Quantity,Physical Quantity,Variance Quantity,Unit Rate,Variance Value,Variance Reason,Damaged Quantity,Expired Quantity,Slow Moving Flag,Unrecorded Purchases,Unrecorded Issues,Investigation Notes,Adjustment Entry,Adjustment Date,Approved By,Counted By,Verified By,Count Frequency,Status,Notes,Inventory Reconciliation ID
|
|
225
|
+
REC-EXAMPLE-001,2026-01-15,ITEM-EXAMPLE-001,Example Item A,Raw Material,Nos,Example Store,10,8,-2,1.00,-2.00,Damage,1,1,No,1,1,Illustrative row only - placeholder quantities that show the shape of the record and are not a real count or a real finding.,ADJ-EXAMPLE-001,2026-01-16,Example Approver,Example Counter,Example Verifier,Monthly,Done,Illustrative row only - delete this row before use.,
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
```sql
|
|
229
|
+
-- PostgreSQL example DDL; substitute an equivalent identity or
|
|
230
|
+
-- auto-increment column on MySQL, SQL Server or SQLite.
|
|
231
|
+
CREATE TABLE inventory_stock_reconciliation (
|
|
232
|
+
reconciliation_number VARCHAR(255),
|
|
233
|
+
count_date DATE NOT NULL,
|
|
234
|
+
item_code VARCHAR(255),
|
|
235
|
+
item_name VARCHAR(255),
|
|
236
|
+
category VARCHAR(100),
|
|
237
|
+
uom VARCHAR(100) NOT NULL,
|
|
238
|
+
location_warehouse VARCHAR(255),
|
|
239
|
+
book_quantity NUMERIC,
|
|
240
|
+
physical_quantity NUMERIC,
|
|
241
|
+
variance_quantity NUMERIC,
|
|
242
|
+
unit_rate NUMERIC(14,2),
|
|
243
|
+
variance_value NUMERIC(14,2),
|
|
244
|
+
variance_reason VARCHAR(100),
|
|
245
|
+
damaged_quantity NUMERIC,
|
|
246
|
+
expired_quantity NUMERIC,
|
|
247
|
+
slow_moving_flag VARCHAR(100),
|
|
248
|
+
unrecorded_purchases NUMERIC,
|
|
249
|
+
unrecorded_issues NUMERIC,
|
|
250
|
+
investigation_notes TEXT,
|
|
251
|
+
adjustment_entry VARCHAR(255),
|
|
252
|
+
adjustment_date DATE,
|
|
253
|
+
approved_by VARCHAR(255),
|
|
254
|
+
counted_by VARCHAR(255),
|
|
255
|
+
verified_by VARCHAR(255),
|
|
256
|
+
count_frequency VARCHAR(100),
|
|
257
|
+
status VARCHAR(100) NOT NULL,
|
|
258
|
+
notes TEXT,
|
|
259
|
+
inventory_reconciliation_id SERIAL PRIMARY KEY,
|
|
260
|
+
created_at TIMESTAMP DEFAULT NOW(),
|
|
261
|
+
updated_at TIMESTAMP DEFAULT NOW(),
|
|
262
|
+
CONSTRAINT chk_variance_matches_count CHECK (variance_quantity IS NULL OR physical_quantity IS NULL OR book_quantity IS NULL OR variance_quantity = physical_quantity - book_quantity),
|
|
263
|
+
CONSTRAINT chk_unit_rate_non_negative CHECK (unit_rate IS NULL OR unit_rate >= 0)
|
|
264
|
+
);
|
|
265
|
+
|
|
266
|
+
CREATE INDEX idx_inventory_stock_reconciliation_count_date ON inventory_stock_reconciliation (count_date);
|
|
267
|
+
CREATE INDEX idx_inventory_stock_reconciliation_status ON inventory_stock_reconciliation (status);
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
`created_at`, `updated_at` and the primary key are technical metadata, not business fields.
|
|
271
|
+
No `FOREIGN KEY` is declared because no target table is part of this artifact set. There are
|
|
272
|
+
no sample records and no invented default values in the DDL.
|
|
273
|
+
|
|
274
|
+
```json
|
|
275
|
+
{
|
|
276
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
277
|
+
"title": "Inventory / Stock Reconciliation",
|
|
278
|
+
"type": "object",
|
|
279
|
+
"additionalProperties": false,
|
|
280
|
+
"properties": {
|
|
281
|
+
"Reconciliation Number": { "type": "string" },
|
|
282
|
+
"Count Date": { "type": "string", "format": "date" },
|
|
283
|
+
"Item Code": { "type": "string" },
|
|
284
|
+
"Item Name": { "type": "string" },
|
|
285
|
+
"Category": { "type": "string" },
|
|
286
|
+
"UOM": { "type": "string" },
|
|
287
|
+
"Location/Warehouse": { "type": "string" },
|
|
288
|
+
"Book Quantity": { "type": "number" },
|
|
289
|
+
"Physical Quantity": { "type": "number" },
|
|
290
|
+
"Variance Quantity": { "type": "number" },
|
|
291
|
+
"Unit Rate": { "type": "number" },
|
|
292
|
+
"Variance Value": { "type": "number" },
|
|
293
|
+
"Variance Reason": { "type": "string" },
|
|
294
|
+
"Damaged Quantity": { "type": "number" },
|
|
295
|
+
"Expired Quantity": { "type": "number" },
|
|
296
|
+
"Slow Moving Flag": { "type": "string" },
|
|
297
|
+
"Unrecorded Purchases": { "type": "number" },
|
|
298
|
+
"Unrecorded Issues": { "type": "number" },
|
|
299
|
+
"Investigation Notes": { "type": "string" },
|
|
300
|
+
"Adjustment Entry": { "type": "string" },
|
|
301
|
+
"Adjustment Date": { "type": "string", "format": "date" },
|
|
302
|
+
"Approved By": { "type": "string" },
|
|
303
|
+
"Counted By": { "type": "string" },
|
|
304
|
+
"Verified By": { "type": "string" },
|
|
305
|
+
"Count Frequency": { "type": "string" },
|
|
306
|
+
"Status": { "type": "string" },
|
|
307
|
+
"Notes": { "type": "string" },
|
|
308
|
+
"Inventory Reconciliation ID": { "type": "integer" }
|
|
309
|
+
},
|
|
310
|
+
"required": ["Count Date", "UOM", "Book Quantity", "Physical Quantity", "Status"]
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
`required` is justified field by field. `Count Date` is needed or the row is not a count.
|
|
315
|
+
`UOM` is needed or the quantities on the row are unreadable. `Book Quantity` and
|
|
316
|
+
`Physical Quantity` are the two halves of the comparison, so the record is meaningless
|
|
317
|
+
without both. `Status` is the state of the record, so it must always be explicit.
|
|
318
|
+
`Variance Quantity`, `Unit Rate` and `Variance Value` are calculated, and a calculated value
|
|
319
|
+
is never required while its source may legitimately be missing. `Variance Reason` is not
|
|
320
|
+
required because a row with no variance has no reason to give. `Count Frequency` is
|
|
321
|
+
conditional: record it once the business has established one. `Adjustment Date` and
|
|
322
|
+
`Adjustment Entry` are conditional on an adjustment actually being authorised.
|
|
323
|
+
|
|
324
|
+
```markdown
|
|
325
|
+
| CSV column | Notion property | Set after import |
|
|
326
|
+
|---|---|---|
|
|
327
|
+
| Reconciliation Number | Title | Use as the database title |
|
|
328
|
+
| Count Date | Date | Convert to Date |
|
|
329
|
+
| Item Code | Text | Leave as Text |
|
|
330
|
+
| Item Name | Text | Leave as Text |
|
|
331
|
+
| Category | Select | Convert to Select, add options after import: "Raw Material", "Work In Progress", "Finished Goods", "Consumable", "Packaging", "Spare", "Other" |
|
|
332
|
+
| UOM | Select | Convert to Select, add options after import: "Nos", "Kg", "Litre", "Metre", "Set", "Hour", "Box", "Packet" |
|
|
333
|
+
| Location/Warehouse | Text | Leave as Text |
|
|
334
|
+
| Book Quantity | Number | Convert to Number |
|
|
335
|
+
| Physical Quantity | Number | Convert to Number |
|
|
336
|
+
| Variance Quantity | Number | Convert to Number |
|
|
337
|
+
| Unit Rate | Number (format: currency) | Convert to Number, set format to Currency |
|
|
338
|
+
| Variance Value | Number (format: currency) | Convert to Number, set format to Currency |
|
|
339
|
+
| Variance Reason | Select | Convert to Select, add options after import: "Shortage", "Excess", "Damage", "Expiry", "Slow Moving", "Unrecorded Purchase", "Unrecorded Issue", "Data Entry Error", "Under Investigation" |
|
|
340
|
+
| Damaged Quantity | Number | Convert to Number |
|
|
341
|
+
| Expired Quantity | Number | Convert to Number |
|
|
342
|
+
| Slow Moving Flag | Select | Convert to Select, add options after import: "Yes", "No" |
|
|
343
|
+
| Unrecorded Purchases | Number | Convert to Number |
|
|
344
|
+
| Unrecorded Issues | Number | Convert to Number |
|
|
345
|
+
| Investigation Notes | Text | Leave as Text |
|
|
346
|
+
| Adjustment Entry | Text | Leave as Text |
|
|
347
|
+
| Adjustment Date | Date | Convert to Date |
|
|
348
|
+
| Approved By | Text | Leave as Text |
|
|
349
|
+
| Counted By | Text | Leave as Text |
|
|
350
|
+
| Verified By | Text | Leave as Text |
|
|
351
|
+
| Count Frequency | Select | Convert to Select, add options after import: "Monthly", "Quarterly", "Half-Yearly", "Annual" |
|
|
352
|
+
| Status | Select | Convert to Select, add options after import: "Not started", "In progress", "Blocked", "Done", "Cancelled" |
|
|
353
|
+
| Notes | Text | Leave as Text |
|
|
354
|
+
| Inventory Reconciliation ID | Text (preserve source ID) | Keep imported IDs as Text; optionally add a separate Unique ID property |
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## Field Reference
|
|
358
|
+
|
|
359
|
+
| # | Field | Type | SQL | JSON Schema | Notion | CSV example |
|
|
360
|
+
|---:|---|---|---|---|---|---|
|
|
361
|
+
| 1 | Reconciliation Number | `text` | `VARCHAR(255)` | `string` | Text | `REC-EXAMPLE-001` |
|
|
362
|
+
| 2 | Count Date | `date` | `DATE` | `string, format: date` | Date | `2026-01-15` |
|
|
363
|
+
| 3 | Item Code | `text` | `VARCHAR(255)` | `string` | Text | `ITEM-EXAMPLE-001` |
|
|
364
|
+
| 4 | Item Name | `text` | `VARCHAR(255)` | `string` | Text | `Example Item A` |
|
|
365
|
+
| 5 | Category | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Raw Material` |
|
|
366
|
+
| 6 | UOM | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Nos` |
|
|
367
|
+
| 7 | Location/Warehouse | `text` | `VARCHAR(255)` | `string` | Text | `Example Store` |
|
|
368
|
+
| 8 | Book Quantity | `number` | `NUMERIC` | `number` | Number | `10` |
|
|
369
|
+
| 9 | Physical Quantity | `number` | `NUMERIC` | `number` | Number | `8` |
|
|
370
|
+
| 10 | Variance Quantity | `number` | `NUMERIC` | `number` | Number | `-2` |
|
|
371
|
+
| 11 | Unit Rate | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `1.00` |
|
|
372
|
+
| 12 | Variance Value | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `-2.00` |
|
|
373
|
+
| 13 | Variance Reason | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Damage` |
|
|
374
|
+
| 14 | Damaged Quantity | `number` | `NUMERIC` | `number` | Number | `1` |
|
|
375
|
+
| 15 | Expired Quantity | `number` | `NUMERIC` | `number` | Number | `1` |
|
|
376
|
+
| 16 | Slow Moving Flag | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `No` |
|
|
377
|
+
| 17 | Unrecorded Purchases | `number` | `NUMERIC` | `number` | Number | `1` |
|
|
378
|
+
| 18 | Unrecorded Issues | `number` | `NUMERIC` | `number` | Number | `1` |
|
|
379
|
+
| 19 | Investigation Notes | `long_text` | `TEXT` | `string` | Text | `Illustrative row only - placeholder quantities that show the shape of the record and are not a real count or a real finding.` |
|
|
380
|
+
| 20 | Adjustment Entry | `text` | `VARCHAR(255)` | `string` | Text | `ADJ-EXAMPLE-001` |
|
|
381
|
+
| 21 | Adjustment Date | `date` | `DATE` | `string, format: date` | Date | `2026-01-16` |
|
|
382
|
+
| 22 | Approved By | `text` | `VARCHAR(255)` | `string` | Text | `Example Approver` |
|
|
383
|
+
| 23 | Counted By | `text` | `VARCHAR(255)` | `string` | Text | `Example Counter` |
|
|
384
|
+
| 24 | Verified By | `text` | `VARCHAR(255)` | `string` | Text | `Example Verifier` |
|
|
385
|
+
| 25 | Count Frequency | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Monthly` |
|
|
386
|
+
| 26 | Status | `select` | `VARCHAR(100)` | `string` | Select (add options after import) | `Done` |
|
|
387
|
+
| 27 | Notes | `long_text` | `TEXT` | `string` | Text | `Illustrative row only - delete this row before use.` |
|
|
388
|
+
| 28 | Inventory Reconciliation ID | `id` | `SERIAL PRIMARY KEY` | `integer` | Text (preserve source ID) | `(blank)` |
|
|
389
|
+
|
|
390
|
+
Quantities are `number`, money is `currency` with no currency symbol in the cell, and dates
|
|
391
|
+
are ISO `YYYY-MM-DD` in real date fields. Round once, at the end, and say so.
|
|
392
|
+
|
|
393
|
+
`Status` carries the module's status set. A record must not be `Done` while a required check
|
|
394
|
+
fails: a variance with no investigated reason, an adjustment with no named approver, or a
|
|
395
|
+
missing unit all hold it at `In progress` or `Blocked`.
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
See the [Select Options](references/select-options.md) reference for the full guidance.
|
|
399
|
+
|
|
400
|
+
## Examples
|
|
401
|
+
|
|
402
|
+
**Prompt**
|
|
403
|
+
|
|
404
|
+
```
|
|
405
|
+
Our godown stock and the books never match and nobody can say why.
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**Context first** - one question per message, nothing already answered:
|
|
409
|
+
|
|
410
|
+
> **Q:** How many items do you hold, and when did you last count them physically?
|
|
411
|
+
> **A:** 20 to 50.
|
|
412
|
+
>
|
|
413
|
+
> **Q:** What do you hold - raw materials, finished goods, consumables, or a mix?
|
|
414
|
+
> **A:** Mix.
|
|
415
|
+
>
|
|
416
|
+
> **Q:** How many stock locations or warehouses do you have?
|
|
417
|
+
> **A:** 1.
|
|
418
|
+
>
|
|
419
|
+
> **Q:** Do you want a full physical count of all items, or a cycle count of selected items?
|
|
420
|
+
> **A:** Yes.
|
|
421
|
+
>
|
|
422
|
+
> **Q:** Which do you mean: **full count of all items** or **cycle count of selected items**?
|
|
423
|
+
> **A:** Full count.
|
|
424
|
+
>
|
|
425
|
+
> **Q:** Who counts the stock?
|
|
426
|
+
> **A:** Storekeeper.
|
|
427
|
+
>
|
|
428
|
+
> **Q:** Who verifies the storekeeper's count?
|
|
429
|
+
> **A:** Manager.
|
|
430
|
+
>
|
|
431
|
+
> **Q:** Who approves a stock adjustment after a variance is investigated?
|
|
432
|
+
> **A:** Manager.
|
|
433
|
+
|
|
434
|
+
Recorded: `counted_by` is Storekeeper, `verified_by` is Manager, `approved_by` is Manager -
|
|
435
|
+
three separate answers to three separate questions, and the last one was not inferred from
|
|
436
|
+
the second. The bare `Yes` was not a choice, so it was re-asked. The last physical count date
|
|
437
|
+
is still `Unknown`, because nobody supplied it.
|
|
438
|
+
|
|
439
|
+
**Recommended next step** - offered, not built:
|
|
440
|
+
|
|
441
|
+
> One reconciliation record per item counted, carrying the book quantity, the physical quantity, the variance, the reason and the authorised adjustment, with the count sheet filed against the same record.
|
|
442
|
+
>
|
|
443
|
+
> Workflow: Count planned → Items counted → Compared with books → Variance investigated → Adjustment authorised → Adjustment booked → Reconciliation filed
|
|
444
|
+
>
|
|
445
|
+
> Want me to build the CSV, SQL DDL, JSON Schema and Notion mapping?
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
See the [Best Practices](references/best-practices.md) reference for the full guidance.
|
|
449
|
+
|
|
450
|
+
## Limitations
|
|
451
|
+
|
|
452
|
+
- Empty template only. It does not count stock, value inventory, change stock, or post
|
|
453
|
+
journal entries.
|
|
454
|
+
- The variance arithmetic can be done by hand or by the accounting package. What this
|
|
455
|
+
records is the count, the difference and the authorisation - not the conclusion about
|
|
456
|
+
what caused the shrinkage.
|
|
457
|
+
- It cannot tell theft from a mis-pick from an unrecorded issue. That determination is
|
|
458
|
+
made by a person who knows the operation, and this record only carries the reason they
|
|
459
|
+
gave. It does not decide whether a discrepancy is theft, misconduct or error.
|
|
460
|
+
- It does not design the valuation method, the reorder point or the costing policy, and it
|
|
461
|
+
states no tax treatment.
|
|
462
|
+
- It does not post entries, change inventory, or run commands or call external APIs.
|
|
463
|
+
- Select options are a starting set. Rename them to match how the business talks.
|
|
464
|
+
- No automation, reminders or sync. Those need the integration layer.
|
|
465
|
+
- Human review remains required for investigations, adjustments, legal, tax and disciplinary
|
|
466
|
+
matters before this drives any real decision.
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
See the [Security & Safety Notes](references/security-safety-notes.md) reference for the full guidance.
|
|
470
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
- Ask `Counted By` and `Verified By` as two questions. One answer to both is one answer.
|
|
6
|
+
- Keep every field name identical, and in the same order, across all four artifacts.
|
|
7
|
+
- Ship an empty template. A fabricated row in a delivered CSV is indistinguishable from a
|
|
8
|
+
real count once it is in a spreadsheet.
|
|
9
|
+
- Keep counting, verification and adjustment approval as three separate roles unless the user
|
|
10
|
+
explicitly says two of them are the same person.
|
|
11
|
+
- Never book an adjustment without a named approver. If nobody can approve, that is the
|
|
12
|
+
finding, not a detail to leave blank.
|
|
13
|
+
- Record the reason for a variance in words as well as in the select. The reason is a
|
|
14
|
+
judgement someone made, and the next reader needs to know who.
|
|
15
|
+
- Count on a stated frequency and write it into the record. A reconciliation with no count
|
|
16
|
+
frequency attached is not evidence that the count is regular.
|
|
17
|
+
- Never let a difference be corrected in the numbers to make a tie-out work. Record it and
|
|
18
|
+
mark it.
|
|
@@ -0,0 +1,42 @@
|
|
|
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 user said `yes` to "a full count or a cycle count?" and it was recorded
|
|
9
|
+
as a full count.
|
|
10
|
+
**Solution:** that question had no yes/no answer to give, so `yes` is not a choice. Re-ask
|
|
11
|
+
it as an explicit either/or and wait.
|
|
12
|
+
- **Problem:** `20 to 50` to "how many items, and when did you last count?" filled in a count
|
|
13
|
+
date as well.
|
|
14
|
+
**Solution:** keep only the answered half. The date stays `Unknown`.
|
|
15
|
+
- **Problem:** `Manager` was copied into `Verified By` because the manager also approves
|
|
16
|
+
adjustments.
|
|
17
|
+
**Solution:** three roles, three questions, three answers. Approval says nothing about
|
|
18
|
+
verification.
|
|
19
|
+
- **Problem:** an illustrative count was shipped in the CSV and got counted as a real count.
|
|
20
|
+
**Solution:** the template is a header row. Add a data row only when the user asks for one,
|
|
21
|
+
and label it.
|
|
22
|
+
- **Problem:** quantities, locations and variance reasons were filled with plausible values
|
|
23
|
+
to make the template look finished.
|
|
24
|
+
**Solution:** blank is a correct answer. Unknown is not zero.
|
|
25
|
+
- **Problem:** adjustments posted with no approver and no reason.
|
|
26
|
+
**Solution:** leave the status at `In progress` until the reason and the approver are
|
|
27
|
+
recorded. A variance without an investigated cause is a question, not an adjustment.
|
|
28
|
+
- **Problem:** a variance was marked `Done` because the adjustment had been booked.
|
|
29
|
+
**Solution:** a booked adjustment is not an investigated one. The reason and the approver
|
|
30
|
+
are the gate.
|
|
31
|
+
- **Problem:** a shortage was quietly written down to make the books agree.
|
|
32
|
+
**Solution:** record the difference and mark it for review. A forced tie-out is a hidden
|
|
33
|
+
adjustment.
|
|
34
|
+
- **Problem:** built a full system when one table was asked for.
|
|
35
|
+
**Solution:** build what was requested; mention the parent skill separately.
|
|
36
|
+
- **Problem:** all four artifacts drift apart.
|
|
37
|
+
**Solution:** derive all four from the Field Reference table, never by hand.
|
|
38
|
+
- **Problem:** Notion import shows every column as Text.
|
|
39
|
+
**Solution:** that is expected. Apply the property mapping table once, after import.
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
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
|
+
- @purchase-accounting - where unrecorded purchases are found and booked.
|
|
5
|
+
- @sales-accounting - where unrecorded issues usually turn out to have come from.
|
|
6
|
+
- @day-book - the stock entries this count is compared against.
|
|
7
|
+
- ](https://github.com/sickn33/agentic-awesome-skills/blob/main/skills/expense-accounting/SKILL.md) - absorbs the cost of damaged and expired stock.
|
|
8
|
+
- @party-ledger-reconciliation - the same compare-and-investigate logic applied to balances.
|
|
9
|
+
- @monthly-closing-statements - the closing that depends on this reconciliation.
|
|
10
|
+
- @audit-preparation - where the filed count sheets are audited.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
See the [Reusable Prompt](references/reusable-prompt.md) reference for the full guidance.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Relations
|
|
2
|
+
|
|
3
|
+
Link fields: none
|
|
4
|
+
|
|
5
|
+
This table declares no relation fields, so nothing here points at a database that does not
|
|
6
|
+
exist. Where the business wants the count sheet or the stock movement attached, add the link
|
|
7
|
+
field deliberately, as `VARCHAR(255)` with a comment in SQL, and as `Relation` in Notion only
|
|
8
|
+
once the target database is actually imported.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Reusable Prompt
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
I want to set up physical counts against book quantities, differences investigated and
|
|
5
|
+
authorised adjustments, for my company.
|
|
6
|
+
|
|
7
|
+
Ask me one short question at a time, and only about information I have not already
|
|
8
|
+
provided. Treat an ambiguous answer such as "yes" to a multiple-choice question as
|
|
9
|
+
unresolved and ask me to choose. If I answer only part of a question, record that part and
|
|
10
|
+
leave the rest unknown. If I do not know something, record it as unknown rather than
|
|
11
|
+
guessing, and never record unknown as zero.
|
|
12
|
+
|
|
13
|
+
Never infer or invent names, dates, quantities, values, locations, approvals, variance
|
|
14
|
+
reasons, roles or any other business fact.
|
|
15
|
+
|
|
16
|
+
Keep counting, verification and adjustment approval as three separate roles. Ask who counts,
|
|
17
|
+
who verifies and who approves an adjustment as three separate questions, and never fill one
|
|
18
|
+
from another.
|
|
19
|
+
|
|
20
|
+
Then recommend the smallest setup that fits my confirmed context and wait for me to ask
|
|
21
|
+
before you build.
|
|
22
|
+
|
|
23
|
+
When I ask you to build it, output only the artifacts I requested - CSV, SQL DDL, JSON
|
|
24
|
+
Schema and/or a Notion property mapping - as empty templates, using one identical canonical
|
|
25
|
+
field list, with identical field names and order, across all of them.
|
|
26
|
+
|
|
27
|
+
Do not include invented or illustrative transaction rows unless I explicitly request an
|
|
28
|
+
example row, and label any example row clearly as illustrative. A variance with no
|
|
29
|
+
investigated reason stays unresolved, and no record is marked done while a required check
|
|
30
|
+
is outstanding.
|
|
31
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Security & Safety Notes
|
|
2
|
+
|
|
3
|
+
- Never fill in real names, stock quantities, locations or banking data. Placeholders only:
|
|
4
|
+
`REC-EXAMPLE-001`, `ITEM-EXAMPLE-001`, `ADJ-EXAMPLE-001`.
|
|
5
|
+
- Do not process or reproduce real employee personal data, salaries, medical data, banking
|
|
6
|
+
information, passwords or unnecessary personal identifiers. If real employee data is
|
|
7
|
+
pasted, use only the minimum needed for the requested template and tell the user to remove
|
|
8
|
+
the rest from the conversation.
|
|
9
|
+
- Stock records expose inventory quantities, locations, staffing and operational controls.
|
|
10
|
+
Keep the file access-limited and do not circulate it outside the people who need it.
|
|
11
|
+
- Label example rows as synthetic, and keep bank details masked.
|
|
12
|
+
- Local reads, generation commands, and validation are part of a requested artifact build.
|
|
13
|
+
External writes, messages, provisioning, and publication require authorization for that
|
|
14
|
+
action and target; existing explicit authorization does not need to be repeated.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
See the [Common Pitfalls](references/common-pitfalls.md) reference for the full guidance.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Select Options
|
|
2
|
+
|
|
3
|
+
**Category**
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
Raw Material | Work In Progress | Finished Goods | Consumable | Packaging | Spare | Other
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
**UOM**
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Nos | Kg | Litre | Metre | Set | Hour | Box | Packet
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**Variance Reason**
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Shortage | Excess | Damage | Expiry | Slow Moving | Unrecorded Purchase | Unrecorded Issue | Data Entry Error | Under Investigation
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Slow Moving Flag**
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Yes | No
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Count Frequency**
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Monthly | Quarterly | Half-Yearly | Annual
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Status**
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Not started | In progress | Blocked | Done | Cancelled
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Every list above is a starting set, not a confirmed business taxonomy. If the user supplies
|
|
40
|
+
their own values, the user's values win, and the Notion column says add options after import
|
|
41
|
+
for exactly that reason. `Variance Reason` in particular is not a menu to pick from: a reason
|
|
42
|
+
nobody investigated is `Under Investigation`, never the first plausible option.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
See the [Relations](references/relations.md) reference for the full guidance.
|