@@ -25,12 +25,12 @@ const RepoTargetSchema = Schema.Struct({
2525
2626const normalizeInput = ( input : string ) : string => input . trim ( ) ;
2727
28- // CHANGE: Нормализовать и верифицировать ввод репозитория в детерминированное представление
29- // WHY: LLM-слой требует строгих ссылок owner/name и https-url перед построением ingest-плана
30- // QUOTE(ТЗ): "CORE: Исключительно чистые функции, неизменяемые данные "
28+ // CHANGE: Normalize and verify repo input into a deterministic representation
29+ // WHY: LLM layer needs strict owner/name and https-url before building the ingest plan
30+ // QUOTE(ТЗ): "CORE: Pure functions only, immutable data "
3131// REF: user-message-3
3232// SOURCE: https://en.wikipedia.org/wiki/Pure_function ("the function return values are identical for identical arguments")
33- // FORMAT THEOREM: ∀input: parse(input) = RepoTarget ⇔ input валиден по шаблону
33+ // FORMAT THEOREM: ∀input: parse(input) = RepoTarget ⇔ input matches pattern
3434// PURITY: CORE
3535// EFFECT: Effect<RepoTarget, RepoParseError, never>
3636// INVARIANT: owner ≠ "" ∧ name ≠ "" ∧ host = github.com
@@ -43,7 +43,7 @@ export const parseRepoTarget = (
4343 if ( normalized . length === 0 ) {
4444 return Effect . fail ( {
4545 _tag : "EmptyInput" ,
46- message : "Введите ссылку на GitHub репозиторий ." ,
46+ message : "Provide a GitHub repository URL ." ,
4747 } ) ;
4848 }
4949
@@ -53,7 +53,7 @@ export const parseRepoTarget = (
5353 if ( match === null || match . groups === undefined ) {
5454 return Effect . fail ( {
5555 _tag : "InvalidRepoUrl" ,
56- message : "Ожидается https://github.com/owner/name" ,
56+ message : "Expected https://github.com/owner/name" ,
5757 } ) ;
5858 }
5959
0 commit comments