| name | 33god-projects |
| description | Create, wire, and maintain 33god/DeLoNET projects. Covers pjangler/CommonProject bootstrap, Hermes PM and scrum-master/Ticket Sentinel provisioning with inherited profile config, mandatory mise/.env.op wiring, BMAD, Hindsight/Bloodbank hooks, and shared Hermes fleet updates. Use when running `pjangler init`, `pjangler hermes-agent`, or `mise run init-project`; adding a PM or ticket sentinel; updating Hermes for the fleet; changing the fleet default model/config; touching hermes-agent-template or pjangler provisioning; wiring mise/op inject; installing BMAD; or configuring agent hooks. Keywords: pjangler, CommonProject, hermes-agent-template, .project.json, Ticket Sentinel, inherited profile config, Hermes update, BMAD, Hindsight, Bloodbank.
|
33god Project Creation & Wiring
Every 33god/DeLoNET repo is assembled by pjangler (the installed deployer CLI) out of
two copier templates it vendors as submodules under ~/code/pjangler/templates/:
- CommonProject (
templates/commonproject) — the base skeleton: .project.json,
mise.toml, .mise/scripts/, BMAD, the ticket board.
- hermes-agent-template (
templates/hermes-agent) — Hermes agent roles (PM,
scrum-master/Ticket Sentinel, dev, …) provisioned into agents/hermes/<role>/.
.project.json at the repo root is the single source of truth for project + board
identity. There is one ticket board per repo; every agent binds to it.
Operating Principles
.project.json is canonical. Board binding (ticket_provider block), repo_path,
project_slug, and the agents map live there. Never reintroduce a separate .plane.json.
- One board per repo. The PM owns it; the Scrum Master sentinel watches the same board.
Board name = the project name (no role suffix); identifier =
slug[:4] uppercased.
- Agent config is inherited by default for new fleet agents. pjangler creates
~/.hermes/profiles/<repo>-<role> as a named profile that points at the
role's agents/hermes/<role>/runtime/ repo and opts config.yaml into
inheriting from the fleet default profile. Local agent config.yaml files
contain only overrides, such as terminal.cwd; .env, SOUL, memories,
sessions, skills, gateway state, cron, and runtime files stay local.
- mise is mandatory and uniform. Every repo gets the same
mise.toml contract (below).
- Agents are memory- and event-wired by default. Hindsight recall/retain + Bloodbank
emit/consume are part of provisioning, not an afterthought.
- Templates are version-locked. pjangler runs the vendored submodule, not an ad-hoc
checkout, unless
PJANGLER_HERMES_TEMPLATE overrides it for template development.
Route by intent
Read only the topic you need. Most tasks touch exactly one.
The standard lifecycle (at a glance)
1. CommonProject → mise run init-project # repo skeleton + Plane board + .project.json + BMAD
2. pjangler hermes-agent (role: pm, +companion) # PM agent, inherited profile, repo board
└─ companion provisions the scrum-master (Ticket Sentinel) on the SAME board
3. mise trust && direnv-style `enter` # links AGENTS.md, op-injects .env.op → .env
Steps 1–2 are detailed in references/project-creation.md;
the mise enter behavior in references/mise-conventions.md.
Cross-cutting rules (apply to every 33god repo)
AGENTS.md is the source of truth; CLAUDE.md and GEMINI.md are symlinks to it
(kept current by the link-agentfiles mise task + a watch_files trigger).
- Secrets live in
.env.op (1Password references); mise enter runs
op inject -i .env.op > .env. Never commit .env; .env.op holds only op:// refs.
- Shared non-secret Hermes settings live in the fleet default
~/.hermes/config.yaml. New PM and scrum-master profiles inherit that config
through profile.yaml:
config.inherit_from: default and config.save_mode: delta. When the fleet
default model changes, the repo agents follow automatically unless their local
profile has an intentional override.
- No code changes in a hermes-managed repo without an active ticket on the repo board
(
ALLOW_NO_TICKET=1 is the emergency bypass).
- Board creation is outward-facing (creates a real Plane/Linear/Trello board) — confirm
before running provisioning that hits a live workspace.
Out of scope
- Developing pjangler itself (new Commands/Recipes, the Command/Recipe pattern) →
the
pjangler-dev skill in the pjangler repo (~/code/pjangler/skills/pjangler-dev).
- General DeLoNET host conventions (paths, zshyzsh, Docker/Traefik, vault) →
delonet-conventions.
- Hindsight API usage / bank routing mechanics (beyond the agent-hook wiring) →
the
hindsight skill.
- Hermes PM template governance / propagating rules to existing agents →
hermes-pm-template-maintenance.
- BMAD workflow execution (PRD, stories, dev-story, sprint) → the
bmad-* skills/agents.
- Migrating a stale/split-brain repo (e.g. an old PM board + separate SM board) is a
deliberate manual reconciliation, not covered by the standard recipe.