- Go 85%
- Shell 13.8%
- Python 1%
- PLpgSQL 0.1%
`go build ./...` from a workspace root drops a binary in each main package dir (capabilities/workers/*/worker, platform/dispatcher/dispatcher). The initial commit picked them up because they were already in the tree; subsequent builds rewrite them with new build IDs, dirtying the tree on every run. These are output, not source. The tracked copies are removed from the index; future builds no longer dirty the tree. |
||
|---|---|---|
| capabilities | ||
| docs | ||
| libraries | ||
| migrations | ||
| platform | ||
| tools | ||
| .gitignore | ||
| go.work | ||
| go.work.sum | ||
| Makefile | ||
| README.md | ||
| workspace.yaml | ||
Hanuman Platform Monorepo
The platform monorepo is the home for everything that "runs on our side" of the Hanuman platform: the kernel (cp-core), the worker-facing API (cp-api), cross-cutting platform services (internal-bus, dispatcher, governance-resolver, learning-store, audit-replay, outbox), the composable capability pool (workers / adapters / strategies / validators / api-surfaces / frontend-primitives), the versioned capability packs that bundle them, the thin use-case definitions, the deployment-shape IaC, the shared libraries, the tooling (workspace-control, taskpack, hanuman-cli, hcl-client), the Postgres migrations for platform components, and all human-facing documentation.
This repo depends on git.hanumanapps.io/hanuman/machine-protocol for
contracts and types. It does not depend on verticals/,
portal-build/, or portal-operations/ — those depend on it.
Layout
platform/
├── go.work # ties the internal Go modules together
├── Makefile # top-level build entry
├── workspace.yaml # platform-internal workspace map
│
├── platform/ # The kernel + cross-cutting platform services
│ ├── cp-core/ # orchestration kernel (Go module)
│ ├── cp-api/ # worker-facing HTTP (Go module)
│ ├── internal-bus/ # internal pub/sub (Go module)
│ ├── dispatcher/ # bridges to customer-side runtimes (Go module)
│ ├── governance-resolver/ # OPA-backed governance + policy (Go module)
│ ├── learning-store/ # learning substrate (Go module)
│ ├── audit-replay/ # L8 audit + replay engine (Go module)
│ ├── outbox/ # transactional outbox library (Go module)
│ └── shared/ # cross-component utilities (Go module)
│
├── capabilities/ # The composable execution units
│ ├── workers/ # sonar-worker, exec-worker, …
│ ├── adapters/ # github, sonarcloud, anthropic, …
│ ├── strategies/ # taskpack-runner, adaptive-strategy-engine, …
│ ├── validators/ # named-only initially
│ ├── api-surfaces/ # named-only
│ └── frontend-primitives/ # named-only
│
├── packs/ # Versioned capability pack assemblies
├── use-cases/ # Thin use-case definitions
├── deployment-shapes/ # IaC per deployment shape
├── frontend-factory/ # named-only initially
├── shared-infrastructure/ # named-only
│
├── libraries/ # Cross-repo libraries
│ ├── eventbus/ # was libraries/hcl/eventbus
│ └── dbmigrate/ # was libraries/hcl/dbmigrate
│
├── tools/ # Go tooling binaries
│ ├── workspace-control/ # the hanuman CLI
│ ├── taskpack/ # taskpack ops CLI
│ ├── hanuman-cli/ # general-purpose CLI
│ └── hcl-client/ # client + ops tools
│
├── migrations/ # Postgres migrations
│ ├── cp-core/
│ └── eventbus/
│
└── docs/ # Human-consumed documentation
├── architecture/ # stable architecture (A1, ADRs)
├── policies/ # platform-level policies (focus-mode, etc.)
├── templates/ # planning templates
├── pattern-library/ # engineering patterns (placeholder)
├── ops/ # runbooks, env-vars
├── wip/ # work-in-progress design notes
├── handovers/ # H1-style handover docs
├── contracts/ # discussion docs (machine-protocol carries the schemas)
└── archive/historical/ # archived past-phase artifacts
Build
cd /home/mreddy/hanuman/platform
go work sync
go build ./... # build every module via go.work
make # top-level convenience
Workspace control
cd /home/mreddy/hanuman/platform/tools/workspace-control
go build ./cmd/hanuman
./hanuman doctor # check workspace conformance to A1
./hanuman validate # validate layout against policy
A1 reference
The ratified workspace model lives at
docs/architecture/A1-workspace-model.md.
The platform monorepo is one repo within the larger workspace; see the
workspace root README.md and workspace.yaml for the cross-repo
picture.