@mstar-harness/opencode 0.6.4 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/harness-agents/qc-specialist-2.md +5 -1
- package/harness-agents/qc-specialist-3.md +5 -1
- package/harness-agents/qc-specialist.md +5 -1
- package/harness-skills/mstar-coding-behavior/SKILL.md +14 -4
- package/harness-skills/mstar-harness-core/SKILL.md +4 -1
- package/harness-skills/mstar-host/references/codex.md +6 -5
- package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +21 -10
- package/harness-skills/mstar-host/references/cursor.md +1 -1
- package/harness-skills/mstar-phase-gates/SKILL.md +13 -9
- package/harness-skills/mstar-plan-artifacts/references/knowledge-and-designs.md +4 -4
- package/harness-skills/mstar-plan-artifacts/references/plan-files-and-reports.md +1 -1
- package/harness-skills/mstar-plan-artifacts/references/status-and-residuals.md +9 -9
- package/harness-skills/mstar-plan-artifacts/scripts/tech-debt-rollup.sh +1 -1
- package/harness-skills/mstar-plan-conventions/SKILL.md +9 -8
- package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md +6 -6
- package/harness-skills/mstar-roles/references/architect.md +6 -0
- package/harness-skills/mstar-roles/references/product-manager.md +6 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +1 -0
- package/harness-skills/mstar-roles/references/project-manager/plan-management.md +2 -2
- package/harness-skills/mstar-roles/references/project-manager.md +9 -1
- package/package.json +1 -1
|
@@ -5,13 +5,17 @@ tools:
|
|
|
5
5
|
edit: true
|
|
6
6
|
bash: true
|
|
7
7
|
permission:
|
|
8
|
-
# `edit` covers write/patch/multiedit. Only `.md` under resolved `{PLAN_DIR}/reports/` (
|
|
8
|
+
# `edit` covers write/patch/multiedit. Only `.md` under resolved `{PLAN_DIR}/reports/` (default + legacy roots).
|
|
9
9
|
edit:
|
|
10
10
|
"*": deny
|
|
11
|
+
".mstar/plans/reports/*.md": allow
|
|
12
|
+
".mstar/plans/reports/**/*.md": allow
|
|
11
13
|
".agents/plans/reports/*.md": allow
|
|
12
14
|
".agents/plans/reports/**/*.md": allow
|
|
13
15
|
".plans/reports/*.md": allow
|
|
14
16
|
".plans/reports/**/*.md": allow
|
|
17
|
+
".worktrees/**/.mstar/plans/reports/*.md": allow
|
|
18
|
+
".worktrees/**/.mstar/plans/reports/**/*.md": allow
|
|
15
19
|
".worktrees/**/.agents/plans/reports/*.md": allow
|
|
16
20
|
".worktrees/**/.agents/plans/reports/**/*.md": allow
|
|
17
21
|
".worktrees/**/.plans/reports/*.md": allow
|
|
@@ -5,13 +5,17 @@ tools:
|
|
|
5
5
|
edit: true
|
|
6
6
|
bash: true
|
|
7
7
|
permission:
|
|
8
|
-
# `edit` covers write/patch/multiedit. Only `.md` under resolved `{PLAN_DIR}/reports/` (
|
|
8
|
+
# `edit` covers write/patch/multiedit. Only `.md` under resolved `{PLAN_DIR}/reports/` (default + legacy roots).
|
|
9
9
|
edit:
|
|
10
10
|
"*": deny
|
|
11
|
+
".mstar/plans/reports/*.md": allow
|
|
12
|
+
".mstar/plans/reports/**/*.md": allow
|
|
11
13
|
".agents/plans/reports/*.md": allow
|
|
12
14
|
".agents/plans/reports/**/*.md": allow
|
|
13
15
|
".plans/reports/*.md": allow
|
|
14
16
|
".plans/reports/**/*.md": allow
|
|
17
|
+
".worktrees/**/.mstar/plans/reports/*.md": allow
|
|
18
|
+
".worktrees/**/.mstar/plans/reports/**/*.md": allow
|
|
15
19
|
".worktrees/**/.agents/plans/reports/*.md": allow
|
|
16
20
|
".worktrees/**/.agents/plans/reports/**/*.md": allow
|
|
17
21
|
".worktrees/**/.plans/reports/*.md": allow
|
|
@@ -5,13 +5,17 @@ tools:
|
|
|
5
5
|
edit: true
|
|
6
6
|
bash: true
|
|
7
7
|
permission:
|
|
8
|
-
# `edit` covers write/patch/multiedit. Only `.md` under resolved `{PLAN_DIR}/reports/` (
|
|
8
|
+
# `edit` covers write/patch/multiedit. Only `.md` under resolved `{PLAN_DIR}/reports/` (default + legacy roots).
|
|
9
9
|
edit:
|
|
10
10
|
"*": deny
|
|
11
|
+
".mstar/plans/reports/*.md": allow
|
|
12
|
+
".mstar/plans/reports/**/*.md": allow
|
|
11
13
|
".agents/plans/reports/*.md": allow
|
|
12
14
|
".agents/plans/reports/**/*.md": allow
|
|
13
15
|
".plans/reports/*.md": allow
|
|
14
16
|
".plans/reports/**/*.md": allow
|
|
17
|
+
".worktrees/**/.mstar/plans/reports/*.md": allow
|
|
18
|
+
".worktrees/**/.mstar/plans/reports/**/*.md": allow
|
|
15
19
|
".worktrees/**/.agents/plans/reports/*.md": allow
|
|
16
20
|
".worktrees/**/.agents/plans/reports/**/*.md": allow
|
|
17
21
|
".worktrees/**/.plans/reports/*.md": allow
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-coding-behavior
|
|
3
|
-
description: Morning Star (启明星) 跨角色通用编码行为准则 —— Think Before Coding(显式假设、不静默猜测)、Simplicity First
|
|
3
|
+
description: Morning Star (启明星) 跨角色通用编码行为准则 —— Think Before Coding(显式假设、不静默猜测)、Simplicity First(最小耐久切片,拒绝未登记临时方案)、Surgical Changes(只改与任务直接相关的行、不顺手重构、不 piggyback)、Goal-Driven Execution(把模糊请求转为可验证结果、Step → verify 微模板;分批必须留 roadmap)。任何实现、调试、重构、审查任务都应优先 Read 本 skill;`@fullstack-dev` / `@frontend-dev` / `@fullstack-dev-2` / `@architect` / `@qa-engineer` / `@ops-engineer` / `@prompt-engineer` 动手前必读;QC 审查员核对变更是否只做了该做的手术时必读。本 skill 不覆盖分支门禁、QC/QA 路由、Assignment 权限、Done 所有权等不变量(那些以 `mstar-harness-core` 为准)。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order(必读顺序)
|
|
@@ -43,16 +43,24 @@ Quick check:
|
|
|
43
43
|
|
|
44
44
|
## 2) Simplicity First
|
|
45
45
|
|
|
46
|
-
Core idea: implement the
|
|
46
|
+
Core idea: implement the smallest durable slice that satisfies the request and acceptance criteria.
|
|
47
47
|
|
|
48
48
|
- Do not add features, flags, or configurability that were not requested.
|
|
49
49
|
- Avoid introducing new abstractions for single-use logic.
|
|
50
|
-
- Prefer straightforward local fixes over framework-level reshaping
|
|
50
|
+
- Prefer straightforward local fixes over framework-level reshaping **only when they fit the target design**.
|
|
51
51
|
- Reject speculative error handling for impossible paths unless required by project policy.
|
|
52
|
+
- Do not confuse "minimum" with "temporary." A small implementation must still align with the long-term target state, stable interfaces, and known follow-up plan.
|
|
53
|
+
- If a workaround is necessary, label it as `temporary`, explain why it is unavoidable, and record the removal path in the plan/status artifact before claiming the task is complete.
|
|
52
54
|
|
|
53
55
|
Default rule:
|
|
54
56
|
|
|
55
|
-
- If 200 lines can be 50 with the same behavior and
|
|
57
|
+
- If 200 lines can be 50 with the same behavior, clarity, and durable architecture, prefer the smaller solution.
|
|
58
|
+
|
|
59
|
+
Durability check:
|
|
60
|
+
|
|
61
|
+
- Can this slice be extended by the next batch without undoing its core shape?
|
|
62
|
+
- Are deferred items captured in an existing roadmap / task board / residual tracker, not just mentioned in chat?
|
|
63
|
+
- Would a reviewer understand whether this is the final approach, a staged slice, or a temporary workaround?
|
|
56
64
|
|
|
57
65
|
## 3) Surgical Changes
|
|
58
66
|
|
|
@@ -74,8 +82,10 @@ Core idea: convert vague requests into verifiable outcomes and iterate until ver
|
|
|
74
82
|
|
|
75
83
|
- Define concrete success criteria before major edits.
|
|
76
84
|
- For multi-step tasks, use brief `Step -> verify` checkpoints.
|
|
85
|
+
- For split delivery, maintain a durable roadmap: current slice, later slices, dependencies, owner/trigger, and completion condition.
|
|
77
86
|
- Prefer evidence-backed completion claims (tests, command output, reproducible checks).
|
|
78
87
|
- If verification fails, loop on diagnosis and fix before declaring completion.
|
|
88
|
+
- Do not finish with "next plan / later / follow-up" only in prose. If the work is not fully complete, the remaining work must be written to the plan/status artifact or the task must report `Partial` / `Blocked`.
|
|
79
89
|
|
|
80
90
|
Micro template:
|
|
81
91
|
|
|
@@ -71,6 +71,8 @@ PM 在 Assignment 写 **`Task category`**(主类 + 可选 `secondary`):
|
|
|
71
71
|
|
|
72
72
|
可追踪清单(plan `tasks` 或 Todo);偏离时 PM 拉回;完成前须可核对证据(**`mstar-superpowers-align`** · `verification-before-completion`)。
|
|
73
73
|
|
|
74
|
+
**Durable Roadmap Gate**:凡声明“分批 / 后续 / next plan / later / temporary workaround”的非热修任务,必须在 `{PLAN_DIR}` 主 plan、CreatePlan mirror、`status.json`/residual、或 PM Task Board 中写清后续路线(批次、依赖、owner/触发条件、完成定义)。只在对话或 Completion Report 里说“以后做”不算可追踪,不能进入 implement GO 或 Done。
|
|
75
|
+
|
|
74
76
|
## 专题 skill 索引
|
|
75
77
|
|
|
76
78
|
| Skill | 职责 |
|
|
@@ -127,7 +129,8 @@ Read **`mstar-host`** after this skill; detect host per its table, then Read the
|
|
|
127
129
|
| residual 只写 plan 不写 SSOT | `mstar-plan-artifacts` |
|
|
128
130
|
| 角色文件塞流程长文 | 用专题 skill |
|
|
129
131
|
| 无证据宣称完成 | `mstar-coding-behavior` / verification |
|
|
130
|
-
| CreatePlan 不落盘 / 无
|
|
132
|
+
| CreatePlan 不落盘 / 无 `{HARNESS_DIR}` mirror | `mstar-host` · `cursor-plan-mode-bridge` |
|
|
133
|
+
| 临时方案 / 后续计划只写在对话里 | `mstar-phase-gates` · Durable Roadmap Gate |
|
|
131
134
|
|
|
132
135
|
## 可选:OpenViking Memory
|
|
133
136
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Codex host reference
|
|
2
2
|
|
|
3
|
-
Load when **`mstar-host`** detection resolves **codex** (Codex app/CLI session, Codex plugin installed from `.codex-plugin/plugin.json`, or Codex tool namespaces such as `functions.*`, `codex_app.*`, `tool_search`, `image_gen`, or Browser plugin tools).
|
|
3
|
+
Load when **`mstar-host`** detection resolves **codex** (Codex app/CLI session, Codex plugin installed from `.codex-plugin/plugin.json`, Codex custom agents linked from `codex/agents/*.toml`, or Codex tool namespaces such as `functions.*`, `codex_app.*`, `tool_search`, `image_gen`, or Browser plugin tools).
|
|
4
4
|
|
|
5
5
|
Parallel PM dispatch: read **`parallel-dispatch.md`** only when Codex exposes an actual multi-agent / Task-style invocation tool. If no callable invoke tool exists, Assignment Markdown is coordination text only; do **not** claim subagent dispatch.
|
|
6
6
|
|
|
@@ -8,8 +8,9 @@ Parallel PM dispatch: read **`parallel-dispatch.md`** only when Codex exposes an
|
|
|
8
8
|
|
|
9
9
|
- Plugin source: `.codex-plugin/plugin.json`.
|
|
10
10
|
- Runtime skills: repo `skills/` mounted by the Codex plugin (`"skills": "./skills/"`).
|
|
11
|
+
- Custom agent source: repo `codex/agents/*.toml`; CLI/manual install links these into `~/.codex/agents/` or project `.codex/agents/`.
|
|
11
12
|
- `/pm`: shared force entry via the `pm` skill; after that, role behavior comes from `mstar-roles`.
|
|
12
|
-
- Role files under `agents/` are for hosts that load agent shells; Codex
|
|
13
|
+
- Role files under root `agents/` are for hosts that load OpenCode/Cursor-style agent shells; Codex uses `codex/agents/*.toml` and still loads `mstar-roles` references directly.
|
|
13
14
|
- Tool and plugin availability can be lazy-loaded or session-dependent. Use the tools actually present in the current session; do not infer capability from documentation alone.
|
|
14
15
|
|
|
15
16
|
## Skill loading
|
|
@@ -30,8 +31,8 @@ Use skill names in prompts and references. Avoid absolute local paths unless the
|
|
|
30
31
|
|
|
31
32
|
## Dispatch and role execution
|
|
32
33
|
|
|
33
|
-
- **No invoke tool = no dispatch**: printing `## Assignment` does not start another Codex worker.
|
|
34
|
-
- If Codex exposes multi-agent tools, PM may dispatch through those tools and must follow `parallel-dispatch.md`.
|
|
34
|
+
- **No invoke tool / no linked custom agent = no dispatch**: printing `## Assignment` does not start another Codex worker.
|
|
35
|
+
- If Codex exposes custom-agent / multi-agent tools and matching Morning Star agents are linked, PM may dispatch through those tools and must follow `parallel-dispatch.md`.
|
|
35
36
|
- If no invoke tool is present, use single-session role execution: state the active role, load that role reference, complete the assignment, and return Completion Report v2.
|
|
36
37
|
- QC tri-review is only "parallel" when three distinct callable reviewer sessions are actually launched in one dispatch turn. Without that, run a clearly labeled serial/manual review path or return `Blocked` for PM rerouting.
|
|
37
38
|
- Leaf executors still follow `mstar-dispatch-gates`: no recursive Task/subagent calls unless Assignment says `Delegation: allowed (...)`.
|
|
@@ -51,6 +52,6 @@ Use skill names in prompts and references. Avoid absolute local paths unless the
|
|
|
51
52
|
|
|
52
53
|
## Gotchas
|
|
53
54
|
|
|
54
|
-
- Codex plugin install gives skills
|
|
55
|
+
- Codex plugin install gives skills; Morning Star role subagents require custom agent TOML files linked from `codex/agents/`.
|
|
55
56
|
- Tool discovery (`tool_search`) can reveal capabilities, but availability is not authorization; Assignment `Delegation` still controls use.
|
|
56
57
|
- Session plans, chat summaries, and UI todos are not durable harness SSOT unless mirrored to `{HARNESS_DIR}`.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## Purpose
|
|
6
6
|
|
|
7
|
-
Cursor **Plan mode** uses **CreatePlan** and built-in plan todos for session UX. Morning Star **SSOT** lives on disk under **`{HARNESS_DIR}`** (default `.agents/`). This reference defines **dual-write**: mirror every durable plan artifact to the repo; never treat the Cursor plan URI alone as the handoff surface.
|
|
7
|
+
Cursor **Plan mode** uses **CreatePlan** and built-in plan todos for session UX. Morning Star **SSOT** lives on disk under **`{HARNESS_DIR}`** (default `.mstar/`, legacy `.agents/`). This reference defines **dual-write**: mirror every durable plan artifact to the repo; never treat the Cursor plan URI alone as the handoff surface.
|
|
8
8
|
|
|
9
9
|
## Priority (hard)
|
|
10
10
|
|
|
@@ -23,7 +23,7 @@ Cursor **Plan mode** uses **CreatePlan** and built-in plan todos for session UX.
|
|
|
23
23
|
## Before the first CreatePlan
|
|
24
24
|
|
|
25
25
|
1. **Read** (minimum): `mstar-plan-conventions`, `mstar-plan-artifacts` (SKILL.md); Prepare gates from `mstar-phase-gates` if not hotfix.
|
|
26
|
-
2. **Discover** `{HARNESS_DIR}` / `{PLAN_DIR}` per `mstar-plan-conventions` (prefer `.
|
|
26
|
+
2. **Discover** `{HARNESS_DIR}` / `{PLAN_DIR}` per `mstar-plan-conventions` (prefer `.mstar/` + `.mstar/plans/`; reuse legacy `.agents/` only when already present and `.mstar/` is absent).
|
|
27
27
|
3. **Initialize** if absent (see checklist below).
|
|
28
28
|
|
|
29
29
|
### Harness initialization checklist
|
|
@@ -58,7 +58,7 @@ Add one object to `status.json` → `plans[]`:
|
|
|
58
58
|
{
|
|
59
59
|
"id": "<plan-id>",
|
|
60
60
|
"status": "Todo",
|
|
61
|
-
|
|
61
|
+
"file": ".mstar/plans/<plan-id>-<short-name>.md",
|
|
62
62
|
"metadata": {
|
|
63
63
|
"primary_spec": "<spec-id or path if known>",
|
|
64
64
|
"description": "<one-line summary>"
|
|
@@ -66,12 +66,13 @@ Add one object to `status.json` → `plans[]`:
|
|
|
66
66
|
}
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
Set `updated_at` on `status.json` to today (`YYYY-MM-DD`). Commit harness files in the **business repo** when the project tracks
|
|
69
|
+
Set `updated_at` on `status.json` to today (`YYYY-MM-DD`). Commit harness files in the **business repo** when the project tracks `{HARNESS_DIR}` (default).
|
|
70
70
|
|
|
71
71
|
### `mirror-plan` minimum content
|
|
72
72
|
|
|
73
73
|
- YAML or markdown frontmatter with `plan_id`, title, status (`Todo` / `InProgress` — not `Done` unless PM/QA authority).
|
|
74
74
|
- **Task list** as markdown checkboxes (`- [ ]` / `- [x]`) matching CreatePlan implement todos.
|
|
75
|
+
- **Roadmap / deferred scope** section when delivery is staged, partial, or uses a temporary workaround.
|
|
75
76
|
- Link: “SSOT status: `{HARNESS_DIR}/status.json` → `plans[]` / `residual_findings`.”
|
|
76
77
|
|
|
77
78
|
After **CreatePlan**, keep CreatePlan body and mirror file **in sync** when scope changes (update both in the same coordination round).
|
|
@@ -84,9 +85,9 @@ Use this structure in CreatePlan `plan` markdown; mirror the same sections into
|
|
|
84
85
|
# Plan: <title>
|
|
85
86
|
|
|
86
87
|
**plan_id**: <plan-id>
|
|
87
|
-
**HARNESS_DIR**: .
|
|
88
|
-
**Plan file (SSOT)**: .
|
|
89
|
-
**status.json**: .
|
|
88
|
+
**HARNESS_DIR**: .mstar/
|
|
89
|
+
**Plan file (SSOT)**: .mstar/plans/<plan-id>-<short-name>.md
|
|
90
|
+
**status.json**: .mstar/status.json
|
|
90
91
|
|
|
91
92
|
## Prepare gates
|
|
92
93
|
|
|
@@ -94,13 +95,21 @@ Use this structure in CreatePlan `plan` markdown; mirror the same sections into
|
|
|
94
95
|
- clarify: [done|n/a]
|
|
95
96
|
- plan: [done|in progress]
|
|
96
97
|
|
|
98
|
+
## Roadmap / deferred scope
|
|
99
|
+
|
|
100
|
+
- Target state: <complete outcome>
|
|
101
|
+
- Current slice: <what this plan/batch delivers>
|
|
102
|
+
- Later slices: <batch/order/owner or trigger>
|
|
103
|
+
- Deferred scope / temporary workaround removal: <tracking location or N/A>
|
|
104
|
+
- Final Done definition: <condition for full completion>
|
|
105
|
+
|
|
97
106
|
## Tasks (mirror as checkboxes in SSOT plan file)
|
|
98
107
|
|
|
99
108
|
### Bootstrap (fixed prefix — complete before implement)
|
|
100
109
|
|
|
101
|
-
1. harness-init — init .
|
|
110
|
+
1. harness-init — init .mstar/, status.json, reports/, archived/residuals/
|
|
102
111
|
2. spec-register — register plan_id in status.json; spec stub if applicable
|
|
103
|
-
3. mirror-plan — write .
|
|
112
|
+
3. mirror-plan — write .mstar/plans/<plan-id>-<short-name>.md
|
|
104
113
|
|
|
105
114
|
### Implement
|
|
106
115
|
|
|
@@ -144,6 +153,7 @@ Before switching from Plan to Agent for implementation (or declaring Plan phase
|
|
|
144
153
|
- [ ] `status.json` contains `plans[]` entry with matching `id` and `file`
|
|
145
154
|
- [ ] Bootstrap todos `harness-init`, `spec-register`, `mirror-plan` are **done**
|
|
146
155
|
- [ ] CreatePlan implement todos reference **task ids** traceable to SSOT plan checkboxes
|
|
156
|
+
- [ ] If staged/partial/temporary, CreatePlan and SSOT plan both contain `Roadmap / deferred scope`
|
|
147
157
|
- [ ] **Plan Path** for any Assignment uses the SSOT path, not the Cursor plan URI
|
|
148
158
|
|
|
149
159
|
If any item fails → **Blocked**; finish harness sync before implement.
|
|
@@ -177,12 +187,13 @@ When `/pm` runs under Plan mode:
|
|
|
177
187
|
|
|
178
188
|
| Anti-pattern | Fix |
|
|
179
189
|
|--------------|-----|
|
|
180
|
-
| CreatePlan only, no
|
|
190
|
+
| CreatePlan only, no `{HARNESS_DIR}` files | Run bootstrap todos; Write mirror plan + status.json |
|
|
181
191
|
| Todo done, no commit | Commit per task; paste `git log -1` evidence |
|
|
182
192
|
| Drift between CreatePlan and SSOT plan | Update both in same round |
|
|
183
193
|
| Cursor plan URI as Plan Path | Use `{PLAN_DIR}/...` path |
|
|
184
194
|
| Skip `spec-register` | Add `plans[]` row before implement |
|
|
185
195
|
| Build starts coding in the parent session | Resume PM context; dispatch implement work or block on missing Assignment |
|
|
196
|
+
| Follow-up only in chat / no roadmap section | Add `Roadmap / deferred scope` to CreatePlan and SSOT plan before implement |
|
|
186
197
|
|
|
187
198
|
## Related skills
|
|
188
199
|
|
|
@@ -11,7 +11,7 @@ Parallel PM dispatch: **`parallel-dispatch.md`** (Task tool uses same turn model
|
|
|
11
11
|
|
|
12
12
|
## Plan mode × harness dual-write
|
|
13
13
|
|
|
14
|
-
When **Plan mode** is active, **CreatePlan is session UX**; SSOT is **`{HARNESS_DIR}`** (default `.agents/`) — `{PLAN_DIR}/<plan-id>-<name>.md`, `{HARNESS_DIR}/status.json`.
|
|
14
|
+
When **Plan mode** is active, **CreatePlan is session UX**; SSOT is **`{HARNESS_DIR}`** (default `.mstar/`, legacy `.agents/`) — `{PLAN_DIR}/<plan-id>-<name>.md`, `{HARNESS_DIR}/status.json`.
|
|
15
15
|
|
|
16
16
|
Before first **CreatePlan**: Read `mstar-plan-conventions`, `mstar-plan-artifacts`, Prepare gates from `mstar-phase-gates` when not hotfix. Full procedure: **`cursor-plan-mode-bridge.md`**.
|
|
17
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-phase-gates
|
|
3
|
-
description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare(`specify → clarify → plan`)、Execute(`plan(locked) → tasks → implement
|
|
3
|
+
description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare(`specify → clarify → plan`)、Execute(`plan(locked) → tasks → implement`)、意图门禁、长期目标优先、分批 roadmap 强制落盘、clarify 核心纪律(共享理解 / 先探索 / 每问推荐答案)、hotfix 压缩路径、可验证编辑、Phase Gate 最小证据。**必须**在 PM 判定 gate、首次 implement 派单前、产品/架构参与 Prepare、或解释为何不能跳过 plan/clarify 时 Read;`@project-manager` 每轮编排非 hotfix 任务必读;`@product-manager` / `@architect` 写规格与锁 plan 时必读 Prepare 节;实现角色 Read Execute 与 hotfix 例外即可。Task category 与 `quick` 禁豁免规则仍在 `mstar-harness-core`。并行 Superpowers 短语见 `mstar-superpowers-align`。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order(必读顺序)
|
|
@@ -19,13 +19,15 @@ description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare
|
|
|
19
19
|
1. **能查库则查库**:若问题可通过探索代码库(实现、配置、`{SPECS_DIR}`、`{KNOWLEDGE_DIR}`、`{ITERATION_DIR}` 等)得到答案,**先探索、不向用户提问**。
|
|
20
20
|
2. **每问带推荐**:每个仍需用户确认的问题,须给出**推荐答案**(及简短理由),便于快速对齐。
|
|
21
21
|
3. **收口摘要**:`clarify` 结束前列出:已决事项、仍 open 的假设、对 `plan` 的约束。
|
|
22
|
-
- **`plan`** —
|
|
22
|
+
- **`plan`** — 技术方案、长期目标状态、模块边界/接口契约、风险与回滚点、验证计划。
|
|
23
23
|
- **意图门禁**:锁 plan 前须能书面写清**真实目标 / 成功判据 / 非目标**三项;否则 Prepare 未通过。
|
|
24
|
+
- **长期方案优先**:默认先设计目标状态,再裁剪本轮可交付切片;不得以“临时方案 / 混合方案 / 以后再说”替代目标设计。
|
|
25
|
+
- **Durable Roadmap Gate**:若本轮只做部分范围,plan 必须写明 roadmap(批次、依赖、暂缓项、owner/触发条件、最终完成定义)。只有一句“后续再做 / next plan”视为未通过 plan gate。
|
|
24
26
|
|
|
25
27
|
### B. Execute:`plan(locked) → tasks → implement`
|
|
26
28
|
|
|
27
29
|
- **`plan(locked)`** — 冻结基线;实现中出现新约束时**先回写 plan 再继续**。
|
|
28
|
-
- **`tasks`** — 含依赖顺序、并行标记、完成判据;每任务可追踪到 plan
|
|
30
|
+
- **`tasks`** — 含依赖顺序、并行标记、完成判据;每任务可追踪到 plan、roadmap 批次与验收标准。
|
|
29
31
|
- **并行标签**:若 PM 将 ≥2 条实现轨 **同时** 分派,须在 `Superpowers` 中写入 `dispatching-parallel-agents`;同仓 ≥2 可写并发时叠 `using-git-worktrees`(见 **`mstar-superpowers-align`** 与 **`mstar-branch-worktree`**)。
|
|
30
32
|
- **`implement`** — 按 tasks 顺序执行并提交自检证据;完成进入 `InReview`;遵循 **`mstar-coding-behavior`**。
|
|
31
33
|
|
|
@@ -65,8 +67,9 @@ description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare
|
|
|
65
67
|
- **`clarify` 核心纪律**(见 **`mstar-phase-gates` SKILL.md** Prepare · `clarify`):逐方面核对至共享理解;沿设计决策树逐枝、一次一决;能探索代码库则先探索;每问附推荐答案;阶段末汇总已决与仍 open 假设。
|
|
66
68
|
- `plan`
|
|
67
69
|
- 目标:给出可执行技术方案与风险控制。
|
|
68
|
-
-
|
|
70
|
+
- 最小产物:目标状态、方案、模块边界/接口契约、风险与回滚、验证计划。
|
|
69
71
|
- **准入**:能书面写出真实目标、成功判据、非目标后再锁 plan(同 `SKILL.md`)。
|
|
72
|
+
- **分批准入**:若计划不是一次性交付完整范围,须写 `Roadmap / Batch Plan`:本批做什么、后续批次做什么、依赖顺序、暂缓项、owner/触发条件、最终 Done 定义;缺失则 `blocked`。
|
|
70
73
|
|
|
71
74
|
### B. Execute
|
|
72
75
|
|
|
@@ -77,7 +80,7 @@ description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare
|
|
|
77
80
|
- 最小动作:在 plan 或 notes 记录当前锁定版本(日期或 hash)。
|
|
78
81
|
- `tasks`
|
|
79
82
|
- 目标:把 plan 拆成可执行任务与依赖顺序。
|
|
80
|
-
-
|
|
83
|
+
- 最小产物:任务列表、并行标记、完成判据、映射到验收标准与 roadmap 批次。
|
|
81
84
|
- **PM**:若并行标记对应「多轨同时 implement」,在对外 **Status Update** 与实现 Assignment 的 **`Superpowers`** 中写入 **`dispatching-parallel-agents`**(或同义短语);同仓多可写并发时叠 **`using-git-worktrees`**(见 `mstar-superpowers-align`)。
|
|
82
85
|
- `implement`
|
|
83
86
|
- 目标:按任务执行并提交证据,进入审查。
|
|
@@ -108,10 +111,11 @@ description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare
|
|
|
108
111
|
2. `clarify` 是否完成(高影响歧义是否收敛)?
|
|
109
112
|
3. 意图门禁是否满足(真实目标 / 成功判据 / 非目标已写明)?
|
|
110
113
|
4. `plan` 是否完成并可引用?
|
|
111
|
-
5.
|
|
112
|
-
6.
|
|
113
|
-
7.
|
|
114
|
-
8.
|
|
114
|
+
5. 若分批/暂缓/临时绕行,roadmap 是否落在 plan/status 中,而不是只在对话里?
|
|
115
|
+
6. `tasks` 是否完成?
|
|
116
|
+
7. Assignment 是否含 **`Task category`**(实现类任务)并与 Owner 一致?
|
|
117
|
+
8. 若中途出现 plan drift,是否先回写再继续?
|
|
118
|
+
9. 实现说明中是否体现"最小耐久切片 + 手术式改动 + 可验证检查"?
|
|
115
119
|
|
|
116
120
|
任一项为「否」时,`Gate decision` 必须是 `blocked`。
|
|
117
121
|
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
|
|
23
23
|
## `{ITERATION_DIR}`(可选·迭代/版本级 compass)
|
|
24
24
|
|
|
25
|
-
- **物理路径**:`**{ITERATION_DIR}/**`(推荐布局下常为 `**.
|
|
25
|
+
- **物理路径**:`**{ITERATION_DIR}/**`(推荐布局下常为 `**.mstar/iterations/**`,与 `{KNOWLEDGE_DIR}`、`{PLAN_DIR}` 并列;legacy 项目可继续为 `.agents/iterations/`)。
|
|
26
26
|
- **放什么**:某一**交付版本或迭代**的范围、里程碑、验收、风险、program 备注;命名示例 `v1.15-delivery-compass-v1.md`、`*-program-compass-*.md`;遗留非标准 `v1.*` 规划快照可保留于此并列入索引。
|
|
27
27
|
- **不放什么**:可跨版本复用的实现 SSOT(进 `{KNOWLEDGE_DIR}`);冻结产品/API 规范(进 `{SPECS_DIR}`);单 plan 的 QC 留档(进 `{PLAN_DIR}/reports/`)。
|
|
28
|
-
- **索引**:**必须**维护 `**{ITERATION_DIR}/README.md**`:至少 **Document**、**Version / iteration**、**Description**;可按「Delivery compasses」与「Legacy artifacts
|
|
28
|
+
- **索引**:**必须**维护 `**{ITERATION_DIR}/README.md**`:至少 **Document**、**Version / iteration**、**Description**;可按「Delivery compasses」与「Legacy artifacts」分表。
|
|
29
29
|
- **与 plan 的链接**:在 `**plans[].metadata**` 中可用 `**iteration_compass**`(单文件)或 `**iteration_refs**`(`string[]`)登记仓库内相对路径;PM 在 Assignment 点名本轮须读的 compass。
|
|
30
30
|
- **维护**:`@product-manager` / `@architect` 起草;`**@project-manager**` 维护 README 与 metadata 挂接;compass 定稿后**少改多版本**(新版本优先新文件名 `v<N>` 或新 compass 文件)。
|
|
31
31
|
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
## 与 `status.json` 的链接
|
|
46
46
|
|
|
47
|
-
- 某 plan 的**权威设计输入**在知识库、迭代 compass 或规格目录中时,在 `**plans[].metadata**` 中登记路径,推荐使用已列标准键:`**primary_spec**`(单文件)、`**spec_refs**`(`string[]`)、`**iteration_compass**` / `**iteration_refs**`(迭代级,可选)。路径为**仓库内相对路径**(推荐布局下常写作 `**.
|
|
47
|
+
- 某 plan 的**权威设计输入**在知识库、迭代 compass 或规格目录中时,在 `**plans[].metadata**` 中登记路径,推荐使用已列标准键:`**primary_spec**`(单文件)、`**spec_refs**`(`string[]`)、`**iteration_compass**` / `**iteration_refs**`(迭代级,可选)。路径为**仓库内相对路径**(推荐布局下常写作 `**.mstar/knowledge/....md**`、`**.mstar/iterations/....md**` 或 `**.mstar/specs/....md**`;兼容旧目录时也可为 `.agents/...`)。
|
|
48
48
|
- 执行方在 **implement 前**须按 metadata 读取这些文件,并与主 plan 核对;不得在未读链接文档的情况下**静默偏离**其中已写明的决策(若需偏离,先回写 knowledge 或 plan 并走 PM/architect 门禁)。
|
|
49
49
|
|
|
50
50
|
## 维护规则
|
|
@@ -83,4 +83,4 @@
|
|
|
83
83
|
|
|
84
84
|
**维护**:`**@project-manager`**(或与 Assignment 一致的可写角色);`**@qc-specialist***` 宿主白名单通常**不含**本目录——审查结论仍以 `**reports/`** 为准,散文由 PM/实现方据结论整理。
|
|
85
85
|
|
|
86
|
-
**关闭与归档**:当该条从 **open 列表**(根级 **`residual_findings[<plan-id>]`**;若仅存 legacy 侧则从该处)移除并**追加**至 `**{HARNESS_DIR}/archived/residuals/<plan-id>.json`** 时,应将对应 `**.md**` 一并收口:可迁入 `**{HARNESS_DIR}/archived/knowledge/**`(若视为历史考据)、或团队约定的 `**{HARNESS_DIR}/archived/residuals/**` 子路径(与 `**.json**` 同批变更可追溯);并在归档条目的 `**closure_evidence` / `closure_note**`(或团队约定字段)中**写明散文最终路径**。勿长期保留「JSON 已关闭而散文仍留在 `residuals/` 且声称仍 open」的状态。
|
|
86
|
+
**关闭与归档**:当该条从 **open 列表**(根级 **`residual_findings[<plan-id>]`**;若仅存 legacy 侧则从该处)移除并**追加**至 `**{HARNESS_DIR}/archived/residuals/<plan-id>.json`** 时,应将对应 `**.md**` 一并收口:可迁入 `**{HARNESS_DIR}/archived/knowledge/**`(若视为历史考据)、或团队约定的 `**{HARNESS_DIR}/archived/residuals/**` 子路径(与 `**.json**` 同批变更可追溯);并在归档条目的 `**closure_evidence` / `closure_note**`(或团队约定字段)中**写明散文最终路径**。勿长期保留「JSON 已关闭而散文仍留在 `residuals/` 且声称仍 open」的状态。
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
- **并行 vs 串行**:不同 `plan_id` **相互独立**时,可 **并行**派发多组三审(每组各自的 Assignment 与 `reports/<plan-id>/`);若 PM 选择串行,须在 Status Update 写明顺序——**每组仍须完整三审 + QA**,不是「一个大 QC」混审。
|
|
45
45
|
- **读 skill**:书写或派发 QC 相关 Assignment 前,PM **必须** Read **`mstar-review-qc`** skill(`mstar-plan-conventions` 不重复 QC 清单与 verdict 规则)。见 `mstar-plan-conventions` SKILL.md **QC pre-dispatch gate** 与 **InReview 与 QC+QA** 小节。
|
|
46
46
|
|
|
47
|
-
**QC 落盘与宿主权限**:`@qc-specialist` / `@qc-specialist-2` / `@qc-specialist-3` 在支持路径白名单的宿主上(如 OpenCode 的 **`permission.edit`**),**仅可** Write/Edit **`{PLAN_DIR}/reports/`** 下 **`.md`**(全局 agent 提示词中已配置 `.agents/plans/reports/**`、`.plans/reports/**`、`plans/reports/**` 相对路径)。报告文件**必须**以 YAML **frontmatter** 开头(键见各 QC agent 提示词)。**若** 项目的 `{PLAN_DIR}`
|
|
47
|
+
**QC 落盘与宿主权限**:`@qc-specialist` / `@qc-specialist-2` / `@qc-specialist-3` 在支持路径白名单的宿主上(如 OpenCode 的 **`permission.edit`**),**仅可** Write/Edit **`{PLAN_DIR}/reports/`** 下 **`.md`**(全局 agent 提示词中已配置 `.mstar/plans/reports/**`、`.agents/plans/reports/**`、`.plans/reports/**`、`plans/reports/**` 相对路径)。报告文件**必须**以 YAML **frontmatter** 开头(键见各 QC agent 提示词)。**若** 项目的 `{PLAN_DIR}` 不落在上述根下,须在**项目级**宿主配置(如 OpenCode)中为 QC 角色追加对应的 `edit` allow 规则。
|
|
48
48
|
|
|
49
49
|
**QC 报告与 Git**:报告落盘后,各 QC 角色须在业务仓内对**本次报告文件**执行 **`git add` + `git commit`**(细则与 bash 权限见 `agents/qc-specialist*.md`);**禁止**仅落盘不提交导致 `clone` 后不可见。**PM / architect / product-manager** 对 **`{HARNESS_DIR}`** / **`{PLAN_DIR}`** 与主 plan 的创建与更新亦须在业务仓内 **commit**(见 `agents/project-manager.md` Plan 初始化与 PM 职责、`agents/architect.md` / `agents/product-manager.md` Git 小节)。
|
|
50
50
|
|
|
@@ -241,10 +241,10 @@ Prefer **`archived/residuals/`**; migrate and delete history key when possible.
|
|
|
241
241
|
### Query open and archived (examples)
|
|
242
242
|
|
|
243
243
|
```bash
|
|
244
|
-
# Replace .
|
|
245
|
-
jq '.residual_findings["01-data-infrastructure"] // .metadata.residual_findings["01-data-infrastructure"]' .
|
|
246
|
-
jq '.entries[] | select(.id == "R1")' .
|
|
247
|
-
bash skills/mstar-plan-artifacts/scripts/tech-debt-rollup.sh .
|
|
244
|
+
# Replace .mstar with your resolved {HARNESS_DIR}; legacy projects may use .agents.
|
|
245
|
+
jq '.residual_findings["01-data-infrastructure"] // .metadata.residual_findings["01-data-infrastructure"]' .mstar/status.json
|
|
246
|
+
jq '.entries[] | select(.id == "R1")' .mstar/archived/residuals/01-data-infrastructure.json
|
|
247
|
+
bash skills/mstar-plan-artifacts/scripts/tech-debt-rollup.sh .mstar/status.json
|
|
248
248
|
```
|
|
249
249
|
|
|
250
250
|
(`//` right-hand side = legacy read path.)
|
|
@@ -277,8 +277,8 @@ Append-only log for merge closure, batch archive, `tech_debt_summary` refresh, e
|
|
|
277
277
|
**Compute (canonical):** run the read-only script (do **not** hand-count):
|
|
278
278
|
|
|
279
279
|
```bash
|
|
280
|
-
# From repo root; pass path to status.json if not .
|
|
281
|
-
bash skills/mstar-plan-artifacts/scripts/tech-debt-rollup.sh .
|
|
280
|
+
# From repo root; pass path to status.json if not .mstar/status.json
|
|
281
|
+
bash skills/mstar-plan-artifacts/scripts/tech-debt-rollup.sh .mstar/status.json
|
|
282
282
|
```
|
|
283
283
|
|
|
284
284
|
- Prints computed `total_open`, `by_severity`, `by_target`, `by_plan`.
|
|
@@ -328,11 +328,11 @@ Before merge/PR, **`@project-manager`** (or delegate) should verify: `plans[].st
|
|
|
328
328
|
|
|
329
329
|
- Read: accept `id` or `plan_id`.
|
|
330
330
|
- Write: one canonical key (prefer `id`).
|
|
331
|
-
- Document canonical key in
|
|
331
|
+
- Document canonical key in `{HARNESS_DIR}/AGENTS.md` if migrating.
|
|
332
332
|
|
|
333
333
|
## Common queries
|
|
334
334
|
|
|
335
335
|
```bash
|
|
336
|
-
jq '.plans[] | select(.id == "01-data-infrastructure")' .
|
|
337
|
-
jq '.residual_findings["01-data-infrastructure"] // .metadata.residual_findings["01-data-infrastructure"]' .
|
|
336
|
+
jq '.plans[] | select(.id == "01-data-infrastructure")' .mstar/status.json
|
|
337
|
+
jq '.residual_findings["01-data-infrastructure"] // .metadata.residual_findings["01-data-infrastructure"]' .mstar/status.json
|
|
338
338
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-plan-conventions
|
|
3
|
-
description: Morning Star (启明星) harness 计划目录约定 —— `{HARNESS_DIR}` / `{PLAN_DIR}` / `{ITERATION_DIR}` / `{KNOWLEDGE_DIR}` / `{SPECS_DIR}`
|
|
3
|
+
description: Morning Star (启明星) harness 计划目录约定 —— `{HARNESS_DIR}` / `{PLAN_DIR}` / `{ITERATION_DIR}` / `{KNOWLEDGE_DIR}` / `{SPECS_DIR}` 发现与初始化(默认 `.mstar/`,兼容 `.agents/`)、`docs/` 与 harness 子树边界、未启用 plan 时的工作方式、Spec 集成分支与多 Plan 实现分支(merge 靶与 PR 合 main)、Superpowers `writing-plans` 落盘门限、工期预估(agent-oriented)。**必须**在读写 `.mstar/` / `.agents/`、初始化 harness、编排含 plan 的任务、或对齐 `metadata.primary_spec` 时 Read;`@project-manager` 开 plan 任务前必读。plan 文件 / status / residual / reports / knowledge → **`mstar-plan-artifacts`**;分支与 QC 检出 → **`mstar-branch-worktree`**。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order(必读顺序)
|
|
@@ -17,7 +17,7 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
|
|
|
17
17
|
|
|
18
18
|
| 符号 | 默认 |
|
|
19
19
|
|------|------|
|
|
20
|
-
| `{HARNESS_DIR}` | `.
|
|
20
|
+
| `{HARNESS_DIR}` | `.mstar/` |
|
|
21
21
|
| `{PLAN_DIR}` | `{HARNESS_DIR}/plans/` |
|
|
22
22
|
| `{ITERATION_DIR}` | `{HARNESS_DIR}/iterations/` |
|
|
23
23
|
| `{KNOWLEDGE_DIR}` | `{HARNESS_DIR}/knowledge/` |
|
|
@@ -25,11 +25,12 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
|
|
|
25
25
|
|
|
26
26
|
### 解析顺序(找到即停)
|
|
27
27
|
|
|
28
|
-
1. `.
|
|
29
|
-
2. 否则 `.
|
|
30
|
-
3.
|
|
28
|
+
1. `.mstar/` → `{HARNESS_DIR}=.mstar/`, `{PLAN_DIR}=.mstar/plans/`
|
|
29
|
+
2. 否则 `.agents/` → legacy `{HARNESS_DIR}=.agents/`, `{PLAN_DIR}=.agents/plans/`
|
|
30
|
+
3. 否则 `.plans/` 或 `plans/` → 遗留同目录 `{HARNESS_DIR}={PLAN_DIR}`
|
|
31
|
+
4. 皆无 → 未启用 plan;进度走对话与 Completion Report
|
|
31
32
|
|
|
32
|
-
并存时 **`.agents/`
|
|
33
|
+
并存时 **`.mstar/` 优先**;仅当项目已有 `.agents/` 且无 `.mstar/` 时继续沿用 `.agents/`。
|
|
33
34
|
|
|
34
35
|
`{SPECS_DIR}`:有 `specs/` 用之;否则 `designs/`;皆无则建议新建 `specs/`。
|
|
35
36
|
|
|
@@ -49,11 +50,11 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
|
|
|
49
50
|
|
|
50
51
|
PM 在需要持久化追踪时:
|
|
51
52
|
|
|
52
|
-
1. 建 `.
|
|
53
|
+
1. 建 `.mstar/`、`plans/`、`status.json`(空模板见 **`mstar-plan-artifacts/templates/status.empty.json`**)
|
|
53
54
|
2. 可选 `notes.json`(模板 **`mstar-plan-artifacts/templates/notes.empty.json`**)、`reports/README.md`、`knowledge/`、`iterations/`、`specs/`
|
|
54
55
|
3. Git:团队交付 **勿** ignore 整个 `{HARNESS_DIR}`(handoff 需 clone 可达)
|
|
55
56
|
|
|
56
|
-
步骤与
|
|
57
|
+
步骤与 `{HARNESS_DIR}/AGENTS.md` 分层 → **`references/harness-bootstrap-and-agents-layering.md`**。
|
|
57
58
|
|
|
58
59
|
## Spec 驱动的分支模型(多 Plan · 同一 Spec)
|
|
59
60
|
|
package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md
CHANGED
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
|
|
13
13
|
## Bootstrap 最小步骤
|
|
14
14
|
|
|
15
|
-
1. 创建 `{HARNESS_DIR}`(推荐 `.
|
|
15
|
+
1. 创建 `{HARNESS_DIR}`(推荐 `.mstar/`)与 `{PLAN_DIR}`(推荐 `.mstar/plans/`)。
|
|
16
16
|
2. 初始化 `status.json`:从 **`mstar-plan-artifacts/templates/status.empty.json`** 复制;residual canonical 见 **`mstar-plan-artifacts` SKILL.md**;字段与生命周期见 **`mstar-plan-artifacts/references/status-and-residuals.md`**。
|
|
17
17
|
3. 初始化可选 `notes.json`(**`mstar-plan-artifacts/templates/notes.empty.json`**)与 `plans/reports/README.md`。
|
|
18
18
|
4. 可选:创建 `{ITERATION_DIR}`(`iterations/` + `README.md`)与 `{KNOWLEDGE_DIR}`(`knowledge/` + `README.md`);内容边界见 `mstar-plan-conventions` SKILL.md 与 `references/knowledge-and-designs.md`。
|
|
19
|
-
5. 创建
|
|
20
|
-
6. 校准根 `AGENTS.md`:只保留仓库级长期约束,显式引用
|
|
19
|
+
5. 创建 `{HARNESS_DIR}/AGENTS.md`(harness 子树规则):符号表可复述 `{HARNESS_DIR}`、`{PLAN_DIR}`、`{ITERATION_DIR}`、`{KNOWLEDGE_DIR}`、`{SPECS_DIR}` 与 `docs/` 分工;新项目推荐 `.mstar/AGENTS.md`,已有项目可继续使用 `.agents/AGENTS.md`。
|
|
20
|
+
6. 校准根 `AGENTS.md`:只保留仓库级长期约束,显式引用 `{HARNESS_DIR}/AGENTS.md` 作为 harness SSOT。
|
|
21
21
|
7. 仅在确有稳定边界时新增目录级 `AGENTS.md`(如 `contracts/`、`gateway/`、`sdk/`)。
|
|
22
22
|
|
|
23
23
|
## 三层 `AGENTS.md` 职责切分
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
- 放:仓库身份、技术边界、构建/测试接口、安全与分支策略、规格路由表。
|
|
28
28
|
- 不放:动态状态、当前批次进展、R# 明细、QC 单次结论。
|
|
29
29
|
|
|
30
|
-
###
|
|
30
|
+
### `{HARNESS_DIR}/AGENTS.md`(harness 层)
|
|
31
31
|
|
|
32
32
|
- 放:`{HARNESS_DIR}`/`{PLAN_DIR}`/`{ITERATION_DIR}`/`{KNOWLEDGE_DIR}`/`{SPECS_DIR}` 契约、`docs/` 与 harness 子树内容边界、状态推进门禁、QC/QA 对齐规则、residual 生命周期、Done compaction profile。
|
|
33
33
|
- 不放:语言/框架编码细节、业务模块实现约束。
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
1. Current user instruction
|
|
57
57
|
2. Root `AGENTS.md`
|
|
58
58
|
3. This file
|
|
59
|
-
4.
|
|
59
|
+
4. `{HARNESS_DIR}/AGENTS.md`
|
|
60
60
|
|
|
61
61
|
## Boundary Rules
|
|
62
62
|
- ...
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
修正:迁移到 `status.json` 的 `plans[].metadata` 与 `notes.json`。
|
|
75
75
|
|
|
76
76
|
- 反模式:每个子目录复制一份完整 harness 规则。
|
|
77
|
-
修正:保留一行引用
|
|
77
|
+
修正:保留一行引用 `{HARNESS_DIR}/AGENTS.md`,仅写本目录增量约束。
|
|
78
78
|
|
|
79
79
|
- 反模式:目录级规则未声明 Source Priority,冲突时不可裁决。
|
|
80
80
|
修正:统一四级优先级模板并在每个目录级文件开头声明。
|
|
@@ -30,6 +30,7 @@ If any item below matches, **stop** and return `Blocked` to `project-manager` in
|
|
|
30
30
|
- **NEVER** infer you may call `Task` / subagents because the host **lists** `subagent_type` names (`architect`, `fullstack-dev`, …). **Tool availability ≠ delegation authorization**; only **`Delegation: allowed (...)`** grants callees.
|
|
31
31
|
- **NEVER** load and execute Superpowers `dispatching-parallel-agents` yourself to fan out child agents; that skill is **PM-orchestration-only** (see `mstar-superpowers-align`). If parallel runners are needed, report to PM for re-dispatch.
|
|
32
32
|
- **NEVER** treat `Gate Decision: blocked` (material, high-impact ambiguities still open) as permission to hand off “ready for implement” architecture—finish clarify, update the package, or return `Blocked` to PM.
|
|
33
|
+
- **NEVER** use a temporary, mixed, or partial design as the selected approach unless the target architecture and staged roadmap are written in the assigned plan/spec. “Later” without a tracking location is `Blocked`, not a handoff.
|
|
33
34
|
- **NEVER** edit application implementation source, automated tests, CI workflows, Dockerfiles, or secrets-bearing runtime configuration unless the assignment explicitly limits you to doc-only placeholders **and** PM recorded the risk acceptance.
|
|
34
35
|
- **NEVER** persist planning artifacts from `writing-plans` (or equivalent) under upstream `docs/superpowers/plans/`; only `{PLAN_DIR}` per `mstar-plan-conventions`.
|
|
35
36
|
|
|
@@ -79,6 +80,9 @@ Do not create your own branch strategy.
|
|
|
79
80
|
- Option A: summary + trade-offs
|
|
80
81
|
- Option B: summary + trade-offs
|
|
81
82
|
- Selected Approach: why
|
|
83
|
+
- Long-term Target State
|
|
84
|
+
- Durable Slice for This Batch
|
|
85
|
+
- Roadmap if Split: batches + dependencies + deferred scope + final Done definition
|
|
82
86
|
- Module Boundaries
|
|
83
87
|
- API/Data Contracts
|
|
84
88
|
- Risks and Rollback
|
|
@@ -92,6 +96,8 @@ Do not create your own branch strategy.
|
|
|
92
96
|
# Architecture: <System/Module>
|
|
93
97
|
|
|
94
98
|
## Overview
|
|
99
|
+
## Long-term Target State
|
|
100
|
+
## Staged Roadmap
|
|
95
101
|
## Architecture Diagram
|
|
96
102
|
## Tech Stack
|
|
97
103
|
## Module Breakdown
|
|
@@ -33,6 +33,7 @@ If any item below matches, **stop** and return `Blocked` to `project-manager` in
|
|
|
33
33
|
- **NEVER** point `writing-plans` output to upstream `docs/superpowers/plans/`; use `{PLAN_DIR}` per `mstar-plan-conventions`.
|
|
34
34
|
- **NEVER** offload PRD/product-doc drafting to `@explore`; short read-only orientation only per `mstar-harness-core`.
|
|
35
35
|
- **NEVER** label a Prepare package as “ready for implement” while `Gate Decision: blocked` for material ambiguities—resolve, document waivers with PM, or return `Blocked`.
|
|
36
|
+
- **NEVER** split delivery by saying “later / follow-up / next phase” without writing the product roadmap, deferred scope, and final completion definition in the assigned plan/spec.
|
|
36
37
|
|
|
37
38
|
## Superpowers (When Enabled)
|
|
38
39
|
|
|
@@ -69,6 +70,8 @@ If writing files to business repo, use only PM-assigned `Working branch` / `Bran
|
|
|
69
70
|
- User Value
|
|
70
71
|
- Scope
|
|
71
72
|
- Non-goals
|
|
73
|
+
- Target State
|
|
74
|
+
- Roadmap if Split
|
|
72
75
|
- Draft DoD
|
|
73
76
|
|
|
74
77
|
### Clarify
|
|
@@ -86,6 +89,9 @@ If writing files to business repo, use only PM-assigned `Working branch` / `Bran
|
|
|
86
89
|
## Target Users
|
|
87
90
|
## User Stories
|
|
88
91
|
## Acceptance Criteria
|
|
92
|
+
## Target State
|
|
93
|
+
## Roadmap / Release Slices
|
|
94
|
+
## Deferred Scope and Tracking
|
|
89
95
|
## Priority
|
|
90
96
|
## Effort (agent-oriented)
|
|
91
97
|
```
|
|
@@ -53,6 +53,7 @@ For assignees (non-PM):
|
|
|
53
53
|
**Delegation**: forbidden | allowed (...)
|
|
54
54
|
**Why this agent**: <role-fit>
|
|
55
55
|
**PM Task Board coverage**: <task ids>
|
|
56
|
+
**Roadmap / deferred scope**: <required when staged, partial, or temporary; otherwise N/A>
|
|
56
57
|
**Task**: <concrete work aligned with coverage>
|
|
57
58
|
**Checkpoint Comment Rule**: commit -> Completion Report v2 -> PM Status Update -> next batch
|
|
58
59
|
**Why batching is safe**: <required when batching >=3 IDs>
|
|
@@ -7,8 +7,8 @@ Use this reference for `{HARNESS_DIR}` / `{PLAN_DIR}` initialization, status syn
|
|
|
7
7
|
Follow `mstar-plan-conventions` for canonical discovery.
|
|
8
8
|
Preferred layout:
|
|
9
9
|
|
|
10
|
-
- `{HARNESS_DIR}`: `.agents/`
|
|
11
|
-
- `{PLAN_DIR}`: `.agents/plans/`
|
|
10
|
+
- `{HARNESS_DIR}`: `.mstar/` by default; existing `.agents/` projects remain valid.
|
|
11
|
+
- `{PLAN_DIR}`: `.mstar/plans/` by default; existing `.agents/plans/` projects remain valid.
|
|
12
12
|
|
|
13
13
|
Legacy fallbacks:
|
|
14
14
|
|
|
@@ -116,6 +116,7 @@ If any item below matches, fix the dispatch/plan state or mark `Blocked`—do **
|
|
|
116
116
|
- **NEVER** point QC at a single dev worktree/`Review cwd` that cannot contain **all** claimed changes from parallel tracks until Git integration lands on one `Working branch` `HEAD` (`mstar-branch-worktree` QC/QA alignment).
|
|
117
117
|
- **NEVER** label `QA: skipped` for report-only QA—still dispatch `@qa-engineer` with report-only mode; QC skip rules are separate and explicit.
|
|
118
118
|
- **NEVER** let non-PM/non-QA roles mark plan `Done`.
|
|
119
|
+
- **NEVER** accept “temporary workaround”, “follow-up later”, “next plan”, or “split into batches” as narrative-only scope management. If work is deferred or staged, write the roadmap/tracking location before implement GO or Done.
|
|
119
120
|
|
|
120
121
|
---
|
|
121
122
|
|
|
@@ -127,7 +128,8 @@ Before first implement dispatch (non-hotfix):
|
|
|
127
128
|
2. `clarify` done (no unresolved high-impact ambiguity)
|
|
128
129
|
3. `plan` done and referenceable
|
|
129
130
|
4. `tasks` + PM Task Board ready for non-trivial plan
|
|
130
|
-
5.
|
|
131
|
+
5. Roadmap written when delivery is split, deferred, or temporary
|
|
132
|
+
6. New constraints discovered are written back to plan first
|
|
131
133
|
|
|
132
134
|
If any fail -> do not dispatch implement.
|
|
133
135
|
|
|
@@ -177,6 +179,7 @@ Anti-patterns:
|
|
|
177
179
|
- Q11: For non-trivial plan, is PM Task Board published with coverage?
|
|
178
180
|
- Q12: In invoke-based hosts, were matching invokes actually issued?
|
|
179
181
|
- Q13: With **>=2 independent** backend/fullstack units, are owners spread across `fullstack-dev` and `fullstack-dev-2` (parallel or rotated), or is `single_stream_justified: yes` recorded with a real reason?
|
|
182
|
+
- Q14: If this is partial/staged/temporary, is the roadmap/tracking location written in the plan/status artifacts rather than only in prose?
|
|
180
183
|
|
|
181
184
|
---
|
|
182
185
|
|
|
@@ -195,6 +198,8 @@ Pre-implement Gate Check:
|
|
|
195
198
|
- non_trivial_plan: yes|no
|
|
196
199
|
- PM_Task_Board_published: yes|no
|
|
197
200
|
- batch_strategy_defined: yes|no
|
|
201
|
+
- roadmap_written: yes|no|n/a
|
|
202
|
+
- roadmap_location: <Plan section / PM Task Board / status.json / residual id / n/a>
|
|
198
203
|
- assignment_batch_index: <e.g. 1/3>
|
|
199
204
|
- coverage_ids: <e.g. T1,T2>
|
|
200
205
|
- reason_if_single_assignment: <required when only one batch>
|
|
@@ -208,6 +213,8 @@ Hard block when:
|
|
|
208
213
|
|
|
209
214
|
- Non-trivial plan has required field = `no`
|
|
210
215
|
- Harness-active non-hotfix flow lacks on-disk main plan or status registration
|
|
216
|
+
- `assignment_batch_index` is not `1/1` but `roadmap_written` is not `yes`
|
|
217
|
+
- Any temporary workaround or deferred scope lacks a durable tracking location
|
|
211
218
|
- `Task category: quick` is used on non-trivial work
|
|
212
219
|
- **>=2 independent** backend/fullstack units on the task board but `single_stream_justified: no` with no spread across `fullstack-dev` / `fullstack-dev-2` and no documented single-id override
|
|
213
220
|
|
|
@@ -218,6 +225,7 @@ Hard block when:
|
|
|
218
225
|
Before first implement dispatch:
|
|
219
226
|
|
|
220
227
|
- Publish PM Task Board with ID/owner/deps/parallel/coverage mapping
|
|
228
|
+
- If delivery spans batches, include the full roadmap: batch order, deferred scope, dependencies, owner/trigger, and final Done definition
|
|
221
229
|
- Every implement Assignment declares `PM Task Board coverage`
|
|
222
230
|
- Default batch size 1-2 IDs; `>=3` requires `Why batching is safe`
|
|
223
231
|
- Completion rhythm: commit -> Completion Report v2 -> PM Status Update -> next dispatch
|