btspoony/morning-star-harness
Morning Star — Agent Plugin for harness engineering workflows: a TS Harness Workflow Engine (@mstar-harness/engine) that enforces deterministic workflow gates, plus mstar-* judgment skills for multi-agent code delivery across OpenCode, Cursor, Codex, Kimi Code, ZCode, and omp.
Changelog
Chinese summary: CHANGELOG_CN.md.
All notable changes to this repository are documented here. Published harness surfaces are at 2.2.0 unless noted:
| Surface | Package / manifest | Version |
|---|---|---|
| Monorepo root | morning-star (package.json) | 2.2.0 |
| CLI | @mstar-harness/cli (packages/cli) | 2.2.0 |
| Engine | @mstar-harness/engine (packages/engine) | 2.2.0 |
| OpenCode plugin | @mstar-harness/opencode (packages/opencode) | 2.2.0 |
| Cursor plugin | .cursor-plugin/plugin.json | 2.2.0 |
| Codex plugin | .codex-plugin/plugin.json | 2.2.0 |
| Kimi plugin | .kimi-plugin/plugin.json | 2.2.0 |
| ZCode plugin | .zcode-plugin/plugin.json | 2.2.0 |
| omp plugin | .omp-plugin/plugin.json / .claude-plugin/plugin.json | 2.2.0 |
| Agent Plugins manifest | plugin.json | 2.2.0 |
Package-specific histories: packages/cli/CHANGELOG.md, packages/opencode/CHANGELOG.md, packages/engine/CHANGELOG.md.
[Unreleased]
[2.2.0] - 2026-08-13
Harness
- dsh plugin: the context catalog now carries an
agentFlowevidence row — the actual subagent dispatch/settle ledger ({HARNESS_DIR}/agent-flow.jsonl, bounded JSONL truncated to ~500 events; single recording coreDshHostAdapter.dispatchGatebehind both thetools/pre-executelistener and thebeforeDispatchhost hook; real settle recording —tools/post-executeis a VERIFIED registry seam (dispatched for every tool call) settling foreground dispatch calls, background tasks settle viactx.tasks.onTaskDoneterminals, paired by exact dispatch identity — settlement is never fabricated, unpaired calls record nothing). The workflow panel's main graph adds the expected-vs-actual subagent flow pipeline: a third column of stage boxes lit by dispatch evidence, a collapsible event-detail footer strip (role → planId#taskId, all five status colors, settled ✓), and the flow-expected / flow-actual / flow-unexpected legend. - dsh plugin: the ledger's missing-file state now reads as an EMPTY view (the panel shows the "no actual dispatches yet" empty state from plan merge — not an evidence-missing degrade); the ledger append path is documented single-writer and size-gated with an atomic truncation replace.
- dsh plugin: fix the unified
mstar-engine-statuscatalog row breaking the session round (session event "user/message" carries non-JSON-serializable data) when the iteration-gate section cannot be built — nostatus.json, no active steering compass, or an unreadable control doc. The optionaliterationkey is now omitted instead of present-as-undefined, keeping the appended message losslessly JSON-serializable at theSession.appendboundary. - dsh plugin: fixed the broken
@mstar-harness/dshbuild gate — the web client bundle (dist/client.js) is now emitted by the full build. Root causes:tsconfig.jsontypesomittedreact(TS7026: noJSX.IntrinsicElementsfor the panel.tsxsources) and the@deepseek-ai/dsh-client-*peer-stub workspace links were missing fromnode_modules(TS2307), which failed the build's finalbunx tscstep and left the client bundle absent. The typecheck gate is green again;dsh --profile webboots with the plugin's/plugins/@mstar-harness/dsh/client.jsregistered and served. - dsh plugin: mstar slash commands (
/iteration-start,/iteration-drive,/iteration-loop,/codebase-audit) now declare aninputhint (new frontmatterinput:incommands/*.md), so the dsh web client claims them on menu pick instead of executing immediately:/nameis inserted into the composer with the command highlight, the arg hint shows as ghost text, and the line submits only on Enter — the same interaction as/plan//goal//advisor. User-typed args are appended to the steered command message as a## User inputsection; quoted frontmatter values (description/input) now register unquoted. Updatedmstar-host/references/dsh.md. - dsh plugin:
@deepseek-ai/dsh-*peers upgraded to the0.1.0-rc.3line (^0.1.0-rc.3;@deepseek-ai/cordis^4.0.1— same-class alignment with the dsh-advisor upstream bump,dsh-external/dsh-advisor#14); every installed version below0.1.0-rc.3(old0.0.1-rc.x/0.1.0-rc.2lock entries and nested copies) was purged frombun.lock+node_modules. The monorepo root gains abunoverridesentry pinning@deepseek-ai/dsh-llmto^0.1.0-rc.3: bun otherwise installs same-version nested peer copies for each dependent dsh package, and TS 5.9 package-id resolution treats the copies as distinct modules — the plugin'sMessageSourceMapaugmentation (mstar-engine-statuscatalog kind) no longer merges into the union dsh-agent/dsh-session see, breakingcreateUserMessagetyping at theagent/pre-stepcatalog push.tests/peer-deps.spec.tspins^0.1.0-rc.3. - dsh plugin: dev-time
@deepseek-ai/dsh-*seam resolution switched from the local link farm to the npm registry at0.0.1-rc.5(bun auto-installs peers via the monorepo-root.npmrc${NPM_TOKEN}). Removedscripts/setup-dsh-links.ts+dsh:link/dsh:link:check(prepareis now build-only); droppedpeerDependenciesMeta.optional(the old skip-unpublished-peers workaround) and completed the peer set —dsh-client-runtime/dsh-client-locale/dsh-client-ui-conversation/dsh-client-ui-slots/dsh-invariants/dsh-jobsjoined the existing peers (all^0.0.1-rc.5); addedkeywords: ["dsh", "dsh-plugin"]andtests/peer-deps.spec.ts(registry peer contract, peers-not-optional regression). - dsh plugin:
@deepseek-ai/dsh-*peers upgraded to the0.1.0-rc.6line (^0.1.0-rc.6;@deepseek-ai/cordisstays^4.0.1) — every lock entry below0.1.0-rc.6(0.1.0-rc.3pins and any0.0.1-rc.xleftovers) was purged frombun.lock; the whole dsh tree now resolves at0.1.0-rc.6(60 lock entries, single hoisted copy per package). The monorepo-rootbunoverridesentry for@deepseek-ai/dsh-llmis removed: with every dsh package on the same^0.1.0-rc.6range bun dedupes to one copy, so the rc.3-era nested-copy workaround is no longer needed (verified: 1 lock entry, 0 nesteddsh-llmcopies; theMessageSourceMapaugmentation typecheck passes). Rootdependenciesstays engine-only. Seam-resolution docs updated for the public-registry reality (the root.npmrcauth token was dropped in 0c884d47):packages/dshREADME (EN/zh) andtests/peer-deps.spec.tsno longer claim a root.npmrc/${NPM_TOKEN}— the spec now asserts no scoped-registry mapping comes back and the installeddsh-llmresolves to exactly0.1.0-rc.6. Caveat:@deepseek-ai/*publishesdist-tags.latest = 0.0.1-rc.1(an ancient line whose packages reference never-published peers likedsh-user-interaction), sobun update @deepseek-ai/...must not be used — it downgrades to that line and 404s; the lock-purge +bun installpath is the supported upgrade route. - dsh plugin: dev-time dependency strategy for the
@deepseek-ai/dsh-*seams switched from committedpeer-stubs/stand-ins to a link farm (packages/dsh/scripts/setup-dsh-links.ts, dsh-advisor pattern): the REAL packages from a local dsh source tree ($DSH_SOURCE_DIR→$DSH_HOME/source/current→~/.dsh/source/current) are symlinked into the repo-rootnode_modules/@deepseek-ai/(idempotent;bun run dsh:link/dsh:link:check; wired intopreparebefore the build).peerDependenciesstay declared (the host provides them at runtime; marked optional so bun 1.2 does not 404 on the private registry); thepeer-stubs/workspace was removed. - dsh plugin: CI (validate job) now detects dsh source-tree availability (
$DSH_SOURCE_DIR/~/.dsh/source/current) and skips the dsh test/typecheck steps when absent — dsh is not run in CI. - dsh plugin:
src/index.tsslimmed from a 3184-line monolith to a module index oversrc/gates/*(pure refactor, zero behavior change — the 27-name export surface is frozen identical bytests/export-surface.spec.ts, and the export-surface type layer now runs in CI viatypecheck:tests(bunx tsc --noEmit -p tests/tsconfig.json)). - dsh plugin:
HarnessResolver.forWorkspacenow passesworkspaceRoot = the session cwd(the probe start) — the{HARNESS_DIR}probe stops AT the session workspace and never walks up beyond it, so a harness dir above the workspace (e.g. the global~/.mstarCLI-install root) is never adopted. The dsh boundary deliberately diverges from the CLI's git-top-level boundary. Explicitconfig.harnessDirstill wins outright. - dsh plugin: the pre-step catalog is now ONE unified
mstar-engine-statusmessage — watermark (version, harness dir, enforcement) + iteration phase-gate section (when a steering compass resolves) + workspace-state digest section (plan registry, open residuals, branch/policy anchors, active leases, knowledge summary, compass direction — when the workspace has astatus.json) — all from one cachedstatus.json/compass/knowledge read. - dsh plugin: the catalog row is TTL-refreshed per workspace (Config
catalogTtlMs, default 60000 ms — mid-session plan/compass/residual changes land within one interval while the hot path stays a timestamp compare + cache hit) and digest-gated (injected once per turn, re-injected only when it changed — a long turn shows the catalog once, not per step). - Unify local scratch layout: temp files →
.tmp/*, git worktrees →.worktrees/*(both gitignored); documented in AGENTS.md. - dsh plugin: the web client workflow panel is now "MStar 工作流" / "MStar Workflow" — a reworked layout (header with version / harness dir / enforcement evenly spread; fixed right sidebar for plans / residuals / knowledge / leases / branches+policy / direction; main body = a react-flow cyclic workflow graph) with an upgraded visual system (dsw-token spacing ramp, type hierarchy, dark mode, motion). The graph projects the
mstar-engine-statuscatalog through a pureprojectGraphfunction (schema constants strictly separated from catalog evidence; never throws; explicit degraded states): a phase ring (iteration-start → autonomous-execute → iteration-close → pr-delivery → merge-ready, loop edge) + plan state machine (Todo → InProgress → InReview → Done / InProgress ⇄ Blocked / unknown bucket), with current-phase highlight, legend, zoom/pan and fitView.@xyflow/react@^12.11.2is inlined intodist/client.js(MIT; license/size reviewed in guides); the build script now asserts the bundle carries noimport.meta/ ESM statements — the web loader executes plugin bundles as classic<script>s, so a zustand v4import.meta.envread (which would break the panel at parse time) is defined away. Local install re-verified: profile add → web boot → client.js route serves the built bundle byte-identical (sha1). - dsh plugin: fixed the unstyled MStar workflow panel — CSS Modules hash class names in the web client bundle could start with a digit (FNV-1a → 8-hex, ~62.5% digit-leading), producing illegal selectors (
.20fd0e45_root) that browsers silently drop (the whole rule is discarded). The client bundle build now escapes digit-leading class selectors at the CSS text layer (WHATWGCSS.escape, e.g..20fd0e45_root→.\32 0fd0e45_root; DOM class names unchanged) and adds a build-time two-layer assertion (transform + emitted artifact) that no unescaped digit-leading hash selector remains — a regression guard so silent style loss cannot slip through again. - dsh public release prep: removed the
preparescript from@mstar-harness/dsh(fresh-checkoutbun installno longer fails on the gitignored enginedist/; the monorepo builds packages explicitly, matching cli/opencode), wired dsh into the release pipeline (release-surfaces.tsversion surface + changelog,release.ymlbuild/publish), and made the READMEs public — the private dsh-provider block and the private-mirror repo-URL install (dsh-external/mstar-workflow) are gone, replaced by the registry formdsh plugin --profile web add @mstar-harness/dsh(plus local-checkout dev install). Dropped a stray committed.pnpm-store/(gitignored now). - dsh plugin: fixed ReactFlow v12 silently dropping every edge whose endpoint node exposes no connection-point
<Handle>— all 17 graph edges (phase ring 5 + state machine 5 + connector 1 + pipeline 6) render again in the real browser. - dsh plugin: synced
packages/dshto the dsh0.0.1-rc.2rename wave — seam package renames consumed (@deepseek-ai/dsh-skill-local→@deepseek-ai/dsh-skill-filesystem; test-onlydsh-tasks/dsh-tasks-fake→dsh-jobs/dsh-jobs-fake), peerDependencies bumped^0.0.1-rc.1→^0.0.1-rc.2, and renamed API symbols (SkillService→SkillRegistry; the optional background-seam surfacectx.tasks/onTaskDone/TaskId/TaskDoneListener/TaskSnapshot→ctx.jobs/onJobDone/JobId/JobDoneListener/JobSnapshot; clientLocaleService→LocaleRuntime,SlotsService→SlotRegistry). Docs/READMEskill-localprose renamed toskill-filesystem. - dsh plugin: the
<mstar_engine_status>watermark now shows one unifiedmstar versionline instead of separate engine/plugin versions (single-version invariant — the bundled engine and the plugin share one version). - Removed local-maintenance path references (
.mstar/iterations/…,.harness/docs/…) from user-facing skills:mstar-host/references/dsh.mdandmstar-iteration/references/phase-2-worktree-lease.mdnow reference only runtime consumer contracts (verified zero residual paths). - Aligned
mstar-branch-worktreefeature-worktree naming to the workspace root.worktrees/<plan-id>-<slug>convention (AGENTS.md「Local scratch layout」), gitignored by repo convention. - dsh plugin: the web client module manifest moved from the top-level
dshClientfield to the nesteddsh.client(platform: 'web'+ declared inject faces), matching upstreamclient-modulesdiscovery (dsh.client+exports["./client"]). The legacy top-level key is removed — upstream has no compatibility fallback, so the old field silently un-discovered the client half and dropped the workflow panel from the web boot manifest (window.__DSH_BOOT__.entries). A manifest-contract regression test now freezes the new contract and fails first if upstream renames the field again. - dsh plugin: version aligned to
2.0.5(single-version invariant — the@mstar-harness/enginedevDependency is pinned exact2.0.5and the engine version assertions in the dsh suites now expect2.0.5), restoring the unifiedmstar versionwatermark after the upstream v2.0.5 merge. - dsh plugin: version bumped to
2.1.1(single-version invariant — the@mstar-harness/enginedevDependency is pinned exact2.1.1and the engine version assertions in the dsh suites now expect2.1.1), restoring the unifiedmstar versionwatermark after the upstream v2.1.1 sync (QC F-001: the shipped bundle and the workspace source now report the same version). - dsh plugin: the
@mstar-harness/dshpackage now ships a web client plugin (workflow panel) on the samemstarbundle row —dsh.client+exports["./client"]discover the client half automatically (no separate profile layer or install step). The plugin registers aconversation.viewview-ring tab (id: 'mstar-workflow',order: 20) rendering the latestmstar-engine-statuscatalog row as a structured panel: watermark (version / harness dir / enforcement), iteration phase-gate section (transition, all-plans-done, gate verdict + violations, status/compass anchors), workspace-state section (plan board, residuals, branch/policy anchors, leases, knowledge, direction) and a freshness marker; refresh follows the session snapshot (no polling). Bundle ships as a closure-factory CJS artifact (dist/client.js) served at/plugins/@mstar-harness/dsh/client.js; local install into thewebprofile is verified. - dsh plugin: Known limitations — the panel is a structured segmented presentation this iteration; the graphical workflow canvas (react-flow DAG) is the NEXT iteration scope (compass Roadmap Position). No react-flow dependency or panel render-shape change lands here.
- dsh plugin:
{HARNESS_DIR}now resolves per session workspace — the probe starts from the session cwd (never the launch/process cwd), so the engine-status watermark and the gates follow the workspace the session actually works in; an explicitharnessDirconfig still wins outright. - dsh host: concurrent subagent dispatch now requires background mode — any N≥2 dispatch that needs parallel execution (QC tri-review, dual-track) MUST invoke every
subagentcall withrun_in_background: truein one message; foreground N≥2 invokes run serially (fail-closedexclusivetool classification) and do not satisfy an N-parallel requirement (dispatch-incomplete /Blocked). Updatedmstar-host/references/dsh.md(PM dispatch + QC default). - dsh plugin: agent-canvas legend + Phase layout simplification (plan
20260813-panel-agent-canvas-legend-layout) — (1) the canvas legend is simplified to the 3 role-card status entries (agent-runningrunning glow /agent-settledsettled — the standalone GREEN done frame + ✓, never on off-tier roles /agent-idleidle dashed); the 7 collaboration-edge / layout entries (flow-actual/port/group/sub-bucket/supervise/on-demand/unknown) are removed from the legend copy (the canvas itself keeps the edges / ports / partitions — only the legend copy drops them); (2) the Phase 1 / Phase 2 groups now sit SIDE BY SIDE — Phase 1 (review-edit-chain) on the LEFT, Phase 2 (sdd-implement → qc-tri → qa-gate) on the RIGHT, top-aligned — instead of stacked top/bottom, saving vertical canvas space. Docs synced: dsh.md SSOT + bundle mirrors + README.md / README.zh.md / bundle/README.md. - dsh plugin: the 代理执行 tab (spec F1.4) is now a draggable agent canvas (replacing the stage-column AgentFlowZone, which is deleted): a native pointer-event pan surface (pointerdown/move/up +
setPointerCapture, translate-only — no zoom, no third-party deps,touch-action: none) with the coordinate-space content layer exposing the pan state asdata-canvas-pan(transform: translate(xpx, ypx); the grid background moves with the content). Every KNOWN_AGENTS roster member renders an entity card — title = the agent name (session id / task tag are auxiliary record fields); un-evidenced agents show the muted idle card (dashed frame,data-agent-idle), evidenced agents light by the honest status priority (running business glow ring / settled ✓ / error / denied / advisory). Collaboration edges reuse theAgentEdgemodel: dim dashed expected stage skeleton, business actual handoffs, and the animated "next" edge (@keyframes canvas-dash-flow, disabled underprefers-reduced-motion— engine-verified). The Legend re-mounts on the canvas with the idle swatch (data-mstar-legend-item="agent-idle") + the collaboration-edge swatches; the canvas degradation note now distinguishes the settle-only ledger (data-canvas-note="settle-only") from empty/degraded, and the dead AgentFlowZone styles were removed fromzones.module.css. - dsh plugin: the agent canvas was verified in the browser harness on light + dark themes — entity cards (idle dashed / running glow / settled ✓), legend swatches (incl. the idle swatch), and the next-edge stroke were probed for computed styles in both themes (host token flip observable, zero bare colors of any form across the panel/zones/canvas css,
prefers-reduced-motionrun asserts the next-edge and running-card animations compute tonone); a real pointer-drag sequence (CDPInput.dispatchMouseEvent) moved thedata-canvas-pantransform fromtranslate(0px, 0px)totranslate(60px, 30px)with pointer capture released — the drag contract verified end to end; evidence in{SDD_DIR}/review/harness/(browser-checklist.md + browser-results.txt). - dsh plugin: the MStar workflow panel's agent-execution zone now renders the real subagent flow — the six EXPECTED_ROLE_FLOW stage/phase columns with entity cards aggregated from actual dispatch evidence (agent display name / role chip / task tag
planId#taskId/ status point / ×N count; running entities get a business glow-pulse highlight, un-evidenced stages show a dashed "pending" placeholder with their expected role chips, and the header carries theN executing · M pendingsummary). Flow arrows: dim expected skeleton arrows between consecutive columns, small in-column handoff arrows between same-column cards, and an animated "next" edge — a business dash-flow arrow (@keyframes agent-dash-flow, disabled underprefers-reduced-motion) from the latest running entity's stage to the next constant-order column, drawn only while a running entity exists. The zone degrades to muted empty states (never orange warn boxes) when the ledger is missing/empty/settle-only. - dsh plugin: the agent zone and the agent-flow event dock were verified in the browser harness on light + dark themes — entity cards, status points, pending placeholders, the next-edge dash animation (declaration + computed
animation-name) and the dock's event-row status colors were probed for computed styles in both themes, including aprefers-reduced-motionrun asserting the animations are disabled; evidence in the iteration guideiter-20260810-panel-zones/guides/agent-flow-zone-dual-theme-verification.md. - dsh plugin: the MStar workflow panel canvas was rebuilt as an HTML/CSS zone dashboard — the react-flow cyclic graph (the
@xyflow/reactrendering layer, its plain-.csstext loader, and the devDependency) is removed, and the build now asserts the emitteddist/client.jscarries noxyflow/reactflowmarkers (the bundle dropped from ~468 KB to ~85 KB raw). The canvas fills the Tab (no page-level scroll): an iteration zone (Step 1–5 stepper +Step N/5badge, active-highlight / inactive dimmed states, branch panel: iteration base / target / spec integration — rendered only while active), a tasks zone (6-column kanban: Todo / InProgress / InReview / Done / Blocked / unknown with count badges, Done ≤5 ++N more), an agent-execution zone (pending skeleton — entities + flow arrows land in plan20260810-panel-agent-flow-zone), a bottom fixed footer bar (zone legend + gate summary with collapsible violations) and a canvas-corner AgentEventDock (agent-flow event strip, mounted only when events exist — hidden entirely at 0 events). The three orange warn frames are gone — degraded states render as muted empty states, never orange boxes. - dsh plugin: the zone dashboard is fully token-driven (zero bare colors of any form) and verified in the browser harness on light + dark themes — zone backgrounds / borders, status colors and the muted empty states were probed for computed styles in both themes (
prefers-reduced-motionrespected, motion ≤200ms); evidence in the iteration guideiter-20260810-panel-zones/guides/canvas-zones-dual-theme-verification.md. - dsh plugin: the 事件记录 tab (spec F1.5) is now a non-canvas log page —
EventLogPagerenders two partitions from the projectedZoneViewslices (consumed unchanged, zero projection changes): Agent 流转事件 (view.events≤50 latest-first; off-pipeline unexpected dispatches fold in once viaexpected: false— never double-appended) and 违规记录 (view.violations, gate violations with severity/code/message). Every row is an expandable native<details>(no-JS, keyboard-accessible): the summary IS the toggle (role/agent, stage,planId#taskIdtag, HH:MM time, token-colored status chip, settled ✓, duration, unexpected badge) and the expanded body shows the full catalog fields (role/agent/stage/plan/task/category/time/kind/status/expected/settled/duration; violations: severity/code/message) — a missing field renders muted 「—」, never a fabricated value. Empty/degraded states are muted (both-empty → one「暂无记录」note; mixed empty degrades each partition independently) — never an orange warn frame. The canvas-cornerAgentEventDockis removed (无双份日志, spec §5): its row layout + status colors migrated into this page, and the header TabNav already is the jump to the tab — zerodata-agent-event-dockanchors remain. Newdata-event-log-*test anchors (section/row/details/field/missing/empty), 23 newevent-log.*locale keys (zh/en symmetric) in thePanelKeyunion, and a new token-drivenevent-log.module.css(zero bare colors — dark mode is the host token flip; the<details>disclosure chevron is a token-colored::beforethat rotates 90° on expand; 150ms hover/rotation sits in the 120–150ms window; motion killed by the panel rootprefers-reduced-motionrule). - dsh plugin: the event-log page was verified in the browser harness on light + dark themes with a real
<summary>click expanding a row's<details>(open state + detail-body computed styles asserted): partition frames (bg/border), log-row summaries, status chips (business/warn/error/success), severity chips (error/warn), the disclosure chevron (caption token, rotates on open), and the muted empty state were probed in both themes (host token flip observable, zero bare colors of any form across the panel/zones/canvas/event-log css, no panel-side dark overrides); aprefers-reduced-motionrun asserts the row hover transition computes to0s; evidence in{SDD_DIR}/review/harness/(browser-checklist.md + browser-results.txt + dual-theme screenshots with one row expanded). - dsh plugin: QC fix wave (plan
20260811-panel-event-logre-review): the unexpected-role badge is now dispatch-only — settle rows (completion records) never flag as unexpected and render「—」in the detail expected-role seat;formatEventTime/formatEventTimeFullno longer throw RangeError on a finite-but-out-of-Date-rangets(it degrades to「—」like any missing value); the events partition title moved to the symmetricevent-log.section.eventslocale key; the READMEs/dsh guide now attribute the fixed footer bar's removal to the tabs-shell plan (this plan removed only theAgentEventDock). - dsh plugin: panel F2 quickfix (plan
20260811-panel-f2-quickfix) — (1) the 任务迭代 tab's step row now renders 5 equal full-width unit blocks (flex1 1 0, centered content,--mstar-space-*gap) with pure-number badges andn/totalsummary — the connector bars (data-step-connector*) are removed and zh/en carry no 步骤/Step wording; (2)KNOWN_AGENTSis now exactly 14 roles —project-manager(the primary orchestration agent, never an assignable subagent) is removed from the 代理执行 roster; (3) the agent canvas drops theops-on-demandpipeline stage (5 stages,qa-gateterminal), movesops-engineer/prompt-engineerinto a separate on-demand column (projection-ownedzone, no expected/next arrows into it, localized label + legend entry), and renders the SDD implement ↔ task-review loop back-edge (sdd-task-review → sdd-implement) as a visually distinct curved double-arrow with its owndata-agent-edge-loopanchor —pendingsemantics follow (11 in-flow roles). - dsh plugin: panel F3 agent-general model (plan
20260811-panel-f3-agent-general) — (1) the 代理执行 canvas pipeline drops from 5 to 4 stages (review-edit-chain → sdd-implement → qc-tri → qa-gate,qa-gateterminal; thesdd-task-reviewstage is removed and its SDD L2 reviewer moves off-pipeline); (2)KNOWN_AGENTSis now exactly 13 roles —generalPurposebecomes thegeneralbucket (its own trailing column,stage: null),exploreis removed (no card, no column — a strayexploredispatch folds intogeneral),ops-engineer/prompt-engineerkeep the on-demand column,project-managerstays out of the roster; (3) entity cards now aggregate by role instead of by session — the same role across sessions folds into one card ×N, and every off-roster dispatch (formergeneralPurposereviewer,scout, anonymousrole === '') folds into the singlegeneralentity (agent/taskbecome record fields); (4) the SDD loop back-edge is redrawn assdd-implement↔general— a curved double-arrow below the column band (anchored at the column bottoms, true bezier extremum 16px below the lowest column bottom,data-agent-edge-loop="autonomous-execute:sdd-implement->general"); (5)AgentZoneis'flow' | 'on-demand' | 'general'(theunexpectedtrack is removed; columns = 4 stages + on-demand + general); (6) the 事件记录 (Event Log) page now renders its two partitions side by side in a locked-height two-column grid (repeat(2, minmax(0, 1fr))— no whole-page scroll; each partition pins its title and scrolls internally), falling back to stacked rows below 1200px, with alldata-event-log-*anchors preserved (event-logunexpectedbadge semantics unchanged —expected⟺ role ∈ EXPECTED_ROLE_FLOW union). - dsh plugin: panel F4.2 agent-view layout (plan
20260811-panel-f4-agent-view) — the 代理执行 canvas drops the standalone general bucket column (5 columns now: 4 stages + on-demand;data-canvas-columnnever emitsgeneral): the singlegeneralbucket card renders at the bottom INSIDE thesdd-implementcolumn (stable partition — dev cards first, general card below — with a dashed separator + small in-bucketgenerallabel, idle placeholder preserved,data-agent-bucket="general"); thesdd-implement↔generalSDD loop back-edge is removed — no more curved double-arrow below the column band and nodata-agent-edge-loopanchor (AgentEdge.loop/solveLoopBow/LOOP_BOW_MARGIN/GENERAL_COLUMNdead code cleaned); the 3 forward skeleton arrows, in-column handoff arrows and the animated next edge are unchanged, and the on-demand column (ops-engineer / prompt-engineer) is untouched. Evidence-driven "dynamic lines" for the review cycle are a later roadmap iteration. - dsh plugin: panel F4.3 iteration-zone (plan
20260811-panel-f4-iteration-zone) — the 任务迭代页 expanded head is now a LEFT-RIGHT SPLIT: the branch panel (data-iteration-head-branches) sits in the small left half and the Steps row (data-iteration-head-steps) in the large right half (data-iteration-head-split, DOM order branches-before-steps; narrow widths stack at the existing 860px breakpoint; no branch panel when there is no active iteration). The current step is now compass-driven: while the steering compass isstatus: active(Phase 1 in flight — catalogcompassStatusfield), Step 1 (iteration-start) renders CURRENT with verdictunknownand NO PASS/FAIL badge (Phase 1 has no gate verdict), next = Step 2;locked/ missingcompassStatuskeeps the existing gate-transition-driven Step 2→4 + gate badge. Every step reserves a fixed-height verdict seat (data-step-verdict-seat) so centered content groups align — the PASS/FAIL badge no longer skews the step blocks. Docs synced (dsh.md SSOT + bundle mirror + READMEs + knowledge update-only). - dsh plugin: panel F4.1 timeliness (plan
20260811-panel-f4-timeliness) — the 代理执行 canvas now reflects REAL subagent completion: settles are recorded only from verified completion signals —tools/post-execute(the dsh-tools registry dispatches it for every tool call, verified against the upstream source) settles foreground dispatch-tool calls, andctx.tasks.onTaskDoneterminals settle background subagents (completed → ok/killed → denied/failed → error); every paired settle carries its dispatch's identity (role/planId/taskId, same fields + semantics as the dispatch event), so under QC-tri N=3 concurrency each card settles on its own, theN 执行中count derives from the ledger, and unpaired/non-dispatch calls record nothing (never fabricated). A ledger record (dispatch/settle) now invalidates the workspace's TTL-cached catalog row immediately, so the panel refreshes per step during active orchestration instead of waiting up to the 60 s TTL (idle gaps keep the last snapshot — documented limit). - dsh plugin: panel F5 agent-layout rework (plan
20260812-panel-f5-agent-layout) — the 代理执行 canvas now renders 4 stage columns + a rightmostunknowncolumn (thegeneralbucket gets its OWN rightmost column, user 2026-08-12 decision — the former F4.2 "bottom insidesdd-implement" placement is superseded); thesdd-implementcolumn splits into sub-buckets by the projectedentity.bucket— implementor above (flow roles in stage order, then the on-demand roles ops-engineer / prompt-engineer carrying an on-demand badge; the standalone on-demand column is removed) and sdd-reviewer below (code-reviewer, the SDD L2 task reviewer — v2.1.1, the formergeneralPurposeseat), with implementor / sdd-reviewer caption labels; a bidirectional supervise line (implementor ↔ sdd-reviewer — the mstar-sdd mutual-supervision contract) runs inside thesdd-implementcolumn, dim dashed by default and lit business only when the projectedevidencedflag is true (evidence-driven lighting, never a fabricated activation);KNOWN_AGENTSgrows 13 → 14 roles (code-reviewerjoins the pipeline roster); the no-harness branch renders a centered inactive-state card (folder icon + 「No Morning Star harness detected」 title + hint — no tabs, no sidebar, activates automatically once a harness is detected). Docs synced: dsh.md SSOT + bundle mirror + README.md / README.zh.md / bundle/README.md. - dsh plugin: panel F5 design system (plan
20260812-panel-f5-design-system) — the 代理执行 canvas now implements the user-approved design system (design doc v3, two 2026-08-12 review rounds): (1) emphasis opacity tiers — every entity card carries a projectedemphasis: 'current' | 'next' | 'off' | nulltier derived from the iteration's current phase (current-phase roles 100% chrome, later-phase expected roles 75%, already-passed / stage-less on-demand + general roles 45%,null= no iteration → NO override); the tier is always a chrome alpha mix (--mstar-canvas-emphasis-*tokens), never a whole-cardopacity, so the status point + running glow stay fully opaque. (2) edge rework — a strict 4-column layout with NO standalone unknown column (thegeneralbucket sinks into an unknown sub-partition at the bottom of theqa-gatecolumn); theexpectedstage skeleton arrows and the ANIMATEDnextedge are REMOVED (flow order implied by the fixed column order + labels, current position by the running glow + status point), leaving TWO semantic kinds: evidence-drivenactualhandoff edges drawn as bezierCcurves anchored to card ports (4 edge-midpoint ports — north/south/east/west, static-invisible, hover-revealed) with the arrow tip pulled back to a 10px standoff off the port, plus the bidirectional supervise line re-anchored to the side-gap vertical anchor (x = card right edge + 18px, vertical bezier flow); two line RULES — H1 arrow follows the line's local tangent, H2 no line crosses any text. Cards are a single rounded element (glow on the rounded.card-body, no square outline). Docs synced: dsh.md SSOT (incl. leaf report-tool discipline — leaf completion goes in the closing message, not thereporttool, whose default quiet delivery strands in the parent's next-step queue) + bundle mirror + README.md / README.zh.md / bundle/README.md. - dsh plugin (v4, user round 4): the agent canvas lands the round-4 design revisions (plan Task 8, design doc v4): (1) Phase 1/2 groups + current-plan annotation — the 4 columns split into TWO stacked bands (Phase 1 review-edit-chain ABOVE — the sequential Review & Edit chain; Phase 2 sdd-implement → qc-tri → qa-gate BELOW — the iterative plan loop), each with a group label row, and the Phase-2 label annotates the CURRENT plan (projected
activePlanId= the first InProgressstate.plans[]row;+N morewhen several run in parallel, muted「无进行中 plan」when none). (2) settled green done frame + ✓ with the off-tier exclusion — a settled entity withemphasis ≠ 'off'gets a standalone full-strength green frame (success border + 1px ring on the rounded card body) + the green ✓; an off-tier role (already-passed / stage-less on-demand + general) renders a muted dot and NEVER the completion marker (the v3 leak — the ✓ survived the off-tier low transparency — is fixed). (3) shared iteration info section — the tasks and agents tabs render the SAMEIterationInfoSectioncomponent from the sameview.iterationdata (one implementation, two mounts). Inter-band handoff edges (Phase 1 ↔ Phase 2) reroute via the side-gap vertical anchor so no line crosses the group label rows (H2). Docs synced: DESIGN.md / DESIGN.dark.md v4 (Phase groups, done-frame token, plan annotation, shared section) + dsh.md SSOT + README.md / README.zh.md / bundle/README.md. - dsh plugin: panel F5 iteration-zone fixes (plan
20260812-panel-f5-iteration-zone-fix) — (1) the iteration Steps now carry a four-state machine (current/next/done/idle): every step BEFORE the current one projectsdone「已完成」 (completed — a finished Step 1 no longer reads as idle「待命」 while Step 2 is current;nextstays the single forward target,idleis schema-only), with a quiet passed treatment — success-tinted badge border + muted chip text with a leading ✓ (data-step-state="done", projection-derived, never UI-guessed); (2) the branch panel in the expanded split head is width-capped (flex: 0 1 260px+max-width: 280px— it no longer stretches with the container; the Steps row absorbs the remaining width, and the <860px column stack resets to content height).current/next/verdict semantics, the Phase-1 no-badge rule and the Step-5-never-current limitation are all preserved (Step 5 rendersnextonly while Step 4 (pr-delivery) is current — docs corrected to match). Docs synced: dsh.md SSOT + bundle mirror + README.md / README.zh.md / bundle/README.md. - dsh plugin — panel quick fixes (plan
20260813-panel-quick-fixes): the workflow panel's three tabs land the 2026-08-13 quick fixes. (1) 任务迭代 tab — the kanban is now 5 columns (Todo / InProgress / InReview / Done /blocked-unknown— the Blocked state and the former unknown catch-all fold into ONE merged column titled「受阻/未知」/「Blocked / Unknown」); every column caps its rendered rows atPLAN_CAPand shows a clickable 「更多」/「收起」 expand button (data-kanban-moreanchor) that unfolds the full column — the projection keeps ALL plan rows (the cap is a render concern, never a discard). (2) 代理执行 tab — the canvas filters dispatch evidence to the current iteration's plans only (the steering compassiterationId, else the nearest iteration via the catalogplans[].iterationRefs— most-recent plan by 8-digit id date prefix + doneAt); provably cross-iteration events produce no entity/edge while the roster keeps its idle cards, and plan-less / unknown-plan / standalone dispatches are never hidden;advisoryis no longer terminal — a soft-enforcement dispatch falls through to its paired settle (green ✓ completed when a settle exists,runningwhen none),deniedstays terminal, and the advisory verdict still renders in the event log; edge routing is tightened (H1/H2 — same-column vertical flows reroute into the LEFT side gap when the center-x line would cross an in-between card body, forward AND reverse; reverse horizontal beziers keep direction-aware control points BETWEEN the endpoints, no card/seat hits) and the legend moved below the canvas viewport. (3) 事件记录 tab — the row list now scrolls INSIDE the panel partition: the panel root opts into the hostdata-conversation-composer-overlay(full-height opt-in) so.rowList'soverflow-y: autoengages and the host page no longer scrolls, with bottom clearance reserving the floating composer via the host-published--dsh-composer-height. - Updated
skills/mstar-host/references/dsh.md+packages/dsh/README.md/README.zh.md/bundle/README.md. Theharness-skills/mirrors are gitignored and regenerated bybun run bundle-assets(not hand-committed). - dsh plugin: the MStar workflow panel sidebar was reworked (info-layout direction #1) — the header row is gone, version + harness dir now live in a bottom fixed meta dock (small muted, does not scroll with the sidebar digest); the sidebar is capped and reordered (plans ≤5 in time-desc order +
+N more, open residual findings ≤10 with severity chips + overflow hint, policy with enforcement first then push / worktree / control worktree, leases, knowledge, direction); the branches block moved out of the sidebar to the iteration zone (plan20260810-panel-canvas-zones). Catalog evidence:HarnessPlanView.doneAt(fromdone_at) andMstarHarnessState.residualFindings(open-lifecycle filtered, severity-ordered, capped at 10) — model-visible text stays compact. - dsh plugin: the sidebar / bottom meta dock theme audit is locked in — every color-family declaration in
panel.module.cssresolves through a--dsw-*token (zero bare colors of any form, including CSS Color 4color()), spacing rides the--mstar-space-*ramp, motion 120–200ms withprefers-reduced-motionoff-switch; dark mode is the host'sbody[data-ds-dark-theme]token flip (no panel-side theme overrides). Verified by a browser harness run (light + dark computed-style probes on sidebar / bottom meta dock background, text, border and status colors — 46 PASS / 0 FAIL, evidence in the iteration guide). - dsh plugin: the MStar workflow panel moved from the single-page zone dashboard to a Tabs + Content layout — a resident right sidebar (shared by all tabs: plans / residuals / policy / leases / knowledge / direction + the bottom version/harness meta dock) and a fixed header nav with the 3 MenuTabs 任务迭代 / 代理执行 / 事件记录 (default = 任务迭代, D1) switching the main content. The 任务迭代 tab is a full re-org (spec F1.3): a Content Head carries the iteration info (iterationId / gate verdict / branches) with the 5 iteration Steps laid out horizontally (current step highlighted, the connector into it lit — no "completed" checkmarks, honest to the schema's current/next/idle states); 未启动(
active === false)时整体收拢为一行摘要(可展开),启动后展开完整 Steps,且同一挂载实例在实时 catalog 更新把active从 false 翻转为 true 时会自动展开(用户已激活后手动收拢不被覆盖)。下方任务区为全宽标准 Kanban(6 列 Todo/InProgress/InReview/Done/Blocked/unknown,Done 溢出沿用 PLAN_CAP,content 区内独立滚动——不再被 canvas 高度压成小坨);代理执行 / 事件记录两 tab 落 muted 占位页(真实页面由agent-canvas/event-logplan 交付)。zone dashboard 布局随之收敛:WorkflowCanvas/IterationZone删除,其 zone 级图例项与 footer/gate-summary 样式一并移除,bundle 负向 xyflow 断言保持。 - dsh plugin: the Tabs+Content panel was verified in the browser harness on light + dark themes — iteration head / horizontal steps / full-width kanban / resident sidebar / tab nav / muted placeholder pages were probed for computed styles in both themes (token flip observable, zero bare colors,
prefers-reduced-motionrun asserts the root kill rule zeroes every transition); the layout invariants were pinned in-browser: page never scrolls, the content area is the only vertical scroll body, the sidebar stays resident across tab switches, and the kanban columns spread the content width (a real layout finding — the kanban columnmin-widthis now border-box so the six columns fit at desktop widths instead of overflowing behind the internal scrollbar); evidence in the harness under{SDD_DIR}/review/harness/(browser-checklist.md + browser-results.txt). - Sync upstream v2.1.1: merged the upstream
mstar-harnessv2.1.1 line into the dev-dsh branch — adds thecode-reviewerrole (read-only L2 SDD task reviewer / audit executor; replacesgeneralPurposeas the SDD per-task review seat, with generic fallback only when the role agent is absent on the host), ships the canonical default-ignore harness.gitignoreformat (.mstar/**+ tracked re-includesAGENTS.md/knowledge//specs/) across the engine, CLIinitfence and bundled skills, and aligns all 11 version surfaces to 2.1.1. - engine:
emitGitignoreSnippet/validateGitignore/HARNESS_PROCESS_GITIGNOREnow emit the default-ignore + re-include format instead of the flat per-directory ignore list;ROLE_MAPPINGgrows to 14 ids withcode-reviewer. - bundle-assets: re-synced
packages/dsh/harness-skills/harness-commandsfrom the mergedskills/tree — the 6+ upstream-touched bundled skills and allmstar-host/references/*.mdhost adapters (cursor/kimi/omp/opencode/zcode) now carry the v2.1.1 wording (SDD task reviewer →code-reviewer).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine,@mstar-harness/dsh, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.2.0.
[2.1.1] - 2026-08-12
Harness
- Canonical
.gitignoresnippet now default-ignores the whole harness dir (<dir>/**) and re-includes only the tracked results (AGENTS.md, knowledge/, specs/) — new process subdirectories are ignored automatically.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.1.1.
[2.1.0] - 2026-08-12
Harness
- Added a
code-reviewerrole (L2): a read-only seat for SDD per-task review andTask category: audit/mstar-auditexecution. PM entry stays/codebase-audit; large-repo fan-out uses read-onlyscout/explorevia AssignmentDelegation: allowed (scout/explore only, read-only). - Wired
code-reviewerinto SDD per-task dispatch (named L2 reviewer id,genericfallback), audit routing (mstar-harness-core,commands/codebase-audit.md), engineROLE_MAPPING(13→14), and the bilingual README role tables;qc-specialist*(L3) / QA (L4) semantics unchanged.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.1.0.
[2.0.6] - 2026-08-10
Harness
- Added a host-agnostic full-flow goal rule in
mstar-host: any host exposing a/goalcommand (Codex Goal Mode, omp, future code agents) must set the goal to running the complete flow to its end — whether advancing an iteration (start → per-plan cycles → close → PR delivery → merge-ready loop) or non-iteration work (specify → clarify → plan → tasks → implement → plan QC tri + QA gate → Done) — never a sub-stage goal. - Removed the Codex-specific
references/codex-plan-goal-mode-bridge.md; goal text rules now live host-agnostically inmstar-hostSKILL.md, and Codex Plan Mode readsreferences/_shared/plan-mode-bridge-core.mddirectly.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.0.6.
[2.0.5] - 2026-08-10
Harness
/iteration-start: accepts an optionaldirectionhint (constrains §2 candidates, seeds §3 grill-me — start stays interactive) and apauseflag; auto-continues into Phase 2→5 (execute → close → PR → merge-ready) after Phase 1 lock + integration branch, by default./iteration-driveremains standalone for re-entry/resume on an already-locked iteration. Updatediteration-loopvs-commands table, README/README_CN command tables + workflow diagrams, OpenCode package quick start; added routing evaliteration-start-auto-continue-phase2.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.0.5.
[2.0.4] - 2026-08-09
Harness
- omp plugin: engine-version compatibility — the blocking hook and
mstar_dispatch_validateno longer statically importcomposeDispatchGate; on engines predating the export the task dispatch gate (Gate 2) is skipped with a one-time warning while the status gate stays active, and the dispatch tool reports an explicit upgrade error instead of silently vanishing (parity withmstar_iteration_gate).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.0.4.
[2.0.3] - 2026-08-09
Harness
- omp plugin: in-process engine binding — model-callable mstar_* validator tools + blocking tool_call gate hook (Enforcement: hard only; commands shell-out stays as fallback).
- engine:
iteration.parseCompassFrontmattermoved from CLI (shared single parser; CLI re-imports from engine).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.0.3.
[2.0.2] - 2026-08-08
Fixed
- OpenCode plugin entry now default-exports
{ server: MorningStarHarnessPlugin }so helper function exports are not registered as plugins (fixesplugin config hook failed: N.config/N.disposeon startup).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.0.2.
[2.0.1] - 2026-08-08
Fixed
- OpenCode plugin hooks no longer abort-log on non-string
task/writeargs: Assignment andstatus.jsonvalidators refuse non-string input before.match/path.resolve, and thetool.execute.beforehook snapshotsprompt/filePathonce (avoids getter/Proxy type flips).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.0.1.
[2.0.0] - 2026-08-08
Harness
- Bash SDD/rollup scripts removed (engine CLI is the documented path):
skills/mstar-sdd/scripts/{sdd-workspace,task-brief,review-package}andskills/mstar-plan-artifacts/scripts/tech-debt-rollup.share deleted. Skill text now documentsmstar sdd workspace|task-brief|review-packageand the enginetechDebtRollupimport (mstar status validateremains the schema gate); parity tests compare engine output against stored golden fixtures captured from the byte-proven ports (slice 2). - Added the
@mstar-harness/enginepackage scaffold: a version-aligned workspace library (zod+ajv,node:*only, nobin) with a typedValidationResult+readHarnessVersion()placeholder core, wired into the release surface list (10 → 11), changelog assembly, and root workspaces. - Engine hardening (QC fix wave, slice 1): lease location/orphan/dual-write verify (
lease.verify.*) moved into@mstar-harness/engine(CLImstar lease verifyis now a thin wrapper);archiveResidualsgained a plan-id path-traversal guard, the status write lock, and append dedup;withStatusWriteLockgained an ownership guard (never removes another writer's lockdir), aholder.pidcrash-diagnosis file, and fast-fail reentrancy detection;readHarnessVersionreads the module's own manifest first (published installs no longer regress to0.0.0);tech-debt-rollupparity now mirrors jq//exactly (false/0edges tested against the bash oracle); residual closed-lifecycle completeness (closed_at+closure_note) and plan-rowDone⇒ no-lease invariants added. Release prep now ensures the@mstar-harness/engineregistry row + package-history link in root changelog heads. - Harness Workflow Engine positioning (iteration v2.0.0): unified engine-first descriptions across the 7 plugin manifests and the 4 package manifests; added
workflow-engine/workflow-enforcement/deterministic-workflow/harness-workflowkeywords to the root plugin manifest; re-framed README.md / README_CN.md around deterministic workflow gates enforced by a TS engine (not prompts alone) with judgment staying inmstar-*skills, plus a What-ships table (Harness Workflow Engine / mstar CLI /mstar-*skills / host adapters).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli,@mstar-harness/engine, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 2.0.0.
[1.8.9] - 2026-08-07
Harness
- Added a portable Agent Plugins v1.0.0 manifest (
plugin.json) at the repo root, aligned with the CLI release surface (skills/is the Agent Skills component), plusmstar-harness plugin validateto check the package (includingmcp.json/skills/) against the Agent Plugins v1.0.0 spec. - Phase 5 checkout: merge-ready product fixes edit directly on the control /
spec_integration_branchcheckout; forbid opening a separate Phase 5 feature/fix worktree or applying Phase 2's "no product edits on control" rule. SSOT stays inmstar-iteration(phase-4-5-pr-delivery§5.0); not in the generalmstar-branch-worktreeskill.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests, and the portable Agent Plugins manifest: → 1.8.9.
[1.8.8] - 2026-08-06
Harness
mstar-skill-authoring: fold the skill-writer 6 principles into the runtime authoring skill — expert process first, compact 5-question body, 1–3 skill routing, per model+harness validation, encode only model gaps, every edit as paired experiment. Body stays the executable gate; full writer loop / output template / anti-patterns →references/skillsbench-authoring.md(progressive disclosure).- Tightened
descriptiontrigger contract with exclusions; keep purpose test / frontmatter / progressive disclosure / review template as reusable SSOT. - Reframe as general skill-authoring guidance (any domain/repo): drop Morning Star /
mstar-*-only branding from body; keep minimal harness hooks (Load Order +mstar-hostpath resolve) only when working in this repo. - Restored
## Skill-relative script and asset pathsheading somstar-host§ cross-reference stays valid (Post-Skill-Change stale-ref checklist). - Keep changelog SSOT tight in
AGENTS.md: §1 owns the fragment rule (including no hand-edit of assembledCHANGELOG*); Quality Gate #6 stays the executable check; remove copy-paste repeats elsewhere.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests: → 1.8.8.
[1.8.7] - 2026-08-06
Harness
- Made the SDD dispatch templates host-neutral so they no longer prime a single host's tool schema:
implementer-prompt.md,task-reviewer-prompt.md, andimplementer-continuation-prompt.mdnow useDispatch:/Role:/Name:/Prompt body:labels with an inline host-field map (omp agent / Cursor subagent_type / OpenCode subagent → mstar-host C5) instead of Cursor-only fields (subagent_type,description,prompt). The L2 task reviewer template now states the ompagentvalue directly (reviewerortask+ C5b), closing the mapping confusion that produced generic-worker fallbacks under SDD. - Trimmed the envelope-first rationale repeated across
mstar-host/references/omp.mdandparallel-dispatch.mdto a one-line mechanical rule + SSOT pointer (the long-body prose was itself contributing to attention crowding), and added the L2 revieweragentmapping to the omp SDD section.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp/Claude plugin manifests: → 1.8.7.
[1.8.6] - 2026-08-06
Harness (dispatch fidelity — invoke field-completeness gate)
- Added a per-item field-completeness gate at the dispatch self-check: every Task/subagent invoke must carry the role-binding field matching
Execute as(ompagent/ Cursorsubagent_type/ OpenCodesubagent/ Kimi·ZCodesubagent_type). A missing field (e.g. omp omittingagent⇒ silent generictaskfallback) is now dispatch incomplete — same severity as paste-only zero-invoke — so a baretasks:[{task:"…"}]no longer passes just because invoke count = N. N=1 sequential Review-&-Edit chains are explicitly covered (count gate is vacuous there). mstar-dispatch-gates: pre-send self-check line + anti-pattern bullet;mstar-host/references/parallel-dispatch.md: hard rule + self-check step;mstar-host/references/omp.md: Review-&-Edit example now shows a fulltask(...)block per pass (architect / writing-specialist) withagentset, plus an N=1 gotcha..cursor/skills/mstar-routing-eval: regression signal for "invoke role field missing ⇒ silent generic fallback".
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.8.6.
[1.8.5] - 2026-08-06
Harness (skill path discovery — runtime surfaces)
- Closed remaining cwd-looking
skills/mstar-*traps on shipped runtime surfaces: Cursorrules/mstar-entry.mdcandrules/mstar-cursor-plan-mode.mdc, plus omp CLI post-install note inpackages/cli/src/adapters/omp.ts(nowmstar-host → references/omp.md/skill://…). mstar-host: new § Resolve loaded skill root (per-host prefer + filesystem fallback: ompskill://, Cursor plugin checkouts, OpenCodeharness-skills/, Codex/Kimi/ZCode plugin mounts). Host references point at the table;mstar-skill-authoringdocuments the same anti-pattern for rules/CLI notes.- INSTALL /
docs/cli.mdHost adapter bullets use the same skill-relative form (not consumer-cwdskills/mstar-host/references/…).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.8.5.
[1.8.4] - 2026-08-06
Harness (skill script path discovery)
- Skill-relative script naming: runtime docs now reference executables as skill
mstar-sdd→scripts/<name>(or<mstar-sdd>/scripts/…), not as consumer-cwd paths likeskills/mstar-sdd/scripts/…. Agents were searching the literal repo-relative path under app checkouts and missing the loaded skill / plugin install location. - Updated
mstar-sdd(SKILL +file-handoffs),mstar-plan-artifacts(tech-debt-rollup),mstar-plan-conventions,mstar-iteration, PM AssignmentSDD dircue, andmstar-skill-authoring(new “Skill-relative script and asset paths” convention). - Maintainer
.cursor/LOCAL-VALIDATION.mdkeepsskills/…smoke commands only for this harness repo root, with an explicit note.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.8.4.
[1.8.3] - 2026-08-05
Harness (omp role-agent dispatch)
- omp C5 corrected: after plugin install/link, discovered
agents/*.mdrole ids (product-manager,architect,fullstack-dev,qc-specialist*, …) are valid livetask.agentvalues. Preferagent: "<Execute as role-id>"; use generictask/scout/ … only as fallback when the role is absent from the live schema. Usingagent: "task"while the matching role agent is listed is an anti-pattern. - C5b retained: even when
agentalready matches the role id, Assignment still requires Act as + skill load (agent shell ≠ full Morning Star role prompt). - Updated
skills/mstar-host/references/omp.md(self-contained C5 + C5b);_shared/host-role-binding-core.mdis Kimi/ZCode only (no omp rows/mentions — other hosts use their own references), plusparallel-dispatch.mdandmstar-hostskill description; aligned INSTALL /docs/cli.md. Dropped the README “Host notes / 宿主说明” aside so the Use section stays entry-only.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.8.3.
[1.8.2] - 2026-08-05
Docs (README + host detection)
- README (
README.md+README_CN.md): reorder all host tables to the recommended host order (omp > OpenCode > Cursor > Kimi = ZCode > Codex); reorganize Use section into General (without iteration) → Iteration → Codebase audit. mstar-host: rewrite the host detection table to use session tool shapes / available commands only —*-plugin/plugin.jsonfiles cannot identify the host (they coexist in this source repo and in any multi-host install). Merge the duplicate Cursor detection rows into one keyed onsubagent_type.- Host references: strip the same plugin-marker clauses from the
Load whentrigger lines ofcodex.md/kimi.md/zcode.md/omp.md; keep tool-shape / observable-command signals only. Path-reference context lines and bridgeplugin is installedprerequisites are left as documentation (not detection triggers). - omp: document native internal URL schemes (
skill://,local://,agent://,artifact://,history://) inreferences/omp.md.
CLI
zcodeadapter no longer hardcodes aPLUGIN_VERSIONconstant (it had drifted to1.6.0). Marketplace entry generation anddoctor's ZCode version check now derive the version frompackages/cli/package.jsonvia a sharedreadHarnessVersion()helper inutils.ts(same helperindex.tsnow uses for--version). Fixed stale1.5.6/1.6.0version strings inINSTALL.mdand the ZCode adapter.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.8.2.
[1.8.1] - 2026-08-05
Harness (skills + commands optimization)
- Lossless optimization of
skills/andcommands/per SkillsBench principles (compact bodies, progressive disclosure, dedup to SSOT). No rule, gate, field name, or NEVER bullet altered or dropped — rules move or compress, never disappear. - Extract to
references/:mstar-iterationPhase 3 →phase-3-iteration-close.md, Phase 4/5 →phase-4-5-pr-delivery.md(body 574 → 384 lines);mstar-compoundQ1–Q8 + Phase 1–7 →compound-workflow.md(275 → 103). - Compress:
mstar-coding-behavior216 → 142 (kept The Ladder,simplify:marker, minimal-check);qc-specialist/deep-review-lenses.md11 lens checklists → one-liners (155 → 94). - Dedup: anti-pattern lists →
mstar-harness-coreindex; new_shared/leaf-executor-core.md(Completion Report + Git NEVER across 9 leaf roles); new_shared/host-role-binding-core.md+_shared/plan-mode-bridge-core.md(de-clone kimi/zcode/omp host files + 5 plan-mode bridges). - Commands → thin orchestrators: 4 commands 943 → 388 lines (−59%); new
mstar-iteration/references/phase5-helper-discovery.md. - Descriptions: tightened
coding-behavior,branch-worktree,phase-gatesfrontmatter to trigger contracts. - Docs: recommended host order added to
README.md+README_CN.md(omp ≥ OpenCode ≥ Cursor > Kimi = ZCode > Codex). - Naming:
Completion Report v2→Completion Report(template unified; version suffix dropped).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.8.1.
[1.8.0] - 2026-08-05
Harness (codebase audit skill)
- New
mstar-auditskill: read-only advisory workflow adapted from the improve skill (MIT, © shadcn). Surveys a repo across 9 categories (correctness, security, performance, tests, tech debt, dependencies, DX, docs, direction), vets findings, prioritizes by leverage, and writes self-contained improvement plans to{PLAN_DIR}/audit-<date>/. Theimproveexecute/reconcile/--issuesvariants are not imported — mstar's SDD,status.json, and residual tracking replace them. - New
plan-quality-barreference (mstar-plan-artifacts/references/plan-quality-bar.md): shared standard for self-contained plans — verification gates, STOP conditions, drift check, machine-checkable done criteria. Applies to SDD task-briefs, Prepare plans, and audit plans. - New
/codebase-auditcommand (commands/codebase-audit.md): standalone entry point. Named withcodebase-prefix to avoid host command conflicts (follows theiteration-*convention). Wiring:mstar-harness-coreTask categoryaudit+ skill index;mstar-phase-gatesPlan quality gate;mstar-sddreferences;mstar-rolesarchitect load entry;pmskill entry;iteration-start§1 Research optional source. - Attribution: improve (MIT, © shadcn) credited in
mstar-audit/SKILL.mdandplan-quality-bar.md.
CLI (@mstar-harness/cli)
- Codex adapter:
CODEX_PROJECT_COMMAND_NAMES(renamed fromCODEX_ITERATION_SKILL_NAMES) now includescodebase-audit; project-scoped install materializes it as.agents/skills/codebase-audit/SKILL.md. - omp adapter: smoke test and install notes include
codebase-audit.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.8.0.
[1.7.1] - 2026-08-05
CLI (@mstar-harness/cli)
- omp doctor: parse
omp plugin list --jsonshape{ npm, marketplace }(omp 17.x) instead of only array/plugins, and matchmanifest.name.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.7.1.
[1.7.0] - 2026-08-05
Harness (omp host surface)
- omp as sixth host surface: markers
.omp-plugin/plugin.json+.claude-plugin/plugin.json(plugin root = repo root; mounts./skills/,./commands/,./agents/). Newskills/mstar-host/references/omp.mdcoveringtask/ask/hub, filename slash commands (/iteration-*), and C5/C5b built-intask.agent+ role-in-prompt binding.omp-plan-mode-bridge.mdfor/plandual-write.mstar-hostdetect table +pmentry +parallel-dispatchupdated. - Install:
omp plugin install github:btspoony/mstar-harnessoromp plugin linkof the local harness checkout; package list name is rootmorning-star.
CLI (@mstar-harness/cli)
ompinstall target:npx @mstar-harness/cli init --target ompensures~/.mstar/harnessand runsomp plugin link(falls back toomp plugin install github:btspoony/mstar-harness).doctor --target ompchecks markers, smoke skills/commands, andomp plugin list.shared-installHARNESS_MARKERSaccepts.omp-plugin/plugin.json.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode/omp plugin manifests: → 1.7.0.
[1.6.1] - 2026-08-04
Harness (QC = code reviewer, not test runner)
- L3 Plan QC clarified as diff/logic review:
mstar-review-qcboundaries +qc-specialist*workflow/shared NEVER — parallel tri-review on a sharedReview cwdmust not run test/build/install/lint/typecheck (peer QCBlockedfrom toolchain contention). Coverage is judged from the diff, not by re-running suites. - L1 / L4 own runtime evidence: QA
acceptance-onlyreuses implementer/CI/prior-QA logs; QC reports are findings, not the test log. PM Assignment anti-patterns andqa-trigger-matrixupdated accordingly. - OpenCode
qc-specialist*agents: bash allowlist trimmed to git + lightweight read-only analysis (removed eslint/tsc/ruff/clippy/etc.).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode plugin manifests: → 1.6.1.
[1.6.0] - 2026-08-03
Harness (ZCode host surface)
- ZCode as fifth host surface: plugin root = repo root via
.zcode-plugin/plugin.json(mounts./skills/,./commands/,./agents/); nosessionStart(ZCode lacks it — PM entry is manual/morning-star-harness:pm). Newskills/mstar-host/references/zcode.mdwith tool map written against the real ZCode session tools (Agent/AskUserQuestion/EnterPlanMode·ExitPlanMode/TodoWrite/Bash/Read/Edit/Write/WebSearch/WebFetch/TaskOutput·TaskStop), reusing Kimi C5b role-in-prompt binding (ZCode ships built-insubagent_typeprofiles only).zcode-plan-mode-bridge.mdfor Enter/Exit dual-write. mstar-hostSKILL.md: description, detect-host table, and fallback row now include ZCode.
CLI (@mstar-harness/cli)
zcodeinstall target:npx @mstar-harness/cli init --target zcoderegisters amstar-localmarketplace in~/.zcode/cli/plugins/known_marketplaces.json+marketplaces/mstar-local/marketplace.json, both pointing at thegithub:btspoony/mstar-harnessrepo source (matches ZCode's built-in marketplace source shape). Project scope also keeps a local.zcode/plugin-checkoutfor agent-file smoke checks.doctor --target zcodevalidates both JSON files + checkout + gitignore.shared-installHARNESS_MARKERSnow also accepts.zcode-plugin/plugin.json.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi/ZCode plugin manifests: → 1.6.0.
[1.5.6] - 2026-07-28
Harness (residuals)
Findings cleanup: zero-residual | allow-residual: plan-level mode to clear QC/QA findings in-session when possible. Formal iteration Phase 2 defaults tozero-residual(fix-now + re-review; open R# only for true blocker-defer + Durable Roadmap). Standalone/pm, hotfix, andinlinekeepallow-residual.- Assignment field + optional
plans[].metadata.findings_cleanup; SSOT inmstar-plan-artifactsFindings cleanup modes; wired throughmstar-review-qc, PM NEVER / Assignment template, iteration close checklist, QA trigger note, and routing-eval cases.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi plugin manifests: → 1.5.6.
[1.5.5] - 2026-07-27
Harness (worktree / L1)
- Control-path harness under default gitignore: process artifacts (
plans/,iterations/,status.json,sdd/, …) stay local; read/write them via absolute control worktree paths. Feature worktrees keep product/source edits only — do not waive worktree because feature checkouts lack plans, and do not treat “no flock” as a worktree waiver (serial plan parallelism only). - Assignment fields: absolute
Control harness root, controlPlan Path/SDD dir, featureWorktree path. sdd-workspace:MSTAR_CONTROL_ROOT/ optional control-root arg; fail-closed on linked worktrees withoutstatus.json.- Routing-eval cases for no-flock serial + gitignore control-path harness.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi plugin manifests: → 1.5.5.
[1.5.4] - 2026-07-27
Harness (Cursor host)
mstar-hostCursor Task invoke schema: document flat sibling fields (prompt+subagent_type+description) with examples, anti-patterns (nested/stringified JSON, OpenCodesubagent, MCP wrap, missingsubagent_type), and a send-time self-check — reduces first-attempt Task parameter-format failures. Pointer fromparallel-dispatch.md.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi plugin manifests: → 1.5.4.
[1.5.3] - 2026-07-25
Harness (commands / frontmatter)
- Frontmatter YAML: quote
descriptionfields that contain:so Cursor/plugin discovery does not drop commands/skills (iteration-loop,mstar-branch-worktree,mstar-phase-gates,mstar-plan-artifacts,mstar-review-qc,mstar-sdd). /iteration-loopscale: addXL= >4 business plans (S/M/L/XL; default stillM). SSOT:mstar-iteration§1.2 +references/autonomous-direction-lock.md.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi plugin manifests: → 1.5.3.
[1.5.2] - 2026-07-23
Harness (git policy + SPECS_DIR)
- Process vs results git policy: default tracked under
{HARNESS_DIR}—AGENTS.md,knowledge/,specs/; default gitignored —plans/,iterations/,status.json,sdd/,archived/,notes.json. Cross-clone handoff = tracked results + rootCONCEPTS.md/STRATEGY.md; promote residuals via compound instead of defaultgit addforstatus.json/plans/. {SPECS_DIR}resolve order:{HARNESS_DIR}/specs/→docs/specs/→ repo-rootspecs/(skip empty dirs; greenfield creates{HARNESS_DIR}/specs/). Legacy read-compat: non-emptydesigns/paths.- Aligned:
mstar-plan-conventions,mstar-plan-artifacts,mstar-sddfile-handoffs, host Plan-mode bridges, bilingual README,.cursor/LOCAL-VALIDATION.md. - CLI:
init/doctorappend/check the full process gitignore set (seepackages/cli/CHANGELOG.md).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi plugin manifests: → 1.5.2.
[1.5.1] - 2026-07-22
Harness (Phase 5 push cadence)
- Phase 5 push cadence (HARD): CI/review findings may be fixed locally early, but
git pushonly after the previous CI and review wave on the current head have fully completed. After CI settles, new reviews may continue to be fixed locally; never push while CI is still running (cancels/orphans AI reviews — wasted tokens, incomplete results). SSOT:mstar-iteration§5.1a; alignediteration-drive/iteration-loop; core anti-pattern row.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi plugin manifests: → 1.5.1.
[1.5.0] - 2026-07-22
Harness (iteration Phase 2 worktree + lease)
- Phase 2 control worktree on
spec_integration_branchplus per-plan feature worktree withexecution_lease/integration_merge_lease(same-host exclusive write lock; serial integration merge;Doneonly after successful merge). - Multi-session cross-plan parallel implement under leases;
Worktree mode: waiveddoes not bypass the cross-plan parallel safety gate;Plan parallelism: serialis scheduling-only. - Routing-eval updates for lease-gated multi-plan parallel and failure modes; bilingual README Phase 2 defaults.
Harness (Phase 5 helpers)
- Phase 5 merge-ready helpers: prefer
babysitor any*-babysitskill;greploopis optional only when the repo has Greptile/greploop. When both apply, run babysit/*-babysitfirst, then optional greploop. Updatedmstar-iteration§5 pointer +commands/iteration-drive/iteration-loop.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi plugin manifests: → 1.5.0.
[1.4.0] - 2026-07-17
Harness (Kimi Code host)
- Kimi host support:
.kimi-plugin/plugin.json(host-folder layout aligned with Cursor/Codex;sessionStart.skill: pm);mstar-hostKimi reference / Plan-mode bridge; role binding in Agent prompts (built-incoder/explore/planonly). - Install: primary path is Kimi TUI
/plugins install https://github.com/btspoony/mstar-harnessthen/plugins reload(no CLI--target kimi). - Plugin commands:
/morning-star-harness:iteration-start·iteration-drive·iteration-loop.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex/Kimi plugin manifests: → 1.4.0.
[1.3.2] - 2026-07-15
Harness (Cursor Plan Phase 1 feedback-driven)
/iteration-startCursor Plan path: feedback-driven loop — user gives direction/opinions only; agent explores, recommends, and updates the plan.grill-meis deferred until feedback-close and only if blocking gaps remain.- Single CreatePlan URI (HARD): CreatePlan once per Phase 1 Plan session; subsequent updates edit that same file in place; merge and delete accidental duplicates.
mstar-host/ rule /mstar-iteration§1.2: Phase 1 Plan UX documents feedback-driven updates and recommended branch policy (no silentmain/master).- Routing eval v20:
iteration-phase1-cursor-plan-feedback-driven.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.3.2.
[1.3.1] - 2026-07-13
Harness (iteration package layout)
iterations/<id>/directory-first: compass moves to{ITERATION_DIR}/<iteration-id>/delivery-compass.mdwith siblingguides//specs// optional packageREADME.md. Root{ITERATION_DIR}/README.mdindexes one row per iteration (no compass + workspace double entries).- Legacy read compat: flat
{ITERATION_DIR}/<id>-delivery-compass.mdremains readable; new writes must use the package path. - Touches:
mstar-iteration(+ references),mstar-compoundpackage promotion,mstar-plan-conventions/mstar-plan-artifactspath docs, role shells,/iteration-start·/iteration-drive·/iteration-loop.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.3.1.
[1.3.0] - 2026-07-11
Harness (bootstrap absorb)
- Retire
/mstar-bootstrapcommand: the 7-phase project knowledge bootstrap procedure moves tomstar-compound-refresh/references/project-knowledge-bootstrap.md;mstar-compound-refreshandmstar-harness-corecarry short pointers.
CLI (Codex iteration skills)
- Project-scoped Codex install: materializes
iteration-start,iteration-drive, anditeration-loopas.agents/skills/*/SKILL.mdsymlinks from bundled harness commands;doctorvalidates links; global install skips with an explicit warning.
Docs
- Root
INSTALL.md: machine-readable install steps extracted from READMEs. - Slim bilingual READMEs: CLI-first Quick Start; clarify
/iteration-start→/iteration-drivevs/iteration-loopusage paths.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.3.0.
[1.2.1] - 2026-07-10
Harness (Cursor Plan mode × Phase 1 staged direction lock)
/iteration-startCursor Plan path: after Boot, Plan mode creates a blank Phase 1 CreatePlan scaffold first, then runs dynamic stagedgrill-methat updates the plan each stage; Review & Edit / lock / integration branch run only after Build. Agent / OpenCode keep Research → Explore → grill-me → Write → Review.mstar-hostCursor bridge / rule: documentmstar-iterationPhase 1 in Plan mode (no command-name reverse refs in skills).mstar-iteration§1.2: host Plan UX may scaffold then converge interactively; non-Plan hosts unchanged.- Routing eval v19:
iteration-phase1-cursor-plan-staged-grill.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.2.1.
[1.2.0] - 2026-07-10
Harness (/iteration-loop + autonomous direction lock)
/iteration-loop: new PM command for autonomous full Phase 1→5 (cloud-agent friendly). Optional argsdirection+scale(S|M|L, defaultM); code-first auto direction lock (no grill-me); sequential Review & Edit chain retained; Continuous execution through Phase 5 merge-ready. Distinct from/iteration-start(Phase 1 + grill-me) and/iteration-drive(Phase 2→5 only).mstar-iteration§1.2: direction lock modesinteractive|autonomous; scale budget counts business plans only (harness process excluded); autonomous branch resolve order. Detail →references/autonomous-direction-lock.md(skills remain capability providers — no command-name reverse refs).- Docs: README / README_CN / OpenCode package README command tables distinguish start / drive / loop.
- Routing eval v18:
iteration-loop-autonomous-direction-lock— no routine direction yes/no; no grill-me; no silentmaindefault; no process plans in scale budget.
CLI / CI / release
- OpenCode
initfast path: no interactive model picking and noopencode modelsdiscovery (that call could hang with no feedback). Default writes$schema+@mstar-harness/opencode@latestonly; OpenCode default models apply. Optional--*-modelflags remain as advanced overrides. - CI: path-filtered builds for
packages/cli,packages/opencode, and bundledskills/agents/commands; includes CLI smoke check + pack. - Release: use Node 24 bundled npm for Trusted Publishing; remove broken
npm install -g npm@lateston Node 22 (fixesMODULE_NOT_FOUND: sigstore); build packages before publish.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.2.0.
[1.1.0] - 2026-07-08
Harness (ephemeral review bundles)
- Review bundle default: raw QC/QA process reports now live under
{SDD_DIR}/review/(gitignored), while tracked handoff artifacts are durable main-plan gate summaries and{HARNESS_DIR}/status.jsonresidual findings. - Legacy tracked reports:
{PLAN_DIR}/reports/is now legacy / explicit audit mode only, not the default QC/QA report target. - Iteration compass: add a
Quality Gate Summarysection for iteration-level QC/QA verdict and residual rollups without replacing per-plan summaries orstatus.json.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.1.0.
[1.0.6] - 2026-07-08
Harness (SDD per-task reviewer dispatch)
mstar-sdd: pin L2 per-task reviewer tosubagent_type: generalPurpose; forbidqc-specialist*at task scope (plan QC tri remains L3 after all tasks).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.0.6.
[1.0.5] - 2026-07-07
Harness (tiered QA gate + role-scoped QC/QA refs)
- Tiered QA gate (
mandatory|pm-acceptance|report-only) with PM dispatch matrix (qa-trigger-matrix.md); hotfix/small clean backend defaults topm-acceptance; medium+, UI, and residual work still requires mandatory QA. - L4 acceptance narrowing (
qa-engineer/acceptance-gate.md): evidence reuse from QC consolidated output; no default full test re-run whenQA mode: acceptance-only. - Role-scoped execution refs: leaf QC →
mstar-roles/references/qc-specialist/; L4 QA →qa-engineer/;mstar-review-qcslimmed to PM orchestration only. - Positive-only skill load lists per role (what to read) — avoid priming leaf agents to load
mstar-review-qc. - Routing eval v17: hotfix/small-backend
pm-acceptance; UI remainsmandatory.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.0.5.
[1.0.4] - 2026-07-07
Harness (parallel implement worktree gate)
- New
mstar-branch-worktree/references/parallel-writable-pre-dispatch.md: SSOT pre-dispatch checklist for same-repo ≥2 concurrent writable implement tracks —git worktree add, absoluteWorktree path, PM stays on integration branch, emit-zero until ready. mstar-dispatch-gates: Dual-gate table — tool concurrency (N invokes in one message) vs same-repo write isolation; clarifies N invoke ≠ worktree compliance.mstar-branch-worktree,mstar-iteration,mstar-phase-gates,project-manager,dispatch-and-assignment,fullstack-dev-shared: thin pointers to the reference; deduped repeated checklist prose.mstar-harness-core: anti-pattern index entry for parallel implement without worktree.- Routing eval v16: hard-fail parallel implement batches missing per-track
Worktree path; strengthen worktree assertions on parallel dev cases.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.0.4.
[1.0.3] - 2026-07-07
Harness (iteration continuous execution)
iteration-drive: Add Continuous execution (HARD) for Phase 2–5 — no routine yes/no check-ins after progress reports; turn must end with in-flight dispatch; per-plan serial implement loop; explicit legal STOP boundaries.mstar-iteration§2.6: Expand Push discipline (Autonomous Execute) — continuous execution through Phase 5 merge-ready exit; no confirmation questions between tasks, plans, or phases.pmskill: Restore Autonomous Execute push as rule 4; iteration semantics SSOT →mstar-iterationonly (no command names in runtime skills).- Skills command-agnostic cleanup: Remove
iteration-drivereferences from runtimemstar-*skills (host refs, project-manager, sticky implementer, dispatch-and-assignment). - Routing eval v15: Hard-fail mid-execute user check-ins; new
iteration-drive-continuous-after-plan-wavecase.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.0.3.
[1.0.2] - 2026-07-07
Harness (iteration artifact boundaries)
mstar-iteration§1.5.5 / §1.6: Tighten Phase 1 boundaries —{SPECS_DIR}/for locked long-lived specs;{ITERATION_DIR}/<iteration-id>/workspace (guides/,specs/) for iteration-scoped drafts; no{KNOWLEDGE_DIR}/writes during iteration-start.iteration-start/mstar-dispatch-gates: Review & Edit chain — product-manager / architect edit specs + workspace; writing-specialist specs corpus hygiene and existing-knowledge archive only.mstar-compound: Mandatory iteration workspace promotion at iteration-close — inventory<iteration-id>/workspace; promote worthy specs/guides to{KNOWLEDGE_DIR}/(structured rewrite, not raw copy).- New references:
iteration-artifact-boundaries.md,iteration-corpus-hygiene.md,iteration-workspace-readme-template.md;knowledge-and-designs.md, role refs, andartifact-storage-paths.mdaligned.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.0.2.
[1.0.1] - 2026-07-07
Harness (SDD iteration-drive + sticky implementer + pm shim)
iteration-drive/mstar-iteration: Phase 2 explicitly mandates per-task SDD loop (mstar-sddin Boot,task-brief→ implementer →review-package→ task reviewer); forbids bulk inline implement Assignments for multi-task plans.- Sticky implementer session (
SDD implementer session: sticky): optional same dev subagent across tasks via host resume (Cursor Taskresume);implementer-session.jsonledger; task reviewers stay fresh per task. Docs:mstar-sdd/references/sticky-implementer-session.md,implementer-continuation-prompt.md. pmskill: thinned to cross-host entry shim (Codex/Cursor/pm); iteration lifecycle Boot lives incommands/; SSOT →project-manager.md+ topic skills.- Assignment / dispatch:
dispatch-and-assignment.mdSDD vs inline table;SDD implementer sessionfield on template. - Routing eval v14: iteration Phase 2 SDD hard-fails; new
sdd-sticky-implementer-multi-taskcase.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.0.1.
[1.0.0] - 2026-07-07
Harness (SDD + plan QC tri-review)
- New
mstar-sddskill: file handoff, per-task implementer + task reviewer (L2), progress ledger under{SDD_DIR}. - Plan QC with SDD: mandatory tri-review (QC#1/#2/#3 cross-review on branch diff, N=3) when
Execution mode: sdd— single-plan and iteration. Not a lone final single-seat review. - Single-seat
qc.md: onlyExecution mode: inline/ hotfix or explicit user override. - Plan template:
plan.main.mdwith Global Constraints, per-task Interfaces, self-review gate;status.jsonoptionalsdd_dir,task_commits[]metadata. - PM Assignment:
Execution mode,SDD dir,Model tier; implement default SDD for multi-task plans. - CLI: project
init/doctorappend/check.mstar/sdd/gitignore entries. - Routing eval v11: SDD + mandatory tri-review; inline/hotfix single-seat.
Breaking changes
- Multi-task implement defaults to
Execution mode: sdd(single-plan and iteration). - With SDD: plan QC is mandatory tri-review (QC#1/#2/#3); per-task review is task reviewer, not QC.
- Single-seat
qc.mdonly forinline/ hotfix or explicit override. - New plans: Global Constraints + per-task Interfaces.
.mstar/sdd/ephemeral scratch — gitignore required.
Superpowers v6 note
Mstar adds L2 task reviewer per task; L3 tri cross-review retained (not v6's single final reviewer only). See .harness/specs/sdd-1.0.0-design.md.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, Cursor/Codex plugin manifests: → 1.0.0.
[0.7.9] - 2026-07-06
Harness (Assignment plain role ids / OpenCode @ hygiene)
- Assignment SSOT:
dispatch-and-assignment.mdtemplate, PM routing table, andproject-manager.mdLanguage rule — all role references in Assignment body use plain role ids (no@); host invoke uses task toolsubagentmatchingExecute as. mstar-dispatch-gatesand leaf-executor checklist: anti-recursion NEVER rules reworded torole-idmentions (not@<role>literals).mstar-host/references/opencode.md: Role-mention hygiene — Assignment prose vs task-tool dispatch; warnings avoid@literals that trigger OpenCode auto-dispatch.- Iteration commands,
mstar-branch-worktree,mstar-plan-artifacts(plan checkbox duties),pmskill, and role NEVER references aligned on plain ids.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.8 → 0.7.9.@mstar-harness/cliremains 0.5.4.
[0.7.8] - 2026-07-06
Harness (iteration Phase 4–5 / PR merge-ready loop)
mstar-iterationPhase 4–5: Extend lifecycle to PR delivery (Phase 4) and PR merge-ready loop (Phase 5) — verify/fix/re-verify until mergeable, required CI green, and review threads resolved (with per-thread comment + resolve after fixes). Loop SSOT stays inmstar-*; no back-reference to host commands.iteration-drive: Sequences Phase 2 → 3 → 4 → 5; Done only after Phase 5 exit checklist. Optionally discovers non-mstar-*helper skills (greploop,babysit) for Phase 5; fallback mode matches babysit gates (CI + reviews).mstar-harness-core: Iteration lifecycle index and anti-pattern for skipping Phase 5 after PR creation; PM load contract coversmstar-iterationPhase 1–5.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.7 → 0.7.8.@mstar-harness/cliremains 0.5.4.
[0.7.7] - 2026-07-04
Harness (standalone mstar-* / decouple third-party runtime)
- Standalone harness invariant (
mstar-harness-core):mstar-*skills must not require external skills, CLIs, or MCPs in load order; library/API questions use in-repo Read/Grep first. - Bundled
grill-mefor/iteration-startonly: addedskills/grill-me/SKILL.md; command §3 is the sole reference — not inmstar-*index or load matrix.mstar-iteration§1.2 adds generic Direction lock without naming grill-me. - Removed third-party coupling from runtime paths: deleted
library-docs-protocol.md(Context7),openviking-memory-plugin.md(OpenViking); removed Context7 section frommstar-host; Open Design integration frommstar-design-md; optional MCP table frommstar-host/references/opencode.md. open-harness-principles.mddistilled: harness terminology table moved intomstar-harness-core; AGENTS.md layering →mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md; file removed.mstar-roles: keep Role → typical topic skills cross-role matrix; topic index remains inmstar-harness-core.prompt-engineerretainsskill-creatorrequirement for new/major skill work (AGENTS.mddocuments standalone exception).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.6 → 0.7.7.@mstar-harness/cliremains 0.5.4.
[0.7.6] - 2026-07-01
Harness (iteration dispatch / commands–skills layering)
- Commands vs skills layering:
iteration-startanditeration-driveown orchestration (boot order, phase state machine, step checklists);mstar-iterationandmstar-dispatch-gatesstay command-agnostic. Removed circular skill ↔ command references. iteration-start/iteration-drive: PM invariants, Phase 2→3→PR transition gates, dispatch-turn discipline, Phase 3 PR precondition;phase-3-iteration-closehost todo when one plan remains.mstar-iteration: Phase transition gates table; §2.5 dispatch-turn rules; compass template fields keyed by Phase 1–3 (not command names).mstar-dispatch-gates: Specialist review-and-edit dispatch (generic); Phase 1 chain is sequential; anti-patterns for paste-only dispatch and skipped Phase 3.mstar-host: Removed Mode A/B/C supplemental execution paths; canonical invoke dispatch withBlockedwhen no callable tool;codex.mdandparallel-dispatch.mdaligned.pmskill: Iteration sections deduplicated — single pointer tomstar-iteration.- Phase 1 Review & Edit chain: Sequential
product-manager→architect→writing-specialist(each invoke after prior role’s disk revisions); parallel batch forbidden for this chain.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.5 → 0.7.6.@mstar-harness/cliremains 0.5.4.
[0.7.5] - 2026-07-01
Harness (iteration / branch policy)
- Explicit iteration branch policy: Formal iterations require recorded
iteration_base_branch,spec_integration_branch, andtarget_branchin compass frontmatter andstatus.jsonmetadata. Agents must not silently default tomain/masterfor integration branch creation or final PR targets. iteration-start/iteration-drive: Grill-me branch confirmation, pre-commit checklist branch fields, §2.0 branch metadata gate, and explicitgit checkout -b <spec_integration_branch> <iteration_base_branch>when creating the integration branch.mstar-iteration§2.3: Metadata resolution chain (status.json→ compass frontmatter → ask user); QCReview rangemerge-base usestarget_branchor PM-specified ref.- Compass template: Add
## Delivery Branch Policysection;status-and-residuals.mddocuments example metadata JSON.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.4 → 0.7.5.@mstar-harness/cliremains 0.5.4.
[0.7.4] - 2026-07-01
Harness (skills / docs)
- Remove Superpowers dependency from Morning Star runtime: removed Superpowers install guidance and alignment wording; Morning Star assignments now rely on native dispatch, worktree, plan, review, and evidence contracts.
- Consolidate execution practices into
mstar-coding-behavior: deletedmstar-execution-practices; moved review feedback handling intomstar-coding-behavior; RCA, test-first checks, and completion evidence now stay in coding behavior while PM gate evidence remains inmstar-phase-gates/mstar-review-qc. - Add
mstar-skill-authoring: new Morning Star-native skill authoring guidance for trigger contracts, progressive disclosure, pressure scenarios, and behavior-change evidence. The prompt-engineer role must read it before creating skills, major rewrites, or trigger-description changes. - Docs and host adapters: README / README_CN, OpenCode install docs, role references, and host references no longer require external skill plugins.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.3 → 0.7.4.@mstar-harness/cliremains 0.5.4.
[0.7.3] - 2026-06-30
Harness (iteration-close / commands / docs)
mstar-iterationPhase 3 close gate: iteration-close is now an explicit independent phase after all plans areDone; final plan closure can provide input but does not satisfy close. Close requires compass shape normalization when needed, close entry/exit checklists, compound round, roadmap update, compass frontmatterstatus: completed+end_date, and integration-branch commit before PR.- Compass template hardening: New compass templates no longer prefill
end_date;## Roadmap Position,## Compound Round Summary, and## Iteration Retrospective (minimal)are the expected close-write targets. Legacy prose completion status must be normalized into YAML frontmatter during close. - Compound indexing gate: Each new knowledge doc created in an iteration-close compound round must complete
mstar-compoundPhase 6 and be registered in{KNOWLEDGE_DIR}/README.md, including lightweight captures. - README / README_CN: Harness Commands now list
/mstar-bootstrap,/iteration-start, and/iteration-drive; Harness Workflow now reflectsiteration-start → per-plan execute loop → iteration-close → PR; Core Skills table now includes iteration, design, compound, compound-refresh, and strategy skills.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.2 → 0.7.3.@mstar-harness/cliremains 0.5.4.
[0.7.2] - 2026-06-30
CLI / Cursor install
- Cursor plugin path layout:
mstar-harness init --target cursornow installs a real git checkout at the Cursor plugin path (git clone/git pull), not a symlink to~/.mstar/harness. Cursor does not discover symlinked plugin directories. doctor --target cursor: fails if the plugin path is a symlink;initremoves an existing symlink and clones.- Docs:
docs/cli.md§ Install path layout; README/CN manual install and maintainer refresh notes updated.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.1 → 0.7.2.@mstar-harness/cli: 0.5.3 → 0.5.4.
[0.7.1] - 2026-06-30
Harness (skills / iteration-start)
/iteration-startReview & Edit chain hard gate: Step 5 is mandatory before integration branch commit — dispatch@product-manager,@architect, and@writing-specialistvia Task (parallel when independent); PM thread must not substitute by performing all specialist edits itself. Done = edited compass/plans/specs + compassstatus: locked, not draft artifacts on disk.mstar-iteration§1.6: Documents the review chain as an integration-branch precondition (skill SSOT); no separatereports/<iteration-id>/review files — unlike per-plan QC, iteration review has no downstream audit chain.skills/pm,mstar-dispatch-gates,mstar-harness-core: iteration-start dispatch-first rules, anti-patterns, and pre-commit checklist aligned with command §5.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.7.0 → 0.7.1.@mstar-harness/cliremains 0.5.3.
[0.7.0] - 2026-06-30
Harness (skills / iteration, compound, strategy, qc, commands)
- New
mstar-compoundskill: Knowledge crystallization with Bug/Knowledge dual-track templates, YAML frontmatter schema, 8-question self-diagnosis checklist, overlap detection (update existing docs rather than create duplicates), discoverability check (propose AGENTS.md edits), and CONCEPTS.md vocabulary synergy. Compound executes at iteration-close, not per-plan Done. - New
mstar-compound-refreshskill: Knowledge maintenance — audit/update/consolidate/replace/delete knowledge docs against current codebase, CONCEPTS.md reconciliation. - New
mstar-strategyskill: STRATEGY.md creation and maintenance as project upstream anchor (vision, technology direction, guiding principles, decision log). - New
mstar-iterationskill: Full iteration lifecycle management — Phase 1 iteration-start (scope/roadmap lock, compass creation), Phase 2 Autonomous Execute (per-plan dispatch loop: branch → implement → QC → QA → Done → merge, cross-plan progress sync), Phase 3 iteration-close (compound round, roadmap update, retrospective, commit). Autonomous Execute driver moved here fromskills/pm/SKILL.md; PM skill thinned to role identity, host entry, and dispatch-first rules only. - New
/mstar-bootstrapcommand: Distills STRATEGY.md, CONCEPTS.md, and baseline knowledge docs from existing codebase for projects with no/stale knowledge infrastructure (7-phase flow). - New
artifact-storage-paths.md: Single SSOT for all harness artifact paths undermstar-plan-conventions, referenced by all producing skills to prevent path drift. - QC deep review lenses: Replaced persona subagent dispatch with self-applied lens checklists (12 lenses, 6 trigger signals). No subagent dispatch — resolves anti-recursion violation with
mstar-dispatch-gates. - Updated index:
mstar-harness-coresplit lifecycle into per-plan and iteration-level cycles; all skill index tables,mstar-rolesdependency matrix, andmstar-phase-gatesper-plan gates updated.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,.cursor-plugin/plugin.json,.codex-plugin/plugin.json: 0.6.22 → 0.7.0.@mstar-harness/cliremains 0.5.3.
[0.6.22] - 2026-06-27
Harness (skills / dispatch-gates, roles)
- Anti-recursion: identity-deprivation framework replaces prohibition-only rules: Leaf executors (QC reviewers, devs, QA) were still entering a "consider dispatch" intent window because
NEVER/MUST NOTprohibitions require the model to first activate the forbidden action before suppressing it. Fix shifts semantics from "you must NOT use Task" (prohibition) to "you ARE a leaf executor; Task is NOT your tool" (identity + capability deprivation).- Assignment template (
dispatch-and-assignment.md): new IDENTITY + CAPABILITY BOUNDARY blocks before the**You MUST NOT:**list.Delegationfield moved immediately afterExecute asfor earlier visibility. mstar-dispatch-gates/SKILL.md: leaf-executor identity preamble placed between Load order and NEVER list, with explicit cross-reference back to the Assignment's IDENTITY block.qc-specialist-shared:Non-Recursive Dispatch Rulerewritten as a first-person identity assertion with recursive-dispatch trap recognition ("If you ever think 'this would be more efficient if I dispatched X' — stop").leaf-executor-checklist: first-person preamble before checklist items.
- Assignment template (
Version alignment
- Bump monorepo root,
@mstar-harness/opencode: 0.6.21 → 0.6.22.@mstar-harness/cliremains 0.5.3, Cursor / Codex plugin manifests remain 0.6.21.
[0.6.21] - 2026-06-26
Harness (skills / design-md)
- DESIGN.md YAML frontmatter as SSOT:
mstar-design-mdtemplates and spec now use YAML frontmatter as the single source of truth for token values. Template format bumped to 0.1.0. Both light (DESIGN.md.template) and dark (DESIGN.dark.md.template) templates, the spec reference, completeness checklist, and the Vercel example updated.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode,@mstar-harness/cli, and Cursor / Codex plugin manifests: 0.6.20 → 0.6.21. CLI: 0.5.2 → 0.5.3.
[0.6.20] - 2026-06-26
Harness (commands)
/iteration-startReview & Edit Chain: Changed §5 from "Review Chain" to "Review & Edit Chain". Each role (product-manager, architect, writing-specialist) now reviews AND directly edits the documents rather than only flagging issues. PM only steps in for the final review and lock, no longer burdened with aggregating edits from other reviewers.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.19 → 0.6.20.@mstar-harness/cliremains 0.5.2.
[0.6.19] - 2026-06-26
Harness (skills / coding-behavior)
- Distill Ponytail principles into
mstar-coding-behavior: Strengthened all four sections with distilled concepts from the Ponytail coding discipline:- §1 Think Before Coding: Added "Never lazy about understanding" — read the full task and every touched file before editing; a small diff in the wrong place is a second bug, not efficiency.
- §2 Simplicity First: Added YAGNI gate ("does this need code at all?"), The Ladder (7-level decision hierarchy: YAGNI → reuse existing → stdlib → native platform → installed dep → one line → minimal code), "Deletion over addition / Boring over clever", and
simplify:marker discipline (name the ceiling and upgrade path for deliberate shortcuts). - §3 Surgical Changes: Added "Bug fix = root cause, not symptom" — before editing, grep every caller; fix once at the narrowest shared point, not only the path the ticket names.
- §4 Goal-Driven Execution: Added "Minimal check for non-trivial logic" — any non-trivial change must leave behind ONE runnable check (assert, minimal demo, or single test); YAGNI applies to tests too.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.18 → 0.6.19.@mstar-harness/cliremains 0.5.2.
[0.6.18] - 2026-06-26
Harness (commands)
/iteration-startBoot section: Add explicit## 0. Bootsection aligned with/iteration-drive. Loadsmstar-harness-core,mstar-roles→references/project-manager.md,skills/pm/SKILL.md(Host entry + Boot),mstar-phase-gates(Prepare), andmstar-plan-conventions/mstar-plan-artifactsbefore starting research.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.17 → 0.6.18.@mstar-harness/cliremains 0.5.2.
[0.6.17] - 2026-06-26
Harness (commands)
/iteration-drivePR target fix: Resolve the final PR target branch from iteration metadata (status.json→target_branch) instead of hardcodingmain. Defaults tomainwhentarget_branchis not set.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.16 → 0.6.17.@mstar-harness/cliremains 0.5.2.
[0.6.16] - 2026-06-25
Harness (commands)
- New
/iteration-drivecommand: Add a command that invokes the PM Autonomous Execute driver (skills/pm/SKILL.md§ Autonomous Execute driver) to drive all non-Doneplans to completion. The command checks the three precondition gates first; if Prepare is incomplete, it directs the user to/iteration-start. Otherwise, it runs the full implement → QC → QA → Done per-plan loop until every plan isDone, then optionally creates a PR from the integration branch tomain.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.15 → 0.6.16.@mstar-harness/cliremains 0.5.1.
[0.6.15] - 2026-06-24
Harness (commands)
- New
iteration-startcommand: Add a reusable command (/iteration-start) to bootstrap a new harness iteration. The command guides PM through six checkpointed steps: research (structured harness dirs + unstructured glob forroadmap*.md,deferred*.md,features*.mdetc.), explore candidate directions for product completeness, lock direction withgrill-me, write iteration compass and plans, run the review chain (@product-manager→@architect→@writing-specialist→ PM lock), and create the iteration integration branch frommain. Registered for both Cursor (commands/auto-discovery) and OpenCode (harness-commands/bundled via plugin code).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.14 → 0.6.15.@mstar-harness/cliremains 0.5.1.
[0.6.14] - 2026-06-24
Harness (skills / design-md)
- New
mstar-design-mdskill: Add a specialized skill for creating, auditing, and maintaining project-levelDESIGN.mddesign system specifications. Three-level completeness checklist (MVP/Standard/Production) defines progressively what an agent needs from a design system to generate consistent UI without guessing tokens. Includes Vercel Geist as annotated reference, light/dark dual-theme support (DESIGN.md+DESIGN.dark.mdwith same token names, different values), and built-inLEVEL*_PLACEHOLDERmarkers for iterative maturity upgrades. Skill ships with full references (design-md-spec.mdnorm,completeness-checklist.md,vercel-example.md) and templates (DESIGN.md.template,DESIGN.dark.md.template). - Phase gate: DESIGN.md check: PM Prepare quick-check adds "if plan involves UI work, does DESIGN.md exist and meet the declared completeness level."
- Role integration:
mstar-design-mdregistered in all relevant role dependencies — architect as primary creator, product-manager for design intent/requirements, frontend-dev and fullstack-dev as consumers (read tokens before implementing styled UI), qc-specialist as verifier (check UI alignment with DESIGN.md), qa-engineer for visual output verification.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.13 → 0.6.14.@mstar-harness/cliremains 0.5.1.
[0.6.13] - 2026-06-20
Harness (agents)
- Drop
model: inheritfrom role frontmatter: Remove themodel: inheritline from all 13agents/*.mdfiles. These agents inherit the default model via the plugin manifest rather than an explicit per-agent override, reducing frontmatter noise and avoiding confusion with model pinning. (Cursor-only frontmatter cleanup.)
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.12 → 0.6.13.@mstar-harness/cliremains 0.5.1.
[0.6.12] - 2026-06-20
Harness (skills / dispatch gates)
- Assignment anti-pattern header: Every PM Assignment now opens with a
**You are a leaf executor. You MUST NOT:**block containing the most likely dispatch violations for the assignment's situation. PM fills it with context-specific anti-patterns on top of the universal floor (no recursive dispatch, no interpreting routing text as invoke, available ≠ authorized). TheOrchestration Guardsection references this new top block. (mstar-roles/references/project-manager/dispatch-and-assignment.md) - Leaf executor checklist: Updated to require reading the
**You are a leaf executor. You MUST NOT:**block first on every assignment. (mstar-dispatch-gates/references/leaf-executor-checklist.md) - Dispatch gates: Added a reference to the new assignment-level anti-pattern block in the anti-recursion section. (
mstar-dispatch-gates/SKILL.md)
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.11 → 0.6.12.@mstar-harness/cliremains 0.5.1.
[0.6.11] - 2026-06-16
Cursor plugin / agents
- Subagent registration: Reorder all
agents/*.mdfrontmatter to Cursor-first schema (name,description,model: inheritbefore OpenCodemode/tools/permission) so plugin manifestagents/are discovered as Task subagents without a separate~/.cursor/agents/install step. - CLI Cursor install path: Align global/project plugin symlinks to
morning-star-harness(matching.cursor-plugin/plugin.jsonname). - CLI doctor: Validate plugin agent files exist and use Cursor-first frontmatter.
- Docs: Update README (EN/CN), CLI guide, plugin README, LOCAL-VALIDATION subagent smoke test, and
mstar-hostCursor reference.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.10 → 0.6.11. - Bump
@mstar-harness/cli: 0.5.0 → 0.5.1.
[0.6.10] - 2026-06-11
Harness (skills / agents)
- Profile B Done compaction (
plans-done.json): Canonical schema is now{ "plans": [<plan-id>, ...] }only — no rich catalog objects (title,done_at,plan_file,archived_record, etc.). Per-plan detail stays inarchived/plans/<plan-id>.json(a singleplans[]row snapshot). SSOT:mstar-plan-artifacts/references/done-compaction.md. - Templates & bootstrap: Add
templates/plans-done.empty.json; document Profile B init inmstar-plan-conventionsharness bootstrap and PMplan-management.md. - Profile B constraints: Disallow parallel indexes (
_index.json, object-array catalogs); migrate legacyplans-done.jsonby rewriting to id list only.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.9 → 0.6.10.@mstar-harness/cliremains 0.5.0.
[0.6.9] - 2026-06-09
Harness (skills / agents)
pm(PM orchestration entry): Generalize beyond Cursor/Codex/pmonly — Cursor/Codex use/pmasproject-managerlauncher and autonomous Execute driver; OpenCode switches to PM orchestration when the active agent is notproject-manager.- Autonomous Execute driver: After Pre-implement GO, read
{HARNESS_DIR}/status.jsonbacklog, checkout the iterationspec_integration_branch, run per-plancreate <plan-feature> from integration→ implement → QC/QA → merge back to integration until all plans areDone; set host todos (CursorTodoWrite, Codexupdate_plan, OpenCode UI) before each wave so session scope does not drift. mstar-roles(PM shell): Cross-reference updated to point at the newpmskill sections (host entry, Execute driver, dispatch-first).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.8 → 0.6.9.@mstar-harness/cliremains 0.5.0.
[0.6.8] - 2026-06-04
Harness (skills / agents)
- QC fix-round revalidation (default): After dev fixes blocking findings, PM dispatches only the QC seat(s) that raised each item (targeted re-review), not a blind full tri-review. Reviewers update the same report file in place (
## Revalidation); PM updates the sameqc-consolidated.md. Full tri re-review requires explicit AssignmentQC re-review: full tri-reviewand newqcN-rev2.mdbasenames. - QC report naming: Under
{PLAN_DIR}/reports/<plan-id>/, use short basenamesqc1.md,qc2.md,qc3.md, andqc-consolidated.md(no<plan-id>prefix in filenames;plan_idstays in frontmatter and the directory). SSOT:mstar-plan-artifacts/references/plan-files-and-reports.md. - Dispatch:
mstar-dispatch-gatesandmstar-hostparallel-dispatch allow N = 1–3 invokes for targeted re-review in one message; initial tri-review remains N = 3.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.7 → 0.6.8.@mstar-harness/cliremains 0.5.0.
[0.6.7] - 2026-06-03
Harness (skills / agents)
- Add a Codex Plan / Goal Mode bridge reference so
/plan,update_plan,/goal, goal progress, and thread summaries cannot replace.mstar/SSOT or Morning Star Done authority.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.6 → 0.6.7.@mstar-harness/cliremains 0.5.0.
[0.6.6] - 2026-06-03
Harness (skills / agents)
- Add Codex custom-agent source files under
codex/agents/so dispatchable Morning Star roles can be installed into Codex'sagents/*.tomlsubagent surface;project-managerremains entered through/pm. - Change the recommended project
{HARNESS_DIR}default to.mstar/while continuing to recognize.agents/,.plans/, andplans/legacy layouts.
CLI
- Change Cursor and Codex install flows to maintain a shared local repo at
~/.mstar/harnessand create host-specific symlinks instead of Cursor project submodules or Codex URL-source marketplace entries. - Link Codex custom agents from
codex/agents/*.tomlinto global or project Codex agent directories duringinit, and validate them indoctor.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.5 → 0.6.6. - Bump
@mstar-harness/cli: 0.4.0 → 0.5.0.
[0.6.5] - 2026-06-03
Harness (skills / agents)
- Durable Roadmap Gate: Strengthen
mstar-harness-core,mstar-phase-gates, PM gates, Cursor Plan mode bridge, and product/architecture templates so staged, partial, or temporary work must record a target state and roadmap before implement GO / Done. - Coding behavior: Redefine
Simplicity Firstas the smallest durable slice, not a temporary workaround; deferred items must be tracked in plan/status artifacts rather than only in chat. - Cursor routing-eval: Bump routing evals to v8 with
durable-roadmap-required-for-staged-work, guarding against “do half now, later plan” failures.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.4 → 0.6.5.@mstar-harness/cliremains 0.4.0.
[0.6.4] - 2026-06-03
Cursor Plan mode × Harness
- Build resume contract: Cursor Build is treated as plan resume, not
/pmreplay. Morning Star plans must reload harness context, resume PM orchestration, and dispatch implementation instead of letting the parent Build session edit product code. - Cursor routing-eval: Add
cursor-plan-build-resumeto guard against parent-session implementation before SSOT plan registration, PM Assignment, and host Task dispatch. - Cursor plugin manifest: Register
agents/in.cursor-plugin/plugin.json, matching plugin docs and validation checks.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.3 → 0.6.4.@mstar-harness/cliremains 0.4.0.
[0.6.3] - 2026-06-03
Harness (skills / agents)
pm(/pm): Slim entry skill (~60 lines) with/pm-only rules — dispatch-first (Assignment + invoke per implement batch; parent agent must not write product code; no Task skip for in-thread context), Autonomous Execute push as dispatch loops across one iteration (multi-plan), branch truth (no silent cwd vs plan/status.json). Detailed gates/routing defer tomstar-dispatch-gates,mstar-host, andproject-managerreferences.mstar-roles(PM shell):/pmsessions point atskills/pm§/pm-only rules` instead of duplicating long prose.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.2 → 0.6.3.@mstar-harness/cliremains 0.4.0.
[0.6.2] - 2026-06-02
Harness (skills / agents)
pm(/pm): Autonomous Execute push — after Execute starts (planlocked, Pre-implement GO), continuously drive the active iteration backlog (possibly multipleplan_ids) through implement → InReview → Done without routine basic yes/no prompts; use PM-recommended defaults; resolve process gates frommstar-*skills (Blockedonly on true conflicts or irreversible scope gaps).mstar-roles(PM shell): Pointer toskills/pm§ Autonomous Execute for sessions entered via/pm.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.1 → 0.6.2.@mstar-harness/cliremains 0.4.0.
[0.6.1] - 2026-06-01
Harness (skills / agents)
mstar-plan-artifacts: Add read-onlyscripts/tech-debt-rollup.sh(jq) to computemetadata.tech_debt_summaryfrom openresidual_findingswith PASS/DRIFT check; document as canonical rollup path inreferences/status-and-residuals.md(English).mstar-roles(PM): Default spread acrossfullstack-devandfullstack-dev-2when >=2 independent backend/fullstack units (parallel dual-track or sequential round-robin); single-id collapse requiressingle_stream_justifiedand documented override.- Cursor routing-eval: New
sequential-backend-batches-rotationcase; tightentwo-parallel-backend-moduleshard_fail for single-dev without justification.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.6.0 → 0.6.1.@mstar-harness/cliremains 0.4.0.
[0.6.0] - 2026-05-30
Unified host skill
- Breaking: Merge
mstar-host-opencodeandmstar-host-cursorinto singlemstar-hostatskills/mstar-host/(platform auto-detect +references/opencode.md,cursor.md,codex.md,parallel-dispatch.md,cursor-plan-mode-bridge.md). - Add
references/codex.mdwith Codex-specific runtime adaptation for plugin skills, clarify behavior, sandboxed file/shell work, tool discovery, and dispatch limits when no callable multi-agent tool exists. - Remove
skills-cursor/andpackages/opencode/skills/; OpenCode plugin registers onlyharness-skills/. Cursor pluginskillsarray is./skills/only. - Update role/topic references and
rules/mstar-cursor-plan-mode.mdcpaths.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.5.1 → 0.6.0.@mstar-harness/cliremains 0.4.0.
[0.5.1] - 2026-05-29
Cursor Plan mode × Harness (Cursor plugin)
- Dual-write bridge: CreatePlan mirrors to
{HARNESS_DIR}/{PLAN_DIR}SSOT (.agents/plans/,status.json); fixed bootstrap todosharness-init,spec-register,mirror-plan; per–task-ID commit gate on implement todos. Seeskills-cursor/mstar-host/references/cursor-plan-mode-bridge.md, updates tomstar-host-cursor,pm, andmstar-harness-core. - Rules: Add
rules/mstar-cursor-plan-mode.mdc(alwaysApply); register"rules": ["rules/"]in.cursor-plugin/plugin.jsonso plugin rules (includingmstar-entry) load reliably. - Maintainers: Move pre-release checklist to
.cursor/LOCAL-VALIDATION.md(removed from.cursor-plugin/).
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.5.0 → 0.5.1.@mstar-harness/cliremains 0.4.0.
[0.5.0] - 2026-05-26
Codex integration
- Replace the obsolete checked-in
.codex/marketplace.jsonpath with the supported personal marketplace flow:~/.agents/plugins/marketplace.jsonusing a"source": "url"entry for this repository. - Add Codex support to
@mstar-harness/cli:init --target codexwrites the personal marketplace entry anddoctor --target codexvalidates it. - Update English and Chinese install docs for Codex CLI install and manual personal-marketplace setup.
Harness (skills / agents)
- Fix the
/pmskill frontmatter so the Codex plugin validates cleanly from the repository root.
Version alignment
- Bump monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests: 0.4.1 -> 0.5.0. - Bump
@mstar-harness/cli: 0.3.1 -> 0.4.0.
[0.4.1] - 2026-05-19
Harness (skills / agents)
mstar-plan-artifacts: Movetemplates/(status.empty.json,notes.empty.json) frommstar-plan-conventionsso artifact SSOT and empty-file templates live in one skill;mstar-plan-conventionskeeps path discovery and init steps with pointers tomstar-plan-artifacts/templates/.
Version alignment
- Bump 0.4.0 → 0.4.1 for monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests.@mstar-harness/cliremains 0.3.1.
[0.4.0] - 2026-05-19
Harness (skills / agents)
- Topic skill split (on-demand loading): Add
mstar-phase-gates,mstar-dispatch-gates,mstar-branch-worktree, andmstar-plan-artifacts(includesstatus.json/ residual SSOT; no separatemstar-status-residuals); slimmstar-harness-coreandmstar-plan-conventionsto entry + pointers;mstar-phase-gatesandmstar-branch-worktreekeep full rules inSKILL.md(no extra reference layer). - Roles (
mstar-roles): Per-role Required Skill Dependencies in everyreferences/<role>.md; hub matrix inmstar-rolesSKILL.md; PM sub-refs usemstar-plan-artifactsfor severity SSOT. - Hosts (
mstar-host-cursor,mstar-host-opencode): Load-order wording and QC/worktree pointers aligned with topic skills. - Plan directories (
mstar-plan-conventions): Formalize{ITERATION_DIR}({HARNESS_DIR}/iterations/) and{KNOWLEDGE_DIR}({HARNESS_DIR}/knowledge/); documentdocs/vs harness subtree content boundaries (Nexus-aligned); optionaliteration_compass/iteration_refsinstatus.jsonmetadata. - Prepare clarify (now primarily
mstar-phase-gates; summary inmstar-harness-core):clarifydiscipline — shared understanding, explore before asking, recommended answer per question.
Docs
- README.md / README_CN.md: Expanded core skill table; note
.harness/as gitignored maint workspace for specs/plans (not published skills). - AGENTS.md:
.harness/maint workspace; topic skill routing table; post-change cross-reference check.
Version alignment
- Bump 0.3.2 → 0.4.0 for monorepo root,
@mstar-harness/opencode, and Cursor / Codex plugin manifests.@mstar-harness/cliremains 0.3.1.
[0.3.1] - 2026-05-15
Harness (skills / agents)
- Plan / Git alignment (
mstar-plan-conventions,mstar-harness-core): When multiple plans share one Spec (primary_spec), document a Spec integration branch plus per-plan_id implementation branches; merge each plan’s work back to the Spec line; require a PR (or equivalent controlled merge) before landing that integration line onmain/ the default protected branch (narrowBranch policyexceptions unchanged). Addsspec_integration_branchand clarifiedmerge_targetmetadata inreferences/status-and-residuals.md, QC/worktree notes inreferences/plan-files-and-reports.md, and a cross-reference inreferences/branch-and-worktree.md.
Version alignment
- Bump 0.3.0 → 0.3.1 for npm workspaces (
morning-star,@mstar-harness/cli,@mstar-harness/opencode) and Cursor / Codex plugin manifests.
[0.3.0] - 2026-05-14
Harness (skills / agents)
- PM role: Split
project-managerdetail intoskills/mstar-roles/references/project-manager/*.md; keep a compact orchestrator shell inreferences/project-manager.md. - Roles: Translate
mstar-rolesrole references and skill hub to English; reference host adapters by skill name (mstar-host-opencode,mstar-host-cursor) instead of filesystem paths in role text. - AGENTS.md: Host adapter routing documents skill names and in-repo layout (
skills-cursor/mstar-hostfor Cursor). - PM routing: Phase routing pre-flight (short go/no-go) and OpenCode prerequisite vs dispatch turn model in
mstar-host-opencode(paste-only dispatch failure mode). - OpenViking (optional): Add
mstar-harness-core/references/openviking-memory-plugin.md— rules when thememsearchtool is present; entry frommstar-harness-coreSKILL. - Load contract: Clarify
mstar-coding-behavioris required for implement / review / QA / ops roles, not forproject-managerorchestration-only work (mstar-harness-core,mstar-roles).
Docs
- Trim plan bootstrap template sections from
README.md/README_CN.mdwhere superseded by current flows.
Version alignment
- Bump 0.2.0 → 0.3.0 for npm workspaces (
morning-star,@mstar-harness/cli,@mstar-harness/opencode). - Bump 0.1.0 → 0.3.0 for Cursor and Codex plugin manifests to match the monorepo release line.
[0.2.0] - earlier
See packages/cli/CHANGELOG.md for @mstar-harness/cli 0.2.0 notes. OpenCode packaging, postinstall bundle of skills/ + agents/, and related fixes landed in the same era as the 0.2.0 CLI release.