This repository provides the Morning Star multi-agent code harness framework.
Core value:
- Start a usable multi-role workflow quickly
- Run with unified
mstar-*skills instead of scattered rules - Reuse one core process across OpenCode, Cursor, and Codex
- Use the
mstar-harnessCLI (npm package@mstar-harness/cli):npx @mstar-harness/cli init- or
bunx @mstar-harness/cli init
initprovides a target-aware guided setup so installation and baseline config happen in one flow.- CLI target support currently includes:
- OpenCode:
npx @mstar-harness/cli init --target opencode - Cursor:
npx @mstar-harness/cli init --target cursor - Codex:
npx @mstar-harness/cli init --target codexcodex plugin add morning-star-harness --marketplace personal
- OpenCode:
- Cursor and Codex installs maintain a shared checkout at
~/.mstar/harness(Codex marketplace + agent sources). Cursor installs a separate real git checkout at the plugin path — Cursor does not discover symlinked plugin directories (seedocs/cli.md).
For full CLI usage and advanced options (--yes, --dry-run, --output, doctor) including Cursor and Codex target install modes, see docs/cli.md.
Manual install targets currently include:
opencodecursorcodex
- Plugin install:
- Add plugin config in
opencode.json:{ "$schema": "https://opencode.ai/config.json", "plugin": [ "@mstar-harness/opencode@latest" ] } - Restart OpenCode
- Add plugin config in
- The OpenCode plugin resolves skills and agents only inside
@mstar-harness/opencode(notprocess.cwd()). Published builds shipharness-skills/andharness-agents/. If you work from a git checkout of this repo, runbun install/npm installat the repo root sopostinstallrunsopencode:bundle-assetsand populates those directories underpackages/opencode/.
For detailed OpenCode setup and migration, see packages/opencode/INSTALL.md.
- Recommended:
npx @mstar-harness/cli init --target cursor --scope global- Restart Cursor or run
Developer: Reload Window
- Manual install (same layout the CLI uses; do not symlink the Cursor plugin path):
git clone https://github.com/btspoony/mstar-harness.git ~/.mstar/harnessmkdir -p ~/.cursor/plugins/localgit clone https://github.com/btspoony/mstar-harness.git ~/.cursor/plugins/local/morning-star-harness- Restart Cursor or run
Developer: Reload Window
- Maintainers: develop in your workspace; refresh the Cursor plugin checkout after merge:
cd ~/.cursor/plugins/local/morning-star-harness && git pull --ff-only- or re-run
npx @mstar-harness/cli init --target cursor --scope global
- Personal marketplace install (without the CLI):
- Clone or update the maintained local checkout:
git clone https://github.com/btspoony/mstar-harness.git ~/.mstar/harness
- Create or update
~/.agents/plugins/marketplace.json:{ "name": "personal", "interface": { "displayName": "Personal" }, "plugins": [ { "name": "morning-star-harness", "source": { "source": "local", "path": "./.mstar/harness" }, "policy": { "installation": "AVAILABLE", "authentication": "ON_INSTALL" }, "category": "Productivity" } ] } - Install the plugin:
codex plugin add morning-star-harness --marketplace personal
- Link Codex custom agents:
mkdir -p ~/.codex/agentsln -s ~/.mstar/harness/codex/agents/*.toml ~/.codex/agents/
- Clone or update the maintained local checkout:
- This repository is also the Morning Star Harness Codex plugin source:
- Plugin manifest:
.codex-plugin/plugin.json - Runtime skills:
skills/ - Codex custom agents:
codex/agents/ - Codex runtime adaptation:
skills/mstar-host/references/codex.md
- Plugin manifest:
That completes installation.
- OpenCode: start with the
Project Managerrole (agents/project-manager.md, typicallyagent.project-managerinopencode.json). - Cursor: use
/pmto force-start with theProject Managerrole. - Codex: use
/pmto force-start with theProject Managerrole after installing the plugin. Codex loads shared skills and custom agents fromcodex/agents/when linked by the CLI/manual install.
The shared commands/ directory currently provides these PM-led harness commands:
| Command | Available in | Use when |
|---|---|---|
/mstar-bootstrap |
Cursor, OpenCode | Bootstrap or refresh project knowledge scaffolding: STRATEGY.md, CONCEPTS.md, {KNOWLEDGE_DIR}, and related indexes. |
/iteration-start |
Cursor, OpenCode | Start a new harness iteration: research backlog, lock direction, write compass/plans, run the review chain, and create the integration branch. |
/iteration-drive |
Cursor, OpenCode | Continue an active iteration through the per-plan execute loop; after all plans are Done, run the independent iteration-close gate before PR creation. |
In OpenCode, install or update @mstar-harness/opencode and restart OpenCode; the plugin bundles these markdown commands from harness-commands/.
In Cursor, install or update the Cursor plugin link and reload the window; the commands are discovered from this repository's commands/ directory alongside the shared agents, skills, and rules.
flowchart TD
A["PM: entry and intent clarification"] --> B{"PM: spec and context ready"}
B -->|No| C["PM: clarify and refine requirements"]
C --> B
B -->|Yes| D["PM: initialize/load HARNESS_DIR and PLAN_DIR"]
D --> E{"Iteration scope needed"}
E -->|Yes| F["iteration-start: create compass, plans, and review chain"]
F --> G["PM: lock compass and create integration branch"]
E -->|No| H["PM: select active plan from status.json"]
G --> H
H --> I{"Any plan not Done"}
I -->|Yes| J["PM: dispatch one plan on a feature branch"]
J --> K["Dev roles: implement and report"]
K --> L["PM: update plan and status.json"]
L --> M["QC trio: review gate"]
M --> N{"QC decision"}
N -->|Request Changes| J
N -->|Approve| O["QA engineer: verification"]
O --> P{"Residual findings remain"}
P -->|Yes| Q["PM/QA: register or accept residuals in status.json"]
Q --> R["PM: mark plan Done and merge to integration branch"]
P -->|No| R
R --> S["PM: sync compass plan status"]
S --> I
I -->|No| T["iteration-close: close entry checklist"]
T --> U["PM: compound round and knowledge index"]
U --> V["PM: update roadmap and compass completed frontmatter"]
V --> W["PM: close exit checklist, commit, and PR"]
For single-plan or non-iteration work, use the same per-plan gates (Prepare → Execute → QC → QA → Done) without the iteration-start / iteration-close wrapper.
| Agent ID | Role | Responsibility |
|---|---|---|
project-manager |
Project Manager | Routing, assignment, phase progression |
product-manager |
Product Manager | Requirements, product planning, and market/user research |
architect |
Architect | Architecture and technical contracts |
fullstack-dev / fullstack-dev-2 |
Fullstack Dev | Backend-led implementation / second parallel track |
frontend-dev |
Frontend Dev | UI, interaction, frontend performance |
qa-engineer |
QA | Testing and acceptance validation |
qc-specialist / qc-specialist-2 / qc-specialist-3 |
QC Trio | Code quality gate (architecture/security/performance) |
ops-engineer |
Ops | Deployment, monitoring, infrastructure |
writing-specialist |
Writing Specialist | Documentation, fiction, copywriting, and script writing |
prompt-engineer |
Prompt Engineer | Prompt / skill / rule optimization |
You can assign different models per agent in opencode.json without replacing your existing file.
Load mstar-harness-core first, then topic skills on demand (see mstar-roles for per-role lists).
| Skill | Purpose |
|---|---|
mstar-harness-core |
Global entry, state machine, Task category, skill index |
mstar-phase-gates |
Prepare/Execute gates, clarify, hotfix |
mstar-iteration |
Iteration lifecycle: iteration-start, per-plan execute loop, iteration-close |
mstar-dispatch-gates |
PM dispatch, Delegation, anti-recursion, parallel invoke |
mstar-branch-worktree |
Feature branches, worktrees, QC/QA checkout alignment |
mstar-plan-conventions |
{HARNESS_DIR} discovery, init, Spec branch summary |
mstar-plan-artifacts |
Main plan, reports/, status.json, residuals, knowledge/iteration indexes, Done compaction |
mstar-design-md |
DESIGN.md design-system gate for UI-bearing plans |
mstar-review-qc |
QC review baseline and report template |
mstar-coding-behavior |
Cross-role coding behavior: RCA, test-first checks, review feedback, completion evidence |
mstar-compound |
Knowledge crystallization into {KNOWLEDGE_DIR} |
mstar-compound-refresh |
Knowledge maintenance: refresh, merge, archive, or remove stale docs |
mstar-strategy |
STRATEGY.md alignment for long-running direction and decisions |
mstar-skill-authoring |
Skill authoring, trigger contracts, progressive disclosure, and behavior-change evidence |
mstar-roles |
Role prompt bus + per-role skill load lists |
mstar-host |
Host adapter (OpenCode / Cursor / Codex); auto-detect + references/ |
pm |
Shared /pm shortcut for Cursor and Codex PM entry |
Maintainers: in-repo design notes under .harness/ (gitignored) for specs/plans during harness work — not the published skill tree.
Project plan artifacts default to .mstar/ ({HARNESS_DIR}), with existing .agents/ / .plans/ / plans/ layouts still recognized for compatibility.
This project is licensed under MIT. See LICENSE.