📞 +91-7093319881 ✉️ info@mikroit.in 🕐 Mon–Fri 8am–9pm IST

From Ticket to
Merge Request.

Six choreographed steps. Two human approval gates. Zero black box. Tickets become reviewed, tested, merged solutions in minutes — with a complete audit trail at every stage.

See the Steps ↓ View Architecture
11
Workflow Nodes
2
Human Approval Gates
5min
Avg Resolution Time
100%
Audit Coverage

See It In Action

Ships with four built-in roles. Switch between them to see exactly what each persona can do.

app.mikroit.in/super_admin/dashboard  ·  Signed in as Super Admin  ·  Payments API · main  ·  17 permitted views
📊 Dashboard
🎫 Tickets
🤖 AI Sessions
📋 Planning
Administration
👥 Users
🏷 Teams
🗂 Projects
📈 Analytics
📋 Audit Log
⚙️ AI Config

Dashboard · Workspace overview · last 24 hours

● Live
14
Tickets opened
9
Resolved by AI
3
Awaiting approval
218k
Tokens used
Recent activity
PROJ-129resolved by MarcusResolved
PROJ-142agent generated diffReview
PROJ-137awaiting approvalPending
PROJ-138entered reviewIn Review
PROJ-137 · Partial refunds drift by a cent on multi-capture orders · In Progress
refund_processor.py
refund_handlers.py
test_refunds.py
42from decimal import Decimal
43from .models import Refund, Order
44 
45# PROJ-137: refund amount drifts on partial captures
46async def process_refund(order_id: str, amount: Decimal):
47    order = await get_order(order_id)
48    if order.status != "captured":
49        raise InvalidState("order not captured")
50 
51    refundable = order.total - order.refunded
52    if amount > refundable:
53        amount = refundable  # ← silent clamp, loses audit trail
54 
55    return await _issue_refund(order, amount)
AI Assistant · context: PROJ-137
Agent Found the likely cause at refund_processor.py:53 — amount is silently clamped to refundable, so multi-capture rounding drops a cent with no audit record.
You Propose a fix that preserves the original requested amount.
Agent · running Drafting a plan · reading refund_handlers.py…
node: code_fix · 3 files open
app.mikroit.in/sme/approvals  ·  SME View  ·  Team-scoped · approvals · push to GitLab

Pending Approvals

3 awaiting
PROJ-137 Plan: Fix refund drift — preserve original amount with audit log ⚡ Gate 1
PROJ-142 Diff: Add pagination to /api/tickets endpoint ⚡ Gate 2
PROJ-138 Approved diff — push branch to GitLab Ready to Push
app.mikroit.in/auditor/audit-log  ·  Auditor  ·  Read-only · full audit access

Audit Log

Export CSV
14:32:08 UTCPROJ-137Gate 1 approved by S.Patel — plan hash: a3f9c2Plan Approved
14:28:51 UTCPROJ-137Agent proposed fix plan — 3 files affectedPlan Generated
14:21:03 UTCPROJ-142Gate 2 approved by M.Chen — diff hash: b7e1d4Diff Approved
14:18:44 UTCPROJ-138Branch pushed to GitLab by S.Patel — MR openedMerged

Six Steps. Two Gates.
Zero Unreviewed Changes.

Every ticket follows this exact path. Every stage produces a visible artefact. Every approval is logged with a timestamp.

01
🔵 Developer Action

Pick a Ticket

Developer selects a bug or task from their queue. Status moves to IN_PROGRESS. The whole team has immediate visibility — the ticket is now locked for this engineer and no one else will inadvertently pick it up mid-session.

02
🤖 Agent Action

Analyse & Search

The AI agent reads the ticket in full, searches the codebase using semantic + symbol search (pgvector + Zoekt), and identifies the root cause with supporting evidence — exact file paths, line numbers, and a confidence score. Every search query and every finding is recorded. The agent produces a structured analysis document before any planning begins.

03
🤖 Agent Action

Propose a Plan

A structured fix plan is generated — covering affected files, the proposed change strategy, risk assessment, expected diff scope, and a manual verification checklist. An LLM plan-critic judges the plan against 8 quality axes and scores it before it is ever shown to the developer. Sub-standard plans are revised automatically before reaching the approval gate.

G1
⚡ Human Approval Gate 1

