Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

v0.1.0 Platform & Migration Decision Record

Decision Statement

For v0.1.0 and beyond:

  1. Build devflow as an independent open-source repository and release it as a standalone CLI (devflow, alias dwf).

  2. Create kroki-rs-nxt as a new repository for next-generation architecture.

  3. Keep current kroki-rs as a stable/maintenance line during migration.

  4. Start kroki-rs-nxt as a single workspace monorepo (not many repos at first), then split only when ownership and release velocity justify it.

Context

Two major tracks are in flight:

Trying to do both as in-place refactors in the same repository creates high coupling risk and weakens governance clarity for open-source contributors.

Options Evaluated

Option A: New kroki-rs-nxt repository + new devflow repository

Pros:

Cons:

Option B: In-place refactor of current kroki-rs while creating devflow

Pros:

Cons:

Rationale for Selected Direction

We choose Option A with a strict execution guard:

This gives deterministic architecture evolution with less long-term maintenance debt.

Ruthless Review Outcomes from Brainstorm Docs

Key concerns identified in brainstorm artifacts:

Therefore:

Target Repository Structures

devflow

devflow/
  Cargo.toml
  crates/
    devflow-core/
    devflow-cli/
    devflow-gh/
    devflow-ext-rust/
    devflow-ext-node/
    devflow-ext-react/
    devflow-ext-lit/
    devflow-ext-vscode/
    devflow-ext-tauri/
  examples/
    rust-lib/
    node-ts/
    react/
    tauri/
    vscode-extension/
  docs/

kroki-rs-nxt

kroki-rs-nxt/
  Cargo.toml
  crates/
    kroki-core/
    kroki-contracts/
    kroki-plugin-api/
    kroki-plugin-runtime/
    kroki-adapter-http/
    kroki-adapter-cli/
    kroki-observability/
  apps/
    kroki-server/
    kroki-cli/
  plugins/
  tests/
    contract/
    integration/
    conformance/
  schemas/
  devflow.toml

Rollout Plan with Phase Gates

Phase 0: Governance and Contracts

Exit criteria:

Phase 1: devflow MVP

Status: COMPLETE

Exit criteria met:

Phase 2: kroki-rs-nxt Bootstrap

Exit criteria:

Phase 3: Feature Migration by Capability Slice

Exit criteria:

Phase 4: Stabilization and Release

Exit criteria:

Risks and Mitigations

Pros/Cons of the Chosen Path

Pros:

Cons:

Reference Learnings

The following ecosystems inform this decision:

Review Cadence