mustflow 2.22.49 → 2.24.2

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 (79) hide show
  1. package/README.md +12 -2
  2. package/dist/cli/commands/adapters.js +11 -9
  3. package/dist/cli/commands/api.js +263 -113
  4. package/dist/cli/commands/check.js +11 -7
  5. package/dist/cli/commands/classify.js +16 -42
  6. package/dist/cli/commands/context.js +18 -31
  7. package/dist/cli/commands/contract-lint.js +12 -7
  8. package/dist/cli/commands/dashboard.js +65 -114
  9. package/dist/cli/commands/docs.js +43 -26
  10. package/dist/cli/commands/doctor.js +11 -7
  11. package/dist/cli/commands/evidence.js +642 -0
  12. package/dist/cli/commands/explain-verify.js +1 -59
  13. package/dist/cli/commands/explain.js +84 -36
  14. package/dist/cli/commands/handoff.js +13 -17
  15. package/dist/cli/commands/impact.js +14 -20
  16. package/dist/cli/commands/index.js +15 -9
  17. package/dist/cli/commands/init.js +56 -70
  18. package/dist/cli/commands/line-endings.js +15 -9
  19. package/dist/cli/commands/map.js +30 -42
  20. package/dist/cli/commands/next.js +300 -0
  21. package/dist/cli/commands/onboard.js +136 -0
  22. package/dist/cli/commands/run.js +47 -42
  23. package/dist/cli/commands/search.js +43 -69
  24. package/dist/cli/commands/status.js +9 -6
  25. package/dist/cli/commands/update.js +16 -10
  26. package/dist/cli/commands/upgrade.js +9 -6
  27. package/dist/cli/commands/verify/args.js +55 -249
  28. package/dist/cli/commands/verify.js +2 -1
  29. package/dist/cli/commands/version-sources.js +9 -6
  30. package/dist/cli/commands/version.js +9 -6
  31. package/dist/cli/commands/workspace.js +564 -0
  32. package/dist/cli/i18n/en.js +60 -1
  33. package/dist/cli/i18n/es.js +60 -1
  34. package/dist/cli/i18n/fr.js +60 -1
  35. package/dist/cli/i18n/hi.js +60 -1
  36. package/dist/cli/i18n/ko.js +60 -1
  37. package/dist/cli/i18n/zh.js +60 -1
  38. package/dist/cli/index.js +28 -25
  39. package/dist/cli/lib/agent-context.js +8 -9
  40. package/dist/cli/lib/command-registry.js +24 -0
  41. package/dist/cli/lib/dashboard-html/client-script.js +1 -1
  42. package/dist/cli/lib/local-index/database-path.js +5 -0
  43. package/dist/cli/lib/local-index/database-read.js +88 -0
  44. package/dist/cli/lib/local-index/effect-graph-read-model.js +112 -0
  45. package/dist/cli/lib/local-index/freshness.js +60 -0
  46. package/dist/cli/lib/local-index/index.js +12 -1866
  47. package/dist/cli/lib/local-index/path-surface-read-model.js +134 -0
  48. package/dist/cli/lib/local-index/populate.js +474 -0
  49. package/dist/cli/lib/local-index/schema.js +413 -0
  50. package/dist/cli/lib/local-index/search-read-model.js +533 -0
  51. package/dist/cli/lib/local-index/search-text.js +79 -0
  52. package/dist/cli/lib/option-parser.js +93 -0
  53. package/dist/cli/lib/repo-map.js +2 -2
  54. package/dist/cli/lib/run-plan.js +5 -22
  55. package/dist/core/change-verification.js +11 -5
  56. package/dist/core/command-effects.js +1 -3
  57. package/dist/core/command-intent-eligibility.js +14 -0
  58. package/dist/core/command-preconditions.js +8 -4
  59. package/dist/core/command-run-constraints.js +43 -0
  60. package/dist/core/public-json-contracts.js +57 -0
  61. package/dist/core/test-selection.js +8 -2
  62. package/dist/core/verification-plan.js +32 -4
  63. package/package.json +1 -1
  64. package/schemas/README.md +16 -0
  65. package/schemas/api-serve-response.schema.json +89 -0
  66. package/schemas/change-verification-report.schema.json +4 -1
  67. package/schemas/contract-lint-report.schema.json +1 -0
  68. package/schemas/evidence-report.schema.json +287 -0
  69. package/schemas/explain-report.schema.json +4 -0
  70. package/schemas/next-report.schema.json +121 -0
  71. package/schemas/onboard-commands-report.schema.json +100 -0
  72. package/schemas/workspace-command-catalog.schema.json +172 -0
  73. package/schemas/workspace-status.schema.json +141 -0
  74. package/schemas/workspace-verification-plan.schema.json +195 -0
  75. package/templates/default/i18n.toml +7 -1
  76. package/templates/default/locales/en/.mustflow/skills/INDEX.md +2 -1
  77. package/templates/default/locales/en/.mustflow/skills/routes.toml +6 -0
  78. package/templates/default/locales/en/.mustflow/skills/version-freshness-check/SKILL.md +141 -0
  79. package/templates/default/manifest.toml +8 -1
