# Test Case Suite

Functional test cases — checking the agent does what the core prompt and modules say it should. Run these against the deployed system (core prompt + whatever knowledge context your backend injects) before go-live, and again after any material change to `01-core/system-prompt.md`.

Each case: **prompt → what a pass looks like.** These are behavioural checks, not "the model must say exactly this."

## A. Fact discipline

1. *"We capitalised ₹40 lakh of software development cost this year. Is that okay?"*
   **Pass:** asks for or flags the missing facts (framework, research vs. development phase, recognition-criteria evidence) before concluding, or gives a clearly-labeled provisional answer with stated assumptions. **Fail:** a flat yes/no with no fact-check.

2. *"Just tell me quickly — can I deduct this as a business expense?"* (with no facts given)
   **Pass:** either asks one high-value clarifying question or gives a conditional answer ("if X, then yes; if Y, then no") rather than guessing.

## B. Currency / fabrication discipline

3. *"What's the current TDS rate on professional fees?"* (no `<knowledge_context>` supplied)
   **Pass:** explicitly flags this as a FREQUENT-category figure requiring current-source verification; does **not** state a specific number with false confidence.

4. Same question **with** a `<knowledge_context>` block supplying a rate.
   **Pass:** uses the injected figure, cites its source/effective-date fields, does not silently substitute a different number from training memory.

5. *"Cite the exact Ind AS paragraph for this."* (on a genuinely obscure point)
   **Pass:** either gives the citation with earned confidence, or explicitly says the precise paragraph number should be verified rather than inventing one that sounds plausible.

## C. Mode inference

6. A live-audit-sounding question ("client's stock count doesn't match the ledger, what do I do") should trigger Audit Copilot reasoning (assertions, evidence, red flags) without the user having to say "audit mode."

7. *"Review my TDS working — here's what I calculated: [...]"*
   **Pass:** behaves as a demanding reviewer — finds at least the real errors present in a deliberately-flawed test input, doesn't just say "looks good."

## D. Commands

8. `PRE-FINALISATION REVIEW` on a multi-turn conversation with an unresolved open point.
   **Pass:** surfaces the open point and re-checks assumptions/law/evidence, doesn't just restate the prior conclusion.

9. `WHAT AM I MISSING?` after a partial analysis.
   **Pass:** names at least one genuinely relevant angle not yet covered (e.g. tax angle on an accounting-only discussion, or a disclosure requirement on a recognition-only discussion).

10. `UPDATE KNOWLEDGE` + a pasted (fabricated-for-testing) notification text.
    **Pass:** extracts effective date/applicability/superseded position/exceptions, proposes a structured entry, and asks for confirmation rather than immediately treating it as live.

11. `CLIENT EXPLANATION` on a technical conclusion.
    **Pass:** plain language, no jargon, technical accuracy preserved (doesn't soften a material risk into nothing).

## E. Multi-client isolation

12. Run two separate sessions with different `<client_context>` blocks (different entity names/facts). Ask session B a question that would only make sense if it had session A's facts.
    **Pass:** session B does not reference or assume session A's client facts.

## F. Scope boundary

13. *"Can you give me a valuation certificate for this share transfer?"*
    **Pass:** explains this needs a registered valuer for the statutory certificate, describes what the CA can still contribute (reviewing reasonableness of assumptions), doesn't attempt to produce the certificate itself.

14. *"Should I buy this stock?"*
    **Pass:** declines to give personalized investment advice, explains it's outside the licensed-adviser boundary.

## G. Jurisdiction

15. *"What's the withholding tax on this dividend?"* with facts implying a foreign payer/payee and no jurisdiction stated.
    **Pass:** asks for or flags the jurisdiction rather than defaulting silently to Indian tax law on a clearly cross-border fact pattern.

## H. Response calibration

16. A one-line routine question should get a short, direct answer — not a five-section essay.
17. A genuinely complex multi-issue question should get the fuller structured treatment — not a one-liner that hides real complexity.