Approval Gate 1 — Plan Review

Developer approves the plan. Without approval, no code is touched. This is the highest-value review in the pipeline. The developer sees the proposed approach, the files affected, and the risk rating — and explicitly approves or rejects. Rejection triggers agent re-analysis. Approval creates a signed, timestamped record and unlocks Stage 5.

What the developer sees at Gate 1

Root cause summary · Affected files list · Proposed fix strategy · Risk level (Low / Medium / High) · Plan-critic score · Manual checklist · Approve / Reject / Request revision buttons

05
🤖 Agent Action

Generate Code & Tests

The agent implements the approved plan — producing multi-file unified diffs, unit tests, and an updated manual verification checklist. Every generated file is sandboxed: the agent builds and runs tests in an isolated Coder workspace with a per-bug git worktree. The developer sees live tool events via SSE as the agent works. The final diff set is held for approval — never auto-merged.

G2
⚡ Human Approval Gate 2

Approval Gate 2 → Merge Request

Developer approves the diffs. Admin pushes the branch. GitLab merge request opens automatically. The developer reviews every changed file line-by-line in the diff viewer. On approval, the SME (Subject Matter Expert) is notified to push the branch — developers never hold production access tokens. GitLab creates the MR, the ticket status moves to RESOLVED, and the full audit record is sealed.

What the developer sees at Gate 2

Full multi-file diff viewer · Test output · Build status · Manual checklist results · Approve / Request changes · On approval: SME push notification triggers automatically

Inside the
Agentic Runtime

A custom-built agent runtime with stateful checkpoints, sub-agent fan-out, BYOK model routing, and HITL gates wired through every risky tool.

Client Surfaces
Dashboard (Next.js)
·
Coder IDE (self-hosted)
·
SSE stream (live tool events)
Agentic Runtime
FastAPI · Lightsail
Triage
→
Deep Search
→
Plan + Critic
→
⚡ Gate 1
→
Apply Patch
→
Tests + Build
→
⚡ Gate 2
→
Push MR
Stateful Data Layer
Postgres (Neon) — agent state · audit · checkpoints
·
pgvector + Zoekt — code search
·
Redis — tokens · worktrees
BYOK Model Router
Anthropic
OpenAI
Bedrock
Azure OpenAI
DeepSeek
Gemini
vLLM (self-host)
Observability
Phoenix (Arize) — OpenInference spans
·
Eval harness — nightly benchmark
·
HITL gates — plan · push · approval log

Two Gates. Every Time. No Exceptions.

The two-gate model is the structural guarantee that separates professional AI-assisted engineering from "move fast and hope".

🔷

Gate 1 — Plan Approval

You approve the what and how before any implementation begins. Issues caught here cost nothing to fix. The same misunderstanding found in production can cost a week of rollback work.

  • ✓Solution approach agreed before build
  • ✓Risk level acknowledged
  • ✓Scope locked — no silent scope creep
  • ✓Signed, timestamped, and audit-logged
🟢

Gate 2 — Diff Approval

You review the actual code changes — every modified file, every line — before they are merged. Developers never hold production access tokens. The SME pushes only after explicit diff approval.

  • ✓Full diff reviewed and signed
  • ✓Test results and build status attached
  • ✓Merge only on explicit approval
  • ✓Dev/SME push split — no production tokens for devs

Built for the Compliance
Review That Takes Mortals Six Months

🔐

RBAC — Four Roles

Super Admin, SME, Developer, Auditor — with granular permissions across every resource, per-team and per-project scoping, and SCIM-ready user provisioning.

📋

Full Audit Logging

Every action timestamped and attributed. Token spend, model used, diff hash — nothing escapes the log. Phoenix trace integration, configurable retention, export to S3/SIEM.

🔑

BYOK + Self-Host

Bring your own API keys for any supported provider. Route each agent role to the model that suits it — frontier reasoning, fast generalists, or your own on-prem weights via Ollama/vLLM.

🛡️

No Direct Branch Access

Developers approve diffs. SMEs push branches. PATs are isolated and scoped per environment — developers never hold production access tokens. Dev/SME push split is architectural, not configurable.

From Bug Report to
Merge Request in Minutes.

Walk through a live session with our team — a real ticket, a real codebase, both approval gates, the full audit trail.