# mikehasa/golive-skill architecture

> Architecture diagram of the GitHub repository mikehasa/golive-skill, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mikehasa/golive-skill
- Repository: https://github.com/mikehasa/golive-skill

## Overview

GoLive is an agent-operated CLI that detects an app’s deployment needs, plans provider changes for approval, applies them using the owner’s accounts, and verifies the live result. Its domain stages include project detection, resource provisioning and configuration, verification, drift checks, handover, and teardown. The CLI coordinates those stages; plans are assembled from registered links, while provider adapters encapsulate integrations. The README documents broader provider and product capabilities than the sampled source shows, so uncertain internal wiring is omitted.

Main entry points: [`src/cli.ts`](https://github.com/mikehasa/golive-skill/blob/main/src/cli.ts) (GoLive CLI), [`src/core/state.ts`](https://github.com/mikehasa/golive-skill/blob/main/src/core/state.ts) (Run state), [`src/core/plan.ts`](https://github.com/mikehasa/golive-skill/blob/main/src/core/plan.ts) (Plan builder), [`src/core/runner.ts`](https://github.com/mikehasa/golive-skill/blob/main/src/core/runner.ts) (Step runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["CLI workflow"]
  node_cli["GoLive CLI<br/>[cli.ts]"]
end

subgraph group_planning["Detection and planning"]
  node_detect["Project detection<br/>[index.ts]"]
  node_config["Config and context<br/>[config.ts]"]
  node_plan["Plan builder<br/>[plan.ts]"]
  node_links["Resource links<br/>[index.ts]"]
  node_registry["Link registry<br/>[registry.ts]"]
end

subgraph group_execution["Apply and verify"]
  node_runner["Step runner<br/>[runner.ts]"]
  node_checks["Live checks<br/>[index.ts]"]
end

subgraph group_lifecycle["State and lifecycle"]
  node_state[("Run state<br/>[state.ts]")]
  node_drift["Drift detection<br/>[drift.ts]"]
  node_teardown["Teardown planner<br/>[teardown.ts]"]
  node_handover["Handover builder<br/>[build.ts]"]
  node_report["Report renderer<br/>[render.ts]"]
end

subgraph group_providers["Provider integrations"]
  node_adapters["Provider adapters<br/>[index.ts]"]
end

node_owner(("App owner / agent"))
node_app["App repository"]
node_providersvc(("Provider accounts"))

node_owner -->|"runs commands"| node_cli
node_cli -->|"scans project"| node_detect
node_detect -->|"reads source"| node_app
node_cli -->|"loads config"| node_config
node_cli -->|"builds plan"| node_plan
node_cli -->|"gets links"| node_registry
node_plan -->|"assembles steps"| node_links
node_plan -->|"reads records"| node_state
node_cli -->|"runs apply"| node_runner
node_runner -->|"executes provider steps"| node_adapters
node_runner -->|"records progress"| node_state
node_cli -->|"runs verification"| node_checks
node_checks -->|"probes integrations"| node_adapters
node_cli -->|"checks status"| node_drift
node_drift -->|"compares records"| node_state
node_cli -->|"plans removal"| node_teardown
node_teardown -->|"reads ownership"| node_state
node_cli -->|"builds handoff"| node_handover
node_handover -->|"reads records"| node_state
node_cli -->|"renders report"| node_report
node_adapters -->|"reads and writes"| node_providersvc
node_cli -->|"presents outcome"| node_owner

click node_cli "https://github.com/mikehasa/golive-skill/blob/main/src/cli.ts"
click node_detect "https://github.com/mikehasa/golive-skill/blob/main/src/detect/index.ts"
click node_config "https://github.com/mikehasa/golive-skill/blob/main/src/core/config.ts"
click node_plan "https://github.com/mikehasa/golive-skill/blob/main/src/core/plan.ts"
click node_links "https://github.com/mikehasa/golive-skill/blob/main/src/links/index.ts"
click node_registry "https://github.com/mikehasa/golive-skill/blob/main/src/registry.ts"
click node_runner "https://github.com/mikehasa/golive-skill/blob/main/src/core/runner.ts"
click node_checks "https://github.com/mikehasa/golive-skill/blob/main/src/checks/index.ts"
click node_adapters "https://github.com/mikehasa/golive-skill/blob/main/src/adapters/index.ts"
click node_state "https://github.com/mikehasa/golive-skill/blob/main/src/core/state.ts"
click node_drift "https://github.com/mikehasa/golive-skill/blob/main/src/core/drift.ts"
click node_teardown "https://github.com/mikehasa/golive-skill/blob/main/src/core/teardown.ts"
click node_handover "https://github.com/mikehasa/golive-skill/blob/main/src/handover/build.ts"
click node_report "https://github.com/mikehasa/golive-skill/blob/main/src/report/render.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli toneBlue
class node_detect,node_config,node_plan,node_links,node_registry toneAmber
class node_runner,node_checks toneMint
class node_state,node_drift,node_teardown,node_handover,node_report toneRose
class node_adapters,node_owner,node_app,node_providersvc toneIndigo
```

## Components

### CLI workflow

- [GoLive CLI](https://github.com/mikehasa/golive-skill/blob/main/src/cli.ts): `src/cli.ts`

### Detection and planning

- [Project detection](https://github.com/mikehasa/golive-skill/blob/main/src/detect/index.ts): `src/detect/index.ts`
- [Config and context](https://github.com/mikehasa/golive-skill/blob/main/src/core/config.ts): `src/core/config.ts`
- [Plan builder](https://github.com/mikehasa/golive-skill/blob/main/src/core/plan.ts): `src/core/plan.ts`
- [Resource links](https://github.com/mikehasa/golive-skill/blob/main/src/links/index.ts): `src/links/index.ts`
- [Link registry](https://github.com/mikehasa/golive-skill/blob/main/src/registry.ts): `src/registry.ts`

### Apply and verify

- [Step runner](https://github.com/mikehasa/golive-skill/blob/main/src/core/runner.ts): `src/core/runner.ts`
- [Live checks](https://github.com/mikehasa/golive-skill/blob/main/src/checks/index.ts): `src/checks/index.ts`

### State and lifecycle

- [Run state](https://github.com/mikehasa/golive-skill/blob/main/src/core/state.ts): `src/core/state.ts`
- [Drift detection](https://github.com/mikehasa/golive-skill/blob/main/src/core/drift.ts): `src/core/drift.ts`
- [Teardown planner](https://github.com/mikehasa/golive-skill/blob/main/src/core/teardown.ts): `src/core/teardown.ts`
- [Handover builder](https://github.com/mikehasa/golive-skill/blob/main/src/handover/build.ts): `src/handover/build.ts`
- [Report renderer](https://github.com/mikehasa/golive-skill/blob/main/src/report/render.ts): `src/report/render.ts`

### Provider integrations

- [Provider adapters](https://github.com/mikehasa/golive-skill/blob/main/src/adapters/index.ts): `src/adapters/index.ts`

### Other components

- **App owner / agent**
- **App repository**
- **Provider accounts**

## Connections

- App owner / agent → GoLive CLI: runs commands
- GoLive CLI → Project detection: scans project
- Project detection → App repository: reads source
- GoLive CLI → Config and context: loads config
- GoLive CLI → Plan builder: builds plan
- GoLive CLI → Link registry: gets links
- Plan builder → Resource links: assembles steps
- Plan builder → Run state: reads records
- GoLive CLI → Step runner: runs apply
- Step runner → Provider adapters: executes provider steps
- Step runner → Run state: records progress
- GoLive CLI → Live checks: runs verification
- Live checks → Provider adapters: probes integrations
- GoLive CLI → Drift detection: checks status
- Drift detection → Run state: compares records
- GoLive CLI → Teardown planner: plans removal
- Teardown planner → Run state: reads ownership
- GoLive CLI → Handover builder: builds handoff
- Handover builder → Run state: reads records
- GoLive CLI → Report renderer: renders report
- Provider adapters → Provider accounts: reads and writes
- GoLive CLI → App owner / agent: presents outcome