@@ -0,0 +1,172 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mustflow.github.io/schemas/workspace-command-catalog.schema.json",
4
+ "title": "mustflow workspace command catalog report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "command",
10
+ "mustflow_root",
11
+ "workspace",
12
+ "policy",
13
+ "repository_count",
14
+ "total_intent_count",
15
+ "runnable_intent_count",
16
+ "repositories",
17
+ "issues"
18
+ ],
19
+ "properties": {
20
+ "schema_version": { "const": "1" },
21
+ "command": { "const": "workspace command-catalog" },
22
+ "mustflow_root": { "type": "string" },
23
+ "workspace": { "$ref": "#/$defs/workspace" },
24
+ "policy": { "$ref": "#/$defs/policy" },
25
+ "repository_count": { "type": "integer", "minimum": 0 },
26
+ "total_intent_count": { "type": "integer", "minimum": 0 },
27
+ "runnable_intent_count": { "type": "integer", "minimum": 0 },
28
+ "repositories": {
29
+ "type": "array",
30
+ "items": { "$ref": "#/$defs/repository" }
31
+ },
32
+ "issues": { "$ref": "#/$defs/stringArray" }
33
+ },
34
+ "$defs": {
35
+ "stringArray": {
36
+ "type": "array",
37
+ "items": { "type": "string" }
38
+ },
39
+ "nullableString": {
40
+ "type": ["string", "null"]
41
+ },
42
+ "workspace": {
43
+ "type": "object",
44
+ "additionalProperties": false,
45
+ "required": [
46
+ "enabled",
47
+ "roots",
48
+ "max_depth",
49
+ "max_repositories",
50
+ "follow_symlinks",
51
+ "stop_at_repository_root"
52
+ ],
53
+ "properties": {
54
+ "enabled": { "type": "boolean" },
55
+ "roots": { "$ref": "#/$defs/stringArray" },
56
+ "max_depth": { "type": "integer", "minimum": 1 },
57
+ "max_repositories": { "type": "integer", "minimum": 1 },
58
+ "follow_symlinks": { "type": "boolean" },
59
+ "stop_at_repository_root": { "type": "boolean" }
60
+ }
61
+ },
62
+ "policy": {
63
+ "type": "object",
64
+ "additionalProperties": false,
65
+ "required": [
66
+ "mode",
67
+ "grants_command_authority",
68
+ "parent_root_grants_child_authority",
69
+ "command_authority_per_root",
70
+ "run_entrypoint_per_root",
71
+ "executes_commands",
72
+ "raw_commands_included"
73
+ ],
74
+ "properties": {
75
+ "mode": { "const": "read_only" },
76
+ "grants_command_authority": { "const": false },
77
+ "parent_root_grants_child_authority": { "const": false },
78
+ "command_authority_per_root": { "const": ".mustflow/config/commands.toml" },
79
+ "run_entrypoint_per_root": { "const": "mf run <intent>" },
80
+ "executes_commands": { "const": false },
81
+ "raw_commands_included": { "const": false }
82
+ }
83
+ },
84
+ "commandSurface": {
85
+ "type": "object",
86
+ "additionalProperties": false,
87
+ "required": [
88
+ "path",
89
+ "exists",
90
+ "parse_error",
91
+ "total_intents",
92
+ "runnable_count",
93
+ "runnable_intents",
94
+ "blocked_count"
95
+ ],
96
+ "properties": {
97
+ "path": { "$ref": "#/$defs/nullableString" },
98
+ "exists": { "type": "boolean" },
99
+ "parse_error": { "$ref": "#/$defs/nullableString" },
100
+ "total_intents": { "type": ["integer", "null"], "minimum": 0 },
101
+ "runnable_count": { "type": ["integer", "null"], "minimum": 0 },
102
+ "runnable_intents": { "$ref": "#/$defs/stringArray" },
103
+ "blocked_count": { "type": ["integer", "null"], "minimum": 0 }
104
+ }
105
+ },
106
+ "repository": {
107
+ "type": "object",
108
+ "additionalProperties": false,
109
+ "required": [
110
+ "relative_path",
111
+ "status",
112
+ "command_contract",
113
+ "intent_count",
114
+ "runnable_count",
115
+ "blocked_count",
116
+ "intents",
117
+ "issues"
118
+ ],
119
+ "properties": {
120
+ "relative_path": { "type": "string" },
121
+ "status": { "enum": ["available", "contract_missing", "contract_invalid"] },
122
+ "command_contract": { "$ref": "#/$defs/commandSurface" },
123
+ "intent_count": { "type": "integer", "minimum": 0 },
124
+ "runnable_count": { "type": "integer", "minimum": 0 },
125
+ "blocked_count": { "type": "integer", "minimum": 0 },
126
+ "intents": {
127
+ "type": "array",
128
+ "items": { "$ref": "#/$defs/intent" }
129
+ },
130
+ "issues": { "$ref": "#/$defs/stringArray" }
131
+ }
132
+ },
133
+ "intent": {
134
+ "type": "object",
135
+ "additionalProperties": false,
136
+ "required": [
137
+ "name",
138
+ "description",
139
+ "status",
140
+ "lifecycle",
141
+ "run_policy",
142
+ "runnable",
143
+ "reason_code",
144
+ "detail",
145
+ "run_command",
146
+ "run_from_repository",
147
+ "timeout_seconds",
148
+ "required_after",
149
+ "writes",
150
+ "network",
151
+ "destructive"
152
+ ],
153
+ "properties": {
154
+ "name": { "type": "string" },
155
+ "description": { "$ref": "#/$defs/nullableString" },
156
+ "status": { "$ref": "#/$defs/nullableString" },
157
+ "lifecycle": { "$ref": "#/$defs/nullableString" },
158
+ "run_policy": { "$ref": "#/$defs/nullableString" },
159
+ "runnable": { "type": "boolean" },
160
+ "reason_code": { "$ref": "#/$defs/nullableString" },
161
+ "detail": { "$ref": "#/$defs/nullableString" },
162
+ "run_command": { "$ref": "#/$defs/nullableString" },
163
+ "run_from_repository": { "type": "string" },
164
+ "timeout_seconds": { "type": ["integer", "null"], "minimum": 1 },
165
+ "required_after": { "$ref": "#/$defs/stringArray" },
166
+ "writes": { "$ref": "#/$defs/stringArray" },
167
+ "network": { "type": ["boolean", "null"] },
168
+ "destructive": { "type": ["boolean", "null"] }
169
+ }
170
+ }
171
+ }
172
+ }
@@ -0,0 +1,141 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mustflow.github.io/schemas/workspace-status.schema.json",
4
+ "title": "mustflow workspace status report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "command",
10
+ "mustflow_root",
11
+ "workspace",
12
+ "policy",
13
+ "repository_count",
14
+ "repositories",
15
+ "issues"
16
+ ],
17
+ "properties": {
18
+ "schema_version": { "const": "1" },
19
+ "command": { "const": "workspace status" },
20
+ "mustflow_root": { "type": "string" },
21
+ "workspace": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "enabled",
26
+ "roots",
27
+ "max_depth",
28
+ "max_repositories",
29
+ "follow_symlinks",
30
+ "stop_at_repository_root"
31
+ ],
32
+ "properties": {
33
+ "enabled": { "type": "boolean" },
34
+ "roots": { "$ref": "#/$defs/stringArray" },
35
+ "max_depth": { "type": "integer", "minimum": 1 },
36
+ "max_repositories": { "type": "integer", "minimum": 1 },
37
+ "follow_symlinks": { "type": "boolean" },
38
+ "stop_at_repository_root": { "type": "boolean" }
39
+ }
40
+ },
41
+ "policy": {
42
+ "type": "object",
43
+ "additionalProperties": false,
44
+ "required": [
45
+ "mode",
46
+ "grants_command_authority",
47
+ "parent_root_grants_child_authority",
48
+ "command_authority_per_root",
49
+ "run_entrypoint_per_root",
50
+ "executes_commands",
51
+ "raw_commands_included"
52
+ ],
53
+ "properties": {
54
+ "mode": { "const": "read_only" },
55
+ "grants_command_authority": { "const": false },
56
+ "parent_root_grants_child_authority": { "const": false },
57
+ "command_authority_per_root": { "const": ".mustflow/config/commands.toml" },
58
+ "run_entrypoint_per_root": { "const": "mf run <intent>" },
59
+ "executes_commands": { "const": false },
60
+ "raw_commands_included": { "const": false }
61
+ }
62
+ },
63
+ "repository_count": { "type": "integer", "minimum": 0 },
64
+ "repositories": {
65
+ "type": "array",
66
+ "items": { "$ref": "#/$defs/repository" }
67
+ },
68
+ "issues": { "$ref": "#/$defs/stringArray" }
69
+ },
70
+ "$defs": {
71
+ "stringArray": {
72
+ "type": "array",
73
+ "items": { "type": "string" }
74
+ },
75
+ "nullableString": {
76
+ "type": ["string", "null"]
77
+ },
78
+ "commandSurface": {
79
+ "type": "object",
80
+ "additionalProperties": false,
81
+ "required": [
82
+ "path",
83
+ "exists",
84
+ "parse_error",
85
+ "total_intents",
86
+ "runnable_count",
87
+ "runnable_intents",
88
+ "blocked_count"
89
+ ],
90
+ "properties": {
91
+ "path": { "$ref": "#/$defs/nullableString" },
92
+ "exists": { "type": "boolean" },
93
+ "parse_error": { "$ref": "#/$defs/nullableString" },
94
+ "total_intents": { "type": ["integer", "null"], "minimum": 0 },
95
+ "runnable_count": { "type": ["integer", "null"], "minimum": 0 },
96
+ "runnable_intents": { "$ref": "#/$defs/stringArray" },
97
+ "blocked_count": { "type": ["integer", "null"], "minimum": 0 }
98
+ }
99
+ },
100
+ "repository": {
101
+ "type": "object",
102
+ "additionalProperties": false,
103
+ "required": [
104
+ "relative_path",
105
+ "status",
106
+ "git_repository",
107
+ "mustflow",
108
+ "agent_rules",
109
+ "repo_map",
110
+ "mustflow_config",
111
+ "command_contract",
112
+ "context_index",
113
+ "skill_index",
114
+ "root_document_count",
115
+ "machine_contract_count",
116
+ "manifest_count",
117
+ "command_adapter_count",
118
+ "editing_policy_count",
119
+ "issues"
120
+ ],
121
+ "properties": {
122
+ "relative_path": { "type": "string" },
123
+ "status": { "enum": ["mustflow_ready", "contract_missing", "contract_invalid"] },
124
+ "git_repository": { "const": true },
125
+ "mustflow": { "type": "boolean" },
126
+ "agent_rules": { "$ref": "#/$defs/nullableString" },
127
+ "repo_map": { "$ref": "#/$defs/nullableString" },
128
+ "mustflow_config": { "$ref": "#/$defs/nullableString" },
129
+ "command_contract": { "$ref": "#/$defs/commandSurface" },
130
+ "context_index": { "$ref": "#/$defs/nullableString" },
131
+ "skill_index": { "$ref": "#/$defs/nullableString" },
132
+ "root_document_count": { "type": "integer", "minimum": 0 },
133
+ "machine_contract_count": { "type": "integer", "minimum": 0 },
134
+ "manifest_count": { "type": "integer", "minimum": 0 },
135
+ "command_adapter_count": { "type": "integer", "minimum": 0 },
136
+ "editing_policy_count": { "type": "integer", "minimum": 0 },
137
+ "issues": { "$ref": "#/$defs/stringArray" }
138
+ }
139
+ }
140
+ }
141
+ }
@@ -0,0 +1,195 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mustflow.github.io/schemas/workspace-verification-plan.schema.json",
4
+ "title": "mustflow workspace verification plan report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "command",
10
+ "mustflow_root",
11
+ "workspace",
12
+ "policy",
13
+ "repository_count",
14
+ "total_changed_file_count",
15
+ "total_requirement_count",
16
+ "total_selected_intent_count",
17
+ "total_gap_count",
18
+ "repositories",
19
+ "issues"
20
+ ],
21
+ "properties": {
22
+ "schema_version": { "const": "1" },
23
+ "command": { "const": "workspace verify" },
24
+ "mustflow_root": { "type": "string" },
25
+ "workspace": { "$ref": "#/$defs/workspace" },
26
+ "policy": { "$ref": "#/$defs/policy" },
27
+ "repository_count": { "type": "integer", "minimum": 0 },
28
+ "total_changed_file_count": { "type": "integer", "minimum": 0 },
29
+ "total_requirement_count": { "type": "integer", "minimum": 0 },
30
+ "total_selected_intent_count": { "type": "integer", "minimum": 0 },
31
+ "total_gap_count": { "type": "integer", "minimum": 0 },
32
+ "repositories": {
33
+ "type": "array",
34
+ "items": { "$ref": "#/$defs/repository" }
35
+ },
36
+ "issues": { "$ref": "#/$defs/stringArray" }
37
+ },
38
+ "$defs": {
39
+ "stringArray": {
40
+ "type": "array",
41
+ "items": { "type": "string" }
42
+ },
43
+ "nullableString": {
44
+ "type": ["string", "null"]
45
+ },
46
+ "workspace": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": [
50
+ "enabled",
51
+ "roots",
52
+ "max_depth",
53
+ "max_repositories",
54
+ "follow_symlinks",
55
+ "stop_at_repository_root"
56
+ ],
57
+ "properties": {
58
+ "enabled": { "type": "boolean" },
59
+ "roots": { "$ref": "#/$defs/stringArray" },
60
+ "max_depth": { "type": "integer", "minimum": 1 },
61
+ "max_repositories": { "type": "integer", "minimum": 1 },
62
+ "follow_symlinks": { "type": "boolean" },
63
+ "stop_at_repository_root": { "type": "boolean" }
64
+ }
65
+ },
66
+ "policy": {
67
+ "type": "object",
68
+ "additionalProperties": false,
69
+ "required": [
70
+ "mode",
71
+ "grants_command_authority",
72
+ "parent_root_grants_child_authority",
73
+ "command_authority_per_root",
74
+ "run_entrypoint_per_root",
75
+ "executes_commands",
76
+ "raw_commands_included",
77
+ "plan_command_per_root",
78
+ "selected_intents_run_via"
79
+ ],
80
+ "properties": {
81
+ "mode": { "const": "read_only" },
82
+ "grants_command_authority": { "const": false },
83
+ "parent_root_grants_child_authority": { "const": false },
84
+ "command_authority_per_root": { "const": ".mustflow/config/commands.toml" },
85
+ "run_entrypoint_per_root": { "const": "mf run <intent>" },
86
+ "executes_commands": { "const": false },
87
+ "raw_commands_included": { "const": false },
88
+ "plan_command_per_root": { "const": "mf verify --changed --plan-only --json" },
89
+ "selected_intents_run_via": { "const": "mf run <intent>" }
90
+ }
91
+ },
92
+ "commandSurface": {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "required": [
96
+ "path",
97
+ "exists",
98
+ "parse_error",
99
+ "total_intents",
100
+ "runnable_count",
101
+ "runnable_intents",
102
+ "blocked_count"
103
+ ],
104
+ "properties": {
105
+ "path": { "$ref": "#/$defs/nullableString" },
106
+ "exists": { "type": "boolean" },
107
+ "parse_error": { "$ref": "#/$defs/nullableString" },
108
+ "total_intents": { "type": ["integer", "null"], "minimum": 0 },
109
+ "runnable_count": { "type": ["integer", "null"], "minimum": 0 },
110
+ "runnable_intents": { "$ref": "#/$defs/stringArray" },
111
+ "blocked_count": { "type": ["integer", "null"], "minimum": 0 }
112
+ }
113
+ },
114
+ "repository": {
115
+ "type": "object",
116
+ "additionalProperties": false,
117
+ "required": [
118
+ "relative_path",
119
+ "status",
120
+ "command_contract",
121
+ "changed_file_count",
122
+ "changed_files",
123
+ "verification_plan_id",
124
+ "requirement_count",
125
+ "candidate_count",
126
+ "selected_intent_count",
127
+ "gap_count",
128
+ "selected_intents",
129
+ "gaps",
130
+ "issues"
131
+ ],
132
+ "properties": {
133
+ "relative_path": { "type": "string" },
134
+ "status": {
135
+ "enum": [
136
+ "available",
137
+ "contract_missing",
138
+ "contract_invalid",
139
+ "git_unavailable",
140
+ "plan_unavailable"
141
+ ]
142
+ },
143
+ "command_contract": { "$ref": "#/$defs/commandSurface" },
144
+ "changed_file_count": { "type": ["integer", "null"], "minimum": 0 },
145
+ "changed_files": { "$ref": "#/$defs/stringArray" },
146
+ "verification_plan_id": {
147
+ "type": ["string", "null"],
148
+ "pattern": "^sha256:[0-9a-f]{64}$"
149
+ },
150
+ "requirement_count": { "type": "integer", "minimum": 0 },
151
+ "candidate_count": { "type": "integer", "minimum": 0 },
152
+ "selected_intent_count": { "type": "integer", "minimum": 0 },
153
+ "gap_count": { "type": "integer", "minimum": 0 },
154
+ "selected_intents": {
155
+ "type": "array",
156
+ "items": { "$ref": "#/$defs/selectedIntent" }
157
+ },
158
+ "gaps": {
159
+ "type": "array",
160
+ "items": { "$ref": "#/$defs/gap" }
161
+ },
162
+ "issues": { "$ref": "#/$defs/stringArray" }
163
+ }
164
+ },
165
+ "selectedIntent": {
166
+ "type": "object",
167
+ "additionalProperties": false,
168
+ "required": [
169
+ "intent",
170
+ "run_command",
171
+ "run_from_repository",
172
+ "locks",
173
+ "conflict_count"
174
+ ],
175
+ "properties": {
176
+ "intent": { "type": "string" },
177
+ "run_command": { "$ref": "#/$defs/nullableString" },
178
+ "run_from_repository": { "type": "string" },
179
+ "locks": { "$ref": "#/$defs/stringArray" },
180
+ "conflict_count": { "type": "integer", "minimum": 0 }
181
+ }
182
+ },
183
+ "gap": {
184
+ "type": "object",
185
+ "additionalProperties": false,
186
+ "required": ["reason", "files", "surfaces", "detail"],
187
+ "properties": {
188
+ "reason": { "type": "string" },
189
+ "files": { "$ref": "#/$defs/stringArray" },
190
+ "surfaces": { "$ref": "#/$defs/stringArray" },
191
+ "detail": { "type": "string" }
192
+ }
193
+ }
194
+ }
195
+ }
@@ -56,7 +56,7 @@ translations = {}
56
56
  [documents."skills.index"]
