mustflow 1.15.97

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 (415) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +422 -0
  3. package/dist/cli/commands/check.js +73 -0
  4. package/dist/cli/commands/classify.js +104 -0
  5. package/dist/cli/commands/context.js +95 -0
  6. package/dist/cli/commands/contract-lint.js +74 -0
  7. package/dist/cli/commands/dashboard.js +654 -0
  8. package/dist/cli/commands/docs.js +382 -0
  9. package/dist/cli/commands/doctor.js +232 -0
  10. package/dist/cli/commands/explain.js +293 -0
  11. package/dist/cli/commands/help.js +148 -0
  12. package/dist/cli/commands/impact.js +120 -0
  13. package/dist/cli/commands/index.js +70 -0
  14. package/dist/cli/commands/init.js +986 -0
  15. package/dist/cli/commands/line-endings.js +102 -0
  16. package/dist/cli/commands/map.js +95 -0
  17. package/dist/cli/commands/run.js +442 -0
  18. package/dist/cli/commands/search.js +166 -0
  19. package/dist/cli/commands/status.js +65 -0
  20. package/dist/cli/commands/update.js +443 -0
  21. package/dist/cli/commands/verify.js +448 -0
  22. package/dist/cli/commands/version-sources.js +79 -0
  23. package/dist/cli/commands/version.js +57 -0
  24. package/dist/cli/i18n/en.js +702 -0
  25. package/dist/cli/i18n/es.js +702 -0
  26. package/dist/cli/i18n/fr.js +702 -0
  27. package/dist/cli/i18n/hi.js +702 -0
  28. package/dist/cli/i18n/ko.js +702 -0
  29. package/dist/cli/i18n/zh.js +702 -0
  30. package/dist/cli/index.js +218 -0
  31. package/dist/cli/lib/agent-context.js +342 -0
  32. package/dist/cli/lib/browser-open.js +58 -0
  33. package/dist/cli/lib/cli-output.js +36 -0
  34. package/dist/cli/lib/command-contract.js +1 -0
  35. package/dist/cli/lib/command-registry.js +107 -0
  36. package/dist/cli/lib/dashboard-html.js +1866 -0
  37. package/dist/cli/lib/dashboard-locale.js +309 -0
  38. package/dist/cli/lib/dashboard-preferences.js +405 -0
  39. package/dist/cli/lib/doc-review-ledger.js +226 -0
  40. package/dist/cli/lib/filesystem.js +125 -0
  41. package/dist/cli/lib/git-changes.js +13 -0
  42. package/dist/cli/lib/i18n.js +55 -0
  43. package/dist/cli/lib/local-index.js +1014 -0
  44. package/dist/cli/lib/locale-tags.js +4 -0
  45. package/dist/cli/lib/manifest-lock.js +131 -0
  46. package/dist/cli/lib/npm-version-check.js +97 -0
  47. package/dist/cli/lib/package-info.js +13 -0
  48. package/dist/cli/lib/preferences-options.js +8 -0
  49. package/dist/cli/lib/project-root.js +23 -0
  50. package/dist/cli/lib/repo-map.js +635 -0
  51. package/dist/cli/lib/reporter.js +8 -0
  52. package/dist/cli/lib/run-receipt.js +1 -0
  53. package/dist/cli/lib/template-i18n.js +265 -0
  54. package/dist/cli/lib/templates.js +188 -0
  55. package/dist/cli/lib/toml.js +1 -0
  56. package/dist/cli/lib/validation.js +1639 -0
  57. package/dist/cli/lib/version-sources.js +1 -0
  58. package/dist/core/authority-resolution.js +155 -0
  59. package/dist/core/change-classification.js +122 -0
  60. package/dist/core/change-verification.js +80 -0
  61. package/dist/core/check-issues.js +67 -0
  62. package/dist/core/command-classification.js +22 -0
  63. package/dist/core/command-contract-rules.js +27 -0
  64. package/dist/core/command-contract-validation.js +197 -0
  65. package/dist/core/command-cwd.js +12 -0
  66. package/dist/core/command-effects.js +182 -0
  67. package/dist/core/command-explanation.js +135 -0
  68. package/dist/core/command-intent-eligibility.js +76 -0
  69. package/dist/core/config-loading.js +54 -0
  70. package/dist/core/contract-lint.js +110 -0
  71. package/dist/core/contract-models.js +53 -0
  72. package/dist/core/dashboard-verification.js +132 -0
  73. package/dist/core/doc-review-triage.js +92 -0
  74. package/dist/core/line-endings.js +144 -0
  75. package/dist/core/public-json-contracts.js +112 -0
  76. package/dist/core/public-surface-explanation.js +49 -0
  77. package/dist/core/release-version-validation.js +53 -0
  78. package/dist/core/retention-explanation.js +74 -0
  79. package/dist/core/retention-policy.js +57 -0
  80. package/dist/core/run-receipt.js +77 -0
  81. package/dist/core/skill-route-alignment.js +100 -0
  82. package/dist/core/skill-route-explanation.js +117 -0
  83. package/dist/core/source-anchor-explanation.js +33 -0
  84. package/dist/core/source-anchor-status.js +269 -0
  85. package/dist/core/source-anchor-symbols.js +181 -0
  86. package/dist/core/source-anchor-validation.js +158 -0
  87. package/dist/core/source-anchors.js +194 -0
  88. package/dist/core/surface-decision-model.js +18 -0
  89. package/dist/core/toml.js +11 -0
  90. package/dist/core/verification-plan.js +41 -0
  91. package/dist/core/verification-scheduler.js +92 -0
  92. package/dist/core/version-impact.js +54 -0
  93. package/dist/core/version-sources.js +235 -0
  94. package/dist/core/version-sync-policy.js +85 -0
  95. package/examples/README.md +13 -0
  96. package/examples/docs-only/README.md +72 -0
  97. package/examples/host-instruction-conflicts/README.md +47 -0
  98. package/examples/minimal-js/README.md +98 -0
  99. package/examples/missing-command-contracts/README.md +70 -0
  100. package/examples/nested-repos/README.md +62 -0
  101. package/package.json +80 -0
  102. package/schemas/README.md +32 -0
  103. package/schemas/change-verification-report.schema.json +319 -0
  104. package/schemas/classify-report.schema.json +113 -0
  105. package/schemas/commands.schema.json +116 -0
  106. package/schemas/context-report.schema.json +341 -0
  107. package/schemas/contract-lint-report.schema.json +61 -0
  108. package/schemas/docs-review-list.schema.json +72 -0
  109. package/schemas/doctor-report.schema.json +175 -0
  110. package/schemas/explain-report.schema.json +471 -0
  111. package/schemas/impact-report.schema.json +121 -0
  112. package/schemas/line-endings-report.schema.json +63 -0
  113. package/schemas/run-receipt.schema.json +75 -0
  114. package/schemas/verify-report.schema.json +67 -0
  115. package/schemas/version-sources-report.schema.json +42 -0
  116. package/templates/default/common/.mustflow/config/commands.toml +251 -0
  117. package/templates/default/common/.mustflow/config/mustflow.toml +424 -0
  118. package/templates/default/common/.mustflow/config/preferences.toml +125 -0
  119. package/templates/default/common/gitignore.mustflow +9 -0
  120. package/templates/default/i18n.toml +483 -0
  121. package/templates/default/locales/en/.mustflow/context/INDEX.md +39 -0
  122. package/templates/default/locales/en/.mustflow/context/PROJECT.md +66 -0
  123. package/templates/default/locales/en/.mustflow/docs/agent-workflow.md +345 -0
  124. package/templates/default/locales/en/.mustflow/skills/INDEX.md +78 -0
  125. package/templates/default/locales/en/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
  126. package/templates/default/locales/en/.mustflow/skills/artifact-integrity-check/SKILL.md +121 -0
  127. package/templates/default/locales/en/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
  128. package/templates/default/locales/en/.mustflow/skills/code-review/SKILL.md +115 -0
  129. package/templates/default/locales/en/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
  130. package/templates/default/locales/en/.mustflow/skills/command-pattern/SKILL.md +247 -0
  131. package/templates/default/locales/en/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
  132. package/templates/default/locales/en/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
  133. package/templates/default/locales/en/.mustflow/skills/date-number-audit/SKILL.md +116 -0
  134. package/templates/default/locales/en/.mustflow/skills/dependency-injection/SKILL.md +161 -0
  135. package/templates/default/locales/en/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
  136. package/templates/default/locales/en/.mustflow/skills/diff-risk-review/SKILL.md +143 -0
  137. package/templates/default/locales/en/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
  138. package/templates/default/locales/en/.mustflow/skills/docs-update/SKILL.md +100 -0
  139. package/templates/default/locales/en/.mustflow/skills/external-prompt-injection-defense/SKILL.md +124 -0
  140. package/templates/default/locales/en/.mustflow/skills/facade-pattern/SKILL.md +210 -0
  141. package/templates/default/locales/en/.mustflow/skills/failure-triage/SKILL.md +97 -0
  142. package/templates/default/locales/en/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
  143. package/templates/default/locales/en/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
  144. package/templates/default/locales/en/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
  145. package/templates/default/locales/en/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
  146. package/templates/default/locales/en/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
  147. package/templates/default/locales/en/.mustflow/skills/pattern-scout/SKILL.md +110 -0
  148. package/templates/default/locales/en/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
  149. package/templates/default/locales/en/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
  150. package/templates/default/locales/en/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
  151. package/templates/default/locales/en/.mustflow/skills/readme-authoring/SKILL.md +115 -0
  152. package/templates/default/locales/en/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
  153. package/templates/default/locales/en/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
  154. package/templates/default/locales/en/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
  155. package/templates/default/locales/en/.mustflow/skills/result-option/SKILL.md +186 -0
  156. package/templates/default/locales/en/.mustflow/skills/security-privacy-review/SKILL.md +130 -0
  157. package/templates/default/locales/en/.mustflow/skills/security-regression-tests/SKILL.md +157 -0
  158. package/templates/default/locales/en/.mustflow/skills/skill-authoring/SKILL.md +110 -0
  159. package/templates/default/locales/en/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
  160. package/templates/default/locales/en/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
  161. package/templates/default/locales/en/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
  162. package/templates/default/locales/en/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
  163. package/templates/default/locales/en/.mustflow/skills/test-maintenance/SKILL.md +122 -0
  164. package/templates/default/locales/en/.mustflow/skills/ui-quality-gate/SKILL.md +119 -0
  165. package/templates/default/locales/en/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
  166. package/templates/default/locales/en/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
  167. package/templates/default/locales/en/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
  168. package/templates/default/locales/en/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
  169. package/templates/default/locales/en/AGENTS.md +114 -0
  170. package/templates/default/locales/es/.mustflow/context/INDEX.md +39 -0
  171. package/templates/default/locales/es/.mustflow/context/PROJECT.md +63 -0
  172. package/templates/default/locales/es/.mustflow/docs/agent-workflow.md +365 -0
  173. package/templates/default/locales/es/.mustflow/skills/INDEX.md +78 -0
  174. package/templates/default/locales/es/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
  175. package/templates/default/locales/es/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
  176. package/templates/default/locales/es/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
  177. package/templates/default/locales/es/.mustflow/skills/code-review/SKILL.md +115 -0
  178. package/templates/default/locales/es/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
  179. package/templates/default/locales/es/.mustflow/skills/command-pattern/SKILL.md +247 -0
  180. package/templates/default/locales/es/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
  181. package/templates/default/locales/es/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
  182. package/templates/default/locales/es/.mustflow/skills/date-number-audit/SKILL.md +116 -0
  183. package/templates/default/locales/es/.mustflow/skills/dependency-injection/SKILL.md +161 -0
  184. package/templates/default/locales/es/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
  185. package/templates/default/locales/es/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
  186. package/templates/default/locales/es/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
  187. package/templates/default/locales/es/.mustflow/skills/docs-update/SKILL.md +97 -0
  188. package/templates/default/locales/es/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
  189. package/templates/default/locales/es/.mustflow/skills/facade-pattern/SKILL.md +210 -0
  190. package/templates/default/locales/es/.mustflow/skills/failure-triage/SKILL.md +97 -0
  191. package/templates/default/locales/es/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
  192. package/templates/default/locales/es/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
  193. package/templates/default/locales/es/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
  194. package/templates/default/locales/es/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
  195. package/templates/default/locales/es/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
  196. package/templates/default/locales/es/.mustflow/skills/pattern-scout/SKILL.md +110 -0
  197. package/templates/default/locales/es/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
  198. package/templates/default/locales/es/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
  199. package/templates/default/locales/es/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
  200. package/templates/default/locales/es/.mustflow/skills/readme-authoring/SKILL.md +115 -0
  201. package/templates/default/locales/es/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
  202. package/templates/default/locales/es/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
  203. package/templates/default/locales/es/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
  204. package/templates/default/locales/es/.mustflow/skills/result-option/SKILL.md +186 -0
  205. package/templates/default/locales/es/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
  206. package/templates/default/locales/es/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
  207. package/templates/default/locales/es/.mustflow/skills/skill-authoring/SKILL.md +110 -0
  208. package/templates/default/locales/es/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
  209. package/templates/default/locales/es/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
  210. package/templates/default/locales/es/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
  211. package/templates/default/locales/es/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
  212. package/templates/default/locales/es/.mustflow/skills/test-maintenance/SKILL.md +122 -0
  213. package/templates/default/locales/es/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
  214. package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
  215. package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
  216. package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
  217. package/templates/default/locales/es/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
  218. package/templates/default/locales/es/AGENTS.md +83 -0
  219. package/templates/default/locales/fr/.mustflow/context/INDEX.md +39 -0
  220. package/templates/default/locales/fr/.mustflow/context/PROJECT.md +63 -0
  221. package/templates/default/locales/fr/.mustflow/docs/agent-workflow.md +368 -0
  222. package/templates/default/locales/fr/.mustflow/skills/INDEX.md +78 -0
  223. package/templates/default/locales/fr/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
  224. package/templates/default/locales/fr/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
  225. package/templates/default/locales/fr/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
  226. package/templates/default/locales/fr/.mustflow/skills/code-review/SKILL.md +115 -0
  227. package/templates/default/locales/fr/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
  228. package/templates/default/locales/fr/.mustflow/skills/command-pattern/SKILL.md +247 -0
  229. package/templates/default/locales/fr/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
  230. package/templates/default/locales/fr/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
  231. package/templates/default/locales/fr/.mustflow/skills/date-number-audit/SKILL.md +116 -0
  232. package/templates/default/locales/fr/.mustflow/skills/dependency-injection/SKILL.md +161 -0
  233. package/templates/default/locales/fr/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
  234. package/templates/default/locales/fr/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
  235. package/templates/default/locales/fr/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
  236. package/templates/default/locales/fr/.mustflow/skills/docs-update/SKILL.md +97 -0
  237. package/templates/default/locales/fr/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
  238. package/templates/default/locales/fr/.mustflow/skills/facade-pattern/SKILL.md +210 -0
  239. package/templates/default/locales/fr/.mustflow/skills/failure-triage/SKILL.md +97 -0
  240. package/templates/default/locales/fr/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
  241. package/templates/default/locales/fr/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
  242. package/templates/default/locales/fr/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
  243. package/templates/default/locales/fr/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
  244. package/templates/default/locales/fr/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
  245. package/templates/default/locales/fr/.mustflow/skills/pattern-scout/SKILL.md +110 -0
  246. package/templates/default/locales/fr/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
  247. package/templates/default/locales/fr/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
  248. package/templates/default/locales/fr/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
  249. package/templates/default/locales/fr/.mustflow/skills/readme-authoring/SKILL.md +115 -0
  250. package/templates/default/locales/fr/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
  251. package/templates/default/locales/fr/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
  252. package/templates/default/locales/fr/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
  253. package/templates/default/locales/fr/.mustflow/skills/result-option/SKILL.md +186 -0
  254. package/templates/default/locales/fr/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
  255. package/templates/default/locales/fr/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
  256. package/templates/default/locales/fr/.mustflow/skills/skill-authoring/SKILL.md +110 -0
  257. package/templates/default/locales/fr/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
  258. package/templates/default/locales/fr/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
  259. package/templates/default/locales/fr/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
  260. package/templates/default/locales/fr/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
  261. package/templates/default/locales/fr/.mustflow/skills/test-maintenance/SKILL.md +122 -0
  262. package/templates/default/locales/fr/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
  263. package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
  264. package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
  265. package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
  266. package/templates/default/locales/fr/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
  267. package/templates/default/locales/fr/AGENTS.md +84 -0
  268. package/templates/default/locales/hi/.mustflow/context/INDEX.md +39 -0
  269. package/templates/default/locales/hi/.mustflow/context/PROJECT.md +65 -0
  270. package/templates/default/locales/hi/.mustflow/docs/agent-workflow.md +359 -0
  271. package/templates/default/locales/hi/.mustflow/skills/INDEX.md +78 -0
  272. package/templates/default/locales/hi/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
  273. package/templates/default/locales/hi/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
  274. package/templates/default/locales/hi/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
  275. package/templates/default/locales/hi/.mustflow/skills/code-review/SKILL.md +115 -0
  276. package/templates/default/locales/hi/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
  277. package/templates/default/locales/hi/.mustflow/skills/command-pattern/SKILL.md +247 -0
  278. package/templates/default/locales/hi/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
  279. package/templates/default/locales/hi/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
  280. package/templates/default/locales/hi/.mustflow/skills/date-number-audit/SKILL.md +116 -0
  281. package/templates/default/locales/hi/.mustflow/skills/dependency-injection/SKILL.md +161 -0
  282. package/templates/default/locales/hi/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
  283. package/templates/default/locales/hi/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
  284. package/templates/default/locales/hi/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
  285. package/templates/default/locales/hi/.mustflow/skills/docs-update/SKILL.md +97 -0
  286. package/templates/default/locales/hi/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
  287. package/templates/default/locales/hi/.mustflow/skills/facade-pattern/SKILL.md +210 -0
  288. package/templates/default/locales/hi/.mustflow/skills/failure-triage/SKILL.md +97 -0
  289. package/templates/default/locales/hi/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
  290. package/templates/default/locales/hi/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
  291. package/templates/default/locales/hi/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
  292. package/templates/default/locales/hi/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
  293. package/templates/default/locales/hi/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
  294. package/templates/default/locales/hi/.mustflow/skills/pattern-scout/SKILL.md +110 -0
  295. package/templates/default/locales/hi/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
  296. package/templates/default/locales/hi/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
  297. package/templates/default/locales/hi/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
  298. package/templates/default/locales/hi/.mustflow/skills/readme-authoring/SKILL.md +115 -0
  299. package/templates/default/locales/hi/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
  300. package/templates/default/locales/hi/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
  301. package/templates/default/locales/hi/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
  302. package/templates/default/locales/hi/.mustflow/skills/result-option/SKILL.md +186 -0
  303. package/templates/default/locales/hi/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
  304. package/templates/default/locales/hi/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
  305. package/templates/default/locales/hi/.mustflow/skills/skill-authoring/SKILL.md +110 -0
  306. package/templates/default/locales/hi/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
  307. package/templates/default/locales/hi/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
  308. package/templates/default/locales/hi/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
  309. package/templates/default/locales/hi/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
  310. package/templates/default/locales/hi/.mustflow/skills/test-maintenance/SKILL.md +122 -0
  311. package/templates/default/locales/hi/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
  312. package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
  313. package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
  314. package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
  315. package/templates/default/locales/hi/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
  316. package/templates/default/locales/hi/AGENTS.md +83 -0
  317. package/templates/default/locales/ko/.mustflow/context/INDEX.md +39 -0
  318. package/templates/default/locales/ko/.mustflow/context/PROJECT.md +66 -0
  319. package/templates/default/locales/ko/.mustflow/docs/agent-workflow.md +506 -0
  320. package/templates/default/locales/ko/.mustflow/skills/INDEX.md +78 -0
  321. package/templates/default/locales/ko/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
  322. package/templates/default/locales/ko/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
  323. package/templates/default/locales/ko/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
  324. package/templates/default/locales/ko/.mustflow/skills/code-review/SKILL.md +118 -0
  325. package/templates/default/locales/ko/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
  326. package/templates/default/locales/ko/.mustflow/skills/command-pattern/SKILL.md +247 -0
  327. package/templates/default/locales/ko/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
  328. package/templates/default/locales/ko/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
  329. package/templates/default/locales/ko/.mustflow/skills/date-number-audit/SKILL.md +116 -0
  330. package/templates/default/locales/ko/.mustflow/skills/dependency-injection/SKILL.md +161 -0
  331. package/templates/default/locales/ko/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
  332. package/templates/default/locales/ko/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
  333. package/templates/default/locales/ko/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
  334. package/templates/default/locales/ko/.mustflow/skills/docs-update/SKILL.md +107 -0
  335. package/templates/default/locales/ko/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
  336. package/templates/default/locales/ko/.mustflow/skills/facade-pattern/SKILL.md +210 -0
  337. package/templates/default/locales/ko/.mustflow/skills/failure-triage/SKILL.md +119 -0
  338. package/templates/default/locales/ko/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
  339. package/templates/default/locales/ko/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
  340. package/templates/default/locales/ko/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
  341. package/templates/default/locales/ko/.mustflow/skills/multi-agent-work-coordination/SKILL.md +259 -0
  342. package/templates/default/locales/ko/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
  343. package/templates/default/locales/ko/.mustflow/skills/pattern-scout/SKILL.md +110 -0
  344. package/templates/default/locales/ko/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
  345. package/templates/default/locales/ko/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
  346. package/templates/default/locales/ko/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
  347. package/templates/default/locales/ko/.mustflow/skills/readme-authoring/SKILL.md +115 -0
  348. package/templates/default/locales/ko/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
  349. package/templates/default/locales/ko/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
  350. package/templates/default/locales/ko/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
  351. package/templates/default/locales/ko/.mustflow/skills/result-option/SKILL.md +186 -0
  352. package/templates/default/locales/ko/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
  353. package/templates/default/locales/ko/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
  354. package/templates/default/locales/ko/.mustflow/skills/skill-authoring/SKILL.md +110 -0
  355. package/templates/default/locales/ko/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
  356. package/templates/default/locales/ko/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
  357. package/templates/default/locales/ko/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
  358. package/templates/default/locales/ko/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
  359. package/templates/default/locales/ko/.mustflow/skills/test-maintenance/SKILL.md +130 -0
  360. package/templates/default/locales/ko/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
  361. package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
  362. package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
  363. package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
  364. package/templates/default/locales/ko/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
  365. package/templates/default/locales/ko/AGENTS.md +85 -0
  366. package/templates/default/locales/zh/.mustflow/context/INDEX.md +39 -0
  367. package/templates/default/locales/zh/.mustflow/context/PROJECT.md +64 -0
  368. package/templates/default/locales/zh/.mustflow/docs/agent-workflow.md +310 -0
  369. package/templates/default/locales/zh/.mustflow/skills/INDEX.md +78 -0
  370. package/templates/default/locales/zh/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
  371. package/templates/default/locales/zh/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
  372. package/templates/default/locales/zh/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
  373. package/templates/default/locales/zh/.mustflow/skills/code-review/SKILL.md +115 -0
  374. package/templates/default/locales/zh/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
  375. package/templates/default/locales/zh/.mustflow/skills/command-pattern/SKILL.md +247 -0
  376. package/templates/default/locales/zh/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
  377. package/templates/default/locales/zh/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
  378. package/templates/default/locales/zh/.mustflow/skills/date-number-audit/SKILL.md +116 -0
  379. package/templates/default/locales/zh/.mustflow/skills/dependency-injection/SKILL.md +161 -0
  380. package/templates/default/locales/zh/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
  381. package/templates/default/locales/zh/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
  382. package/templates/default/locales/zh/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
  383. package/templates/default/locales/zh/.mustflow/skills/docs-update/SKILL.md +97 -0
  384. package/templates/default/locales/zh/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
  385. package/templates/default/locales/zh/.mustflow/skills/facade-pattern/SKILL.md +210 -0
  386. package/templates/default/locales/zh/.mustflow/skills/failure-triage/SKILL.md +96 -0
  387. package/templates/default/locales/zh/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
  388. package/templates/default/locales/zh/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
  389. package/templates/default/locales/zh/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
  390. package/templates/default/locales/zh/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
  391. package/templates/default/locales/zh/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
  392. package/templates/default/locales/zh/.mustflow/skills/pattern-scout/SKILL.md +110 -0
  393. package/templates/default/locales/zh/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
  394. package/templates/default/locales/zh/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
  395. package/templates/default/locales/zh/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
  396. package/templates/default/locales/zh/.mustflow/skills/readme-authoring/SKILL.md +115 -0
  397. package/templates/default/locales/zh/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
  398. package/templates/default/locales/zh/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
  399. package/templates/default/locales/zh/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
  400. package/templates/default/locales/zh/.mustflow/skills/result-option/SKILL.md +186 -0
  401. package/templates/default/locales/zh/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
  402. package/templates/default/locales/zh/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
  403. package/templates/default/locales/zh/.mustflow/skills/skill-authoring/SKILL.md +110 -0
  404. package/templates/default/locales/zh/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
  405. package/templates/default/locales/zh/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
  406. package/templates/default/locales/zh/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
  407. package/templates/default/locales/zh/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
  408. package/templates/default/locales/zh/.mustflow/skills/test-maintenance/SKILL.md +122 -0
  409. package/templates/default/locales/zh/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
  410. package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
  411. package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
  412. package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
  413. package/templates/default/locales/zh/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
  414. package/templates/default/locales/zh/AGENTS.md +86 -0
  415. package/templates/default/manifest.toml +339 -0
