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,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.result-option
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 2
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: result-option
|
|
9
|
+
description: Apply this skill when expected failures, meaningful absence, null or undefined returns, thrown business errors, boolean success flags, raw string errors, repository lookups, validation, parsing, external adapter errors, or boundary error mapping need explicit Result and Option handling.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.result-option
|
|
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
|
+
# Result / Option
|
|
28
|
+
|
|
29
|
+
<!-- mustflow-section: purpose -->
|
|
30
|
+
## Purpose
|
|
31
|
+
|
|
32
|
+
Represent expected failures and meaningful absence as explicit values.
|
|
33
|
+
|
|
34
|
+
Use `Result<T, E>` when an operation can fail and the caller must know why. Use `Option<T>` when a value may be absent and absence is normal. Use `throw` only for programmer errors, impossible states, corrupted invariants, fatal startup failures, or third-party exceptions before an adapter converts them at a boundary.
|
|
35
|
+
|
|
36
|
+
Expected failure must be data. Meaningful absence must be data. Exceptions are only for truly exceptional situations.
|
|
37
|
+
|
|
38
|
+
<!-- mustflow-section: use-when -->
|
|
39
|
+
## Use When
|
|
40
|
+
|
|
41
|
+
- Code throws for normal business failures such as validation failure, not found, permission denied, conflict, invalid state, expired token, insufficient balance, rate limit, timeout, payment rejection, or file validation.
|
|
42
|
+
- Domain, application, or service functions return `null` or `undefined` to signal meaningful absence.
|
|
43
|
+
- Code returns ambiguous success flags, optional error fields, raw string errors, or generic `Error` values.
|
|
44
|
+
- A repository lookup can fail due to persistence and can also legitimately find no record.
|
|
45
|
+
- External SDK, database, HTTP, payment, email, filesystem, or framework exceptions leak into business logic.
|
|
46
|
+
- A controller, adapter, or command handler must convert typed failures into HTTP, UI, CLI, or queue responses.
|
|
47
|
+
- Tests need stable success, failure, and absence cases without relying on thrown exceptions.
|
|
48
|
+
|
|
49
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
50
|
+
## Do Not Use When
|
|
51
|
+
|
|
52
|
+
- A function is a total pure calculation that cannot fail and always returns a value; return `T` directly.
|
|
53
|
+
- Absence is a bug because an invariant promises the value exists; use a stricter type or assert at the invariant boundary.
|
|
54
|
+
- The task is only about separating decision logic from side effects; use `pure-core-imperative-shell`.
|
|
55
|
+
- The task is only about provider mapping, timeout, retry, or protocol containment; use `adapter-boundary`.
|
|
56
|
+
- Absence is an optional collaborator that can safely perform a neutral same-interface behavior without changing caller flow; use `null-object-pattern`.
|
|
57
|
+
- The codebase already has a different established `Result` or `Option` shape and the task does not touch failure or absence handling.
|
|
58
|
+
|
|
59
|
+
<!-- mustflow-section: required-inputs -->
|
|
60
|
+
## Required Inputs
|
|
61
|
+
|
|
62
|
+
- The operation being modeled and whether it can fail, be absent, both, or neither.
|
|
63
|
+
- Existing local `Result`, `Option`, error, `Either`, `Maybe`, exception, and response-mapping conventions.
|
|
64
|
+
- The layer where failure originates and the layer where it should be handled.
|
|
65
|
+
- Error categories, stable error codes, safe user-facing message rules, and sensitive data constraints.
|
|
66
|
+
- Tests or examples that show successful, failing, and absent outcomes.
|
|
67
|
+
- Relevant command-intent contract entries for verification.
|
|
68
|
+
|
|
69
|
+
<!-- mustflow-section: preconditions -->
|
|
70
|
+
## Preconditions
|
|
71
|
+
|
|
72
|
+
- Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
|
|
73
|
+
- Existing local result and option helpers have been searched before adding new helpers.
|
|
74
|
+
- If external libraries or providers throw, `adapter-boundary` has been considered for conversion at that boundary.
|
|
75
|
+
- If core logic currently performs I/O or logs while deciding failures, `pure-core-imperative-shell` has been considered.
|
|
76
|
+
|
|
77
|
+
<!-- mustflow-section: allowed-edits -->
|
|
78
|
+
## Allowed Edits
|
|
79
|
+
|
|
80
|
+
- Replace expected-failure `throw` paths with `Result<T, E>`.
|
|
81
|
+
- Replace domain-level `null` or `undefined` absence with `Option<T>`.
|
|
82
|
+
- Convert `Option<T>` to `Result<T, E>` at the point where absence becomes an error.
|
|
83
|
+
- Add or reuse small discriminated-union helpers such as `ok`, `err`, `some`, `none`, `fromNullable`, `isOk`, `isErr`, `isSome`, `isNone`, `map`, `mapErr`, `andThen`, `matchResult`, `matchOption`, `fromPromise`, `okOr`, and `allResults` when local style supports them.
|
|
84
|
+
- Add typed error unions, stable error codes, categories, and boundary mappers.
|
|
85
|
+
- Add tests for success, failure, absence, error code, and error category.
|
|
86
|
+
- Do not introduce a broad functional programming library unless the codebase already uses that style.
|
|
87
|
+
|
|
88
|
+
<!-- mustflow-section: procedure -->
|
|
89
|
+
## Procedure
|
|
90
|
+
|
|
91
|
+
1. Choose the return shape.
|
|
92
|
+
- Return `T` when the value always exists and the operation cannot fail.
|
|
93
|
+
- Return `Option<T>` when absence is normal and needs no explanation.
|
|
94
|
+
- Return `Result<T, E>` when failure is expected and the caller must know why.
|
|
95
|
+
- Return `Promise<Result<T, E>>` for asynchronous expected failures.
|
|
96
|
+
- Return `Result<Option<T>, E>` when an operation can fail and success may still have no value.
|
|
97
|
+
- Return `Result<void, E>` for commands that can fail but have no useful success value.
|
|
98
|
+
- Use `throw` or `assertNever` only for impossible states, programmer errors, corrupted invariants, fatal startup failures, or test assertions.
|
|
99
|
+
- Use a null object only when the absence is an optional dependency with honest neutral behavior and the caller should not branch on presence.
|
|
100
|
+
2. Keep expected failures out of exceptions.
|
|
101
|
+
- Do not throw for invalid input, missing resource, denied access, duplicate state, invalid transition, external timeout, rate limit, persistence failure, or payment rejection.
|
|
102
|
+
- Catch third-party exceptions in adapters and convert them to typed errors before they cross inward.
|
|
103
|
+
3. Keep absence explicit.
|
|
104
|
+
- Domain, application, and service functions should not use `null` or `undefined` as meaningful absence.
|
|
105
|
+
- Raw DTOs, database rows, framework objects, and external API responses may contain `null` or `undefined`, but boundary mappers must convert them before they enter core logic.
|
|
106
|
+
4. Use structured errors.
|
|
107
|
+
- Avoid raw string errors, generic `"ERROR"` codes, and optional error fields.
|
|
108
|
+
- Prefer stable machine-readable codes such as `INVALID_EMAIL`, `USER_NOT_FOUND`, `ORDER_ALREADY_PAID`, or `PAYMENT_PROVIDER_TIMEOUT`.
|
|
109
|
+
- Prefer consistent categories such as `validation`, `authentication`, `permission`, `not_found`, `conflict`, `invariant`, `rate_limit`, `timeout`, `external`, `persistence`, and `internal`.
|
|
110
|
+
- Keep raw causes, secrets, tokens, stack traces, SQL, payment payloads, and private user data out of public responses.
|
|
111
|
+
5. Preserve specificity inside the system.
|
|
112
|
+
- Use narrow error unions close to the rule when practical.
|
|
113
|
+
- Widen to an application error type near use cases or boundaries.
|
|
114
|
+
- Preserve the underlying cause when useful, but do not make domain logic depend on third-party error classes.
|
|
115
|
+
6. Compose results deliberately.
|
|
116
|
+
- Return, transform with `mapErr`, handle explicitly, or convert to a boundary response.
|
|
117
|
+
- Do not swallow `err` by returning success.
|
|
118
|
+
- Avoid nested results such as `Result<Result<T, A>, B>`; prefer `Result<T, A | B>`.
|
|
119
|
+
- Avoid `Result<Promise<T>, E>`; use `Promise<Result<T, E>>`.
|
|
120
|
+
- Prefer `Result<Option<T>, E>` over `Option<Result<T, E>>`.
|
|
121
|
+
7. Use names that match meaning.
|
|
122
|
+
- Use `find*` when absence is normal.
|
|
123
|
+
- Use `get*` when absence is an error.
|
|
124
|
+
- Use `parse*`, `validate*`, and fallible `create*` functions when invalid input should produce `Result`.
|
|
125
|
+
- Use `is*`, `has*`, and `can*` only when a boolean answer is truly enough and cannot fail.
|
|
126
|
+
8. Map at boundaries.
|
|
127
|
+
- Repositories that can fail and may not find data should return `Result<Option<T>, E>`.
|
|
128
|
+
- Services may convert an `Option` into a domain error when the value is required.
|
|
129
|
+
- Controllers, CLI handlers, queue consumers, and UI boundary code should convert `Result` into protocol responses.
|
|
130
|
+
- Do not serialize internal `Result` or `Option` shapes as public API responses unless that is the explicit public contract.
|
|
131
|
+
9. Log once at the outer boundary.
|
|
132
|
+
- Do not log the same error at every layer.
|
|
133
|
+
- Pure domain functions must not log.
|
|
134
|
+
- Boundary logs may include category, code, safe details, and non-serialized cause according to privacy rules.
|
|
135
|
+
10. Test the branches.
|
|
136
|
+
- Every `Result`-returning function should have tests for success, at least one representative failure, error code, error category, and important details.
|
|
137
|
+
- Every `Option`-returning function should have tests for `some` and `none`.
|
|
138
|
+
- Test stable codes and categories rather than complete free-form messages unless the message is a public contract.
|
|
139
|
+
|
|
140
|
+
<!-- mustflow-section: postconditions -->
|
|
141
|
+
## Postconditions
|
|
142
|
+
|
|
143
|
+
- Expected failures are represented as typed data.
|
|
144
|
+
- Meaningful absence is represented as `Option` or the local equivalent.
|
|
145
|
+
- Normal business failures do not rely on thrown exceptions or rejected promises.
|
|
146
|
+
- Infrastructure and provider errors are converted at boundaries before reaching business logic.
|
|
147
|
+
- Public responses expose stable safe error shapes, not internal `Result`, raw causes, secrets, or stack traces.
|
|
148
|
+
- Tests cover success, failure, and absence branches.
|
|
149
|
+
|
|
150
|
+
<!-- mustflow-section: verification -->
|
|
151
|
+
## Verification
|
|
152
|
+
|
|
153
|
+
Use configured oneshot command intents when available:
|
|
154
|
+
|
|
155
|
+
- `changes_status`
|
|
156
|
+
- `changes_diff_summary`
|
|
157
|
+
- `test_related`
|
|
158
|
+
- `test`
|
|
159
|
+
- `lint`
|
|
160
|
+
- `build`
|
|
161
|
+
- `docs_validate_fast`
|
|
162
|
+
- `test_release`
|
|
163
|
+
- `mustflow_check`
|
|
164
|
+
|
|
165
|
+
Prefer focused tests for the functions whose return shape or error handling changed. Use release or documentation checks when templates, public docs, package metadata, schemas, CLI behavior, or skill routing change.
|
|
166
|
+
|
|
167
|
+
<!-- mustflow-section: failure-handling -->
|
|
168
|
+
## Failure Handling
|
|
169
|
+
|
|
170
|
+
- If local helper shape conflicts with this skill, follow the local convention and report the difference.
|
|
171
|
+
- If replacing exceptions would require a broad public API change, narrow the change to one boundary and report remaining throw paths.
|
|
172
|
+
- If error categories or codes are missing, add the smallest local error union or mapper instead of inventing a global taxonomy too early.
|
|
173
|
+
- If a supposedly impossible condition can happen through user or system behavior, model it as `Result` instead of throwing.
|
|
174
|
+
- If adapter conversion is incomplete, keep third-party error handling in the adapter and report remaining leakage.
|
|
175
|
+
|
|
176
|
+
<!-- mustflow-section: output-format -->
|
|
177
|
+
## Output Format
|
|
178
|
+
|
|
179
|
+
- Failure or absence surface changed
|
|
180
|
+
- Return shape chosen and why
|
|
181
|
+
- Error codes and categories introduced or reused
|
|
182
|
+
- Boundary conversions added
|
|
183
|
+
- Throw paths preserved and why
|
|
184
|
+
- Tests added or updated
|
|
185
|
+
- Command intents run
|
|
186
|
+
- Remaining exception, null, or error-shape risks
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.security-privacy-review
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 1
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: security-privacy-review
|
|
9
|
+
description: 코드, 설정, 문서, 템플릿, 로그, 원격 측정, 인증 정보, 데이터 흐름이 비밀값, 개인정보, 인증, 인가, 보존, 외부 공개에 영향을 줄 때 적용합니다.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.security-privacy-review
|
|
15
|
+
command_intents:
|
|
16
|
+
- changes_status
|
|
17
|
+
- changes_diff_summary
|
|
18
|
+
- docs_validate_fast
|
|
19
|
+
- test_release
|
|
20
|
+
- mustflow_check
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# 보안과 개인정보 검토
|
|
24
|
+
|
|
25
|
+
<!-- mustflow-section: purpose -->
|
|
26
|
+
## 목적
|
|
27
|
+
|
|
28
|
+
일반적인 코드, 문서, 템플릿, 설정, 로그, 보고 변경에서 생길 수 있는 보안, 개인정보, 공개 위험을 잡아냅니다.
|
|
29
|
+
|
|
30
|
+
<!-- mustflow-section: use-when -->
|
|
31
|
+
## 사용할 때
|
|
32
|
+
|
|
33
|
+
- 변경이 인증, 인가, 세션, 관리자 동작, 테넌트 경계, 개인정보, 비밀값, 토큰, 인증 정보, API 키, 비공개 파일을 건드립니다.
|
|
34
|
+
- 로그, 원격 측정, 진단, 실행 기록, 보고서, 캐시, 생성 상태, 보존, 가림 처리, 내보내기, 외부 전송을 추가하거나 수정합니다.
|
|
35
|
+
- 문서, 템플릿, 예시, 테스트, 최종 보고가 민감한 데이터 처리, 개인정보 동작, 비밀값 처리, 사용자를 식별할 수 있는 데이터를 언급합니다.
|
|
36
|
+
- 변경 내용이 파일명, 경로, 명령 출력, 스크린샷, 생성 산출물, 패키지 내용, 공개 문서를 통해 데이터를 노출할 수 있습니다.
|
|
37
|
+
|
|
38
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
39
|
+
## 사용하지 않을 때
|
|
40
|
+
|
|
41
|
+
- 구체적인 악용 사례 회귀 테스트가 필요합니다. 그 부분에는 `security-regression-tests`를 사용합니다.
|
|
42
|
+
- 작업이 민감한 데이터와 무관한 의존성 사용 가능 여부, 패키지 버전 최신성, 산출물 패키징만 다룹니다.
|
|
43
|
+
- 변경된 경계, 데이터 흐름, 공개 표면 없이 일반 보안 체크리스트만 요청받았습니다.
|
|
44
|
+
|
|
45
|
+
<!-- mustflow-section: required-inputs -->
|
|
46
|
+
## 필요한 입력
|
|
47
|
+
|
|
48
|
+
- 변경 파일, diff 요약, 사용자 목표.
|
|
49
|
+
- 관련된 민감 데이터, 행위자, 신뢰 경계, 저장, 로그, 보존, 내보내기, 외부 공개 표면.
|
|
50
|
+
- 비밀값, 개인정보, 생성 상태, 공개 문서, 패키지 내용, 명령 출력에 대한 기존 프로젝트 규칙.
|
|
51
|
+
- 상태, diff, 문서, 릴리스, mustflow 검증에 관한 명령 의도 계약 항목.
|
|
52
|
+
|
|
53
|
+
<!-- mustflow-section: preconditions -->
|
|
54
|
+
## 전제 조건
|
|
55
|
+
|
|
56
|
+
- 작업이 사용할 때 조건에 맞고 사용하지 않을 때 조건에는 해당하지 않습니다.
|
|
57
|
+
- 필요한 입력이 있거나, 부족한 입력을 추측하지 않고 보고할 수 있습니다.
|
|
58
|
+
- 현재 범위의 상위 지시와 `.mustflow/config/commands.toml`을 확인했습니다.
|
|
59
|
+
|
|
60
|
+
<!-- mustflow-section: allowed-edits -->
|
|
61
|
+
## 허용되는 수정
|
|
62
|
+
|
|
63
|
+
- 변경 표면이 뒷받침할 때 가림 처리, 생략, 보존, 공개, 문서 문구를 추가하거나 강화합니다.
|
|
64
|
+
- 필요하지 않은 민감해 보이는 샘플 값을 문서, fixture, 템플릿, 로그, 보고서, 최종 출력에서 제거합니다.
|
|
65
|
+
- 개인정보나 비밀값 처리 동작을 확인하지 못했다면 안전하다고 단정하지 말고 미검증 상태로 표시합니다.
|
|
66
|
+
- 컴플라이언스 주장, 개인정보 보장, 비밀값 스캔 결과, 감사 범위를 지어내지 않습니다.
|
|
67
|
+
|
|
68
|
+
<!-- mustflow-section: procedure -->
|
|
69
|
+
## 절차
|
|
70
|
+
|
|
71
|
+
1. 민감 표면을 식별합니다. 비밀값, 개인정보, 행위자, 권한, 저장 위치, 로그, 생성 산출물, 패키지 파일, 공개 문서, 외부 수신자를 확인합니다.
|
|
72
|
+
2. 변경이 민감 정보를 만들거나, 저장하거나, 읽거나, 변환하거나, 기록하거나, 내보내거나, 삭제하거나, 보고하는지 판단합니다.
|
|
73
|
+
3. 변경 표면이 공개, 패키징, 생성, 캐시, 보존, 사용자 노출, 저장소 밖 전송에 해당하는지 확인합니다.
|
|
74
|
+
4. 예시, fixture, 스크린샷, 명령 출력, 최종 보고가 실제처럼 보이는 비밀값이나 불필요한 개인정보를 노출하지 않는지 확인합니다.
|
|
75
|
+
5. 사용자가 결과를 이해하는 데 민감 값이 필요하지 않다면 가림 처리보다 생략이나 최소 메타데이터를 우선합니다.
|
|
76
|
+
6. 변경이 인가나 악용 경계에 영향을 준다면 테스트 생성을 이 검토에 섞지 말고 `security-regression-tests`를 적용합니다.
|
|
77
|
+
7. 변경된 문서, 템플릿, 패키지, mustflow 계약을 검증하는 가장 좁은 구성된 검증을 실행합니다.
|
|
78
|
+
|
|
79
|
+
<!-- mustflow-section: postconditions -->
|
|
80
|
+
## 완료 조건
|
|
81
|
+
|
|
82
|
+
- 민감 데이터와 공개 표면을 식별했거나 모르는 부분을 명시했습니다.
|
|
83
|
+
- 공개 표면과 패키지 표면에 불필요한 비밀값, 개인정보, 오해를 부르는 개인정보 보장이 없습니다.
|
|
84
|
+
- 최종 보고는 민감 값을 드러내지 않으면서 남은 미검증 보안 또는 개인정보 위험을 밝힙니다.
|
|
85
|
+
|
|
86
|
+
<!-- mustflow-section: verification -->
|
|
87
|
+
## 검증
|
|
88
|
+
|
|
89
|
+
사용 가능한 구성된 일회성 명령 의도를 사용합니다.
|
|
90
|
+
|
|
91
|
+
- `changes_status`
|
|
92
|
+
- `changes_diff_summary`
|
|
93
|
+
- `docs_validate_fast`
|
|
94
|
+
- `test_release`
|
|
95
|
+
- `mustflow_check`
|
|
96
|
+
|
|
97
|
+
변경한 민감 표면을 더 잘 증명하는 좁은 테스트, 빌드, 문서 의도가 있으면 그 의도를 사용합니다.
|
|
98
|
+
|
|
99
|
+
<!-- mustflow-section: failure-handling -->
|
|
100
|
+
## 실패 처리
|
|
101
|
+
|
|
102
|
+
- 민감 값이 명령 출력에 나타나면 그 값을 복사하지 말고 값 없이 문제를 요약합니다.
|
|
103
|
+
- 프로젝트 맥락이 부족해 개인정보나 비밀값 처리를 확인할 수 없다면 불확실성을 보고하고 안전하다고 주장하지 않습니다.
|
|
104
|
+
- 패키지, 생성 산출물, 공개 문서에 민감 데이터가 포함되어 있으면 무관한 작업을 계속하기 전에 제거하거나 가립니다.
|
|
105
|
+
- 검증에 사용할 수 없는 스캐너나 실제 운영 시스템이 필요하다면 빠진 검사와 남은 위험을 보고합니다.
|
|
106
|
+
|
|
107
|
+
<!-- mustflow-section: output-format -->
|
|
108
|
+
## 출력 형식
|
|
109
|
+
|
|
110
|
+
- 검토한 민감 표면
|
|
111
|
+
- 확인한 공개 또는 보존 경로
|
|
112
|
+
- 적용한 가림, 생략, 문구 변경
|
|
113
|
+
- 관련 보안 회귀 테스트 필요성
|
|
114
|
+
- 실행한 명령 의도
|
|
115
|
+
- 건너뛴 검사와 이유
|
|
116
|
+
- 남은 보안 또는 개인정보 위험
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.security-regression-tests
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 1
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: security-regression-tests
|
|
9
|
+
description: 보안에 민감한 코드나 동작 변경에 악용 시나리오 회귀 테스트가 필요할 때 적용합니다.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.security-regression-tests
|
|
15
|
+
command_intents:
|
|
16
|
+
- test
|
|
17
|
+
- test_related
|
|
18
|
+
- test_audit
|
|
19
|
+
- lint
|
|
20
|
+
- build
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# 보안 회귀 테스트
|
|
24
|
+
|
|
25
|
+
<!-- mustflow-section: purpose -->
|
|
26
|
+
## 목적
|
|
27
|
+
|
|
28
|
+
보안에 민감한 동작 변경을 안전한 부정 테스트로 바꿔 방어 기대값을 유지합니다. 이 스킬은 취약점 스캔, 공격 코드 작성, 침투 테스트 자동화를 목적으로 하지 않습니다.
|
|
29
|
+
|
|
30
|
+
<!-- mustflow-section: use-when -->
|
|
31
|
+
## 사용 조건
|
|
32
|
+
|
|
33
|
+
- 인증, 인가, 세션, CSRF, 요청 제한, 관리자 기능, 결제, 크레딧, 구독, 개인정보, 테넌트 경계 동작이 바뀔 때.
|
|
34
|
+
- 입력값 검증, 출력 이스케이프, 파일 업로드, 경로 처리, 웹훅 콜백, 리다이렉트, 외부 주소 처리 동작이 바뀔 때.
|
|
35
|
+
- 악용 가능성을 막는 버그 수정이 있었고, 같은 문제가 다시 생기지 않도록 회귀 테스트가 필요할 때.
|
|
36
|
+
- 검토 중 실제 코드 경계에 붙일 수 있는 구체적인 보안 민감 지점이 확인될 때.
|
|
37
|
+
|
|
38
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
39
|
+
## 사용하지 않는 경우
|
|
40
|
+
|
|
41
|
+
- 작업이 일반 보안 검토, 의존성 점검, 정적 분석 요청, 정책 논의에 그칠 때.
|
|
42
|
+
- 보호 대상 리소스, 행위자, 신뢰 경계, 기존 테스트 도구를 식별할 만큼 애플리케이션 맥락이 충분하지 않을 때.
|
|
43
|
+
- 특정 라우트, 컴포넌트, 직렬화 코드, 데이터 흐름 없이 "XSS 방지" 같은 일반 테스트만 만들 수 있을 때.
|
|
44
|
+
- 테스트에 실제 외부 서비스, 실시간 공격 트래픽, 자격 증명 추측, 파괴적 입력, 위험한 페이로드 수집이 필요할 때.
|
|
45
|
+
- 사용자가 테스트 추가나 제안을 명시적으로 원하지 않을 때.
|
|
46
|
+
|
|
47
|
+
<!-- mustflow-section: required-inputs -->
|
|
48
|
+
## 필요한 입력
|
|
49
|
+
|
|
50
|
+
- 보안 민감 경계를 만드는 변경 동작, 차이, 라우트, 컴포넌트, 핸들러, 데이터 모델, 버그 수정.
|
|
51
|
+
- 관련 행위자, 소유권 규칙, 신뢰 경계, 허용되거나 거부되어야 하는 상태 조합, 기대 상태 코드나 오류 동작.
|
|
52
|
+
- 기존 테스트 도구, 픽스처, 팩토리, 목, 요청 헬퍼, 이름 규칙.
|
|
53
|
+
- `.mustflow/config/commands.toml`의 테스트, 점검, 린트, 빌드 관련 명령 의도.
|
|
54
|
+
- 개인정보, 인가, 업로드, 콜백, 결제, 테넌트 규칙을 정의하는 프로젝트 맥락이나 공개 계약.
|
|
55
|
+
|
|
56
|
+
<!-- mustflow-section: preconditions -->
|
|
57
|
+
## 사전 조건
|
|
58
|
+
|
|
59
|
+
- 작업이 사용 조건에 맞고 사용하지 않는 경우에는 해당하지 않습니다.
|
|
60
|
+
- 필요한 입력을 확보했거나, 빠진 입력을 추측하지 않고 보고할 수 있습니다.
|
|
61
|
+
- 현재 범위에 대해 더 높은 우선순위의 지침과 `.mustflow/config/commands.toml`을 확인했습니다.
|
|
62
|
+
- 테스트를 공격 방법 설명이나 위험한 대상 접촉 없이 방어 기대값으로 작성할 수 있습니다.
|
|
63
|
+
|
|
64
|
+
<!-- mustflow-section: allowed-edits -->
|
|
65
|
+
## 허용 수정 범위
|
|
66
|
+
|
|
67
|
+
- 이 스킬, 사용자 요청, `.mustflow/skills/INDEX.md`의 맞는 경로가 설명하는 범위 안에서만 수정합니다.
|
|
68
|
+
- 새 테스트 구조를 만들기 전에 기존 테스트 파일, 픽스처, 팩토리, 목, 헬퍼 API를 우선 사용합니다.
|
|
69
|
+
- 명령 권한을 넓히거나, 프로젝트 사실을 지어내거나, 외부 스캐너를 도입하거나, 공격용 페이로드 묶음을 추가하거나, 관련 없는 워크플로 파일을 변경하지 않습니다.
|
|
70
|
+
|
|
71
|
+
<!-- mustflow-section: procedure -->
|
|
72
|
+
## 절차
|
|
73
|
+
|
|
74
|
+
1. 보호 경계를 식별합니다. 행위자, 리소스, 작업, 신뢰 경계, 기대 방어 결과를 확인합니다.
|
|
75
|
+
2. 넓은 공격명만 쓰지 말고 프로젝트 사실에 맞춰 악용 시나리오를 분류합니다.
|
|
76
|
+
- 권한 없는 행위자 또는 테넌트 간 접근
|
|
77
|
+
- 잘못된 소유권 또는 권한 상승
|
|
78
|
+
- 안전하지 않은 입력 구조, 크기, 인코딩, 경로, MIME 불일치
|
|
79
|
+
- 안전하지 않은 출력 렌더링 또는 직렬화
|
|
80
|
+
- 안전하지 않은 외부 주소, 콜백, 리다이렉트, 서버 쪽 요청 대상
|
|
81
|
+
- 결제, 크레딧, 쿠폰, 구독, 환불, 권한 부여 악용
|
|
82
|
+
- 개인정보 또는 관리자 전용 접근 누출
|
|
83
|
+
3. 같은 경계를 이미 검증하는 테스트가 있는지 찾습니다. 새 테스트보다 기존 테스트 보강이 더 명확하면 기존 테스트를 보강합니다.
|
|
84
|
+
4. 가장 작은 안전한 부정 테스트 데이터를 만듭니다. 필요하면 허용되는 기준 사례 하나와, 경계가 악용 조건을 거부함을 증명하는 거부 사례 하나를 둡니다.
|
|
85
|
+
5. 외부 요청, 업로드, 리다이렉트, 웹훅, 결제 제공자, 파일 시스템은 목이나 로컬 대역을 사용합니다. 의심스러운 실제 대상에는 접속하지 않습니다.
|
|
86
|
+
6. `cannot_read_other_users_invoice` 또는 `rejects_private_network_callback_url`처럼 방어 기대값이 드러나는 이름을 붙입니다.
|
|
87
|
+
7. 상태 코드, 반환 오류 모양, 바뀌지 않은 데이터베이스 상태, 발생하지 않은 부수 효과, 정리된 출력, 거부된 작업처럼 관찰 가능한 동작에 단언을 둡니다.
|
|
88
|
+
8. 긴 공격 문자열을 테스트에 넣지 않습니다. 검증 규칙이나 경계를 증명하는 최소 대표 입력을 사용합니다.
|
|
89
|
+
9. 결정적인 테스트를 작성할 만큼 프로젝트 맥락이 부족하면 픽스처나 동작을 지어내지 말고 구체적인 테스트 제안으로 남깁니다.
|
|
90
|
+
|
|
91
|
+
<!-- mustflow-section: postconditions -->
|
|
92
|
+
## 사후 조건
|
|
93
|
+
|
|
94
|
+
- 명확한 근거, 실행한 명령 의도, 건너뛴 확인, 남은 위험을 포함해 예상 출력을 작성할 수 있습니다.
|
|
95
|
+
- 빠진 명령 의도, 알 수 없는 입력, 권한 충돌은 숨기지 않고 보고합니다.
|
|
96
|
+
- 새 테스트는 모든 변경에 테스트를 추가하는 습관이 아니라, 구체적인 보안 민감 동작 계약으로 정당화됩니다.
|
|
97
|
+
|
|
98
|
+
<!-- mustflow-section: verification -->
|
|
99
|
+
## 검증
|
|
100
|
+
|
|
101
|
+
가능한 경우 설정된 일회성 명령 의도를 사용합니다.
|
|
102
|
+
|
|
103
|
+
- `test_related`
|
|
104
|
+
- `test`
|
|
105
|
+
- `test_audit`
|
|
106
|
+
- `lint`
|
|
107
|
+
- `build`
|
|
108
|
+
|
|
109
|
+
변경된 경계를 확인하는 가장 좁은 설정된 테스트 의도를 우선합니다. 테스트, 린트, 스캐너, 빌드 명령을 추측하지 않습니다. 관련 의도가 unknown 또는 manual-only 상태라면 그 상태와 남은 검증 위험을 보고합니다.
|
|
110
|
+
|
|
111
|
+
<!-- mustflow-section: failure-handling -->
|
|
112
|
+
## 실패 대응
|
|
113
|
+
|
|
114
|
+
- 생성한 테스트가 방어 동작 누락 때문에 실패하면 테스트를 약하게 만들기 전에 해당 경계를 소유한 가장 가까운 실제 코드를 확인합니다.
|
|
115
|
+
- 생성한 테스트가 픽스처나 가정 오류 때문에 실패하면 테스트 설정을 고치거나 빠진 프로젝트 사실을 보고합니다.
|
|
116
|
+
- 테스트에 위험한 트래픽, 실제 자격 증명, 실제 외부 대상, 파괴적 데이터가 필요하면 로컬 목 기반 기대값이나 글로 된 테스트 제안으로 바꿉니다.
|
|
117
|
+
- 기존 테스트가 이미 경계를 증명한다면 중복 사례를 추가하지 말고 기존 범위를 보고합니다.
|
|
118
|
+
- 저장소의 테스트 정책상 테스트 추가 전에 더 많은 근거가 필요하면 테스트를 정당화하는 보안 민감 계약을 보고하거나 제안 단계에서 멈춥니다.
|
|
119
|
+
|
|
120
|
+
<!-- mustflow-section: output-format -->
|
|
121
|
+
## 출력 형식
|
|
122
|
+
|
|
123
|
+
- 검토한 보안 민감 경계
|
|
124
|
+
- 악용 시나리오 분류
|
|
125
|
+
- 필요한 테스트 데이터
|
|
126
|
+
- 추가하거나 보강한 테스트
|
|
127
|
+
- 재사용한 기존 범위
|
|
128
|
+
- 테스트 실패 시 의심할 코드 위치
|
|
129
|
+
- 실행한 명령 의도
|
|
130
|
+
- 건너뛴 명령 의도와 이유
|
|
131
|
+
- 남은 보안 또는 검증 위험
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.skill-authoring
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 3
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: skill-authoring
|
|
9
|
+
description: `.mustflow/skills/*/SKILL.md` 절차와 `.mustflow/skills/INDEX.md` 경로를 만들거나 유지보수할 때 적용합니다.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.skill-authoring
|
|
15
|
+
command_intents:
|
|
16
|
+
- mustflow_check
|
|
17
|
+
- docs_validate
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# 스킬 작성
|
|
21
|
+
|
|
22
|
+
<!-- mustflow-section: purpose -->
|
|
23
|
+
## 목적
|
|
24
|
+
|
|
25
|
+
mustflow 스킬을 좁고 반복 가능한 절차로 유지합니다. 스킬이 넓은 조언, 프로젝트 맥락, 명령 실행 권한 출처로 변하지 않게 막습니다.
|
|
26
|
+
|
|
27
|
+
<!-- mustflow-section: use-when -->
|
|
28
|
+
## 사용 조건
|
|
29
|
+
|
|
30
|
+
- `.mustflow/skills/<name>/SKILL.md` 파일을 만들거나, 이름을 바꾸거나, 나누거나, 제거하거나, 크게 수정할 때.
|
|
31
|
+
- `.mustflow/skills/INDEX.md`에 스킬 경로를 새로 넣거나 갱신해야 할 때.
|
|
32
|
+
- 스킬의 사용 조건, 제외 조건, 필요한 입력, 명령 의도 참조, 검증, 실패 대응을 더 명확히 해야 할 때.
|
|
33
|
+
- 넓은 프롬프트, 점검표, 외부 제안을 mustflow 스킬 형식에 맞게 흡수해야 할 때.
|
|
34
|
+
|
|
35
|
+
<!-- mustflow-section: do-not-use-when -->
|
|
36
|
+
## 사용하지 않는 경우
|
|
37
|
+
|
|
38
|
+
- 기존 스킬을 코드, 문서, 테스트, 맥락, 자산 작업에 적용하기만 하는 경우.
|
|
39
|
+
- 내용이 `AGENTS.md`, `.mustflow/docs/agent-workflow.md`, `.mustflow/context/PROJECT.md`, `.mustflow/config/commands.toml`에 들어가야 하는 경우.
|
|
40
|
+
- 제안된 스킬이 반복 가능한 발동 조건과 절차 없이 "더 좋은 코드를 작성하라" 또는 "주의하라" 같은 넓은 조언에 머무는 경우.
|
|
41
|
+
- 스킬이 프로젝트 도메인 맥락을 중복하거나, 명령 실행을 허가하거나, 원시 셸 명령을 정의하려는 경우.
|
|
42
|
+
|
|
43
|
+
<!-- mustflow-section: required-inputs -->
|
|
44
|
+
## 필요한 입력
|
|
45
|
+
|
|
46
|
+
- 사용자 요청과 스킬이 다룰 반복 작업.
|
|
47
|
+
- 기존 `.mustflow/skills/INDEX.md`와 주변 스킬 문서.
|
|
48
|
+
- 검증과 관련된 `.mustflow/config/commands.toml`의 명령 의도 이름.
|
|
49
|
+
- 해당 작업이 반복 가능하며 기존 스킬로 처리하는 편이 더 낫지 않다는 저장소 근거.
|
|
50
|
+
- 설치 템플릿에 포함되는 스킬이라면 현지화와 템플릿 메타데이터.
|
|
51
|
+
|
|
52
|
+
<!-- mustflow-section: preconditions -->
|
|
53
|
+
## 사전 조건
|
|
54
|
+
|
|
55
|
+
- 작업이 사용 조건에 맞고 사용하지 않는 경우에는 해당하지 않습니다.
|
|
56
|
+
- 필요한 입력을 확보했거나, 빠진 입력을 추측하지 않고 보고할 수 있습니다.
|
|
57
|
+
- 현재 범위에 대해 더 높은 우선순위의 지침과 `.mustflow/config/commands.toml`을 확인했습니다.
|
|
58
|
+
|
|
59
|
+
<!-- mustflow-section: allowed-edits -->
|
|
60
|
+
## 허용 수정 범위
|
|
61
|
+
|
|
62
|
+
- 이 스킬, 사용자 요청, `.mustflow/skills/INDEX.md`의 맞는 경로가 설명하는 범위 안에서만 수정합니다.
|
|
63
|
+
- 명령 권한을 넓히거나, 프로젝트 사실을 지어내거나, 관련 없는 워크플로 파일을 변경하지 않습니다.
|
|
64
|
+
|
|
65
|
+
<!-- mustflow-section: procedure -->
|
|
66
|
+
## 절차
|
|
67
|
+
|
|
68
|
+
1. 스킬이 다룰 가장 작은 반복 작업을 정의합니다. 범위가 너무 넓으면 나누거나, 스킬을 만들지 말고 저장소 지침으로 남깁니다.
|
|
69
|
+
2. 새 스킬을 추가하기 전에 기존 스킬을 검색합니다. 겹치는 절차를 새로 만들기보다 맞는 스킬을 갱신하는 쪽을 우선합니다.
|
|
70
|
+
3. 안정적인 폴더 이름과 일치하는 앞부분 메타데이터 `name`을 사용합니다. `mustflow_doc`은 `skill.<name>`, `metadata.mustflow_schema`는 `"1"`, `metadata.mustflow_kind`는 `procedure`, `metadata.pack_id`는 패키지 이름공간, `metadata.skill_id`는 `<pack_id>.<name>`으로 설정합니다.
|
|
71
|
+
4. 표준 섹션을 작성합니다: 목적, 사용 조건, 사용하지 않는 경우, 필요한 입력, 사전 조건, 허용 수정 범위, 절차, 사후 조건, 검증, 실패 대응, 출력 형식.
|
|
72
|
+
5. 절차를 구체적이고 좁게 유지합니다. 무엇을 읽고, 무엇을 바꾸며, 무엇을 피하고, 어떤 근거를 보고할지 포함합니다.
|
|
73
|
+
6. 명령은 명령 의도 이름으로만 참조합니다. 원시 셸 명령 블록을 넣거나 스킬이 명령 실행을 허가한다고 쓰지 않습니다.
|
|
74
|
+
7. `.mustflow/skills/INDEX.md`에는 트리거, 필요한 입력, 수정 범위, 위험, 검증 의도, 예상 출력을 포함한 간결한 라우팅 행을 추가하거나 갱신합니다.
|
|
75
|
+
8. 스킬이 템플릿으로 설치된다면 템플릿 매니페스트, 현지화 메타데이터, 설치 문서, 패키지 테스트, 설치 파일 목록을 보여 주는 공개 문서를 함께 갱신합니다.
|
|
76
|
+
|
|
77
|
+
<!-- mustflow-section: postconditions -->
|
|
78
|
+
## 사후 조건
|
|
79
|
+
|
|
80
|
+
- 명확한 근거, 실행한 명령 의도, 건너뛴 확인, 남은 위험을 포함해 예상 출력을 작성할 수 있습니다.
|
|
81
|
+
- 빠진 명령 의도, 알 수 없는 입력, 권한 충돌은 숨기지 않고 보고합니다.
|
|
82
|
+
|
|
83
|
+
<!-- mustflow-section: verification -->
|
|
84
|
+
## 검증
|
|
85
|
+
|
|
86
|
+
가능한 경우 설정된 일회성 명령 의도를 사용합니다.
|
|
87
|
+
|
|
88
|
+
- `mustflow_check`
|
|
89
|
+
- `docs_validate`
|
|
90
|
+
|
|
91
|
+
스킬 변경이 테스트나 동작에 민감한 템플릿 출력도 바꾼다면 관련 설정 검증 의도, 테스트 의도, 빌드 의도도 사용합니다.
|
|
92
|
+
|
|
93
|
+
<!-- mustflow-section: failure-handling -->
|
|
94
|
+
## 실패 대응
|
|
95
|
+
|
|
96
|
+
- `mustflow_check`가 누락된 섹션, 메타데이터 불일치, 알 수 없는 명령 의도, 원시 셸 명령, 명령 허가 주장 문제를 보고하면 관련 없는 파일을 바꾸기 전에 스킬 계약을 고칩니다.
|
|
97
|
+
- 두 스킬이 겹치면 사용 조건과 제외 조건을 더 좁히거나 중복 절차를 합칩니다.
|
|
98
|
+
- 필요한 명령 의도가 없으면 스킬 안에 명령을 새로 지어내지 말고 누락된 의도를 기록합니다.
|
|
99
|
+
- 번역 확신도가 낮으면 원본 스킬을 기준으로 두고, 템플릿 메타데이터에서 번역을 검토 필요 상태로 표시합니다.
|
|
100
|
+
|
|
101
|
+
<!-- mustflow-section: output-format -->
|
|
102
|
+
## 출력 형식
|
|
103
|
+
|
|
104
|
+
- 추가, 수정, 이름 변경, 제거한 스킬 파일
|
|
105
|
+
- 바꾼 스킬 색인 경로
|
|
106
|
+
- 참조한 명령 의도
|
|
107
|
+
- 갱신한 템플릿 또는 현지화 메타데이터
|
|
108
|
+
- 실행한 명령 의도
|
|
109
|
+
- 건너뛴 명령 의도와 이유
|
|
110
|
+
- 남은 중복, 번역, 검증 위험
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
mustflow_doc: skill.source-freshness-check
|
|
3
|
+
locale: ko
|
|
4
|
+
canonical: false
|
|
5
|
+
revision: 1
|
|
6
|
+
lifecycle: mustflow-owned
|
|
7
|
+
authority: procedure
|
|
8
|
+
name: source-freshness-check
|
|
9
|
+
description: 현재 버전, 외부 문서, 가격, 날짜, 일정, 제품 동작처럼 시간이 지나면 낡을 수 있는 정보에 작업이 의존할 때 적용합니다.
|
|
10
|
+
metadata:
|
|
11
|
+
mustflow_schema: "1"
|
|
12
|
+
mustflow_kind: procedure
|
|
13
|
+
pack_id: mustflow.core
|
|
14
|
+
skill_id: mustflow.core.source-freshness-check
|
|
15
|
+
command_intents:
|
|
16
|
+
- changes_status
|
|
17
|
+
- docs_validate_fast
|
|
18
|
+
- mustflow_check
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# 출처 최신성 확인
|
|
22
|
+
|
|
23
|
+
<!-- mustflow-section: purpose -->
|
|
24
|
+
## 목적
|
|
25
|
+
|
|
26
|
+
오래되었거나 확인되지 않은 주장이 코드, 문서, 템플릿, 릴리스 노트, 최종 보고에 들어가지 않게 합니다.
|
|
27
|
+
|
|
28
|
+
<!-- mustflow-section: use-when -->
|
|
29
|
+
## 사용할 때
|
|
30
|
+
|
|
31
|
+
- 사용자가 최신, 현재, 가장 새것, 오늘, 어제, 내일, 특정 최근 날짜를 묻습니다.
|
|
32
|
+
- 외부 제품, API, 패키지 버전, 가격, 법적 규칙, 일정, 스포츠, 시장, 공급자 문서에 주장이 의존합니다.
|
|
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
|
+
|
|
66
|
+
<!-- mustflow-section: procedure -->
|
|
67
|
+
## 절차
|
|
68
|
+
|
|
69
|
+
1. 시간, 외부 동작, 상위 출처에 의존하는 주장을 모두 찾습니다.
|
|
70
|
+
2. 보조 요약보다 현재 저장소 파일, 공식 출처, 선언된 패키지 메타데이터, 사용자 제공 원문을 우선합니다.
|
|
71
|
+
3. 최신성 경계를 기록합니다. 예: 확인 날짜, 확인 버전, 릴리스 태그, 문서 페이지, 또는 로컬이고 안정적이라고 보는 이유.
|
|
72
|
+
4. 허용된 도구나 명령 계약 안에서 주장을 갱신할 수 없다면 보수적으로 표현하고 확인하지 못한 출처를 보고합니다.
|
|
73
|
+
5. "latest", "current", "recent" 같은 열린 표현은 구체적인 날짜나 버전이 함께 있을 때만 사용합니다.
|
|
74
|
+
6. 문서를 수정할 때는 넓은 출처 섹션을 만들기보다, 필요한 경우 주장 가까이 또는 최종 보고에 출처 맥락을 남깁니다.
|
|
75
|
+
7. 변경 파일을 덮는 가장 작은 구성된 검증을 실행합니다.
|
|
76
|
+
|
|
77
|
+
<!-- mustflow-section: postconditions -->
|
|
78
|
+
## 완료 조건
|
|
79
|
+
|
|
80
|
+
- 시간에 민감한 주장은 확인되었거나, 날짜/버전이 붙었거나, 확인하지 못했다고 보고되어 있습니다.
|
|
81
|
+
- 문서는 스냅샷만 확인했는데도 실시간 최신처럼 읽히지 않습니다.
|
|
82
|
+
- 최종 보고에는 건너뛴 최신성 확인과 남은 오래된 출처 위험이 적혀 있습니다.
|
|
83
|
+
|
|
84
|
+
<!-- mustflow-section: verification -->
|
|
85
|
+
## 검증
|
|
86
|
+
|
|
87
|
+
사용 가능한 구성된 일회성 명령 의도를 사용합니다.
|
|
88
|
+
|
|
89
|
+
- `changes_status`
|
|
90
|
+
- `docs_validate_fast`
|
|
91
|
+
- `mustflow_check`
|
|
92
|
+
|
|
93
|
+
갱신한 주장이 실행 동작이나 공개 문서에 영향을 주면 관련 테스트, 빌드, 문서 검증 의도도 실행합니다.
|
|
94
|
+
|
|
95
|
+
<!-- mustflow-section: failure-handling -->
|
|
96
|
+
## 실패 처리
|
|
97
|
+
|
|
98
|
+
- 요청한 출처에 접근할 수 없다면 접근 공백을 보고하고 그 주장을 현재 사실처럼 말하지 않습니다.
|
|
99
|
+
- 출처가 충돌하면 가장 권위 있는 출처를 우선하고 충돌을 보고합니다.
|
|
100
|
+
- 최신성 확인이 번역 문서의 의미를 바꾼다면 해당 번역을 검수 대상으로 표시합니다.
|
|
101
|
+
- 최신성 확인에 현재 호스트 권한 밖의 네트워크 접근이나 도구가 필요하면 권한 경계에서 멈추고 남은 미확인 항목을 밝힙니다.
|
|
102
|
+
|
|
103
|
+
<!-- mustflow-section: output-format -->
|
|
104
|
+
## 출력 형식
|
|
105
|
+
|
|
106
|
+
- 찾은 최신성 민감 주장
|
|
107
|
+
- 확인한 출처 또는 버전
|
|
108
|
+
- 바꾼 문구 또는 보수적으로 남긴 주장
|
|
109
|
+
- 실행한 명령 의도
|
|
110
|
+
- 건너뛴 출처 확인과 이유
|
|
111
|
+
- 남은 오래된 출처 위험
|