Skip to content
Ritesh FirodiyaGet in touch

Work / Chitragupt / Wiki / Concepts

no-manual-entry

Conceptcanonicalverified 2026-09-01

CONCEPT.NO-MANUAL-ENTRY

No manual entry

Summary

There is no UI anywhere in chitragupt that lets a user type a money amount, sale, salary line, or holding into the ledger — every figure must derive from a parsed document.

Why it matters

This is the enforcement side of upload-only. Upload-only says "every fact has a source document"; no-manual-entry says "we never built a code path that bypasses that". The two principles are siblings: kill either one and the other collapses. A single "type your salary" field would mean some ledger rows have no source artefact, and the trace-to-document audit story breaks for the whole product. The ban is also a scope-shaping device — without it, chitragupt drifts from a tax-review platform into a bookkeeping tool, which is a different product with a different liability model.

Implications

  • No "Add expense" button anywhere. No "Add a trade". No "Type your salary". No "Override total income".
  • The only writer into the ledger is the Inbox parser pipeline.
  • Reconciliation conflicts (Form 16 vs 26AS) are resolved by choosing which uploaded source to trust, not by typing a corrected number.
  • Quick Check answers and category overrides are allowed (they label, they don't author amounts). A typed money value is not.
  • Failure-mode UX (failed parse, partial parse) must offer re-upload, not a manual fix box.
  • Any wireframe that shows a free-text money field is a SPEC violation. Push back, don't build.
  • Narrow exception (Portfolio only): a linked broker API pull is not manual entry — nothing is user-typed, the figures come straight from the broker's API response, persisted as its own immutable source artefact. See 2026-09-01-broker-api-sync-as-source. Tax, Expense, and Inbox are unaffected; the Inbox parser pipeline remains their only writer.

Related

Sources

  • .context/wiki/concepts/* § "Hard constraints (V1) — non-negotiable" — Upload-only row
  • .context/wiki/concepts/* § "What V1 explicitly does NOT include" — manual entry row
  • .context/wiki/concepts/* § "Hard rules" rule 1 (Inbox-as-only-writer)

Every project of mine is written down like this.

Read the résumé