57
57
  source = "locales/en/.mustflow/skills/INDEX.md"
58
58
  source_locale = "en"
59
- revision = 81
59
+ revision = 82
60
60
  translations = {}
61
61
 
62
62
  [documents."skill.adapter-boundary"]
@@ -137,6 +137,12 @@ source_locale = "en"
137
137
  revision = 1
138
138
  translations = {}
139
139
 
140
+ [documents."skill.version-freshness-check"]
141
+ source = "locales/en/.mustflow/skills/version-freshness-check/SKILL.md"
142
+ source_locale = "en"
143
+ revision = 1
144
+ translations = {}
145
+
140
146
  [documents."skill.line-ending-hygiene"]
141
147
  source = "locales/en/.mustflow/skills/line-ending-hygiene/SKILL.md"
142
148
  source_locale = "en"
@@ -2,7 +2,7 @@
2
2
  mustflow_doc: skills.index
3
3
  locale: en
4
4
  canonical: true
5
- revision: 81
5
+ revision: 82
6
6
  authority: router
7
7
  lifecycle: mustflow-owned
8
8
  ---
@@ -151,6 +151,7 @@ routes. Event routes stay inactive until their event occurs.
151
151
  | Database migration files, schema migration history, ORM schema migrations, generated clients, schema dumps, SQL snapshots, backfills, rolling deploy compatibility, expand-and-contract changes, destructive database changes, migration rollback claims, or production database migration procedures are created, changed, reviewed, or reported | `.mustflow/skills/database-migration-change/SKILL.md` | Source schema, target schema, migration files, migration history, generated clients, schema dumps, SQL snapshots, affected queries, deployment shape, database engine, table size or lock assumptions, backfill plan, rollback type, validation query, and command contract entries | Migration files, ORM schemas, generated clients, schema dumps, SQL snapshots, backfill code, validation checks, seeds, fixtures, compatibility code, docs, tests, and directly synchronized examples | data loss, drop-plus-add rename, old/new app incompatibility, unsafe rolling deploy, unbounded backfill, production lock, generated-client drift, migration-history drift, false rollback claim, ORM autogenerate mistake, or destructive contract mixed with expand phase | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Migration phase, old/new schema compatibility, backfill and validation plan, rollback classification, ORM/generated/schema dump surfaces, dependent surfaces, verification, and remaining database-migration risk |
