mustflow 2.22.17 → 2.22.47

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 (70) hide show
  1. package/README.md +6 -0
  2. package/dist/cli/commands/api.js +874 -0
  3. package/dist/cli/commands/dashboard.js +51 -4
  4. package/dist/cli/commands/explain.js +3 -2
  5. package/dist/cli/commands/help.js +0 -1
  6. package/dist/cli/commands/run.js +41 -4
  7. package/dist/cli/commands/verify.js +4 -43
  8. package/dist/cli/i18n/en.js +15 -0
  9. package/dist/cli/i18n/es.js +15 -0
  10. package/dist/cli/i18n/fr.js +15 -0
  11. package/dist/cli/i18n/hi.js +15 -0
  12. package/dist/cli/i18n/ko.js +15 -0
  13. package/dist/cli/i18n/zh.js +15 -0
  14. package/dist/cli/index.js +1 -0
  15. package/dist/cli/lib/cli-output.js +1 -1
  16. package/dist/cli/lib/command-registry.js +6 -0
  17. package/dist/cli/lib/dashboard-html/client-script.js +9 -0
  18. package/dist/cli/lib/dashboard-html/styles.js +48 -1
  19. package/dist/cli/lib/doc-review-ledger.js +1 -1
  20. package/dist/cli/lib/local-index/index.js +324 -298
  21. package/dist/cli/lib/repo-map.js +19 -5
  22. package/dist/cli/lib/validation/index.js +6 -2
  23. package/dist/core/active-run-locks.js +36 -8
  24. package/dist/core/atomic-state-write.js +5 -20
  25. package/dist/core/change-verification.js +18 -2
  26. package/dist/core/contract-lint.js +3 -3
  27. package/dist/core/public-json-contracts.js +48 -0
  28. package/dist/core/repeated-failure.js +1 -1
  29. package/dist/core/run-write-drift.js +30 -17
  30. package/dist/core/safe-filesystem.js +54 -5
  31. package/dist/core/skill-route-explanation.js +2 -1
  32. package/dist/core/source-anchors.js +7 -3
  33. package/dist/core/validation-ratchet.js +61 -18
  34. package/dist/core/verification-decision-graph.js +8 -1
  35. package/dist/core/verification-plan-id.js +44 -0
  36. package/package.json +1 -1
  37. package/schemas/README.md +6 -0
  38. package/schemas/command-catalog.schema.json +158 -0
  39. package/schemas/diff-risk.schema.json +74 -0
  40. package/schemas/health.schema.json +45 -0
  41. package/schemas/latest-evidence.schema.json +95 -0
  42. package/schemas/verification-plan.schema.json +245 -0
  43. package/schemas/workspace-summary.schema.json +282 -0
  44. package/templates/default/i18n.toml +139 -1
  45. package/templates/default/locales/en/.mustflow/skills/INDEX.md +24 -1
  46. package/templates/default/locales/en/.mustflow/skills/api-contract-change/SKILL.md +212 -0
  47. package/templates/default/locales/en/.mustflow/skills/astro-code-change/SKILL.md +184 -0
  48. package/templates/default/locales/en/.mustflow/skills/auth-permission-change/SKILL.md +194 -0
  49. package/templates/default/locales/en/.mustflow/skills/config-env-change/SKILL.md +189 -0
  50. package/templates/default/locales/en/.mustflow/skills/css-code-change/SKILL.md +199 -0
  51. package/templates/default/locales/en/.mustflow/skills/dart-code-change/SKILL.md +179 -0
  52. package/templates/default/locales/en/.mustflow/skills/database-migration-change/SKILL.md +178 -0
  53. package/templates/default/locales/en/.mustflow/skills/dependency-upgrade-review/SKILL.md +151 -0
  54. package/templates/default/locales/en/.mustflow/skills/elysia-code-change/SKILL.md +115 -0
  55. package/templates/default/locales/en/.mustflow/skills/file-path-cross-platform-change/SKILL.md +147 -0
  56. package/templates/default/locales/en/.mustflow/skills/flutter-code-change/SKILL.md +116 -0
  57. package/templates/default/locales/en/.mustflow/skills/go-code-change/SKILL.md +156 -0
  58. package/templates/default/locales/en/.mustflow/skills/hono-code-change/SKILL.md +117 -0
  59. package/templates/default/locales/en/.mustflow/skills/html-code-change/SKILL.md +173 -0
  60. package/templates/default/locales/en/.mustflow/skills/javascript-code-change/SKILL.md +149 -0
  61. package/templates/default/locales/en/.mustflow/skills/python-code-change/SKILL.md +154 -0
  62. package/templates/default/locales/en/.mustflow/skills/release-publish-change/SKILL.md +172 -0
  63. package/templates/default/locales/en/.mustflow/skills/routes.toml +138 -0
  64. package/templates/default/locales/en/.mustflow/skills/rust-code-change/SKILL.md +154 -0
  65. package/templates/default/locales/en/.mustflow/skills/svelte-code-change/SKILL.md +186 -0
  66. package/templates/default/locales/en/.mustflow/skills/tailwind-code-change/SKILL.md +164 -0
  67. package/templates/default/locales/en/.mustflow/skills/tauri-code-change/SKILL.md +185 -0
  68. package/templates/default/locales/en/.mustflow/skills/typescript-code-change/SKILL.md +184 -0
  69. package/templates/default/locales/en/.mustflow/skills/unocss-code-change/SKILL.md +186 -0
  70. package/templates/default/manifest.toml +158 -1
