DESCRIPTION
This is a staff/principal-level initiative to build VELAR's TSE compliance, audit & governance command center — a regulator-grade system with the rigor a senior engineer with years of experience brings to audit and workflow platforms. It goes far beyond a review list: a formally-specified workflow engine with optimistic concurrency and compensations, an explainable + versioned + backtestable rules/policy engine, policy-based (ABAC) authorization with segregation of duties and dual-control approvals, on-chain reconciliation that tolerates eventual consistency, a cryptographically chained (hash-linked) audit log for tamper evidence, an SLA/escalation engine, BI-grade compliance analytics with forecasting, and streaming tamper-evident exports. Critically, the entire system must be designed to be verified locally with in-memory fakes, simulations, and property/concurrency tests — no VELAR database, secrets, or external APIs required.
GOAL
A correct-by-design regulator command center where TSE staff triage an assignable, SLA-tracked queue; each report is reconciled against on-chain data and scored by an explainable, versioned rules engine; decisions flow through a formally-specified workflow with dual-control and optimistic concurrency; every action is written to a hash-chained immutable audit log; and compliance is monitored, forecast, and exported — all provable via fakes/simulations and property/concurrency tests, no live infrastructure.
REQUIREMENTS
Workflow engine (formally specified)
- Model the review workflow as a formally-specified state machine (
enviado → en_revisión → observado → corregido/reenviado → aprobado/rechazado) with typed guards, effects, and compensations. Enforce legal-only transitions, optimistic concurrency (version/etag; reject stale writes), and dual-control ("four-eyes") approvals where required. Prove properties (no illegal transition reachable, idempotent transition handlers).
Rules / policy engine (explainable, versioned, backtestable)
- A rules engine evaluating reports against declared vs on-chain data: produce typed, explainable discrepancy findings (amount mismatch, missing/unknown bond refs, totals not reconciling, overdue, threshold breaches) each with a severity score and a human-readable explanation trace.
- Versioned rule sets with the ability to backtest a rule set against historical fixtures and diff outcomes. Deterministic; exhaustive + property-based tests.
- On-chain reconciliation that tolerates eventual consistency (confirmation/tolerance windows, re-check semantics) fed by fixtures.
Authorization, audit, SLA
- ABAC / policy-based authorization (attributes: role, assignment, party scope, amount thresholds) with segregation of duties; TSE reviewer vs admin vs delegated access. Enforced in the backend.
- A hash-chained immutable audit log (each entry links the previous entry's hash) with a verifier that detects tampering/gaps; every command appends an entry.
- An SLA + escalation engine: per-item due dates, breach detection, escalation ladders, and notifications/escalations (via the notifications platform; mocked).
Analytics, exports, frontend
- BI-grade compliance analytics as pure functions: per-party compliance rate, overdue/at-risk, on-time trends, reviewer workload/SLA attainment, and a simple forecast (e.g. projected overdue). Exhaustively tested.
- Streaming, tamper-evident exports (CSV/PDF) of decisions and compliance reports (deterministic from fixtures; large-export streaming design).
- Frontend command center (
apps/web/app/tse/reportes/, revision/, auditoria/, analytics/): assignable queue with server-side filter/sort/cursor pagination and saved views; a side-by-side reconciliation review workspace with explainable findings and a dual-control decision panel; the hash-chained audit-trail viewer with integrity status; KPIs/forecast charts; exports. RBAC-aware, localized, responsive, accessible.
Data & observability
- Migrations (FILES) for workflow versioning/concurrency, rule-set versions, audit-chain, SLA config — with indexing strategy + RLS. Observability: metrics (queue depth, SLA breaches, decision latency, rule-eval counts) behind interfaces.
ACCEPTANCE CRITERIA
- Property/concurrency tests prove: no illegal workflow transition is reachable; optimistic-concurrency rejects stale writes; dual-control requires two distinct authorized approvers; and transition handlers are idempotent — all against in-memory fakes.
- Rules-engine tests (incl. property-based + backtest-diff) prove correct, explainable, severity-scored findings across clean/mismatch/missing/overdue/threshold cases and across rule-set versions.
- The hash-chained audit log verifier detects any tampering or gap (tested); every command appends an entry.
- ABAC/segregation-of-duties tests prove reviewer/admin/delegated/party boundaries; on-chain reconciliation tests cover confirmation/tolerance windows.
- SLA/escalation and analytics/forecast are unit-tested (edge cases: empty/single/sparse); exports are deterministic and streaming-designed.
- Every external dependency (notifications, file access, on-chain data, observability) is a fake/stub; the whole system runs in tests with no live infra.
- Frontend (fakes/fixtures): queue + cursor pagination + saved views, reconciliation workspace with dual-control, audit-chain viewer, KPIs/forecast, exports — all work with RBAC.
- New types/interfaces exported from
packages/types; migrations present, append-only, with RLS + documented indexing.
npm run build, npm run lint, npm run test pass in apps/api and apps/web with NO VELAR credentials.
- Docs updated (
docs/BACKEND.md, docs/FRONTEND_GUIDE.md) with the workflow spec, rules-engine + backtesting, ABAC model, audit-chain design, SLA engine, and exports.
NOTES
Relevant files: apps/api/src/reports/ (major expansion), apps/api/src/analytics/, apps/api/src/audit/audit.service.ts, apps/api/src/notifications/notifications.service.ts, apps/api/src/auth/roles.guard.ts, apps/api/src/auth/roles.decorator.ts, apps/api/src/common/, apps/api/src/common/supabase/supabase.service.ts, apps/web/app/tse/reportes/, apps/web/app/tse/revision/, apps/web/app/tse/auditoria/, apps/web/app/tse/analytics/, apps/web/components/, apps/web/lib/, packages/types/src/audit.ts, packages/types/src/roles.ts, packages/types/src/index.ts, supabase/migrations/. EXTEND the existing review endpoint (PATCH /reports/:id/review), don't rewrite (docs/AGENTS.md §3). Depends on the party-side "Monthly report lifecycle" epic for the report/version schema. audit_events is append-only and authorization is backend-owned (docs/AGENTS.md §5).
No VELAR credentials required: the entire system must be exercisable via in-memory fakes/simulations and property/concurrency tests — do NOT use VELAR's database, passwords, service_role, or any external API/provider key.
Difficulty: Staff / Principal — senior (years of experience in audit/workflow/governance systems), maximum complexity
Priority: High
CAMPAIGN REQUIREMENTS (FWC26)
To be eligible for the reward on this issue, the contributor must:
DESCRIPTION
This is a staff/principal-level initiative to build VELAR's TSE compliance, audit & governance command center — a regulator-grade system with the rigor a senior engineer with years of experience brings to audit and workflow platforms. It goes far beyond a review list: a formally-specified workflow engine with optimistic concurrency and compensations, an explainable + versioned + backtestable rules/policy engine, policy-based (ABAC) authorization with segregation of duties and dual-control approvals, on-chain reconciliation that tolerates eventual consistency, a cryptographically chained (hash-linked) audit log for tamper evidence, an SLA/escalation engine, BI-grade compliance analytics with forecasting, and streaming tamper-evident exports. Critically, the entire system must be designed to be verified locally with in-memory fakes, simulations, and property/concurrency tests — no VELAR database, secrets, or external APIs required.
GOAL
A correct-by-design regulator command center where TSE staff triage an assignable, SLA-tracked queue; each report is reconciled against on-chain data and scored by an explainable, versioned rules engine; decisions flow through a formally-specified workflow with dual-control and optimistic concurrency; every action is written to a hash-chained immutable audit log; and compliance is monitored, forecast, and exported — all provable via fakes/simulations and property/concurrency tests, no live infrastructure.
REQUIREMENTS
Workflow engine (formally specified)
enviado → en_revisión → observado → corregido/reenviado → aprobado/rechazado) with typed guards, effects, and compensations. Enforce legal-only transitions, optimistic concurrency (version/etag; reject stale writes), and dual-control ("four-eyes") approvals where required. Prove properties (no illegal transition reachable, idempotent transition handlers).Rules / policy engine (explainable, versioned, backtestable)
Authorization, audit, SLA
Analytics, exports, frontend
apps/web/app/tse/reportes/,revision/,auditoria/,analytics/): assignable queue with server-side filter/sort/cursor pagination and saved views; a side-by-side reconciliation review workspace with explainable findings and a dual-control decision panel; the hash-chained audit-trail viewer with integrity status; KPIs/forecast charts; exports. RBAC-aware, localized, responsive, accessible.Data & observability
ACCEPTANCE CRITERIA
packages/types; migrations present, append-only, with RLS + documented indexing.npm run build,npm run lint,npm run testpass inapps/apiandapps/webwith NO VELAR credentials.docs/BACKEND.md,docs/FRONTEND_GUIDE.md) with the workflow spec, rules-engine + backtesting, ABAC model, audit-chain design, SLA engine, and exports.NOTES
Relevant files:
apps/api/src/reports/(major expansion),apps/api/src/analytics/,apps/api/src/audit/audit.service.ts,apps/api/src/notifications/notifications.service.ts,apps/api/src/auth/roles.guard.ts,apps/api/src/auth/roles.decorator.ts,apps/api/src/common/,apps/api/src/common/supabase/supabase.service.ts,apps/web/app/tse/reportes/,apps/web/app/tse/revision/,apps/web/app/tse/auditoria/,apps/web/app/tse/analytics/,apps/web/components/,apps/web/lib/,packages/types/src/audit.ts,packages/types/src/roles.ts,packages/types/src/index.ts,supabase/migrations/. EXTEND the existing review endpoint (PATCH /reports/:id/review), don't rewrite (docs/AGENTS.md§3). Depends on the party-side "Monthly report lifecycle" epic for the report/version schema. audit_events is append-only and authorization is backend-owned (docs/AGENTS.md§5).No VELAR credentials required: the entire system must be exercisable via in-memory fakes/simulations and property/concurrency tests — do NOT use VELAR's database, passwords,
service_role, or any external API/provider key.Difficulty: Staff / Principal — senior (years of experience in audit/workflow/governance systems), maximum complexity
Priority: High
CAMPAIGN REQUIREMENTS (FWC26)
To be eligible for the reward on this issue, the contributor must: