Fairness & AI Ethics Statement
Effective 2026-05-28
Engineering reports are read by managers, peers, and sometimes promotion committees. We design Enginara so its AI cannot be used to shame, rank, or punish individual engineers — and we publish the exact rules so you can hold us to them.
1. The principle
Engineering activity is a poor proxy for engineering quality. Commits, PRs, and review counts measure what the tools observe — not the time spent mentoring, planning, pairing, debugging in person, or responding to incidents. A weekly report that ranks people on those numbers is misleading and harmful.
Enginara's AI is therefore built to describe patterns (workload concentration, review bottlenecks, delivery risks) — not to render verdicts on individuals.
2. Hard rules the AI must follow
Every AI-generated weekly report is bound by the following rules, enforced in code:
- Discuss patterns in aggregate (e.g. "review load is concentrated on 1 reviewer") — never name and shame an individual.
- Every factual claim must reference an evidence ID that literally appears in the deterministic metric snapshot. The model is not permitted to invent evidence.
- Output is validated against a strict JSON schema. Reports that do not match are rejected, not surfaced.
- A list of forbidden terms is checked against every response. If any appears, the report is rejected and the customer is shown a regeneration prompt — never a partial or judgmental draft.
3. The forbidden terms list (public)
The exact list of terms that will cause an AI report to be rejected is below. It is intentionally bilingual (English / Indonesian) because our customer base is bilingual. We update this list when customers report new harmful framings.
The list above is the live source of truth — it is rendered directly from the constant our backend validator checks against. Workspace owners can also review every AI generation event (including which terms triggered a rejection, if any) in Settings → Audit log.
4. Where the rules live
- System prompt for every report type explicitly forbids singling out individuals.
- The Developer Report framing adds a reinforced reminder that patterns must be described in aggregate.
- A post-generation validator scans the response for forbidden terms before saving the report. A match throws an
InvalidAiResponseExceptionand the report is marked failed, not delivered. - A factuality checker rejects any claim whose evidence IDs are not present in the deterministic snapshot.
5. What we cannot promise
AI is probabilistic. We cannot guarantee a model will never produce a judgmental phrasing that evades the forbidden-terms list. We can — and do — make sure that when it does, the output is rejected before any human sees it, and that the regeneration prompt is explicit about the violation.
Customers retain full control: every workspace can disable AI narrative generation entirely and rely on the deterministic draft report (no LLM involved) instead.
6. How to report a fairness issue
If you receive a report that you believe singles out an individual or makes a judgmental claim, send it to fairness@enginara.app. We will investigate within 5 business days, share the root cause, and — where appropriate — extend the forbidden terms list and publish the update here.
7. Audit log
Every AI report generation is recorded in the per-workspace audit log: who triggered it, which evidence was passed in, and what the validation result was. Owners can review the trail at any time.
See the rest of our policies on the Privacy, Security, and DPA pages.

