Reusable Forgejo workflows and Actions for Homeostat.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
hardKOrr 5a176e900d
All checks were successful
Validate Governor / validate (push) Successful in 10s
Merge payload-safe actuation transport
2026-07-29 15:15:15 -05:00
.forgejo/workflows Keep hydrated actuation payloads out of environments 2026-07-29 15:13:49 -05:00
actions/setup-transducer Provision pip ephemerally from a pinned wheel 2026-07-28 16:04:12 -05:00
tools Keep hydrated actuation payloads out of environments 2026-07-29 15:13:49 -05:00
.gitignore Ignore local Claude Code permission settings 2026-07-26 00:18:04 -05:00
AGENTS.md Share Governor guidance across agents 2026-07-29 00:07:06 -05:00
CLAUDE.md Share Governor guidance across agents 2026-07-29 00:07:06 -05:00
compatibility.json Keep hydrated actuation payloads out of environments 2026-07-29 15:13:49 -05:00
README.md Compose Sense Actuate Feedback workflows 2026-07-29 11:12:21 -05:00
TODO.md Close the v0.1.0 tagging item 2026-07-28 12:01:56 -05:00
VERSION Keep hydrated actuation payloads out of environments 2026-07-29 15:13:49 -05:00

Governor

Governor owns Homeostat's reusable Forgejo workflows and thin Actions. It receives Forgejo events, runs deterministic control work on normal runners, dispatches schema-bound AI calls to the matching provider runner, and returns typed results to the graph.

Confirmed default runner labels:

Work Label
Controller, schema, build, test, package self-hosted
Claude provider invocation claude-code
Codex provider invocation codex-cli

Provider runners are container based. Each invocation spawns an operator container with the provider CLI installed and already authenticated from credentials shared in by the base runner. Governor passes no provider credentials; claude-bin and codex-bin name binaries resolved from the operator's PATH.

actuate.yaml is the reusable actuation boundary. It:

  1. checks out the repository owning the invocation artifact and, when different, the controller repository owning its policy authority;
  2. installs a checksum-pinned Transducer wheel;
  3. retrieves the pinned Protocol schemas;
  4. validates the invocation before provider execution;
  5. runs Claude or Codex on its provider runner;
  6. maintains the Forgejo issue conversation;
  7. emits redacted debug output and OTLP telemetry; and
  8. uploads the typed result/debug envelope for the next deterministic cycle.

feedback.yaml interprets typed continuations on self-hosted, reserves every ready child before retiring its parent, and dispatches each child to the thin homeostat-actuate.yaml workflow in the repository that owns its artifact. Independent matrix entries remain unrestricted; dependency-blocked entries stay in the root ledger until their prerequisite branches and descendants are terminal. Target repositories check out and push themselves while the controller repository continues to own sensed intent, policy, and feedback.

Forgejo 16 requires cross-repository reusable workflows to come from a public target repository. The initial governor repository must therefore be public, or consumers must vendor the thin workflows instead.

Validate with python3 tools/validate.py.