File size: 2,390 Bytes
59db361 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | [
{
"name": "query_ledger",
"sig": "query_ledger(filters | sql) -> rows[]",
"desc": "Read-only query over the task's ledger. Row cap enforced — the cap is what makes search strategy observable."
},
{
"name": "get_entry",
"sig": "get_entry(entry_id) -> entry",
"desc": "Full detail of one JE: lines, debits/credits, source, preparer, posting timestamp."
},
{
"name": "list_documents",
"sig": "list_documents(entry_id) -> doc_meta[]",
"desc": "Support metadata only — type, filename, pages. Never content."
},
{
"name": "open_document",
"sig": "open_document(doc_id, page?) -> text",
"desc": "Read a support document. Primary process signal: the evidence-access log separates a reasoned verdict from a lucky guess."
},
{
"name": "get_policy",
"sig": "get_policy(topic) -> policy_text",
"desc": "Policy clause: capitalisation thresholds, approval limits, cut-off rules, accrual methodology."
},
{
"name": "get_master_data",
"sig": "get_master_data(type, id) -> record",
"desc": "Chart of accounts, vendor master, period calendar, approval matrix, user roles. Returns status flags."
},
{
"name": "recompute",
"sig": "recompute(expression) -> value",
"desc": "Deterministic calculator. Presence or absence of a recomputation is itself gradeable."
},
{
"name": "aggregate",
"sig": "aggregate(group_by, metric, filters) -> rows[]",
"desc": "Population statistics: counts, sums, distributions, digit profiles. Required at L3, withheld at L1."
},
{
"name": "compare_period",
"sig": "compare_period(account, period_a, period_b) -> delta",
"desc": "Prior-period comparison for reasonableness and back-testing."
},
{
"name": "request_info",
"sig": "request_info(entry_id, question) -> response | UNAVAILABLE",
"desc": "Ask the simulated preparer for missing support. Some answers are UNAVAILABLE by design."
},
{
"name": "disposition",
"sig": "disposition(entry_id, verdict, issue_type, rationale, evidence_ids[]) -> ack",
"desc": "Terminal per entry. verdict ∈ {approve, flag, reject, insufficient_evidence}. Citing an unopened document scores as fabrication."
},
{
"name": "submit",
"sig": "submit() -> end_episode",
"desc": "Ends the episode. Undispositioned entries score as implicit approvals."
}
]
|