source-document-filing – Documents & Office skill for AI agents
Source document register: document type and number, party, amount, index key, storage location, retention period and verification. Use for document filing.
Install the source-document-filing skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/source-document-filing-5af82.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /source-document-filing – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/source-document-filing-5af82.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $source-document-filing – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/source-document-filing-5af82.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /source-document-filing – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/source-document-filing-5af82.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /source-document-filing – then describe the task you want done.
SKILL.md content
Source Document & Filing
What it is: Indexed register of every supporting document, linked to the entry it supports.
Overview
Works out the smallest useful Source Document & Filing setup for the business in front of it, then
builds it only when asked. The default output is a short recommendation, not a
spreadsheet. Artifacts - CSV, SQL DDL, JSON Schema, Notion mapping - are produced on
request, from one field list so they cannot drift apart.
Layer: Layer 2: Document. Fits: Growth stage. Table code: n/a.
When to Use This Skill
- source document filing
- document index register
- bill and voucher filing tracker
- supporting document audit trail
Also use it when the user says "indexed register of every supporting document, linked to the entry it supports", or describes the same process happening in a
spreadsheet, a document or someone inboxes.
Do not use it for: day-to-day bookkeeping, tax filing, or legal advice. This skill produces
empty templates only - it never holds or processes real employee or customer data.
How It Works
The upstream shared execution contract is not bundled; follow the explicit intent, artifact and authorization rules below. The module-specific rules below define only domain fields, decisions, calculations, and safety constraints.
Step 1 - Identify intent
Read the request and pick the intent before asking anything.
- "set up" or "build" or "create" -> the user wants artifacts; go to Step 2.
- "our process is ..." or "it is in a sheet" -> the user wants to move an existing process; capture it, then Step 2.
- "is this right" or "review" or "audit" -> the user wants a check, not a build; answer from what they share.
- "how do I ..." -> advice question; answer directly and offer the build only if it helps.
Ask only if this is the highest-value missing fact; otherwise proceed without an opener:
> Q: Which document types do you currently file?
Step 2 - Ask only what is missing
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.
Skip anything the user already answered, in any earlier message. Ask the rest one at a
time, and stop as soon as the remaining answers would not change the output.
- Documents - Which types? / Purchase, sales, payroll? / How many a month?
- Filing - Physical, digital or both? / How are files named and sorted?
- Indexing - Any index or reference in use? / By period, by party or both?
- Retention - How long to keep? / Any legal retention rules? / Who disposes?
- Outcome - What do you need? / A register, a reindex plan or both?
Never invent an answer. If the user does not know, record it as unknown and carry on.
Step 3 - Hold the internal context
Hold the answers in this shape. It stays internal - it is not shown to the user unless
they ask, and it never carries a value the user did not give.
module: source-document-filing
intent: null # setup | advice | review | fix | build | convert | export
scale: null # Starter | Growth | Scale, only if the answer changes it
areas:
"Documents": null
"Filing": null
"Indexing": null
"Retention": null
"Outcome": null
requested_outputs: [] # csv | sql | json | notion | xlsx - requested formats only
confirmed_facts: [] # only what the user actually said
open_questions: [] # the unanswered ones, in the order worth askingStep 4 - Recommend the smallest workflow
Build an already requested artifact without asking again. For advice-only requests, give a short recommendation and offer the relevant artifact.
Recommended approach: One register row per document, with a reference key built as period/party (for example 2026/08/BLUEPEAK) so retrieval is by month and by party, and relation links to the voucher and the transaction it supports.
Why this one: Audits and assessments fail on missing support, not on missing entries. A document register with a fixed index key and a link back to the entry is what makes an entry traceable in seconds.
Workflow: Document received → Referenced and indexed → Filed → Linked to entry → Verified
Step 5 - Build only on request
Once the user asks for it, derive the fields from the confirmed context and emit the
requested artifacts. For machine-readable text, keep prose outside the data; for files,
provide a usable link. Report material validation failures or limitations separately.
**A selected Notion output is rendered by notion-manual-import, so route the
Notion step there.** When the user selects Notion, hand that step to
@notion-manual-import: it holds the CSV, the property
mapping, the import steps and the verification checklist, and it renders the Field
Reference below instead of defining a table of its own. Do not restate the mapping
here and do not improvise the import steps. Manual CSV and mapping outputs need no
connection. For requested workspace changes, follow the shared contract: verify actual
tool access and the target before writing. A user saying "connected" is not tool evidence.
Never ask for a Notion password or token.
Document Reference,Document Type,Document Number,Document Date,Party Name,Party PAN/VAT,Amount,Currency,Tax Amount,TDS Amount,Source Department,Index Key,Storage Location,Retention Period,Linked Voucher,Linked Transaction,Document Availability,Verification Status,Verified By,Verified Date,Notes,Document Filing ID
DOC-2026-0442,Purchase Invoice,INV-8841,2026-08-14,Bluepeak Supplies,MASKED-TAX-ID,84500.00,INR,15210.00,2112.50,Purchase,2026/08/BLUEPEAK,Rack B / Folder 7,8 years,VCH-2026-0912,PUR-2026-0041,Original on file,In progress,Sneha Iyer,2026-08-15,Challan and PO filed together with the invoice.,FILE-0442CREATE TABLE source_document_filing (
document_reference VARCHAR(255),
document_type VARCHAR(100) NOT NULL,
document_number VARCHAR(255),
document_date DATE NOT NULL,
party_name VARCHAR(255),
party_pan_vat VARCHAR(255),
amount NUMERIC(14,2) NOT NULL,
currency VARCHAR(255),
tax_amount NUMERIC(14,2),
tds_amount NUMERIC(14,2),
source_department VARCHAR(100) NOT NULL,
index_key VARCHAR(255),
storage_location VARCHAR(255),
retention_period VARCHAR(255),
linked_voucher VARCHAR(255), -- relation -> target record
linked_transaction VARCHAR(255), -- relation -> target record
document_availability VARCHAR(100) NOT NULL,
verification_status VARCHAR(100) NOT NULL,
verified_by VARCHAR(255),
verified_date DATE,
notes TEXT,
document_filing_id VARCHAR(255) PRIMARY KEY,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Source Document & Filing",
"type": "object",
"additionalProperties": false,
"properties": {
"Document Reference": { "type": "string" },
"Document Type": { "type": "string" },
"Document Number": { "type": "string" },
"Document Date": { "type": "string", "format": "date" },
"Party Name": { "type": "string" },
"Party PAN/VAT": { "type": "string" },
"Amount": { "type": "number" },
"Currency": { "type": "string" },
"Tax Amount": { "type": "number" },
"TDS Amount": { "type": "number" },
"Source Department": { "type": "string" },
"Index Key": { "type": "string" },
"Storage Location": { "type": "string" },
"Retention Period": { "type": "string" },
"Linked Voucher": { "type": "string" },
"Linked Transaction": { "type": "string" },
"Document Availability": { "type": "string" },
"Verification Status": { "type": "string" },
"Verified By": { "type": "string" },
"Verified Date": { "type": "string", "format": "date" },
"Notes": { "type": "string" },
"Document Filing ID": { "type": "string" }
},
"required": [
"Document Type",
"Document Date",
"Amount",
"Source Department",
"Document Availability",
"Verification Status"
]
}| CSV column | Notion property | Set after import |
|---|---|---|
| Document Reference | Title | Use as the database title |
| Document Type | Select (add options after import) | Convert to Select, add options: "Purchase Invoice", "Sales Invoice", "Purchase Order", "Sales Order", "Delivery Challan", "Receipt", "Payment Voucher", "Bank Statement", "Cheque Record", "Expense Bill", "Contract/Agreement", "Salary Sheet", "Wage Sheet", "Tax Document", "TDS Document", "Import Document", "Fixed Asset Invoice", "Other" |
| Document Number | Text | Leave as Text |
| Document Date | Date | Convert to Date |
| Party Name | Text | Leave as Text |
| Party PAN/VAT | Text | Leave as Text |
| Amount | Number (format: currency) | Convert to Number, set format to Currency |
| Currency | Text | Leave as Text |
| Tax Amount | Number (format… (full content is in the download package)
Related skills
- spreadsheet-manual-build – Spreadsheet Manual Build: an empty Excel workbook or CSV from a confirmed field list…
- startup-business-analyst-business-case – Generate comprehensive investor-ready business case document with market, solution…
- tech-matrix – Reference document for monopoly tech-matrix.
- template-library – Template register: name, type, owning module and department, owner, last updated and…
- unpaid-intern – A free second brain for work in plain markdown files the user owns. Turns transcripts…
- url-to-markdown – Fetch a public webpage as clean Markdown for an agent: read, summarize, quote, or cite…
- verify-document – Check whether a document (PDF or image) shows signs of tampering or forgery before you…
- weaviate-cookbooks – Build Weaviate AI apps from official cookbook blueprints for RAG, agentic RAG, data…