@@ -0,0 +1,196 @@
1
+ ---
2
+ mustflow_doc: skill.null-object-pattern
3
+ locale: zh
4
+ canonical: false
5
+ revision: 1
6
+ lifecycle: mustflow-owned
7
+ authority: procedure
8
+ name: null-object-pattern
9
+ description: Apply this skill when repeated null, undefined, None, or nil checks, optional dependencies, disabled integrations, no-op collaborators, identity processors, null loggers, null analytics, null caches, or optional notifications could be replaced by a safe neutral implementation of the same interface without hiding required failures, security checks, payments, persistence, file uploads, audit trails, or not-found results.
10
+ metadata:
11
+ mustflow_schema: "1"
12
+ mustflow_kind: procedure
13
+ pack_id: mustflow.core
14
+ skill_id: mustflow.core.null-object-pattern
15
+ command_intents:
16
+ - changes_status
17
+ - changes_diff_summary
18
+ - test_related
19
+ - test
20
+ - lint
21
+ - build
22
+ - docs_validate_fast
23
+ - test_release
24
+ - mustflow_check
25
+ ---
26
+
27
+ # Null Object Pattern
28
+
29
+ <!-- mustflow-section: purpose -->
30
+ ## Purpose
31
+
32
+ Replace repeated absence checks for optional collaborators with a same-interface object that performs an honest neutral behavior.
33
+
34
+ Use this skill when "no collaborator" is a normal configured state and the caller should keep the same workflow whether the real implementation is present or not. A null object is not a way to hide failure. It is only valid when doing nothing, returning a cache miss, returning a skipped outcome, or returning the input unchanged is domain-correct.
35
+
36
+ Null Object means "this optional thing is intentionally absent." It must never mean "a required thing failed, so pretend everything is fine."
37
+
38
+ <!-- mustflow-section: use-when -->
39
+ ## Use When
40
+
41
+ - Code repeatedly checks `null`, `undefined`, `None`, or `nil` before calling the same optional collaborator.
42
+ - A logger, product analytics client, optional notification sender, optional webhook publisher, optional scheduler, optional metrics sink, or optional post-processor may be disabled without breaking the main operation.
43
+ - A cache can be disabled while the source-of-truth lookup still works; the neutral cache behavior is always miss.
44
+ - A post-processor, transformer, or policy can safely return the input unchanged or a true zero value.
45
+ - A feature is explicitly disabled by configuration and the disabled behavior is a stable part of the system contract.
46
+ - A strategy family needs a no-op, disabled, identity, empty, or zero policy implementation that is honest about what happened.
47
+
48
+ <!-- mustflow-section: do-not-use-when -->
49
+ ## Do Not Use When
50
+
51
+ - The missing collaborator is required for correctness, durability, security, money movement, legal traceability, or data integrity.
52
+ - The area is payment, authentication, authorization, permission enforcement, persistence, file storage, audit logging, security event recording, or required external delivery.
53
+ - The caller must know whether a value exists, a resource was found, or an operation actually happened; use `result-option` instead.
54
+ - A dependency is missing because configuration is wrong or initialization failed; fail at startup or return a required-configuration error instead.
55
+ - A repository lookup returns no user, order, file, subscription, entitlement, or domain entity; use `Option`, `Result`, or a local lookup result.
56
+ - The null object would return a fake success, fake identifier, fake URL, fake saved row, fake paid transaction, fake permission grant, or fake sent message.
57
+ - The implementation needs request-specific mutable state; use a fake, mock, spy, or real collaborator instead.
58
+
59
+ <!-- mustflow-section: required-inputs -->
60
+ ## Required Inputs
61
+
62
+ - The collaborator or object whose absence is being modeled.
63
+ - The repeated null checks, optional type, or disabled integration path being changed.
64
+ - Whether absence is a normal configured state or a missing required dependency.
65
+ - Whether the caller needs to know if the operation was performed, skipped, absent, denied, or failed.
66
+ - The side effects involved, especially writes, payments, file storage, external sends, audit logs, and security checks.
67
+ - Existing local interfaces, dependency injection, strategy, `Result`, `Option`, configuration, fake, mock, and test patterns.
68
+ - Relevant command-intent contract entries for verification.
69
+
70
+ <!-- mustflow-section: preconditions -->
71
+ ## Preconditions
72
+
73
+ - Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
74
+ - The target absence satisfies all of these conditions:
75
+ - Absence is a normal state.
76
+ - Doing nothing or returning a neutral value is correct.
77
+ - The caller does not need to branch on presence.
78
+ - The neutral return value does not claim work was performed.
79
+ - No security, payment, storage, file-upload, audit, or required-delivery responsibility is hidden.
80
+ - The null object can satisfy the same interface contract as the real implementation.
81
+ - If the caller must branch on absence, use `result-option`.
82
+ - If concrete selection should happen at an assembly boundary, use `dependency-injection`.
83
+ - If the neutral implementation is one variant in a family of interchangeable behavior, use `strategy-pattern`.
84
+
85
+ <!-- mustflow-section: allowed-edits -->
86
+ ## Allowed Edits
87
+
88
+ - Add same-interface implementations named `Null*`, `Noop*`, `Disabled*`, `Identity*`, `Empty*`, `DenyAll*`, or `Failing*` when the name matches the behavior.
89
+ - Replace nullable collaborator types with non-null interface types at call sites.
90
+ - Move real-versus-neutral implementation selection to an assembly root, dependency-injection registration, factory, or module initialization boundary.
91
+ - Return honest neutral outcomes such as skipped, disabled, cache miss, empty result, zero amount, or unchanged input.
92
+ - Add tests for callability, neutral return values, no external side effects, caller behavior without presence checks, and no fake success.
93
+ - Do not use null objects to swallow runtime exceptions, hide initialization failures, skip required persistence, bypass authorization, or forge successful side effects.
94
+
95
+ <!-- mustflow-section: procedure -->
96
+ ## Procedure
97
+
98
+ 1. Classify the absence.
99
+ - Normal optional collaborator: null object may be valid.
100
+ - Meaningful missing value: use `Option` or a local lookup result.
101
+ - Expected failure: use `Result`.
102
+ - Required dependency missing: fail at startup or return a required-configuration failure.
103
+ - Security default: use an explicit deny-all policy, not a permissive null object.
104
+ 2. Check the risk boundary.
105
+ - Reject null objects for payments, authentication, authorization, required persistence, file uploads, audit trails, legal logs, required notifications, and required provider calls.
106
+ - If the absence can lose data, lose money, grant access, skip accountability, or corrupt state, do not use this pattern.
107
+ 3. Define or reuse the interface first.
108
+ - The real object and the null object must implement the same consumer-facing contract.
109
+ - Do not add a special `doNothing` API that forces callers to branch again.
110
+ 4. Choose the honest neutral behavior.
111
+ - Optional notification disabled: return `skipped` or a local disabled outcome, not `sent`.
112
+ - Cache disabled: return miss, not a hit with `undefined`.
113
+ - Analytics disabled: no-op without per-call noise.
114
+ - Post-processor absent: return the input unchanged.
115
+ - Discount absent: return a true zero discount.
116
+ - Permission system unavailable: deny, fail closed, or fail startup; never allow by default.
117
+ 5. Name the implementation by what it does.
118
+ - Use `Null*` for object absence.
119
+ - Use `Noop*` when calls intentionally do nothing.
120
+ - Use `Disabled*` when configuration turns the feature off.
121
+ - Use `Identity*` when input is returned unchanged.
122
+ - Use `Empty*` for a true empty collection or empty domain result.
123
+ - Use `DenyAll*` for fail-closed security policy.
124
+ - Use `Failing*` when a required dependency is missing and should fail loudly.
125
+ 6. Remove nullable types from callers.
126
+ - Constructor or function dependencies should become the interface type, not `Interface | null` or an optional parameter.
127
+ - Callers should invoke the collaborator directly and should not contain presence checks for that collaborator.
128
+ 7. Select implementations at the assembly boundary.
129
+ - Choose the real implementation or the null object in bootstrap, dependency-injection registration, module setup, factory setup, or test setup.
130
+ - Do not make business services read configuration and construct their own null objects.
131
+ 8. Keep null objects stateless.
132
+ - Store no current user, request, file, transaction state, intermediate result, or call history.
133
+ - A stateless null object can usually be reused as a singleton.
134
+ - If call recording is needed, that object is a fake, mock, spy, or metrics tool, not the production null object.
135
+ 9. Do not swallow construction or runtime failures.
136
+ - Use a null object only when a feature is explicitly disabled.
137
+ - Do not catch a failed real implementation constructor and silently replace it with a null object.
138
+ 10. Keep persistence and serialization honest.
139
+ - Do not persist a null object instance.
140
+ - Persist configuration or domain facts such as `notificationsEnabled = false`.
141
+ 11. Add observability at the right level.
142
+ - It is acceptable to log once at startup or expose health/status that an optional feature is disabled.
143
+ - Do not make the null object emit a warning for every skipped call unless the local system explicitly requires it.
144
+ 12. Test the contract.
145
+ - Test that the null object can be called through the shared interface.
146
+ - Test the neutral return value.
147
+ - Test that no external collaborator is called.
148
+ - Test that the main caller works without a null check.
149
+ - Test that fake success is not returned.
150
+
151
+ <!-- mustflow-section: postconditions -->
152
+ ## Postconditions
153
+
154
+ - Optional collaborator absence is represented by a same-interface neutral implementation.
155
+ - Callers no longer carry nullable dependency types or repeated presence checks for the optional collaborator.
156
+ - The neutral implementation does not fake success, forge identifiers, grant permission, skip required persistence, or hide required side effects.
157
+ - Real versus neutral implementation selection is visible at an assembly or configuration boundary.
158
+ - Tests cover callability, neutral return values, no side effects, caller behavior, and no fake success.
159
+
160
+ <!-- mustflow-section: verification -->
161
+ ## Verification
162
+
163
+ Use configured oneshot command intents when available:
164
+
165
+ - `changes_status`
166
+ - `changes_diff_summary`
167
+ - `test_related`
168
+ - `test`
169
+ - `lint`
170
+ - `build`
171
+ - `docs_validate_fast`
172
+ - `test_release`
173
+ - `mustflow_check`
174
+
175
+ Prefer focused tests for the caller whose nullable dependency was removed and for the neutral implementation. Use release or documentation checks when templates, public docs, package metadata, skill routes, or installed-file surfaces change.
176
+
177
+ <!-- mustflow-section: failure-handling -->
178
+ ## Failure Handling
179
+
180
+ - If the neutral object would hide a required failure, stop and use startup validation, `Result`, `Option`, `DenyAll*`, or `Failing*` instead.
181
+ - If the caller still needs to know whether work happened, return an explicit skipped or disabled outcome rather than pretending success.
182
+ - If the local interface cannot support an honest neutral implementation, redesign the interface or keep explicit `Result`/`Option` handling.
183
+ - If a null object was introduced to recover from an exception, remove the fallback and expose the initialization or configuration failure.
184
+ - If a null object grows mutable state or call history, split that behavior into a test fake, mock, spy, or metrics decorator.
185
+
186
+ <!-- mustflow-section: output-format -->
187
+ ## Output Format
188
+
189
+ - Absence classified as optional, meaningful absence, expected failure, required dependency, or security default
190
+ - Null Object used or deliberately rejected
191
+ - Interface and neutral implementation added or reused
192
+ - Assembly or configuration boundary used for selection
193
+ - Nullable caller types or checks removed
194
+ - Result, Option, Strategy, Dependency Injection, or Adapter boundaries used with this skill
195
+ - Tests or verification evidence
196
+ - Skipped checks and remaining hidden-failure risk
@@ -0,0 +1,110 @@
1
+ ---
2
+ mustflow_doc: skill.pattern-scout
3
+ locale: zh
4
+ canonical: false
5
+ revision: 1
6
+ lifecycle: mustflow-owned
7
+ authority: procedure
8
+ name: pattern-scout
9
+ description: Apply this skill before implementing in an unfamiliar area where an existing local pattern may already solve the shape of the change.
10
+ metadata:
11
+ mustflow_schema: "1"
12
+ mustflow_kind: procedure
13
+ pack_id: mustflow.core
14
+ skill_id: mustflow.core.pattern-scout
15
+ command_intents:
16
+ - changes_status
17
+ - changes_diff_summary
18
+ - mustflow_check
19
+ ---
20
+
21
+ # Pattern Scout
22
+
23
+ <!-- mustflow-section: purpose -->
24
+ ## Purpose
25
+
26
+ Find the closest local implementation pattern before creating new structure, naming, data flow, tests, or documentation shape.
27
+
28
+ <!-- mustflow-section: use-when -->
29
+ ## Use When
30
+
31
+ - The task touches an unfamiliar module, command, UI pane, schema, template, skill, or documentation family.
32
+ - A similar feature already appears to exist elsewhere in the repository.
33
+ - A new abstraction, helper, file layout, or test style might be introduced without enough local evidence.
34
+ - The change should fit established naming, localization, validation, or packaging conventions.
35
+
36
+ <!-- mustflow-section: do-not-use-when -->
37
+ ## Do Not Use When
38
+
39
+ - The task is a tiny mechanical edit with an obvious surrounding pattern.
40
+ - The user explicitly asks for a one-off experiment or prototype outside established structure.
41
+ - The existing pattern is already known from the current task context and no new area is being touched.
42
+
43
+ <!-- mustflow-section: required-inputs -->
44
+ ## Required Inputs
45
+
46
+ - User request and intended changed-file area.
47
+ - Nearby files and at least one analogous implementation when available.
48
+ - Relevant route, schema, template, test, or documentation examples.
49
+ - Current changed-file list if work is already in progress.
50
+
51
+ <!-- mustflow-section: preconditions -->
52
+ ## Preconditions
53
+
54
+ - The task matches the Use When conditions and does not match the Do Not Use When exclusions.
55
+ - Required inputs are available, or missing inputs can be reported without guessing.
56
+ - Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
57
+
58
+ <!-- mustflow-section: allowed-edits -->
59
+ ## Allowed Edits
60
+
61
+ - Prefer read-only exploration before editing.
62
+ - After choosing a pattern, edit only the files needed to apply that pattern to the requested change.
63
+ - Add a new pattern only when no local pattern fits, and record why the new shape is necessary.
64
+
65
+ <!-- mustflow-section: procedure -->
66
+ ## Procedure
67
+
68
+ 1. Name the change shape: command, UI pane, schema, template document, skill, test, documentation page, or other local category.
69
+ 2. Search for the nearest existing examples in that category and inspect enough surrounding code to understand ownership, naming, data flow, and verification style.
70
+ 3. Choose the closest pattern and list the files that define it. If multiple patterns conflict, choose the one nearest to the files being changed.
71
+ 4. Identify the parts that must stay aligned: file naming, frontmatter, schema keys, localization keys, test helper style, manifest entries, lock entries, or documentation routing.
72
+ 5. Implement by extending the chosen pattern instead of inventing a parallel shape.
73
+ 6. If the change intentionally differs from the closest pattern, state the reason in the final report.
74
+ 7. Use the smallest configured verification that covers the changed pattern.
75
+
76
+ <!-- mustflow-section: postconditions -->
77
+ ## Postconditions
78
+
79
+ - The implementation follows a named local pattern or clearly documents why it diverges.
80
+ - New files are connected to every existing registry, manifest, schema, localization, or docs surface used by that pattern.
81
+ - The final report names the pattern evidence and any intentional deviation.
82
+
83
+ <!-- mustflow-section: verification -->
84
+ ## Verification
85
+
86
+ Use configured oneshot command intents when available:
87
+
88
+ - `changes_status`
89
+ - `changes_diff_summary`
90
+ - `mustflow_check`
91
+
92
+ Also run any narrower configured test, build, or documentation intent required by the chosen pattern.
93
+
94
+ <!-- mustflow-section: failure-handling -->
95
+ ## Failure Handling
96
+
97
+ - If no local pattern exists, report that this is a new pattern and keep the first version small.
98
+ - If patterns conflict, prefer the one closest to the changed files and report the tradeoff.
99
+ - If verification reveals missing registry or metadata alignment, fix the alignment before adding unrelated logic.
100
+ - If the closest pattern appears stale or broken, do not copy the stale behavior silently; report it and choose a safer local precedent.
101
+
102
+ <!-- mustflow-section: output-format -->
103
+ ## Output Format
104
+
105
+ - Change shape
106
+ - Local pattern inspected
107
+ - Pattern applied or reason for deviation
108
+ - Registries, manifests, or docs kept aligned
109
+ - Command intents run
110
+ - Skipped checks and reasons
@@ -0,0 +1,121 @@
1
+ ---
2
+ mustflow_doc: skill.performance-budget-check
3
+ locale: zh
4
+ canonical: false
5
+ revision: 1
6
+ lifecycle: mustflow-owned
7
+ authority: procedure
8
+ name: performance-budget-check
9
+ description: Apply this skill when performance budgets, bundle size, page weight, startup time, command duration, memory use, asset size, throughput, latency, benchmark output, or performance claims are planned, edited, reviewed, or reported.
10
+ metadata:
11
+ mustflow_schema: "1"
12
+ mustflow_kind: procedure
13
+ pack_id: mustflow.core
14
+ skill_id: mustflow.core.performance-budget-check
15
+ command_intents:
16
+ - changes_status
17
+ - changes_diff_summary
18
+ - build
19
+ - test_related
20
+ - docs_validate_fast
21
+ - test_release
22
+ - mustflow_check
23
+ ---
24
+
25
+ # Performance Budget Check
26
+
27
+ <!-- mustflow-section: purpose -->
28
+ ## Purpose
29
+
30
+ Keep performance claims and budgets tied to declared thresholds, reproducible measurements, and explicit tradeoffs instead of guessing from local impressions.
31
+
32
+ <!-- mustflow-section: use-when -->
33
+ ## Use When
34
+
35
+ - A task changes or reports performance budgets, bundle size, page weight, startup time, command duration, memory use, asset size, throughput, latency, search index size, build time, or benchmark output.
36
+ - A change adds heavier dependencies, generated assets, static pages, search indexes, startup work, file scanning, command fan-out, or repeated process spawning.
37
+ - A report claims that a path is faster, slower, lightweight, optimized, cached, parallelized, cheap, expensive, within budget, or over budget.
38
+ - A failure or slowdown suggests that measurement scope, command selection, concurrency, caching, or generated output size needs review.
39
+
40
+ <!-- mustflow-section: do-not-use-when -->
41
+ ## Do Not Use When
42
+
43
+ - The task only changes wording and does not make a performance or size claim.
44
+ - The number is only a local fixture or example with no budget or public reporting meaning.
45
+ - The change is only image asset conversion; use `web-asset-optimization` for that asset pipeline and this skill only for budget reporting.
46
+
47
+ <!-- mustflow-section: required-inputs -->
48
+ ## Required Inputs
49
+
50
+ - The performance surface, such as command, page, asset, bundle, startup path, query, build, or generated output.
51
+ - The budget source, if one exists: repository config, documented threshold, user-provided limit, benchmark baseline, package metadata, or current command result.
52
+ - Measurement method, environment boundary, warm or cold run expectation, and whether the result is deterministic, sampled, local-only, or approximate.
53
+ - Relevant command-intent contract entries for status, diff, build, tests, docs, release, or mustflow validation.
54
+
55
+ <!-- mustflow-section: preconditions -->
56
+ ## Preconditions
57
+
58
+ - The task matches the Use When conditions and does not match the Do Not Use When exclusions.
59
+ - Required inputs are available, or missing inputs can be reported without guessing.
60
+ - Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
61
+
62
+ <!-- mustflow-section: allowed-edits -->
63
+ ## Allowed Edits
64
+
65
+ - Add or tighten budget checks, measurement notes, thresholds, cache boundaries, dependency tradeoff notes, tests, docs, and reports tied to the changed performance surface.
66
+ - Replace vague claims such as "fast" or "lightweight" with measured, bounded, or explicitly unverified wording.
67
+ - Prefer existing configured command intents and repository-local measurement paths before adding new tools.
68
+ - Do not invent thresholds, benchmark numbers, hardware assumptions, network conditions, or release-blocking budgets without a source of truth.
69
+
70
+ <!-- mustflow-section: procedure -->
71
+ ## Procedure
72
+
73
+ 1. Identify the performance surface and whether the task affects runtime, build time, test time, docs generation, asset weight, package size, or user-facing load behavior.
74
+ 2. Find the budget source before changing thresholds or claims. If no budget exists, report that the work is budget-discovery or measurement-only.
75
+ 3. Check nearby code, docs, templates, tests, and command metadata for duplicated performance statements or stale thresholds.
76
+ 4. Classify the measurement as deterministic, sampled, local-only, externally dependent, or unmeasured.
77
+ 5. If the change adds dependencies, generated output, or repeated work, identify the likely cost path and whether an existing alternative is available.
78
+ 6. Keep claims conservative: state the command, input scope, and whether caching, warm runs, parallelism, or generated files influenced the result.
79
+ 7. If a budget is exceeded, report the affected surface, budget source, measured value or unavailable measurement, likely cause, and smallest follow-up.
80
+ 8. Run the narrowest configured verification that proves the changed performance, package, docs, or mustflow surface.
81
+
82
+ <!-- mustflow-section: postconditions -->
83
+ ## Postconditions
84
+
85
+ - Performance claims have a budget source, measurement method, or explicit unverified status.
86
+ - Thresholds and benchmark-facing docs, tests, package metadata, generated output notes, and command contracts are synchronized where they overlap.
87
+ - Final reports separate measured evidence from estimates, local observations, and suggested follow-up work.
88
+
89
+ <!-- mustflow-section: verification -->
90
+ ## Verification
91
+
92
+ Use configured oneshot command intents when available:
93
+
94
+ - `changes_status`
95
+ - `changes_diff_summary`
96
+ - `build`
97
+ - `test_related`
98
+ - `docs_validate_fast`
99
+ - `test_release`
100
+ - `mustflow_check`
101
+
102
+ Use a narrower configured benchmark, asset, build, docs, or test intent when it better proves the changed performance surface.
103
+
104
+ <!-- mustflow-section: failure-handling -->
105
+ ## Failure Handling
106
+
107
+ - If no budget source exists, do not invent one. Report the missing source and keep the claim qualitative or measurement-only.
108
+ - If a measurement depends on local hardware, cache state, network, registry state, or generated output from a previous run, state that boundary.
109
+ - If verification is too slow or no configured command exists, report the missing or skipped intent instead of running an inferred command.
110
+ - If a performance fix conflicts with correctness, security, accessibility, or data safety, preserve the stricter correctness boundary and report the tradeoff.
111
+
112
+ <!-- mustflow-section: output-format -->
113
+ ## Output Format
114
+
115
+ - Performance surface reviewed
116
+ - Budget source or missing budget
117
+ - Measurement method and boundary
118
+ - Thresholds, claims, or metadata synchronized
119
+ - Command intents run
120
+ - Skipped measurements and reasons
121
+ - Remaining performance risk
@@ -0,0 +1,107 @@
1
+ ---
2
+ mustflow_doc: skill.project-context-authoring
3
+ locale: zh
4
+ canonical: false
5
+ revision: 2
6
+ lifecycle: mustflow-owned
7
+ authority: procedure
8
+ name: project-context-authoring
9
+ description: Apply this skill when filling or maintaining `.mustflow/context/PROJECT.md` from repository-supported evidence.
10
+ metadata:
11
+ mustflow_schema: "1"
12
+ mustflow_kind: procedure
13
+ pack_id: mustflow.core
14
+ skill_id: mustflow.core.project-context-authoring
15
+ command_intents:
16
+ - mustflow_check
17
+ ---
18
+
19
+ # Project Context Authoring
20
+
21
+ <!-- mustflow-section: purpose -->
22
+ ## Purpose
23
+
24
+ Keep `.mustflow/context/PROJECT.md` useful as a compact agent briefing while preventing invented product direction, architecture, roadmap, or implementation promises.
25
+
26
+ <!-- mustflow-section: use-when -->
27
+ ## Use When
28
+
29
+ - `.mustflow/context/PROJECT.md` is created, filled, corrected, or reorganized.
30
+ - Project goals, non-goals, domain terms, invariants, validation notes, operational constraints, source-of-truth notes, or open questions need to be recorded for agents.
31
+ - Public docs, manifests, tests, source files, or command contracts disagree and the context file needs to record the conflict.
32
+
33
+ <!-- mustflow-section: do-not-use-when -->
34
+ ## Do Not Use When
35
+
36
+ - The task only updates root `README.md`, `PROJECT.md`, `ROADMAP.md`, API docs, or user-facing documentation.
37
+ - The user asks for speculative planning, product vision, or architecture design that is not supported by repository evidence.
38
+ - A nearer project-specific context authoring procedure exists.
39
+ - The change belongs in `AGENTS.md`, `.mustflow/config/commands.toml`, or `.mustflow/docs/agent-workflow.md` rather than low-authority project context.
40
+
41
+ <!-- mustflow-section: required-inputs -->
42
+ ## Required Inputs
43
+
44
+ - Existing `.mustflow/context/PROJECT.md`.
45
+ - `AGENTS.md` and `.mustflow/config/*.toml`.
46
+ - Optional root `PROJECT.md`, `README.md`, `ROADMAP.md`, and `DESIGN.md` when present and relevant.
47
+ - `REPO_MAP.md`, package manifests, existing docs, tests, CI files, and source files only as evidence, not as permission sources.
48
+ - The current user request and any explicit source constraints.
49
+
50
+ <!-- mustflow-section: preconditions -->
51
+ ## Preconditions
52
+
53
+ - The task matches the Use When conditions and does not match the Do Not Use When exclusions.
54
+ - Required inputs are available, or missing inputs can be reported without guessing.
55
+ - Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
56
+
57
+ <!-- mustflow-section: allowed-edits -->
58
+ ## Allowed Edits
59
+
60
+ - Keep edits within the scope described by this skill, the user request, and the matching route in `.mustflow/skills/INDEX.md`.
61
+ - Do not broaden command permission, invent project facts, or change unrelated workflow files.
62
+
63
+ <!-- mustflow-section: procedure -->
64
+ ## Procedure
65
+
66
+ 1. Preserve existing human-written context unless current repository evidence clearly contradicts it.
67
+ 2. Start from the existing context file, then gather only the evidence needed for the requested context fields.
68
+ 3. Separate confirmed facts, assumptions, unknowns, and conflicts. Do not smooth over disagreements between docs, manifests, tests, source files, and command contracts.
69
+ 4. Keep the context concise. Prefer short bullets or short paragraphs over broad essays.
70
+ 5. Cover only supported fields: project summary, goals, non-goals, domain terms, risk areas, invariants, validation, operational constraints, source-of-truth and conflict notes, and open questions.
71
+ 6. Add optional architecture, persona, release, or coding-convention notes only when the repository provides direct evidence.
72
+ 7. Reference command intent names from `.mustflow/config/commands.toml` when describing validation. Do not convert package scripts, CI jobs, or manifest hints into runnable agent permission.
73
+ 8. Leave unknown fields unset or explicitly marked as unknown instead of inventing product goals, roadmap promises, domain rules, or implementation details.
74
+
75
+ <!-- mustflow-section: postconditions -->
76
+ ## Postconditions
77
+
78
+ - The expected output can be produced with clear evidence, executed command intents, skipped checks, and remaining risks.
79
+ - Any missing command intent, unknown input, or authority conflict is reported instead of hidden.
80
+
81
+ <!-- mustflow-section: verification -->
82
+ ## Verification
83
+
84
+ Use configured oneshot command intents when available:
85
+
86
+ - `mustflow_check`
87
+
88
+ If the context update also changes public docs or command contracts, activate the matching skill and use its configured verification intents.
89
+
90
+ <!-- mustflow-section: failure-handling -->
91
+ ## Failure Handling
92
+
93
+ - If evidence conflicts, record the conflict or open question instead of choosing one source silently.
94
+ - If a needed source is missing, mark the claim unknown rather than filling the gap from model memory.
95
+ - If validation fails because context text looks like command policy or file-edit prohibition, move that rule to the proper authority file or remove the unsupported claim.
96
+ - If the context becomes too large, reduce detail to durable facts and source-of-truth notes.
97
+
98
+ <!-- mustflow-section: output-format -->
99
+ ## Output Format
100
+
101
+ - Context fields updated
102
+ - Evidence sources used
103
+ - Confirmed facts added
104
+ - Assumptions, unknowns, or conflicts recorded
105
+ - Command intents run
106
+ - Skipped command intents and reasons
107
+ - Remaining context risks