Control plane × runtime engine · 2026-06-10

GitHub Ops × VPS Runtime — the truth map

Verdict: the control plane is fully designed and completely unmanned. 13 repos under viewport-corp hold the doctrine; 64 containers on 194.163.153.171 run the business — and between them there is no webhook, no runner, no deploy workflow, no schedule, no lease, no handoff file. Exactly one container was ever built from GitHub. Every other deploy is SSH-and-run. The agent loop has no actor, no trigger, and no heartbeat — which is why every session starts amnesiac, hallucinates state from stale branches, and GSD/RalphLoop sits orphaned on a branch 117 commits behind.

Data: github-data.json · read-only inventory gh CLI + SSH inspection · 2026-06-10 Public-safe · all secrets redacted Loop status: NOT RUNNING live data: static fallback

Truth-map snapshot

Org repos13
Open issues unassigned23 / 23
Open PRs0
Workflows7 — all validators
Containers running64
GitHub→VPS containers1 proven
Orchestratorsdual (+3 proxies)
status.json generated
Task board (live)
Blockers (live)
13repos in viewport-corp (vs 9 on the known list)
23/23open issues with zero assignees — incl. the loop-builder #213
0open pull requests — nothing in flight anywhere
7workflows registered — all validators, 0 deploy, 0 schedule
64containers running on the VPS (1 unhealthy: origin-backend)
1container built from GitHub (mlh-client-portal, commit fb39233)

Viewport Corp — org map → 13 repos

The corporate layer above, the GitHub control plane below. The org holds 13 repos, not the 9 on the known listtenant-buddha-corporation and associate-vinay-patil were absent from the briefing; demo-repository (GitHub starter junk) still lives in the org.

Viewport Corporationholding · GitHub org: viewport-corp
Viewport Groupcore ops · agents · infra
Capital ABCgroup entity
Think That Groupgroup entity
Veavor Groupgroup entity
Modern Lao49% partner · MLG / MLH
BCCLoff-paper associate · Buddha Corp
viewport-ops

Operations, governance, migration council, GitHub-first control plane.

CONTROL PLANEprivatemain23 issuespushed 2026-06-10
viewport-os

