Control plane for a compact single-member agentic team.
This is NOT a code repository. It defines team structure, process, knowledge, and work tracking. Code work happens in separate project repos.
The compact team profile uses a single agent (superman) who wears all hats—Product Owner, architect, developer, QE, SRE, and content writer. The agent self-transitions through the entire issue lifecycle by switching between roles as work progresses.
Key characteristics:
- GitHub-native: Issues, milestones, and PRs live on this repo's GitHub
- Supervised mode: Human reviews and approves at design, planning, and final acceptance gates via GitHub issue comments
- File-based coordination: Knowledge, invariants, and process conventions propagate via git
- Project-aware: Team repo structure supports multiple projects with shared and project-specific knowledge
Important: Botminter uses the term "epic" differently than Jira.
| Aspect | Jira Epic | Botminter Epic |
|---|---|---|
| Purpose | Organizational grouping for related stories | Structured development lifecycle for a feature/initiative |
| Workflow | Passive container, no required phases | Mandatory 12+ phase lifecycle with gates |
| Design | Optional, informal | Required: Formal design doc with human approval |
| Planning | Optional, flexible | Required: Story breakdown with human approval |
| Git integration | None | Dedicated epic branch for all team repo changes |
| Artifacts | None required | Design docs, knowledge files, invariants on epic branch |
| Review gates | None | Three human gates: design, plan, final acceptance |
| Completion | Close when stories done | Team repo PR merges epic branch to main |
| Comparable to | Simple grouping mechanism | Feature initiative, mini-project, or formal development cycle |
In practice:
- Jira epic ≈ Loose collection of related work items
- Botminter epic ≈ Complete feature development cycle (architecture → design → planning → implementation → acceptance)
A botminter epic is more heavyweight and structured. It's closer to what some organizations call a "feature," "initiative," or "theme" - work that requires upfront design, formal planning, and structured delivery.
When to use a botminter epic:
- Features requiring design decisions and architectural planning
- Work spanning multiple stories with dependencies
- Changes that affect team knowledge, invariants, or process
- Initiatives requiring human approval at key milestones
When to use a simple story:
- Small, well-defined tasks
- Bug fixes with clear scope
- Documentation updates
- Routine maintenance work
team/
├── CLAUDE.md # Agent instructions and workspace model
├── PROCESS.md # Workflow conventions, labels, statuses
├── botminter.yml # Team formation definition
│
├── knowledge/ # Team-wide knowledge (all hats)
├── invariants/ # Team-wide constraints (all hats)
│
├── members/ # Member-specific configuration
│ └── superman-atlas/ # The single team member
│ ├── PROMPT.md # Member-specific prompt
│ ├── context.md # Member context
│ ├── hats/ # Hat-specific configurations
│ ├── knowledge/ # Member-specific knowledge
│ ├── invariants/ # Member-specific constraints
│ └── coding-agent/ # Skills, agents, settings
│
├── projects/ # Project-specific configurations
│ ├── <project>/
│ │ ├── knowledge/ # Project knowledge
│ │ ├── invariants/ # Project constraints
│ │ └── coding-agent/ # Project-specific skills/agents
│
├── coding-agent/ # Team-level skills and agents
│ ├── skills/ # Reusable skills (via Ralph)
│ └── agents/ # Sub-agents (via Claude Code)
│
├── bridges/ # Integration with external systems
├── formations/ # Team formation variants
└── ralph-prompts/ # Ralph coordination prompts
The agent operates in a project repo clone with this team repo cloned into team/ inside it:
project-repo-superman/ # Agent's CWD (project codebase)
├── team/ # This repo (on epic branch)
│ ├── knowledge/
│ ├── members/superman-atlas/
│ └── projects/<project>/
├── PROMPT.md → team/members/superman-atlas/PROMPT.md
├── context.md → team/members/superman-atlas/context.md
└── ralph.yml # Copied from member config
The agent has direct access to project code at ./ and team configuration at team/.
Epic branch isolation: The team/ directory tracks an epic-specific branch (e.g., epic/42-api-versioning), not main. All team repo changes (designs, knowledge, invariants) are staged on the epic branch. When the epic completes, a PR merges the epic branch to main. This enables multiple agents to work on different epics without conflicts.
Knowledge is resolved by specificity (all levels are additive):
- Team knowledge —
knowledge/(applies to all hats) - Project knowledge —
projects/<project>/knowledge/(project-specific) - Member knowledge —
members/superman-atlas/knowledge/(member-specific) - Member+project —
members/superman-atlas/projects/<project>/knowledge/ - Hat knowledge —
members/superman-atlas/hats/<hat>/knowledge/(hat-specific)
Invariants follow the same pattern. All applicable invariants MUST be satisfied.
Work is tracked through GitHub issues on this repo:
- Epic creation — PO triages and prioritizes (
po:triage→po:backlog) - Branch creation — When epic moves to
arch:design, create epic branch (epic/<number>-<slug>) - Design — Architect creates design doc on epic branch (
arch:design) - Review — Human reviews and approves design (
po:design-review) - Planning — Architect breaks down into stories (
arch:plan) - Review — Human reviews and approves plan (
po:plan-review) - Story creation — Architect creates story issues (
arch:breakdown) - Execution — Stories flow through TDD cycle:
qe:test-design→ QE writes test stubsdev:implement→ Developer implementsdev:code-review→ Code reviewqe:verify→ QE verifiespo:merge→ Auto-advances todone
- Acceptance — Human reviews completed epic (
po:accept) - Team repo PR — Create PR from epic branch to
main, merge after human approval
See PROCESS.md for complete status definitions, branch conventions, and comment formats.
1. Triage & Backlog (po:triage → po:backlog)
- PO evaluates new epic requests
- Prioritizes and adds to backlog
- Human decision: activate for design or keep in backlog
2. Design Phase (po:backlog → arch:design → lead:design-review → po:design-review)
- Agent creates epic branch:
git checkout -b epic/<number>-<slug> - Architect produces design document in
projects/<project>/knowledge/designs/epic-<number>.md - Design includes: problem statement, approach, architecture, dependencies
- Lead reviews (optional gate)
- Human review gate: Approve or reject with feedback
- If rejected: loops back to
arch:designwith feedback
3. Planning Phase (po:design-review → arch:plan → lead:plan-review → po:plan-review)
- Architect breaks epic into story-sized work items
- Creates story breakdown plan with acceptance criteria
- Lead reviews (optional gate)
- Human review gate: Approve or reject with feedback
- If rejected: loops back to
arch:planwith feedback
4. Story Creation (po:plan-review → arch:breakdown → po:ready)
- Architect creates GitHub issues for each story
- Links stories to parent epic with
parent/<epic-number>label - Epic moves to
po:ready(ready backlog) - Human decision: When to activate epic
5. Implementation (po:ready → arch:in-progress)
- Stories flow through TDD cycle in parallel:
qe:test-design— QE writes test stubs and test plandev:implement— Developer implements featuredev:code-review— Internal code reviewqe:verify— QE verifies against acceptance criteriaarch:sign-off→po:merge→done(auto-advances)
- Architect monitors progress, epic stays in
arch:in-progress - When all stories complete, epic moves to
po:accept
6. Acceptance (arch:in-progress → po:accept)
- Human review gate: Final acceptance review
- Verify all stories completed
- Approve or reject with feedback
- If rejected: loops back to
arch:in-progresswith issues to address
7. Team Repo PR (po:accept → done)
- Create PR from epic branch to
main - PR includes all design docs, knowledge, invariants added during epic
- Human reviews and merges PR
- Epic branch deleted after merge
Stories follow a Test-Driven Development flow:
qe:test-design → dev:implement → dev:code-review → qe:verify → done
↑ ↓ ↓
└──────────────┴───────────────┘
(rejection loops)
Rejection loops:
- Code review can reject back to
dev:implement - QE verification can reject back to
dev:implement - Agent fixes issues and cycles through review again
Problem: You've approved a design, stories are in progress, but you realize the design needs changes.
Options:
Wait until the epic reaches final acceptance, then reject:
### 📝 human — 2026-04-16T12:00:00Z
**REJECT**
Implementation revealed design issues:
- [specific problem]
- Needs redesign to address [X]This sends the epic back to arch:in-progress, but stories may need rework.
Since design docs live on the epic branch, you can update them anytime:
-
Edit the design directly on the epic branch:
cd team/ git checkout epic/<number>-<slug> vim projects/<project>/knowledge/designs/epic-<number>.md git add projects/<project>/knowledge/designs/ git commit -m "Design revision: address implementation findings" git push
-
Comment on the epic to notify the agent:
### 📝 human — 2026-04-16T12:00:00Z **Design updated** based on implementation findings. Key changes: - [what changed and why] - Stories affected: #X, #Y
-
Agent pulls the updated design on next scan cycle and adjusts implementation
Advantages:
- Preserves git history of design evolution
- Agent sees changes immediately
- No workflow disruption
For fundamental design pivots:
- Create new epic with revised design
- Close or park current epic with explanation
- New epic goes through full design → plan → implement cycle
When to use:
- Design assumptions were fundamentally wrong
- Current implementation needs to be abandoned
- Scope grew significantly beyond original epic
Workflow limitation: The formal workflow lacks a path from arch:in-progress back to arch:design. The assumption is that design issues are caught at review gates. For mid-implementation changes, use direct git edits (Option 2) or a new epic (Option 3).
While the compact profile uses a single agent, the branching strategy supports multiple agents working on the same team repo:
How it works:
- Each agent works on a different epic in its own workspace
- Each workspace has
team/checked out to a different epic branch - Agents pull their epic branch before each scan cycle
- Changes stay isolated until the epic PR merges to
main - No coordination overhead — git handles conflicts naturally
Example scenario:
Agent A workspace:
team/ → epic/42-api-versioning
Agent B workspace:
team/ → epic/43-metrics-dashboard
Both agents can work simultaneously without conflicts
When an epic PR merges to main, other agents can rebase their epic branches to incorporate those changes.
- GitHub CLI (
gh) configured with access to this repo - Ralph (agent orchestration tool)
- Claude Code CLI
-
Clone this repo into a project workspace:
cd /path/to/project-repo git clone <team-repo-url> team
-
Checkout the epic branch (if working on an epic):
cd team/ git checkout epic/<epic-number>-<slug> cd ..
Or create a new epic branch:
cd team/ git checkout -b epic/<epic-number>-<slug> git push -u origin epic/<epic-number>-<slug> cd ..
-
Set up member workspace files:
ln -s team/members/superman-atlas/PROMPT.md PROMPT.md ln -s team/members/superman-atlas/context.md context.md cp team/members/superman-atlas/ralph.yml ralph.yml
-
Sync coding-agent configuration:
# Copy settings and symlink agents cp team/members/superman-atlas/coding-agent/settings.local.json .claude/ # (see member's setup script for full agent symlink process)
The agent periodically scans the GitHub project board using the board-scanner skill:
# Trigger a scan cycle
ralph run board-scannerThe scanner:
- Pulls the epic branch in
team/to get latest changes - Queries the project board for all issues via
gh project item-list - Dispatches to the appropriate hat based on current status
- The hat performs its work and commits changes to the epic branch
- Logs activity to
poll-log.txt
- CLAUDE.md — Agent instructions, workspace model, scoping rules
- PROCESS.md — Workflow conventions, label scheme, status definitions
- knowledge/ — Team-wide knowledge base
- members/superman-atlas/ — Member configuration
All GitHub operations use the gh skill (wraps GitHub CLI):
| Resource | Access Method |
|---|---|
| Issues | gh issue list/view/create/edit |
| Project board | gh project item-list/item-edit |
| Milestones | gh api repos/:owner/:repo/milestones |
| Pull requests | gh pr create/view/merge |
| Comments | gh issue comment |
The team repo is auto-detected from team/'s git remote.
Human approval is required at three gates via GitHub issue comments:
- Design review (
po:design-review) — Review design doc - Plan review (
po:plan-review) — Review story breakdown - Final acceptance (
po:accept) — Review completed epic
To approve: Comment Approved or LGTM on the issue
To reject: Comment Rejected: <feedback>
All other transitions auto-advance without human interaction.
This repo evolves through multiple paths:
- Agent creates epic branch (
epic/<number>-<slug>) - Agent commits all epic-related changes (designs, knowledge, invariants) to the epic branch
- Agent creates PR from epic branch to
mainwhen epic completes - Human reviews and merges the PR
- Epic branch is deleted
- Create a PR on a
process/<slug>branch proposing the change - Review via lead hat
- Merge to
main
- Human requests change via issue comment
- Agent edits files directly on
main - Commit to team repo
Current projects:
cloud-credential-operatorcluster-cloud-controller-manager-operatorcluster-storage-operatorinstallermachine-api-operatorvcf-migration-operator
Each project has its own knowledge base, invariants, and coding-agent extensions under projects/<project>/.
This repository contains team coordination data and configuration. See individual project repositories for code licenses.