generated from coulomb/repo-seed
Each concern (identity, session protocol, workplan convention, stack, architecture, repo boundary) now lives in its own file with a single responsibility. CLAUDE.md becomes a thin @-import integrator. Removes Ralph Loop duplication — global ~/.claude/CLAUDE.md remains authoritative. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
## Architecture
|
|
|
|
OpsBridge has two logical components:
|
|
|
|
**1. OpsBridge — tunnel lifecycle manager** (this repo)
|
|
Manages named SSH reverse tunnels defined in `~/.config/bridge/tunnels.yaml`.
|
|
Each tunnel runs in a subprocess with a reconnect backoff loop; PIDs are tracked
|
|
in `~/.local/state/bridge/`. Bridge states: `stopped → starting → connected →
|
|
degraded → failed`. The `degraded` state means SSH is up but the optional HTTP
|
|
health check is failing.
|
|
|
|
**2. OpsCatalog — operations knowledge repository** (planned extension)
|
|
A Git-backed YAML catalog of operations domains, targets, bridges, and actor
|
|
classes. OpsBridge consumes this catalog to resolve bridge identifiers and
|
|
orient operators. Schema examples are in `wiki/OpsCatalogSpecification.md`.
|
|
The catalog layout follows: `opscatalog/domains/<domain>/{domain.yaml,
|
|
targets/, bridges/, docs/}`.
|
|
|
|
Key design constraints:
|
|
- OpsBridge owns lifecycle management only; it does not own identity/credentials
|
|
- Each tunnel is identified by name (e.g. `state-hub-coulombcore`); names used
|
|
in config, CLI args, and log filenames must stay consistent
|
|
- Actor attribution (human operator vs. automation agent) is tracked per bridge
|
|
for audit log traceability (FRS §5.7)
|
|
|
|
Specification docs are in `wiki/`: PRD (`OpsBridgePrd.md`), FRS
|
|
(`OpsBridgeFrs.md`), and OpsCatalog spec (`OpsCatalogSpecification.md`).
|
|
|
|
## Quick Reference
|
|
|
|
`~/the-custodian/state-hub/mcp_server/TOOLS.md`
|