@mstar-harness/dsh 3.8.2 → 3.9.0

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.
Files changed (69) hide show
  1. package/README.i18n.yaml +2 -2
  2. package/README.md +1 -1
  3. package/README.zh.md +1 -1
  4. package/dist/client/panel/locale.d.ts +1 -1
  5. package/dist/client.js +5 -5
  6. package/dist/index.js +1293 -955
  7. package/dist/types.d.ts +2 -2
  8. package/harness-commands/amazing-e2e-check.md +10 -0
  9. package/harness-commands/iteration-drive.md +13 -7
  10. package/harness-commands/iteration-loop.md +10 -10
  11. package/harness-commands/iteration-start.md +10 -10
  12. package/harness-skills/mstar-artifacts/SKILL.md +3 -3
  13. package/harness-skills/mstar-artifacts/references/plan-files-and-reports.md +2 -2
  14. package/harness-skills/mstar-artifacts/references/plan-quality-bar.md +14 -12
  15. package/harness-skills/mstar-artifacts/references/status-and-residuals.md +12 -8
  16. package/harness-skills/mstar-artifacts/templates/plan.main.md +21 -6
  17. package/harness-skills/mstar-audit/SKILL.md +5 -5
  18. package/harness-skills/mstar-branch-worktree/SKILL.md +69 -28
  19. package/harness-skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +9 -8
  20. package/harness-skills/mstar-coding-behavior/SKILL.md +8 -8
  21. package/harness-skills/mstar-conventions/SKILL.md +2 -2
  22. package/harness-skills/mstar-dispatch-gates/SKILL.md +10 -8
  23. package/harness-skills/mstar-e2e/SKILL.md +40 -0
  24. package/harness-skills/mstar-e2e/references/report-template.md +32 -0
  25. package/harness-skills/mstar-engine-legacy/references/lease-protocol.md +12 -9
  26. package/harness-skills/mstar-engine-legacy/references/qc-seat-n-restatements.md +3 -3
  27. package/harness-skills/mstar-engine-legacy/references/status-field-history.md +3 -3
  28. package/harness-skills/mstar-harness-core/SKILL.md +14 -1
  29. package/harness-skills/mstar-host/references/_shared/host-role-binding-core.md +1 -1
  30. package/harness-skills/mstar-host/references/codex.md +6 -4
  31. package/harness-skills/mstar-host/references/cursor.md +1 -1
  32. package/harness-skills/mstar-host/references/dsh-workflow-scripts.md +4 -4
  33. package/harness-skills/mstar-host/references/dsh.md +10 -8
  34. package/harness-skills/mstar-host/references/kimi.md +3 -3
  35. package/harness-skills/mstar-host/references/omp.md +3 -3
  36. package/harness-skills/mstar-host/references/parallel-dispatch.md +6 -6
  37. package/harness-skills/mstar-host/references/zcode.md +4 -4
  38. package/harness-skills/mstar-iteration/SKILL.md +19 -13
  39. package/harness-skills/mstar-iteration/references/command-shared-invariants.md +2 -1
  40. package/harness-skills/mstar-iteration/references/phase-1-prepare.md +4 -2
  41. package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +73 -49
  42. package/harness-skills/mstar-iteration/references/phase-3-iteration-close.md +4 -4
  43. package/harness-skills/mstar-iteration/references/phase-4-5-pr-delivery.md +6 -5
  44. package/harness-skills/mstar-iteration/references/phase-6-post-merge-close.md +71 -0
  45. package/harness-skills/mstar-review-qc/SKILL.md +5 -4
  46. package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +9 -7
  47. package/harness-skills/mstar-roles/SKILL.md +2 -0
  48. package/harness-skills/mstar-roles/references/_shared/leaf-executor-core.md +9 -0
  49. package/harness-skills/mstar-roles/references/ops-engineer.md +3 -0
  50. package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +22 -17
  51. package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +7 -5
  52. package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +2 -2
  53. package/harness-skills/mstar-roles/references/project-manager/routing-and-dev-allocation.md +2 -2
  54. package/harness-skills/mstar-roles/references/project-manager.md +5 -4
  55. package/harness-skills/mstar-roles/references/prompt-engineer.md +1 -1
  56. package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +27 -13
  57. package/harness-skills/mstar-roles/references/qa-engineer.md +7 -4
  58. package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +5 -5
  59. package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +2 -0
  60. package/harness-skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +1 -1
  61. package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +5 -4
  62. package/harness-skills/mstar-roles/references/qc-specialist-shared.md +3 -1
  63. package/harness-skills/mstar-sdd/SKILL.md +19 -11
  64. package/harness-skills/mstar-sdd/references/file-handoffs.md +61 -23
  65. package/harness-skills/mstar-sdd/references/implementer-continuation-prompt.md +9 -4
  66. package/harness-skills/mstar-sdd/references/implementer-prompt.md +11 -6
  67. package/harness-skills/mstar-sdd/references/sticky-implementer-session.md +4 -2
  68. package/harness-skills/mstar-sdd/references/task-reviewer-prompt.md +8 -4
  69. package/package.json +1 -1
