2. Empty catch blocks
grep -r "catch.{}" --include=".ts" --include="*.js" | head -5
3. String concat in queries (SQL injection)
grep -rE "SELECT.${|INSERT.${" --include=".ts" --include=".js" | head -5
</quick_checks>
<data_correctness>
For any pipeline that extracts or transforms figures (financial, metrics, counts):
- Parse deterministically (a real parser, regex, typed loader). The LLM never
generates, transforms, or "fixes" numeric values.
- Units are explicit at parse time (percent vs fraction, counts vs currency);
a value never crosses unit categories through arithmetic.
- Tie-out gate: derived aggregates must reproduce the source's own totals before
any output is shown downstream. A delta between your output and the source is
assumed to be YOUR normalization bug until proven otherwise.
- Silent-empty guard: "no findings" produced from an empty parse is a failure of
the parse, not a finding.
</data_correctness>
<verdict>
Any Big 5 violation = NOT READY
Fix before commit. No exceptions.
</verdict>
<on_complete>
agentdb write-end '{"skill":"quality","big5_checked":true,"violations":N}'
</on_complete>
</skill>