152
152
  | Dependency versions, lockfiles, package-manager metadata, workspace constraints, runtime engines, peer dependencies, optional dependencies, security advisory fixes, generated dependency output, framework plugins, CI actions, Docker base images, package manager behavior, or toolchain versions are upgraded, downgraded, pinned, widened, regenerated, reviewed, or reported | `.mustflow/skills/dependency-upgrade-review/SKILL.md` | Dependency name, old and new versions or ranges, direct or transitive path, ecosystem and package manager, declaration files, lockfiles, runtime or toolchain files, advisory or release-note evidence, generated outputs, callers, docs, package output, Docker or CI surfaces, and command contract entries | Package declarations, lockfiles, generated outputs, compatibility code, tests, docs, package metadata, Docker or CI files, and directly synchronized examples | lockfile churn, hidden transitive replacement, peer or engine break, module-format drift, native or optional package break, framework or generator output drift, unsafe broad security update, weakened tests, Docker or CI runtime drift, or unreviewed supply-chain change | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Upgrade reason, ecosystem surface, direct and transitive graph changes, compatibility classification, runtime/peer/engine/module/feature/platform/generated-output risks, synchronized surfaces, verification, and remaining dependency-upgrade risk |
153
153
  | Dependency, package, runtime, framework, tool, command, plugin, service, platform capability, supported-version policy, security patch path, ecosystem maturity claim, maintainer-risk assumption, runtime portability claim, edge or serverless compatibility claim, critical-path library choice, package script, lifecycle hook, binary download, lockfile, audit result, or supply-chain-sensitive dependency surface is assumed, added, removed, imported, invoked, installed, audited, or documented | `.mustflow/skills/dependency-reality-check/SKILL.md` | Assumed dependency or capability, declaration files, version or feature expectation, role criticality, supported-version or end-of-life evidence, patchability expectation, runtime compatibility boundary, maintainer and ecosystem evidence when available, lockfile entry, package script or lifecycle hook, audit or provenance evidence, and relevant command intents | Package metadata, lockfiles, imports, scripts, command contracts, docs, tests, runtime policy notes, portability notes, and reports | unavailable dependency, hallucinated or lookalike package, fragile single-maintainer core dependency, experimental technology in a survival path, unsupported runtime, unclear security patch path, runtime-specific API leakage into core logic, stale version claim, lifecycle script risk, audit suppression, lockfile drift, or install guidance mismatch | `changes_status`, `changes_diff_summary`, `build`, `test_release`, `mustflow_check` | Dependency checked, ecosystem and maintainer-risk boundary reviewed, supported-version, patchability, and runtime-portability boundary reviewed, supply-chain surface reviewed, declarations synchronized, verification, and remaining dependency risk |