@@ -0,0 +1,245 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mustflow.github.io/schemas/verification-plan.schema.json",
4
+ "title": "mustflow verification plan API report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "command",
10
+ "mustflow_root",
11
+ "source",
12
+ "status",
13
+ "verification_plan_id",
14
+ "classification",
15
+ "requirements",
16
+ "candidates",
17
+ "gaps",
18
+ "schedule",
19
+ "test_selection",
20
+ "execution_policy",
21
+ "issues"
22
+ ],
23
+ "properties": {
24
+ "schema_version": { "const": "1" },
25
+ "command": { "const": "api verification-plan" },
26
+ "mustflow_root": { "type": "string" },
27
+ "source": { "$ref": "#/$defs/source" },
28
+ "status": { "enum": ["available", "unavailable"] },
29
+ "verification_plan_id": {
30
+ "type": ["string", "null"],
31
+ "pattern": "^sha256:[0-9a-f]{64}$"
32
+ },
33
+ "classification": {
34
+ "anyOf": [
35
+ { "type": "null" },
36
+ { "$ref": "#/$defs/classification" }
37
+ ]
38
+ },
39
+ "requirements": {
40
+ "type": "array",
41
+ "items": { "$ref": "#/$defs/requirement" }
42
+ },
43
+ "candidates": {
44
+ "type": "array",
45
+ "items": { "$ref": "#/$defs/candidate" }
46
+ },
47
+ "gaps": {
48
+ "type": "array",
49
+ "items": { "$ref": "#/$defs/gap" }
50
+ },
51
+ "schedule": {
52
+ "anyOf": [
53
+ { "type": "null" },
54
+ { "$ref": "#/$defs/schedule" }
55
+ ]
56
+ },
57
+ "test_selection": {
58
+ "anyOf": [
59
+ { "type": "null" },
60
+ { "$ref": "#/$defs/testSelection" }
61
+ ]
62
+ },
63
+ "execution_policy": { "$ref": "#/$defs/executionPolicy" },
64
+ "issues": {
65
+ "type": "array",
66
+ "items": { "type": "string" }
67
+ }
68
+ },
69
+ "$defs": {
70
+ "source": {
71
+ "type": "object",
72
+ "additionalProperties": false,
73
+ "required": ["kind", "command"],
74
+ "properties": {
75
+ "kind": { "const": "changed" },
76
+ "command": { "const": "mf verify --changed --plan-only --json" }
77
+ }
78
+ },
79
+ "stringArray": {
80
+ "type": "array",
81
+ "items": { "type": "string" }
82
+ },
83
+ "classification": {
84
+ "type": "object",
85
+ "additionalProperties": false,
86
+ "required": [
87
+ "source",
88
+ "file_count",
89
+ "files",
90
+ "validation_reasons",
91
+ "public_surface_count",
92
+ "update_policies",
93
+ "drift_checks"
94
+ ],
95
+ "properties": {
96
+ "source": { "const": "changed" },
97
+ "file_count": { "type": "integer", "minimum": 0 },
98
+ "files": { "$ref": "#/$defs/stringArray" },
99
+ "validation_reasons": { "$ref": "#/$defs/stringArray" },
100
+ "public_surface_count": { "type": "integer", "minimum": 0 },
101
+ "update_policies": { "$ref": "#/$defs/stringArray" },
102
+ "drift_checks": { "$ref": "#/$defs/stringArray" }
103
+ }
104
+ },
105
+ "requirement": {
106
+ "type": "object",
107
+ "additionalProperties": false,
108
+ "required": [
109
+ "reason",
110
+ "file_count",
111
+ "files",
112
+ "surfaces",
113
+ "affected_contracts",
114
+ "drift_checks",
115
+ "update_policies"
116
+ ],
117
+ "properties": {
118
+ "reason": { "type": "string" },
119
+ "file_count": { "type": "integer", "minimum": 0 },
120
+ "files": { "$ref": "#/$defs/stringArray" },
121
+ "surfaces": { "$ref": "#/$defs/stringArray" },
122
+ "affected_contracts": { "$ref": "#/$defs/stringArray" },
123
+ "drift_checks": { "$ref": "#/$defs/stringArray" },
124
+ "update_policies": { "$ref": "#/$defs/stringArray" }
125
+ }
126
+ },
127
+ "candidate": {
128
+ "type": "object",
129
+ "additionalProperties": false,
130
+ "required": [
131
+ "reason",
132
+ "intent",
133
+ "status",
134
+ "selection_state",
135
+ "eligibility_state",
136
+ "candidate_state",
137
+ "skip_reason",
138
+ "detail"
139
+ ],
140
+ "properties": {
141
+ "reason": { "type": "string" },
142
+ "intent": { "type": ["string", "null"] },
143
+ "status": { "type": "string" },
144
+ "selection_state": { "type": "string" },
145
+ "eligibility_state": { "type": "string" },
146
+ "candidate_state": { "type": "string" },
147
+ "skip_reason": { "type": ["string", "null"] },
148
+ "detail": { "type": ["string", "null"] }
149
+ }
150
+ },
151
+ "gap": {
152
+ "type": "object",
153
+ "additionalProperties": false,
154
+ "required": ["reason", "files", "surfaces", "detail"],
155
+ "properties": {
156
+ "reason": { "type": "string" },
157
+ "files": { "$ref": "#/$defs/stringArray" },
158
+ "surfaces": { "$ref": "#/$defs/stringArray" },
159
+ "detail": { "type": "string" }
160
+ }
161
+ },
162
+ "schedule": {
163
+ "type": "object",
164
+ "additionalProperties": false,
165
+ "required": [
166
+ "runner",
167
+ "entry_count",
168
+ "batch_count",
169
+ "selected_intents",
170
+ "entries",
171
+ "batches",
172
+ "notes"
173
+ ],
174
+ "properties": {
175
+ "runner": { "type": "string" },
176
+ "entry_count": { "type": "integer", "minimum": 0 },
177
+ "batch_count": { "type": "integer", "minimum": 0 },
178
+ "selected_intents": { "$ref": "#/$defs/stringArray" },
179
+ "entries": {
180
+ "type": "array",
181
+ "items": { "$ref": "#/$defs/scheduleEntry" }
182
+ },
183
+ "batches": {
184
+ "type": "array",
185
+ "items": { "$ref": "#/$defs/scheduleBatch" }
186
+ },
187
+ "notes": { "$ref": "#/$defs/stringArray" }
188
+ }
189
+ },
190
+ "scheduleEntry": {
191
+ "type": "object",
192
+ "additionalProperties": false,
193
+ "required": [
194
+ "intent",
195
+ "run_command",
196
+ "preview_command",
197
+ "parallel_eligible",
198
+ "parallel_reason",
199
+ "locks",
200
+ "conflict_count"
201
+ ],
202
+ "properties": {
203
+ "intent": { "type": "string" },
204
+ "run_command": { "type": ["string", "null"] },
205
+ "preview_command": { "type": ["string", "null"] },
206
+ "parallel_eligible": { "type": "boolean" },
207
+ "parallel_reason": { "type": "string" },
208
+ "locks": { "$ref": "#/$defs/stringArray" },
209
+ "conflict_count": { "type": "integer", "minimum": 0 }
210
+ }
211
+ },
212
+ "scheduleBatch": {
213
+ "type": "object",
214
+ "additionalProperties": false,
215
+ "required": ["index", "intents", "locks"],
216
+ "properties": {
217
+ "index": { "type": "integer", "minimum": 1 },
218
+ "intents": { "$ref": "#/$defs/stringArray" },
219
+ "locks": { "$ref": "#/$defs/stringArray" }
220
+ }
221
+ },
222
+ "testSelection": {
223
+ "type": "object",
224
+ "additionalProperties": false,
225
+ "required": ["status", "candidate_count", "selected_count", "note"],
226
+ "properties": {
227
+ "status": { "type": "string" },
228
+ "candidate_count": { "type": "integer", "minimum": 0 },
229
+ "selected_count": { "type": "integer", "minimum": 0 },
230
+ "note": { "type": ["string", "null"] }
231
+ }
232
+ },
233
+ "executionPolicy": {
234
+ "type": "object",
235
+ "additionalProperties": false,
236
+ "required": ["plan_command", "run_command", "direct_commands_allowed", "selected_intents_run_via"],
237
+ "properties": {
238
+ "plan_command": { "const": "mf verify --changed --plan-only --json" },
239
+ "run_command": { "const": "mf verify --changed --json" },
240
+ "direct_commands_allowed": { "const": false },
241
+ "selected_intents_run_via": { "const": "mf run <intent>" }
242
+ }
243
+ }
244
+ }
245
+ }
@@ -0,0 +1,282 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mustflow.github.io/schemas/workspace-summary.schema.json",
4
+ "title": "mustflow workspace summary API report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "command",
10
+ "mustflow_root",
11
+ "installed",
12
+ "manifest_lock",
13
+ "template",
14
+ "check",
15
+ "read_order",
16
+ "command_surface",
17
+ "skill_surface",
18
+ "git_state",
19
+ "latest_run",
20
+ "effective_policy",
21
+ "state_policy",
22
+ "blocked_actions",
23
+ "recommended_read_surfaces",
24
+ "recommended_next_commands",
25
+ "issues"
26
+ ],
27
+ "properties": {
28
+ "schema_version": { "const": "1" },
29
+ "command": { "const": "api workspace-summary" },
30
+ "mustflow_root": { "type": "string" },
31
+ "installed": { "type": "boolean" },
32
+ "manifest_lock": { "enum": ["missing", "invalid", "present"] },
33
+ "template": { "$ref": "#/$defs/templateContext" },
34
+ "check": { "$ref": "#/$defs/check" },
35
+ "read_order": { "$ref": "#/$defs/readOrder" },
36
+ "command_surface": { "$ref": "#/$defs/commandSurface" },
37
+ "skill_surface": { "$ref": "#/$defs/skillSurface" },
38
+ "git_state": { "$ref": "#/$defs/gitState" },
39
+ "latest_run": { "$ref": "#/$defs/latestRun" },
40
+ "effective_policy": { "$ref": "#/$defs/effectivePolicy" },
41
+ "state_policy": { "$ref": "#/$defs/statePolicy" },
42
+ "blocked_actions": {
43
+ "type": "array",
44
+ "items": { "type": "string" }
45
+ },
46
+ "recommended_read_surfaces": {
47
+ "type": "array",
48
+ "items": { "type": "string" }
49
+ },
50
+ "recommended_next_commands": {
51
+ "type": "array",
52
+ "items": { "type": "string" }
53
+ },
54
+ "issues": {
55
+ "type": "array",
56
+ "items": { "type": "string" }
57
+ }
58
+ },
59
+ "$defs": {
60
+ "templateContext": {
61
+ "anyOf": [
62
+ { "type": "null" },
63
+ {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "required": ["id", "version"],
67
+ "properties": {
68
+ "id": { "type": "string" },
69
+ "version": { "type": "string" }
70
+ }
71
+ }
72
+ ]
73
+ },
74
+ "check": {
75
+ "type": "object",
76
+ "additionalProperties": false,
77
+ "required": ["ok", "issue_count", "warning_count", "issues", "warnings"],
78
+ "properties": {
79
+ "ok": { "type": "boolean" },
80
+ "issue_count": { "type": "integer", "minimum": 0 },
81
+ "warning_count": { "type": "integer", "minimum": 0 },
82
+ "issues": {
83
+ "type": "array",
84
+ "items": { "type": "string" }
85
+ },
86
+ "warnings": {
87
+ "type": "array",
88
+ "items": { "type": "string" }
89
+ }
90
+ }
91
+ },
92
+ "readOrder": {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "required": ["required", "optional", "missing_required", "missing_optional"],
96
+ "properties": {
97
+ "required": {
98
+ "type": "array",
99
+ "items": { "type": "string" }
100
+ },
101
+ "optional": {
102
+ "type": "array",
103
+ "items": { "type": "string" }
104
+ },
105
+ "missing_required": {
106
+ "type": "array",
107
+ "items": { "type": "string" }
108
+ },
109
+ "missing_optional": {
110
+ "type": "array",
111
+ "items": { "type": "string" }
112
+ }
113
+ }
114
+ },
115
+ "commandSurface": {
116
+ "type": "object",
117
+ "additionalProperties": false,
118
+ "required": [
119
+ "path",
120
+ "exists",
121
+ "total_intents",
122
+ "runnable_intents",
123
+ "runnable_count",
124
+ "non_runnable_count"
125
+ ],
126
+ "properties": {
127
+ "path": { "type": "string" },
128
+ "exists": { "type": "boolean" },
129
+ "total_intents": { "type": "integer", "minimum": 0 },
130
+ "runnable_intents": {
131
+ "type": "array",
132
+ "items": { "type": "string" }
133
+ },
134
+ "runnable_count": { "type": "integer", "minimum": 0 },
135
+ "non_runnable_count": { "type": "integer", "minimum": 0 }
136
+ }
137
+ },
138
+ "skillSurface": {
139
+ "type": "object",
140
+ "additionalProperties": false,
141
+ "required": ["index_path", "index_exists", "routes_path", "routes_exists"],
142
+ "properties": {
143
+ "index_path": { "const": ".mustflow/skills/INDEX.md" },
144
+ "index_exists": { "type": "boolean" },
145
+ "routes_path": { "const": ".mustflow/skills/routes.toml" },
146
+ "routes_exists": { "type": "boolean" }
147
+ }
148
+ },
149
+ "gitState": {
150
+ "oneOf": [
151
+ {
152
+ "type": "object",
153
+ "additionalProperties": false,
154
+ "required": ["status", "changed_file_count", "changed_files", "error"],
155
+ "properties": {
156
+ "status": { "const": "available" },
157
+ "changed_file_count": { "type": "integer", "minimum": 0 },
158
+ "changed_files": {
159
+ "type": "array",
160
+ "items": { "type": "string" }
161
+ },
162
+ "error": { "type": "null" }
163
+ }
164
+ },
165
+ {
166
+ "type": "object",
167
+ "additionalProperties": false,
168
+ "required": ["status", "changed_file_count", "changed_files", "error"],
169
+ "properties": {
170
+ "status": { "const": "unavailable" },
171
+ "changed_file_count": { "type": "null" },
172
+ "changed_files": {
173
+ "type": "array",
174
+ "maxItems": 0
175
+ },
176
+ "error": { "type": "string" }
177
+ }
178
+ }
179
+ ]
180
+ },
181
+ "effectivePolicy": {
182
+ "type": "object",
183
+ "additionalProperties": false,
184
+ "required": [
185
+ "entrypoint",
186
+ "nearest_agents",
187
+ "command_contract",
188
+ "project_commands_require_mf_run",
189
+ "allow_inferred_commands",
190
+ "auto_stage",
191
+ "auto_commit",
192
+ "auto_push",
193
+ "state_is_versioned",
194
+ "raw_logs_allowed"
195
+ ],
196
+ "properties": {
197
+ "entrypoint": { "type": "string" },
198
+ "nearest_agents": { "type": "string" },
199
+ "command_contract": { "type": "string" },
200
+ "project_commands_require_mf_run": { "type": "boolean" },
201
+ "allow_inferred_commands": { "type": "boolean" },
202
+ "auto_stage": { "type": "boolean" },
203
+ "auto_commit": { "type": "boolean" },
204
+ "auto_push": { "type": "boolean" },
205
+ "state_is_versioned": { "type": "boolean" },
206
+ "raw_logs_allowed": { "type": "boolean" }
207
+ }
208
+ },
209
+ "statePolicy": {
210
+ "type": "object",
211
+ "additionalProperties": false,
212
+ "required": [
213
+ "cache_path",
214
+ "state_path",
215
+ "versioned",
216
+ "safe_to_delete",
217
+ "stores_raw_conversation",
218
+ "stores_full_terminal_output",
219
+ "stores_hidden_chain_of_thought"
220
+ ],
221
+ "properties": {
222
+ "cache_path": { "type": "string" },
223
+ "state_path": { "type": "string" },
224
+ "versioned": { "type": "boolean" },
225
+ "safe_to_delete": { "type": "boolean" },
226
+ "stores_raw_conversation": { "type": "boolean" },
227
+ "stores_full_terminal_output": { "type": "boolean" },
228
+ "stores_hidden_chain_of_thought": { "type": "boolean" }
229
+ }
230
+ },
231
+ "latestRun": {
232
+ "oneOf": [
233
+ {
234
+ "type": "object",
235
+ "additionalProperties": false,
236
+ "required": ["path", "exists"],
237
+ "properties": {
238
+ "path": { "type": "string" },
239
+ "exists": { "const": false }
240
+ }
241
+ },
242
+ {
243
+ "type": "object",
244
+ "additionalProperties": false,
245
+ "required": ["path", "exists", "valid", "error"],
246
+ "properties": {
247
+ "path": { "type": "string" },
248
+ "exists": { "const": true },
249
+ "valid": { "const": false },
250
+ "error": { "type": "string" }
251
+ }
252
+ },
253
+ {
254
+ "type": "object",
255
+ "additionalProperties": false,
256
+ "required": [
257
+ "path",
258
+ "exists",
259
+ "valid",
260
+ "intent",
261
+ "status",
262
+ "timed_out",
263
+ "exit_code",
264
+ "finished_at",
265
+ "duration_ms"
266
+ ],
267
+ "properties": {
268
+ "path": { "type": "string" },
269
+ "exists": { "const": true },
270
+ "valid": { "const": true },
271
+ "intent": { "type": "string" },
272
+ "status": { "type": "string" },
273
+ "timed_out": { "type": "boolean" },
274
+ "exit_code": { "type": ["integer", "null"] },
275
+ "finished_at": { "type": ["string", "null"] },
276
+ "duration_ms": { "type": ["integer", "null"] }
277
+ }
278
+ }
279
+ ]
280
+ }
281
+ }
282
+ }