Kiket docs
Compliance

Editor modeling cockpit

Check change panel: proposal vs baseline vs live cases, Impact / Cases / History / Tests / Ingestion / Structure / Ship tabs, Capture test, and Ship verdict with Fix links.

Status: Phases A–F shipped (2026-05-22)
See also: simulation-cockpit.md

Historical phase roadmaps live in-repo under docs/plans/shipped/ (not published on the docs-site).

North star

One guided question: Is it safe to ship this process change?

Open Check change in the editor toolbar to show the Modeling Cockpit.

Three visible inputs

InputSourceUser control
ProposalCurrent editor bufferWhat you edited
BaselineSaved file or main branchBaseline picker in cockpit header
Operational dataLinked process cases + historyInline summary chip; full detail in detail tabs

Guided flow

Header (ready/blocked + controls) → Impact summary → Detail tabs → Ship verdict

Default landing: Impact. Ship is the terminal step.

Modeling Cockpit tabs

TabQuestion
ImpactWhat breaks if I ship? (default landing)
CasesWhich open cases are guard-blocked?
HistoryDo historical paths still work?
TestsDo regression tests pass?
IngestionDo connected sources cover evidence?
StructureIs the graph and schema valid?
ShipSafe to save?

The cockpit header shows ready/blocked status, an operational summary (hover for proposal/baseline detail), baseline picker, and re-run controls on one row. Blocker chips appear only when checks fail. Empty states include CTAs; Capture test on forecast rows adds YAML regression tests with toast feedback.

Toggle Live lens in the cockpit header to overlay open cases, findings, and SLA breaches on the canvas.

What is live?

Process models in the editor follow three layers — there is no separate “activate” button beyond linking a process and saving the file.

LayerWhat it isAffects live cases?
Editor bufferWhat you see while typingNo — preview only (Modeling Cockpit Check change uses this as the proposal)
Saved fileWritten to the workspace repo clone (manual Save or ~2s autosave)Yes, when a process twin is linked to this path
Git commit / pushVersion history and CI on mainNo extra runtime step — commit is for audit and team workflow, not a second activation

Process twin

A process twin is a platform process record whose currentConfigPath points at this workflow file (for example .kiket/workflows/vendor-onboarding.yaml). The API reads that path from the linked repo when:

  • Resolving case transitions and guards
  • Running the compliance scanner against operational cases
  • Building simulation Cases / History tabs in the Modeling Cockpit

If no twin is linked, you can still edit and save YAML in git — but open cases will not use the model until onboarding or workspace setup creates a monitored process for this path.

The editor shows a config lifecycle strip above the canvas: pending save (amber), live config (green), or saved but unlinked (neutral).

Process context bar

When the Modeling Cockpit is open on a workflow file, the editor shows a context bar with workspace, repo/branch, process name, open case/finding counts, and links to cases and findings.

Workflow editor chrome (shipped 2026-05)

The workflow canvas uses a mode bar and right inspector instead of a bottom Process drawer:

SurfacePurpose
Mode barSegmented Graph | YAML | Diff; undo/redo; Layout/Fit on graph only
Right inspectorSelection (node/edge fields) | Evidence & checks (evidence, checks, remediation, regression tests)
Page headerSave, Check change, Git (workspace actions)

Coverage warnings on the canvas banner link to Evidence & checks. Cockpit Edit actions on Tests and Ingestion open the same inspector tab.

Visual process config (Phase B)

In the workflow canvas toolbar, click Process to open structured panels for:

  • Evidence requirements
  • Compliance checks
  • Remediation mappings
  • Regression scenarios

Legacy v1 workflow files show an Upgrade to v2.0 banner that runs migrateWorkflowConfigYaml and replaces the editor buffer.

Live operational lens (Phase C)

simulation-data returns extended processContext:

  • Repo name, branch, workflow path
  • liveLens — per-state open cases, open findings, SLA breach counts

The cockpit merges forecast impact with live lens metrics on canvas nodes.