@@ -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
- Run the SDD helpers through the engine CLI **`mstar sdd …`** (engine-backed; the former bash scripts are removed — semantics unchanged).
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
- `export MSTAR_CONTROL_ROOT=<control_worktree_path>`
12
- or `mstar sdd workspace <plan-id> <control_worktree_path>`
13
+ `export MSTAR_CONTROL_ROOT=<main-repo-root>` — the **derived main worktree** root, verified by Git probing before the fail-closed guard
14
+ or `mstar sdd workspace <plan-id> <main-repo-root>`
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. Write the execution context file `$SDD_DIR/context.json` — the absolute destination contract every handoff cites:
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
  {
@@ -24,15 +26,15 @@ Run the SDD helpers through the engine CLI **`mstar sdd …`** (engine-backed; t
24
26
  }
25
27
  ```
26
28
 
27
- 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.
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, and it must canonicalize to the Git-derived main worktree root (an integration/foreign checkout is refused, not redirected).
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, plan and context-file paths (destination contract — see prompt templates)
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,62 @@ 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 test summary
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
+
72
+ ### Captured check evidence (`sdd evidence`)
73
+
74
+ An already-authorized check can run **once** and leave version-bound raw evidence in canonical SDD for read-only review: reviewers inspect the retained bundle instead of repeating the child command. Division of labor: **PM publishes the fixed, immutable task capture request** (task-specific JSON naming context, coverage declaration, declared inputs and selected environment keys); the **developer captures** the already-authorized check with it; QC/QA only inspect and verify — they never repeat the recorded child. The capture request is a separate immutable artifact, never the rotating `context.json`; no hosted leaf resolves it as a checkout selector. Capture authorizes nothing by itself: it neither dispatches agents nor grants test/full-suite/E2E permission.
75
+
76
+ Exact public command shapes (angle-bracket terms are required CLI values):
77
+
78
+ ```text
79
+ mstar sdd evidence capture --request <absolute-task-request.json> -- <executable> [args...]
80
+ mstar sdd evidence verify --sdd-dir <absolute-dir> --plan <id> --task <id> --run <uuid> [--target <absolute-target.json>]
81
+ ```
82
+
83
+ - Capture runs the child once (literal argv, no shell), POSIX linux/darwin only (unsupported hosts refuse before spawn), and retains `{SDD_DIR}/evidence/<run-uuid>/` with fixed `record.json`, `stdout.log`, `stderr.log`; every retry is a fresh run UUID. Capture exits: child exit code preserved; missing executable 127; timeout 124; signal 128+n (parent SIGINT 130 / SIGTERM 143); gate/IO refusal 1; usage 2. Cite the raw log paths as evidence links — not paraphrased output.
84
+ - `verify` is read-only and portable: it never runs the recorded child, discovery or version probes, writes no assessment artifact, and emits exactly one JSON assessment. Without `--target`, exit 0 means complete **integrity only** — a retained failed run still verifies with outcome `failed` (stderr: `integrity only; outcome=<value>; acceptance not assessed`). With `--target`, exit 0 means reuse **candidate** (stderr adds `reuse candidate; coverage review required`); every non-candidate exits 1; usage 2.
85
+ - Four outputs stay separate everywhere — **integrity** (bundle complete/unaltered), **outcome** (recorded process result), **target applicability** (`not-assessed`/`candidate`/`changed`/`uncertain`), **coverage judgment** (always `review-required` in v1). No exit code or record field decides acceptance: there is no parser promise, no pass/fail counts and no automatic coverage inference (`counts` stays null in v1) — a reviewer judges coverage.
86
+ - Reuse semantics (first match): tested bytes equal after a later commit or a docs-only change stay reuse candidates; a changed shared runtime/config/fixture/dependency input names the affected gap (`changed`); failed/incomplete proof, unknown input scope or a different repository stays `uncertain` — a pre-fix failure is retained as `failed` and never relabeled a pre-feature baseline; without a target the result is `not-assessed`, never candidate. An empty environment allowlist or a lockfile-only dependency declaration is the caller's reviewed assumption, not automatic completeness.
87
+ - Non-executable documentation/policy never manufactures capture evidence — it uses `Verification mode: scoped-check` above. Historical manual evidence stays manual/unverified: cite it with provenance and reviewer reasoning; NEVER retrofit it into a v1 runner record.
88
+ - The old `mstar sdd exec` entry is unchanged and stays PM-only serialized launch (§ Bound child launch); hosted leaves never use it for their assigned checks.
89
+
48
90
  ## After implementer DONE
49
91
 
50
- 1. `HEAD_SHA=$(git rev-parse HEAD)`
51
- 2. `mstar sdd review-package "$BASE_SHA" "$HEAD_SHA" --context "$SDD_DIR/context.json"` — bound: probes git in `featureCwd`, writes the diff into the control sddDir, prints absolute paths.
92
+ 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.
93
+
94
+ 1. `HEAD_SHA=$(git -C "$FEATURE_CWD" rev-parse HEAD)`
95
+ 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
96
  3. Dispatch task reviewer with: brief path, report path, diff path, Global Constraints (verbatim from plan).
53
97
 
54
98
  **Never use `HEAD~1` as BASE** — multi-commit tasks truncate.
55
99
 
56
100
  ## Bound child launch (CLI-launchable children)
57
101
 
58
- When the implementer is a CLI command rather than a hosted subagent, launch it through the bound argv entry — never raw from a primary/control checkout:
102
+ **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
103
 
60
104
  ```bash
61
105
  mstar sdd exec --context "$SDD_DIR/context.json" -- <argv...>
@@ -68,24 +112,18 @@ mstar sdd exec --context "$SDD_DIR/context.json" -- <argv...>
68
112
 
69
113
  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
114
 
71
- 1. Observe `pwd` and the checked-out branch in the tool's workdir; both must equal `featureCwd`/`workingBranch`. On mismatch, stop and report — a declared-correct assignment does not make a wrong-checkout write safe.
72
- 2. Source edits go through the tool workdir at `featureCwd` (or absolute feature paths); briefs/reports/diffs go only to the absolute control paths from the handoff.
115
+ 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.
116
+ 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
117
 
74
118
  ## Fix loop
75
119
 
76
- Fix subagent appends to same `task-N-report.md` with test evidence:
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.
120
+ 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
121
 
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, full 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`.
122
+ 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
123
 
86
124
  ## Progress ledger
87
125
 
88
- On clean task review, append to `$SDD_DIR/progress.md`:
126
+ On clean task review, PM alone appends to `$SDD_DIR/progress.md`:
89
127
 
90
128
  ```text
91
129
  Task N: complete (<base>..<head>, review clean)
@@ -95,7 +133,7 @@ Minor findings: append under `## Minor (for plan QC)` in same file.
95
133
 
96
134
  ## Plan-level QC package
97
135
 
98
- After all tasks:
136
+ After all tasks, PM generates the package serially from the integrated checkout with its corresponding context:
99
137
 
100
138
  ```bash
101
139
  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] — Context file: [CONTEXT_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. CLI-launchable children are started via `mstar sdd exec --context [CONTEXT_FILE] -- <argv>` (starting cwd = feature worktree).
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; commit on Working branch
46
- 3. Write report file; return short summary only
49
+ 2. Run only assigned affected unit tests or applicable scoped-check evidence; use file-handoffs.md § Verification evidence and retain unaffected prior evidence. When this task's Assignment names a PM-fixed capture request, capture the authorized check once with `mstar sdd evidence capture --request <absolute-task-request.json> -- <executable> [args...]` and cite the retained run's record/raw logs
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] — Context file: [CONTEXT_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. CLI-launchable children are started via `mstar sdd exec --context [CONTEXT_FILE] -- <argv>` (starting cwd = feature worktree).
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 questions now about requirements, approach, or dependencies.
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 (TDD if brief requires)
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. When the Assignment names a PM-fixed capture request, capture the authorized check once with `mstar sdd evidence capture --request <absolute-task-request.json> -- <executable> [args...]` and cite the retained run's record/raw logs (same section) instead of ad-hoc reruns
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
- - Tests: command, output, red/green evidence if TDD
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`** | Same `fullstack-dev` (or same role id), sequential tasks on one branch, strong file/context continuity (e.g. T3+T4 daemon stderr + DB reset) |
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`** on iteration Phase 2 Autonomous Execute when PM will dispatch many tasks to the same dev on one plan feature branch.
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-level QC comes later on the whole branch.
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
- Do not re-run full test suite — trust implementer evidence unless a
43
- specific doubt needs one focused test.
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 covers both verdicts. PM resolves all ⚠️ items before marking task complete.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mstar-harness/dsh",
3
- "version": "3.8.2",
3
+ "version": "3.9.0",
4
4
  "description": "Morning Star harness dsh (DeepSeek Harness) cordis function plugin — in-process engine gates (status/dispatch/lease) with hard refusal channels.",
5
5
  "keywords": [
6
6
  "dsh",