@mstar-harness/dsh 3.8.2 → 3.8.3
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-commands/amazing-e2e-check.md +10 -0
- package/harness-commands/iteration-drive.md +1 -1
- package/harness-skills/mstar-artifacts/references/plan-files-and-reports.md +2 -2
- package/harness-skills/mstar-artifacts/references/plan-quality-bar.md +14 -12
- package/harness-skills/mstar-artifacts/templates/plan.main.md +19 -6
- package/harness-skills/mstar-audit/SKILL.md +5 -5
- package/harness-skills/mstar-coding-behavior/SKILL.md +8 -8
- package/harness-skills/mstar-dispatch-gates/SKILL.md +9 -7
- package/harness-skills/mstar-e2e/SKILL.md +40 -0
- package/harness-skills/mstar-e2e/references/report-template.md +32 -0
- package/harness-skills/mstar-engine-legacy/references/qc-seat-n-restatements.md +3 -3
- package/harness-skills/mstar-harness-core/SKILL.md +14 -1
- package/harness-skills/mstar-host/references/_shared/host-role-binding-core.md +1 -1
- package/harness-skills/mstar-host/references/cursor.md +1 -1
- package/harness-skills/mstar-host/references/dsh-workflow-scripts.md +4 -4
- package/harness-skills/mstar-host/references/dsh.md +9 -7
- package/harness-skills/mstar-host/references/kimi.md +3 -3
- package/harness-skills/mstar-host/references/omp.md +3 -3
- package/harness-skills/mstar-host/references/parallel-dispatch.md +6 -6
- package/harness-skills/mstar-host/references/zcode.md +4 -4
- package/harness-skills/mstar-iteration/SKILL.md +1 -1
- package/harness-skills/mstar-iteration/references/phase-1-prepare.md +2 -2
- package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +3 -3
- package/harness-skills/mstar-review-qc/SKILL.md +4 -4
- package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +9 -7
- package/harness-skills/mstar-roles/SKILL.md +2 -0
- package/harness-skills/mstar-roles/references/_shared/leaf-executor-core.md +9 -0
- package/harness-skills/mstar-roles/references/ops-engineer.md +3 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +12 -9
- package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +7 -5
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +2 -2
- package/harness-skills/mstar-roles/references/project-manager/routing-and-dev-allocation.md +2 -2
- package/harness-skills/mstar-roles/references/project-manager.md +2 -2
- package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +12 -13
- package/harness-skills/mstar-roles/references/qa-engineer.md +5 -4
- package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +5 -5
- package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +2 -0
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +1 -1
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +5 -4
- package/harness-skills/mstar-roles/references/qc-specialist-shared.md +3 -1
- package/harness-skills/mstar-sdd/SKILL.md +16 -10
- package/harness-skills/mstar-sdd/references/file-handoffs.md +40 -20
- package/harness-skills/mstar-sdd/references/implementer-continuation-prompt.md +9 -4
- package/harness-skills/mstar-sdd/references/implementer-prompt.md +11 -6
- package/harness-skills/mstar-sdd/references/sticky-implementer-session.md +4 -2
- package/harness-skills/mstar-sdd/references/task-reviewer-prompt.md +8 -4
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ Extension of `references/qc-specialist-shared.md`. Read when dispatched as `qc-s
|
|
|
4
4
|
|
|
5
5
|
## What this seat is
|
|
6
6
|
|
|
7
|
-
**L3 plan QC = independent code review** on the
|
|
7
|
+
**L3 plan QC = independent code review** on the assigned changed diff and directly affected interfaces: logic, contracts, security, maintainability, reliability — same job family as a human PR reviewer.
|
|
8
8
|
|
|
9
9
|
| This seat does | This seat does **not** |
|
|
10
10
|
|----------------|-------------------------|
|
|
@@ -26,10 +26,10 @@ Layer SSOT → `mstar-review-qc/references/review-responsibility-boundaries.md`.
|
|
|
26
26
|
## Standard review workflow
|
|
27
27
|
|
|
28
28
|
1. **Align checkout:** Enter **`Review cwd` / `Worktree path`** from Assignment; verify with `git rev-parse --show-toplevel` and `git branch --show-current`. Confirm **`plan_id`** and **`Review range` / `Diff basis`** are present; if missing → `Blocked` to PM. All `git diff` / `git log` must reproduce the assigned range.
|
|
29
|
-
2. **Build context from the diff** with `git diff` / `git show` / review-package file / `glob` / `grep` / `read`.
|
|
29
|
+
2. **Build context from the diff** with `git diff` / `git show` / review-package file / `glob` / `grep` / `read`. Use the supplied relevant knowledge/context; do not launch global exploration or delegate navigation.
|
|
30
30
|
3. Re-verify branch vs **`Working branch` / `Branch policy`** before concluding.
|
|
31
31
|
4. **Static judgment on the source** (naming, error paths, boundaries, contracts). Default tooling = read/grep only. **Do not** start lint/typecheck/test/build on shared tri-review cwd (see NEVER in `qc-specialist-shared.md`).
|
|
32
|
-
5.
|
|
32
|
+
5. Apply only the **`reviewer-checklist.md`** items affected by the diff. Reuse unchanged L2 evidence; re-review only the assigned findings and fix delta. Stop when these questions have evidence.
|
|
33
33
|
6. Produce structured findings with severity and evidence. PM maps report sections to register **`severity`** (`projects/<id>/residuals.json` → `entries[<plan-id>]`) per `mstar-artifacts/references/status-and-residuals.md` — do not invent non-canonical severity strings.
|
|
34
34
|
7. **Write report:** Write `.md` to the Assignment-provided `{SDD_DIR}/review/` report path. Do not commit raw bundle reports unless Assignment explicitly says `Review archive mode: tracked reports`.
|
|
35
35
|
8. **No stall:** When done, emit **Completion Report** in the same turn — no “notify PM?” choosers.
|
|
@@ -38,7 +38,8 @@ Layer SSOT → `mstar-review-qc/references/review-responsibility-boundaries.md`.
|
|
|
38
38
|
|
|
39
39
|
If Acceptance Criteria or high-risk paths need **runtime** proof and L1 reports leave a gap:
|
|
40
40
|
|
|
41
|
-
- Record in findings / Summary: `Needs
|
|
41
|
+
- Record in findings / Summary: `Needs targeted unit evidence: <affected behavior and named case>` with confidence Medium/Low as appropriate.
|
|
42
|
+
- Browser/device/E2E gaps become an explicitly requested independent **`mstar-e2e`** workflow, not QA commands or an automatic iteration gate.
|
|
42
43
|
- Still complete the **diff review** and return a verdict for what you *can* judge from source.
|
|
43
44
|
- Do **not** run the missing commands yourself to fill the gap.
|
|
44
45
|
|
|
@@ -17,7 +17,9 @@ You are QC reviewer #{reviewer_index} (or sole reviewer when `QC mode: single`),
|
|
|
17
17
|
You are a **code reviewer** (diff + language/logic + risk lenses) — **not** a test runner and **not** a substitute for `qa-engineer`.
|
|
18
18
|
Your output is a structured QC report plus Completion Report.
|
|
19
19
|
|
|
20
|
-
**Default (SDD):** plan QC tri on
|
|
20
|
+
**Default (SDD):** plan QC tri on the assigned change review-package (`QC mode: full tri-review`). **Exception:** `Execution mode: inline` → single-seat `qc.md`.
|
|
21
|
+
|
|
22
|
+
**Scope:** follow **`mstar-harness-core`** § 定向执行与验证边界. Initial review covers assigned changed hunks and directly affected interfaces; reuse L2 evidence. Re-review covers only assigned findings and fix delta. Seat count never authorizes full-repository review or fresh global exploration.
|
|
21
23
|
|
|
22
24
|
**Do (L3):** Read `git diff` / review-package; reason about correctness, security, contracts, maintainability, reliability; flag coverage **gaps in the diff** (missing tests for changed behavior); write findings with evidence from source.
|
|
23
25
|
|
|
@@ -19,7 +19,7 @@ If you were dispatched as an SDD implementer or task reviewer, skip PM orchestra
|
|
|
19
19
|
|
|
20
20
|
## Core principle
|
|
21
21
|
|
|
22
|
-
**Default:** fresh implementer
|
|
22
|
+
**Default:** fresh implementer per ready task + task-scoped review + plan QC on the changed diff and directly affected interfaces. Execution scope → **`mstar-harness-core`** § 定向执行与验证边界.
|
|
23
23
|
|
|
24
24
|
**Optional:** **`SDD implementer session: sticky`** — same implementer subagent across sequential tasks on one plan/branch; **task reviewers stay fresh per task**. SSOT → **`references/sticky-implementer-session.md`**.
|
|
25
25
|
|
|
@@ -38,6 +38,12 @@ Before Task 1, scan plan once for:
|
|
|
38
38
|
|
|
39
39
|
Batch all findings for the human in one message. If clean, proceed silently.
|
|
40
40
|
|
|
41
|
+
## Ready-task scheduling (PM only · Decision Rules)
|
|
42
|
+
|
|
43
|
+
Dispatch independent ready tasks concurrently after L2 worktree isolation. Keep one canonical per-plan `{SDD_DIR}`. PM alone writes its `context.json`, `progress.md` and workflow snapshot; prepare context-dependent helper outputs serially. Each writable track has its own worktree/branch and immutable task-specific absolute brief/report/diff paths. Artifact subdirectories are namespaces inside that SDD root, never a second SDD root. Parallel leaves use the supplied paths directly and do not invoke shared-context helpers or read mutable context to choose their checkout; never share a writable session or `implementer-session.json`. Use **fresh** implementers for parallel tasks. Serialize only actual dependencies, overlapping write ownership, one sticky session, and integration merges; state the dependency when serializing. A task reviewer may run alongside an unrelated ready implementer. PM alone reconciles reports into the shared `progress.md` and workflow snapshot.
|
|
44
|
+
|
|
45
|
+
**Dependent-task readiness:** review approval alone does not make a prerequisite available. PM serially integrates the reviewed prerequisite commits, then creates or updates the idle dependent worktree from that integrated state before recording its `BASE_SHA` and dispatching. For each required reviewed commit, record `git -C "$FEATURE_CWD" merge-base --is-ancestor <prerequisite-sha> <BASE_SHA>` with exit 0; a missing commit blocks only that dependent task. Do not move an active task's base; independent ready tasks continue concurrently.
|
|
46
|
+
|
|
41
47
|
## Per-task loop (PM only · Workflow)
|
|
42
48
|
|
|
43
49
|
1. Record `BASE_SHA` (never use `HEAD~1` later)
|
|
@@ -50,9 +56,9 @@ Batch all findings for the human in one message. If clean, proceed silently.
|
|
|
50
56
|
6. Dispatch **fresh** task reviewer — role **`code-reviewer`** (L2; **not** `qc-specialist*`; host fallback generic + C5b → `mstar-host` C5) — brief, report, diff, Global Constraints — `references/task-reviewer-prompt.md` — **never** sticky resume for reviewers
|
|
51
57
|
7. Fix loop for Critical/Important; re-review until approved
|
|
52
58
|
8. Append `progress.md`; update the workflow snapshot plan row (`workflows/<id>/snapshot.json` → `plans[]`) `task_commits[]` and `implementer-session.json` `last_task` if sticky
|
|
53
|
-
9.
|
|
59
|
+
9. Release dependent tasks only after reviewed prerequisite commits are present in their assigned base, per Dependent-task readiness above; independent ready tasks need not wait
|
|
54
60
|
|
|
55
|
-
**Never** dispatch
|
|
61
|
+
**Never** dispatch parallel writers without isolated worktrees and disjoint ownership. Merge their outputs serially before producing the plan review-package.
|
|
56
62
|
|
|
57
63
|
Detail: **`references/file-handoffs.md`**.
|
|
58
64
|
|
|
@@ -87,20 +93,20 @@ Host mapping → **`mstar-host`** references (`model` / Task field).
|
|
|
87
93
|
|
|
88
94
|
1. `mstar sdd review-package MERGE_BASE HEAD` → branch diff in `{SDD_DIR}/review/`
|
|
89
95
|
2. PM dispatches **plan QC tri-review (L3)** — **`QC mode: full tri-review`**, **N=3** — with branch review-package path and report paths under `{SDD_DIR}/review/` → **`mstar-review-qc`** · **`mstar-dispatch-gates`**. Layer SSOT → **`mstar-review-qc/references/review-responsibility-boundaries.md`**. PM writes `{SDD_DIR}/review/qc-consolidated.md` and durable main-plan gate summary. **Mandatory whenever `Execution mode: sdd`** (single-plan or iteration).
|
|
90
|
-
3. Critical/Important QC findings →
|
|
96
|
+
3. Critical/Important QC findings → fix assignments partitioned by ownership/dependency, then targeted re-review. Independent fixes run concurrently; PM retains the complete findings ledger. Fix rounds run on four mechanics — the per-task fix loop applies the same (`references/file-handoffs.md`):
|
|
91
97
|
- **Unverified rounds count**: a fix round without verification evidence (reviewer not confirmed / report not on disk) is **not clean** — re-check and count the round; never enter the convergence branch.
|
|
92
|
-
- **
|
|
93
|
-
- **Capped cross-round excerpt**: from round ≥2, the fix dispatch attaches
|
|
98
|
+
- **Complete ledger, scoped dispatch**: PM retains every open finding, including unverified items; each fix assignment carries only its owned findings and relevant fix delta. Unrelated findings do not expand a leaf task.
|
|
99
|
+
- **Capped cross-round excerpt**: from round ≥2, the fix dispatch attaches only relevant prior findings and dispositions (advisory caps: ~500 words per round, ~1500 total — suggested values, not hard limits).
|
|
94
100
|
- **Honest non-convergence**: open findings at wave close → list them in detail and state the disposition — re-feed to the next fix round **or** transfer to residual tracking — never silently close.
|
|
95
101
|
4. QA gate → **`mstar-harness-core`** Done rules; PM **`mstar-roles/references/project-manager/qa-trigger-matrix.md`**
|
|
96
102
|
|
|
97
|
-
> **On dsh:** the plan QC tri MAY run through the native **`workflow`** tool instead of three `subagent` dispatches — take the `script` + `meta` (`meta.name: mstar-qc-tri`) from skill **`mstar-host`** → `references/dsh-workflow-scripts.md` (§ `mstar-qc-tri`); the three seats stay read-only and PM persists `{SDD_DIR}/review/qc1.md`…`qc3.md` from their returned envelopes.
|
|
103
|
+
> **On dsh:** the plan QC tri MAY run through the native **`workflow`** tool instead of three `subagent` dispatches — take the `script` + `meta` (`meta.name: mstar-qc-tri`) from skill **`mstar-host`** → `references/dsh-workflow-scripts.md` (§ `mstar-qc-tri`); the three seats stay read-only and PM persists `{SDD_DIR}/review/qc1.md`…`qc3.md` from their returned envelopes. Independent ready implementers use background **`subagent`** dispatches with isolated writable tracks — the `workflow` channel is read-only fan-out only; when the tool is unmounted (`ptc` preset) dispatch the three seats as background `subagent` calls (skill **`mstar-host`** → `references/dsh.md`).
|
|
98
104
|
|
|
99
105
|
## Progress ledger(Evidence)
|
|
100
106
|
|
|
101
|
-
|
|
107
|
+
PM at start: `cat {SDD_DIR}/progress.md`. Tasks marked complete are DONE — do not re-dispatch after compaction.
|
|
102
108
|
|
|
103
|
-
|
|
109
|
+
PM appends on clean review: `Task N: complete (<base>..<head>, review clean)`.
|
|
104
110
|
|
|
105
111
|
Minor findings → `## Minor (for plan QC)` section in same file.
|
|
106
112
|
|
|
@@ -108,7 +114,7 @@ Minor findings → `## Minor (for plan QC)` section in same file.
|
|
|
108
114
|
|
|
109
115
|
## Red flags (NEVER)
|
|
110
116
|
|
|
111
|
-
- Parallel
|
|
117
|
+
- Parallel implementers sharing a worktree, ownership, or session
|
|
112
118
|
- Paste plan, diffs, or task history into dispatch prompts
|
|
113
119
|
- Dispatch reviewer without diff file
|
|
114
120
|
- `HEAD~1` as review BASE
|
|
@@ -4,14 +4,16 @@ PM and subagents move artifacts as **files**, not pasted text. Pasted content st
|
|
|
4
4
|
|
|
5
5
|
## Before implementer dispatch
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**PM owns helper execution and shared coordination writes.** Keep one canonical per-plan `{SDD_DIR}` root; only PM writes its `context.json` and `progress.md`. Subdirectories namespace artifacts, not a second SDD root. Scheduling → `mstar-sdd` § Ready-task scheduling.
|
|
8
|
+
|
|
9
|
+
PM runs context-dependent `mstar sdd workspace`, `task-brief`, and `review-package` helpers serially for the corresponding assigned checkout/branch. These helpers may update shared context; parallel hosted leaves never invoke them. Before each dispatch, PM fixes absolute task-specific brief/report/diff destinations and copies `Worktree path` / branch into the Assignment. Updating context for another task must not change an already-dispatched leaf's inputs.
|
|
8
10
|
|
|
9
11
|
1. `export SDD_DIR=$(mstar sdd workspace <plan-id>)`
|
|
10
12
|
- Iteration L1 (implementer cwd = feature worktree):
|
|
11
13
|
`export MSTAR_CONTROL_ROOT=<control_worktree_path>`
|
|
12
14
|
or `mstar sdd workspace <plan-id> <control_worktree_path>`
|
|
13
15
|
so `{SDD_DIR}` lands on the control harness (default-gitignored plans/status/sdd). Do not create a second SDD tree under the feature checkout.
|
|
14
|
-
2.
|
|
16
|
+
2. PM writes `$SDD_DIR/context.json` for the current helper operation — parallel hosted handoffs pin these values in their Assignment instead of consulting mutable plan context:
|
|
15
17
|
|
|
16
18
|
```json
|
|
17
19
|
{
|
|
@@ -26,13 +28,13 @@ Run the SDD helpers through the engine CLI **`mstar sdd …`** (engine-backed; t
|
|
|
26
28
|
|
|
27
29
|
All paths absolute; `planFile`/`sddDir` must resolve inside the control harness; `featureCwd` must be the assigned feature worktree on `workingBranch`. The declared control root is authoritative — never re-inferred from the feature cwd.
|
|
28
30
|
3. `mstar sdd task-brief <plan-file> <N> --context "$SDD_DIR/context.json"` — bound producer: validates the artifact destination **before** mkdir/write and prints the absolute brief path (`{SDD_DIR}/task-N-brief.md`).
|
|
29
|
-
4. Record `BASE_SHA` (`git rev-parse HEAD` before dispatch).
|
|
31
|
+
4. Record `BASE_SHA` (`BASE_SHA=$(git -C "$FEATURE_CWD" rev-parse HEAD)` before dispatch). For dependent tasks, first satisfy `mstar-sdd` § Ready-task scheduling: PM serially integrates reviewed prerequisite commits and records their ancestry in this base. Include those commit/base IDs and the check result in the handoff; review approval alone is insufficient.
|
|
30
32
|
5. Dispatch implementer with:
|
|
31
33
|
- One line scene-setting (where task fits)
|
|
32
34
|
- Absolute brief path: read first — verbatim requirements
|
|
33
35
|
- Interfaces / decisions brief cannot know
|
|
34
36
|
- Absolute report path: `$SDD_DIR/task-N-report.md`
|
|
35
|
-
- Absolute control root, feature cwd,
|
|
37
|
+
- Absolute control root, feature cwd, branch and plan paths, plus task-specific brief/report/diff paths fixed for this dispatch; the context path is PM coordination metadata, not a leaf checkout selector
|
|
36
38
|
- `Model tier` → host-specific model (required)
|
|
37
39
|
- **`SDD implementer session`**: `fresh` (new subagent) or `sticky` (resume — see **`sticky-implementer-session.md`**)
|
|
38
40
|
|
|
@@ -42,20 +44,44 @@ Implementer writes full report to `task-N-report.md`. Return to PM only:
|
|
|
42
44
|
|
|
43
45
|
- Status: `DONE` | `DONE_WITH_CONCERNS` | `NEEDS_CONTEXT` | `BLOCKED`
|
|
44
46
|
- Commits (SHAs)
|
|
45
|
-
- One-line
|
|
47
|
+
- One-line verification summary (affected tests or scoped static evidence)
|
|
46
48
|
- Concerns (if any)
|
|
47
49
|
|
|
50
|
+
## Verification evidence
|
|
51
|
+
|
|
52
|
+
Choose evidence from the actual diff, not the file extension. Scope limits → `mstar-harness-core` § 定向执行与验证边界.
|
|
53
|
+
|
|
54
|
+
- **Executable logic**: report the affected test file(s), exact command/selector and actual output; bug fixes include the reproduction red/green evidence. No `Verification mode` is needed for this test triple.
|
|
55
|
+
- **Non-executable documentation or prompt/skill policy**: use `Verification mode: scoped-check` with real scoped static or before/after observable evidence. This mode cannot exempt executable code, configuration logic or executable snippets from corresponding tests. Mixed changes retain executable test evidence and do not claim a scoped-check exemption for the task.
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
Verification mode: scoped-check
|
|
59
|
+
Changed files: <actual non-executable files>
|
|
60
|
+
Tests: N/A
|
|
61
|
+
Reason: <why scoped evidence fits the actual change>
|
|
62
|
+
Check command: <exact targeted command actually run>
|
|
63
|
+
Check result: <actual exit/result and observed output>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
`Check result` accepts concrete static-tool output (for example `docs/guide.md:12: scoped rule`); a test-style PASS/exit token is not required. It must be nonempty and non-placeholder. Whether an observation is truthful and sufficient remains PM/QC's responsibility.
|
|
67
|
+
|
|
68
|
+
For appended fixes, begin each new block with `## Verification round: <concrete label>` (for example `fix 1`). Only the last such round is active; earlier rounds remain history and cannot fill missing fields. A report without round headings is one active block. The active round supplies its complete applicable evidence, including `Verification mode` for scoped checks; executable rounds retain their own test triple without a mode. A blank/placeholder round label is invalid.
|
|
69
|
+
|
|
70
|
+
Replace every placeholder with actual evidence. Unknown or duplicate modes within the active round, missing/empty/placeholder fields, and bare `Tests: N/A` fail; do not copy the template as a report. `assertSddTddTriple` / `mstar lint <task-report>` validate structure only. PM/QC check the actual changed range, applicability and evidence honesty; the checker cannot establish that commands ran or intercept arbitrary shell execution. For policy changes, record the before/after expectation and triggering scenario alongside the concrete check; no broad model-eval matrix is implied.
|
|
71
|
+
|
|
48
72
|
## After implementer DONE
|
|
49
73
|
|
|
50
|
-
|
|
51
|
-
|
|
74
|
+
PM sets `FEATURE_CWD` from the completed task's immutable Assignment `Worktree path`, verifies its assigned branch, and restores context to that same checkout/branch. Generate the task-specific review package serially from this path; do not use the PM shell cwd for task endpoints. Leaves keep their dispatched inputs unchanged.
|
|
75
|
+
|
|
76
|
+
1. `HEAD_SHA=$(git -C "$FEATURE_CWD" rev-parse HEAD)`
|
|
77
|
+
2. `mstar sdd review-package "$BASE_SHA" "$HEAD_SHA" --context "$SDD_DIR/context.json"` — context `featureCwd` must equal the same `$FEATURE_CWD` used for `HEAD_SHA`; probes git there, writes the diff into the control sddDir, prints absolute paths.
|
|
52
78
|
3. Dispatch task reviewer with: brief path, report path, diff path, Global Constraints (verbatim from plan).
|
|
53
79
|
|
|
54
80
|
**Never use `HEAD~1` as BASE** — multi-commit tasks truncate.
|
|
55
81
|
|
|
56
82
|
## Bound child launch (CLI-launchable children)
|
|
57
83
|
|
|
58
|
-
|
|
84
|
+
**PM-only serialized launch:** when the implementer is a CLI command rather than a hosted subagent, PM holds the serialized context operation through context validation and child spawn, using the launch Assignment's fixed checkout/branch. Do not rotate context until the launch resolves. Hosted leaves never use this entry for their assigned checks; they run allowed commands directly from their verified assigned feature workdir and branch:
|
|
59
85
|
|
|
60
86
|
```bash
|
|
61
87
|
mstar sdd exec --context "$SDD_DIR/context.json" -- <argv...>
|
|
@@ -68,24 +94,18 @@ mstar sdd exec --context "$SDD_DIR/context.json" -- <argv...>
|
|
|
68
94
|
|
|
69
95
|
Hosted subagents are not cwd-bound by the launcher, so their dispatch prompt must carry the absolute destination contract (templates: `implementer-prompt.md`, `implementer-continuation-prompt.md`, `task-reviewer-prompt.md`) and their first step is to observe, then write:
|
|
70
96
|
|
|
71
|
-
1. Observe `pwd` and the checked-out branch in the tool's workdir; both must equal `featureCwd`/`workingBranch
|
|
72
|
-
2. Source edits go through the
|
|
97
|
+
1. Observe `pwd` and the checked-out branch in the tool's workdir; both must equal the immutable Assignment `Worktree path` / branch (`featureCwd`/`workingBranch`), never a newly read value from mutable plan context. On mismatch, stop and report — a declared-correct assignment does not make a wrong-checkout write safe.
|
|
98
|
+
2. Source edits go through the assigned feature workdir; write the report only to its fixed task-specific path and consume brief/diff artifacts only from the dispatched paths. Do not modify shared context/progress or invoke context-writing workspace/task-brief/review-package helpers; request missing artifacts from PM.
|
|
73
99
|
|
|
74
100
|
## Fix loop
|
|
75
101
|
|
|
76
|
-
Fix subagent appends to same `task-N-report.md` with
|
|
77
|
-
|
|
78
|
-
- Covering test file(s)
|
|
79
|
-
- Command run
|
|
80
|
-
- Output (pristine — warnings are findings)
|
|
81
|
-
|
|
82
|
-
Re-dispatch reviewer only when all three are present.
|
|
102
|
+
Fix subagent appends a new `## Verification round: <concrete label>` to the same `task-N-report.md`, followed by the complete affected executable test triple or applicable `scoped-check` block above, with actual output (warnings remain findings). Reuse unaffected evidence, citing its original range and why it remains applicable. Re-dispatch the owning reviewer for the assigned finding/fix delta when the required evidence is present.
|
|
83
103
|
|
|
84
|
-
The per-task fix loop applies the same fix-round mechanics as plan-level QC fix waves (SKILL.md · "After all tasks" — unverified rounds count,
|
|
104
|
+
The per-task fix loop applies the same fix-round mechanics as plan-level QC fix waves (SKILL.md · "After all tasks" — unverified rounds count, affected finding/fix-delta re-entry, capped cross-round excerpt, honest non-convergence): from round ≥2 the excerpt of prior rounds' findings/dispositions goes into the fix dispatch brief, and the round tally/verification history lands in `$SDD_DIR/progress.md`.
|
|
85
105
|
|
|
86
106
|
## Progress ledger
|
|
87
107
|
|
|
88
|
-
On clean task review,
|
|
108
|
+
On clean task review, PM alone appends to `$SDD_DIR/progress.md`:
|
|
89
109
|
|
|
90
110
|
```text
|
|
91
111
|
Task N: complete (<base>..<head>, review clean)
|
|
@@ -95,7 +115,7 @@ Minor findings: append under `## Minor (for plan QC)` in same file.
|
|
|
95
115
|
|
|
96
116
|
## Plan-level QC package
|
|
97
117
|
|
|
98
|
-
After all tasks:
|
|
118
|
+
After all tasks, PM generates the package serially from the integrated checkout with its corresponding context:
|
|
99
119
|
|
|
100
120
|
```bash
|
|
101
121
|
MERGE_BASE=$(git merge-base <target-branch> HEAD)
|
|
@@ -26,10 +26,10 @@ Dispatch:
|
|
|
26
26
|
|
|
27
27
|
- Control harness root (briefs/reports/diffs live here): [CONTROL_ROOT]
|
|
28
28
|
- Feature worktree — cwd for all source edits, branch [WORKING_BRANCH]: [FEATURE_CWD]
|
|
29
|
-
- Plan: [PLAN_FILE] —
|
|
29
|
+
- Plan: [PLAN_FILE] — PM coordination context: [CONTEXT_FILE] (never use it to select your checkout)
|
|
30
30
|
- Brief: [BRIEF_FILE] — Report: [REPORT_FILE]
|
|
31
31
|
- First step on resume: re-observe `pwd` and the checked-out branch — a sticky session may wake in a different cwd; on mismatch with [FEATURE_CWD]/[WORKING_BRANCH], stop and report BLOCKED — do not write.
|
|
32
|
-
- These destinations bind the handoff, not the host: a later deliberate `chdir`, absolute-path write outside [FEATURE_CWD], or host-native edit tool (apply_patch) is NOT blocked.
|
|
32
|
+
- These destinations bind the handoff, not the host: a later deliberate `chdir`, absolute-path write outside [FEATURE_CWD], or host-native edit tool (apply_patch) is NOT blocked. Execute allowed commands directly with the tool workdir fixed to the verified [FEATURE_CWD] / [WORKING_BRANCH]. Hosted leaves must not invoke `mstar sdd exec --context` or resolve cwd from mutable shared context; that entry is reserved for PM serialized CLI launch (file-handoffs.md § Bound child launch).
|
|
33
33
|
|
|
34
34
|
## Context not in the brief
|
|
35
35
|
|
|
@@ -39,11 +39,16 @@ Dispatch:
|
|
|
39
39
|
|
|
40
40
|
Write your full report to: [REPORT_FILE]
|
|
41
41
|
|
|
42
|
+
## Scope and stop
|
|
43
|
+
|
|
44
|
+
Use only the brief's owned files, relevant inputs and named checks. Do not restart global exploration, extend the task, or run local full suites without the user's explicit scoped permission. Reuse unaffected evidence. Stop once the assigned acceptance criteria are evidenced; report concrete missing context instead of over-analyzing settled work.
|
|
45
|
+
|
|
42
46
|
## Your job
|
|
43
47
|
|
|
44
48
|
1. Implement exactly what this brief specifies (prior tasks are done)
|
|
45
|
-
2. Run tests;
|
|
46
|
-
3.
|
|
49
|
+
2. Run only assigned affected unit tests or applicable scoped-check evidence; use file-handoffs.md § Verification evidence and retain unaffected prior evidence
|
|
50
|
+
3. Commit on Working branch
|
|
51
|
+
4. Write report file with actual evidence; return short summary only
|
|
47
52
|
|
|
48
53
|
## When stuck
|
|
49
54
|
|
|
@@ -26,10 +26,10 @@ Dispatch:
|
|
|
26
26
|
|
|
27
27
|
- Control harness root (briefs/reports/diffs live here): [CONTROL_ROOT]
|
|
28
28
|
- Feature worktree — cwd for all source edits, branch [WORKING_BRANCH]: [FEATURE_CWD]
|
|
29
|
-
- Plan: [PLAN_FILE] —
|
|
29
|
+
- Plan: [PLAN_FILE] — PM coordination context: [CONTEXT_FILE] (never use it to select your checkout)
|
|
30
30
|
- Brief: [BRIEF_FILE] — Report: [REPORT_FILE]
|
|
31
31
|
- First step: observe `pwd` and the checked-out branch; on mismatch with [FEATURE_CWD]/[WORKING_BRANCH], stop and report BLOCKED — do not write. A declared-correct assignment does not make a wrong-checkout write safe.
|
|
32
|
-
- These destinations bind the handoff, not the host: a later deliberate `chdir`, absolute-path write outside [FEATURE_CWD], or host-native edit tool (apply_patch) is NOT blocked.
|
|
32
|
+
- These destinations bind the handoff, not the host: a later deliberate `chdir`, absolute-path write outside [FEATURE_CWD], or host-native edit tool (apply_patch) is NOT blocked. Execute allowed commands directly with the tool workdir fixed to the verified [FEATURE_CWD] / [WORKING_BRANCH]. Hosted leaves must not invoke `mstar sdd exec --context` or resolve cwd from mutable shared context; that entry is reserved for PM serialized CLI launch (file-handoffs.md § Bound child launch).
|
|
33
33
|
|
|
34
34
|
## Context not in the brief
|
|
35
35
|
|
|
@@ -41,14 +41,18 @@ Dispatch:
|
|
|
41
41
|
|
|
42
42
|
## Before you begin
|
|
43
43
|
|
|
44
|
-
Ask
|
|
44
|
+
Read the supplied brief and relevant inputs. Ask only about a concrete missing prerequisite that prevents this task; do not reopen settled choices.
|
|
45
|
+
|
|
46
|
+
## Scope and stop
|
|
47
|
+
|
|
48
|
+
Use only the brief's owned files, relevant inputs and named checks. Do not restart global exploration, extend the task, or run local full suites without the user's explicit scoped permission. Reuse unaffected evidence. Stop once the assigned acceptance criteria are evidenced; report concrete missing context instead of over-analyzing settled work.
|
|
45
49
|
|
|
46
50
|
## Your job
|
|
47
51
|
|
|
48
52
|
1. Implement exactly what the brief specifies
|
|
49
|
-
2. Run tests
|
|
53
|
+
2. Run only the assigned affected unit tests; for non-executable docs/policy, use real scoped-check evidence per file-handoffs.md § Verification evidence
|
|
50
54
|
3. Commit on Working branch
|
|
51
|
-
4. Self-review
|
|
55
|
+
4. Self-review only the task diff and directly affected contracts
|
|
52
56
|
5. Write report file; return short summary only
|
|
53
57
|
|
|
54
58
|
## When stuck
|
|
@@ -59,7 +63,8 @@ Dispatch:
|
|
|
59
63
|
|
|
60
64
|
- Status: DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
|
|
61
65
|
- Implemented / attempted
|
|
62
|
-
-
|
|
66
|
+
- Verification: affected test files, command, actual output (red/green for executable bug fixes), OR the complete scoped-check block from file-handoffs.md for non-executable docs/policy
|
|
67
|
+
- Reused evidence: original range and reason it remains applicable
|
|
63
68
|
- Files changed
|
|
64
69
|
- Self-review notes
|
|
65
70
|
```
|
|
@@ -4,14 +4,16 @@ Reuse the **same implementer subagent** across multiple tasks in one plan when t
|
|
|
4
4
|
|
|
5
5
|
SSOT for mode selection and host resume → this file. Per-task artifacts → **`file-handoffs.md`**.
|
|
6
6
|
|
|
7
|
+
**Parallel ready tasks use fresh sessions and task-specific artifact paths inside one canonical per-plan SDD root** (`mstar-sdd` § Ready-task scheduling). Never resume the same session concurrently or share its ledger between tracks; PM alone updates shared context/progress; parallel leaves consume immutable absolute artifact paths, not shared-context helpers.
|
|
8
|
+
|
|
7
9
|
## When to use
|
|
8
10
|
|
|
9
11
|
| `SDD implementer session` | Use |
|
|
10
12
|
|---------------------------|-----|
|
|
11
13
|
| **`fresh`** (default) | Independent tasks, module boundaries, different dev tracks, or first task on a plan |
|
|
12
|
-
| **`sticky`** |
|
|
14
|
+
| **`sticky`** | One sequential dependency chain on one owner track; same `fullstack-dev` (or same role id), sequential tasks on one branch, strong file/context continuity (e.g. T3+T4 daemon stderr + DB reset) |
|
|
13
15
|
|
|
14
|
-
**Prefer `sticky`**
|
|
16
|
+
**Prefer `sticky`** only within a sequential dependency chain with strong context continuity; independent ready tasks remain fresh and concurrent.
|
|
15
17
|
|
|
16
18
|
## Assignment fields (implement dispatch)
|
|
17
19
|
|
|
@@ -12,7 +12,7 @@ Dispatch:
|
|
|
12
12
|
<SUBAGENT-STOP> Skip PM orchestration. Read-only review.</SUBAGENT-STOP>
|
|
13
13
|
|
|
14
14
|
Review one task implementation: spec compliance first, then quality.
|
|
15
|
-
Task-scoped gate — plan
|
|
15
|
+
Task-scoped gate — later plan QC checks changed interfaces across tasks, reusing this report.
|
|
16
16
|
|
|
17
17
|
## What was requested
|
|
18
18
|
|
|
@@ -39,8 +39,12 @@ Dispatch:
|
|
|
39
39
|
Diff file: [DIFF_FILE]
|
|
40
40
|
|
|
41
41
|
Read the diff file once. Do not re-run git. Do not mutate checkout.
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
Review only the assigned task diff and directly affected interfaces.
|
|
43
|
+
No repository-wide exploration or full test suite. Reuse relevant
|
|
44
|
+
implementer evidence; a specific doubt permits only the assigned focused
|
|
45
|
+
unit check. Non-executable docs/policy may use scoped-check evidence;
|
|
46
|
+
verify its applicability against the diff, never invent a test obligation.
|
|
47
|
+
Stop once the assigned acceptance questions are answered.
|
|
44
48
|
|
|
45
49
|
## Output
|
|
46
50
|
|
|
@@ -57,4 +61,4 @@ Dispatch:
|
|
|
57
61
|
**Task quality:** Approved | Needs fixes
|
|
58
62
|
```
|
|
59
63
|
|
|
60
|
-
Re-review after fixes
|
|
64
|
+
Re-review after fixes checks both verdicts only for the raised findings and fix delta; unchanged evidence remains reusable. PM resolves all ⚠️ items before marking task complete.
|
package/package.json
CHANGED