NL Tax Evidence Indexer
Organize the evidence the user actually supplies—selected files, host attachments, and values stated in chat—without requiring a complete document folder. Keep the interaction conversational and ask only for evidence that matters to the active annual or provisional workflow.
Activation
Use this skill when the user asks to index or organize Dutch tax evidence, when an active workflow needs evidence for a section, or when selected files or chat amounts need source-traceable recording. Credit everything already supplied; do not restart intake or turn the exchange into a fixed upload checklist.
Read before acting
Resolve bundled paths relative to this skill directory and every workspace/...
path against the saved workspace_root.
- Read
../_shared/runtime-contract.mdfirst. - Read
../_shared/knowledge/methods/interactive-elicitation.mdfor the shared conversational and session-state contract. - Read reference/indexing-flow.md whenever this skill is active; it owns the attachment, indexing, provenance, and update procedure.
- Read reference/evidence-types.md before
assigning a canonical
evidence_type, such aswoz_beschikking,hypotheek_jaaroverzicht, orvoorlopige_aanslag_beschikking. - Read reference/extraction-boundaries.md before classifying or extracting document facts.
- Read
workspace/shared/session-progress.yamland the existingworkspace/taxpayer/evidence-index.yaml. If the index does not exist, seed it fromtemplates/evidence-index.yaml.
Keep resource loading, file maintenance, and orchestration invisible to the user unless a specific evidence item needs review.
Core contract
- Accept a user-selected folder, selected host attachments, values stated in chat, or any combination of these. Never require a file when the active workflow permits a chat value.
- Inventory only the locations the user selected. The optional Python helper catalogs file metadata and hashes; it does not classify documents, extract tax facts, or choose tax treatment.
- Assign evidence types and confidence conversationally from the document and the reviewed references. Do not use a deterministic tax-classification or decision engine, compute tax, decide deductibility, or choose a partner allocation.
- Preserve provenance. A file stays
source: file; a value stated in chat usessource: user_chat, its verbatimquote, andstated_at; a deferred fact usessource: unknownand remains open. - Return chat answers to the active workflow for its profile or section notes.
An evidence-index chat row is only a resume-compatible record when the
indexer was already active. Do not invoke this indexer solely to turn chat
into document evidence; pure chat collection does not require an
evidence-index.yamlentry. - Never silently choose between conflicting file and chat values or between competing documents. Mark the item for review, describe the conflict, and ask the user which value or document should control.
- Ask at most three closely related evidence questions in one turn. Defer an
unavailable item to
missing-info.mdand continue with another useful item.
Optional catalog helper
Run scripts/index_evidence.py only from its resolved bundled location and only
when Python can already access that location and the selected files. The helper
is optional: never ask the user to install Python, and never copy or execute a
script from workspace/, uploads/, or evidence/.
The helper may populate inventory metadata and file_sha256. A null hash does
not block classification, extraction, or downstream preparation. Record
check_performed_by: checked_by_script when it ran successfully; otherwise use
checked_by_agent after completing the inventory with available file tools.
Output ownership
Write or update only:
workspace/taxpayer/evidence-index.yamlworkspace/shared/evidence-review-questions.mdworkspace/shared/session-progress.yamlworkspace/shared/missing-info.mdwhen an item is deferred
Do not write to workspace/annual/** or workspace/provisional/**. The active
annual or provisional workflow owns tax treatment and its section artifacts.
User-facing close
In two to four sentences, report files added or updated, chat values recorded, and the next one or two evidence items that would unblock the active workflow. Do not add generic warnings.
Authenticated-portal boundary: Never use a browser, Claude in Chrome, computer use, screen interaction, a connector, or another tool to open or operate an authenticated tax portal; never log in, enter or change values, click controls, sign, send, submit, retrieve private account data, or ask for, accept, store, or process credentials or sessions. Those actions remain human-only even with taxpayer permission or available credentials.