2026-01-30 01:42:53 +00:00
{
2026-01-30 13:28:29 +00:00
"gram" : {
2026-01-30 13:11:58 +00:00
"verb" : {
"be" : { "base" : "be" , "past" : "was" , "gerund" : "being" } ,
"go" : { "base" : "go" , "past" : "went" , "gerund" : "going" } ,
"do" : { "base" : "do" , "past" : "did" , "gerund" : "doing" } ,
"have" : { "base" : "have" , "past" : "had" , "gerund" : "having" } ,
"make" : { "base" : "make" , "past" : "made" , "gerund" : "making" } ,
"get" : { "base" : "get" , "past" : "got" , "gerund" : "getting" } ,
"run" : { "base" : "run" , "past" : "ran" , "gerund" : "running" } ,
"write" : { "base" : "write" , "past" : "wrote" , "gerund" : "writing" } ,
"build" : { "base" : "build" , "past" : "built" , "gerund" : "building" } ,
"send" : { "base" : "send" , "past" : "sent" , "gerund" : "sending" } ,
"find" : { "base" : "find" , "past" : "found" , "gerund" : "finding" } ,
"take" : { "base" : "take" , "past" : "took" , "gerund" : "taking" } ,
"begin" : { "base" : "begin" , "past" : "began" , "gerund" : "beginning" } ,
"keep" : { "base" : "keep" , "past" : "kept" , "gerund" : "keeping" } ,
"hold" : { "base" : "hold" , "past" : "held" , "gerund" : "holding" } ,
"bring" : { "base" : "bring" , "past" : "brought" , "gerund" : "bringing" } ,
"think" : { "base" : "think" , "past" : "thought" , "gerund" : "thinking" } ,
"buy" : { "base" : "buy" , "past" : "bought" , "gerund" : "buying" } ,
"catch" : { "base" : "catch" , "past" : "caught" , "gerund" : "catching" } ,
"choose" : { "base" : "choose" , "past" : "chose" , "gerund" : "choosing" } ,
"lose" : { "base" : "lose" , "past" : "lost" , "gerund" : "losing" } ,
"win" : { "base" : "win" , "past" : "won" , "gerund" : "winning" } ,
"meet" : { "base" : "meet" , "past" : "met" , "gerund" : "meeting" } ,
"lead" : { "base" : "lead" , "past" : "led" , "gerund" : "leading" } ,
"leave" : { "base" : "leave" , "past" : "left" , "gerund" : "leaving" } ,
"spend" : { "base" : "spend" , "past" : "spent" , "gerund" : "spending" } ,
"pay" : { "base" : "pay" , "past" : "paid" , "gerund" : "paying" } ,
2026-01-30 14:24:23 +00:00
"sell" : { "base" : "sell" , "past" : "sold" , "gerund" : "selling" } ,
"commit" : { "base" : "commit" , "past" : "committed" , "gerund" : "committing" } ,
"stop" : { "base" : "stop" , "past" : "stopped" , "gerund" : "stopping" } ,
"scan" : { "base" : "scan" , "past" : "scanned" , "gerund" : "scanning" } ,
"format" : { "base" : "format" , "past" : "formatted" , "gerund" : "formatting" } ,
"set" : { "base" : "set" , "past" : "set" , "gerund" : "setting" } ,
"put" : { "base" : "put" , "past" : "put" , "gerund" : "putting" } ,
"cut" : { "base" : "cut" , "past" : "cut" , "gerund" : "cutting" } ,
"hit" : { "base" : "hit" , "past" : "hit" , "gerund" : "hitting" } ,
"sit" : { "base" : "sit" , "past" : "sat" , "gerund" : "sitting" } ,
"split" : { "base" : "split" , "past" : "split" , "gerund" : "splitting" } ,
"shut" : { "base" : "shut" , "past" : "shut" , "gerund" : "shutting" }
2026-01-30 13:11:58 +00:00
} ,
"noun" : {
2026-01-30 14:24:23 +00:00
"file" : { "one" : "file" , "other" : "files" } ,
"repo" : { "one" : "repo" , "other" : "repos" } ,
"repository" : { "one" : "repository" , "other" : "repositories" } ,
"commit" : { "one" : "commit" , "other" : "commits" } ,
"branch" : { "one" : "branch" , "other" : "branches" } ,
"change" : { "one" : "change" , "other" : "changes" } ,
"item" : { "one" : "item" , "other" : "items" } ,
"issue" : { "one" : "issue" , "other" : "issues" } ,
"task" : { "one" : "task" , "other" : "tasks" } ,
"person" : { "one" : "person" , "other" : "people" } ,
"child" : { "one" : "child" , "other" : "children" } ,
"package" : { "one" : "package" , "other" : "packages" } ,
"artifact" : { "one" : "artifact" , "other" : "artifacts" } ,
"vulnerability" : { "one" : "vulnerability" , "other" : "vulnerabilities" } ,
"dependency" : { "one" : "dependency" , "other" : "dependencies" } ,
"directory" : { "one" : "directory" , "other" : "directories" } ,
"category" : { "one" : "category" , "other" : "categories" } ,
2026-02-01 07:39:49 +00:00
"query" : { "one" : "query" , "other" : "queries" } ,
"passed" : { "one" : "passed" , "other" : "passed" } ,
"failed" : { "one" : "failed" , "other" : "failed" } ,
"skipped" : { "one" : "skipped" , "other" : "skipped" } ,
"check" : { "one" : "check" , "other" : "checks" } ,
"test" : { "one" : "test" , "other" : "tests" }
2026-01-30 13:11:58 +00:00
} ,
"article" : {
"indefinite" : { "default" : "a" , "vowel" : "an" } ,
"definite" : "the"
refactor(i18n): use grammar engine for progress messages
- Replace cli.progress.* keys with i18n.P() dynamic generation
- Remove 7 static progress keys from en_GB.json (building, checking, etc.)
- Add additional core.* intents (format, analyse, link, unlink, fetch, etc.)
- Add grammar helpers: Progress(), ProgressSubject(), ActionResult(), Label()
- Add package-level convenience functions: P(), PS(), L()
- Update commands to use common.prompt.abort instead of cli.confirm.abort
The grammar engine now generates progress messages dynamically:
i18n.P("check") → "Checking..."
i18n.P("fetch") → "Fetching..."
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 12:43:03 +00:00
} ,
2026-01-30 14:24:23 +00:00
"word" : {
"url" : "URL" ,
"id" : "ID" ,
"ok" : "OK" ,
"ci" : "CI" ,
"qa" : "QA" ,
"php" : "PHP" ,
"sdk" : "SDK" ,
"html" : "HTML" ,
"cgo" : "CGO" ,
"pid" : "PID" ,
"cpus" : "CPUs" ,
"ssh" : "SSH" ,
"ssl" : "SSL" ,
"api" : "API" ,
"pr" : "PR" ,
"vite" : "Vite" ,
"pnpm" : "pnpm" ,
"app_url" : "app URL" ,
"blocked_by" : "blocked by" ,
"claimed_by" : "claimed by" ,
"related_files" : "related files" ,
refactor(i18n): consolidate duplicate translation keys into common section
Add common.* keys for reusable translations:
- common.label.* - UI labels (error, done, status, version, etc.)
- common.status.* - status words (running, stopped, dirty, synced)
- common.error.* - error messages (failed, not_found, working_dir)
- common.flag.* - CLI flag descriptions (registry, verbose, etc.)
- common.count.* - count templates (failed, passed, skipped)
- common.result.* - result messages (all_passed, no_issues)
- common.progress.* - progress messages (running, checking)
- common.hint.* - help hints (install_with, fix_deps)
Update all cmd/* files to use common keys instead of duplicated
command-specific keys. Reduces translation maintenance burden
and ensures consistency across the CLI.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:32:25 +00:00
"up_to_date" : "up to date" ,
2026-01-30 14:24:23 +00:00
"dry_run" : "dry run" ,
2026-02-01 07:39:49 +00:00
"go_mod" : "go.mod" ,
"test" : "test" ,
"package" : "package" ,
"filter" : "filter" ,
"coverage" : "coverage" ,
"passed" : "passed" ,
"failed" : "failed" ,
"skipped" : "skipped"
refactor(i18n): consolidate duplicate translation keys into common section
Add common.* keys for reusable translations:
- common.label.* - UI labels (error, done, status, version, etc.)
- common.status.* - status words (running, stopped, dirty, synced)
- common.error.* - error messages (failed, not_found, working_dir)
- common.flag.* - CLI flag descriptions (registry, verbose, etc.)
- common.count.* - count templates (failed, passed, skipped)
- common.result.* - result messages (all_passed, no_issues)
- common.progress.* - progress messages (running, checking)
- common.hint.* - help hints (install_with, fix_deps)
Update all cmd/* files to use common keys instead of duplicated
command-specific keys. Reduces translation maintenance burden
and ensures consistency across the CLI.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:32:25 +00:00
} ,
2026-01-30 14:24:23 +00:00
"punct" : {
"label" : ":" ,
"progress" : "..."
feat(i18n): add localized number formatting helpers
New i18n.* namespace patterns for number formatting:
- T("i18n.number", 1234567) → "1,234,567" (en) / "1.234.567" (de)
- T("i18n.decimal", 1234.56) → "1,234.56" (en) / "1.234,56" (de)
- T("i18n.percent", 0.85) → "85%" (en) / "85 %" (de)
- T("i18n.bytes", 1536000) → "1.5 MB" (en) / "1,5 MB" (de)
- T("i18n.ordinal", 3) → "3rd" (en) / "3." (de)
Also available as direct functions:
- FormatNumber(n), FormatDecimal(f), FormatPercent(f)
- FormatBytes(n), FormatOrdinal(n)
Language-aware formatting for en, de, fr, es, zh.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:39:15 +00:00
} ,
"number" : {
"thousands" : "," ,
"decimal" : "." ,
"percent" : "%s%%"
refactor(i18n): consolidate duplicate translation keys into common section
Add common.* keys for reusable translations:
- common.label.* - UI labels (error, done, status, version, etc.)
- common.status.* - status words (running, stopped, dirty, synced)
- common.error.* - error messages (failed, not_found, working_dir)
- common.flag.* - CLI flag descriptions (registry, verbose, etc.)
- common.count.* - count templates (failed, passed, skipped)
- common.result.* - result messages (all_passed, no_issues)
- common.progress.* - progress messages (running, checking)
- common.hint.* - help hints (install_with, fix_deps)
Update all cmd/* files to use common keys instead of duplicated
command-specific keys. Reduces translation maintenance burden
and ensures consistency across the CLI.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:32:25 +00:00
}
} ,
2026-01-30 14:24:23 +00:00
"prompt" : {
"yes" : "y" ,
"no" : "n" ,
"continue" : "Continue?" ,
"proceed" : "Proceed?" ,
"confirm" : "Are you sure?" ,
"overwrite" : "Overwrite?" ,
"discard" : "Discard changes?"
} ,
"time" : {
"just_now" : "just now" ,
"ago" : {
"second" : { "one" : "{{.Count}} second ago" , "other" : "{{.Count}} seconds ago" } ,
"minute" : { "one" : "{{.Count}} minute ago" , "other" : "{{.Count}} minutes ago" } ,
"hour" : { "one" : "{{.Count}} hour ago" , "other" : "{{.Count}} hours ago" } ,
"day" : { "one" : "{{.Count}} day ago" , "other" : "{{.Count}} days ago" } ,
"week" : { "one" : "{{.Count}} week ago" , "other" : "{{.Count}} weeks ago" }
}
2026-01-30 01:42:53 +00:00
} ,
2026-01-30 11:11:07 +00:00
"cmd" : {
"ai" : {
"short" : "AI agent task management" ,
2026-02-01 07:39:49 +00:00
"long" : "AI agent task management for core-agentic integration. Provides commands to list, claim, update, and complete tasks from the agentic task queue." ,
2026-01-30 14:24:23 +00:00
"claude.short" : "Claude Code integration" ,
2026-02-01 07:39:49 +00:00
"claude.long" : "Claude Code integration for AI-assisted development workflows." ,
"claude.config.short" : "Configure Claude Code settings" ,
"claude.run.short" : "Run Claude Code on current directory" ,
2026-01-30 14:24:23 +00:00
"task.short" : "Show task details or auto-select a task" ,
2026-02-01 07:39:49 +00:00
"task.long" : "Show details of a specific task or auto-select the next available task from the queue." ,
"task.flag.auto" : "Auto-select the next available task" ,
"task.flag.claim" : "Claim the task for yourself" ,
"task.flag.context" : "Include full context in output" ,
2026-01-30 14:24:23 +00:00
"task.id_required" : "task ID required (or use --auto)" ,
"task.no_pending" : "No pending tasks available." ,
"tasks.short" : "List available tasks from core-agentic" ,
"task_commit.short" : "Auto-commit changes with task reference" ,
"task_commit.no_changes" : "No uncommitted changes to commit." ,
"task_complete.short" : "Mark a task as completed" ,
"task_pr.short" : "Create a pull request for a task" ,
"task_pr.branch_error" : "cannot create PR from {{.Branch}} branch; create a feature branch first" ,
"task_update.short" : "Update task status or progress"
2026-01-30 11:11:07 +00:00
} ,
"build" : {
"short" : "Build projects with auto-detection and cross-compilation" ,
2026-02-01 07:39:49 +00:00
"long" : "Build projects with automatic project type detection and cross-compilation support. Supports Go, Wails, Node.js, and PHP projects." ,
"flag.archive" : "Create archive (tar.gz/zip) of build output" ,
"flag.checksum" : "Generate SHA256 checksums" ,
"flag.ci" : "Run in CI mode (non-interactive)" ,
"flag.config" : "Path to build configuration file" ,
"flag.format" : "Output format (binary, docker, appimage)" ,
"flag.image" : "Docker image name for container builds" ,
"flag.no_sign" : "Skip code signing" ,
"flag.notarize" : "Notarize macOS builds" ,
"flag.output" : "Output directory for build artifacts" ,
"flag.push" : "Push container image to registry" ,
"flag.targets" : "Comma-separated build targets (e.g., linux/amd64,darwin/arm64)" ,
"flag.type" : "Project type override (go, wails, node, php)" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"label.build" : "Build" ,
"label.type" : "Type:" ,
"label.output" : "Output:" ,
"label.binary" : "Binary:" ,
"label.targets" : "Targets:" ,
"label.sign" : "Sign" ,
"label.archive" : "Archive" ,
"label.checksum" : "Checksum" ,
"label.ok" : "OK" ,
"building_project" : "Building project" ,
"built_artifacts" : "Built {{.Count}} artifacts" ,
"signing_binaries" : "Signing binaries" ,
"creating_archives" : "Creating archives" ,
"computing_checksums" : "Computing checksums" ,
2026-01-30 14:24:23 +00:00
"error.invalid_target" : "invalid target format \"{{.Target}}\", expected OS/arch (e.g., linux/amd64)" ,
"error.no_project_type" : "no supported project type detected in {{.Dir}}\nSupported types: go (go.mod), wails (wails.json), node (package.json), php (composer.json)" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"error.no_targets" : "no build targets specified" ,
"error.signing_failed" : "signing failed" ,
"error.notarization_failed" : "notarization failed" ,
"error.archive_failed" : "archive creation failed" ,
"error.checksum_failed" : "checksum generation failed" ,
"error.gpg_signing_failed" : "GPG signing failed" ,
"error.node_not_implemented" : "Node.js builds not yet implemented" ,
"error.php_not_implemented" : "PHP builds not yet implemented" ,
"error.unsupported_type" : "unsupported project type" ,
2026-01-30 14:24:23 +00:00
"from_path.short" : "Build from a local directory" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"from_path.flag.path" : "Path to application directory" ,
"from_path.starting" : "Building from path:" ,
"from_path.generating_template" : "Generating application template..." ,
"from_path.copying_files" : "Copying application files..." ,
"from_path.compiling" : "Compiling application..." ,
"from_path.success" : "Build complete:" ,
"from_path.error.invalid_path" : "invalid path" ,
"from_path.error.must_be_directory" : "path must be a directory" ,
"from_path.error.go_mod_tidy" : "go mod tidy failed" ,
"from_path.error.go_build" : "go build failed" ,
2026-01-30 14:24:23 +00:00
"pwa.short" : "Build from a live PWA URL" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"pwa.flag.url" : "URL of the PWA to build" ,
"pwa.starting" : "Building PWA from URL:" ,
"pwa.downloading_to" : "Downloading to:" ,
"pwa.no_manifest" : "No manifest.json found, using defaults" ,
"pwa.found_manifest" : "Found manifest:" ,
"pwa.download_complete" : "Download complete" ,
"pwa.error.no_manifest_tag" : "no manifest link tag found in HTML" ,
2026-02-01 07:39:49 +00:00
"sdk.short" : "Generate API SDKs from OpenAPI spec" ,
"sdk.long" : "Generate API SDKs from an OpenAPI specification file. Supports multiple languages including TypeScript, Go, and PHP." ,
"sdk.flag.dry_run" : "Show what would be generated without writing files" ,
"sdk.flag.lang" : "Target language (typescript, go, php)" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"sdk.flag.version" : "SDK version to generate" ,
"sdk.label" : "SDK" ,
"sdk.generating" : "Generating SDK" ,
"sdk.dry_run_mode" : "(dry run - no files will be written)" ,
"sdk.language_label" : "Language:" ,
"sdk.languages_label" : "Languages:" ,
"sdk.would_generate" : "Would generate SDK" ,
"sdk.generated_label" : "Generated:" ,
"sdk.complete" : "SDK generation complete"
2026-01-30 11:11:07 +00:00
} ,
"ci" : {
2026-01-30 14:24:23 +00:00
"short" : "Publish releases (dry-run by default)" ,
2026-02-01 07:39:49 +00:00
"long" : "Publish releases to GitHub with automatic changelog generation. Runs in dry-run mode by default for safety." ,
"flag.draft" : "Create as draft release" ,
"flag.prerelease" : "Mark as pre-release" ,
"flag.version" : "Version to release (e.g., v1.2.3)" ,
"flag.go_for_launch" : "Actually publish the release (disables dry-run)" ,
2026-01-30 11:11:07 +00:00
"dry_run_hint" : "(dry-run) use --we-are-go-for-launch to publish" ,
"go_for_launch" : "GO FOR LAUNCH" ,
2026-01-30 14:24:23 +00:00
"init.short" : "Initialize release configuration" ,
"changelog.short" : "Generate changelog" ,
"version.short" : "Show or set version"
2026-01-30 11:11:07 +00:00
} ,
"dev" : {
2026-01-30 14:24:23 +00:00
"short" : "Multi-repo development workflow" ,
2026-02-01 07:39:49 +00:00
"long" : "Multi-repo development workflow tools for managing federated monorepos. Provides health checks, commit assistance, push/pull operations, and CI status across all repositories." ,
"api.short" : "Start API development server" ,
"workflow.short" : "Manage GitHub Actions workflows" ,
"workflow.long" : "Manage GitHub Actions workflows across repositories. List, sync, and update workflow files." ,
"workflow.list.short" : "List workflows across repos" ,
"workflow.sync.short" : "Sync workflow files across repos" ,
"vm.boot.short" : "Boot development VM" ,
"vm.claude.short" : "Run Claude in development VM" ,
"vm.install.short" : "Install development VM" ,
"vm.serve.short" : "Start services in development VM" ,
"vm.shell.short" : "Open shell in development VM" ,
"vm.stop.short" : "Stop development VM" ,
"vm.test.short" : "Run tests in development VM" ,
"vm.update.short" : "Update development VM" ,
"vm.status.short" : "Show development VM status" ,
2026-01-30 11:11:07 +00:00
"no_changes" : "No uncommitted changes found." ,
"no_git_repos" : "No git repositories found." ,
2026-01-30 14:24:23 +00:00
"confirm_claude_commit" : "Have Claude commit these repos?" ,
"health.short" : "Quick health check across all repos" ,
2026-02-01 03:55:01 +00:00
"health.long" : "Shows a summary of repository health across all repos in the workspace." ,
"health.flag.verbose" : "Show detailed breakdown" ,
"health.repos" : "repos" ,
"health.to_push" : "to push" ,
"health.to_pull" : "to pull" ,
"health.errors" : "errors" ,
"health.more" : "+{{.Count}} more" ,
"health.dirty_label" : "Dirty:" ,
"health.ahead_label" : "Ahead:" ,
"health.behind_label" : "Behind:" ,
"health.errors_label" : "Errors:" ,
"status.clean" : "clean" ,
2026-01-30 14:24:23 +00:00
"commit.short" : "Claude-assisted commits across repos" ,
"push.short" : "Push commits across all repos" ,
"push.diverged" : "branch has diverged from remote" ,
"push.diverged_help" : "Some repos have diverged (local and remote have different commits)." ,
"push.uncommitted_changes_commit" : "You have uncommitted changes. Commit with Claude first?" ,
"pull.short" : "Pull updates across all repos" ,
"work.short" : "Multi-repo git operations" ,
"work.use_commit_flag" : "Use --commit to have Claude create commits" ,
"issues.short" : "List open issues across all repos" ,
"reviews.short" : "List PRs needing review across all repos" ,
"ci.short" : "Check CI status across all repos" ,
"impact.short" : "Show impact of changing a repo" ,
"impact.requires_registry" : "impact analysis requires repos.yaml with dependency information" ,
"sync.short" : "Synchronizes public service APIs with internal implementations" ,
"vm.short" : "Dev environment commands" ,
"vm.not_installed" : "dev environment not installed (run 'core dev install' first)" ,
2026-02-01 06:11:24 +00:00
"vm.not_running" : "Dev environment is not running" ,
"file_sync.short" : "Sync files across repos (agent-safe)" ,
"file_sync.long" : "Safely sync files or directories across multiple repositories with automatic pull/commit/push. Designed for AI agents to avoid common git pitfalls." ,
"file_sync.flag.to" : "Target repos pattern (e.g., packages/core-*)" ,
"file_sync.flag.message" : "Commit message for the sync" ,
"file_sync.flag.co_author" : "Co-author for commit (e.g., 'Name <email>')" ,
"file_sync.flag.dry_run" : "Show what would be done without making changes" ,
"file_sync.flag.push" : "Push after committing" ,
"file_sync.source" : "Source" ,
"file_sync.targets" : "Targets" ,
"file_sync.summary" : "Summary" ,
"file_sync.no_changes" : "no changes" ,
"file_sync.dry_run_mode" : "(dry run)" ,
"file_sync.error.source_not_found" : "Source not found: {{.Path}}" ,
"file_sync.error.no_targets" : "No target repos matched the pattern" ,
"file_sync.error.no_registry" : "No repos.yaml found" ,
"apply.short" : "Run command or script across repos (agent-safe)" ,
"apply.long" : "Run a command or script across multiple repositories with optional commit and push. Designed for AI agents to safely apply changes at scale." ,
"apply.flag.command" : "Shell command to run in each repo" ,
"apply.flag.script" : "Script file to run in each repo" ,
"apply.flag.repos" : "Comma-separated list of repo names (default: all)" ,
"apply.flag.commit" : "Commit changes after running" ,
"apply.flag.message" : "Commit message (required with --commit)" ,
"apply.flag.co_author" : "Co-author for commit" ,
"apply.flag.dry_run" : "Show what would be done without making changes" ,
"apply.flag.push" : "Push after committing" ,
"apply.flag.continue" : "Continue on error instead of stopping" ,
"apply.action" : "Action" ,
"apply.targets" : "Targets" ,
"apply.summary" : "Summary" ,
"apply.no_changes" : "no changes" ,
"apply.dry_run_mode" : "(dry run)" ,
"apply.error.no_command" : "Either --command or --script is required" ,
"apply.error.both_command_script" : "Cannot use both --command and --script" ,
"apply.error.commit_needs_message" : "--commit requires --message" ,
"apply.error.script_not_found" : "Script not found: {{.Path}}" ,
"apply.error.no_repos" : "No repos found" ,
"apply.error.no_registry" : "No repos.yaml found" ,
"apply.error.command_failed" : "Command failed (use --continue to skip failures)"
2026-01-30 11:11:07 +00:00
} ,
"docs" : {
"short" : "Documentation management" ,
2026-02-01 07:39:49 +00:00
"long" : "Documentation management tools for listing and syncing documentation across repositories." ,
2026-01-30 14:24:23 +00:00
"list.short" : "List documentation across repos" ,
"sync.short" : "Sync documentation to core-php/docs/packages/"
2026-01-30 11:11:07 +00:00
} ,
"doctor" : {
"short" : "Check development environment" ,
2026-02-01 07:39:49 +00:00
"long" : "Check development environment for required tools and configuration. Verifies git, gh CLI, language runtimes, and SSH setup." ,
"verbose_flag" : "Show detailed check results" ,
2026-01-30 14:24:23 +00:00
"ready" : "Doctor: Environment ready" ,
"no_repos_yaml" : "No repos.yaml found (run from workspace directory)" ,
"install_missing" : "Install missing tools:" ,
"install_macos" : "brew install git gh php composer node pnpm docker" ,
"ssh_missing" : "SSH key missing - run: ssh-keygen && gh ssh-key add"
2026-01-30 11:11:07 +00:00
} ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"git" : {
"short" : "Git workflow commands" ,
"long" : "Git workflow commands for managing repositories. Includes status, commit, push, pull operations and safe multi-repo commands for AI agents."
} ,
2026-01-30 11:11:07 +00:00
"go" : {
"short" : "Go development tools" ,
2026-02-01 07:39:49 +00:00
"long" : "Go development tools including testing, formatting, linting, and module management." ,
2026-01-30 14:24:23 +00:00
"test.short" : "Run Go tests" ,
"cov.short" : "Run tests with coverage report" ,
"fmt.short" : "Format Go code" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"fmt.no_changes" : "No changed Go files to format." ,
"fmt.flag.check" : "Check if formatted (exit 1 if not)" ,
"fmt.flag.all" : "Check all files, not just changed ones" ,
2026-01-30 14:24:23 +00:00
"lint.short" : "Run golangci-lint" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"lint.no_changes" : "No changed Go files to lint." ,
"lint.flag.all" : "Lint all files, not just changed ones" ,
2026-01-30 14:24:23 +00:00
"install.short" : "Install Go binary" ,
"mod.short" : "Module management" ,
2026-02-01 07:39:49 +00:00
"work.short" : "Workspace management" ,
"qa.short" : "Run QA checks (fmt, lint, test)"
2026-01-30 11:11:07 +00:00
} ,
"php" : {
"short" : "Laravel/PHP development tools" ,
2026-01-30 14:24:23 +00:00
"dev.short" : "Start Laravel development environment" ,
"dev.press_ctrl_c" : "Press Ctrl+C to stop all services" ,
"test.short" : "Run PHP tests (PHPUnit/Pest)" ,
2026-02-01 06:32:35 +00:00
"test.flag.parallel" : "Run tests in parallel" ,
"test.flag.coverage" : "Generate code coverage report" ,
"test.flag.filter" : "Filter tests by name pattern" ,
"test.flag.group" : "Run only tests in specified group" ,
"test.flag.junit" : "Output results in JUnit XML format" ,
2026-01-30 14:24:23 +00:00
"fmt.short" : "Format PHP code with Laravel Pint" ,
2026-02-01 06:32:35 +00:00
"fmt.flag.fix" : "Apply formatting fixes" ,
2026-01-30 14:24:23 +00:00
"analyse.short" : "Run PHPStan static analysis" ,
2026-02-01 06:32:35 +00:00
"analyse.flag.level" : "PHPStan analysis level (0-9)" ,
"analyse.flag.memory" : "Memory limit (e.g., 2G)" ,
2026-01-30 14:24:23 +00:00
"audit.short" : "Security audit for dependencies" ,
"psalm.short" : "Run Psalm static analysis" ,
2026-02-01 06:32:35 +00:00
"psalm.flag.level" : "Psalm error level (1=strictest, 8=lenient)" ,
"psalm.flag.baseline" : "Generate/update baseline file" ,
"psalm.flag.show_info" : "Show info-level issues" ,
2026-01-30 14:24:23 +00:00
"rector.short" : "Automated code refactoring" ,
2026-02-01 06:32:35 +00:00
"rector.flag.fix" : "Apply refactoring changes" ,
"rector.flag.diff" : "Show detailed diff of changes" ,
"rector.flag.clear_cache" : "Clear cache before running" ,
2026-01-30 14:24:23 +00:00
"infection.short" : "Mutation testing for test quality" ,
2026-02-01 06:32:35 +00:00
"infection.flag.min_msi" : "Minimum mutation score indicator (0-100)" ,
"infection.flag.min_covered_msi" : "Minimum covered mutation score (0-100)" ,
"infection.flag.threads" : "Number of parallel threads" ,
"infection.flag.filter" : "Filter files by pattern" ,
"infection.flag.only_covered" : "Only mutate covered code" ,
2026-01-30 14:24:23 +00:00
"security.short" : "Security vulnerability scanning" ,
2026-02-01 06:32:35 +00:00
"security.flag.severity" : "Minimum severity (critical, high, medium, low)" ,
"security.flag.sarif" : "Output as SARIF for GitHub Security tab" ,
"security.flag.url" : "URL to check HTTP security headers" ,
2026-01-30 14:24:23 +00:00
"qa.short" : "Run full QA pipeline" ,
2026-02-01 06:32:35 +00:00
"qa.flag.quick" : "Run quick checks only (audit, fmt, stan)" ,
"qa.flag.full" : "Run all stages including slow checks" ,
2026-01-30 14:24:23 +00:00
"build.short" : "Build Docker or LinuxKit image" ,
"deploy.short" : "Deploy to Coolify" ,
2026-02-01 07:39:49 +00:00
"deploy_list.short" : "List deployments" ,
"deploy_rollback.short" : "Rollback to previous deployment" ,
"deploy_status.short" : "Show deployment status" ,
2026-01-30 14:24:23 +00:00
"serve.short" : "Run production container" ,
"ssl.short" : "Setup SSL certificates with mkcert" ,
2026-02-01 06:11:00 +00:00
"packages.short" : "Manage local PHP packages" ,
2026-02-01 07:39:49 +00:00
"logs.short" : "View application logs" ,
"shell.short" : "Open shell in container" ,
"status.short" : "Show container status" ,
"stop.short" : "Stop running containers" ,
"stan.short" : "Run PHPStan static analysis" ,
2026-02-01 06:11:00 +00:00
"ci.short" : "Run CI/CD pipeline with combined reporting" ,
"ci.long" : "Run all QA checks in optimal order and generate combined reports in JSON, markdown, or SARIF format for CI/CD integration." ,
"ci.flag.json" : "Output combined JSON report" ,
"ci.flag.summary" : "Output markdown summary (for PR comments)" ,
"ci.flag.sarif" : "Generate SARIF files for static analysis" ,
"ci.flag.upload_sarif" : "Upload SARIF to GitHub Security tab" ,
"ci.flag.fail_on" : "Severity level to fail on (critical, high, warning)"
2026-01-30 11:11:07 +00:00
} ,
"pkg" : {
"short" : "Package management for core-* repos" ,
2026-02-01 07:39:49 +00:00
"long" : "Package management for core-* repositories. Clone, list, update, and search for packages." ,
2026-01-30 14:24:23 +00:00
"install.short" : "Clone a package from GitHub" ,
"list.short" : "List installed packages" ,
"update.short" : "Update installed packages" ,
"outdated.short" : "Check for outdated packages" ,
"search.short" : "Search GitHub for packages" ,
"error.invalid_repo_format" : "invalid repo format: use org/repo (e.g., host-uk/core-php)"
2026-01-30 11:11:07 +00:00
} ,
"sdk" : {
"short" : "SDK validation and API compatibility tools" ,
2026-02-01 07:39:49 +00:00
"long" : "SDK validation and API compatibility tools. Check for breaking changes and validate OpenAPI specifications." ,
2026-01-30 14:24:23 +00:00
"diff.short" : "Check for breaking API changes" ,
"validate.short" : "Validate OpenAPI spec"
2026-01-30 11:11:07 +00:00
} ,
"setup" : {
2026-01-30 14:24:23 +00:00
"short" : "Bootstrap workspace or clone packages from registry" ,
2026-02-01 07:39:49 +00:00
"long" : "Bootstrap a new workspace or clone packages from a repos.yaml registry. Interactive wizard for selecting packages to clone." ,
"flag.all" : "Clone all packages from registry" ,
"flag.build" : "Build packages after cloning" ,
"flag.dry_run" : "Show what would be cloned without cloning" ,
"flag.name" : "Package name to clone" ,
"flag.only" : "Only clone packages of this type" ,
"flag.registry" : "Path to repos.yaml registry file" ,
2026-01-30 11:11:07 +00:00
"complete" : "Setup complete" ,
2026-01-30 14:24:23 +00:00
"bootstrap_mode" : "Bootstrap mode (no repos.yaml found)" ,
2026-01-30 11:11:07 +00:00
"nothing_to_clone" : "Nothing to clone." ,
2026-01-30 14:24:23 +00:00
"wizard.select_packages" : "Select packages to clone" ,
2026-02-01 03:37:06 +00:00
"wizard.what_to_do" : "What would you like to do?" ,
"github.short" : "Configure GitHub repos with org standards" ,
"github.long" : "Configure GitHub repositories with organisation standards including labels, webhooks, branch protection, and security settings." ,
"github.flag.repo" : "Specific repo to setup" ,
"github.flag.all" : "Setup all repos in registry" ,
"github.flag.labels" : "Only sync labels" ,
"github.flag.webhooks" : "Only sync webhooks" ,
"github.flag.protection" : "Only sync branch protection" ,
"github.flag.security" : "Only sync security settings" ,
"github.flag.check" : "Dry-run: show what would change" ,
"github.flag.config" : "Path to github.yaml config" ,
"github.dry_run_mode" : "(dry run) no changes will be made" ,
"github.no_repos_specified" : "No repos specified." ,
"github.usage_hint" : "Use --repo <name> for a single repo, or --all for all repos" ,
"github.no_changes" : "no changes needed" ,
"github.repos_checked" : "Repos checked" ,
"github.repos_with_changes" : "Repos with changes" ,
"github.all_up_to_date" : "All repos are up to date" ,
"github.to_create" : "To create" ,
"github.to_update" : "To update" ,
"github.to_delete" : "To delete" ,
"github.run_without_check" : "Run without --check to apply changes" ,
"github.error.not_authenticated" : "GitHub CLI not authenticated. Run: gh auth login" ,
"github.error.config_not_found" : "GitHub config file not found" ,
"github.error.conflicting_flags" : "Cannot use --repo and --all together"
2026-01-30 11:11:07 +00:00
} ,
2026-02-01 06:04:21 +00:00
"security" : {
"short" : "Security alerts and vulnerability scanning" ,
"long" : "View security alerts from Dependabot, code scanning, and secret scanning across repositories." ,
"alerts.short" : "List all security alerts across repos" ,
"alerts.long" : "List security alerts from Dependabot, code scanning, and secret scanning. Aggregates alerts across all repos in the registry." ,
"deps.short" : "List Dependabot vulnerability alerts" ,
"deps.long" : "List vulnerable dependencies detected by Dependabot with upgrade recommendations." ,
"deps.flag.vulnerable" : "Show only vulnerable dependencies" ,
"scan.short" : "List code scanning alerts" ,
"scan.long" : "List code scanning alerts from tools like CodeQL, Semgrep, etc." ,
"scan.flag.tool" : "Filter by tool name (e.g., codeql, semgrep)" ,
"secrets.short" : "List exposed secrets" ,
"secrets.long" : "List secrets detected by GitHub secret scanning." ,
"flag.repo" : "Specific repo to check" ,
"flag.severity" : "Filter by severity (critical,high,medium,low)"
} ,
2026-02-01 03:37:16 +00:00
"qa" : {
"short" : "Quality assurance workflows" ,
"long" : "Quality assurance commands for verifying work - CI status, reviews, issues." ,
"watch.short" : "Watch GitHub Actions after a push" ,
"watch.long" : "Monitor GitHub Actions workflow runs triggered by a commit, showing live progress and actionable failure details." ,
"watch.flag.repo" : "Repository to watch (default: current)" ,
"watch.flag.commit" : "Commit SHA to watch (default: HEAD)" ,
"watch.flag.timeout" : "Timeout duration (default: 10m)" ,
"watch.commit" : "Commit:" ,
"watch.waiting_for_workflows" : "Waiting for workflows to start..." ,
"watch.timeout" : "Timeout after {{.Duration}} waiting for workflows" ,
"watch.workflows_failed" : "{{.Count}} workflow(s) failed" ,
"watch.all_passed" : "All workflows passed" ,
"watch.error.not_git_repo" : "Not in a git repository" ,
feat(qa): add review command for PR status (#64)
* feat(qa): add qa watch command for CI monitoring (#47)
Implements `core qa watch` to monitor GitHub Actions after a push:
- Polls workflow runs for a commit until completion
- Shows live progress with pass/fail counts
- On failure, shows job name, failed step, and link to logs
- Exits with appropriate code (0 = passed, 1 = failed)
Usage:
core qa watch # Watch current repo's HEAD
core qa watch --repo X # Watch specific repo
core qa watch --timeout 5m # Custom timeout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(qa): address CodeRabbit feedback on watch command
- Add length check before slicing commitSha to prevent panic on short SHAs
- Count all non-success conclusions as failures (cancelled, timed_out, etc.)
- Use errors.E/Wrap pattern for consistent error handling with operation context
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add context-aware commands and log parsing
- Use exec.CommandContext with timeout context for all gh invocations
so commands are cancelled when deadline expires
- Implement fetchErrorFromLogs using 'gh run view --log-failed'
to extract first meaningful error line from failed workflows
- Pass context through call chain for proper timeout propagation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add review command for PR status (#62)
Add `core qa review` command to show PR review status with actionable
next steps. Answers: "What do I need to do to get my PRs merged?"
and "What reviews am I blocking?"
Features:
- Shows your open PRs with merge status (CI, reviews, conflicts)
- Shows PRs where your review is requested
- Provides actionable suggestions (rebase, address feedback, etc.)
- Flags: --mine, --requested, --repo
Closes #62
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add review command for PR status (#62)
Add `core qa review` command to show PR review status with actionable
next steps. Answers: "What do I need to do to get my PRs merged?"
and "What reviews am I blocking?"
Features:
- Shows your open PRs with merge status (CI, reviews, conflicts)
- Shows PRs where your review is requested
- Provides actionable suggestions (rebase, address feedback, etc.)
- Flags: --mine, --requested, --repo
Closes #62
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(qa): address CodeRabbit feedback on review command
- Fix truncate to use runes for UTF-8 safe string slicing
- Remove unused user parameter from showMyPRs and showRequestedReviews
- Remove unused getCurrentUser function
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(qa): remove duplicate i18n block and improve error handling
- Remove duplicate cmd.qa block in en_GB.json
- Use errors.E consistently for error wrapping
- Require --repo flag when not in a git repository
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:56:48 +00:00
"watch.error.repo_format" : "Invalid repo format. Use --repo org/name or run from a git repo" ,
"review.short" : "Check PR review status" ,
"review.long" : "Show PR review status with actionable next steps. Answers: What do I need to do to get my PRs merged? What reviews am I blocking?" ,
"review.flag.mine" : "Show only your open PRs" ,
"review.flag.requested" : "Show only PRs where your review is requested" ,
"review.flag.repo" : "Specific repository (default: current)" ,
"review.your_prs" : "Your PRs" ,
"review.review_requested" : "Review Requested" ,
"review.no_prs" : "No open PRs" ,
"review.no_reviews" : "No reviews requested" ,
2026-02-01 05:20:46 +00:00
"review.error.no_repo" : "Not in a git repository. Use --repo to specify one" ,
"health.short" : "Aggregate CI health across all repos" ,
"health.long" : "Shows CI health summary across all repos with focus on problems that need attention." ,
"health.flag.problems" : "Show only repos with problems" ,
"health.summary" : "CI Health" ,
"health.all_healthy" : "All repos are healthy" ,
"health.passing" : "Passing" ,
"health.tests_failing" : "Tests failing" ,
"health.running" : "Running" ,
"health.cancelled" : "Cancelled" ,
"health.skipped" : "Skipped" ,
"health.no_ci_configured" : "No CI configured" ,
"health.workflow_disabled" : "Workflow disabled" ,
"health.fetch_error" : "Failed to fetch status" ,
"health.parse_error" : "Failed to parse response" ,
"health.count_passing" : "Passing" ,
"health.count_failing" : "Failing" ,
"health.count_pending" : "Pending" ,
"health.count_no_ci" : "No CI" ,
"health.count_disabled" : "Disabled" ,
"issues.short" : "Intelligent issue triage" ,
"issues.long" : "Show prioritised, actionable issues across all repos. Groups by: needs response, ready to work, blocked, and needs triage." ,
"issues.flag.mine" : "Show only issues assigned to you" ,
"issues.flag.triage" : "Show only issues needing triage" ,
"issues.flag.blocked" : "Show only blocked issues" ,
"issues.flag.limit" : "Maximum issues per repo" ,
"issues.fetching" : "Fetching..." ,
"issues.no_issues" : "No open issues found" ,
"issues.category.needs_response" : "Needs Response" ,
"issues.category.ready" : "Ready to Work" ,
"issues.category.blocked" : "Blocked" ,
"issues.category.triage" : "Needs Triage" ,
"issues.hint.needs_response" : "commented recently" ,
"issues.hint.blocked" : "Waiting on dependency" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"issues.hint.triage" : "Add labels and assignee" ,
"docblock.short" : "Check docstring coverage for Go code" ,
"docblock.long" : "Analyse Go packages for docstring coverage on exported symbols. Checks functions, types, constants, and variables." ,
"docblock.flag.threshold" : "Minimum coverage percentage required" ,
"docblock.missing_docs" : "Missing documentation:" ,
"docblock.coverage" : "Docstring coverage:" ,
"docblock.use_verbose" : "Run with -v to see missing docstrings"
2026-02-01 03:37:16 +00:00
} ,
2026-01-30 11:11:07 +00:00
"test" : {
2026-02-01 07:39:49 +00:00
"short" : "Run Go tests with coverage" ,
"long" : "Run Go tests with optional coverage reporting, race detection, and filtering." ,
"flag.json" : "Output results as JSON" ,
"flag.pkg" : "Package to test (default: ./...)" ,
"flag.race" : "Enable race detector" ,
"flag.run" : "Run only tests matching pattern" ,
"flag.short" : "Run only short tests" ,
"flag.verbose" : "Verbose output"
2026-01-30 11:11:07 +00:00
} ,
"vm" : {
"short" : "LinuxKit VM management" ,
2026-02-01 07:39:49 +00:00
"long" : "LinuxKit VM management for running isolated development environments. Create, run, and manage lightweight VMs." ,
2026-01-30 14:24:23 +00:00
"run.short" : "Run a LinuxKit image or template" ,
"ps.short" : "List running VMs" ,
"stop.short" : "Stop a running VM" ,
"logs.short" : "View VM logs" ,
"exec.short" : "Execute a command in a VM" ,
"templates.short" : "Manage LinuxKit templates"
2026-02-01 05:44:46 +00:00
} ,
"monitor" : {
"short" : "Aggregate security findings from GitHub" ,
"long" : "Monitor GitHub Security Tab, Dependabot, and secret scanning for actionable findings. Aggregates results from free tier scanners (Semgrep, Trivy, Gitleaks, OSV-Scanner, Checkov, CodeQL)." ,
"flag.repo" : "Specific repository to scan" ,
"flag.severity" : "Filter by severity (critical, high, medium, low)" ,
"flag.json" : "Output as JSON for piping to other tools" ,
"flag.all" : "Scan all repos in registry" ,
"scanning" : "Scanning" ,
"found" : "Found" ,
"no_findings" : "No security findings" ,
"error.no_repos" : "No repositories to scan. Use --repo, --all, or run from a git repo" ,
"error.not_git_repo" : "Not in a git repository. Use --repo to specify one"
2026-01-30 11:11:07 +00:00
}
2026-01-30 01:42:53 +00:00
} ,
2026-01-30 20:51:32 +00:00
"common" : {
2026-02-01 03:55:01 +00:00
"status" : {
"dirty" : "dirty" ,
"clean" : "clean" ,
"synced" : "synced" ,
"up_to_date" : "up to date"
} ,
2026-01-30 20:51:32 +00:00
"label" : {
"done" : "Done" ,
feat: git command, build improvements, and go fmt git-aware (#74)
* feat(go): make go fmt git-aware by default
- By default, only check changed Go files (modified, staged, untracked)
- Add --all flag to check all files (previous behaviour)
- Reduces noise when running fmt on large codebases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(build): minimal output by default, add missing i18n
- Default output now shows single line: "Success Built N artifacts (dir)"
- Add --verbose/-v flag to show full detailed output
- Add all missing i18n translations for build commands
- Errors still show failure reason in minimal mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add root-level `core git` command
- Create pkg/gitcmd with git workflow commands as root menu
- Export command builders from pkg/dev (AddCommitCommand, etc.)
- Commands available under both `core git` and `core dev` for compatibility
- Git commands: health, commit, push, pull, work, sync, apply
- GitHub orchestration stays in dev: issues, reviews, ci, impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(qa): add docblock coverage checking
Implement docblock/docstring coverage analysis for Go code:
- New `core qa docblock` command to check coverage
- Shows compact file:line list when under threshold
- Integrate with `core go qa` as a default check
- Add --docblock-threshold flag (default 80%)
The checker uses Go AST parsing to find exported symbols
(functions, types, consts, vars) without documentation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Fix doc comment: "status" → "health" in gitcmd package
- Implement --check flag for `core go fmt` (exits non-zero if files need formatting)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add docstrings for 100% coverage
Add documentation comments to all exported symbols:
- pkg/build: ProjectType constants
- pkg/cli: LogLevel, RenderStyle, TableStyle
- pkg/framework: ServiceFor, MustServiceFor, Core.Core
- pkg/git: GitError.Error, GitError.Unwrap
- pkg/i18n: Handler Match/Handle methods
- pkg/log: Level constants
- pkg/mcp: Tool input/output types
- pkg/php: Service constants, QA types, service methods
- pkg/process: ServiceError.Error
- pkg/repos: RepoType constants
- pkg/setup: ChangeType, ChangeCategory constants
- pkg/workspace: AddWorkspaceCommands
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: standardize line endings to LF
Add .gitattributes to enforce LF line endings for all text files.
Normalize all existing files to use Unix-style line endings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- cmd_format.go: validate --check/--fix mutual exclusivity, capture stderr
- cmd_docblock.go: return error instead of os.Exit(1) for proper error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback (round 2)
- linuxkit.go: propagate state update errors, handle cmd.Wait() errors in waitForExit
- mcp.go: guard against empty old_string in editDiff to prevent runaway edits
- cmd_docblock.go: log parse errors instead of silently skipping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:48:44 +00:00
"success" : "Success" ,
2026-01-30 20:51:32 +00:00
"error" : "Error" ,
"warning" : "Warning" ,
"info" : "Info" ,
"fix" : "Fix:" ,
"install" : "Install:" ,
"summary" : "Summary:" ,
2026-02-01 03:37:06 +00:00
"setup" : "Setup:" ,
"config" : "Config:" ,
2026-02-01 07:39:49 +00:00
"repo" : "Repo:" ,
"test" : "Running tests..." ,
"package" : "Package:" ,
"coverage" : "Coverage:"
2026-01-30 20:51:32 +00:00
} ,
"flag" : {
"fix" : "Auto-fix issues where possible" ,
"diff" : "Show diff of changes" ,
2026-02-01 03:37:06 +00:00
"json" : "Output as JSON" ,
2026-02-01 06:32:35 +00:00
"sarif" : "Output as SARIF for GitHub Security tab" ,
2026-02-01 03:55:01 +00:00
"verbose" : "Show detailed output" ,
2026-02-01 07:39:49 +00:00
"registry" : "Path to repos.yaml registry file" ,
"coverage" : "Generate coverage report" ,
"spec" : "Path to OpenAPI specification file"
2026-01-30 20:51:32 +00:00
} ,
"progress" : {
"running" : "Running {{.Task}}..." ,
"checking" : "Checking {{.Item}}..."
} ,
"result" : {
2026-02-01 07:39:49 +00:00
"no_issues" : "No issues found" ,
"all_passed" : "All tests passed"
2026-01-30 20:51:32 +00:00
} ,
"success" : {
"completed" : "{{.Action}} successfully"
} ,
"error" : {
2026-02-01 06:32:35 +00:00
"failed" : "Failed to {{.Action}}" ,
"json_sarif_exclusive" : "--json and --sarif flags are mutually exclusive"
2026-01-30 20:51:32 +00:00
} ,
"hint" : {
"fix_deps" : "Update dependencies to fix vulnerabilities"
2026-02-01 06:11:24 +00:00
} ,
"count" : {
"succeeded" : "{{.Count}} succeeded" ,
"failed" : "{{.Count}} failed" ,
2026-02-01 07:39:49 +00:00
"skipped" : "{{.Count}} skipped" ,
"passed" : "{{.Count}} passed"
2026-01-30 20:51:32 +00:00
}
} ,
2026-01-30 11:11:07 +00:00
"error" : {
"gh_not_found" : "'gh' CLI not found. Install from https://cli.github.com/" ,
"registry_not_found" : "No repos.yaml found" ,
2026-01-30 14:24:23 +00:00
"repo_not_found" : "Repository '{{.Name}}' not found"
2026-01-30 01:42:53 +00:00
} ,
2026-01-30 11:11:07 +00:00
"lang" : {
"de" : "German" ,
"en" : "English" ,
"es" : "Spanish" ,
"fr" : "French" ,
"zh" : "Chinese"
2026-02-01 07:39:49 +00:00
} ,
"cli" : {
"pass" : "PASS" ,
"fail" : "FAIL"
2026-01-30 11:11:07 +00:00
}
2026-01-30 01:42:53 +00:00
}