@mstar-harness/opencode 3.6.0-alpha.4 → 3.6.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.
- package/CHANGELOG.md +8 -0
- package/dist/mstar.js +182 -178
- package/harness-skills/mstar-host/references/omp.md +11 -11
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,14 @@ The monorepo root [CHANGELOG.md](../../CHANGELOG.md) summarizes cross-surface re
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [3.6.0] - 2026-09-03
|
|
10
|
+
|
|
11
|
+
### Bundled harness skills (`harness-skills/` at publish)
|
|
12
|
+
|
|
13
|
+
- Version alignment with harness **3.6.0** (no OpenCode package API change).
|
|
14
|
+
|
|
15
|
+
See root [CHANGELOG.md](../../CHANGELOG.md) **3.6.0**.
|
|
16
|
+
|
|
9
17
|
## [3.6.0-alpha.4] - 2026-09-03
|
|
10
18
|
|
|
11
19
|
### Bundled harness skills (`harness-skills/` at publish)
|
package/dist/mstar.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
+
var __returnValue = (v) => v;
|
|
3
|
+
function __exportSetter(name, newValue) {
|
|
4
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
5
|
+
}
|
|
2
6
|
var __export = (target, all) => {
|
|
3
7
|
for (var name in all)
|
|
4
8
|
__defProp(target, name, {
|
|
5
9
|
get: all[name],
|
|
6
10
|
enumerable: true,
|
|
7
11
|
configurable: true,
|
|
8
|
-
set: (
|
|
12
|
+
set: __exportSetter.bind(all, name)
|
|
9
13
|
});
|
|
10
14
|
};
|
|
11
15
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
@@ -13,177 +17,177 @@ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
|
13
17
|
// ../engine/dist/engine.js
|
|
14
18
|
var exports_engine = {};
|
|
15
19
|
__export(exports_engine, {
|
|
16
|
-
|
|
17
|
-
writeJson: () => writeJson,
|
|
18
|
-
withStatusWriteLock: () => withStatusWriteLock,
|
|
19
|
-
verifyPlanExecutionLease: () => verifyPlanExecutionLease,
|
|
20
|
-
validateWorkflowSnapshot: () => validateWorkflowSnapshot,
|
|
21
|
-
validateWorkflowEntry: () => validateWorkflowEntry,
|
|
22
|
-
validateStatusV2: () => validateStatusV2,
|
|
23
|
-
validateStatus: () => validateStatus,
|
|
24
|
-
validateSchemaYaml: () => validateSchemaYaml,
|
|
25
|
-
validateRoleMapping: () => validateRoleMapping,
|
|
26
|
-
validateRoadmap: () => validateRoadmap,
|
|
27
|
-
validateResidual: () => validateResidual,
|
|
28
|
-
validateProjectRegister: () => validateProjectRegister,
|
|
29
|
-
validatePrReviewReport: () => validatePrReviewReport,
|
|
30
|
-
validatePlanRow: () => validatePlanRow,
|
|
31
|
-
validateMstarReviewV1: () => validateMstarReviewV1,
|
|
32
|
-
validateIntegrationMergeLease: () => validateIntegrationMergeLease,
|
|
33
|
-
validateGitignore: () => validateGitignore,
|
|
34
|
-
validateFindingDoc: () => validateFindingDoc,
|
|
35
|
-
validateExecutionLease: () => validateExecutionLease,
|
|
36
|
-
validateDesignTokenFrontmatter: () => validateDesignTokenFrontmatter,
|
|
37
|
-
validateCompassFrontmatter: () => validateCompassFrontmatter,
|
|
38
|
-
validateAuditStatusBlocks: () => validateAuditStatusBlocks,
|
|
39
|
-
validateAssignmentFields: () => validateAssignmentFields,
|
|
40
|
-
unregisterWorkflow: () => unregisterWorkflow,
|
|
41
|
-
techDebtRollup: () => techDebtRollup,
|
|
42
|
-
taskReportExists: () => taskReportExists,
|
|
43
|
-
taskBrief: () => taskBrief,
|
|
44
|
-
synthesizeReview: () => synthesizeReview,
|
|
45
|
-
supplyChainChecks: () => supplyChainChecks,
|
|
46
|
-
stripFrontmatter: () => stripFrontmatter,
|
|
47
|
-
singleReviewSnapshot: () => singleReviewSnapshot,
|
|
48
|
-
setArtifactStore: () => setArtifactStore,
|
|
49
|
-
sddWorkspace: () => sddWorkspace,
|
|
50
|
-
scopeGuard: () => scopeGuard,
|
|
51
|
-
scanSecrets: () => scanSecrets,
|
|
52
|
-
scaffoldHarness: () => scaffoldHarness,
|
|
53
|
-
scaffoldAuditPlan: () => scaffoldAuditPlan,
|
|
54
|
-
sameHolderResume: () => sameHolderResume,
|
|
55
|
-
reviewPackage: () => reviewPackage,
|
|
56
|
-
resolveWorkflowDir: () => resolveWorkflowDir,
|
|
57
|
-
resolveSpecsDir: () => resolveSpecsDir,
|
|
58
|
-
resolveSkillRoot: () => resolveSkillRoot,
|
|
59
|
-
resolveSddDir: () => resolveSddDir,
|
|
60
|
-
resolveScaffoldDirs: () => resolveScaffoldDirs,
|
|
61
|
-
resolveRepoEnforcement: () => resolveRepoEnforcement,
|
|
62
|
-
resolveProjectRoot: () => resolveProjectRoot,
|
|
63
|
-
resolveProjectDir: () => resolveProjectDir,
|
|
64
|
-
resolvePrReviewTier: () => resolvePrReviewTier,
|
|
65
|
-
resolvePlanDir: () => resolvePlanDir,
|
|
66
|
-
resolveMstarcEnforcement: () => resolveMstarcEnforcement,
|
|
67
|
-
resolveKnowledgeDir: () => resolveKnowledgeDir,
|
|
68
|
-
resolveIterationDir: () => resolveIterationDir,
|
|
69
|
-
resolveHarnessDir: () => resolveHarnessDir,
|
|
70
|
-
resolveCompassEnforcement: () => resolveCompassEnforcement,
|
|
71
|
-
resolveAssetPath: () => resolveAssetPath,
|
|
72
|
-
resolveArtifactPath: () => resolveArtifactPath,
|
|
73
|
-
releaseLease: () => releaseLease,
|
|
74
|
-
registerWorkflow: () => registerWorkflow,
|
|
75
|
-
referenceExists: () => referenceExists,
|
|
76
|
-
readProgressLedger: () => readProgressLedger,
|
|
77
|
-
readJson: () => readJson,
|
|
78
|
-
readHarnessVersion: () => readHarnessVersion,
|
|
79
|
-
pushCadenceProbe: () => pushCadenceProbe,
|
|
80
|
-
promoteAuditPlans: () => promoteAuditPlans,
|
|
81
|
-
preflightChangeset: () => preflightChangeset,
|
|
82
|
-
prReviewSizing: () => prReviewSizing,
|
|
83
|
-
prReviewSeatPrompt: () => prReviewSeatPrompt,
|
|
84
|
-
prReviewReportPath: () => prReviewReportPath,
|
|
85
|
-
planReviewPost: () => planReviewPost,
|
|
86
|
-
planQualityBar: () => planQualityBar,
|
|
87
|
-
planExecutionLeaseLocations: () => planExecutionLeaseLocations,
|
|
88
|
-
pickReviewBranchName: () => pickReviewBranchName,
|
|
89
|
-
parseMstarc: () => parseMstarc,
|
|
90
|
-
parseEnforcementFlag: () => parseEnforcementFlag,
|
|
91
|
-
parseDesignFrontmatter: () => parseDesignFrontmatter,
|
|
92
|
-
parseCompassFrontmatterText: () => parseCompassFrontmatterText,
|
|
93
|
-
parseCompassFrontmatter: () => parseCompassFrontmatter,
|
|
94
|
-
parseBranchPolicyDirectOnBranch: () => parseBranchPolicyDirectOnBranch,
|
|
95
|
-
parseAssignmentFields: () => parseAssignmentFields,
|
|
96
|
-
parseAssignmentBranchForms: () => parseAssignmentBranchForms,
|
|
97
|
-
normalizeSeverity: () => normalizeSeverity,
|
|
98
|
-
migrateHarnessTree: () => migrateHarnessTree,
|
|
99
|
-
loadStoreModule: () => loadStoreModule,
|
|
100
|
-
listProjectReferenceFiles: () => listProjectReferenceFiles,
|
|
101
|
-
lintStrategySections: () => lintStrategySections,
|
|
102
|
-
lintSkillFrontmatter: () => lintSkillFrontmatter,
|
|
103
|
-
lintLoadOrder: () => lintLoadOrder,
|
|
104
|
-
lintFrontmatter: () => lintSkillFrontmatter,
|
|
105
|
-
lintFiveQuestion: () => lintFiveQuestion,
|
|
106
|
-
l2PreDispatchCheck: () => l2PreDispatchCheck,
|
|
107
|
-
l1PreDispatchCheck: () => l1PreDispatchCheck,
|
|
108
|
-
isReadOnlyAssignmentRole: () => isReadOnlyAssignmentRole,
|
|
109
|
-
implementerSessionStickyRules: () => implementerSessionStickyRules,
|
|
110
|
-
getArtifactStore: () => getArtifactStore,
|
|
111
|
-
findingsCleanupGate: () => findingsCleanupGate,
|
|
112
|
-
findTemporaryMarkers: () => findTemporaryMarkers,
|
|
113
|
-
findSimplifyMarkers: () => findSimplifyMarkers,
|
|
114
|
-
findMstarc: () => findMstarc,
|
|
115
|
-
findEphemeralCitations: () => findEphemeralCitations,
|
|
116
|
-
executionModeToN: () => executionModeToN,
|
|
117
|
-
evaluatePhaseGate: () => evaluatePhaseGate,
|
|
118
|
-
emitGitignoreSnippet: () => emitGitignoreSnippet,
|
|
119
|
-
detectHost: () => detectHost,
|
|
120
|
-
detectHarnessKind: () => detectHarnessKind,
|
|
121
|
-
createFsStore: () => createFsStore,
|
|
122
|
-
computePrTally: () => computePrTally,
|
|
123
|
-
compoundRefreshScope: () => compoundRefreshScope,
|
|
124
|
-
composeDispatchGate: () => composeDispatchGate,
|
|
125
|
-
completenessLevel: () => completenessLevel,
|
|
126
|
-
closeProjectRegisterEntry: () => closeProjectRegisterEntry,
|
|
127
|
-
claimLease: () => claimLease,
|
|
128
|
-
canSteal: () => canSteal,
|
|
129
|
-
assignmentHeaderRegion: () => assignmentHeaderRegion,
|
|
130
|
-
assertTriIdentity: () => assertTriIdentity,
|
|
131
|
-
assertSddTddTriple: () => assertSddTddTriple,
|
|
132
|
-
assertQcAlignment: () => assertQcAlignment,
|
|
133
|
-
assertPlanWritingPath: () => assertPlanWritingPath,
|
|
134
|
-
assertLightDarkParity: () => assertLightDarkParity,
|
|
135
|
-
assertIndexRows: () => assertIndexRows,
|
|
136
|
-
assertIndexRowObligations: () => assertIndexRowObligations,
|
|
137
|
-
assertFsStorePath: () => assertFsStorePath,
|
|
138
|
-
assertDefaultBranchProtected: () => assertDefaultBranchProtected,
|
|
139
|
-
assertControlVsFeaturePath: () => assertControlVsFeaturePath,
|
|
140
|
-
assertBranchAlignment: () => assertBranchAlignment,
|
|
141
|
-
assertBaseSha: () => assertBaseSha,
|
|
142
|
-
applyMigratePlan: () => applyMigratePlan,
|
|
143
|
-
applyEnforcement: () => applyEnforcement,
|
|
144
|
-
appendProjectRegisterEntries: () => appendProjectRegisterEntries,
|
|
145
|
-
antiRecursionPrecheck: () => antiRecursionPrecheck,
|
|
146
|
-
_DEFAULT_PROJECT: () => _DEFAULT_PROJECT,
|
|
147
|
-
WORKFLOW_TERMINAL_STATUSES: () => WORKFLOW_TERMINAL_STATUSES,
|
|
148
|
-
WORKFLOW_SNAPSHOT_FILE: () => WORKFLOW_SNAPSHOT_FILE,
|
|
149
|
-
WORKFLOW_LIFECYCLE_TYPES: () => WORKFLOW_LIFECYCLE_TYPES,
|
|
150
|
-
WORKFLOW_LIFECYCLE_STATUSES: () => WORKFLOW_LIFECYCLE_STATUSES,
|
|
151
|
-
SddScriptError: () => SddScriptError,
|
|
152
|
-
SHARED_FAMILIES: () => SHARED_FAMILIES,
|
|
153
|
-
SEVERITY_ORDER: () => SEVERITY_ORDER,
|
|
154
|
-
RUNTIME_HEADING_ALIASES: () => RUNTIME_HEADING_ALIASES,
|
|
155
|
-
ROLE_MAPPING: () => ROLE_MAPPING,
|
|
156
|
-
ROADMAP_STATUSES: () => ROADMAP_STATUSES,
|
|
157
|
-
REVIEW_EMOJI: () => REVIEW_EMOJI,
|
|
158
|
-
QC_REVIEWER_PARAMS: () => QC_REVIEWER_PARAMS,
|
|
159
|
-
PR_VERDICTS: () => PR_VERDICTS,
|
|
160
|
-
PROJECT_ROADMAP_FILE: () => PROJECT_ROADMAP_FILE,
|
|
161
|
-
PROJECT_REGISTER_FILE: () => PROJECT_REGISTER_FILE,
|
|
162
|
-
PROJECT_REFERENCES_DIR: () => PROJECT_REFERENCES_DIR,
|
|
163
|
-
NOTES_LEDGER_FILE: () => NOTES_LEDGER_FILE,
|
|
164
|
-
MSTARC_WORKFLOW_DIR_KEY: () => MSTARC_WORKFLOW_DIR_KEY,
|
|
165
|
-
MSTARC_SECTION: () => MSTARC_SECTION,
|
|
166
|
-
MSTARC_PROJECT_DIR_KEY: () => MSTARC_PROJECT_DIR_KEY,
|
|
167
|
-
MSTARC_HARNESS_DIR_KEY: () => MSTARC_HARNESS_DIR_KEY,
|
|
168
|
-
MSTARC_FILE: () => MSTARC_FILE,
|
|
169
|
-
MIGRATE_STATUS_FILE: () => MIGRATE_STATUS_FILE,
|
|
170
|
-
MERGE_CLASSES: () => MERGE_CLASSES,
|
|
171
|
-
KNOWLEDGE_SEVERITIES: () => KNOWLEDGE_SEVERITIES,
|
|
172
|
-
KNOWLEDGE_RESOLUTION_TYPES: () => KNOWLEDGE_RESOLUTION_TYPES,
|
|
173
|
-
KNOWLEDGE_REQUIRED_FIELDS: () => KNOWLEDGE_REQUIRED_FIELDS,
|
|
174
|
-
KNOWLEDGE_PROBLEM_TYPES: () => KNOWLEDGE_PROBLEM_TYPES,
|
|
175
|
-
KNOWLEDGE_KNOWLEDGE_PROBLEM_TYPES: () => KNOWLEDGE_KNOWLEDGE_PROBLEM_TYPES,
|
|
176
|
-
KNOWLEDGE_CATEGORY_MAP: () => KNOWLEDGE_CATEGORY_MAP,
|
|
177
|
-
KNOWLEDGE_BUG_PROBLEM_TYPES: () => KNOWLEDGE_BUG_PROBLEM_TYPES,
|
|
178
|
-
GIT_CAPTURE_MAX_BYTES: () => GIT_CAPTURE_MAX_BYTES,
|
|
179
|
-
FIVE_QUESTION_SECTIONS: () => FIVE_QUESTION_SECTIONS,
|
|
180
|
-
DEV_TRACK_PARAMS: () => DEV_TRACK_PARAMS,
|
|
181
|
-
AUDIT_RISKS: () => AUDIT_RISKS,
|
|
182
|
-
AUDIT_PRIORITIES: () => AUDIT_PRIORITIES,
|
|
183
|
-
AUDIT_EFFORTS: () => AUDIT_EFFORTS,
|
|
184
|
-
AUDIT_CONFIDENCES: () => AUDIT_CONFIDENCES,
|
|
20
|
+
ARCHIVED_STATUS_V1_FILE: () => ARCHIVED_STATUS_V1_FILE,
|
|
185
21
|
AUDIT_CATEGORIES: () => AUDIT_CATEGORIES,
|
|
186
|
-
|
|
22
|
+
AUDIT_CONFIDENCES: () => AUDIT_CONFIDENCES,
|
|
23
|
+
AUDIT_EFFORTS: () => AUDIT_EFFORTS,
|
|
24
|
+
AUDIT_PRIORITIES: () => AUDIT_PRIORITIES,
|
|
25
|
+
AUDIT_RISKS: () => AUDIT_RISKS,
|
|
26
|
+
DEV_TRACK_PARAMS: () => DEV_TRACK_PARAMS,
|
|
27
|
+
FIVE_QUESTION_SECTIONS: () => FIVE_QUESTION_SECTIONS,
|
|
28
|
+
GIT_CAPTURE_MAX_BYTES: () => GIT_CAPTURE_MAX_BYTES,
|
|
29
|
+
KNOWLEDGE_BUG_PROBLEM_TYPES: () => KNOWLEDGE_BUG_PROBLEM_TYPES,
|
|
30
|
+
KNOWLEDGE_CATEGORY_MAP: () => KNOWLEDGE_CATEGORY_MAP,
|
|
31
|
+
KNOWLEDGE_KNOWLEDGE_PROBLEM_TYPES: () => KNOWLEDGE_KNOWLEDGE_PROBLEM_TYPES,
|
|
32
|
+
KNOWLEDGE_PROBLEM_TYPES: () => KNOWLEDGE_PROBLEM_TYPES,
|
|
33
|
+
KNOWLEDGE_REQUIRED_FIELDS: () => KNOWLEDGE_REQUIRED_FIELDS,
|
|
34
|
+
KNOWLEDGE_RESOLUTION_TYPES: () => KNOWLEDGE_RESOLUTION_TYPES,
|
|
35
|
+
KNOWLEDGE_SEVERITIES: () => KNOWLEDGE_SEVERITIES,
|
|
36
|
+
MERGE_CLASSES: () => MERGE_CLASSES,
|
|
37
|
+
MIGRATE_STATUS_FILE: () => MIGRATE_STATUS_FILE,
|
|
38
|
+
MSTARC_FILE: () => MSTARC_FILE,
|
|
39
|
+
MSTARC_HARNESS_DIR_KEY: () => MSTARC_HARNESS_DIR_KEY,
|
|
40
|
+
MSTARC_PROJECT_DIR_KEY: () => MSTARC_PROJECT_DIR_KEY,
|
|
41
|
+
MSTARC_SECTION: () => MSTARC_SECTION,
|
|
42
|
+
MSTARC_WORKFLOW_DIR_KEY: () => MSTARC_WORKFLOW_DIR_KEY,
|
|
43
|
+
NOTES_LEDGER_FILE: () => NOTES_LEDGER_FILE,
|
|
44
|
+
PROJECT_REFERENCES_DIR: () => PROJECT_REFERENCES_DIR,
|
|
45
|
+
PROJECT_REGISTER_FILE: () => PROJECT_REGISTER_FILE,
|
|
46
|
+
PROJECT_ROADMAP_FILE: () => PROJECT_ROADMAP_FILE,
|
|
47
|
+
PR_VERDICTS: () => PR_VERDICTS,
|
|
48
|
+
QC_REVIEWER_PARAMS: () => QC_REVIEWER_PARAMS,
|
|
49
|
+
REVIEW_EMOJI: () => REVIEW_EMOJI,
|
|
50
|
+
ROADMAP_STATUSES: () => ROADMAP_STATUSES,
|
|
51
|
+
ROLE_MAPPING: () => ROLE_MAPPING,
|
|
52
|
+
RUNTIME_HEADING_ALIASES: () => RUNTIME_HEADING_ALIASES,
|
|
53
|
+
SEVERITY_ORDER: () => SEVERITY_ORDER,
|
|
54
|
+
SHARED_FAMILIES: () => SHARED_FAMILIES,
|
|
55
|
+
SddScriptError: () => SddScriptError,
|
|
56
|
+
WORKFLOW_LIFECYCLE_STATUSES: () => WORKFLOW_LIFECYCLE_STATUSES,
|
|
57
|
+
WORKFLOW_LIFECYCLE_TYPES: () => WORKFLOW_LIFECYCLE_TYPES,
|
|
58
|
+
WORKFLOW_SNAPSHOT_FILE: () => WORKFLOW_SNAPSHOT_FILE,
|
|
59
|
+
WORKFLOW_TERMINAL_STATUSES: () => WORKFLOW_TERMINAL_STATUSES,
|
|
60
|
+
_DEFAULT_PROJECT: () => _DEFAULT_PROJECT,
|
|
61
|
+
antiRecursionPrecheck: () => antiRecursionPrecheck,
|
|
62
|
+
appendProjectRegisterEntries: () => appendProjectRegisterEntries,
|
|
63
|
+
applyEnforcement: () => applyEnforcement,
|
|
64
|
+
applyMigratePlan: () => applyMigratePlan,
|
|
65
|
+
assertBaseSha: () => assertBaseSha,
|
|
66
|
+
assertBranchAlignment: () => assertBranchAlignment,
|
|
67
|
+
assertControlVsFeaturePath: () => assertControlVsFeaturePath,
|
|
68
|
+
assertDefaultBranchProtected: () => assertDefaultBranchProtected,
|
|
69
|
+
assertFsStorePath: () => assertFsStorePath,
|
|
70
|
+
assertIndexRowObligations: () => assertIndexRowObligations,
|
|
71
|
+
assertIndexRows: () => assertIndexRows,
|
|
72
|
+
assertLightDarkParity: () => assertLightDarkParity,
|
|
73
|
+
assertPlanWritingPath: () => assertPlanWritingPath,
|
|
74
|
+
assertQcAlignment: () => assertQcAlignment,
|
|
75
|
+
assertSddTddTriple: () => assertSddTddTriple,
|
|
76
|
+
assertTriIdentity: () => assertTriIdentity,
|
|
77
|
+
assignmentHeaderRegion: () => assignmentHeaderRegion,
|
|
78
|
+
canSteal: () => canSteal,
|
|
79
|
+
claimLease: () => claimLease,
|
|
80
|
+
closeProjectRegisterEntry: () => closeProjectRegisterEntry,
|
|
81
|
+
completenessLevel: () => completenessLevel,
|
|
82
|
+
composeDispatchGate: () => composeDispatchGate,
|
|
83
|
+
compoundRefreshScope: () => compoundRefreshScope,
|
|
84
|
+
computePrTally: () => computePrTally,
|
|
85
|
+
createFsStore: () => createFsStore,
|
|
86
|
+
detectHarnessKind: () => detectHarnessKind,
|
|
87
|
+
detectHost: () => detectHost,
|
|
88
|
+
emitGitignoreSnippet: () => emitGitignoreSnippet,
|
|
89
|
+
evaluatePhaseGate: () => evaluatePhaseGate,
|
|
90
|
+
executionModeToN: () => executionModeToN,
|
|
91
|
+
findEphemeralCitations: () => findEphemeralCitations,
|
|
92
|
+
findMstarc: () => findMstarc,
|
|
93
|
+
findSimplifyMarkers: () => findSimplifyMarkers,
|
|
94
|
+
findTemporaryMarkers: () => findTemporaryMarkers,
|
|
95
|
+
findingsCleanupGate: () => findingsCleanupGate,
|
|
96
|
+
getArtifactStore: () => getArtifactStore,
|
|
97
|
+
implementerSessionStickyRules: () => implementerSessionStickyRules,
|
|
98
|
+
isReadOnlyAssignmentRole: () => isReadOnlyAssignmentRole,
|
|
99
|
+
l1PreDispatchCheck: () => l1PreDispatchCheck,
|
|
100
|
+
l2PreDispatchCheck: () => l2PreDispatchCheck,
|
|
101
|
+
lintFiveQuestion: () => lintFiveQuestion,
|
|
102
|
+
lintFrontmatter: () => lintSkillFrontmatter,
|
|
103
|
+
lintLoadOrder: () => lintLoadOrder,
|
|
104
|
+
lintSkillFrontmatter: () => lintSkillFrontmatter,
|
|
105
|
+
lintStrategySections: () => lintStrategySections,
|
|
106
|
+
listProjectReferenceFiles: () => listProjectReferenceFiles,
|
|
107
|
+
loadStoreModule: () => loadStoreModule,
|
|
108
|
+
migrateHarnessTree: () => migrateHarnessTree,
|
|
109
|
+
normalizeSeverity: () => normalizeSeverity,
|
|
110
|
+
parseAssignmentBranchForms: () => parseAssignmentBranchForms,
|
|
111
|
+
parseAssignmentFields: () => parseAssignmentFields,
|
|
112
|
+
parseBranchPolicyDirectOnBranch: () => parseBranchPolicyDirectOnBranch,
|
|
113
|
+
parseCompassFrontmatter: () => parseCompassFrontmatter,
|
|
114
|
+
parseCompassFrontmatterText: () => parseCompassFrontmatterText,
|
|
115
|
+
parseDesignFrontmatter: () => parseDesignFrontmatter,
|
|
116
|
+
parseEnforcementFlag: () => parseEnforcementFlag,
|
|
117
|
+
parseMstarc: () => parseMstarc,
|
|
118
|
+
pickReviewBranchName: () => pickReviewBranchName,
|
|
119
|
+
planExecutionLeaseLocations: () => planExecutionLeaseLocations,
|
|
120
|
+
planQualityBar: () => planQualityBar,
|
|
121
|
+
planReviewPost: () => planReviewPost,
|
|
122
|
+
prReviewReportPath: () => prReviewReportPath,
|
|
123
|
+
prReviewSeatPrompt: () => prReviewSeatPrompt,
|
|
124
|
+
prReviewSizing: () => prReviewSizing,
|
|
125
|
+
preflightChangeset: () => preflightChangeset,
|
|
126
|
+
promoteAuditPlans: () => promoteAuditPlans,
|
|
127
|
+
pushCadenceProbe: () => pushCadenceProbe,
|
|
128
|
+
readHarnessVersion: () => readHarnessVersion,
|
|
129
|
+
readJson: () => readJson,
|
|
130
|
+
readProgressLedger: () => readProgressLedger,
|
|
131
|
+
referenceExists: () => referenceExists,
|
|
132
|
+
registerWorkflow: () => registerWorkflow,
|
|
133
|
+
releaseLease: () => releaseLease,
|
|
134
|
+
resolveArtifactPath: () => resolveArtifactPath,
|
|
135
|
+
resolveAssetPath: () => resolveAssetPath,
|
|
136
|
+
resolveCompassEnforcement: () => resolveCompassEnforcement,
|
|
137
|
+
resolveHarnessDir: () => resolveHarnessDir,
|
|
138
|
+
resolveIterationDir: () => resolveIterationDir,
|
|
139
|
+
resolveKnowledgeDir: () => resolveKnowledgeDir,
|
|
140
|
+
resolveMstarcEnforcement: () => resolveMstarcEnforcement,
|
|
141
|
+
resolvePlanDir: () => resolvePlanDir,
|
|
142
|
+
resolvePrReviewTier: () => resolvePrReviewTier,
|
|
143
|
+
resolveProjectDir: () => resolveProjectDir,
|
|
144
|
+
resolveProjectRoot: () => resolveProjectRoot,
|
|
145
|
+
resolveRepoEnforcement: () => resolveRepoEnforcement,
|
|
146
|
+
resolveScaffoldDirs: () => resolveScaffoldDirs,
|
|
147
|
+
resolveSddDir: () => resolveSddDir,
|
|
148
|
+
resolveSkillRoot: () => resolveSkillRoot,
|
|
149
|
+
resolveSpecsDir: () => resolveSpecsDir,
|
|
150
|
+
resolveWorkflowDir: () => resolveWorkflowDir,
|
|
151
|
+
reviewPackage: () => reviewPackage,
|
|
152
|
+
sameHolderResume: () => sameHolderResume,
|
|
153
|
+
scaffoldAuditPlan: () => scaffoldAuditPlan,
|
|
154
|
+
scaffoldHarness: () => scaffoldHarness,
|
|
155
|
+
scanSecrets: () => scanSecrets,
|
|
156
|
+
scopeGuard: () => scopeGuard,
|
|
157
|
+
sddWorkspace: () => sddWorkspace,
|
|
158
|
+
setArtifactStore: () => setArtifactStore,
|
|
159
|
+
singleReviewSnapshot: () => singleReviewSnapshot,
|
|
160
|
+
stripFrontmatter: () => stripFrontmatter,
|
|
161
|
+
supplyChainChecks: () => supplyChainChecks,
|
|
162
|
+
synthesizeReview: () => synthesizeReview,
|
|
163
|
+
taskBrief: () => taskBrief,
|
|
164
|
+
taskReportExists: () => taskReportExists,
|
|
165
|
+
techDebtRollup: () => techDebtRollup,
|
|
166
|
+
unregisterWorkflow: () => unregisterWorkflow,
|
|
167
|
+
validateAssignmentFields: () => validateAssignmentFields,
|
|
168
|
+
validateAuditStatusBlocks: () => validateAuditStatusBlocks,
|
|
169
|
+
validateCompassFrontmatter: () => validateCompassFrontmatter,
|
|
170
|
+
validateDesignTokenFrontmatter: () => validateDesignTokenFrontmatter,
|
|
171
|
+
validateExecutionLease: () => validateExecutionLease,
|
|
172
|
+
validateFindingDoc: () => validateFindingDoc,
|
|
173
|
+
validateGitignore: () => validateGitignore,
|
|
174
|
+
validateIntegrationMergeLease: () => validateIntegrationMergeLease,
|
|
175
|
+
validateMstarReviewV1: () => validateMstarReviewV1,
|
|
176
|
+
validatePlanRow: () => validatePlanRow,
|
|
177
|
+
validatePrReviewReport: () => validatePrReviewReport,
|
|
178
|
+
validateProjectRegister: () => validateProjectRegister,
|
|
179
|
+
validateResidual: () => validateResidual,
|
|
180
|
+
validateRoadmap: () => validateRoadmap,
|
|
181
|
+
validateRoleMapping: () => validateRoleMapping,
|
|
182
|
+
validateSchemaYaml: () => validateSchemaYaml,
|
|
183
|
+
validateStatus: () => validateStatus,
|
|
184
|
+
validateStatusV2: () => validateStatusV2,
|
|
185
|
+
validateWorkflowEntry: () => validateWorkflowEntry,
|
|
186
|
+
validateWorkflowSnapshot: () => validateWorkflowSnapshot,
|
|
187
|
+
verifyPlanExecutionLease: () => verifyPlanExecutionLease,
|
|
188
|
+
withStatusWriteLock: () => withStatusWriteLock,
|
|
189
|
+
writeJson: () => writeJson,
|
|
190
|
+
writeWorkflowSnapshot: () => writeWorkflowSnapshot
|
|
187
191
|
});
|
|
188
192
|
import { existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
|
|
189
193
|
import { randomUUID } from "node:crypto";
|
|
@@ -6710,12 +6714,12 @@ var mstar_default = {
|
|
|
6710
6714
|
server: MorningStarHarnessPlugin
|
|
6711
6715
|
};
|
|
6712
6716
|
export {
|
|
6713
|
-
|
|
6714
|
-
validateDispatchAssignment,
|
|
6715
|
-
newValidatorsLoader,
|
|
6716
|
-
loadNewValidators,
|
|
6717
|
-
loadDirResolvers,
|
|
6718
|
-
dirResolversLoader,
|
|
6717
|
+
MorningStarHarnessPlugin,
|
|
6719
6718
|
mstar_default as default,
|
|
6720
|
-
|
|
6719
|
+
dirResolversLoader,
|
|
6720
|
+
loadDirResolvers,
|
|
6721
|
+
loadNewValidators,
|
|
6722
|
+
newValidatorsLoader,
|
|
6723
|
+
validateDispatchAssignment,
|
|
6724
|
+
validateStatusWrite
|
|
6721
6725
|
};
|
|
@@ -8,17 +8,17 @@ Parallel PM dispatch: read **`parallel-dispatch.md`** when dispatching **N ≥ 2
|
|
|
8
8
|
|
|
9
9
|
## omp-only context
|
|
10
10
|
|
|
11
|
-
- Plugin markers: **`.omp-plugin/plugin.json`** (Morning Star host marker) and **`.claude-plugin/plugin.json`** (Claude-compatible marketplace discovery).
|
|
12
|
-
- Runtime skills: repo `skills/` discovered after `omp plugin install` / `omp plugin link` (OMP extension-package sub-discovery) or Claude marketplace install.
|
|
13
|
-
- Plugin commands:
|
|
14
|
-
- Plugin agents:
|
|
11
|
+
- Plugin markers: **`.omp-plugin/plugin.json`** (Morning Star host marker) and **`.claude-plugin/plugin.json`** (Claude-compatible marketplace discovery). The **npm package** (`@mstar-harness/omp`) ships its own package-root `plugin.json` + `skills/` + `commands/` + `agents/` + `hooks/` + `tools/` mirrors; the **maintainer link path** is now `<repo>/packages/omp` (built) — hooks/tools moved into the package (2026-09-03), so linking the repo root provides skills/commands/agents only, with NO runtime gates.
|
|
12
|
+
- Runtime skills: package `skills/` (or repo `skills/` on the link path) discovered after `omp plugin install` / `omp plugin link` (OMP extension-package sub-discovery) or Claude marketplace install.
|
|
13
|
+
- Plugin commands: `commands/<name>.md` → slash **`/<name>`** (e.g. `/iteration-start`). omp uses the **filename** as the command name (no `morning-star-harness:` prefix).
|
|
14
|
+
- Plugin agents: **`agents/*.md`** are discovered into the live **`task.agent`** list after install/link + reload. Morning Star **subagent** role ids (`product-manager`, `architect`, `fullstack-dev`, `qc-specialist`, …) are valid `agent` values **when listed** — see C5. `project-manager` is **`mode: primary`** (orchestration seat), not a typical `task` dispatch target.
|
|
15
15
|
- **No Kimi-style `sessionStart.skill`** — enter PM manually via **`/skill:pm`** (or the `pm` skill), then **Read next** → `mstar-harness-core` → `project-manager.md`.
|
|
16
16
|
- Install (user-scoped, recommended):
|
|
17
|
-
- `omp plugin install
|
|
17
|
+
- `omp plugin install @mstar-harness/omp`
|
|
18
18
|
- or CLI: `npx @mstar-harness/cli init --target omp --scope global` (links `~/.mstar/harness`)
|
|
19
|
-
- Project scope: `omp plugin install
|
|
20
|
-
- Local maintainers: `omp plugin link /path/to/mstar-harness` (or the CLI-managed `~/.mstar/harness` checkout).
|
|
21
|
-
- After install/link: `omp plugin list` should show package **`morning-star`** (root `package.json` name). Reload / new session to pick up skills, commands, and agents.
|
|
19
|
+
- Project scope: `omp plugin install @mstar-harness/omp --scope project` or `npx @mstar-harness/cli init --target omp --scope project`.
|
|
20
|
+
- Local maintainers: `omp plugin link /path/to/mstar-harness/packages/omp` (or the CLI-managed `~/.mstar/harness/packages/omp` checkout) — the linked package tree resolves the engine via the workspace member, so run `bun install && bun run engine:build && bun run --cwd packages/omp build` in the checkout first. Linking the repo root no longer provides the runtime gates (hooks/tools moved into the package); the npm install stays the primary path.
|
|
21
|
+
- After install/link: `omp plugin list` should show package **`@mstar-harness/omp`** (npm) or **`morning-star`** (root `package.json` name, link path). Reload / new session to pick up skills, commands, and agents.
|
|
22
22
|
|
|
23
23
|
## Skill loading
|
|
24
24
|
|
|
@@ -210,10 +210,10 @@ Cannot emit required **N** → **`Blocked`**.
|
|
|
210
210
|
|
|
211
211
|
## In-process engine binding (omp ≥ 17.2.11)
|
|
212
212
|
|
|
213
|
-
- **Surfaces** (
|
|
213
|
+
- **Surfaces** (npm package root = plugin root; sources live in `packages/omp/src/`): `hooks/pre/mstar-gates.js` — one `tool_call` pre-hook that returns `{ block: true, reason }` (structured refusal the model sees as the tool error) or `undefined` (pass); `tools/mstar_{status_validate,dispatch_validate,lease_verify,path_resolve,iteration_gate,worktree_check}.js` — six model-callable validator tools (engine validators only, Zod params via `pi.zod`). omp discovers these by convention from the installed package root (`<pkg>/hooks/pre/` any file, `<pkg>/tools/` direct `*.js` files — the sub-directory scan only accepts `tools/<name>/index.ts`), not from `dist/`.
|
|
214
214
|
|- **Enforcement semantics**: block ONLY under `Enforcement: hard`. Both gates read the repo `.mstarc` `[config] enforcement`, else the harness compass frontmatter (`enforcement: hard`, active/locked iterations only); the dispatch gate ALSO honors each Assignment's own header flag (`assignmentHeaderRegion` — a body example never hardens). A hard repo setting therefore hardens flag-less dispatches (Gate 1 / dsh `resolveDispatchHard` parity). Soft-mode dispatch violations are warn-logged through the extension logger (never blocked); soft status-write violations stay a silent pass. Rollback = unset the flag (or `.mstarc` `soft`). Never global.
|
|
215
215
|
- **Anti-recursion scope (issue #156)**: the engine's `antiRecursionPrecheck` is **caller-scoped** — it compares the DISPATCHING agent's own role against the new Assignment's `Execute as`. omp's `tool_call` event carries no caller identity and the task entry `agent` is the spawn TARGET, which equals `Execute as` on every compliant dispatch (C5 above) — so Gate 2 does NOT run the precheck on omp (the pre-#156 wiring hard-blocked every compliant hard-mode dispatch on `self-type`, or on `empty-binding` when `agent` was omitted). The NEVER red line stays prompt-level on this host (`mstar-dispatch-gates`); dsh enforces it in-engine via Config `dispatchBinding`.
|
|
216
|
-
- **Engine dependency**: the
|
|
216
|
+
- **Engine dependency**: the npm package **bundles the engine inline** into every hook/tool bundle at build time — zero runtime package resolution, so module link can never fail on a missing package (the 2026-09-03 hotfix for the bare-import load failure). The maintainer `omp plugin link` path (now `<repo>/packages/omp`) still resolves the engine via the workspace member — run `bun install && bun run engine:build && bun run --cwd packages/omp build` in the checkout first (the member's `dist/` and the package's generated mirrors are gitignored).
|
|
217
217
|
- **Graceful degradation (explicit)**: module load failure → `mstar_*` tools skipped, hook absent (no blocking), `commands/*.md` shell-out fallback intact. Caveat: a partial failure is SILENT — no in-band signal that gates are off; verify with `omp -p '/extensions'`.
|
|
218
218
|
|- **`MSTAR_HARNESS_DIR` override / `.mstarc`**: the hook and tools discover `{HARNESS_DIR}` via `resolveHarnessDir` — a repo `.mstarc` `[config] harness_dir` (gitignored local config) first, then the probe `.mstar/` → `.agents/` → `.plans/`/`plans/`. Repos using a non-standard harness root can declare it in `.mstarc` or MUST export `MSTAR_HARNESS_DIR` (absolute path) in the omp session env — without either the status gate does not cover those roots and tools like `mstar_path_resolve` / `mstar_lease_verify` error out (parity with the opencode binding).
|
|
219
219
|
- **Edit-path limitation**: the status gate validates the on-disk file for `edit` events (pre-edit state) — a corrupting edit is caught by the next write or `mstar_status_validate` (known v1 limitation, parity with opencode).
|
|
@@ -234,7 +234,7 @@ Cannot emit required **N** → **`Blocked`**.
|
|
|
234
234
|
|
|
235
235
|
## Gotchas
|
|
236
236
|
|
|
237
|
-
- Installed npm
|
|
237
|
+
- Installed npm plugin package name is **`@mstar-harness/omp`** (git/link path: root **`morning-star`**); Morning Star display name remains **morning-star-harness**.
|
|
238
238
|
- Marketplace (Claude) installs and `omp plugin install` are different discovery providers — prefer one install path per machine to avoid duplicate skill listings.
|
|
239
239
|
- Session plan UI / todos are not durable SSOT unless mirrored to `{HARNESS_DIR}`.
|
|
240
240
|
- After install/link, **reload / new session** so `agents/*.md` appear in the live `task.agent` list — stale sessions may only show host generics and wrongly push you to `agent: "task"`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mstar-harness/opencode",
|
|
3
|
-
"version": "3.6.0
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Morning Star harness OpenCode plugin — skills bootstrap + engine-backed runtime hooks (status lint, dispatch validation, Enforcement: hard gates).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|