Branch compare & CI (Phase D)

  • Impact tab / baseline picker: compare current YAML against saved file or main (via GET /repos/:id/file?path=&ref=main)
  • Local CLI: pnpm kiket:simulate path/to/workflow.yaml [--baseline base.yaml]
  • CI: flagship definition packs run through kiket:simulate after package build

Polish & scale (Phase E)

  • Auto-layout: Dagre layout (Layout button or L); fit view (F); auto-layout on open when nodes stack
  • Template gallery: New workflow → blank scaffold or flagship definition pack
  • Keyboard help: Press ? on /editor for global + editor shortcut sections
  • Accessibility: Toolbar role="toolbar" and feature badge ARIA labels

Template file API: GET /templates/catalog/:key/file?path=.kiket/workflows/...

Share or bookmark a specific cockpit view with URL query params on the editor:

ParamValueMeaning
simulate1Open the Modeling Cockpit bottom panel
tabsee tab mapActive detail tab (impact, cases, …)

Example: /editor?file=.kiket/workflows/vendor-onboarding.yaml&simulate=1&tab=cases

Tab changes update the URL in place so refresh and share round-trip.

Shipped UX (Phase F)

  • Compact cockpit header — ready/blocked chip, operational summary, baseline picker, re-run, auto-check, and tabs on one row; blocker chips only when present
  • Impact default — aggregated status rows drill into detail tabs
  • Capture test — from Cases rows; toast + highlight; duplicate detection
  • Add test / Edit — opens Evidence & checks → regression tests
  • Ingestion — source health, coverage gaps, Edit evidence requirements → Evidence & checks
  • Re-run check, auto-check toggle, baseline picker (saved vs main)
  • Ship tab — Fix links to detail tabs; Save when ready
  • Live lens legend on canvas overlay
  • URL state — ?simulate=1&tab=<tab> deep links; inline package process cockpit retired

Walkthrough (30 seconds)

Open the cockpit

Open a workflow in the editor and click Check change.

Read readiness

Scan the cockpit header: ready/blocked chip, operational summary (hover for proposal/baseline detail), baseline picker, and re-run controls.

Scan impact

Start on Impact — scan status rows; click a row to jump to the failing detail tab.

Review cases

On Cases, see guard-blocked open cases; use Capture test to seed a regression test from a failing row.

Confirm tests

On Tests, confirm YAML scenarios pass; Edit opens structured scenario fields in Evidence & checks.

Ship when ready

On Ship, review blocking checks; use Fix to jump back, then Save when ready.

Ship verdict

The Ship tab aggregates YAML schema, graph validity, reachability warnings, replay failures, scenario failures, and new guard blockers vs the saved definition. Each failed check includes a Fix link to the relevant detail tab.

Acceptance criteria

Within 30 seconds of opening the cockpit, a user can answer:

  1. What is being checked?
  2. Against what baseline and how many live cases?
  3. What failed?
  4. What is the next action?

API extensions

GET /workflows/:id/simulation-data — extended processContext:

{
  "processContext": {
    "linked": true,
    "processId": "...",
    "workspaceName": "Production Operations",
    "repoId": "...",
    "repoName": "acme/compliance",
    "repoBranch": "main",
    "workflowPath": ".kiket/workflows/production-change.yaml",
    "openCaseCount": 4,
    "openFindingCount": 2,
    "liveLens": {
      "openCasesByState": { "review": 2 },
      "openFindingsByState": { "review": 1 },
      "slaBreachesByState": {}
    }
  }
}

GET /repos/:id/file?path=...&ref=main — read file at branch for compare.

Test plan

LayerCoverage
Editor unitstore.test.ts — v2 round-trip, UPDATE_PROCESS_CONFIG, APPLY_LAYOUT
Web unitmodeling-cockpit.test.ts, process-simulation.test.ts, workflow-template-gallery.test.ts
APIsimulation-forecast.test.ts, templates-catalog.test.ts
E2Esimulation-cockpit.spec.ts — Validate + Commit tabs
CIpnpm kiket:simulate on privacy-request + contract-review packs

On this page