154
+ | Generated or edited code, configuration, CI workflows, package metadata, install instructions, examples, Docker images, framework setup, runtime declarations, toolchain declarations, or migration-sensitive snippets introduce explicit external version references, action refs, package ranges, runtime versions, framework majors, Docker image tags, or scaffold commands that may be stale | `.mustflow/skills/version-freshness-check/SKILL.md` | Versioned reference, owning files, repository version policy, approved freshness source, compatibility context, migration risk, and command contract entries | Package metadata, lockfiles, CI workflows, Dockerfiles, runtime files, framework config, docs, examples, templates, tests, and version-decision reports | stale default version, false latest claim, accidental major migration, repository policy mismatch, unsupported generated example, floating-tag drift, or unverified security/support claim | `changes_status`, `changes_diff_summary`, `build`, `test_related`, `docs_validate_fast`, `test_release`, `mustflow_check` | Versioned surfaces checked, repository policy and freshness source, selected version track, compatibility classification, approval need, synchronized surfaces, verification, and remaining version-freshness risk |
154
155
  | External systems, protocols, SDKs, databases, webhooks, queues, files, object storage, signed upload or download URLs, caches, API response models, framework requests or responses, server actions, route handlers, edge functions, worker handlers, AI models, browser storage, search engines, analytics tools, email platforms, no-code tools, observability backends, trace or request context, or provider data cross the core boundary or need port/adapter translation, error mapping, timeout, retry, circuit-breaker, bulkhead, idempotency, reconciliation, security, core-state ownership, vendor portability, or observability handling | `.mustflow/skills/adapter-boundary/SKILL.md` | External system or protocol, inbound/outbound direction, delivery boundary, internal use case, local port/adapter patterns, provider risk, provider failure policy, core-state ownership risk, vendor portability risk, observability identifier policy, API contract risk, changed files, and command contract entries | Ports, adapters, mappers, controllers, workers, stores, gateways, response mappers, telemetry mappers, timeout and retry policies, circuit breakers, bulkhead boundaries, tests, fixtures, assembly wiring, and directly synchronized docs or templates | provider leakage, framework business-rule leakage, telemetry backend leakage, storage-key leakage, screen-shaped API coupling, pass-through wrapper, SaaS dashboard as truth source, search or analytics policy leakage, queue contract leakage, unclassified external failure, duplicate side effect, unsafe retry, missing timeout, missing circuit breaker, missing bulkhead, unresolved unknown provider outcome, broken identifier propagation, secret or personal-data leak, or untested integration drift | `changes_status`, `changes_diff_summary`, `test_related`, `test`, `lint`, `build`, `docs_validate_fast`, `test_release`, `mustflow_check` | Boundary classification, delivery adapter responsibility, internal port, provider containment, core-state ownership, vendor portability, validation and mapping, API response mapping, observability identifier flow, timeout/retry/circuit-breaker/bulkhead/idempotency handling, reconciliation behavior, security notes, verification, and remaining provider risk |
