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.
- package/LICENSE +16 -0
- package/README.md +422 -0
- package/dist/cli/commands/check.js +73 -0
- package/dist/cli/commands/classify.js +104 -0
- package/dist/cli/commands/context.js +95 -0
- package/dist/cli/commands/contract-lint.js +74 -0
- package/dist/cli/commands/dashboard.js +654 -0
- package/dist/cli/commands/docs.js +382 -0
- package/dist/cli/commands/doctor.js +232 -0
- package/dist/cli/commands/explain.js +293 -0
- package/dist/cli/commands/help.js +148 -0
- package/dist/cli/commands/impact.js +120 -0
- package/dist/cli/commands/index.js +70 -0
- package/dist/cli/commands/init.js +986 -0
- package/dist/cli/commands/line-endings.js +102 -0
- package/dist/cli/commands/map.js +95 -0
- package/dist/cli/commands/run.js +442 -0
- package/dist/cli/commands/search.js +166 -0
- package/dist/cli/commands/status.js +65 -0
- package/dist/cli/commands/update.js +443 -0
- package/dist/cli/commands/verify.js +448 -0
- package/dist/cli/commands/version-sources.js +79 -0
- package/dist/cli/commands/version.js +57 -0
- package/dist/cli/i18n/en.js +702 -0
- package/dist/cli/i18n/es.js +702 -0
- package/dist/cli/i18n/fr.js +702 -0
- package/dist/cli/i18n/hi.js +702 -0
- package/dist/cli/i18n/ko.js +702 -0
- package/dist/cli/i18n/zh.js +702 -0
- package/dist/cli/index.js +218 -0
- package/dist/cli/lib/agent-context.js +342 -0
- package/dist/cli/lib/browser-open.js +58 -0
- package/dist/cli/lib/cli-output.js +36 -0
- package/dist/cli/lib/command-contract.js +1 -0
- package/dist/cli/lib/command-registry.js +107 -0
- package/dist/cli/lib/dashboard-html.js +1866 -0
- package/dist/cli/lib/dashboard-locale.js +309 -0
- package/dist/cli/lib/dashboard-preferences.js +405 -0
- package/dist/cli/lib/doc-review-ledger.js +226 -0
- package/dist/cli/lib/filesystem.js +125 -0
- package/dist/cli/lib/git-changes.js +13 -0
- package/dist/cli/lib/i18n.js +55 -0
- package/dist/cli/lib/local-index.js +1014 -0
- package/dist/cli/lib/locale-tags.js +4 -0
- package/dist/cli/lib/manifest-lock.js +131 -0
- package/dist/cli/lib/npm-version-check.js +97 -0
- package/dist/cli/lib/package-info.js +13 -0
- package/dist/cli/lib/preferences-options.js +8 -0
- package/dist/cli/lib/project-root.js +23 -0
- package/dist/cli/lib/repo-map.js +635 -0
- package/dist/cli/lib/reporter.js +8 -0
- package/dist/cli/lib/run-receipt.js +1 -0
- package/dist/cli/lib/template-i18n.js +265 -0
- package/dist/cli/lib/templates.js +188 -0
- package/dist/cli/lib/toml.js +1 -0
- package/dist/cli/lib/validation.js +1639 -0
- package/dist/cli/lib/version-sources.js +1 -0
- package/dist/core/authority-resolution.js +155 -0
- package/dist/core/change-classification.js +122 -0
- package/dist/core/change-verification.js +80 -0
- package/dist/core/check-issues.js +67 -0
- package/dist/core/command-classification.js +22 -0
- package/dist/core/command-contract-rules.js +27 -0
- package/dist/core/command-contract-validation.js +197 -0
- package/dist/core/command-cwd.js +12 -0
- package/dist/core/command-effects.js +182 -0
- package/dist/core/command-explanation.js +135 -0
- package/dist/core/command-intent-eligibility.js +76 -0
- package/dist/core/config-loading.js +54 -0
- package/dist/core/contract-lint.js +110 -0
- package/dist/core/contract-models.js +53 -0
- package/dist/core/dashboard-verification.js +132 -0
- package/dist/core/doc-review-triage.js +92 -0
- package/dist/core/line-endings.js +144 -0
- package/dist/core/public-json-contracts.js +112 -0
- package/dist/core/public-surface-explanation.js +49 -0
- package/dist/core/release-version-validation.js +53 -0
- package/dist/core/retention-explanation.js +74 -0
- package/dist/core/retention-policy.js +57 -0
- package/dist/core/run-receipt.js +77 -0
- package/dist/core/skill-route-alignment.js +100 -0
- package/dist/core/skill-route-explanation.js +117 -0
- package/dist/core/source-anchor-explanation.js +33 -0
- package/dist/core/source-anchor-status.js +269 -0
- package/dist/core/source-anchor-symbols.js +181 -0
- package/dist/core/source-anchor-validation.js +158 -0
- package/dist/core/source-anchors.js +194 -0
- package/dist/core/surface-decision-model.js +18 -0
- package/dist/core/toml.js +11 -0
- package/dist/core/verification-plan.js +41 -0
- package/dist/core/verification-scheduler.js +92 -0
- package/dist/core/version-impact.js +54 -0
- package/dist/core/version-sources.js +235 -0
- package/dist/core/version-sync-policy.js +85 -0
- package/examples/README.md +13 -0
- package/examples/docs-only/README.md +72 -0
- package/examples/host-instruction-conflicts/README.md +47 -0
- package/examples/minimal-js/README.md +98 -0
- package/examples/missing-command-contracts/README.md +70 -0
- package/examples/nested-repos/README.md +62 -0
- package/package.json +80 -0
- package/schemas/README.md +32 -0
- package/schemas/change-verification-report.schema.json +319 -0
- package/schemas/classify-report.schema.json +113 -0
- package/schemas/commands.schema.json +116 -0
- package/schemas/context-report.schema.json +341 -0
- package/schemas/contract-lint-report.schema.json +61 -0
- package/schemas/docs-review-list.schema.json +72 -0
- package/schemas/doctor-report.schema.json +175 -0
- package/schemas/explain-report.schema.json +471 -0
- package/schemas/impact-report.schema.json +121 -0
- package/schemas/line-endings-report.schema.json +63 -0
- package/schemas/run-receipt.schema.json +75 -0
- package/schemas/verify-report.schema.json +67 -0
- package/schemas/version-sources-report.schema.json +42 -0
- package/templates/default/common/.mustflow/config/commands.toml +251 -0
- package/templates/default/common/.mustflow/config/mustflow.toml +424 -0
- package/templates/default/common/.mustflow/config/preferences.toml +125 -0
- package/templates/default/common/gitignore.mustflow +9 -0
- package/templates/default/i18n.toml +483 -0
- package/templates/default/locales/en/.mustflow/context/INDEX.md +39 -0
- package/templates/default/locales/en/.mustflow/context/PROJECT.md +66 -0
- package/templates/default/locales/en/.mustflow/docs/agent-workflow.md +345 -0
- package/templates/default/locales/en/.mustflow/skills/INDEX.md +78 -0
- package/templates/default/locales/en/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
- package/templates/default/locales/en/.mustflow/skills/artifact-integrity-check/SKILL.md +121 -0
- package/templates/default/locales/en/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
- package/templates/default/locales/en/.mustflow/skills/code-review/SKILL.md +115 -0
- package/templates/default/locales/en/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
- package/templates/default/locales/en/.mustflow/skills/command-pattern/SKILL.md +247 -0
- package/templates/default/locales/en/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
- package/templates/default/locales/en/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
- package/templates/default/locales/en/.mustflow/skills/date-number-audit/SKILL.md +116 -0
- package/templates/default/locales/en/.mustflow/skills/dependency-injection/SKILL.md +161 -0
- package/templates/default/locales/en/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
- package/templates/default/locales/en/.mustflow/skills/diff-risk-review/SKILL.md +143 -0
- package/templates/default/locales/en/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
- package/templates/default/locales/en/.mustflow/skills/docs-update/SKILL.md +100 -0
- package/templates/default/locales/en/.mustflow/skills/external-prompt-injection-defense/SKILL.md +124 -0
- package/templates/default/locales/en/.mustflow/skills/facade-pattern/SKILL.md +210 -0
- package/templates/default/locales/en/.mustflow/skills/failure-triage/SKILL.md +97 -0
- package/templates/default/locales/en/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
- package/templates/default/locales/en/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
- package/templates/default/locales/en/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
- package/templates/default/locales/en/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
- package/templates/default/locales/en/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
- package/templates/default/locales/en/.mustflow/skills/pattern-scout/SKILL.md +110 -0
- package/templates/default/locales/en/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
- package/templates/default/locales/en/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
- package/templates/default/locales/en/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
- package/templates/default/locales/en/.mustflow/skills/readme-authoring/SKILL.md +115 -0
- package/templates/default/locales/en/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
- package/templates/default/locales/en/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
- package/templates/default/locales/en/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
- package/templates/default/locales/en/.mustflow/skills/result-option/SKILL.md +186 -0
- package/templates/default/locales/en/.mustflow/skills/security-privacy-review/SKILL.md +130 -0
- package/templates/default/locales/en/.mustflow/skills/security-regression-tests/SKILL.md +157 -0
- package/templates/default/locales/en/.mustflow/skills/skill-authoring/SKILL.md +110 -0
- package/templates/default/locales/en/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
- package/templates/default/locales/en/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
- package/templates/default/locales/en/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
- package/templates/default/locales/en/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
- package/templates/default/locales/en/.mustflow/skills/test-maintenance/SKILL.md +122 -0
- package/templates/default/locales/en/.mustflow/skills/ui-quality-gate/SKILL.md +119 -0
- package/templates/default/locales/en/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
- package/templates/default/locales/en/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
- package/templates/default/locales/en/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
- package/templates/default/locales/en/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
- package/templates/default/locales/en/AGENTS.md +114 -0
- package/templates/default/locales/es/.mustflow/context/INDEX.md +39 -0
- package/templates/default/locales/es/.mustflow/context/PROJECT.md +63 -0
- package/templates/default/locales/es/.mustflow/docs/agent-workflow.md +365 -0
- package/templates/default/locales/es/.mustflow/skills/INDEX.md +78 -0
- package/templates/default/locales/es/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
- package/templates/default/locales/es/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
- package/templates/default/locales/es/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
- package/templates/default/locales/es/.mustflow/skills/code-review/SKILL.md +115 -0
- package/templates/default/locales/es/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
- package/templates/default/locales/es/.mustflow/skills/command-pattern/SKILL.md +247 -0
- package/templates/default/locales/es/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
- package/templates/default/locales/es/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
- package/templates/default/locales/es/.mustflow/skills/date-number-audit/SKILL.md +116 -0
- package/templates/default/locales/es/.mustflow/skills/dependency-injection/SKILL.md +161 -0
- package/templates/default/locales/es/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
- package/templates/default/locales/es/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
- package/templates/default/locales/es/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
- package/templates/default/locales/es/.mustflow/skills/docs-update/SKILL.md +97 -0
- package/templates/default/locales/es/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
- package/templates/default/locales/es/.mustflow/skills/facade-pattern/SKILL.md +210 -0
- package/templates/default/locales/es/.mustflow/skills/failure-triage/SKILL.md +97 -0
- package/templates/default/locales/es/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
- package/templates/default/locales/es/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
- package/templates/default/locales/es/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
- package/templates/default/locales/es/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
- package/templates/default/locales/es/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
- package/templates/default/locales/es/.mustflow/skills/pattern-scout/SKILL.md +110 -0
- package/templates/default/locales/es/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
- package/templates/default/locales/es/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
- package/templates/default/locales/es/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
- package/templates/default/locales/es/.mustflow/skills/readme-authoring/SKILL.md +115 -0
- package/templates/default/locales/es/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
- package/templates/default/locales/es/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
- package/templates/default/locales/es/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
- package/templates/default/locales/es/.mustflow/skills/result-option/SKILL.md +186 -0
- package/templates/default/locales/es/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
- package/templates/default/locales/es/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
- package/templates/default/locales/es/.mustflow/skills/skill-authoring/SKILL.md +110 -0
- package/templates/default/locales/es/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
- package/templates/default/locales/es/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
- package/templates/default/locales/es/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
- package/templates/default/locales/es/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
- package/templates/default/locales/es/.mustflow/skills/test-maintenance/SKILL.md +122 -0
- package/templates/default/locales/es/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
- package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
- package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
- package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
- package/templates/default/locales/es/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
- package/templates/default/locales/es/AGENTS.md +83 -0
- package/templates/default/locales/fr/.mustflow/context/INDEX.md +39 -0
- package/templates/default/locales/fr/.mustflow/context/PROJECT.md +63 -0
- package/templates/default/locales/fr/.mustflow/docs/agent-workflow.md +368 -0
- package/templates/default/locales/fr/.mustflow/skills/INDEX.md +78 -0
- package/templates/default/locales/fr/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
- package/templates/default/locales/fr/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
- package/templates/default/locales/fr/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
- package/templates/default/locales/fr/.mustflow/skills/code-review/SKILL.md +115 -0
- package/templates/default/locales/fr/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
- package/templates/default/locales/fr/.mustflow/skills/command-pattern/SKILL.md +247 -0
- package/templates/default/locales/fr/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
- package/templates/default/locales/fr/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
- package/templates/default/locales/fr/.mustflow/skills/date-number-audit/SKILL.md +116 -0
- package/templates/default/locales/fr/.mustflow/skills/dependency-injection/SKILL.md +161 -0
- package/templates/default/locales/fr/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
- package/templates/default/locales/fr/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
- package/templates/default/locales/fr/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
- package/templates/default/locales/fr/.mustflow/skills/docs-update/SKILL.md +97 -0
- package/templates/default/locales/fr/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
- package/templates/default/locales/fr/.mustflow/skills/facade-pattern/SKILL.md +210 -0
- package/templates/default/locales/fr/.mustflow/skills/failure-triage/SKILL.md +97 -0
- package/templates/default/locales/fr/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
- package/templates/default/locales/fr/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
- package/templates/default/locales/fr/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
- package/templates/default/locales/fr/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
- package/templates/default/locales/fr/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
- package/templates/default/locales/fr/.mustflow/skills/pattern-scout/SKILL.md +110 -0
- package/templates/default/locales/fr/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
- package/templates/default/locales/fr/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
- package/templates/default/locales/fr/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
- package/templates/default/locales/fr/.mustflow/skills/readme-authoring/SKILL.md +115 -0
- package/templates/default/locales/fr/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
- package/templates/default/locales/fr/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
- package/templates/default/locales/fr/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
- package/templates/default/locales/fr/.mustflow/skills/result-option/SKILL.md +186 -0
- package/templates/default/locales/fr/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
- package/templates/default/locales/fr/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
- package/templates/default/locales/fr/.mustflow/skills/skill-authoring/SKILL.md +110 -0
- package/templates/default/locales/fr/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
- package/templates/default/locales/fr/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
- package/templates/default/locales/fr/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
- package/templates/default/locales/fr/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
- package/templates/default/locales/fr/.mustflow/skills/test-maintenance/SKILL.md +122 -0
- package/templates/default/locales/fr/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
- package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
- package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
- package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
- package/templates/default/locales/fr/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
- package/templates/default/locales/fr/AGENTS.md +84 -0
- package/templates/default/locales/hi/.mustflow/context/INDEX.md +39 -0
- package/templates/default/locales/hi/.mustflow/context/PROJECT.md +65 -0
- package/templates/default/locales/hi/.mustflow/docs/agent-workflow.md +359 -0
- package/templates/default/locales/hi/.mustflow/skills/INDEX.md +78 -0
- package/templates/default/locales/hi/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
- package/templates/default/locales/hi/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
- package/templates/default/locales/hi/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
- package/templates/default/locales/hi/.mustflow/skills/code-review/SKILL.md +115 -0
- package/templates/default/locales/hi/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
- package/templates/default/locales/hi/.mustflow/skills/command-pattern/SKILL.md +247 -0
- package/templates/default/locales/hi/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
- package/templates/default/locales/hi/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
- package/templates/default/locales/hi/.mustflow/skills/date-number-audit/SKILL.md +116 -0
- package/templates/default/locales/hi/.mustflow/skills/dependency-injection/SKILL.md +161 -0
- package/templates/default/locales/hi/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
- package/templates/default/locales/hi/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
- package/templates/default/locales/hi/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
- package/templates/default/locales/hi/.mustflow/skills/docs-update/SKILL.md +97 -0
- package/templates/default/locales/hi/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
- package/templates/default/locales/hi/.mustflow/skills/facade-pattern/SKILL.md +210 -0
- package/templates/default/locales/hi/.mustflow/skills/failure-triage/SKILL.md +97 -0
- package/templates/default/locales/hi/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
- package/templates/default/locales/hi/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
- package/templates/default/locales/hi/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
- package/templates/default/locales/hi/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
- package/templates/default/locales/hi/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
- package/templates/default/locales/hi/.mustflow/skills/pattern-scout/SKILL.md +110 -0
- package/templates/default/locales/hi/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
- package/templates/default/locales/hi/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
- package/templates/default/locales/hi/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
- package/templates/default/locales/hi/.mustflow/skills/readme-authoring/SKILL.md +115 -0
- package/templates/default/locales/hi/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
- package/templates/default/locales/hi/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
- package/templates/default/locales/hi/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
- package/templates/default/locales/hi/.mustflow/skills/result-option/SKILL.md +186 -0
- package/templates/default/locales/hi/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
- package/templates/default/locales/hi/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
- package/templates/default/locales/hi/.mustflow/skills/skill-authoring/SKILL.md +110 -0
- package/templates/default/locales/hi/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
- package/templates/default/locales/hi/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
- package/templates/default/locales/hi/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
- package/templates/default/locales/hi/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
- package/templates/default/locales/hi/.mustflow/skills/test-maintenance/SKILL.md +122 -0
- package/templates/default/locales/hi/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
- package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
- package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
- package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
- package/templates/default/locales/hi/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
- package/templates/default/locales/hi/AGENTS.md +83 -0
- package/templates/default/locales/ko/.mustflow/context/INDEX.md +39 -0
- package/templates/default/locales/ko/.mustflow/context/PROJECT.md +66 -0
- package/templates/default/locales/ko/.mustflow/docs/agent-workflow.md +506 -0
- package/templates/default/locales/ko/.mustflow/skills/INDEX.md +78 -0
- package/templates/default/locales/ko/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
- package/templates/default/locales/ko/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
- package/templates/default/locales/ko/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
- package/templates/default/locales/ko/.mustflow/skills/code-review/SKILL.md +118 -0
- package/templates/default/locales/ko/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
- package/templates/default/locales/ko/.mustflow/skills/command-pattern/SKILL.md +247 -0
- package/templates/default/locales/ko/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
- package/templates/default/locales/ko/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
- package/templates/default/locales/ko/.mustflow/skills/date-number-audit/SKILL.md +116 -0
- package/templates/default/locales/ko/.mustflow/skills/dependency-injection/SKILL.md +161 -0
- package/templates/default/locales/ko/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
- package/templates/default/locales/ko/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
- package/templates/default/locales/ko/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
- package/templates/default/locales/ko/.mustflow/skills/docs-update/SKILL.md +107 -0
- package/templates/default/locales/ko/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
- package/templates/default/locales/ko/.mustflow/skills/facade-pattern/SKILL.md +210 -0
- package/templates/default/locales/ko/.mustflow/skills/failure-triage/SKILL.md +119 -0
- package/templates/default/locales/ko/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
- package/templates/default/locales/ko/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
- package/templates/default/locales/ko/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
- package/templates/default/locales/ko/.mustflow/skills/multi-agent-work-coordination/SKILL.md +259 -0
- package/templates/default/locales/ko/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
- package/templates/default/locales/ko/.mustflow/skills/pattern-scout/SKILL.md +110 -0
- package/templates/default/locales/ko/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
- package/templates/default/locales/ko/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
- package/templates/default/locales/ko/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
- package/templates/default/locales/ko/.mustflow/skills/readme-authoring/SKILL.md +115 -0
- package/templates/default/locales/ko/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
- package/templates/default/locales/ko/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
- package/templates/default/locales/ko/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
- package/templates/default/locales/ko/.mustflow/skills/result-option/SKILL.md +186 -0
- package/templates/default/locales/ko/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
- package/templates/default/locales/ko/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
- package/templates/default/locales/ko/.mustflow/skills/skill-authoring/SKILL.md +110 -0
- package/templates/default/locales/ko/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
- package/templates/default/locales/ko/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
- package/templates/default/locales/ko/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
- package/templates/default/locales/ko/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
- package/templates/default/locales/ko/.mustflow/skills/test-maintenance/SKILL.md +130 -0
- package/templates/default/locales/ko/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
- package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
- package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
- package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
- package/templates/default/locales/ko/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
- package/templates/default/locales/ko/AGENTS.md +85 -0
- package/templates/default/locales/zh/.mustflow/context/INDEX.md +39 -0
- package/templates/default/locales/zh/.mustflow/context/PROJECT.md +64 -0
- package/templates/default/locales/zh/.mustflow/docs/agent-workflow.md +310 -0
- package/templates/default/locales/zh/.mustflow/skills/INDEX.md +78 -0
- package/templates/default/locales/zh/.mustflow/skills/adapter-boundary/SKILL.md +193 -0
- package/templates/default/locales/zh/.mustflow/skills/artifact-integrity-check/SKILL.md +114 -0
- package/templates/default/locales/zh/.mustflow/skills/behavior-preserving-refactor/SKILL.md +182 -0
- package/templates/default/locales/zh/.mustflow/skills/code-review/SKILL.md +115 -0
- package/templates/default/locales/zh/.mustflow/skills/codebase-orientation/SKILL.md +115 -0
- package/templates/default/locales/zh/.mustflow/skills/command-pattern/SKILL.md +247 -0
- package/templates/default/locales/zh/.mustflow/skills/composition-over-inheritance/SKILL.md +176 -0
- package/templates/default/locales/zh/.mustflow/skills/contract-sync-check/SKILL.md +116 -0
- package/templates/default/locales/zh/.mustflow/skills/date-number-audit/SKILL.md +116 -0
- package/templates/default/locales/zh/.mustflow/skills/dependency-injection/SKILL.md +161 -0
- package/templates/default/locales/zh/.mustflow/skills/dependency-reality-check/SKILL.md +115 -0
- package/templates/default/locales/zh/.mustflow/skills/diff-risk-review/SKILL.md +136 -0
- package/templates/default/locales/zh/.mustflow/skills/docs-prose-review/SKILL.md +119 -0
- package/templates/default/locales/zh/.mustflow/skills/docs-update/SKILL.md +97 -0
- package/templates/default/locales/zh/.mustflow/skills/external-prompt-injection-defense/SKILL.md +116 -0
- package/templates/default/locales/zh/.mustflow/skills/facade-pattern/SKILL.md +210 -0
- package/templates/default/locales/zh/.mustflow/skills/failure-triage/SKILL.md +96 -0
- package/templates/default/locales/zh/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +118 -0
- package/templates/default/locales/zh/.mustflow/skills/line-ending-hygiene/SKILL.md +111 -0
- package/templates/default/locales/zh/.mustflow/skills/migration-safety-check/SKILL.md +117 -0
- package/templates/default/locales/zh/.mustflow/skills/multi-agent-work-coordination/SKILL.md +260 -0
- package/templates/default/locales/zh/.mustflow/skills/null-object-pattern/SKILL.md +196 -0
- package/templates/default/locales/zh/.mustflow/skills/pattern-scout/SKILL.md +110 -0
- package/templates/default/locales/zh/.mustflow/skills/performance-budget-check/SKILL.md +121 -0
- package/templates/default/locales/zh/.mustflow/skills/project-context-authoring/SKILL.md +107 -0
- package/templates/default/locales/zh/.mustflow/skills/pure-core-imperative-shell/SKILL.md +212 -0
- package/templates/default/locales/zh/.mustflow/skills/readme-authoring/SKILL.md +115 -0
- package/templates/default/locales/zh/.mustflow/skills/repo-improvement-loop/SKILL.md +150 -0
- package/templates/default/locales/zh/.mustflow/skills/repro-first-debug/SKILL.md +112 -0
- package/templates/default/locales/zh/.mustflow/skills/requirement-regression-guard/SKILL.md +152 -0
- package/templates/default/locales/zh/.mustflow/skills/result-option/SKILL.md +186 -0
- package/templates/default/locales/zh/.mustflow/skills/security-privacy-review/SKILL.md +116 -0
- package/templates/default/locales/zh/.mustflow/skills/security-regression-tests/SKILL.md +131 -0
- package/templates/default/locales/zh/.mustflow/skills/skill-authoring/SKILL.md +110 -0
- package/templates/default/locales/zh/.mustflow/skills/source-freshness-check/SKILL.md +111 -0
- package/templates/default/locales/zh/.mustflow/skills/state-machine-pattern/SKILL.md +214 -0
- package/templates/default/locales/zh/.mustflow/skills/strategy-pattern/SKILL.md +215 -0
- package/templates/default/locales/zh/.mustflow/skills/structure-discovery-gate/SKILL.md +159 -0
- package/templates/default/locales/zh/.mustflow/skills/test-maintenance/SKILL.md +122 -0
- package/templates/default/locales/zh/.mustflow/skills/ui-quality-gate/SKILL.md +117 -0
- package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/SKILL.md +127 -0
- package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/assets/review-template.html +286 -0
- package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/resources.toml +7 -0
- package/templates/default/locales/zh/.mustflow/skills/web-asset-optimization/SKILL.md +108 -0
- package/templates/default/locales/zh/AGENTS.md +86 -0
- package/templates/default/manifest.toml +339 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.pattern-scout
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 1
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: pattern-scout
|
|
9
|
+
description: 익숙하지 않은 영역을 구현하기 전, 이미 저장소 안에 같은 모양을 해결한 패턴이 있는지 확인할 때 적용합니다.
|
|
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
|
+
# 패턴 먼저 찾기
|
|
22
|
+
|
|
23
|
+
<!-- mustflow-section: purpose -->
|
|
24
|
+
## 목적
|
|
25
|
+
|
|
26
|
+
새 구조, 이름, 데이터 흐름, 테스트 방식, 문서 형태를 만들기 전에 가장 가까운 저장소 내부 구현 패턴을 찾습니다.
|
|
27
|
+
|
|
28
|
+
<!-- mustflow-section: use-when -->
|
|
29
|
+
## 사용할 때
|
|
30
|
+
|
|
31
|
+
- 익숙하지 않은 모듈, 명령, 화면, 스키마, 템플릿, 스킬, 문서 묶음을 수정합니다.
|
|
32
|
+
- 비슷한 기능이 저장소 다른 곳에 이미 있을 가능성이 있습니다.
|
|
33
|
+
- 충분한 근거 없이 새 추상화, 도우미, 파일 배치, 테스트 스타일을 만들 위험이 있습니다.
|
|
34
|
+
- 기존 이름 규칙, 다국어 처리, 검증, 패키징 관례에 맞춰야 합니다.
|
|
35
|
+
|
|
36
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
37
|
+
## 사용하지 않을 때
|
|
38
|
+
|
|
39
|
+
- 주변 패턴이 명확한 아주 작은 기계적 수정입니다.
|
|
40
|
+
- 사용자가 기존 구조 밖의 일회성 실험이나 시제품을 명시적으로 요청했습니다.
|
|
41
|
+
- 현재 작업 맥락에서 이미 기존 패턴을 알고 있고 새 영역을 건드리지 않습니다.
|
|
42
|
+
|
|
43
|
+
<!-- mustflow-section: required-inputs -->
|
|
44
|
+
## 필요한 입력
|
|
45
|
+
|
|
46
|
+
- 사용자 요청과 수정하려는 파일 영역.
|
|
47
|
+
- 주변 파일과, 가능하다면 하나 이상의 유사 구현.
|
|
48
|
+
- 관련 경로, 스키마, 템플릿, 테스트, 문서 예시.
|
|
49
|
+
- 이미 작업 중이라면 현재 변경 파일 목록.
|
|
50
|
+
|
|
51
|
+
<!-- mustflow-section: preconditions -->
|
|
52
|
+
## 전제 조건
|
|
53
|
+
|
|
54
|
+
- 작업이 사용할 때 조건에 맞고 사용하지 않을 때 조건에는 해당하지 않습니다.
|
|
55
|
+
- 필요한 입력이 있거나, 부족한 입력을 추측하지 않고 보고할 수 있습니다.
|
|
56
|
+
- 현재 범위의 상위 지시와 `.mustflow/config/commands.toml`을 확인했습니다.
|
|
57
|
+
|
|
58
|
+
<!-- mustflow-section: allowed-edits -->
|
|
59
|
+
## 허용되는 수정
|
|
60
|
+
|
|
61
|
+
- 수정 전에는 읽기 중심 탐색을 우선합니다.
|
|
62
|
+
- 패턴을 고른 뒤에는 요청한 변경에 그 패턴을 적용하는 데 필요한 파일만 수정합니다.
|
|
63
|
+
- 맞는 내부 패턴이 없을 때만 새 패턴을 추가하고, 왜 새 형태가 필요한지 기록합니다.
|
|
64
|
+
|
|
65
|
+
<!-- mustflow-section: procedure -->
|
|
66
|
+
## 절차
|
|
67
|
+
|
|
68
|
+
1. 변경 형태를 이름 붙입니다. 예: 명령, 화면, 스키마, 템플릿 문서, 스킬, 테스트, 문서 페이지, 그 밖의 저장소 내부 분류.
|
|
69
|
+
2. 같은 분류에서 가장 가까운 기존 예시를 찾고, 소유 경계, 이름 규칙, 데이터 흐름, 검증 방식을 이해할 만큼 주변 코드를 읽습니다.
|
|
70
|
+
3. 가장 가까운 패턴을 고르고 그 패턴을 정의하는 파일을 적습니다. 패턴이 여럿 충돌하면 수정할 파일에 가장 가까운 쪽을 고릅니다.
|
|
71
|
+
4. 맞춰야 하는 부분을 확인합니다. 예: 파일 이름, 앞부분 메타데이터, 스키마 키, 다국어 키, 테스트 도우미 스타일, 매니페스트 항목, 잠금 항목, 문서 라우팅.
|
|
72
|
+
5. 병렬 구조를 새로 만들지 말고 선택한 패턴을 확장해 구현합니다.
|
|
73
|
+
6. 가장 가까운 패턴과 의도적으로 다르게 구현했다면 최종 보고에서 이유를 밝힙니다.
|
|
74
|
+
7. 변경한 패턴을 덮는 가장 작은 구성된 검증을 실행합니다.
|
|
75
|
+
|
|
76
|
+
<!-- mustflow-section: postconditions -->
|
|
77
|
+
## 완료 조건
|
|
78
|
+
|
|
79
|
+
- 구현은 이름 붙인 내부 패턴을 따르거나, 왜 벗어났는지 분명히 설명합니다.
|
|
80
|
+
- 새 파일은 해당 패턴이 쓰는 모든 색인, 매니페스트, 스키마, 다국어, 문서 표면에 연결되어 있습니다.
|
|
81
|
+
- 최종 보고에는 패턴 근거와 의도적 차이가 적혀 있습니다.
|
|
82
|
+
|
|
83
|
+
<!-- mustflow-section: verification -->
|
|
84
|
+
## 검증
|
|
85
|
+
|
|
86
|
+
사용 가능한 구성된 일회성 명령 의도를 사용합니다.
|
|
87
|
+
|
|
88
|
+
- `changes_status`
|
|
89
|
+
- `changes_diff_summary`
|
|
90
|
+
- `mustflow_check`
|
|
91
|
+
|
|
92
|
+
선택한 패턴이 요구하는 더 좁은 테스트, 빌드, 문서 검증 의도가 있으면 함께 실행합니다.
|
|
93
|
+
|
|
94
|
+
<!-- mustflow-section: failure-handling -->
|
|
95
|
+
## 실패 처리
|
|
96
|
+
|
|
97
|
+
- 내부 패턴이 없으면 새 패턴임을 보고하고 첫 버전은 작게 유지합니다.
|
|
98
|
+
- 패턴이 충돌하면 수정 파일에 가장 가까운 쪽을 우선하고 절충점을 보고합니다.
|
|
99
|
+
- 검증에서 빠진 색인이나 메타데이터 정합성이 드러나면 관련 없는 로직을 더하기 전에 정합성을 먼저 고칩니다.
|
|
100
|
+
- 가장 가까운 패턴이 오래되었거나 깨져 있다면 그대로 복사하지 말고, 그 사실을 보고한 뒤 더 안전한 내부 선례를 고릅니다.
|
|
101
|
+
|
|
102
|
+
<!-- mustflow-section: output-format -->
|
|
103
|
+
## 출력 형식
|
|
104
|
+
|
|
105
|
+
- 변경 형태
|
|
106
|
+
- 확인한 내부 패턴
|
|
107
|
+
- 적용한 패턴 또는 벗어난 이유
|
|
108
|
+
- 맞춰 둔 색인, 매니페스트, 문서
|
|
109
|
+
- 실행한 명령 의도
|
|
110
|
+
- 건너뛴 검증과 이유
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.performance-budget-check
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 1
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: performance-budget-check
|
|
9
|
+
description: 성능 예산, 번들 크기, 페이지 무게, 시작 시간, 명령 실행 시간, 메모리 사용량, 자산 크기, 처리량, 지연 시간, 벤치마크 출력, 성능 주장을 계획, 수정, 검토, 보고할 때 적용합니다.
|
|
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
|
+
# 성능 예산 확인
|
|
26
|
+
|
|
27
|
+
<!-- mustflow-section: purpose -->
|
|
28
|
+
## 목적
|
|
29
|
+
|
|
30
|
+
성능 주장과 예산을 로컬 체감으로 추측하지 않고, 선언된 기준값, 재현 가능한 측정, 명시적인 절충점에 묶어 둡니다.
|
|
31
|
+
|
|
32
|
+
<!-- mustflow-section: use-when -->
|
|
33
|
+
## 사용할 때
|
|
34
|
+
|
|
35
|
+
- 작업이 성능 예산, 번들 크기, 페이지 무게, 시작 시간, 명령 실행 시간, 메모리 사용량, 자산 크기, 처리량, 지연 시간, 검색 인덱스 크기, 빌드 시간, 벤치마크 출력을 바꾸거나 보고합니다.
|
|
36
|
+
- 변경이 더 무거운 의존성, 생성된 자산, 정적 페이지, 검색 인덱스, 시작 시 작업, 파일 스캔, 여러 명령 실행, 반복적인 프로세스 생성을 추가합니다.
|
|
37
|
+
- 보고가 어떤 경로가 더 빠름, 느림, 가벼움, 최적화됨, 캐시됨, 병렬화됨, 저렴함, 비쌈, 예산 안에 있음, 예산을 넘었음을 주장합니다.
|
|
38
|
+
- 실패나 느려짐이 측정 범위, 명령 선택, 동시 실행, 캐시, 생성 결과 크기 검토가 필요함을 시사합니다.
|
|
39
|
+
|
|
40
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
41
|
+
## 사용하지 않을 때
|
|
42
|
+
|
|
43
|
+
- 작업이 문구만 바꾸며 성능이나 크기 주장을 만들지 않습니다.
|
|
44
|
+
- 숫자가 예산이나 공개 보고 의미가 없는 로컬 fixture 또는 예시에 불과합니다.
|
|
45
|
+
- 변경이 이미지 자산 변환만 다룹니다. 해당 자산 파이프라인에는 `web-asset-optimization`을 사용하고, 이 스킬은 예산 보고가 필요할 때만 함께 사용합니다.
|
|
46
|
+
|
|
47
|
+
<!-- mustflow-section: required-inputs -->
|
|
48
|
+
## 필요한 입력
|
|
49
|
+
|
|
50
|
+
- 명령, 페이지, 자산, 번들, 시작 경로, 쿼리, 빌드, 생성 결과 같은 성능 표면.
|
|
51
|
+
- 존재한다면 예산 출처: 저장소 설정, 문서화된 기준값, 사용자가 준 한도, 벤치마크 기준선, 패키지 메타데이터, 현재 명령 결과.
|
|
52
|
+
- 측정 방식, 환경 경계, 예열 여부, 결과가 결정적인지, 표본인지, 로컬 전용인지, 근삿값인지.
|
|
53
|
+
- 상태, diff, 빌드, 테스트, 문서, 릴리스, mustflow 검증에 관한 명령 의도 계약 항목.
|
|
54
|
+
|
|
55
|
+
<!-- mustflow-section: preconditions -->
|
|
56
|
+
## 전제 조건
|
|
57
|
+
|
|
58
|
+
- 작업이 사용할 때 조건에 맞고 사용하지 않을 때 조건에는 해당하지 않습니다.
|
|
59
|
+
- 필요한 입력이 있거나, 부족한 입력을 추측하지 않고 보고할 수 있습니다.
|
|
60
|
+
- 현재 범위의 상위 지시와 `.mustflow/config/commands.toml`을 확인했습니다.
|
|
61
|
+
|
|
62
|
+
<!-- mustflow-section: allowed-edits -->
|
|
63
|
+
## 허용되는 수정
|
|
64
|
+
|
|
65
|
+
- 변경된 성능 표면에 연결된 예산 검사, 측정 메모, 기준값, 캐시 경계, 의존성 절충 메모, 테스트, 문서, 보고를 추가하거나 강화합니다.
|
|
66
|
+
- "빠르다" 또는 "가볍다" 같은 모호한 주장을 측정된 표현, 범위가 있는 표현, 또는 명시적인 미검증 표현으로 바꿉니다.
|
|
67
|
+
- 새 도구를 추가하기 전에 기존의 구성된 명령 의도와 저장소 안의 측정 경로를 우선합니다.
|
|
68
|
+
- 진실 출처 없이 기준값, 벤치마크 숫자, 하드웨어 가정, 네트워크 조건, 릴리스 차단 예산을 지어내지 않습니다.
|
|
69
|
+
|
|
70
|
+
<!-- mustflow-section: procedure -->
|
|
71
|
+
## 절차
|
|
72
|
+
|
|
73
|
+
1. 성능 표면을 식별하고 작업이 런타임, 빌드 시간, 테스트 시간, 문서 생성, 자산 무게, 패키지 크기, 사용자에게 보이는 로딩 동작 중 무엇에 영향을 주는지 분류합니다.
|
|
74
|
+
2. 기준값이나 주장을 바꾸기 전에 예산 출처를 찾습니다. 예산이 없으면 이 작업을 예산 발견 또는 측정 전용 작업으로 보고합니다.
|
|
75
|
+
3. 주변 코드, 문서, 템플릿, 테스트, 명령 메타데이터에서 중복된 성능 문장이나 오래된 기준값을 확인합니다.
|
|
76
|
+
4. 측정값을 결정적, 표본, 로컬 전용, 외부 의존, 미측정으로 분류합니다.
|
|
77
|
+
5. 변경이 의존성, 생성 결과, 반복 작업을 추가한다면 예상 비용 경로와 기존 대안이 있는지 확인합니다.
|
|
78
|
+
6. 주장은 보수적으로 둡니다. 명령, 입력 범위, 캐시, 예열, 병렬 실행, 생성 파일이 결과에 영향을 줬는지 함께 밝힙니다.
|
|
79
|
+
7. 예산을 넘었다면 영향을 받은 표면, 예산 출처, 측정값 또는 측정 불가 상태, 추정 원인, 가장 작은 후속 작업을 보고합니다.
|
|
80
|
+
8. 변경한 성능, 패키지, 문서, mustflow 표면을 증명하는 가장 좁은 구성된 검증을 실행합니다.
|
|
81
|
+
|
|
82
|
+
<!-- mustflow-section: postconditions -->
|
|
83
|
+
## 완료 조건
|
|
84
|
+
|
|
85
|
+
- 성능 주장에는 예산 출처, 측정 방식, 또는 명시적인 미검증 상태가 있습니다.
|
|
86
|
+
- 기준값과 벤치마크 관련 문서, 테스트, 패키지 메타데이터, 생성 결과 메모, 명령 계약이 겹치는 곳에서 동기화되어 있습니다.
|
|
87
|
+
- 최종 보고는 측정 증거, 추정, 로컬 관찰, 제안된 후속 작업을 구분합니다.
|
|
88
|
+
|
|
89
|
+
<!-- mustflow-section: verification -->
|
|
90
|
+
## 검증
|
|
91
|
+
|
|
92
|
+
사용 가능한 구성된 일회성 명령 의도를 사용합니다.
|
|
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
|
+
변경한 성능 표면을 더 잘 증명하는 좁은 벤치마크, 자산, 빌드, 문서, 테스트 의도가 있으면 그 의도를 사용합니다.
|
|
103
|
+
|
|
104
|
+
<!-- mustflow-section: failure-handling -->
|
|
105
|
+
## 실패 처리
|
|
106
|
+
|
|
107
|
+
- 예산 출처가 없으면 새로 지어내지 않습니다. 출처가 없음을 보고하고 주장을 정성적 표현이나 측정 전용 표현으로 둡니다.
|
|
108
|
+
- 측정이 로컬 하드웨어, 캐시 상태, 네트워크, 레지스트리 상태, 이전 실행의 생성 결과에 의존한다면 그 경계를 밝힙니다.
|
|
109
|
+
- 검증이 너무 느리거나 구성된 명령이 없다면 추론한 명령을 실행하지 말고 빠진 명령 의도 또는 건너뛴 의도를 보고합니다.
|
|
110
|
+
- 성능 수정이 정확성, 보안, 접근성, 데이터 안전과 충돌하면 더 엄격한 정확성 경계를 보존하고 절충점을 보고합니다.
|
|
111
|
+
|
|
112
|
+
<!-- mustflow-section: output-format -->
|
|
113
|
+
## 출력 형식
|
|
114
|
+
|
|
115
|
+
- 검토한 성능 표면
|
|
116
|
+
- 예산 출처 또는 예산 없음
|
|
117
|
+
- 측정 방식과 경계
|
|
118
|
+
- 동기화한 기준값, 주장, 메타데이터
|
|
119
|
+
- 실행한 명령 의도
|
|
120
|
+
- 건너뛴 측정과 이유
|
|
121
|
+
- 남은 성능 위험
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.project-context-authoring
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 2
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: project-context-authoring
|
|
9
|
+
description: 저장소 근거를 바탕으로 `.mustflow/context/PROJECT.md`를 작성하거나 유지보수할 때 적용합니다.
|
|
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
|
+
# 프로젝트 맥락 작성
|
|
20
|
+
|
|
21
|
+
<!-- mustflow-section: purpose -->
|
|
22
|
+
## 목적
|
|
23
|
+
|
|
24
|
+
`.mustflow/context/PROJECT.md`를 간결한 에이전트용 브리핑으로 유지하되, 근거 없는 제품 방향, 아키텍처, 로드맵, 구현 약속이 들어가지 않도록 막습니다.
|
|
25
|
+
|
|
26
|
+
<!-- mustflow-section: use-when -->
|
|
27
|
+
## 사용 조건
|
|
28
|
+
|
|
29
|
+
- `.mustflow/context/PROJECT.md`를 새로 채우거나, 고치거나, 정리할 때.
|
|
30
|
+
- 프로젝트 목표, 비목표, 도메인 용어, 불변 조건, 검증 메모, 운영 제약, 기준 자료와 충돌 메모, 열린 질문을 에이전트용으로 기록해야 할 때.
|
|
31
|
+
- 공개 문서, 매니페스트, 테스트, 소스 파일, 명령 계약이 서로 맞지 않아 맥락 파일에 충돌을 기록해야 할 때.
|
|
32
|
+
|
|
33
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
34
|
+
## 사용하지 않는 경우
|
|
35
|
+
|
|
36
|
+
- 루트 `README.md`, `PROJECT.md`, `ROADMAP.md`, API 문서, 사용자용 문서만 수정하는 작업일 때.
|
|
37
|
+
- 사용자가 저장소 근거가 없는 추측성 계획, 제품 비전, 아키텍처 설계를 요청할 때.
|
|
38
|
+
- 더 가까운 프로젝트 전용 맥락 작성 절차가 있을 때.
|
|
39
|
+
- 변경 내용이 낮은 권한의 프로젝트 맥락이 아니라 `AGENTS.md`, `.mustflow/config/commands.toml`, `.mustflow/docs/agent-workflow.md`에 들어가야 할 때.
|
|
40
|
+
|
|
41
|
+
<!-- mustflow-section: required-inputs -->
|
|
42
|
+
## 필요한 입력
|
|
43
|
+
|
|
44
|
+
- 기존 `.mustflow/context/PROJECT.md`.
|
|
45
|
+
- `AGENTS.md`와 `.mustflow/config/*.toml`.
|
|
46
|
+
- 존재하고 관련 있는 경우 루트 `PROJECT.md`, `README.md`, `ROADMAP.md`, `DESIGN.md`.
|
|
47
|
+
- `REPO_MAP.md`, 패키지 매니페스트, 기존 문서, 테스트, CI 파일, 소스 파일. 단, 이들은 근거일 뿐 권한 출처가 아닙니다.
|
|
48
|
+
- 현재 사용자 요청과 명시된 출처 제약.
|
|
49
|
+
|
|
50
|
+
<!-- mustflow-section: preconditions -->
|
|
51
|
+
## 사전 조건
|
|
52
|
+
|
|
53
|
+
- 작업이 사용 조건에 맞고 사용하지 않는 경우에는 해당하지 않습니다.
|
|
54
|
+
- 필요한 입력을 확보했거나, 빠진 입력을 추측하지 않고 보고할 수 있습니다.
|
|
55
|
+
- 현재 범위에 대해 더 높은 우선순위의 지침과 `.mustflow/config/commands.toml`을 확인했습니다.
|
|
56
|
+
|
|
57
|
+
<!-- mustflow-section: allowed-edits -->
|
|
58
|
+
## 허용 수정 범위
|
|
59
|
+
|
|
60
|
+
- 이 스킬, 사용자 요청, `.mustflow/skills/INDEX.md`의 맞는 경로가 설명하는 범위 안에서만 수정합니다.
|
|
61
|
+
- 명령 권한을 넓히거나, 프로젝트 사실을 지어내거나, 관련 없는 워크플로 파일을 변경하지 않습니다.
|
|
62
|
+
|
|
63
|
+
<!-- mustflow-section: procedure -->
|
|
64
|
+
## 절차
|
|
65
|
+
|
|
66
|
+
1. 현재 저장소 근거가 명확히 반박하지 않는 한 기존 사람이 작성한 맥락을 보존합니다.
|
|
67
|
+
2. 기존 맥락 파일에서 시작한 뒤, 요청된 맥락 항목에 필요한 근거만 모읍니다.
|
|
68
|
+
3. 확인된 사실, 가정, 미확인 항목, 충돌을 분리합니다. 문서, 매니페스트, 테스트, 소스 파일, 명령 계약 사이의 불일치를 조용히 덮지 않습니다.
|
|
69
|
+
4. 맥락은 간결하게 유지합니다. 긴 설명보다 짧은 목록이나 짧은 문단을 선호합니다.
|
|
70
|
+
5. 프로젝트 요약, 목표, 비목표, 도메인 용어, 위험 영역, 불변 조건, 검증, 운영 제약, 기준 자료와 충돌 메모, 열린 질문처럼 근거가 있는 항목만 다룹니다.
|
|
71
|
+
6. 아키텍처, 사용자 유형, 릴리스, 코딩 규칙 메모는 저장소가 직접 근거를 제공할 때만 추가합니다.
|
|
72
|
+
7. 검증을 설명할 때는 `.mustflow/config/commands.toml`의 명령 의도 이름을 참조합니다. 패키지 스크립트, CI 작업, 매니페스트 힌트를 에이전트 실행 권한으로 바꾸지 않습니다.
|
|
73
|
+
8. 제품 목표, 로드맵 약속, 도메인 규칙, 구현 세부사항을 추측하지 말고, 알 수 없는 항목은 비워 두거나 명시적으로 미확인으로 표시합니다.
|
|
74
|
+
|
|
75
|
+
<!-- mustflow-section: postconditions -->
|
|
76
|
+
## 사후 조건
|
|
77
|
+
|
|
78
|
+
- 명확한 근거, 실행한 명령 의도, 건너뛴 확인, 남은 위험을 포함해 예상 출력을 작성할 수 있습니다.
|
|
79
|
+
- 빠진 명령 의도, 알 수 없는 입력, 권한 충돌은 숨기지 않고 보고합니다.
|
|
80
|
+
|
|
81
|
+
<!-- mustflow-section: verification -->
|
|
82
|
+
## 검증
|
|
83
|
+
|
|
84
|
+
가능한 경우 설정된 일회성 명령 의도를 사용합니다.
|
|
85
|
+
|
|
86
|
+
- `mustflow_check`
|
|
87
|
+
|
|
88
|
+
맥락 갱신이 공개 문서나 명령 계약도 바꾸는 경우에는 해당 스킬을 추가로 적용하고 그 스킬의 설정된 검증 의도를 사용합니다.
|
|
89
|
+
|
|
90
|
+
<!-- mustflow-section: failure-handling -->
|
|
91
|
+
## 실패 대응
|
|
92
|
+
|
|
93
|
+
- 근거가 충돌하면 한쪽을 조용히 고르지 말고 충돌이나 열린 질문으로 기록합니다.
|
|
94
|
+
- 필요한 출처가 없으면 모델 기억으로 빈칸을 채우지 말고 미확인으로 표시합니다.
|
|
95
|
+
- 맥락 문구가 명령 정책이나 파일 편집 금지 규칙처럼 보여 검증이 실패하면, 해당 규칙을 올바른 권한 파일로 옮기거나 근거 없는 주장을 제거합니다.
|
|
96
|
+
- 맥락이 너무 길어지면 오래 유지될 사실과 기준 자료 메모 중심으로 줄입니다.
|
|
97
|
+
|
|
98
|
+
<!-- mustflow-section: output-format -->
|
|
99
|
+
## 출력 형식
|
|
100
|
+
|
|
101
|
+
- 갱신한 맥락 항목
|
|
102
|
+
- 사용한 근거 출처
|
|
103
|
+
- 추가한 확인된 사실
|
|
104
|
+
- 기록한 가정, 미확인 항목, 충돌
|
|
105
|
+
- 실행한 명령 의도
|
|
106
|
+
- 건너뛴 명령 의도와 이유
|
|
107
|
+
- 남은 맥락 위험
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.pure-core-imperative-shell
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 6
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: pure-core-imperative-shell
|
|
9
|
+
description: Apply this skill when business decisions, validation, authorization, pricing, eligibility, state transitions, domain events, effect descriptions, or calculations are mixed with I/O such as databases, HTTP handlers, repositories, SDK calls, files, queues, logs, metrics, clocks, randomness, environment reads, payments, emails, or framework request/response objects.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.pure-core-imperative-shell
|
|
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
|
+
# Pure Core, Imperative Shell
|
|
28
|
+
|
|
29
|
+
<!-- mustflow-section: purpose -->
|
|
30
|
+
## Purpose
|
|
31
|
+
|
|
32
|
+
Separate code that decides from code that does.
|
|
33
|
+
|
|
34
|
+
The pure core owns business rules, calculations, validation, authorization decisions, pricing, eligibility, state transitions, domain events, effect descriptions, and deterministic reducers. The imperative shell owns databases, HTTP, files, network calls, logging, metrics, payments, emails, queues, caches, clocks, generated identifiers, randomness, environment variables, transactions, retries, idempotency, and framework-specific objects.
|
|
35
|
+
|
|
36
|
+
Core decides. Shell does.
|
|
37
|
+
|
|
38
|
+
<!-- mustflow-section: use-when -->
|
|
39
|
+
## Use When
|
|
40
|
+
|
|
41
|
+
- Business rules are mixed with database access, HTTP handlers, repositories, external SDK calls, framework objects, logs, metrics, clocks, randomness, generated identifiers, environment reads, payments, emails, files, queues, or caches.
|
|
42
|
+
- Code contains meaningful `if`, `switch`, pricing, permission, eligibility, expiration, quota, scoring, matching, validation, or state-transition logic and also performs side effects.
|
|
43
|
+
- Several pricing, discount, permission, scoring, matching, recommendation, or provider-choice policies need to remain pure while being selected at runtime.
|
|
44
|
+
- Core tests require database mocks, HTTP mocks, SDK mocks, clock mocks, logger mocks, or framework request objects.
|
|
45
|
+
- A handler, repository, adapter, worker, or event consumer hides business policy.
|
|
46
|
+
- A state change must produce domain events or effect descriptions without executing those effects immediately.
|
|
47
|
+
- Retrying, idempotency, stale writes, or outbox behavior depends on distinguishing the decision from its execution.
|
|
48
|
+
- A state-changing shell action needs command semantics for payload, context, authorization, transaction boundaries, idempotency, audit logs, retries, concurrency, outbox records, queue reuse, or worker execution.
|
|
49
|
+
- A domain lifecycle uses status, state, phase, step, or stage values and state transitions need to be pure, explicit, and table-driven.
|
|
50
|
+
- A shell repeatedly coordinates several ports, adapters, repositories, queues, caches, or effect executors and needs a stable caller-facing entry point without absorbing the pure decision.
|
|
51
|
+
|
|
52
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
53
|
+
## Do Not Use When
|
|
54
|
+
|
|
55
|
+
- The change is trivial pass-through CRUD with no meaningful decision beyond raw input shape checks.
|
|
56
|
+
- The only issue is direct construction or hidden dependency lookup; use `dependency-injection` first.
|
|
57
|
+
- The only issue is external format, protocol, provider error, timeout, retry, security, or observability translation; use `adapter-boundary` first.
|
|
58
|
+
- The task is pure refactoring with behavior preservation risks but no decision/execution split; use `behavior-preserving-refactor`.
|
|
59
|
+
- The decision boundary is already clear and the requested edit only updates a single pure calculation.
|
|
60
|
+
|
|
61
|
+
<!-- mustflow-section: required-inputs -->
|
|
62
|
+
## Required Inputs
|
|
63
|
+
|
|
64
|
+
- The business action, command, workflow, or state change being implemented or refactored.
|
|
65
|
+
- The decision the domain must make and the facts needed to make it.
|
|
66
|
+
- The current side effects, including persistence, external calls, messages, logs, metrics, generated identifiers, time, randomness, and environment reads.
|
|
67
|
+
- Local patterns for result types, domain errors, events, effects, outbox messages, repositories, adapters, mappers, and tests.
|
|
68
|
+
- Existing behavior evidence when refactoring code that already runs.
|
|
69
|
+
- Relevant command-intent contract entries for verification.
|
|
70
|
+
|
|
71
|
+
<!-- mustflow-section: preconditions -->
|
|
72
|
+
## Preconditions
|
|
73
|
+
|
|
74
|
+
- Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
|
|
75
|
+
- If changing existing behavior is not the goal, `behavior-preserving-refactor` has been used to protect the current behavior first.
|
|
76
|
+
- If external systems cross the boundary, `adapter-boundary` has been used for provider containment.
|
|
77
|
+
- If the code constructs, resolves, or imports external tools inside core logic, `dependency-injection` has been used for construction and collaborator flow.
|
|
78
|
+
- If normal failures, meaningful absence, null returns, thrown business failures, or error response shapes are part of the decision boundary, `result-option` has been used for the return-shape contract.
|
|
79
|
+
- If the shell action is a state-changing user or system intent with transaction, idempotency, audit, retry, outbox, queue, worker, or external side-effect concerns, `command-pattern` has been used to shape the execution unit.
|
|
80
|
+
- If the core decision changes lifecycle state and allowed events depend on current state, `state-machine-pattern` has been used to define the transition table, guards, effects, and invalid-transition errors.
|
|
81
|
+
- If the pure decision has several interchangeable algorithms or policies for the same purpose, `strategy-pattern` has been used to separate selection from execution.
|
|
82
|
+
- If the shell needs one stable high-level entry point over a repeated multi-step subsystem workflow, `facade-pattern` has been used so callers stay simple while business decisions remain in the core.
|
|
83
|
+
- The target business decision can be described without naming a database table, HTTP route, framework object, or provider SDK.
|
|
84
|
+
|
|
85
|
+
<!-- mustflow-section: allowed-edits -->
|
|
86
|
+
## Allowed Edits
|
|
87
|
+
|
|
88
|
+
- Extract deterministic decision functions, policy functions, state-transition functions, or reducers.
|
|
89
|
+
- Define explicit input facts, decision output, domain events, effect descriptions, and typed business errors.
|
|
90
|
+
- Move database access, network access, logging, metrics, clocks, generated identifiers, randomness, environment reads, transactions, retries, and idempotency handling into the shell.
|
|
91
|
+
- Add boundary mappers between external data and core input, and between core output and persistence, messages, or responses.
|
|
92
|
+
- Add fast core tests without mocks and narrower shell tests for mapping, persistence, effects, idempotency, and error translation.
|
|
93
|
+
- Do not add broad service classes, global containers, event buses, or abstractions just to make the tree look layered.
|
|
94
|
+
|
|
95
|
+
<!-- mustflow-section: procedure -->
|
|
96
|
+
## Procedure
|
|
97
|
+
|
|
98
|
+
1. Locate the mixed responsibility.
|
|
99
|
+
- Decision signals: `if`, `switch`, status checks, role checks, amount calculations, eligibility checks, validation rules, state transitions, deadline rules, quota rules, and domain error choices.
|
|
100
|
+
- Execution signals: `await`, database access, external SDK calls, HTTP clients, file access, logging, metrics, email sending, message publishing, cache access, `new Date()`, `Date.now()`, generated identifiers, randomness, and environment reads.
|
|
101
|
+
2. Name the pure decision.
|
|
102
|
+
- Prefer verbs such as `decide`, `calculate`, `derive`, `validate`, `transition`, `classify`, `price`, `score`, `select`, `can`, `is`, or `has`.
|
|
103
|
+
- Avoid naming the core after a route, ORM model, SDK method, provider, or transport operation.
|
|
104
|
+
3. Define explicit core input.
|
|
105
|
+
- Include every fact the decision needs: actor, domain state, loaded external facts, policy mode, current timestamp, business date, time zone, generated identifiers, random value, feature-flag result, and idempotency-relevant facts.
|
|
106
|
+
- Do not let the core reach outward to obtain missing facts.
|
|
107
|
+
4. Define typed output.
|
|
108
|
+
- Use local `Result` or equivalent for expected business outcomes.
|
|
109
|
+
- Use local `Option` or equivalent when absence is meaningful and not an error.
|
|
110
|
+
- Return typed business errors for normal failures such as not found, denied access, invalid state, expired input, insufficient balance, quota exceeded, duplicate command, and stale business rule conditions.
|
|
111
|
+
- Throw only for programmer errors or impossible internal invariant violations.
|
|
112
|
+
5. Keep the core deterministic.
|
|
113
|
+
- The core must not perform I/O, log, read time, generate identifiers, use direct randomness, read environment variables, mutate external state, or depend on request, response, ORM, SDK, database-row, or framework objects.
|
|
114
|
+
- Time should enter as epoch milliseconds, business date, ISO string, or explicit time context.
|
|
115
|
+
- Money should use integer minor units, explicit currency, and explicit rounding or tax policy.
|
|
116
|
+
6. Return state changes, events, and effects as data.
|
|
117
|
+
- Domain events describe what happened.
|
|
118
|
+
- Effect descriptions describe what the shell should do.
|
|
119
|
+
- The core may create those values, but it must not persist, publish, send, charge, upload, delete, log, or schedule them.
|
|
120
|
+
7. Shape the imperative shell.
|
|
121
|
+
- Parse raw input.
|
|
122
|
+
- Authenticate the actor.
|
|
123
|
+
- Load required facts.
|
|
124
|
+
- Resolve time, identifiers, config, feature flags, randomness, and idempotency records.
|
|
125
|
+
- Map external data to core input.
|
|
126
|
+
- Call the pure core at the decision point.
|
|
127
|
+
- Map core errors to transport or caller errors.
|
|
128
|
+
- Persist state changes and outbox records.
|
|
129
|
+
- Execute or enqueue effect descriptions.
|
|
130
|
+
- Record logs, metrics, retries, and idempotency outcomes.
|
|
131
|
+
8. Split validation and authorization.
|
|
132
|
+
- Structural validation belongs in the shell: JSON shape, route parameter shape, required fields, upload size, unsupported content type, and transport limits.
|
|
133
|
+
- Business validation belongs in the core: eligibility, status, deadline, quota, refundability, inventory, coupon applicability, and domain invariants.
|
|
134
|
+
- Authentication belongs in the shell. Business authorization belongs in the core.
|
|
135
|
+
9. Keep persistence honest.
|
|
136
|
+
- Map database rows to domain input before calling core.
|
|
137
|
+
- Map decisions to persistence commands after core returns.
|
|
138
|
+
- Database constraints can protect integrity, but they must not be the only place where business policy exists.
|
|
139
|
+
- Use optimistic locking, version checks, unique constraints, and transactions in the shell when stale decisions or duplicates are possible.
|
|
140
|
+
10. Keep external side effects outside local transactions.
|
|
141
|
+
- Do not hold a database transaction open while calling slow network services.
|
|
142
|
+
- When local state and external messages must both be reliable, save state and outbox messages in one transaction, then publish after commit.
|
|
143
|
+
- For payments, refunds, account closure, file deletion, and other harmful repeated effects, combine deterministic core decisions with shell-side idempotency or an action ledger.
|
|
144
|
+
11. Use state machines for lifecycle transitions when needed.
|
|
145
|
+
- If status, state, phase, step, or stage controls allowed actions, use `state-machine-pattern` to define the transition table, event names, guards, terminal states, effect descriptions, invalid transitions, and tests.
|
|
146
|
+
- Keep the transition function pure and let the shell persist state, transition history, idempotency records, and outbox rows.
|
|
147
|
+
12. Use strategies for interchangeable pure policies when needed.
|
|
148
|
+
- If pricing, discount, scoring, ranking, matching, permission, recommendation, or provider-choice logic has several methods with one shared purpose, use `strategy-pattern`.
|
|
149
|
+
- Keep strategy selection in a selector, resolver, or shell boundary and keep strategy execution behind a shared pure contract when possible.
|
|
150
|
+
13. Use command structure for state-changing shell units when needed.
|
|
151
|
+
- If one user or system intent needs explicit payload, context, authorization, transaction, idempotency, outbox, audit, retry, concurrency, or queue and worker reuse, use `command-pattern` to shape the shell execution unit.
|
|
152
|
+
- Keep the pure core as the decision maker and the command handler as the orchestrator.
|
|
153
|
+
14. Use facades for repeated subsystem workflows when needed.
|
|
154
|
+
- If callers need one stable high-level operation over several shell collaborators, use `facade-pattern`.
|
|
155
|
+
- Keep the facade as an orchestration boundary; it may call the pure core, adapters, repositories, outbox, and idempotency stores, but it must not become the place where domain policy lives.
|
|
156
|
+
15. Test at the right layer.
|
|
157
|
+
- Core tests should be fast, deterministic, table-driven when useful, and free of mocks, databases, networks, queues, caches, servers, and framework runtime.
|
|
158
|
+
- Shell tests should verify input mapping, error mapping, persistence, transactions, effect execution or enqueueing, retries, idempotency, observability, and provider boundary behavior.
|
|
159
|
+
- Use property-based tests for pricing, discounts, rounding, ranking, state transitions, allocation, quota, and scoring when combinations are large.
|
|
160
|
+
15. Avoid ceremony when there is no real decision.
|
|
161
|
+
- Do not invent a pure core for simple create, list, update, delete flows that only pass validated fields through.
|
|
162
|
+
- Extract a core as soon as the flow gains meaningful business branching.
|
|
163
|
+
|
|
164
|
+
<!-- mustflow-section: postconditions -->
|
|
165
|
+
## Postconditions
|
|
166
|
+
|
|
167
|
+
- Given the same input, the core returns the same output.
|
|
168
|
+
- The core can run without a database, network, file system, queue, cache, server, framework, logger, clock, environment variables, random generator, or generated identifier service.
|
|
169
|
+
- Business rules are visible in core functions, not hidden inside handlers, repositories, adapters, or database queries.
|
|
170
|
+
- The shell owns all I/O, boundary mapping, persistence, transactions, retries, idempotency, logs, metrics, and side-effect execution.
|
|
171
|
+
- Business rule tests do not require mocks.
|
|
172
|
+
|
|
173
|
+
<!-- mustflow-section: verification -->
|
|
174
|
+
## Verification
|
|
175
|
+
|
|
176
|
+
Use configured oneshot command intents when available:
|
|
177
|
+
|
|
178
|
+
- `changes_status`
|
|
179
|
+
- `changes_diff_summary`
|
|
180
|
+
- `test_related`
|
|
181
|
+
- `test`
|
|
182
|
+
- `lint`
|
|
183
|
+
- `build`
|
|
184
|
+
- `docs_validate_fast`
|
|
185
|
+
- `test_release`
|
|
186
|
+
- `mustflow_check`
|
|
187
|
+
|
|
188
|
+
Prefer focused core tests for decision behavior and focused shell tests for boundary behavior. Use release or documentation checks when the change affects templates, package metadata, public docs, schemas, CLI behavior, or skill routing.
|
|
189
|
+
|
|
190
|
+
<!-- mustflow-section: failure-handling -->
|
|
191
|
+
## Failure Handling
|
|
192
|
+
|
|
193
|
+
- If required facts cannot be loaded or represented explicitly, stop and report the missing boundary.
|
|
194
|
+
- If expected behavior is unknown, add characterization coverage or report the verification gap before extracting broad structure.
|
|
195
|
+
- If extraction changes behavior, separate the behavior fix from the pure-core refactor.
|
|
196
|
+
- If the shell still contains business branches after extraction, continue until only orchestration and transport checks remain or report the remaining policy explicitly.
|
|
197
|
+
- If the core still imports infrastructure, reapply `dependency-injection` and `adapter-boundary`.
|
|
198
|
+
|
|
199
|
+
<!-- mustflow-section: output-format -->
|
|
200
|
+
## Output Format
|
|
201
|
+
|
|
202
|
+
- Decision being isolated
|
|
203
|
+
- Side effects moved or kept in shell
|
|
204
|
+
- Core input facts and typed outputs introduced
|
|
205
|
+
- Events or effect descriptions introduced
|
|
206
|
+
- State-machine transition table introduced or reused
|
|
207
|
+
- Strategy family introduced or reused
|
|
208
|
+
- Facade boundary introduced or intentionally avoided
|
|
209
|
+
- Shell responsibilities and boundary mappers
|
|
210
|
+
- Business failures represented as values
|
|
211
|
+
- Tests or verification evidence
|
|
212
|
+
- Skipped checks and remaining mixed-logic risk
|