Skip to content
chiltepin
chiltepin docs
Blocks reference

Quality & audits

When to use each of the 5 quality & audits blocks, with a live example of every one.

The quality & audits blocks: what each one is for, how to choose between neighbours, and a live starter example you can edit — converted at build time from the authoring skill your agent reads. Every example body is YAML; in a real doc the fence language is the block type (for example sequence … ). Schemas are strict — unknown fields are rejected. The full field contract for any block — every field, enum, and terse one-line form, generated from the schema — is npx chiltepin block <type>. See the block catalog for every block rendered on one page.

Shape: Verdicts with evidence. What is wrong now (audit), what passes and fails a standard (checklist), what is over budget (perfbudget), how long the tail is (percentiles), and what an attacker can do (threatmodel). Answers: What did the review find? Are we ready? Are we within budget? How slow is the slow path? Where can this be attacked, and what stops it? Not this family: what MIGHT go wrong → risk (planning.md); service targets over time → slo (tables-data.md); measured results side by side → benchmark (tables-data.md); where the time goes in one request → spans.

audit — findings register

Severity-ranked rows with evidence, fix, owner, status, and a count strip per severity. Answers: what did the review find, and how bad is it? One finding per row; evidence is what was observed (a path, a query, a log line), fix the change. audit, not risk, for defects found; risk for possibilities. audit, not table: the severity order and the counts are derived.

```auditeditable · live
renderedchiltepin renders this
SECTION 01 · Audit findings

Security review — payments service

scopepayments-api, payments-workerdate2026-09-01auditorAppSec
4 findings1 critical1 high1 medium1 info
IDSeverityFindingEvidenceFixOwnerStatus
F2criticalCard BIN logged at INFOLoggingworker.log line 2231Mask to first 2 digits; add the log-scrub testpaymentsopen
F1highRefund endpoint has no rate limitAPIPOST /refunds accepted 500 req/s in the load testAdd the shared limiter at 20 req/min per keypaymentsfixing
F3mediumDependency openssl 3.0.8 has a known CVESupply chainBump to 3.0.14platformfixed
F4infoHealth endpoint leaks build SHAAPIaccepted
Valid — passes chiltepin check

checklist — pass / fail with evidence

Items, or groups of items, each with a verdict and the evidence behind it; the footer derives the pass rate. Terse: "[pass] item — evidence" (quote it: the bracket is YAML flow syntax). Answers: are we ready, and what is missing? checklist for a standard applied once; statustable for work in flight; list with check markers when nothing is being verified.

```checklisteditable · live
renderedchiltepin renders this
SECTION 01 · Checklist

Production readiness — search-indexer

PRR v4
Observability
pass
Dashboards for the four golden signalsgrafana/search-indexer
pass
Alerts route to the on-callpagerduty svc P4
partial
Traces sampled at 10%target is 100% on errors
Resilience
fail
Load test at 2× peaknot run since the Kafka move
n/a
Multi-region failoversingle-region service by design
2 pass · 1 fail · 1 partial · 1 n/apass rate 63%
Valid — passes chiltepin check

perfbudget — budgets vs measured

One bar per metric against its budget mark; over / near / ok derived (lowerIsBetter: false for scores and throughput). Answers: are we within budget, and by how much? perfbudget for targets with a pass line; benchmark for candidates against each other; stats for KPIs with trends.

```perfbudgeteditable · live
renderedchiltepin renders this
SECTION 01 · Performance budget

Product page — web vitals

PERF BUDGET
Performance budget: 5 metricsp75, mobile, 4G, 30-day field databudgetLCPbudget ≤ 2500ms2140msokINPbudget ≤ 200ms260msoverCLSbudget ≤ 0.10.04okJS transferredbudget ≤ 300KB285KBnearLighthouse perfbudget ≥ 9084over
Legendover budgetnear — within 10%within budgetbudget
2 over1 near2 ok
Valid — passes chiltepin check

percentiles — latency distribution per row

p50 · p90 · p95 · p99 · max per endpoint on one axis, the SLO as a rule; scale: log for a long tail. Answers: how slow is the slow path? A p99 past the SLO is marked. percentiles for the tail; chart line for latency over time; spans for where the time goes inside one request.

```percentileseditable · live
renderedchiltepin renders this
SECTION 01 · Latency percentiles

Checkout API latency — last 7 days

PERCENTILES
Latency percentiles: 3 rows0ms1000ms2000ms3000ms4000msSLO 300msPOST /checkout420GET /cart90POST /payments240900
Legendp50p90 · p95p99p99 over the SLOmaxSLO
Valid — passes chiltepin check

threatmodel — STRIDE on a data flow

The dfd shapes inside dashed trust boundaries, channel: plain hops marked, and a threats table keyed to nodes or edges with the STRIDE letter. Answers: where can this be attacked, and what stops it? One trust boundary per block; put the mitigations in the table, not in prose. threatmodel, not dfd, when threats are the question; audit for what a review found.

```threatmodeleditable · live
renderedchiltepin renders this
SECTION 01 · Threat model

Login — STRIDE

THREAT MODEL
Threat model: 3 nodes, 2 flows, 3 threatsTrusted networkInternetEXTBrowserAuth serviceDBUsers DBPOST /loginSELECT by email
Legendprocessexternal entitydata storetrust boundarytls (lock)internal
IDSTRIDETargetThreatMitigationSeverityStatus
T1SBrowserCredential stuffingRate limit + breached-password checkhighmitigated
T2IAuth serviceVerbose error reveals whether the email existsOne generic messagemediumopen
T3TUsers DBPassword hash column altered by an adminAudit log + Argon2idhighaccepted
Valid — passes chiltepin check