Control-plane handoff + operating-state repo — an 8-file, 15 KB stub holding the only HANDOFF.md, with a self-declared [BLOCKER] (#2) untouched 5 days.

STUB w/ HANDOFFpublicmain2 issuespushed 2026-06-05
viewport-kb

Public-safe Git-backed knowledge base — the healthiest organ: INDEX.md present, closed-loop v0.1 report published 2026-06-08. A publishing channel, not a loop.

BRAINpublicmain0 issuespushed 2026-06-08
fork-hermes-agent

Upstream Hermes fork with the full Kanban subsystem (hermes_cli/kanban*.py, v1 spec PDF) — the swarm/lease reference implementation, frozen since 2026-05-31, unused.

KANBAN REFERENCEpublicmain0 issuespushed 2026-05-31
modern-lao-homes-client-portal

MLH client portal source + Dokploy deployment package — the source of the one proven GitHub→VPS container.

privatemain0 issuespushed 2026-05-31
migration-dashboard-internal

Internal migration dashboard inspired by ReleaseBar; not a public fork.

privatemain5 issuespushed 2026-06-07
tenant-buddha-corporation

BCCL/Buddha Corp tenant source-of-truth: Hermes identity, runtime policy, evidence, workspace boundaries. Not on the known list.

privatemain0 issuespushed 2026-06-08
associate-vinay-patil

Associate-scoped Hermes runtime/control repo for Vinay Patil. No secrets. Not on the known list.

privatemain2 issuespushed 2026-06-07
tenant-bccl-laowise-website

BCCL / LaoWise website source. BCCL-only access boundary.

privatemain0 issuespushed 2026-05-12
product-tradex

TradeX experimental product repo.

privatemain0 issuespushed 2026-05-31
fork-openclaw

OpenClaw fork (“the lobster way”) — frozen since 2026-05-31.

publicmain2 issuespushed 2026-05-31
fork-hermes-bccl

Second Hermes fork, BCCL-scoped — frozen since 2026-05-11.

publicmain0 issuespushed 2026-05-11
demo-repository

GitHub starter junk (“the best GitHub has to offer”) — 2 KB, still in the org.

DELETE CANDIDATEprivatemain0 issuespushed 2026-05-30

The full hierarchy — who is under who, who is connected to who

One connected tree from the holding down to the runtime engines: corporation → 6 entities → GitHub org → 13 role-tagged repos → control-plane branches → 14 departments → seat registries → live engines on the VPS. Every node is real and verified read-only (gh CLI + SSH). On mobile the tree reads as an indented list.

  • Viewport Corporationholding · SamROOT
    • Viewport Groupcore ops · agents · infra
    • Capital ABCgroup entity
    • Think That Groupgroup entity
    • Veavor Groupgroup entity
    • Modern Lao49% partner · MLG / MLH
    • BCCLoff-paper associate · Buddha Corp
    • GitHub org: viewport-corpthe control plane · 13 repos
      • viewport-opsCONTROL PLANE93 branches · 1,478 paths on main · 23 issues
        • branches (93)5 that matter
          • maindefault since 2026-06-10
          • ops/openclaw-github-flow-44serves the live site · 13↑/87↓
          • council/bootstrap-20260510frozen · 0↑/206↓
          • ops/gsd-ralphloop-githubops-runtimeorphaned · 2↑/117↓
          • ops/finish-migration-p0-foundationdiverged · 1↑/110↓
        • departments ×14companyos/departments/taxonomy.yaml · plan said 17 — mismatch
        • seat registries3 overlapping registers
          • 48-seat registryall 48 = seed_only_not_production · dept “UNKNOWN until mapped”
          • 26-seat index16 activated / 10 smoke_tested · live control plane
          • 6 runtime seatsagent-seats/seats.yaml · 2 active / rest planned
      • viewport-kbBRAINpublic KB · healthiest organ
      • viewport-osOS-STUB8-file stub w/ the only HANDOFF.md
      • fork-hermes-agentKANBAN REFERENCEswarm/lease reference · frozen 05-31
      • tenant-buddha-corporationTENANTBCCL source-of-truth
      • tenant-bccl-laowise-websiteTENANTBCCL / LaoWise site
      • associate-vinay-patilTENANT · ASSOCIATEHermes runtime/control
      • modern-lao-homes-client-portalPORTALthe 1 proven GitHub→VPS build
      • product-tradexPRODUCTTradeX experimental
      • migration-dashboard-internalINTERNALmigration dashboard
      • fork-openclawFORKfrozen 05-31
      • fork-hermes-bcclFORKfrozen 05-11
      • demo-repositoryDEMO · DELETEGitHub starter junk
    • VPS runtime · 194.163.153.171the engine · 64 containers running
      • Hermes ×2hermes-vinay-patil + hermes-bccl · operator shell · v0.15.2
      • OpenClaw ×3three instances, one designated
        • fresh docker :18789designated live · 26 agents
        • old root host :47293ZOMBIE49 enabled crons still firing
        • old /home/openclawdormant since 04-12 · 24 SOUL.md
      • Dokploy stacknew runtime engine · dual with Coolify 4.1.2 + NPM + Portainer
      • 64 containers1 unhealthy (origin-backend) · 1 built from GitHub

Hermes — the operator shell

The designated primary operator (server hands / GitHub+VPS executor per the seat index). Two live containers, v0.15.2, gpt-5.5 via openai-codex. The shell is healthy and talking to Sam on Telegram — but its automation surface is almost entirely switched off.

2containers: hermes-vinay-patil + hermes-bccl (Up 2 days)
524sessions in state.db — the cold-start counter
34,772messages logged across those sessions
1/8scheduled jobs enabled — weekly digest only (Mon 09:00)
8MCP servers wired into the shell
0kanban tasks — subsystem LIVE, dispatcher on, nothing flows

Configuration (read from config.yaml, 722 lines)

  • Model: gpt-5.5 via openai-codex (codex_responses against the chatgpt.com backend), reasoning medium, zero fallback providers.
  • MCP servers (8): filesystem, memory, sequential_thinking, time, fetch, github, git_plugins, context7.
  • Toolsets: hermes-cli enabled, none disabled. Plugins: disk-cleanup, google_meet, intake_persistence.
  • s6 supervision: main-hermes, dashboard (:9119), and 4 gatewaysgateway-codex, gateway-default, gateway-bccl, gateway-claude.
  • Secrets present (names only): modernlao-odoo-api-key, modernlao-slack-bot-token, modernlao-slack-signing-secret, modernlao-slack-user-token, modernlao-slack-webhook-url.

Messaging rails

RailStateEvidence
TelegramCONNECTEDqueue 0 · last successful send 2026-06-10 (gateway_state.json)
SlackDEAD since 2026-05-08state retrying · “failed to reconnect”
Discordconfig onlyconfigured section, not in gateway_state platforms
WhatsAppemptyempty config

Kanban subsystem: kanban.db with tasks/task_runs/task_events tables, boards modern-lao-war-room + viewport-ops-live, dispatch_in_gateway=true every 60s, auto_decompose on — and tasks table = 0 rows. The plumbing exists; nothing flows. gateway_state reports active_agents: 0; duplicate gateway+dashboard process pairs running since Jun 08/10.

Telegram intake: captured but blocked at the first gate

The intake_persistence plugin is on, but the last capture (2026-06-05) is a trivial “Hi” (tags [QUESTION], tenant unknown, dept ops; KB 16 notes, 3 recent issues loaded). Full intake-hook activation is blocked_by_approval — the gateway restart it needs would kill running agents (blocker gateway_restart in gsd-ralphloop-active-queue.yaml). The anti-amnesia pipeline is stalled at one approval.

OpenClaw — the agent fleet (×3 instances, 1 designated, 1 zombie)

Three OpenClaw installations share one VPS. The repo designates the fresh docker instance as live (centralized-runtime-seat-index.yaml: agent_count 26, config sha256 6085c958…, evidence issue #123 / PR #126) and marks the old one reference_only_do_not_touch_without_approval — but the old one didn’t get the memo.

ZOMBIE FLEET: the old root instance is still executing 49 ENABLED crons — outside the control plane

Root process openclaw gateway --port 47293 has been running since May 28 (~3,787 CPU-min). Its cron store holds 50 jobs / 49 enabled, and the run logs are CURRENT/root/.openclaw/cron/runs updated 2026-06-11 00:04 (performer-p1-monitor.jsonl at 00:02). This directly contradicts “crons 50→1 (disabled)”: that is true only of the fresh instance. An uncontrolled actor is firing 49 jobs nightly against openai-codex/gpt-5.5 with no GitHub trail — untracked runtime mutation + token burn. First reconciliation target.

INSTANCE 1 · fresh docker :18789 Designated LIVE — and routing-dead by config

2 containers Up 9 days healthy (viewport-openclaw-fresh, ghcr.io/openclaw/openclaw:latest). 26 agents, all model: null (default model, near-default rebuild state), no bindings — all traffic lands on main. Channels slack+telegram. Cron: 1 job (TradeX MT5 blocker check), disabled; last run file 2026-05-30.

designated live0 bindingsmodels null ×261 cron, disabled
INSTANCE 2 · old root host :47293 ZOMBIE but ACTIVE — the uncontrolled actor

Config /root/.openclaw/openclaw.json: 26 agents all pinned openai-codex/gpt-5.5 (no fallbacks), 27 bindings, telegram+slack+modelByChannel. 49 of 50 crons enabled and firing (runs logged 2026-06-11 00:04). Only 2 workspace dirs. Repo policy: reference_only — reality: executing nightly.

ZOMBIE · EXECUTING49/50 crons onsince May 28
INSTANCE 3 · old /home/openclaw Dormant since 2026-04-12 — the soul archive

26 agents with rich per-agent model+fallback arrays (codex-pro, deepseek-v3.2, glm5, kimi-k2.5, px-gemini31-pro, px-opus-thinking, gemini-3.1-pro, llama-3.3-70b, claude-haiku-4-5…), 27 bindings, two cron stores (51/50 and 48/48 enabled on paper) but run logs stale since 2026-04-12. ~70 .bak config siblings. 25 workspace dirs + main at /opt/platformx/openclaw/workspace-main holding 24 SOUL.md files + SOUL/IDENTITY/DREAMS/HEARTBEAT.

24 SOUL.mddormant 60 days~70 .bak configs

Locked decision not implemented: routing v14 exists in NO live config

The locked “OpenClaw routing v14: 4-tier, 25 agents” decision appears in zero live configs — 0 occurrences of “tier” in the fresh config (which has 26 agents, not 25, and no bindings at all). The fleet design that was signed off is not the fleet that runs.

The 26 agents in the fresh (designated live) config
main/VIEWPORTperformer/Performercoder/CodeXresearcher/Scoutarchitect/Atlasqa/Verifyvision/Eyesecurity/Shieldauditor/Auditormentor/Mentorrecruiter/Recruitercrisis/Crisisforge/Forgeledger/Ledgercloser/Closeramplify/Amplifyadvocate/Advocateprism/Prismc-modernlaosentinel/Sentinelcatalyst/Catalysthypothesis/Hypothesismetric/Metricpalette/Palettequill/Quillcanvas/Canvas

24 SOUL.md files in the dormant archive: analytics, atlas, benchmark, bizdev, codex, content, crisis, cs, experiment, eye, finance, hiring, innovation, legal, marketing, media, omnibrand, performer, qa-master, resource, sales, scout, training, verify — plus workspace-main’s SOUL/IDENTITY/DREAMS/HEARTBEAT, the fresh workspace SOUL.md, and Hermes’ own /srv/viewport/runtime/hermes/SOUL.md.

Departments & seats — the org chart that exists only on paper

14 departments in companyos/departments/taxonomy.yaml and a 20-industry ontology — but the 48-seat registry maps every seat’s department as “UNKNOWN until mapped” and every readiness as seed_only_not_production. The newer 26-seat live index is the only register with real lifecycle state.

The 14 departments (taxonomy.yaml)

Executive Office
GitHub Office
Engineering Platform
Runtime Operations
Security and Risk
Research and Intelligence
Data, Analytics, and Benchmarks
Finance and Cost Control
Customer and Tenant Operations
Sales and Growth
Marketing, Brand, and Content
Legal and Compliance
HR, Recruiting, and Training
Crisis and Incident Response
Data mismatch: the plan says 17 departments / 16 industries — main says 14 departments / 20 industries (industry-ontology.yaml has 20 industry_id entries; company-os/units/industries/ has 35 industry-*.md unit files; company-os/units/ adds 6 unit groups: agent-and-ai, business-operations, corporate-functions, go-to-market, industries, platforms).

48-seat registry — all seed, no production

centralized-agent-registry.yaml (553 lines, draft_from_legacy_and_fresh_evidence, phase P0-5, issue #196): 48 entries, all seed_only_not_production, departments all “UNKNOWN until mapped”. Allowed: read-only analysis · draft task packet · draft PR/artifact. Forbidden = the hard-stop list (container restarts, Hermes restart, docker prune, DNS, billing/legal/finance, customer sends, secrets).

Counts recorded in the registry itself: old config 24 agents · old workspaces 25 · fresh config 26 · fresh workspaces 25 · registry 48.

26-seat live index — the only real lifecycle

activated16
smoke_tested10

centralized-runtime-seat-index.yaml (live_control_plane, partially_centralized_live): 7-stage readiness lifecycle seeded → activated → smoke_tested → reviewed → validated → operational → proven; default authority class_b_read_write_repo_only. Runtime classes: hermes=primary_operator, openclaw=live_agent_runtime, github_copilot_agent=code/docs/backlog, codex_claude=specialist, github_actions=deterministic_validator, n8n=approved_workflow, odoo=approved_business_record.

Plus: agent-seats/seats.yaml — 6 runtime seats (hermes-operator active, github-actions-validator active, openclaw-reviewer / codex-coding-reviewer / claude-design-reviewer planned, +1 more); 6 trained specialists (issues #33–#38: github-office, openclaw-runtime, hermes-runtime, devops-sre, kb-librarian, actions-platform-engineer); 8 charters (agent-qa-evaluation, agent-runtime-fleet, company-os-orchestrator, github-office-queue, hermes-operator, pmo-operating-review, security-access-review, sre-healthcheck).

All 48 registry seat names
maincoderresearcherarchitectqavisionperformerbizdevfinancesalesmarketinglegalcsanalyticsresourcetrainingqa-masterhiringinnovationomnibrandcontentmediaexperimentbenchmarksecurityauditormentorrecruitercrisisforgeledgercloseramplifyadvocateprismc-modernlaosentinelcatalysthypothesismetricpalettequillcanvascodexatlasscouteyeverify

Rules & governance — the law of the agent OS

The doctrine layer is genuinely strong: a tight AGENTS.md, a label state machine, risk tiers, a 13-field runtime contract with ~75 instances, an authority matrix, and the GSD/RalphLoop contract. The law exists — the enforcement actors don’t.

AGENTS.md — 3,826 B, within injection limits

Now small enough to inject whole (previous oversize problem fixed). 9 sections: non-negotiable control-plane rule, where-to-work (VPS preferred, Mac terminal-only), repo boundary doctrine, 12-step standard sequence, risk gates, secret handling (names only), tenant routing, evidence-before-close, if-unsure.

AGENTS.md@main3,826 B9 sections

Label state machine — 6 states

docs/agent-entry-protocol.md: work ONLY state:active; state:blocked / protected / not-now / stale / superseded are no-work states. Every PR must declare exactly one of Closes #N / Supersedes #N / Part of #N — remains open because… Rule: an agent that cannot prove it read current rules/issues/PRs/boundary must not write files.

office:*risk:*needs:*boundary:*status:*

Authority matrix — 9 action types, 6 Sam-gated

approvals/authority-matrix.yaml: Sam required for paid spend/vendor, DNS/domain/production deploy, legal/public claim/client-facing send, external outreach/social/ads, destructive data/container action, new role needing cost/secrets/external access. Autonomous: research/draft/analysis, GitHub branch/PR/staging (reviewer+verifier), low-risk role drafts via PR. Two sibling matrices exist (agents/ + migration-control-plane/).

Risk tiers 0–4 — with the always-human list

TierScope
0 observeresearch / summarize / monitor
1 draftissues / comments / plans / PR drafts
2 controlled writerepo-only via PR + checks
3 sensitiveruntime / Odoo / n8n / customer / finance / legal / deploy — approval required
4 prohibitedsecrets exposure, destructive prod data, legal/HR/financial final decisions — never autonomous

Source: companyos/runtime/hermes-openclaw-operating-model.md L112–118.

RuntimeContract — 13 fields, ~75 contracts

Skill agent-scripts/skills/runtime-contract/SKILL.md + runtime-contract.schema.json. Required fields (13, not the expected 8): service_id, owner, tenant/entity, repo, runtime target, domain/route, env template, secret refs (not values), healthcheck, logs/metrics/traces, backup, rollback, evidence bundle. ~75 contract files committed under viewport-company-os/runtime/contracts/.

Task plumbing schemas also on main: task-lease.schema.yaml, task-packet.schema.yaml, intake-interpreter.yaml.

GSD / RalphLoop — the 8-step contract (active on issue #196)

Goal → Setup → Do → Verify → Diagnose → Fix → Repeat → Evidence. Contract gsd-ralphloop-operating-contract.yaml (status active_repo_only); active queue holds 3 workstreams (github_ops_truth active, vps_runtime_reconciliation active_read_only, migration_live_status active); failure policy max 3 fix attempts before architecture review; proof-loop doc, test spec and activation-proof evidence all committed. Current blocker: gateway_restart = blocked_by_approval.

Hard stops (always Sam): secrets or credential values · DNS/nameserver/billing/legal/tax/finance commitments · Odoo/Slack/customer-facing writes or sends · destructive deletion/prune/volume/database/prod config mutation · old Docker/OpenClaw live service changes.

End-to-end flow — joint-by-joint status board

The designed pipeline: Sam → Telegram → Hermes intake → GitHub issue/task-packet → seat routing → executor (OpenClaw seat) → VPS runtime → evidence → PR → merge → status.json → Slack/Odoo rails. Verdict: the spine works (Telegram→Hermes, PR/evidence discipline, status.json publication) — the middle is dead (seat routing all-to-main, scheduled execution 1/8 + zombie crons, Slack rail down since May 8).

Sam Telegram Hermes intake GitHub issue / task packet Seat routing Executor (OpenClaw seat) VPS runtime Evidence PR → merge status.json Slack rail Odoo rail
1 · Sam → Telegram → HermesWORKS — gateway_state.json: telegram connected, queue 0, last send 2026-06-10
!2 · Telegram → structured intakePARTIAL — intake_persistence on; last capture 2026-06-05 trivial; hook activation blocked_by_approval (gateway restart)
!3 · Hermes → GitHub issue (task packet)PARTIAL — github MCP wired, manual flow proven (#33–#43, #196); no automation, 1/8 jobs enabled
4 · Issue → OpenClaw seat routingDEAD — fresh config: no bindings, null models → all to main; 48 seats seed_only; 4-tier routing v14 absent
5 · Seat → VPS runtime executionDEAD (fresh) / ZOMBIE (old) — fresh 0 enabled crons; old root fleet firing 49 crons off-plan (runs 2026-06-11 00:04)
6 · Evidence → PR → mergeWORKS (manual) — evidence/ tree + validators + company-os-validate.yml + PR discipline in AGENTS.md
7 · Merge → status.json publicationWORKS — public/migration/status.json carries gsd_ralphloop + vps_runtime_reconciliation keys
8 · Slack railDEAD — hermes gateway_state slack=retrying “failed to reconnect” since 2026-05-08
!9 · Odoo railPARTIAL (policy only) — slack-odoo-command-room-policy.yaml + odoo-n8n-readiness.md + odoo secret name; no live wiring observed
!10 · Hermes kanban dispatchPARTIAL (live but empty) — dispatcher on every 60s, 2 boards, tasks table = 0 rows
11 · Hermes scheduled opsDEAD (1/8) — cron/jobs.json: 8 defined, only the Monday-09:00 weekly digest enabled

Control-plane state: branches & the amnesia proof

viewport-ops has 93 branches and 1,478 paths on main. The default branch is main — NEW as of today (older docs claimed council/bootstrap-20260510). The live site is served from a diverged feature branch, and the canonical control-plane files don’t exist where agents are told to read them.

BranchRoleAhead / behind mainLast commitState
mainDefault branch — NEW default as of today2026-06-10 · “Merge pull request #219… ops/status-main-218”default
ops/openclaw-github-flow-44Serves the live site viewport.llc/migration13 ↑ / 87 ↓2026-06-10 · “redesign: unify shell across all 17 migration pages”diverged
council/bootstrap-20260510Council bootstrap — the branch STATE.md declares as its own control plane0 ↑ / 206 ↓2026-05-10 (bootstrap day)frozen / abandoned
ops/gsd-ralphloop-githubops-runtimeGSD/RalphLoop runtime — built, never merged2 ↑ / 117 ↓2026-06-05 · “feat: add vps runtime reconciliation queue”orphaned
ops/finish-migration-p0-foundationP0 foundation work1 ↑ / 110 ↓diverged

CONTROL-PLANE FILE MATRIX — the amnesia proof

The 8 canonical files every agent is told to read on entry, checked via the contents API on both the default branch and the branch serving the live site. HANDOFF.md, current-active-task.yaml and active-leases.json exist on NO branch checked. An agent arriving fresh has no current task, no lease, no handoff — the literal mechanism of amnesia.

Canonical filemain (default)ops/openclaw-github-flow-44 (serving)
AGENTS.md 3,826 B✕ 404
HANDOFF.md✕ 404✕ 404
Migration/council/STATE.md frozen 2026-05-10 same frozen copy
Migration/council/tracker.json 1 event ever 1 event ever
tasks/current-active-task.yaml✕ 404✕ 404
companyos/runtime/task-ledger-and-fallback-policy.yaml 1,391 B✕ 404
Migration/council/leases/active-leases.json✕ 404✕ 404
docs/agent-entry-protocol.md 3,297 B✕ 404

Score: main 5/8 · serving branch 2/8 (only the frozen council STATE.md + tracker.json copies). Council STATE.md sits at revision: v3, active_round: 000 with its only commit on 2026-05-10 — the council loop ran 0 rounds in 31 days, and its declared branch is 0↑/206↓.

Issue / PR reality: a queue nobody owns

23 open issues in viewport-ops, every single one unassigned. 166 labels across 3 overlapping state systems (state:*, status:*, agent:*) — and nothing consumes them. Open PRs: 0.

Unassigned share

100% of the open queue has no owner. The label state machine exists (state:active / blocked / protected / not-now / stale / superseded among 166 labels) but no actor reads it.

Pull requests

0

open pull requests across the entire org. The issue→branch→PR→merge→close loop that AGENTS.md mandates has nothing in flight anywhere. 4 of the last 100 CI runs failed (companyos-foundation + github-office on ops/hygiene-216, 2026-06-10) and were re-run green — the gates work when invoked.

166 labels 3 overlapping state systems 7 issue templates 23 open / 23 unassigned
viewport-ops #15 Odoo production installation and multi-company setup

Carries the strongest urgency labels the state machine has — priority:today + state:active + agent-entry-required — created 2026-05-11 and unassigned for ~30 days. The one issue agents are required to work, and nothing ever picked it up.

state:active · 30 dayspriority:today0 assignees
viewport-ops #213 [Control Plane]: Build Viewport closed operating loop v0.1

The designated vehicle meant to fix the loop — lease file, ACTIVE_TASK, bootstrap, write-back. Sitting untriaged (type:intake, needs-triage) with 0 comments since creation on 2026-06-08. The loop-builder itself is a victim of the missing loop.

needs-triage0 comments0 assignees
viewport-ops #196 [GSD/RALPH] Activate GitHubOps truth loop for CompanyOS + VPS runtime

The one proven pattern: its 7 comments carry the plain-English Phase/Task/Done/Proof/Blocker/Next contract that produced the only week where work actually chained. Still open, still unassigned; its runtime branch sits orphaned 2↑/117↓.

7 evidence commentsunassignedbranch orphaned
Generated 2026-06-10 · Sources: github-inventory.json (gh CLI read-only) + vps-inventory.json (read-only SSH) · Machine snapshot: /migration/github/github-data.json · No secrets embedded — the one leaked PAT appears only as ghp_hq…[REDACTED].
Agent-OS layer added 2026-06-11 · Source: agent-os-inventory.json (read-only SSH + gh CLI; secret key names only, never values) · Machine snapshot: /migration/github/agent-os-data.json · Live KPIs also pulled from /migration/status.json.
Viewport · migration · unified shell v1 (2026-06-10) · Data: /migration/status.json · Source: viewport-corp/viewport-os
Viewport · migration · unified shell v1 (2026-06-10) · Data: /migration/status.json · Source: viewport-corp/viewport-os
Viewport · migration · unified shell v1 (2026-06-10) · Data: /migration/status.json · Source: viewport-corp/viewport-os