An Engineering Manager Operating System (EM-OS) built natively for OpenCode.
Transforms OpenCode into a context-aware Engineering Manager assistant. It encodes proven management frameworks into automated workflows for initiative planning, 1:1 lifecycle management, strategy development, and product delivery.
For deep dives into concepts like strategy kernels, vision frameworks, and the OS architecture, see the Full Guide.
-
Create your workspace: Use this repository as a template.
gh repo create my-em-workspace --template apenlor/opencode-em-os --private --clone cd my-em-workspace -
Environment: Copy
.env.exampleto.env.localand add your Jira credentials. Authenticate withgh auth login. -
Jira CLI: Install and initialize the Jira CLI (one-time step).
brew install ankitpokhrel/jira-cli/jira-cli
Then run
jira initonce inside the session after starting OpenCode (see step 5). -
Team Data: Create your team folder and roster.
mkdir -p data/teams/my-team/one-on-ones cp data/teams/example/team.md data/teams/my-team/team.md
-
Start OpenCode:
./opencode-em.sh
The runner loads
.env.localautomatically. On first use, run/connectto set up your AI provider, thenjira initonce to initialize the Jira CLI in isolated mode.Without the wrapper: If you run
opencodedirectly, export credentials manually before any Jira operation:set -a; source .env.local; set +a opencode
opencode-em-os/
├── data/ # Shared memory (Teams, Products, Strategies)
│ ├── teams/ # Roster + 1:1 history
│ │ └── {team}/
│ │ ├── team.md
│ │ └── one-on-ones/
│ ├── products/ # Tech context + Architecture
│ ├── strategies/ # Strategy documents
│ └── visions/ # Vision documents
├── initiatives/ # Active efforts (one folder per project)
│ └── [slug]/
│ ├── data/ # Input (PRDs, specs, notes)
│ ├── output/ # Generated artifacts (plans, epics, stories)
│ ├── scripts/ # Ad-hoc scripts
│ └── tmp/ # Scratchpad
├── .opencode/ # Skills, commands, and EM persona
└── .env.local # Local secrets (git-ignored)
| Skill | Trigger Examples |
|---|---|
plan-initiative |
"plan an initiative", "help me structure this" |
write-strategy |
"write a strategy" |
write-vision |
"write a vision" |
tidy-initiative |
"tidy initiative", "clean up output", "organize initiative" |
| Skill | Trigger Examples |
|---|---|
us-mapping |
"user story map", "story mapping" |
write-epic-build |
"write an epic", "implementation plan" |
write-epic-technical-discovery |
"technical discovery", "discovery epic" |
decompose-epic |
"decompose this epic", "break down epic" |
write-us |
"write a user story", "write a US" |
| Skill / Command | Trigger Examples |
|---|---|
prepare-one-on-one |
"prepare my 1:1 with", "1:1 prep" |
log-one-on-one |
"log my 1:1 with", "record 1:1" |
mentor-me |
"mentor me with", "help me think" |
/ic-activity |
"/ic-activity John last month" |
| Skill | Trigger Examples |
|---|---|
jira |
"create in Jira", "show me bugs", "issues completed" |
This workspace is designed to run in Isolated Mode via ./opencode-em.sh. This prevents global OpenCode configurations from bleeding into your management workspace, ensuring your data and persona remain private and consistent.
See GUIDE.md for detailed Data Access Rules and security considerations.
See LICENSE.