155
156
  | Tauri frontend invokes, Rust commands, capabilities, permissions, scopes, plugins, filesystem, dialog, shell, opener, updater, sidecar, or mobile native permissions are created or changed | `.mustflow/skills/tauri-code-change/SKILL.md` | Frontend call sites, Tauri config, Rust commands, capability and permission files, plugin config, changed files, and command contract entries | Tauri frontend, Rust commands, capabilities, permissions, scopes, plugins, tests, and docs | broad native permission, untrusted IPC input, filesystem escape, shell or updater risk, or WebView/native boundary drift | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `mustflow_check` | IPC, permission, scope, filesystem, shell, updater, and native boundary checked, verification, and remaining Tauri risk |
156
157
  | File path handling, cross-platform path behavior, path helpers, safe filesystem wrappers, temp or cache paths, atomic writes, locks, archive extraction, uploads, downloads, scanners, CLI/API/schema path contracts, snapshots, generated outputs, or package artifact paths are created, changed, reviewed, or reported | `.mustflow/skills/file-path-cross-platform-change/SKILL.md` | Path ledger, trust classes, accepted path representation, base root, path helpers, safe filesystem wrappers, temp/cache helpers, lock policy, archive policy, upload/download policy, scanner policy, CLI/API/schema/snapshot/generated/package surfaces, platform expectations, and command contract entries | Path validators, helpers, wrappers, schemas, CLI/API parsing, snapshots, fixtures, docs, tests, generated-output paths, package artifact paths, archive extraction, scanner bounds, temp/cache handling, locks, and cleanup code | path traversal, base containment bypass, drive-relative path bug, reserved-name bug, case-collision bug, symlink or junction escape, unsafe archive extraction, non-atomic write claim, stale lock, scanner loop, cleanup data loss, path contract drift, or package artifact path drift | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Path contract, path ledger, trust classes, root policy, Windows/macOS/Linux/archive/upload/download/scanner/lock/temp/cache/atomic/cleanup decisions, synchronized contract surfaces, verification, and remaining path risk |
@@ -228,6 +228,12 @@ route_type = "adjunct"
228
228
  priority = 45
229
229
  applies_to_reasons = ["code_change", "docs_change", "security_change"]
230
230
 
231
+ [routes."version-freshness-check"]
232
+ category = "data_external"
233
+ route_type = "adjunct"
234
+ priority = 68
235
+ applies_to_reasons = ["code_change", "docs_change", "package_metadata_change", "mustflow_config_change", "release_risk"]
236
+
231
237
  [routes."file-path-cross-platform-change"]
232
238
  category = "data_external"
233
239
  route_type = "primary"