mustflow 2.74.7 → 2.75.1

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.
@@ -61,6 +61,8 @@ export function getScriptPackHelp(lang = 'en') {
61
61
  'mf script-pack list --json',
62
62
  'mf script-pack suggest --path src/cli/index.ts --phase before_change',
63
63
  'mf script-pack suggest --changed --phase after_change --json',
64
+ 'mf script-pack run code/outline scan src --json',
65
+ 'mf script-pack run code/symbol-read read src/cli/index.ts --start-line 25 --json',
64
66
  'mf script-pack run core/text-budget check README.md --max 5000',
65
67
  'mf script-pack run repo/generated-boundary check src/cli/index.ts --json',
66
68
  'mf script-pack run core/text-budget --help',
@@ -763,8 +763,11 @@ Read these files before working:
763
763
  "scriptPack.suggest.label.recommendations": "Recommendations",
764
764
  "scriptPack.suggest.label.runHint": "Run hint",
765
765
  "scriptPack.suggest.empty": "No script-pack suggestions matched the supplied paths, skills, or phases.",
766
+ "scriptPack.pack.code.summary": "Source-code orientation utility scripts",
766
767
  "scriptPack.pack.core.summary": "Core built-in utility scripts",
767
768
  "scriptPack.pack.repo.summary": "Repository-boundary utility scripts",
769
+ "scriptPack.script.codeOutline.summary": "Scan TypeScript and JavaScript files for symbol headers and line ranges",
770
+ "scriptPack.script.codeSymbolRead.summary": "Read a bounded source snippet by symbol line or explicit line range",
768
771
  "scriptPack.script.textBudget.summary": "Check exact text length budgets for files or JSON string fields",
769
772
  "scriptPack.script.generatedBoundary.summary": "Check whether candidate paths cross generated, ignored, protected, vendor, or cache boundaries",
770
773
  "scriptPack.label.script": "Script",
@@ -776,6 +779,40 @@ Read these files before working:
776
779
  "scriptPack.error.unknownScript": "Unknown script-pack script: {script}",
777
780
  "scriptPack.error.missingSuggestInput": "Provide at least one suggestion input: --path <path>, --changed, --phase <phase>, or --skill <skill>",
778
781
  "scriptPack.error.unknownPhase": "Unknown script-pack phase: {phase}",
782
+ "codeOutline.help.summary": "Scan TypeScript and JavaScript source files for declaration headers, line ranges, export flags, and content hashes.",
783
+ "codeOutline.help.option.maxFiles": "Maximum number of source files to scan. Default: 200",
784
+ "codeOutline.help.option.maxFileBytes": "Maximum bytes to read from each source file. Default: 1048576",
785
+ "codeOutline.help.exit.ok": "The code outline was scanned without findings",
786
+ "codeOutline.help.exit.fail": "The code outline found invalid input, unreadable files, unsupported files, or scan limits",
787
+ "codeOutline.title": "mustflow code outline",
788
+ "codeOutline.label.files": "Files",
789
+ "codeOutline.label.symbols": "Symbols",
790
+ "codeOutline.label.findings": "Findings",
791
+ "codeOutline.label.outline": "Outline",
792
+ "codeOutline.label.issues": "Issues",
793
+ "codeOutline.clean": "Code outline completed without findings.",
794
+ "codeOutline.error.missingAction": "Specify a code-outline action: scan",
795
+ "codeOutline.error.unknownAction": "Unknown code-outline action: {action}",
796
+ "codeOutline.error.missingPath": "Provide at least one source file or directory to scan",
797
+ "codeOutline.error.invalidPositiveInteger": "{option} must be a positive safe integer: {value}",
798
+ "codeOutline.error.invalidNonNegativeInteger": "{option} must be a non-negative safe integer: {value}",
799
+ "codeSymbolRead.help.summary": "Read a bounded TypeScript or JavaScript source snippet from a symbol line or explicit line range.",
800
+ "codeSymbolRead.help.option.startLine": "1-based source line to resolve to a symbol or range",
801
+ "codeSymbolRead.help.option.endLine": "Optional explicit 1-based end line; when omitted, the containing outline symbol is read",
802
+ "codeSymbolRead.help.option.contextLines": "Number of surrounding context lines to include. Default: 0",
803
+ "codeSymbolRead.help.option.maxSnippetLines": "Maximum snippet lines to print. Default: 250",
804
+ "codeSymbolRead.help.exit.ok": "The requested source snippet was read",
805
+ "codeSymbolRead.help.exit.fail": "The snippet request was invalid, unreadable, unsupported, or too large",
806
+ "codeSymbolRead.title": "mustflow code symbol read",
807
+ "codeSymbolRead.label.target": "Target",
808
+ "codeSymbolRead.label.symbol": "Symbol",
809
+ "codeSymbolRead.label.snippet": "Snippet",
810
+ "codeSymbolRead.label.findings": "Findings",
811
+ "codeSymbolRead.error.missingAction": "Specify a code-symbol-read action: read",
812
+ "codeSymbolRead.error.unknownAction": "Unknown code-symbol-read action: {action}",
813
+ "codeSymbolRead.error.missingPath": "Provide exactly one source file to read",
814
+ "codeSymbolRead.error.tooManyPaths": "Provide only one source file to read",
815
+ "codeSymbolRead.error.missingStartLine": "Provide --start-line <line>",
779
816
  "textBudget.help.summary": "Check exact text length budgets for files or JSON string fields using grapheme counts by default.",
780
817
  "textBudget.help.option.min": "Require at least this many units",
781
818
  "textBudget.help.option.max": "Require at most this many units",
@@ -763,8 +763,11 @@ Lee estos archivos antes de trabajar:
763
763
  "scriptPack.suggest.label.recommendations": "Recommendations",
764
764
  "scriptPack.suggest.label.runHint": "Run hint",
765
765
  "scriptPack.suggest.empty": "No script-pack suggestions matched the supplied paths, skills, or phases.",
766
+ "scriptPack.pack.code.summary": "Source-code orientation utility scripts",
766
767
  "scriptPack.pack.core.summary": "Core built-in utility scripts",
767
768
  "scriptPack.pack.repo.summary": "Repository-boundary utility scripts",
769
+ "scriptPack.script.codeOutline.summary": "Scan TypeScript and JavaScript files for symbol headers and line ranges",
770
+ "scriptPack.script.codeSymbolRead.summary": "Read a bounded source snippet by symbol line or explicit line range",
768
771
  "scriptPack.script.textBudget.summary": "Check exact text length budgets for files or JSON string fields",
769
772
  "scriptPack.script.generatedBoundary.summary": "Check whether candidate paths cross generated, ignored, protected, vendor, or cache boundaries",
770
773
  "scriptPack.label.script": "Script",
@@ -776,6 +779,40 @@ Lee estos archivos antes de trabajar:
776
779
  "scriptPack.error.unknownScript": "Unknown script-pack script: {script}",
777
780
  "scriptPack.error.missingSuggestInput": "Provide at least one suggestion input: --path <path>, --changed, --phase <phase>, or --skill <skill>",
778
781
  "scriptPack.error.unknownPhase": "Unknown script-pack phase: {phase}",
782
+ "codeOutline.help.summary": "Scan TypeScript and JavaScript source files for declaration headers, line ranges, export flags, and content hashes.",
783
+ "codeOutline.help.option.maxFiles": "Maximum number of source files to scan. Default: 200",
784
+ "codeOutline.help.option.maxFileBytes": "Maximum bytes to read from each source file. Default: 1048576",
785
+ "codeOutline.help.exit.ok": "The code outline was scanned without findings",
786
+ "codeOutline.help.exit.fail": "The code outline found invalid input, unreadable files, unsupported files, or scan limits",
787
+ "codeOutline.title": "mustflow code outline",
788
+ "codeOutline.label.files": "Files",
789
+ "codeOutline.label.symbols": "Symbols",
790
+ "codeOutline.label.findings": "Findings",
791
+ "codeOutline.label.outline": "Outline",
792
+ "codeOutline.label.issues": "Issues",
793
+ "codeOutline.clean": "Code outline completed without findings.",
794
+ "codeOutline.error.missingAction": "Specify a code-outline action: scan",
795
+ "codeOutline.error.unknownAction": "Unknown code-outline action: {action}",
796
+ "codeOutline.error.missingPath": "Provide at least one source file or directory to scan",
797
+ "codeOutline.error.invalidPositiveInteger": "{option} must be a positive safe integer: {value}",
798
+ "codeOutline.error.invalidNonNegativeInteger": "{option} must be a non-negative safe integer: {value}",
799
+ "codeSymbolRead.help.summary": "Read a bounded TypeScript or JavaScript source snippet from a symbol line or explicit line range.",
800
+ "codeSymbolRead.help.option.startLine": "1-based source line to resolve to a symbol or range",
801
+ "codeSymbolRead.help.option.endLine": "Optional explicit 1-based end line; when omitted, the containing outline symbol is read",
802
+ "codeSymbolRead.help.option.contextLines": "Number of surrounding context lines to include. Default: 0",
803
+ "codeSymbolRead.help.option.maxSnippetLines": "Maximum snippet lines to print. Default: 250",
804
+ "codeSymbolRead.help.exit.ok": "The requested source snippet was read",
805
+ "codeSymbolRead.help.exit.fail": "The snippet request was invalid, unreadable, unsupported, or too large",
806
+ "codeSymbolRead.title": "mustflow code symbol read",
807
+ "codeSymbolRead.label.target": "Target",
808
+ "codeSymbolRead.label.symbol": "Symbol",
809
+ "codeSymbolRead.label.snippet": "Snippet",
810
+ "codeSymbolRead.label.findings": "Findings",
811
+ "codeSymbolRead.error.missingAction": "Specify a code-symbol-read action: read",
812
+ "codeSymbolRead.error.unknownAction": "Unknown code-symbol-read action: {action}",
813
+ "codeSymbolRead.error.missingPath": "Provide exactly one source file to read",
814
+ "codeSymbolRead.error.tooManyPaths": "Provide only one source file to read",
815
+ "codeSymbolRead.error.missingStartLine": "Provide --start-line <line>",
779
816
  "textBudget.help.summary": "Check exact text length budgets for files or JSON string fields using grapheme counts by default.",
780
817
  "textBudget.help.option.min": "Require at least this many units",
781
818
  "textBudget.help.option.max": "Require at most this many units",
@@ -763,8 +763,11 @@ Lisez ces fichiers avant de travailler :
763
763
  "scriptPack.suggest.label.recommendations": "Recommendations",
764
764
  "scriptPack.suggest.label.runHint": "Run hint",
765
765
  "scriptPack.suggest.empty": "No script-pack suggestions matched the supplied paths, skills, or phases.",
766
+ "scriptPack.pack.code.summary": "Source-code orientation utility scripts",
766
767
  "scriptPack.pack.core.summary": "Core built-in utility scripts",
767
768
  "scriptPack.pack.repo.summary": "Repository-boundary utility scripts",
769
+ "scriptPack.script.codeOutline.summary": "Scan TypeScript and JavaScript files for symbol headers and line ranges",
770
+ "scriptPack.script.codeSymbolRead.summary": "Read a bounded source snippet by symbol line or explicit line range",
768
771
  "scriptPack.script.textBudget.summary": "Check exact text length budgets for files or JSON string fields",
769
772
  "scriptPack.script.generatedBoundary.summary": "Check whether candidate paths cross generated, ignored, protected, vendor, or cache boundaries",
770
773
  "scriptPack.label.script": "Script",
@@ -776,6 +779,40 @@ Lisez ces fichiers avant de travailler :
776
779
  "scriptPack.error.unknownScript": "Unknown script-pack script: {script}",
777
780
  "scriptPack.error.missingSuggestInput": "Provide at least one suggestion input: --path <path>, --changed, --phase <phase>, or --skill <skill>",
778
781
  "scriptPack.error.unknownPhase": "Unknown script-pack phase: {phase}",
782
+ "codeOutline.help.summary": "Scan TypeScript and JavaScript source files for declaration headers, line ranges, export flags, and content hashes.",
783
+ "codeOutline.help.option.maxFiles": "Maximum number of source files to scan. Default: 200",
784
+ "codeOutline.help.option.maxFileBytes": "Maximum bytes to read from each source file. Default: 1048576",
785
+ "codeOutline.help.exit.ok": "The code outline was scanned without findings",
786
+ "codeOutline.help.exit.fail": "The code outline found invalid input, unreadable files, unsupported files, or scan limits",
787
+ "codeOutline.title": "mustflow code outline",
788
+ "codeOutline.label.files": "Files",
789
+ "codeOutline.label.symbols": "Symbols",
790
+ "codeOutline.label.findings": "Findings",
791
+ "codeOutline.label.outline": "Outline",
792
+ "codeOutline.label.issues": "Issues",
793
+ "codeOutline.clean": "Code outline completed without findings.",
794
+ "codeOutline.error.missingAction": "Specify a code-outline action: scan",
795
+ "codeOutline.error.unknownAction": "Unknown code-outline action: {action}",
796
+ "codeOutline.error.missingPath": "Provide at least one source file or directory to scan",
797
+ "codeOutline.error.invalidPositiveInteger": "{option} must be a positive safe integer: {value}",
798
+ "codeOutline.error.invalidNonNegativeInteger": "{option} must be a non-negative safe integer: {value}",
799
+ "codeSymbolRead.help.summary": "Read a bounded TypeScript or JavaScript source snippet from a symbol line or explicit line range.",
800
+ "codeSymbolRead.help.option.startLine": "1-based source line to resolve to a symbol or range",
801
+ "codeSymbolRead.help.option.endLine": "Optional explicit 1-based end line; when omitted, the containing outline symbol is read",
802
+ "codeSymbolRead.help.option.contextLines": "Number of surrounding context lines to include. Default: 0",
803
+ "codeSymbolRead.help.option.maxSnippetLines": "Maximum snippet lines to print. Default: 250",
804
+ "codeSymbolRead.help.exit.ok": "The requested source snippet was read",
805
+ "codeSymbolRead.help.exit.fail": "The snippet request was invalid, unreadable, unsupported, or too large",
806
+ "codeSymbolRead.title": "mustflow code symbol read",
807
+ "codeSymbolRead.label.target": "Target",
808
+ "codeSymbolRead.label.symbol": "Symbol",
809
+ "codeSymbolRead.label.snippet": "Snippet",
810
+ "codeSymbolRead.label.findings": "Findings",
811
+ "codeSymbolRead.error.missingAction": "Specify a code-symbol-read action: read",
812
+ "codeSymbolRead.error.unknownAction": "Unknown code-symbol-read action: {action}",
813
+ "codeSymbolRead.error.missingPath": "Provide exactly one source file to read",
814
+ "codeSymbolRead.error.tooManyPaths": "Provide only one source file to read",
815
+ "codeSymbolRead.error.missingStartLine": "Provide --start-line <line>",
779
816
  "textBudget.help.summary": "Check exact text length budgets for files or JSON string fields using grapheme counts by default.",
780
817
  "textBudget.help.option.min": "Require at least this many units",
781
818
  "textBudget.help.option.max": "Require at most this many units",
@@ -763,8 +763,11 @@ export const hiMessages = {
763
763
  "scriptPack.suggest.label.recommendations": "Recommendations",
764
764
  "scriptPack.suggest.label.runHint": "Run hint",
765
765
  "scriptPack.suggest.empty": "No script-pack suggestions matched the supplied paths, skills, or phases.",
766
+ "scriptPack.pack.code.summary": "Source-code orientation utility scripts",
766
767
  "scriptPack.pack.core.summary": "Core built-in utility scripts",
767
768
  "scriptPack.pack.repo.summary": "Repository-boundary utility scripts",
769
+ "scriptPack.script.codeOutline.summary": "Scan TypeScript and JavaScript files for symbol headers and line ranges",
770
+ "scriptPack.script.codeSymbolRead.summary": "Read a bounded source snippet by symbol line or explicit line range",
768
771
  "scriptPack.script.textBudget.summary": "Check exact text length budgets for files or JSON string fields",
769
772
  "scriptPack.script.generatedBoundary.summary": "Check whether candidate paths cross generated, ignored, protected, vendor, or cache boundaries",
770
773
  "scriptPack.label.script": "Script",
@@ -776,6 +779,40 @@ export const hiMessages = {
776
779
  "scriptPack.error.unknownScript": "Unknown script-pack script: {script}",
777
780
  "scriptPack.error.missingSuggestInput": "Provide at least one suggestion input: --path <path>, --changed, --phase <phase>, or --skill <skill>",
778
781
  "scriptPack.error.unknownPhase": "Unknown script-pack phase: {phase}",
782
+ "codeOutline.help.summary": "Scan TypeScript and JavaScript source files for declaration headers, line ranges, export flags, and content hashes.",
783
+ "codeOutline.help.option.maxFiles": "Maximum number of source files to scan. Default: 200",
784
+ "codeOutline.help.option.maxFileBytes": "Maximum bytes to read from each source file. Default: 1048576",
785
+ "codeOutline.help.exit.ok": "The code outline was scanned without findings",
786
+ "codeOutline.help.exit.fail": "The code outline found invalid input, unreadable files, unsupported files, or scan limits",
787
+ "codeOutline.title": "mustflow code outline",
788
+ "codeOutline.label.files": "Files",
789
+ "codeOutline.label.symbols": "Symbols",
790
+ "codeOutline.label.findings": "Findings",
791
+ "codeOutline.label.outline": "Outline",
792
+ "codeOutline.label.issues": "Issues",
793
+ "codeOutline.clean": "Code outline completed without findings.",
794
+ "codeOutline.error.missingAction": "Specify a code-outline action: scan",
795
+ "codeOutline.error.unknownAction": "Unknown code-outline action: {action}",
796
+ "codeOutline.error.missingPath": "Provide at least one source file or directory to scan",
797
+ "codeOutline.error.invalidPositiveInteger": "{option} must be a positive safe integer: {value}",
798
+ "codeOutline.error.invalidNonNegativeInteger": "{option} must be a non-negative safe integer: {value}",
799
+ "codeSymbolRead.help.summary": "Read a bounded TypeScript or JavaScript source snippet from a symbol line or explicit line range.",
800
+ "codeSymbolRead.help.option.startLine": "1-based source line to resolve to a symbol or range",
801
+ "codeSymbolRead.help.option.endLine": "Optional explicit 1-based end line; when omitted, the containing outline symbol is read",
802
+ "codeSymbolRead.help.option.contextLines": "Number of surrounding context lines to include. Default: 0",
803
+ "codeSymbolRead.help.option.maxSnippetLines": "Maximum snippet lines to print. Default: 250",
804
+ "codeSymbolRead.help.exit.ok": "The requested source snippet was read",
805
+ "codeSymbolRead.help.exit.fail": "The snippet request was invalid, unreadable, unsupported, or too large",
806
+ "codeSymbolRead.title": "mustflow code symbol read",
807
+ "codeSymbolRead.label.target": "Target",
808
+ "codeSymbolRead.label.symbol": "Symbol",
809
+ "codeSymbolRead.label.snippet": "Snippet",
810
+ "codeSymbolRead.label.findings": "Findings",
811
+ "codeSymbolRead.error.missingAction": "Specify a code-symbol-read action: read",
812
+ "codeSymbolRead.error.unknownAction": "Unknown code-symbol-read action: {action}",
813
+ "codeSymbolRead.error.missingPath": "Provide exactly one source file to read",
814
+ "codeSymbolRead.error.tooManyPaths": "Provide only one source file to read",
815
+ "codeSymbolRead.error.missingStartLine": "Provide --start-line <line>",
779
816
  "textBudget.help.summary": "Check exact text length budgets for files or JSON string fields using grapheme counts by default.",
780
817
  "textBudget.help.option.min": "Require at least this many units",
781
818
  "textBudget.help.option.max": "Require at most this many units",
@@ -763,8 +763,11 @@ export const koMessages = {
763
763
  "scriptPack.suggest.label.recommendations": "추천 항목",
764
764
  "scriptPack.suggest.label.runHint": "실행 힌트",
765
765
  "scriptPack.suggest.empty": "제공된 경로, skill, phase에 맞는 script-pack 추천이 없습니다.",
766
+ "scriptPack.pack.code.summary": "소스 코드 탐색 utility script",
766
767
  "scriptPack.pack.core.summary": "핵심 내장 utility script",
767
768
  "scriptPack.pack.repo.summary": "Repository-boundary utility scripts",
769
+ "scriptPack.script.codeOutline.summary": "TypeScript와 JavaScript 파일에서 symbol header와 라인 범위를 스캔합니다",
770
+ "scriptPack.script.codeSymbolRead.summary": "symbol 라인이나 명시 라인 범위로 제한된 소스 snippet을 읽습니다",
768
771
  "scriptPack.script.textBudget.summary": "파일이나 JSON 문자열 필드의 정확한 텍스트 길이 예산을 검사합니다",
769
772
  "scriptPack.script.generatedBoundary.summary": "Check whether candidate paths cross generated, ignored, protected, vendor, or cache boundaries",
770
773
  "scriptPack.label.script": "Script",
@@ -776,6 +779,40 @@ export const koMessages = {
776
779
  "scriptPack.error.unknownScript": "알 수 없는 script-pack script: {script}",
777
780
  "scriptPack.error.missingSuggestInput": "추천 입력을 하나 이상 제공하세요: --path <path>, --changed, --phase <phase>, 또는 --skill <skill>",
778
781
  "scriptPack.error.unknownPhase": "알 수 없는 script-pack phase: {phase}",
782
+ "codeOutline.help.summary": "TypeScript와 JavaScript 소스 파일에서 declaration header, 라인 범위, export flag, content hash를 스캔합니다.",
783
+ "codeOutline.help.option.maxFiles": "스캔할 최대 소스 파일 수입니다. 기본값: 200",
784
+ "codeOutline.help.option.maxFileBytes": "각 소스 파일에서 읽을 최대 바이트입니다. 기본값: 1048576",
785
+ "codeOutline.help.exit.ok": "code outline을 finding 없이 스캔했습니다",
786
+ "codeOutline.help.exit.fail": "code outline에서 잘못된 입력, 읽을 수 없는 파일, 미지원 파일, 또는 스캔 제한이 발견되었습니다",
787
+ "codeOutline.title": "mustflow code outline",
788
+ "codeOutline.label.files": "Files",
789
+ "codeOutline.label.symbols": "Symbols",
790
+ "codeOutline.label.findings": "Findings",
791
+ "codeOutline.label.outline": "Outline",
792
+ "codeOutline.label.issues": "Issues",
793
+ "codeOutline.clean": "Code outline이 finding 없이 완료되었습니다.",
794
+ "codeOutline.error.missingAction": "code-outline action을 지정하세요: scan",
795
+ "codeOutline.error.unknownAction": "알 수 없는 code-outline action: {action}",
796
+ "codeOutline.error.missingPath": "스캔할 소스 파일이나 디렉터리를 하나 이상 제공하세요",
797
+ "codeOutline.error.invalidPositiveInteger": "{option}은 양의 safe integer여야 합니다: {value}",
798
+ "codeOutline.error.invalidNonNegativeInteger": "{option}은 0 이상의 safe integer여야 합니다: {value}",
799
+ "codeSymbolRead.help.summary": "symbol 라인이나 명시 라인 범위에서 제한된 TypeScript 또는 JavaScript source snippet을 읽습니다.",
800
+ "codeSymbolRead.help.option.startLine": "symbol 또는 범위로 해석할 1-based source line입니다",
801
+ "codeSymbolRead.help.option.endLine": "선택적 1-based end line입니다. 생략하면 포함하는 outline symbol을 읽습니다",
802
+ "codeSymbolRead.help.option.contextLines": "포함할 주변 context line 수입니다. 기본값: 0",
803
+ "codeSymbolRead.help.option.maxSnippetLines": "출력할 최대 snippet line 수입니다. 기본값: 250",
804
+ "codeSymbolRead.help.exit.ok": "요청한 source snippet을 읽었습니다",
805
+ "codeSymbolRead.help.exit.fail": "snippet 요청이 잘못되었거나, 읽을 수 없거나, 미지원이거나, 너무 큽니다",
806
+ "codeSymbolRead.title": "mustflow code symbol read",
807
+ "codeSymbolRead.label.target": "Target",
808
+ "codeSymbolRead.label.symbol": "Symbol",
809
+ "codeSymbolRead.label.snippet": "Snippet",
810
+ "codeSymbolRead.label.findings": "Findings",
811
+ "codeSymbolRead.error.missingAction": "code-symbol-read action을 지정하세요: read",
812
+ "codeSymbolRead.error.unknownAction": "알 수 없는 code-symbol-read action: {action}",
813
+ "codeSymbolRead.error.missingPath": "읽을 소스 파일을 정확히 하나 제공하세요",
814
+ "codeSymbolRead.error.tooManyPaths": "읽을 소스 파일은 하나만 제공하세요",
815
+ "codeSymbolRead.error.missingStartLine": "--start-line <line>을 제공하세요",
779
816
  "textBudget.help.summary": "파일이나 JSON 문자열 필드의 정확한 텍스트 길이 예산을 검사합니다. 기본 단위는 grapheme입니다.",
780
817
  "textBudget.help.option.min": "최소 단위 수를 요구합니다",
781
818
  "textBudget.help.option.max": "최대 단위 수를 요구합니다",
@@ -763,8 +763,11 @@ export const zhMessages = {
763
763
  "scriptPack.suggest.label.recommendations": "Recommendations",
764
764
  "scriptPack.suggest.label.runHint": "Run hint",
765
765
  "scriptPack.suggest.empty": "No script-pack suggestions matched the supplied paths, skills, or phases.",
766
+ "scriptPack.pack.code.summary": "Source-code orientation utility scripts",
766
767
  "scriptPack.pack.core.summary": "Core built-in utility scripts",
767
768
  "scriptPack.pack.repo.summary": "Repository-boundary utility scripts",
769
+ "scriptPack.script.codeOutline.summary": "Scan TypeScript and JavaScript files for symbol headers and line ranges",
770
+ "scriptPack.script.codeSymbolRead.summary": "Read a bounded source snippet by symbol line or explicit line range",
768
771
  "scriptPack.script.textBudget.summary": "Check exact text length budgets for files or JSON string fields",
769
772
  "scriptPack.script.generatedBoundary.summary": "Check whether candidate paths cross generated, ignored, protected, vendor, or cache boundaries",
770
773
  "scriptPack.label.script": "Script",
@@ -776,6 +779,40 @@ export const zhMessages = {
776
779
  "scriptPack.error.unknownScript": "Unknown script-pack script: {script}",
777
780
  "scriptPack.error.missingSuggestInput": "Provide at least one suggestion input: --path <path>, --changed, --phase <phase>, or --skill <skill>",
778
781
  "scriptPack.error.unknownPhase": "Unknown script-pack phase: {phase}",
782
+ "codeOutline.help.summary": "Scan TypeScript and JavaScript source files for declaration headers, line ranges, export flags, and content hashes.",
783
+ "codeOutline.help.option.maxFiles": "Maximum number of source files to scan. Default: 200",
784
+ "codeOutline.help.option.maxFileBytes": "Maximum bytes to read from each source file. Default: 1048576",
785
+ "codeOutline.help.exit.ok": "The code outline was scanned without findings",
786
+ "codeOutline.help.exit.fail": "The code outline found invalid input, unreadable files, unsupported files, or scan limits",
787
+ "codeOutline.title": "mustflow code outline",
788
+ "codeOutline.label.files": "Files",
789
+ "codeOutline.label.symbols": "Symbols",
790
+ "codeOutline.label.findings": "Findings",
791
+ "codeOutline.label.outline": "Outline",
792
+ "codeOutline.label.issues": "Issues",
793
+ "codeOutline.clean": "Code outline completed without findings.",
794
+ "codeOutline.error.missingAction": "Specify a code-outline action: scan",
795
+ "codeOutline.error.unknownAction": "Unknown code-outline action: {action}",
796
+ "codeOutline.error.missingPath": "Provide at least one source file or directory to scan",
797
+ "codeOutline.error.invalidPositiveInteger": "{option} must be a positive safe integer: {value}",
798
+ "codeOutline.error.invalidNonNegativeInteger": "{option} must be a non-negative safe integer: {value}",
799
+ "codeSymbolRead.help.summary": "Read a bounded TypeScript or JavaScript source snippet from a symbol line or explicit line range.",
800
+ "codeSymbolRead.help.option.startLine": "1-based source line to resolve to a symbol or range",
801
+ "codeSymbolRead.help.option.endLine": "Optional explicit 1-based end line; when omitted, the containing outline symbol is read",
802
+ "codeSymbolRead.help.option.contextLines": "Number of surrounding context lines to include. Default: 0",
803
+ "codeSymbolRead.help.option.maxSnippetLines": "Maximum snippet lines to print. Default: 250",
804
+ "codeSymbolRead.help.exit.ok": "The requested source snippet was read",
805
+ "codeSymbolRead.help.exit.fail": "The snippet request was invalid, unreadable, unsupported, or too large",
806
+ "codeSymbolRead.title": "mustflow code symbol read",
807
+ "codeSymbolRead.label.target": "Target",
808
+ "codeSymbolRead.label.symbol": "Symbol",
809
+ "codeSymbolRead.label.snippet": "Snippet",
810
+ "codeSymbolRead.label.findings": "Findings",
811
+ "codeSymbolRead.error.missingAction": "Specify a code-symbol-read action: read",
812
+ "codeSymbolRead.error.unknownAction": "Unknown code-symbol-read action: {action}",
813
+ "codeSymbolRead.error.missingPath": "Provide exactly one source file to read",
814
+ "codeSymbolRead.error.tooManyPaths": "Provide only one source file to read",
815
+ "codeSymbolRead.error.missingStartLine": "Provide --start-line <line>",
779
816
  "textBudget.help.summary": "Check exact text length budgets for files or JSON string fields using grapheme counts by default.",
780
817
  "textBudget.help.option.min": "Require at least this many units",
781
818
  "textBudget.help.option.max": "Require at most this many units",
@@ -2,6 +2,70 @@ function scriptRef(packId, scriptId) {
2
2
  return `${packId}/${scriptId}`;
3
3
  }
4
4
  export const SCRIPT_PACKS = [
5
+ {
6
+ id: 'code',
7
+ summaryKey: 'scriptPack.pack.code.summary',
8
+ scripts: [
9
+ {
10
+ packId: 'code',
11
+ id: 'outline',
12
+ ref: scriptRef('code', 'outline'),
13
+ usage: 'mf script-pack run code/outline scan <path...> [options]',
14
+ summaryKey: 'scriptPack.script.codeOutline.summary',
15
+ actions: ['scan'],
16
+ useWhen: [
17
+ 'Scan TypeScript or JavaScript files for symbol headers before reading large source files chunk by chunk.',
18
+ 'Build a bounded source outline with file paths, line ranges, signatures, export flags, and content hashes for codebase orientation.',
19
+ ],
20
+ phases: ['before_change', 'during_change', 'review'],
21
+ readOnly: true,
22
+ mutates: false,
23
+ network: false,
24
+ inputs: ['path', 'max_files', 'max_file_bytes'],
25
+ outputs: ['human_summary', 'json_report', 'symbol_outline'],
26
+ relatedSkills: [
27
+ 'codebase-orientation',
28
+ 'javascript-code-change',
29
+ 'module-boundary-review',
30
+ 'pattern-scout',
31
+ 'typescript-code-change',
32
+ ],
33
+ riskLevel: 'low',
34
+ cost: 'low',
35
+ reportSchemaFile: 'code-outline-report.schema.json',
36
+ loadRunner: async () => (await import('../script-packs/code-outline.js')).runCodeOutlineScript,
37
+ },
38
+ {
39
+ packId: 'code',
40
+ id: 'symbol-read',
41
+ ref: scriptRef('code', 'symbol-read'),
42
+ usage: 'mf script-pack run code/symbol-read read <path> --start-line <line> [options]',
43
+ summaryKey: 'scriptPack.script.codeSymbolRead.summary',
44
+ actions: ['read'],
45
+ useWhen: [
46
+ 'Read only the resolved symbol range or an explicit bounded line range after a code outline identifies the relevant line.',
47
+ 'Fetch a focused source snippet with path, line, symbol, and content-hash metadata instead of repeatedly paging through a whole file.',
48
+ ],
49
+ phases: ['before_change', 'during_change', 'review'],
50
+ readOnly: true,
51
+ mutates: false,
52
+ network: false,
53
+ inputs: ['path', 'start_line', 'end_line', 'context_lines', 'max_file_bytes', 'max_snippet_lines'],
54
+ outputs: ['human_summary', 'json_report', 'source_snippet'],
55
+ relatedSkills: [
56
+ 'codebase-orientation',
57
+ 'javascript-code-change',
58
+ 'module-boundary-review',
59
+ 'pattern-scout',
60
+ 'typescript-code-change',
61
+ ],
62
+ riskLevel: 'low',
63
+ cost: 'low',
64
+ reportSchemaFile: 'code-symbol-read-report.schema.json',
65
+ loadRunner: async () => (await import('../script-packs/code-outline.js')).runCodeSymbolReadScript,
66
+ },
67
+ ],
68
+ },
5
69
  {
6
70
  id: 'core',
7
71
  summaryKey: 'scriptPack.pack.core.summary',