@autodevjapan/godd-mcp-alpha 2.9.3 → 2.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/godd.cjs CHANGED
@@ -214,7 +214,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
214
214
  `).map(n=>{let i=n.match(t);return i?`${i[1]}"@${i[2]}"${i[3]??""}`:n}).join(`
215
215
  `)}function eZ(e){if("language"in e&&!("display_language"in e)){let t=e.language;e.display_language=t,e.main_language=t,delete e.language}}function tZ(e){if("e2e_tool"in e){let t=typeof e.tools=="object"&&!Array.isArray(e.tools)?e.tools:{};t.e2e_testing=e.e2e_tool,e.tools=t,delete e.e2e_tool}for(let t of["tools","design","godd_files"]){let n=e[t];(n==null||Array.isArray(n)&&n.length===0)&&(e[t]={})}}var vd=new Set(["typescript","javascript","python","java","csharp","cpp","c","go","rust","php","swift","kotlin","ruby","dart","r","scala","objective-c","sql","html-css","bash","elixir","haskell","perl","lua","julia","clojure","fsharp","groovy","visual-basic","powershell","erlang","ocaml","zig","nim","crystal","solidity","fortran","cobol","assembly","d","ada","v","pascal","prolog","gdscript","gdshader","matlab","sas","abap","apex","vba","delphi","actionscript","coldfusion","rexx","labview","lisp","common-lisp","scheme","racket","smalltalk","tcl","raku","standard-ml","mercury","factor","idris","agda","lean","coq","forth","apl","io","pike","chapel","elm","rescript","reason","purescript","coffeescript","hack","haxe","vala","mojo","gleam","ballerina","odin","hare","webassembly","cuda","verilog","vhdl","systemverilog","hlsl","glsl","wgsl"]),_d=new Set(["react","nextjs","vue","nuxt","svelte","sveltekit","angular","analog","flutter","blazor","solid","solidstart","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri","liftkit","preact","lit","stencil","marko","mithril","aurelia","riot","knockout","backbone","gatsby","redwoodjs","eleventy","vitepress","fresh","tanstack-start","yew","leptos","dioxus","sycamore","threejs","babylonjs","cesiumjs"]),bd=new Set(["express","nestjs","hono","fastify","koa","hapi","adonisjs","sails","loopback","feathers","meteor","elysia","nitro","apollo-server","graphql-yoga","fastapi","django","django-ninja","flask","tornado","sanic","starlette","bottle","pyramid","falcon","litestar","aiohttp","gin","echo","fiber","chi","beego","revel","buffalo","iris","fasthttp","spring-boot","spring","quarkus","micronaut","ktor","http4k","dropwizard","vertx","javalin","spark-java","jersey","grails","laravel","symfony","slim","codeigniter","cakephp","yii","phalcon","laminas","lumen","rails","sinatra","hanami","grape","roda","padrino","actix-web","axum","rocket","warp","tide","poem","salvo","loco","phoenix","plug","aspnet","nancy","servicestack","carter","vapor","hummingbird","kitura","play","akka-http","http4s","finatra","zio-http","servant","yesod","scotty","spock","mojolicious","dancer","catalyst","ring","pedestal","compojure","luminus","dart-frog","shelf","serverpod","kemal","lucky","amber","jester","cowboy","hunchentoot","drogon","crow","oatpp"]),$d=new Set(["postgresql","mysql","mariadb","sqlite","mssql","oracle","cockroachdb","tidb","yugabytedb","duckdb","mongodb","redis","valkey","dynamodb","cassandra","scylladb","couchdb","couchbase","rethinkdb","memcached","etcd","neo4j","arangodb","dgraph","surrealdb","elasticsearch","opensearch","meilisearch","typesense","influxdb","timescaledb","clickhouse","snowflake","bigquery","redshift","qdrant","pinecone","weaviate","milvus","chroma","pgvector","supabase","firebase","planetscale","turso","neon","fauna","cosmosdb","spanner"]),kd=new Set(["prisma","drizzle","typeorm","sequelize","mikro-orm","objection","knex","kysely","mongoose","bookshelf","sqlalchemy","sqlmodel","tortoise-orm","peewee","django-orm","pony-orm","gino","ormar","piccolo","eloquent","doctrine","propel","cycle-orm","activerecord","sequel","rom-rb","hibernate","mybatis","jooq","jpa","eclipselink","ktorm","jdbi","entity-framework","dapper","nhibernate","linq2db","gorm","ent","sqlx","sqlc","bun","xorm","diesel","sea-orm","rbatis","ecto","exposed","drift","floor","isar","core-data","grdb","fluent","realm","slick","quill","doobie","persistent","beam","next-jdbc","granite","norm"]),Sd=new Set(["aws","gcp","azure","cloudflare","digitalocean","linode","hetzner","vercel","netlify","railway","render","heroku","fly-io","deno-deploy","koyeb","docker","podman","kubernetes","openshift","rancher","nomad","terraform","pulumi","ansible","aws-cdk","serverless-framework","sst","cloudformation","bicep","github-actions","gitlab-ci","circleci","jenkins","argocd","istio","nginx","caddy","traefik","vault","helm","prometheus","grafana","datadog","sentry","kafka","rabbitmq","nats","temporal","airflow"]),wd=new Set(["react-native","expo","flutter","swiftui","uikit","jetpack-compose","compose-multiplatform","kotlin-multiplatform","ionic","capacitor","cordova","maui","xamarin","tauri-mobile","nativescript","quasar","framework7","onsen-ui","lynx"]),xd=new Set(["godot","phaser","pyxel","unity","unreal","bevy","love2d","monogame","pygame","libgdx","cocos2d","defold","renpy","gamemaker","construct","cryengine","o3de","stride","flax","panda3d","raylib","sdl","sfml","pixijs","playcanvas","kaboomjs","excalibur","ebitengine","fyrox","ggez","gdevelop","rpgmaker"]),nZ={typescript:{frontend:["react","nextjs","vue","nuxt","svelte","sveltekit","angular","analog","solid","solidstart","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri","liftkit","preact","lit","stencil","marko","mithril","aurelia","riot","knockout","backbone","gatsby","redwoodjs","eleventy","vitepress","fresh","tanstack-start","threejs","babylonjs","cesiumjs"],backend:["express","nestjs","hono","fastify","koa","hapi","adonisjs","sails","loopback","feathers","meteor","elysia","nitro","apollo-server","graphql-yoga"],orm:["prisma","drizzle","typeorm","sequelize","mikro-orm","objection","knex","kysely","mongoose","bookshelf"],mobile:["react-native","expo","ionic","capacitor","cordova","nativescript","quasar","framework7","onsen-ui","lynx"],game:["phaser","pixijs","kaboomjs","excalibur","playcanvas"]},javascript:{frontend:["react","nextjs","vue","nuxt","svelte","sveltekit","angular","analog","solid","solidstart","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri","liftkit","preact","lit","stencil","marko","mithril","aurelia","riot","knockout","backbone","gatsby","redwoodjs","eleventy","vitepress","fresh","tanstack-start","threejs","babylonjs","cesiumjs"],backend:["express","nestjs","hono","fastify","koa","hapi","adonisjs","sails","loopback","feathers","meteor","elysia","nitro","apollo-server","graphql-yoga"],orm:["prisma","drizzle","typeorm","sequelize","mikro-orm","objection","knex","kysely","mongoose","bookshelf"],mobile:["react-native","expo","ionic","capacitor","cordova","nativescript","quasar","framework7","onsen-ui","lynx"],game:["phaser","pixijs","kaboomjs","excalibur","playcanvas"]},python:{backend:["fastapi","django","django-ninja","flask","tornado","sanic","starlette","bottle","pyramid","falcon","litestar","aiohttp"],orm:["sqlalchemy","sqlmodel","tortoise-orm","peewee","django-orm","pony-orm","gino","ormar","piccolo"],game:["pygame","renpy","pyxel","panda3d"]},go:{backend:["gin","echo","fiber","chi","beego","revel","buffalo","iris","fasthttp"],orm:["gorm","ent","sqlx","sqlc","bun","xorm"],game:["ebitengine"]},rust:{frontend:["tauri","yew","leptos","dioxus","sycamore"],backend:["actix-web","axum","rocket","warp","tide","poem","salvo","loco"],orm:["diesel","sea-orm","rbatis","sqlx"],mobile:["tauri-mobile"],game:["bevy","fyrox","ggez"]},java:{backend:["spring-boot","spring","quarkus","micronaut","dropwizard","vertx","javalin","spark-java","jersey"],orm:["hibernate","mybatis","jooq","jpa","eclipselink","jdbi"],mobile:["jetpack-compose"],game:["libgdx"]},kotlin:{backend:["spring-boot","ktor","http4k","javalin","vertx"],orm:["exposed","hibernate","ktorm","jooq"],mobile:["jetpack-compose","compose-multiplatform","kotlin-multiplatform"]},php:{backend:["laravel","symfony","slim","codeigniter","cakephp","yii","phalcon","laminas","lumen"],orm:["eloquent","doctrine","propel","cycle-orm"]},ruby:{backend:["rails","sinatra","hanami","grape","roda","padrino"],orm:["activerecord","sequel","rom-rb"]},swift:{backend:["vapor","hummingbird","kitura"],mobile:["swiftui","uikit"],orm:["core-data","grdb","fluent","realm"]},dart:{frontend:["flutter"],backend:["dart-frog","shelf","serverpod"],mobile:["flutter"],orm:["drift","floor","isar"]},csharp:{backend:["aspnet","nancy","servicestack","carter"],orm:["entity-framework","dapper","nhibernate","linq2db"],mobile:["maui","xamarin"],game:["unity","monogame","stride","flax"]},elixir:{backend:["phoenix","plug"],orm:["ecto"]},scala:{backend:["play","akka-http","http4s","finatra","zio-http"],orm:["slick","quill","doobie"]},haskell:{backend:["servant","yesod","scotty","spock"],orm:["persistent","beam"]},perl:{backend:["mojolicious","dancer","catalyst"]},clojure:{backend:["ring","pedestal","compojure","luminus"],orm:["next-jdbc"]},groovy:{backend:["grails"]},lua:{game:["love2d","defold"]},gdscript:{game:["godot"]},cpp:{backend:["drogon","crow","oatpp"],game:["unreal","cocos2d","godot","cryengine","o3de","sdl","sfml","panda3d"]},c:{game:["raylib","sdl"]},crystal:{backend:["kemal","lucky","amber"],orm:["granite"]},nim:{backend:["jester"],orm:["norm"]},erlang:{backend:["cowboy"]},"common-lisp":{backend:["hunchentoot"]}};function eo(e,t,n){if(n.length===0)return e;let i=new Set;for(let r of n){let o=nZ[r];if(!o)continue;let s=o[t];if(s)for(let a of s)i.add(a)}return i.size===0?e:e.filter(r=>i.has(r))}function rZ(e,t){let n=e.length,i=t.length,r=Array.from({length:n+1},()=>Array(i+1).fill(0));for(let o=0;o<=n;o++)r[o][0]=o;for(let o=0;o<=i;o++)r[0][o]=o;for(let o=1;o<=n;o++)for(let s=1;s<=i;s++){let a=e[o-1]===t[s-1]?0:1;r[o][s]=Math.min(r[o-1][s]+1,r[o][s-1]+1,r[o-1][s-1]+a)}return r[n][i]}function iZ(e,t,n=2){let i=null,r=n+1;for(let o of t){if(Math.abs(o.length-e.length)>n)continue;let s=rZ(e.toLowerCase(),o.toLowerCase());s<r&&(r=s,i=o)}return i}var oZ=[{field:"programming_languages",known:vd},{field:"frontend",known:_d},{field:"backend",known:bd},{field:"database",known:$d},{field:"orm",known:kd},{field:"infra",known:Sd},{field:"game",known:xd},{field:"mobile",known:wd}];function Id(e){let t=[];for(let{field:n,known:i}of oZ){let r=e[n];if(Array.isArray(r))for(let o of r)typeof o=="string"&&(i.has(o)||t.push({field:n,value:o,suggestion:iZ(o,i)}))}return t}var RC=[{field:"display_language",type:"string",descriptions:{en:"GoDD display language (en / ja / ru)",ja:"GoDD \u306E\u8868\u793A\u8A00\u8A9E\uFF08en / ja / ru\uFF09",ru:"\u042F\u0437\u044B\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F GoDD (en / ja / ru)"},values:["en","ja","ru"]},{field:"main_language",type:"string",descriptions:{en:"Project main language (en / ja / ru)",ja:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30A4\u30F3\u8A00\u8A9E\uFF08en / ja / ru\uFF09",ru:"\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u044F\u0437\u044B\u043A \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (en / ja / ru)"},values:["en","ja","ru"]},{field:"sub_languages",type:"string[]",descriptions:{en:"Team sub-languages",ja:"\u30C1\u30FC\u30E0\u306E\u30B5\u30D6\u8A00\u8A9E",ru:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B"},values:["en","ja","ru"]},{field:"programming_languages",type:"string[]",descriptions:{en:"Programming languages",ja:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E",ru:"\u042F\u0437\u044B\u043A\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F"},values:[...vd]},{field:"frontend",type:"string[]",descriptions:{en:"Frontend frameworks",ja:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[..._d]},{field:"backend",type:"string[]",descriptions:{en:"Backend frameworks",ja:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0411\u044D\u043A\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[...bd]},{field:"database",type:"string[]",descriptions:{en:"Databases",ja:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9",ru:"\u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445"},values:[...$d]},{field:"orm",type:"string[]",descriptions:{en:"ORM",ja:"ORM",ru:"ORM"},values:[...kd]},{field:"infra",type:"string[]",descriptions:{en:"Infrastructure",ja:"\u30A4\u30F3\u30D5\u30E9",ru:"\u0418\u043D\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430"},values:[...Sd]},{field:"game",type:"string[]",descriptions:{en:"Game engines / frameworks",ja:"\u30B2\u30FC\u30E0\u30A8\u30F3\u30B8\u30F3 / \u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0418\u0433\u0440\u043E\u0432\u044B\u0435 \u0434\u0432\u0438\u0436\u043A\u0438 / \u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[...xd]},{field:"mobile",type:"string[]",descriptions:{en:"Mobile / Cross-platform",ja:"\u30E2\u30D0\u30A4\u30EB / \u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0",ru:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435 / \u041A\u0440\u043E\u0441\u0441\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435\u043D\u043D\u044B\u0435"},values:[...wd]},{field:"other",type:"string[]",descriptions:{en:"Other (no validation, free text)",ja:"\u305D\u306E\u4ED6\uFF08\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u5BFE\u8C61\u5916\u3001\u81EA\u7531\u8A18\u8FF0\uFF09",ru:"\u041F\u0440\u043E\u0447\u0435\u0435 (\u0431\u0435\u0437 \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u0438, \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442)"},values:[]},{field:"design",type:"object",descriptions:{en:"Design tool integration (tool: pencil/figma, auto_suggest: true/false, design_review: true/false)",ja:"\u30C7\u30B6\u30A4\u30F3\u30C4\u30FC\u30EB\u9023\u643A\uFF08tool: pencil/figma\u3001auto_suggest: true/false\u3001design_review: true/false\uFF09",ru:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044F \u0434\u0438\u0437\u0430\u0439\u043D-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 (tool: pencil/figma, auto_suggest: true/false, design_review: true/false)"},values:[]},{field:"godd_files",type:"object",descriptions:{en:"GoDD managed files settings (docs_dir: path string, generate_gitattributes: true/false, generate_dependabot: true/false)",ja:"GoDD \u7BA1\u7406\u30D5\u30A1\u30A4\u30EB\u8A2D\u5B9A\uFF08docs_dir: \u30D1\u30B9\u6587\u5B57\u5217\u3001generate_gitattributes: true/false\u3001generate_dependabot: true/false\uFF09",ru:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 GoDD (docs_dir: \u0441\u0442\u0440\u043E\u043A\u0430 \u043F\u0443\u0442\u0438, generate_gitattributes: true/false, generate_dependabot: true/false)"},values:[]}];function LC(){return new Set([...RC.map(e=>e.field),"tools"])}var AC={en:{validValues:"Valid values",toolsDescription:"Tool settings (optional). Keys: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"},ja:{validValues:"\u6709\u52B9\u5024",toolsDescription:"\u30C4\u30FC\u30EB\u8A2D\u5B9A\uFF08\u7701\u7565\u53EF\uFF09\u3002\u30AD\u30FC: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"},ru:{validValues:"\u0414\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F",toolsDescription:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E). \u041A\u043B\u044E\u0447\u0438: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"}};function MC(e="ja"){let t=AC[e]??AC.en,n=[];for(let i of RC)n.push(`### ${i.field} (${i.type})`),n.push(i.descriptions[e]??i.descriptions.en),i.values.length>0&&n.push(`${t.validValues}: ${i.values.join(", ")}`),n.push("");return n.push("### tools (object)"),n.push(t.toolsDescription),n.push(""),n.join(`
216
216
  `)}var Vb="https://www.getgodd.dev/contact",DC={en:{header:"\u26A0 config.godd contains unrecognized values. Please fix them and try again.",problemValues:"Problematic values:",suggestion:(e,t)=>` - "${e}" \u2192 did you mean "${t}"?`,unsupported:e=>` - "${e}" \u2192 currently unsupported. Contact ${Vb} to request support.`,fixHeader:"How to fix:",fixEdit:" 1. Edit config.godd directly to correct the values",fixReinit:' 2. Or run "godd-a init --force" to regenerate'},ja:{header:"\u26A0 config.godd \u306B\u8A8D\u8B58\u3067\u304D\u306A\u3044\u5024\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u4FEE\u6B63\u3057\u3066\u304B\u3089\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",problemValues:"\u554F\u984C\u306E\u3042\u308B\u5024:",suggestion:(e,t)=>` - "${e}" \u2192 \u3082\u3057\u304B\u3057\u3066 "${t}" \u3067\u3059\u304B\uFF1F`,unsupported:e=>` - "${e}" \u2192 \u73FE\u5728\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u3092\u3054\u5E0C\u671B\u306E\u5834\u5408\u306F ${Vb} \u304B\u3089\u3054\u9023\u7D61\u304F\u3060\u3055\u3044\u3002`,fixHeader:"\u4FEE\u6B63\u65B9\u6CD5:",fixEdit:" 1. config.godd \u3092\u76F4\u63A5\u7DE8\u96C6\u3057\u3066\u6B63\u3057\u3044\u5024\u306B\u4FEE\u6B63\u3059\u308B",fixReinit:' 2. \u307E\u305F\u306F "godd-a init --force" \u3067\u518D\u751F\u6210\u3059\u308B'},ru:{header:"\u26A0 config.godd \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F. \u0418\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435 \u0438\u0445 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430.",problemValues:"\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F:",suggestion:(e,t)=>` - "${e}" \u2192 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443 "${t}"?`,unsupported:e=>` - "${e}" \u2192 \u043F\u043E\u043A\u0430 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F. \u0421\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 ${Vb} \u0434\u043B\u044F \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0438.`,fixHeader:"\u041A\u0430\u043A \u0438\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C:",fixEdit:" 1. \u041E\u0442\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0443\u0439\u0442\u0435 config.godd \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E, \u0443\u043A\u0430\u0437\u0430\u0432 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F",fixReinit:' 2. \u0418\u043B\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 "godd-a init --force" \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F'}};function UC(e,t="ja"){let n=DC[t]??DC.en,i=new Map;for(let o of e){let s=i.get(o.field)??[];s.push(o),i.set(o.field,s)}let r=[n.header,"",n.problemValues];for(let[o,s]of i){r.push(` ${o}:`);for(let a of s)r.push(a.suggestion?n.suggestion(a.value,a.suggestion):n.unsupported(a.value))}return r.push("",n.fixHeader,n.fixEdit,n.fixReinit),r.join(`
217
- `)}var Zt="2.9.3";var ga={en:{run:'Unified entry point \u2014 parses a text command like "/godd-a/<tool> <args>" and runs the matching tool',dev:"Development (plan \u2192 implement \u2192 test \u2192 quality \u2192 docs in stages)",check:"Quality gate (verify Spec alignment, tests, types, lint, security)",docs:"Generate/update documentation",ship:"Ship (commit at proper granularity \u2192 quality check \u2192 push \u2192 create PR)",setup:"Environment setup (with recommended stack presets, confirms missing info)",review:"Review (CTO-level review + quality gate)",test:"Run/create tests",impact:"Impact analysis",commit:"Commit changes",push:"Push to remote",pr:"Create PR (template-compliant)",deploy:"Deploy (with verification & rollback plan)",adr:"Create ADR (Architecture Decision Record)",release:"Generate release notes (SemVer-compliant)",github:"GitHub configuration (repository/branch protection, etc.)",config:"Generate/repair config.godd (auto-detect stack + validation)",questions:"Interactive Q&A from question list (\u8CEA\u554F\u30EA\u30B9\u30C8.md)",e2e:"Browser-based E2E testing (execute & verify critical user flows)",benchmark:"Competitive prompt analysis (compare GoDD vs Cursor Rules / Claude Code / Codex)",map:"Project knowledge graph (visualize architecture & dependencies with Mermaid)",learn:"Save/recall project-specific patterns, conventions, and pitfalls",diagram:"Auto-update architecture diagrams (maintain living Mermaid docs in sync with code)",slide:"Generate presentation slides from project docs (Marp Markdown format)",design:"Generate/update visual designs from codebase (Pencil.dev sync)",metrics:"Token efficiency and optional evidence-based quality, budget, learning outcome, and guardrail preflight report",plan:"Advance one approved plan task at a time with durable state and a test-evidence gate",scratchpad:"Persistent conversation memory \u2014 save/recall/search/list/forget with BM25 vector search (Qdrant or local JSON fallback)"},ja:{run:'\u7D71\u4E00\u30A8\u30F3\u30C8\u30EA\u30DD\u30A4\u30F3\u30C8 \u2014 "/godd-a/<tool> <args>" \u5F62\u5F0F\u306E\u30C6\u30AD\u30B9\u30C8\u30B3\u30DE\u30F3\u30C9\u3092\u30D1\u30FC\u30B9\u3057\u3066\u5BFE\u5FDC\u30C4\u30FC\u30EB\u3092\u5B9F\u884C',dev:"\u958B\u767A\uFF08\u6BB5\u968E\u7684\u306B\u8A08\u753B\u2192\u5B9F\u88C5\u2192\u30C6\u30B9\u30C8\u2192\u54C1\u8CEA\u2192\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u5B9F\u884C\uFF09",check:"\u54C1\u8CEA\u30B2\u30FC\u30C8\uFF08Spec\u6574\u5408\u30FB\u30C6\u30B9\u30C8\u30FB\u578B\u30FBLint\u30FB\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3092\u691C\u8A3C\uFF09",docs:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u751F\u6210/\u66F4\u65B0",ship:"\u63D0\u51FA\uFF08\u9069\u5207\u306A\u7C92\u5EA6\u3067\u30B3\u30DF\u30C3\u30C8 \u2192 \u54C1\u8CEA\u30C1\u30A7\u30C3\u30AF \u2192 \u30D7\u30C3\u30B7\u30E5 \u2192 PR \u4F5C\u6210\uFF09",setup:"\u74B0\u5883\u69CB\u7BC9\uFF08\u63A8\u5968\u30B9\u30BF\u30C3\u30AF\u30D7\u30EA\u30BB\u30C3\u30C8\u4ED8\u304D\u30FB\u4E0D\u8DB3\u60C5\u5831\u306F\u78BA\u8A8D\uFF09",review:"\u30EC\u30D3\u30E5\u30FC\uFF08CTO \u30EC\u30D9\u30EB\u306E\u30EC\u30D3\u30E5\u30FC + \u54C1\u8CEA\u30B2\u30FC\u30C8\uFF09",test:"\u30C6\u30B9\u30C8\u5B9F\u884C/\u4F5C\u6210",impact:"\u5F71\u97FF\u5206\u6790",commit:"\u5909\u66F4\u3092\u30B3\u30DF\u30C3\u30C8",push:"\u30EA\u30E2\u30FC\u30C8\u306B\u30D7\u30C3\u30B7\u30E5",pr:"PR \u4F5C\u6210\uFF08\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u6E96\u62E0\uFF09",deploy:"\u30C7\u30D7\u30ED\u30A4\uFF08\u691C\u8A3C\u30FB\u30ED\u30FC\u30EB\u30D0\u30C3\u30AF\u8A08\u753B\u4ED8\u304D\uFF09",adr:"ADR\uFF08Architecture Decision Record\uFF09\u4F5C\u6210",release:"\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u751F\u6210\uFF08SemVer \u6E96\u62E0\uFF09",github:"GitHub \u8A2D\u5B9A\uFF08\u30EA\u30DD\u30B8\u30C8\u30EA/\u30D6\u30E9\u30F3\u30C1\u4FDD\u8B77\u7B49\uFF09",config:"config.godd \u3092\u6B63\u78BA\u306B\u751F\u6210\u30FB\u4FEE\u6B63\u3059\u308B\uFF08\u30B9\u30BF\u30C3\u30AF\u81EA\u52D5\u691C\u51FA + \u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\uFF09",questions:"\u8CEA\u554F\u30EA\u30B9\u30C8\uFF08\u8CEA\u554F\u30EA\u30B9\u30C8.md\uFF09\u304B\u3089\u30A4\u30F3\u30BF\u30E9\u30AF\u30C6\u30A3\u30D6\u306B\u8CEA\u554F\u3092\u7BA1\u7406",e2e:"\u30D6\u30E9\u30A6\u30B6\u30D9\u30FC\u30B9 E2E \u30C6\u30B9\u30C8\uFF08\u91CD\u8981\u30E6\u30FC\u30B6\u30FC\u30D5\u30ED\u30FC\u306E\u5B9F\u884C\u30FB\u691C\u8A3C\uFF09",benchmark:"\u7AF6\u5408\u30D7\u30ED\u30F3\u30D7\u30C8\u5206\u6790\uFF08GoDD vs Cursor Rules / Claude Code / Codex \u3092\u6BD4\u8F03\uFF09",map:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30CA\u30EC\u30C3\u30B8\u30B0\u30E9\u30D5\uFF08Mermaid \u3067\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u30FB\u4F9D\u5B58\u95A2\u4FC2\u3092\u53EF\u8996\u5316\uFF09",learn:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u56FA\u6709\u306E\u30D1\u30BF\u30FC\u30F3\u30FB\u6163\u4F8B\u30FB\u843D\u3068\u3057\u7A74\u3092\u4FDD\u5B58/\u53C2\u7167",diagram:"\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u56F3\u306E\u81EA\u52D5\u66F4\u65B0\uFF08\u30B3\u30FC\u30C9\u3068\u540C\u671F\u3057\u305F Mermaid \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u7DAD\u6301\uFF09",slide:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304B\u3089\u30D7\u30EC\u30BC\u30F3\u30B9\u30E9\u30A4\u30C9\u3092\u751F\u6210\uFF08Marp Markdown \u5F62\u5F0F\uFF09",design:"\u30B3\u30FC\u30C9\u30D9\u30FC\u30B9\u304B\u3089\u30D3\u30B8\u30E5\u30A2\u30EB\u30C7\u30B6\u30A4\u30F3\u3092\u751F\u6210/\u66F4\u65B0\uFF08Pencil.dev \u540C\u671F\uFF09",metrics:"\u30C8\u30FC\u30AF\u30F3\u52B9\u7387\u3068\u3001\u4EFB\u610F\u306E\u8A3C\u62E0\u306B\u57FA\u3065\u304F\u54C1\u8CEA\u30FB\u4E88\u7B97\u30FB\u5B66\u7FD2\u6210\u679C\u30FBguardrail preflight\u30EC\u30DD\u30FC\u30C8",plan:"\u627F\u8A8D\u6E08\u307F\u8A08\u753B\u3092\u6C38\u7D9A\u72B6\u614B\u3068\u30C6\u30B9\u30C8\u8A3C\u8DE1\u30B2\u30FC\u30C8\u4ED8\u304D\u3067\u4E00\u30BF\u30B9\u30AF\u305A\u3064\u9032\u3081\u308B",scratchpad:"\u4F1A\u8A71\u8A18\u61B6\u306E\u6C38\u7D9A\u5316 \u2014 BM25 \u30D9\u30AF\u30BF\u30FC\u691C\u7D22\u3067 save/recall/search/list/forget\uFF08Qdrant \u307E\u305F\u306F\u30ED\u30FC\u30AB\u30EB JSON \u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\uFF09"},ru:{run:'\u0415\u0434\u0438\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430 \u0432\u0445\u043E\u0434\u0430 \u2014 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u0443\u044E \u043A\u043E\u043C\u0430\u043D\u0434\u0443 "/godd-a/<tool> <args>" \u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442',dev:"\u0420\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u043A\u0430 (\u043F\u043B\u0430\u043D \u2192 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u2192 \u0442\u0435\u0441\u0442\u044B \u2192 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u043E \u2192 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F \u043F\u043E\u044D\u0442\u0430\u043F\u043D\u043E)",check:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 (Spec, \u0442\u0435\u0441\u0442\u044B, \u0442\u0438\u043F\u044B, \u043B\u0438\u043D\u0442\u0435\u0440, \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C)",docs:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438",ship:"\u041E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 (\u043A\u043E\u043C\u043C\u0438\u0442 \u2192 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u2192 \u043F\u0443\u0448 \u2192 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 PR)",setup:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0441\u0440\u0435\u0434\u044B (\u0441 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u043C\u0438 \u043F\u0440\u0435\u0441\u0435\u0442\u0430\u043C\u0438 \u0441\u0442\u0435\u043A\u0430)",review:"\u0420\u0435\u0432\u044C\u044E (CTO-\u0443\u0440\u043E\u0432\u0435\u043D\u044C + \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430)",test:"\u0417\u0430\u043F\u0443\u0441\u043A/\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0442\u0435\u0441\u0442\u043E\u0432",impact:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0432\u043B\u0438\u044F\u043D\u0438\u044F",commit:"\u0417\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",push:"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432 \u0443\u0434\u0430\u043B\u0451\u043D\u043D\u044B\u0439 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439",pr:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C PR (\u043F\u043E \u0448\u0430\u0431\u043B\u043E\u043D\u0443)",deploy:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C (\u0441 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u043E\u0439 \u0438 \u043F\u043B\u0430\u043D\u043E\u043C \u043E\u0442\u043A\u0430\u0442\u0430)",adr:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C ADR (\u0437\u0430\u043F\u0438\u0441\u044C \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u043D\u043E\u0433\u043E \u0440\u0435\u0448\u0435\u043D\u0438\u044F)",release:"\u0421\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043A \u0440\u0435\u043B\u0438\u0437\u0443 (SemVer)",github:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 GitHub (\u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439/\u0437\u0430\u0449\u0438\u0442\u0430 \u0432\u0435\u0442\u043E\u043A \u0438 \u0442.\u0434.)",config:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 config.godd (\u0430\u0432\u0442\u043E\u0434\u0435\u0442\u0435\u043A\u0442 \u0441\u0442\u0435\u043A\u0430 + \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u044F)",questions:"\u0418\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 Q&A \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 (\u8CEA\u554F\u30EA\u30B9\u30C8.md)",e2e:"E2E-\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 (\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u043F\u043E\u0442\u043E\u043A\u043E\u0432)",benchmark:"\u041A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u044B\u0439 \u0430\u043D\u0430\u043B\u0438\u0437 \u043F\u0440\u043E\u043C\u043F\u0442\u043E\u0432 (\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435 GoDD \u0441 Cursor Rules / Claude Code / Codex)",map:"\u0413\u0440\u0430\u0444 \u0437\u043D\u0430\u043D\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (\u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u044B \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 Mermaid)",learn:"\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435/\u0432\u044B\u0437\u043E\u0432 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u044B\u0445 \u0434\u043B\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043F\u0430\u0442\u0442\u0435\u0440\u043D\u043E\u0432, \u0441\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0439 \u0438 \u043F\u043E\u0434\u0432\u043E\u0434\u043D\u044B\u0445 \u043A\u0430\u043C\u043D\u0435\u0439",diagram:"\u0410\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u043D\u044B\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C (\u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u044B\u0445 Mermaid-\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432)",slide:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F \u0441\u043B\u0430\u0439\u0434\u043E\u0432 \u0438\u0437 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (\u0444\u043E\u0440\u043C\u0430\u0442 Marp Markdown)",design:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0434\u0438\u0437\u0430\u0439\u043D\u0430 \u0438\u0437 \u043A\u043E\u0434\u043E\u0432\u043E\u0439 \u0431\u0430\u0437\u044B (\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044F Pencil.dev)",metrics:"\u042D\u0444\u0444\u0435\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0442\u043E\u043A\u0435\u043D\u043E\u0432 \u0438 \u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043E\u0446\u0435\u043D\u043A\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430, \u0431\u044E\u0434\u0436\u0435\u0442\u0430, \u043E\u0431\u0443\u0447\u0435\u043D\u0438\u044F \u0438 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 guardrail \u043F\u043E \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u043C",plan:"\u041F\u043E\u0448\u0430\u0433\u043E\u0432\u043E\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0441 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u043C\u044B\u043C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u043C \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u043E\u0439 \u0442\u0435\u0441\u0442\u043E\u0432",scratchpad:"\u041F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u0430\u044F \u043F\u0430\u043C\u044F\u0442\u044C \u0434\u0438\u0430\u043B\u043E\u0433\u0430 \u2014 save/recall/search/list/forget \u0441 BM25 \u0432\u0435\u043A\u0442\u043E\u0440\u043D\u044B\u043C \u043F\u043E\u0438\u0441\u043A\u043E\u043C (Qdrant \u0438\u043B\u0438 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 JSON \u0444\u043E\u043B\u043B\u0431\u044D\u043A)"}};var qC={run:[{name:"command",required:!0}],dev:[{name:"request",required:!0},{name:"done_when",required:!1}],check:[{name:"target",required:!1}],docs:[{name:"target",required:!1}],ship:[{name:"title",required:!1}],review:[{name:"target",required:!1},{name:"action",required:!1}],test:[{name:"target",required:!1}],impact:[{name:"target",required:!1}],commit:[{name:"message",required:!1},{name:"gate_evidence",required:!1}],pr:[{name:"title",required:!1}],deploy:[{name:"target",required:!1}],adr:[{name:"title",required:!1}],release:[{name:"tag",required:!1}],setup:[{name:"preset",required:!1}],github:[{name:"request",required:!1}],config:[],questions:[{name:"action",required:!1}],e2e:[{name:"target",required:!1},{name:"url",required:!1}],benchmark:[{name:"target",required:!1}],map:[{name:"target",required:!1}],learn:[{name:"action",required:!1}],diagram:[{name:"target",required:!1}],slide:[{name:"type",required:!1},{name:"source",required:!1}],design:[{name:"target",required:!1},{name:"output",required:!1}],metrics:[{name:"quality_evidence",required:!1},{name:"budget_evidence",required:!1},{name:"learning_evidence",required:!1},{name:"guardrail_evidence",required:!1}],plan:[{name:"action",required:!0},{name:"plan",required:!1},{name:"task_id",required:!1},{name:"tests_passed",required:!1},{name:"test_evidence",required:!1},{name:"reason",required:!1}],scratchpad:[{name:"action",required:!0}]},to={en:{run:{command:'Slash command text, e.g. "/godd-a/dev add tests"'},dev:{request:"Request details",done_when:"Completion criteria"},check:{target:"Check target (omit for all recent changes)"},docs:{target:"Target file/feature"},ship:{title:"PR title"},review:{target:"Target file/PR (e.g., PR URL, PR number, file path)",action:"Post-review action (approve / request-changes / comment)"},test:{target:"Test target"},impact:{target:"Analysis target"},commit:{message:"Commit message",gate_evidence:"Optional JSON evidence for the fail-closed pre-commit test and one-PR gate"},pr:{title:"PR title"},deploy:{target:"Deploy target"},adr:{title:"Decision title"},release:{tag:"Target tag (omit for HEAD since last release)"},setup:{preset:"Stack preset (omakase = recommended)"},github:{request:"Configuration request"},questions:{action:"Action: list (default) / resolve <id> / add <question>"},e2e:{target:"Target page/flow to test",url:"Base URL of the application"},benchmark:{target:"Competitor system to analyze (cursor-rules / claude-code / codex / all)"},map:{target:"Target scope (module/directory/layer to visualize)"},learn:{action:"Action: save <category> <content> / recall / list / forget <id>"},diagram:{target:"Target diagram scope (architecture / module / data-flow / erd / all)"},slide:{type:"Presentation type (sprint-review / architecture / release / onboarding)",source:"Source documents to base slides on"},design:{target:"Design target (all / page name / component name)",output:"Output format (pencil / tokens)"},metrics:{quality_evidence:"Optional JSON evidence for output, execution, and design quality assessment",budget_evidence:"Optional JSON evidence for deterministic virtual-key budget boundary assessment",learning_evidence:"Optional numeric and boolean JSON evidence for deterministic learning outcome and grounding assessment",guardrail_evidence:"Optional JSON evidence for deterministic pre-provider guardrail preflight (monitor/block) assessment"},plan:{action:"Action: start / next / complete / status / abort",plan:"Approved plan JSON (required for start). Vertical slice rubric: plan.global_constraints, and per task files / consumes / produces / verify (allow_horizontal opts a genuinely single-layer task out). Set strict_authoring to reject plans that miss it. Any other field is reported as unknown_field and ignored",task_id:"Active task id (required for complete)",tests_passed:"Must be true after the test gate succeeds (required for complete)",test_evidence:"Successful test command and result (required for complete)",reason:"Audit reason (required for abort)"},scratchpad:{action:"Action: save <content> / recall <mem::address> / search <query> / list / forget <mem::address>"}},ja:{run:{command:'\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9\u6587\u5B57\u5217\uFF08\u4F8B: "/godd-a/dev \u30C6\u30B9\u30C8\u3092\u8FFD\u52A0"\uFF09'},dev:{request:"\u4F9D\u983C\u5185\u5BB9",done_when:"\u5B8C\u4E86\u6761\u4EF6"},check:{target:"\u30C1\u30A7\u30C3\u30AF\u5BFE\u8C61\uFF08\u7701\u7565\u6642: \u76F4\u8FD1\u306E\u5909\u66F4\u5168\u4F53\uFF09"},docs:{target:"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB/\u6A5F\u80FD"},ship:{title:"PR \u30BF\u30A4\u30C8\u30EB"},review:{target:"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB/PR\uFF08\u4F8B: PR URL, PR\u756A\u53F7, \u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF09",action:"\u30EC\u30D3\u30E5\u30FC\u5F8C\u306E\u30A2\u30AF\u30B7\u30E7\u30F3\uFF08approve / request-changes / comment\uFF09"},test:{target:"\u30C6\u30B9\u30C8\u5BFE\u8C61"},impact:{target:"\u5206\u6790\u5BFE\u8C61"},commit:{message:"\u30B3\u30DF\u30C3\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8",gate_evidence:"\u30B3\u30DF\u30C3\u30C8\u524D\u30C6\u30B9\u30C8\u30681 PR\u5236\u7D04\u3092fail-closed\u3067\u5224\u5B9A\u3059\u308B\u4EFB\u610F\u306EJSON\u8A3C\u62E0"},pr:{title:"PR \u30BF\u30A4\u30C8\u30EB"},deploy:{target:"\u30C7\u30D7\u30ED\u30A4\u5148"},adr:{title:"\u5224\u65AD\u306E\u30BF\u30A4\u30C8\u30EB"},release:{tag:"\u5BFE\u8C61\u30BF\u30B0\uFF08\u7701\u7565\u6642: \u76F4\u8FD1\u30EA\u30EA\u30FC\u30B9\u304B\u3089 HEAD\uFF09"},setup:{preset:"\u30B9\u30BF\u30C3\u30AF\u30D7\u30EA\u30BB\u30C3\u30C8\uFF08omakase = \u63A8\u5968\u69CB\u6210\uFF09"},github:{request:"\u8A2D\u5B9A\u5185\u5BB9"},questions:{action:"\u64CD\u4F5C: list\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09/ resolve <id> / add <\u8CEA\u554F\u6587>"},e2e:{target:"\u30C6\u30B9\u30C8\u5BFE\u8C61\u306E\u30DA\u30FC\u30B8/\u30D5\u30ED\u30FC",url:"\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30D9\u30FC\u30B9 URL"},benchmark:{target:"\u5206\u6790\u5BFE\u8C61\u306E\u7AF6\u5408\uFF08cursor-rules / claude-code / codex / all\uFF09"},map:{target:"\u53EF\u8996\u5316\u5BFE\u8C61\uFF08\u30E2\u30B8\u30E5\u30FC\u30EB/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA/\u30EC\u30A4\u30E4\u30FC\uFF09"},learn:{action:"\u64CD\u4F5C: save <\u30AB\u30C6\u30B4\u30EA> <\u5185\u5BB9> / recall / list / forget <id>"},diagram:{target:"\u56F3\u306E\u5BFE\u8C61\u7BC4\u56F2\uFF08architecture / module / data-flow / erd / all\uFF09"},slide:{type:"\u30D7\u30EC\u30BC\u30F3\u7A2E\u985E\uFF08sprint-review / architecture / release / onboarding\uFF09",source:"\u30BD\u30FC\u30B9\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8"},design:{target:"\u30C7\u30B6\u30A4\u30F3\u5BFE\u8C61\uFF08all / \u30DA\u30FC\u30B8\u540D / \u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u540D\uFF09",output:"\u51FA\u529B\u5F62\u5F0F\uFF08pencil / tokens\uFF09"},metrics:{quality_evidence:"\u51FA\u529B\u30FB\u5B9F\u884C\u30FB\u8A2D\u8A08\u54C1\u8CEA\u3092\u5224\u5B9A\u3059\u308B\u4EFB\u610F\u306E JSON \u8A3C\u62E0",budget_evidence:"\u4EEE\u60F3\u30AD\u30FC\u306E\u4E88\u7B97\u5883\u754C\u3092\u6C7A\u5B9A\u8AD6\u7684\u306B\u5224\u5B9A\u3059\u308B\u4EFB\u610F\u306E JSON \u8A3C\u62E0",learning_evidence:"\u5B66\u7FD2\u6210\u679C\u3068\u6839\u62E0\u6027\u3092\u6C7A\u5B9A\u8AD6\u7684\u306B\u5224\u5B9A\u3059\u308B\u6570\u5024\u30FB\u771F\u507D\u5024\u306E\u307F\u306E\u4EFB\u610F JSON \u8A3C\u62E0",guardrail_evidence:"provider\u547C\u51FA\u3057\u524Dguardrail(monitor/block)\u3092\u6C7A\u5B9A\u8AD6\u7684\u306B\u5224\u5B9A\u3059\u308B\u4EFB\u610F\u306E JSON \u8A3C\u62E0"},plan:{action:"\u64CD\u4F5C: start / next / complete / status / abort",plan:"\u627F\u8A8D\u6E08\u307F\u8A08\u753B JSON\uFF08start \u3067\u5FC5\u9808\uFF09\u3002\u5782\u76F4\u30B9\u30E9\u30A4\u30B9\u898F\u6E96: plan.global_constraints \u3068\u5404\u30BF\u30B9\u30AF\u306E files / consumes / produces / verify\uFF08\u6B63\u5F53\u306A\u5358\u4E00\u5C64\u30BF\u30B9\u30AF\u306F allow_horizontal \u3067\u9664\u5916\uFF09\u3002strict_authoring \u3092\u7ACB\u3066\u308B\u3068\u898F\u6E96\u672A\u9054\u3092\u62D2\u5426\u3002\u5217\u6319\u5916\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306F unknown_field \u3068\u3057\u3066\u5831\u544A\u306E\u3046\u3048\u7121\u8996\u3055\u308C\u308B",task_id:"\u5B9F\u884C\u4E2D\u30BF\u30B9\u30AF ID\uFF08complete \u3067\u5FC5\u9808\uFF09",tests_passed:"\u30C6\u30B9\u30C8\u30B2\u30FC\u30C8\u6210\u529F\u5F8C\u306E true\uFF08complete \u3067\u5FC5\u9808\uFF09",test_evidence:"\u6210\u529F\u3057\u305F\u30C6\u30B9\u30C8\u30B3\u30DE\u30F3\u30C9\u3068\u7D50\u679C\uFF08complete \u3067\u5FC5\u9808\uFF09",reason:"\u76E3\u67FB\u7528\u306E\u4E2D\u65AD\u7406\u7531\uFF08abort \u3067\u5FC5\u9808\uFF09"},scratchpad:{action:"\u64CD\u4F5C: save <\u5185\u5BB9> / recall <mem::\u30A2\u30C9\u30EC\u30B9> / search <\u30AF\u30A8\u30EA> / list / forget <mem::\u30A2\u30C9\u30EC\u30B9>"}},ru:{run:{command:'\u0422\u0435\u043A\u0441\u0442 slash-\u043A\u043E\u043C\u0430\u043D\u0434\u044B, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 "/godd-a/dev \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0441\u0442\u044B"'},dev:{request:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",done_when:"\u041A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F"},check:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u0432\u0441\u0435 \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F)"},docs:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0444\u0430\u0439\u043B/\u0444\u0443\u043D\u043A\u0446\u0438\u044F"},ship:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A PR"},review:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0444\u0430\u0439\u043B/PR (URL PR, \u043D\u043E\u043C\u0435\u0440 PR, \u043F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443)",action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043F\u043E\u0441\u043B\u0435 \u0440\u0435\u0432\u044C\u044E (approve / request-changes / comment)"},test:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F"},impact:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u0430\u043D\u0430\u043B\u0438\u0437\u0430"},commit:{message:"\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u043C\u0438\u0442\u0430",gate_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u043E \u0442\u0435\u0441\u0442\u043E\u0432 \u043F\u0435\u0440\u0435\u0434 \u043A\u043E\u043C\u043C\u0438\u0442\u043E\u043C \u0438 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043E\u0434\u043D\u043E\u0433\u043E PR"},pr:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A PR"},deploy:{target:"\u0426\u0435\u043B\u044C \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F"},adr:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0440\u0435\u0448\u0435\u043D\u0438\u044F"},release:{tag:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0442\u0435\u0433 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u043E\u0442 HEAD \u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0440\u0435\u043B\u0438\u0437\u0430)"},setup:{preset:"\u041F\u0440\u0435\u0441\u0435\u0442 \u0441\u0442\u0435\u043A\u0430 (omakase = \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F)"},github:{request:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438"},questions:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: list (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E) / resolve <id> / add <\u0432\u043E\u043F\u0440\u043E\u0441>"},e2e:{target:"\u0426\u0435\u043B\u0435\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430/\u043F\u043E\u0442\u043E\u043A \u0434\u043B\u044F \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",url:"\u0411\u0430\u0437\u043E\u0432\u044B\u0439 URL \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F"},benchmark:{target:"\u041A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 \u0434\u043B\u044F \u0430\u043D\u0430\u043B\u0438\u0437\u0430 (cursor-rules / claude-code / codex / all)"},map:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (\u043C\u043E\u0434\u0443\u043B\u044C/\u043A\u0430\u0442\u0430\u043B\u043E\u0433/\u0441\u043B\u043E\u0439 \u0434\u043B\u044F \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438)"},learn:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: save <\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F> <\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435> / recall / list / forget <id>"},diagram:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B (architecture / module / data-flow / erd / all)"},slide:{type:"\u0422\u0438\u043F \u043F\u0440\u0435\u0437\u0435\u043D\u0442\u0430\u0446\u0438\u0438 (sprint-review / architecture / release / onboarding)",source:"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B"},design:{target:"\u0426\u0435\u043B\u044C \u0434\u0438\u0437\u0430\u0439\u043D\u0430 (all / \u0438\u043C\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B / \u0438\u043C\u044F \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430)",output:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0432\u044B\u0432\u043E\u0434\u0430 (pencil / tokens)"},metrics:{quality_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u044B\u0432\u043E\u0434\u0430, \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0438 \u0434\u0438\u0437\u0430\u0439\u043D\u0430",budget_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043B\u0438\u043C\u0438\u0442\u0430 \u0431\u044E\u0434\u0436\u0435\u0442\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430",learning_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0447\u0438\u0441\u043B\u043E\u0432\u044B\u0435 \u0438 \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u043E\u0431\u0443\u0447\u0435\u043D\u0438\u044F \u0438 \u043E\u0431\u043E\u0441\u043D\u043E\u0432\u0430\u043D\u043D\u043E\u0441\u0442\u0438",guardrail_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0434\u043B\u044F \u0434\u0435\u0442\u0435\u0440\u043C\u0438\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 guardrail (monitor/block) \u043F\u0435\u0440\u0435\u0434 \u0432\u044B\u0437\u043E\u0432\u043E\u043C \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430"},plan:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: start / next / complete / status / abort",plan:"JSON \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u043F\u043B\u0430\u043D\u0430 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F start). \u041A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0441\u0440\u0435\u0437\u0430: plan.global_constraints \u0438 \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 files / consumes / produces / verify (allow_horizontal \u0438\u0441\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043E\u0434\u043D\u043E\u0441\u043B\u043E\u0439\u043D\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443). strict_authoring \u043E\u0442\u043A\u043B\u043E\u043D\u044F\u0435\u0442 \u043F\u043B\u0430\u043D\u044B, \u043D\u0435 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0449\u0438\u0435 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u044E. \u041B\u044E\u0431\u043E\u0435 \u0434\u0440\u0443\u0433\u043E\u0435 \u043F\u043E\u043B\u0435 \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442\u0441\u044F \u043A\u0430\u043A unknown_field \u0438 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044F",task_id:"ID \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F complete)",tests_passed:"true \u043F\u043E\u0441\u043B\u0435 \u0443\u0441\u043F\u0435\u0448\u043D\u043E\u0433\u043E \u0442\u0435\u0441\u0442\u043E\u0432\u043E\u0433\u043E \u0448\u043B\u044E\u0437\u0430 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F complete)",test_evidence:"\u041A\u043E\u043C\u0430\u043D\u0434\u0430 \u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u044B\u0439 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u043E\u0432 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F complete)",reason:"\u041F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0440\u0435\u0440\u044B\u0432\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u0430\u0443\u0434\u0438\u0442\u0430 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F abort)"},scratchpad:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: save <\u0442\u0435\u043A\u0441\u0442> / recall <mem::\u0430\u0434\u0440\u0435\u0441> / search <\u0437\u0430\u043F\u0440\u043E\u0441> / list / forget <mem::\u0430\u0434\u0440\u0435\u0441>"}}},vt="run",ir=[vt,"dev","check","docs","ship","setup","review","test","impact","commit","push","pr","deploy","adr","release","github","config","questions","e2e","map","learn","scratchpad","diagram","slide","design","metrics","plan"];var Bb={dev:{slugs:["common","dev"]},ship:{slugs:["common","commit","push","pr","check"]},review:{slugs:["common","review","check"]}};var ha=new Set(["dev","review","setup","test","impact","docs","check","deploy","adr","release","e2e","benchmark","map","learn","diagram","slide","design"]);function FC(e){return e in Bb||ha.has(e)}function Kb(e){if(Bb[e])return Bb[e].slugs;if(ha.has(e))return["common",e]}var ya=new Set(["config","questions","metrics","scratchpad","plan"]);function Jb(e="en"){let t=O.toolPrefix,n=ga[e]??ga.en,i=to[e]??to.en,r=to.en;return ir.map(o=>{let s=qC[o]??[];return{name:`${t}${o}`,description:n[o]??ga.en[o],...s.length>0?{arguments:s.map(a=>({name:a.name,description:i[o]?.[a.name]??r[o]?.[a.name]??a.name,required:a.required}))}:{}}})}function ZC(e,t="en"){return ga[t][e]??ga.en[e]??e}function GC(e="en"){let t=O.toolPrefix,n=to[e]??to.en,i=to.en;return Jb(e).map(r=>{let o=r.name.startsWith(t)?r.name.slice(t.length):r.name,s=qC[o]??[];return{name:r.name,description:r.description,inputSchema:{type:"object",properties:Object.fromEntries(s.map(a=>[a.name,{type:"string",description:n[o]?.[a.name]??i[o]?.[a.name]??a.name}])),required:s.filter(a=>a.required).map(a=>a.name)}}})}var sZ={selectDisplayLanguage:"Select display language:",selectMainLanguage:"Select the main language for your project:",selectSubLanguages:"Select sub-languages used in your team:",selectSubLanguagesHint:"(comma-separated numbers, or press Enter to skip)",skipSubLanguages:"No sub-languages selected.",scanningProject:"Scanning project...",detectedStack:"Detected stack:",confirmStack:"Is this correct?",manualStackEntry:"Please select your tech stack manually.",selectProjectType:"What are you building? (select all that apply)",projectTypes:{web:"Web App (frontend + backend)",api:"API / Backend only",mobile:"Mobile App",game:"Game",cli:"CLI / Library / Script",desktop:"Desktop App"},selectProgrammingLanguages:"Programming languages:",selectFrontend:"Frontend frameworks:",selectBackend:"Backend frameworks:",selectDatabase:"Databases:",selectOrm:"ORM:",selectInfra:"Infrastructure:",selectGame:"Game engines / frameworks:",selectMobile:"Mobile / Cross-platform:",selectOther:"Other technologies not listed above (comma-separated, or press Enter to skip):",toolRecommendationsTitle:"Recommended tools for your stack:",toolInstallMode:"How would you like to install?",toolInstallDefault:"Default (install all)",toolInstallCustom:"Custom (choose individually)",toolInstallSkip:"Skip (install later)",toolInstallPrompt:"Install?",toolInstalling:"Installing",toolInstallSuccess:"Installed successfully.",toolAlreadyInstalled:"Already installed (up to date). Skipped.",toolInstallFailed:"Installation failed. You can install it later via setup prompt.",toolSkippedInProject:"Already in package.json \u2014 skipped",toolGuidance:"Manual setup required \u2014 see message above",toolSummaryTitle:"Installation Summary",toolSummarySuccess:"Installed",toolSummaryAlready:"Already up to date",toolSummarySkipped:"In package.json",toolSummaryGuidance:"Manual setup",toolSummaryFailed:"Failed",toolRetryHint:"Retry",auditRunning:"Running security audit...",auditClean:"No vulnerabilities found",auditWarning:"Vulnerabilities detected",auditFixPrompt:"Run audit fix to resolve high/critical vulnerabilities?",auditFixSuccess:"Audit fix applied successfully",auditFixFailed:"Audit fix could not resolve all vulnerabilities \u2014 review manually",toolUniversalTag:"all projects",toolStackSpecificTag:"your stack",toolCategories:{vcs:"Version Control",browser_automation:"Browser Automation",e2e_testing:"E2E Testing",unit_testing:"Unit Testing",linting:"Linting",formatting:"Formatting",type_checking:"Type Checking",coverage:"Coverage",documentation:"Documentation",secret_scanning:"Secret Scanning",security_analysis:"Security Analysis",unused_code:"Unused Code Detection",dependency_analysis:"Dependency Analysis"},githubDetected:"GitHub repository detected.",githubConfigPrompt:"Enable auto-delete for merged branches?",githubConfigSkipped:"Skipped GitHub auto-delete configuration.",githubConfigSuccess:"\u2713 Merged branches will be auto-deleted on GitHub.",githubConfigFailed:"\u2717 Could not configure auto-delete. Run `gh repo edit --delete-branch-on-merge` manually.",configCreated:"Generated",configExists:"already exists",configOverwritten:"Overwritten",useForceFlag:"Use --force to overwrite.",languages:"Languages",frontend:"Frontend",backend:"Backend",database:"Database",orm:"ORM",infra:"Infra",game:"Game",mobile:"Mobile",other:"Other",pressEnterToClose:"Press Enter to close...",unknownCommand:"Unknown command",usage:"Usage:",installClientSuccess:"Registered with {client}!",installClientManual:"{client} CLI (`{cli}`) was not found on PATH. Run this command to register manually:",installClientManualNotSpawnable:"{client} CLI (`{cli}`) was found on PATH, but as a Windows .cmd/.bat shim that cannot be launched directly. Run this command to register manually:",installUpdated:"Configuration updated",installUnchanged:"Already up to date",licenseNotSet:"License key is not set. Set GODD_LICENSE_KEY environment variable or run: godd-a install --license-key=YOUR_KEY",restartClient:"Restart {client} to activate the MCP server.",installFailed:"Installation failed:",installGoddTkHookConfigured:"Configured the godd-tk automatic compression hook.",installGoddTkHookUnavailable:"godd-tk hook was not configured; MCP remains available without compression. Use `godd-tk exec -- <command>` manually.",detectedClients:"Detected MCP clients: {clients}",noClientDetected:"No supported MCP client was detected.",manualConfigHint:"Add the following snippet to your client's MCP server configuration:",unknownClient:"Unknown --client value. Available clients: {clients}.",uninstallTitle:"Uninstall",uninstallClientSuccess:"Removed from {client}",uninstallNotFound:"Not found (already removed)",uninstallManual:"The client CLI was not found on PATH. Run this command to remove the server manually:",uninstallManualNotSpawnable:"The client CLI was found on PATH, but as a Windows .cmd/.bat shim that cannot be launched directly. Run this command to remove the server manually:",uninstallFailed:"Uninstall failed:",uninstallAgentBrowserRemoved:"Removed the GoDD-registered agent-browser MCP entry",uninstallAgentBrowserKept:"Kept the agent-browser MCP entry: it does not match the GoDD-registered configuration (user-modified, self-registered, or registered by an older GoDD version). Remove it manually if it is no longer needed.",uninstallGoddTkHooksRemoved:"Removed godd-tk hook entries from hooks.json",commandsGenerated:"Native slash commands ({count} files): {dir}",commandsRemoved:"Removed {count} native slash command files ({dir})",commandsSkippedManual:"Native command files were not generated (client CLI unavailable). After registering manually, re-run `godd-a install` to generate the command files.",commandsUnsupported:'{client} does not support custom slash commands \u2014 no command files generated. "/godd-a/<tool>" text commands still work via the AGENTS.md dispatch rules.',commandsSessionStartNote:"{client} loads custom command files at session start \u2014 restart {client} to use the new commands.",commandsFailed:"Could not write or remove native command files for {client}.",commandsProtectedSkip:"Skipped to protect an existing user-created file: {path}",commandsPartialFailure:"{count} native command file(s) could not be written or removed for {client}.",initTitle:"Project initialization",initAutoHint:"Non-interactive mode (--auto): stack scan + config only; tool install wizard skipped. Use interactive init when you need guided tool setup.",yes:"Yes",no:"No",none:"None",invalidChoice:"Invalid choice. Please try again.",enterNumbers:"Enter numbers",updateAvailable:"A newer version is available:",updateCurrent:"current:",licenseMissing:"GODD_LICENSE_KEY environment variable is not set.",licenseMissingHint:"Re-register with: godd-a install --license-key=YOUR_KEY",licenseFailed:"License validation failed",configNotFound:"not found in project directory.",configNotFoundHint:'Run "godd-a init" to generate project configuration for better prompt accuracy.',configUnknownValues:"contains unknown values:",didYouMean:"did you mean",serverStarted:"started (stdio)",corruptMcpJson:"is corrupt. Backed up to {backup} and creating a fresh config.",licenseNotConfigured:"License key is not configured. Set GODD_LICENSE_KEY and restart Cursor.",resolvePromptFailed:"Failed to resolve prompt",resolveToolFailed:"Failed to resolve tool",localToolFailed:"Local tool execution failed",runUsage:'Usage: run { command: "/godd-a/<tool> <args>" } \u2014 accepted forms: /godd-a/<tool>, godd-a/<tool>, /godd-a:<tool>, /godd-a_<tool>, mcp__godd-a__<tool>, /<tool>. Example: "/godd-a/dev implement the login form"',runUnknownSlug:'Unknown GoDD tool "{slug}". Available tools: {slugs}',runRecursive:'"run" cannot dispatch to itself. Call the target tool directly. Available tools: {slugs}',helpInstall:"Register MCP server into detected clients (or --client=<id|all>)",helpInit:"Initialize project (interactive; use --auto for scan-only)",helpUninstall:"Remove MCP server from detected clients (or --client=<id|all>)",helpServe:"Start MCP stdio server (called by the client)",helpVersion:"Show installed version and check for updates",helpVersionFlag:"Print version number and exit",versionUpToDate:"Up to date",versionUpdateAvailable:"A newer version is available",versionChecking:"Checking for updates...",versionCheckFailed:"Could not check for updates",fatalError:"Fatal error",compositeMissingSlugs:"WARNING: The following sections could not be loaded",goddFilesTitle:"GoDD managed files configuration:",goddFilesDocsPrompt:"Documentation directory (press Enter for default: documents):",goddFilesGitattributesPrompt:"Auto-create .gitattributes on init if missing?",goddFilesDependabotPrompt:"Auto-create .github/dependabot.yml on init if missing?",goddFilesCreated:"GoDD-MCP-alpha.md generated."},aZ={selectDisplayLanguage:"\u8868\u793A\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectMainLanguage:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30A4\u30F3\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectSubLanguages:"\u30C1\u30FC\u30E0\u3067\u4F7F\u7528\u3059\u308B\u30B5\u30D6\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectSubLanguagesHint:"(\u30AB\u30F3\u30DE\u533A\u5207\u308A\u306E\u756A\u53F7\u3001\u307E\u305F\u306FEnter\u3067\u30B9\u30AD\u30C3\u30D7)",skipSubLanguages:"\u30B5\u30D6\u8A00\u8A9E\u306F\u9078\u629E\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002",scanningProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u30B9\u30AD\u30E3\u30F3\u4E2D...",detectedStack:"\u691C\u51FA\u3055\u308C\u305F\u30B9\u30BF\u30C3\u30AF:",confirmStack:"\u3053\u306E\u5185\u5BB9\u3067\u6B63\u3057\u3044\u3067\u3059\u304B\uFF1F",manualStackEntry:"\u6280\u8853\u30B9\u30BF\u30C3\u30AF\u3092\u624B\u52D5\u3067\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",selectProjectType:"\u4F55\u3092\u4F5C\u308A\u307E\u3059\u304B\uFF1F\uFF08\u8A72\u5F53\u3059\u308B\u3082\u306E\u3092\u3059\u3079\u3066\u9078\u629E\uFF09",projectTypes:{web:"Web \u30A2\u30D7\u30EA\uFF08\u30D5\u30ED\u30F3\u30C8 + \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\uFF09",api:"API / \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u306E\u307F",mobile:"\u30E2\u30D0\u30A4\u30EB\u30A2\u30D7\u30EA",game:"\u30B2\u30FC\u30E0",cli:"CLI / \u30E9\u30A4\u30D6\u30E9\u30EA / \u30B9\u30AF\u30EA\u30D7\u30C8",desktop:"\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u30A2\u30D7\u30EA"},selectProgrammingLanguages:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E:",selectFrontend:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectBackend:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectDatabase:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9:",selectOrm:"ORM:",selectInfra:"\u30A4\u30F3\u30D5\u30E9:",selectGame:"\u30B2\u30FC\u30E0\u30A8\u30F3\u30B8\u30F3 / \u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectMobile:"\u30E2\u30D0\u30A4\u30EB / \u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0:",selectOther:"\u4E0A\u8A18\u306B\u306A\u3044\u6280\u8853\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u5165\u529B\u3001\u30B9\u30AD\u30C3\u30D7\u306F Enter\uFF09:",toolRecommendationsTitle:"\u30B9\u30BF\u30C3\u30AF\u306B\u63A8\u5968\u3055\u308C\u308B\u30C4\u30FC\u30EB:",toolInstallMode:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u65B9\u6CD5\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",toolInstallDefault:"\u30C7\u30D5\u30A9\u30EB\u30C8\uFF08\u3059\u3079\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF09",toolInstallCustom:"\u30AB\u30B9\u30BF\u30E0\uFF08\u500B\u5225\u306B\u9078\u629E\uFF09",toolInstallSkip:"\u30B9\u30AD\u30C3\u30D7\uFF08\u5F8C\u3067\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF09",toolInstallPrompt:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\uFF1F",toolInstalling:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D",toolInstallSuccess:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002",toolAlreadyInstalled:"\u6700\u65B0\u7248\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u3067\u3059\u3002\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F\u3002",toolInstallFailed:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002setup \u30D7\u30ED\u30F3\u30D7\u30C8\u3067\u5F8C\u304B\u3089\u5BFE\u5FDC\u3067\u304D\u307E\u3059\u3002",toolSkippedInProject:"package.json \u306B\u5B9A\u7FA9\u6E08\u307F \u2014 \u30B9\u30AD\u30C3\u30D7",toolGuidance:"\u624B\u52D5\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u304C\u5FC5\u8981\u3067\u3059 \u2014 \u4E0A\u8A18\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044",toolSummaryTitle:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u7D50\u679C\u30B5\u30DE\u30EA\u30FC",toolSummarySuccess:"\u6210\u529F",toolSummaryAlready:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F",toolSummarySkipped:"package.json \u5B9A\u7FA9\u6E08\u307F",toolSummaryGuidance:"\u624B\u52D5\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7",toolSummaryFailed:"\u5931\u6557",toolRetryHint:"\u518D\u8A66\u884C",auditRunning:"\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u76E3\u67FB\u3092\u5B9F\u884C\u4E2D...",auditClean:"\u8106\u5F31\u6027\u306F\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",auditWarning:"\u8106\u5F31\u6027\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F",auditFixPrompt:"audit fix \u3092\u5B9F\u884C\u3057\u3066 high/critical \u8106\u5F31\u6027\u3092\u4FEE\u6B63\u3057\u307E\u3059\u304B\uFF1F",auditFixSuccess:"audit fix \u304C\u6B63\u5E38\u306B\u9069\u7528\u3055\u308C\u307E\u3057\u305F",auditFixFailed:"audit fix \u3067\u3059\u3079\u3066\u306E\u8106\u5F31\u6027\u3092\u89E3\u6D88\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F \u2014 \u624B\u52D5\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044",toolUniversalTag:"\u5168\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5171\u901A",toolStackSpecificTag:"\u30B9\u30BF\u30C3\u30AF\u56FA\u6709",toolCategories:{vcs:"\u30D0\u30FC\u30B8\u30E7\u30F3\u7BA1\u7406",browser_automation:"\u30D6\u30E9\u30A6\u30B6\u81EA\u52D5\u5316",e2e_testing:"E2E \u30C6\u30B9\u30C8",unit_testing:"\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8",linting:"\u30EA\u30F3\u30BF\u30FC",formatting:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30BF\u30FC",type_checking:"\u578B\u30C1\u30A7\u30C3\u30AF",coverage:"\u30AB\u30D0\u30EC\u30C3\u30B8",documentation:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u751F\u6210",secret_scanning:"\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30B9\u30AD\u30E3\u30F3",security_analysis:"\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u5206\u6790",unused_code:"\u672A\u4F7F\u7528\u30B3\u30FC\u30C9\u691C\u51FA",dependency_analysis:"\u4F9D\u5B58\u5206\u6790"},githubDetected:"GitHub \u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002",githubConfigPrompt:"\u30DE\u30FC\u30B8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u306E\u81EA\u52D5\u524A\u9664\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u304B\uFF1F",githubConfigSkipped:"GitHub \u81EA\u52D5\u524A\u9664\u306E\u8A2D\u5B9A\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F\u3002",githubConfigSuccess:"\u2713 \u30DE\u30FC\u30B8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u306F GitHub \u4E0A\u3067\u81EA\u52D5\u524A\u9664\u3055\u308C\u307E\u3059\u3002",githubConfigFailed:"\u2717 \u81EA\u52D5\u524A\u9664\u306E\u8A2D\u5B9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u624B\u52D5\u3067 `gh repo edit --delete-branch-on-merge` \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",configCreated:"\u3092\u751F\u6210\u3057\u307E\u3057\u305F",configExists:"\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059",configOverwritten:"\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3057\u305F",useForceFlag:"\u4E0A\u66F8\u304D\u3059\u308B\u5834\u5408\u306F --force \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",languages:"\u8A00\u8A9E",frontend:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9",backend:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9",database:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9",orm:"ORM",infra:"\u30A4\u30F3\u30D5\u30E9",game:"\u30B2\u30FC\u30E0",mobile:"\u30E2\u30D0\u30A4\u30EB",other:"\u305D\u306E\u4ED6",pressEnterToClose:"Enter \u30AD\u30FC\u3092\u62BC\u3059\u3068\u9589\u3058\u307E\u3059...",unknownCommand:"\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9",usage:"\u4F7F\u3044\u65B9:",installClientSuccess:"{client} \u306B\u767B\u9332\u3057\u307E\u3057\u305F\uFF01",installClientManual:"{client} CLI\uFF08`{cli}`\uFF09\u304C PATH \u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u624B\u52D5\u3067\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044:",installClientManualNotSpawnable:"{client} CLI\uFF08`{cli}`\uFF09\u306F PATH \u4E0A\u3067\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u304C\u3001Windows \u306E .cmd/.bat \u30B7\u30E3\u30E0\u306E\u305F\u3081\u76F4\u63A5\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3002\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u624B\u52D5\u3067\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044:",installUpdated:"\u8A2D\u5B9A\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F",installUnchanged:"\u65E2\u306B\u6700\u65B0\u306E\u8A2D\u5B9A\u3067\u3059",licenseNotSet:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u304C\u672A\u8A2D\u5B9A\u3067\u3059\u3002\u74B0\u5883\u5909\u6570 GODD_LICENSE_KEY \u3092\u8A2D\u5B9A\u3059\u308B\u304B\u3001godd-a install --license-key=YOUR_KEY \u3067\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002",restartClient:"{client} \u3092\u518D\u8D77\u52D5\u3059\u308B\u3068 MCP \u30B5\u30FC\u30D0\u30FC\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002",installFailed:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",installGoddTkHookConfigured:"godd-tk \u81EA\u52D5\u5727\u7E2E\u30D5\u30C3\u30AF\u3092\u8A2D\u5B9A\u3057\u307E\u3057\u305F\u3002",installGoddTkHookUnavailable:"godd-tk \u30D5\u30C3\u30AF\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002MCP \u306F\u5727\u7E2E\u306A\u3057\u3067\u5229\u7528\u3067\u304D\u307E\u3059\u3002\u5FC5\u8981\u306B\u5FDC\u3058\u3066 `godd-tk exec -- <command>` \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",detectedClients:"\u691C\u51FA\u3055\u308C\u305F MCP \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8: {clients}",noClientDetected:"\u5BFE\u5FDC\u3059\u308B MCP \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002",manualConfigHint:"\u4EE5\u4E0B\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306E MCP \u30B5\u30FC\u30D0\u30FC\u8A2D\u5B9A\u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044:",unknownClient:"--client \u306E\u5024\u304C\u4E0D\u6B63\u3067\u3059\u3002\u6307\u5B9A\u53EF\u80FD\u306A\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8: {clients}",uninstallTitle:"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",uninstallClientSuccess:"{client} \u304B\u3089\u524A\u9664\u3057\u307E\u3057\u305F",uninstallNotFound:"\u767B\u9332\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u65E2\u306B\u524A\u9664\u6E08\u307F\uFF09",uninstallManual:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 CLI \u304C PATH \u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u624B\u52D5\u3067\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044:",uninstallManualNotSpawnable:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 CLI \u306F PATH \u4E0A\u3067\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u304C\u3001Windows \u306E .cmd/.bat \u30B7\u30E3\u30E0\u306E\u305F\u3081\u76F4\u63A5\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3002\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u624B\u52D5\u3067\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044:",uninstallFailed:"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",uninstallAgentBrowserRemoved:"GoDD \u304C\u767B\u9332\u3057\u305F agent-browser MCP \u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664\u3057\u307E\u3057\u305F",uninstallAgentBrowserKept:"agent-browser MCP \u30A8\u30F3\u30C8\u30EA\u3092\u4FDD\u6301\u3057\u307E\u3057\u305F: GoDD \u304C\u767B\u9332\u3059\u308B\u8A2D\u5B9A\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u30E6\u30FC\u30B6\u30FC\u306B\u3088\u308B\u5909\u66F4\u30FB\u72EC\u81EA\u767B\u9332\u30FB\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u306E GoDD \u306B\u3088\u308B\u767B\u9332\u306E\u53EF\u80FD\u6027\uFF09\u3002\u4E0D\u8981\u306A\u5834\u5408\u306F\u624B\u52D5\u3067\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002",uninstallGoddTkHooksRemoved:"hooks.json \u304B\u3089 godd-tk \u30D5\u30C3\u30AF\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664\u3057\u307E\u3057\u305F",commandsGenerated:"\u30CD\u30A4\u30C6\u30A3\u30D6\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9\uFF08{count} \u4EF6\uFF09: {dir}",commandsRemoved:"\u30CD\u30A4\u30C6\u30A3\u30D6\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9 {count} \u4EF6\u3092\u524A\u9664\u3057\u307E\u3057\u305F\uFF08{dir}\uFF09",commandsSkippedManual:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 CLI \u304C\u5229\u7528\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u30CD\u30A4\u30C6\u30A3\u30D6\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u624B\u52D5\u767B\u9332\u5F8C\u306B `godd-a install` \u3092\u518D\u5B9F\u884C\u3059\u308B\u3068\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB\u304C\u751F\u6210\u3055\u308C\u307E\u3059\u3002",commandsUnsupported:"{client} \u306F\u30AB\u30B9\u30BF\u30E0\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3002\u300C/godd-a/<tool>\u300D\u30C6\u30AD\u30B9\u30C8\u306F AGENTS.md \u306E\u30C7\u30A3\u30B9\u30D1\u30C3\u30C1\u898F\u5247\u7D4C\u7531\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002",commandsSessionStartNote:"{client} \u306F\u30BB\u30C3\u30B7\u30E7\u30F3\u958B\u59CB\u6642\u306B\u30AB\u30B9\u30BF\u30E0\u30B3\u30DE\u30F3\u30C9\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059\u3002\u65B0\u3057\u3044\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u3046\u306B\u306F {client} \u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",commandsFailed:"{client} \u306E\u30CD\u30A4\u30C6\u30A3\u30D6\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u307F/\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",commandsProtectedSkip:"\u65E2\u5B58\u306E\u30E6\u30FC\u30B6\u30FC\u4F5C\u6210\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u8B77\u3059\u308B\u305F\u3081\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F: {path}",commandsPartialFailure:"{client} \u306E\u30CD\u30A4\u30C6\u30A3\u30D6\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB {count} \u4EF6\u3092\u66F8\u304D\u8FBC\u307F/\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",initTitle:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u521D\u671F\u5316",initAutoHint:"\u975E\u5BFE\u8A71\u30E2\u30FC\u30C9\uFF08--auto\uFF09: \u30B9\u30BF\u30C3\u30AF\u81EA\u52D5\u691C\u51FA\u3068 config.godd \u306E\u307F\u3002\u30C4\u30FC\u30EB\u5C0E\u5165\u30A6\u30A3\u30B6\u30FC\u30C9\u306F\u7701\u7565\u3055\u308C\u307E\u3059\u3002\u624B\u52D5\u3067\u30C4\u30FC\u30EB\u3092\u9078\u3073\u305F\u3044\u5834\u5408\u306F\u5BFE\u8A71\u5F0F init \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002",yes:"\u306F\u3044",no:"\u3044\u3044\u3048",none:"\u306A\u3057",invalidChoice:"\u7121\u52B9\u306A\u9078\u629E\u3067\u3059\u3002\u3082\u3046\u4E00\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",enterNumbers:"\u756A\u53F7\u3092\u5165\u529B",updateAvailable:"\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:",updateCurrent:"\u73FE\u5728:",licenseMissing:"GODD_LICENSE_KEY \u74B0\u5883\u5909\u6570\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",licenseMissingHint:"godd-a install --license-key=YOUR_KEY \u3067\u518D\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002",licenseFailed:"\u30E9\u30A4\u30BB\u30F3\u30B9\u691C\u8A3C\u5931\u6557",configNotFound:"\u304C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002",configNotFoundHint:"\u300Cgodd-a init\u300D\u3092\u5B9F\u884C\u3057\u3066\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A2D\u5B9A\u3092\u751F\u6210\u3059\u308B\u3068\u3001\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u7CBE\u5EA6\u304C\u5411\u4E0A\u3057\u307E\u3059\u3002",configUnknownValues:"\u306B\u4E0D\u660E\u306A\u5024\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059:",didYouMean:"\u3082\u3057\u304B\u3057\u3066",serverStarted:"\u3092\u8D77\u52D5\u3057\u307E\u3057\u305F (stdio)",corruptMcpJson:"\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002{backup} \u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u4F5C\u6210\u3057\u3001\u65B0\u898F\u8A2D\u5B9A\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002",licenseNotConfigured:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002GODD_LICENSE_KEY \u3092\u8A2D\u5B9A\u3057\u3066 Cursor \u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",resolvePromptFailed:"\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",resolveToolFailed:"\u30C4\u30FC\u30EB\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",localToolFailed:"\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F",runUsage:'\u4F7F\u3044\u65B9: run { command: "/godd-a/<tool> <args>" } \u2014 \u53D7\u3051\u4ED8\u3051\u5F62\u5F0F: /godd-a/<tool>, godd-a/<tool>, /godd-a:<tool>, /godd-a_<tool>, mcp__godd-a__<tool>, /<tool>\u3002\u4F8B: "/godd-a/dev \u30ED\u30B0\u30A4\u30F3\u30D5\u30A9\u30FC\u30E0\u3092\u5B9F\u88C5"',runUnknownSlug:'\u4E0D\u660E\u306A GoDD \u30C4\u30FC\u30EB "{slug}" \u3067\u3059\u3002\u5229\u7528\u53EF\u80FD\u306A\u30C4\u30FC\u30EB: {slugs}',runRecursive:'"run" \u306F\u81EA\u5206\u81EA\u8EAB\u3092\u30C7\u30A3\u30B9\u30D1\u30C3\u30C1\u3067\u304D\u307E\u305B\u3093\u3002\u5BFE\u8C61\u30C4\u30FC\u30EB\u3092\u76F4\u63A5\u547C\u3073\u51FA\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u5229\u7528\u53EF\u80FD\u306A\u30C4\u30FC\u30EB: {slugs}',helpInstall:"MCP \u30B5\u30FC\u30D0\u30FC\u3092\u691C\u51FA\u3055\u308C\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306B\u767B\u9332\uFF08--client=<id|all> \u3067\u6307\u5B9A\u53EF\uFF09",helpInit:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u521D\u671F\u5316\uFF08\u5BFE\u8A71\u5F0F\uFF0F--auto \u3067\u30B9\u30AD\u30E3\u30F3\u306E\u307F\uFF09",helpUninstall:"MCP \u30B5\u30FC\u30D0\u30FC\u3092\u691C\u51FA\u3055\u308C\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304B\u3089\u524A\u9664\uFF08--client=<id|all> \u3067\u6307\u5B9A\u53EF\uFF09",helpServe:"MCP stdio \u30B5\u30FC\u30D0\u30FC\u3092\u8D77\u52D5\uFF08\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304C\u547C\u3073\u51FA\u3057\uFF09",helpVersion:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u8868\u793A\u3057\u6700\u65B0\u7248\u3092\u78BA\u8A8D",helpVersionFlag:"\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u8868\u793A\u3057\u3066\u7D42\u4E86",versionUpToDate:"\u6700\u65B0\u7248\u3067\u3059",versionUpdateAvailable:"\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059",versionChecking:"\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D...",versionCheckFailed:"\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u78BA\u8A8D\u306B\u5931\u6557\u3057\u307E\u3057\u305F",fatalError:"\u81F4\u547D\u7684\u306A\u30A8\u30E9\u30FC",compositeMissingSlugs:"\u8B66\u544A: \u4EE5\u4E0B\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F",goddFilesTitle:"GoDD \u7BA1\u7406\u30D5\u30A1\u30A4\u30EB\u306E\u8A2D\u5B9A:",goddFilesDocsPrompt:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u4FDD\u5B58\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF08Enter \u3067\u30C7\u30D5\u30A9\u30EB\u30C8: documents\uFF09:",goddFilesGitattributesPrompt:"init \u6642\u306B .gitattributes \u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u81EA\u52D5\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F",goddFilesDependabotPrompt:"init \u6642\u306B .github/dependabot.yml \u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u81EA\u52D5\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F",goddFilesCreated:"GoDD-MCP-alpha.md \u3092\u751F\u6210\u3057\u307E\u3057\u305F\u3002"},cZ={selectDisplayLanguage:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044F\u0437\u044B\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F:",selectMainLanguage:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u044F\u0437\u044B\u043A \u043F\u0440\u043E\u0435\u043A\u0442\u0430:",selectSubLanguages:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B:",selectSubLanguagesHint:"(\u043D\u043E\u043C\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E \u0438\u043B\u0438 Enter \u0434\u043B\u044F \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u0430)",skipSubLanguages:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u044B.",scanningProject:"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u0430...",detectedStack:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0439 \u0441\u0442\u0435\u043A:",confirmStack:"\u0412\u0441\u0451 \u0432\u0435\u0440\u043D\u043E?",manualStackEntry:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0441\u0442\u0435\u043A \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",selectProjectType:"\u0427\u0442\u043E \u0432\u044B \u0441\u043E\u0437\u0434\u0430\u0451\u0442\u0435? (\u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0441\u0435 \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0438\u0435)",projectTypes:{web:"\u0412\u0435\u0431-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 (\u0444\u0440\u043E\u043D\u0442\u0435\u043D\u0434 + \u0431\u044D\u043A\u0435\u043D\u0434)",api:"API / \u0442\u043E\u043B\u044C\u043A\u043E \u0431\u044D\u043A\u0435\u043D\u0434",mobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435",game:"\u0418\u0433\u0440\u0430",cli:"CLI / \u0411\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430 / \u0421\u043A\u0440\u0438\u043F\u0442",desktop:"\u0414\u0435\u0441\u043A\u0442\u043E\u043F\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435"},selectProgrammingLanguages:"\u042F\u0437\u044B\u043A\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F:",selectFrontend:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectBackend:"\u0411\u044D\u043A\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectDatabase:"\u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445:",selectOrm:"ORM:",selectInfra:"\u0418\u043D\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430:",selectGame:"\u0418\u0433\u0440\u043E\u0432\u044B\u0435 \u0434\u0432\u0438\u0436\u043A\u0438 / \u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectMobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435 / \u043A\u0440\u043E\u0441\u0441\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435\u043D\u043D\u044B\u0435:",selectOther:"\u0422\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0438, \u043D\u0435 \u0432\u043E\u0448\u0435\u0434\u0448\u0438\u0435 \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u0432\u044B\u0448\u0435 (\u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E, \u0438\u043B\u0438 Enter \u0434\u043B\u044F \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u0430):",toolRecommendationsTitle:"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u0434\u043B\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0435\u043A\u0430:",toolInstallMode:"\u041A\u0430\u043A \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?",toolInstallDefault:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E (\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435)",toolInstallCustom:"\u0412\u044B\u0431\u043E\u0440\u043E\u0447\u043D\u043E (\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u043E \u043E\u0434\u043D\u043E\u043C\u0443)",toolInstallSkip:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C (\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435)",toolInstallPrompt:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?",toolInstalling:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430",toolInstallSuccess:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0443\u0441\u043F\u0435\u0448\u043D\u043E.",toolAlreadyInstalled:"\u0423\u0436\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0432\u0435\u0440\u0441\u0438\u044F. \u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E.",toolInstallFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C. \u041C\u043E\u0436\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 setup.",toolSkippedInProject:"\u0423\u0436\u0435 \u0432 package.json \u2014 \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E",toolGuidance:"\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0440\u0443\u0447\u043D\u0430\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u2014 \u0441\u043C. \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432\u044B\u0448\u0435",toolSummaryTitle:"\u0418\u0442\u043E\u0433\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438",toolSummarySuccess:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",toolSummaryAlready:"\u0423\u0436\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E",toolSummarySkipped:"\u0412 package.json",toolSummaryGuidance:"\u0420\u0443\u0447\u043D\u0430\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430",toolSummaryFailed:"\u041E\u0448\u0438\u0431\u043A\u0430",toolRetryHint:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",auditRunning:"\u0417\u0430\u043F\u0443\u0441\u043A \u0430\u0443\u0434\u0438\u0442\u0430 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438...",auditClean:"\u0423\u044F\u0437\u0432\u0438\u043C\u043E\u0441\u0442\u0438 \u043D\u0435 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u044B",auditWarning:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u044B \u0443\u044F\u0437\u0432\u0438\u043C\u043E\u0441\u0442\u0438",auditFixPrompt:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C audit fix \u0434\u043B\u044F \u0443\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0432\u044B\u0441\u043E\u043A\u0438\u0445/\u043A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0443\u044F\u0437\u0432\u0438\u043C\u043E\u0441\u0442\u0435\u0439?",auditFixSuccess:"audit fix \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0440\u0438\u043C\u0435\u043D\u0451\u043D",auditFixFailed:"audit fix \u043D\u0435 \u0441\u043C\u043E\u0433 \u0443\u0441\u0442\u0440\u0430\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0443\u044F\u0437\u0432\u0438\u043C\u043E\u0441\u0442\u0438 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0432\u0440\u0443\u0447\u043D\u0443\u044E",toolUniversalTag:"\u0432\u0441\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u044B",toolStackSpecificTag:"\u0434\u043B\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0435\u043A\u0430",toolCategories:{vcs:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u0432\u0435\u0440\u0441\u0438\u0439",browser_automation:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430",e2e_testing:"E2E \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",unit_testing:"\u042E\u043D\u0438\u0442-\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",linting:"\u041B\u0438\u043D\u0442\u0438\u043D\u0433",formatting:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",type_checking:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0442\u0438\u043F\u043E\u0432",coverage:"\u041F\u043E\u043A\u0440\u044B\u0442\u0438\u0435 \u043A\u043E\u0434\u0430",documentation:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",secret_scanning:"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441\u0435\u043A\u0440\u0435\u0442\u043E\u0432",security_analysis:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438",unused_code:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u043D\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E \u043A\u043E\u0434\u0430",dependency_analysis:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439"},githubDetected:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0451\u043D GitHub-\u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439.",githubConfigPrompt:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0445 \u0432\u0435\u0442\u043E\u043A?",githubConfigSkipped:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u0430.",githubConfigSuccess:"\u2713 \u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0435 \u0432\u0435\u0442\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C\u0441\u044F \u043D\u0430 GitHub.",githubConfigFailed:"\u2717 \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435. \u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 `gh repo edit --delete-branch-on-merge` \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",configCreated:"\u0421\u043E\u0437\u0434\u0430\u043D",configExists:"\u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442",configOverwritten:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u043D",useForceFlag:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 --force \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0438.",languages:"\u042F\u0437\u044B\u043A\u0438",frontend:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434",backend:"\u0411\u044D\u043A\u0435\u043D\u0434",database:"\u0411\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u044B\u0445",orm:"ORM",infra:"\u0418\u043D\u0444\u0440\u0430",game:"\u0418\u0433\u0440\u044B",mobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435",other:"\u041F\u0440\u043E\u0447\u0435\u0435",pressEnterToClose:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 Enter \u0434\u043B\u044F \u0432\u044B\u0445\u043E\u0434\u0430...",unknownCommand:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430",usage:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435:",installClientSuccess:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 {client}!",installClientManual:"CLI {client} (`{cli}`) \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 PATH. \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u044D\u0442\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u0443\u0447\u043D\u0443\u044E:",installClientManualNotSpawnable:"CLI {client} (`{cli}`) \u043D\u0430\u0439\u0434\u0435\u043D \u0432 PATH, \u043D\u043E \u044D\u0442\u043E Windows-\u043E\u0431\u0451\u0440\u0442\u043A\u0430 .cmd/.bat, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043D\u0435\u043B\u044C\u0437\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E. \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u044D\u0442\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u0443\u0447\u043D\u0443\u044E:",installUpdated:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430",installUnchanged:"\u0423\u0436\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E",licenseNotSet:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043D\u0435 \u0437\u0430\u0434\u0430\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 GODD_LICENSE_KEY \u0438\u043B\u0438 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435: godd-a install --license-key=YOUR_KEY",restartClient:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 {client} \u0434\u043B\u044F \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.",installFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438:",installGoddTkHookConfigured:"\u041D\u0430\u0441\u0442\u0440\u043E\u0435\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0445\u0443\u043A \u0441\u0436\u0430\u0442\u0438\u044F godd-tk.",installGoddTkHookUnavailable:"\u0425\u0443\u043A godd-tk \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D; MCP \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0431\u0435\u0437 \u0441\u0436\u0430\u0442\u0438\u044F. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 `godd-tk exec -- <command>` \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",detectedClients:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 MCP-\u043A\u043B\u0438\u0435\u043D\u0442\u044B: {clients}",noClientDetected:"\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0439 MCP-\u043A\u043B\u0438\u0435\u043D\u0442 \u043D\u0435 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D.",manualConfigHint:"\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u043E\u0432 \u0432\u0430\u0448\u0435\u0433\u043E \u043A\u043B\u0438\u0435\u043D\u0442\u0430:",unknownClient:"\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 --client. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043A\u043B\u0438\u0435\u043D\u0442\u044B: {clients}.",uninstallTitle:"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435",uninstallClientSuccess:"\u0423\u0434\u0430\u043B\u0435\u043D\u043E \u0438\u0437 {client}",uninstallNotFound:"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E (\u0443\u0436\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E)",uninstallManual:"CLI \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 PATH. \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u044D\u0442\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0440\u0443\u0447\u043D\u043E\u0433\u043E \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0441\u0435\u0440\u0432\u0435\u0440\u0430:",uninstallManualNotSpawnable:"CLI \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 PATH, \u043D\u043E \u044D\u0442\u043E Windows-\u043E\u0431\u0451\u0440\u0442\u043A\u0430 .cmd/.bat, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043D\u0435\u043B\u044C\u0437\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E. \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u044D\u0442\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0440\u0443\u0447\u043D\u043E\u0433\u043E \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0441\u0435\u0440\u0432\u0435\u0440\u0430:",uninstallFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F:",uninstallAgentBrowserRemoved:"\u0423\u0434\u0430\u043B\u0435\u043D\u0430 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F GoDD \u0437\u0430\u043F\u0438\u0441\u044C agent-browser MCP",uninstallAgentBrowserKept:"\u0417\u0430\u043F\u0438\u0441\u044C agent-browser MCP \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430: \u043D\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043C\u043E\u0439 GoDD (\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u0441\u0430\u043C\u043E\u0441\u0442\u043E\u044F\u0442\u0435\u043B\u044C\u043D\u043E \u0438\u043B\u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u0441\u0442\u0430\u0440\u043E\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 GoDD). \u0423\u0434\u0430\u043B\u0438\u0442\u0435 \u0432\u0440\u0443\u0447\u043D\u0443\u044E, \u0435\u0441\u043B\u0438 \u043E\u043D\u0430 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430.",uninstallGoddTkHooksRemoved:"\u0425\u0443\u043A\u0438 godd-tk \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0438\u0437 hooks.json",commandsGenerated:"\u041D\u0430\u0442\u0438\u0432\u043D\u044B\u0435 slash-\u043A\u043E\u043C\u0430\u043D\u0434\u044B ({count} \u0444\u0430\u0439\u043B\u043E\u0432): {dir}",commandsRemoved:"\u0423\u0434\u0430\u043B\u0435\u043D\u043E \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0445 slash-\u043A\u043E\u043C\u0430\u043D\u0434: {count} ({dir})",commandsSkippedManual:"\u0424\u0430\u0439\u043B\u044B \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0445 \u043A\u043E\u043C\u0430\u043D\u0434 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u044B (CLI \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D). \u041F\u043E\u0441\u043B\u0435 \u0440\u0443\u0447\u043D\u043E\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 `godd-a install`, \u0447\u0442\u043E\u0431\u044B \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A\u043E\u043C\u0430\u043D\u0434.",commandsUnsupported:'{client} \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 slash-\u043A\u043E\u043C\u0430\u043D\u0434\u044B \u2014 \u0444\u0430\u0439\u043B\u044B \u043A\u043E\u043C\u0430\u043D\u0434 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u044B. \u0422\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B "/godd-a/<tool>" \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u0447\u0435\u0440\u0435\u0437 \u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u0434\u0438\u0441\u043F\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 AGENTS.md.',commandsSessionStartNote:"{client} \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u2014 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 {client}, \u0447\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B.",commandsFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0445 \u043A\u043E\u043C\u0430\u043D\u0434 \u0434\u043B\u044F {client}.",commandsProtectedSkip:"\u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u0449\u0438\u0442\u044B \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430: {path}",commandsPartialFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0445 \u043A\u043E\u043C\u0430\u043D\u0434: {count} ({client}).",initTitle:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430",initAutoHint:"\u041D\u0435\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C (--auto): \u0442\u043E\u043B\u044C\u043A\u043E \u0430\u0432\u0442\u043E\u0441\u043A\u0430\u043D \u0441\u0442\u0435\u043A\u0430 \u0438 config; \u043C\u0430\u0441\u0442\u0435\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D. \u0414\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 init.",yes:"\u0414\u0430",no:"\u041D\u0435\u0442",none:"\u041D\u0435\u0442",invalidChoice:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u044B\u0431\u043E\u0440. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.",enterNumbers:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u043C\u0435\u0440\u0430",updateAvailable:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F:",updateCurrent:"\u0442\u0435\u043A\u0443\u0449\u0430\u044F:",licenseMissing:"\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0441\u0440\u0435\u0434\u044B GODD_LICENSE_KEY \u043D\u0435 \u0437\u0430\u0434\u0430\u043D\u0430.",licenseMissingHint:"\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0439\u0442\u0435: godd-a install --license-key=YOUR_KEY",licenseFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",configNotFound:"\u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430.",configNotFoundHint:'\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 "godd-a init" \u0434\u043B\u044F \u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430.',configUnknownValues:"\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F:",didYouMean:"\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443",serverStarted:"\u0437\u0430\u043F\u0443\u0449\u0435\u043D (stdio)",corruptMcpJson:"\u043F\u043E\u0432\u0440\u0435\u0436\u0434\u0451\u043D. \u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F: {backup}. \u0421\u043E\u0437\u0434\u0430\u0451\u0442\u0441\u044F \u043D\u043E\u0432\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F.",licenseNotConfigured:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 GODD_LICENSE_KEY \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Cursor.",resolvePromptFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043F\u0440\u043E\u043C\u043F\u0442",resolveToolFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442",localToolFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430",runUsage:'\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: run { command: "/godd-a/<tool> <args>" } \u2014 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0444\u043E\u0440\u043C\u044B: /godd-a/<tool>, godd-a/<tool>, /godd-a:<tool>, /godd-a_<tool>, mcp__godd-a__<tool>, /<tool>. \u041F\u0440\u0438\u043C\u0435\u0440: "/godd-a/dev \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0444\u043E\u0440\u043C\u0443 \u0432\u0445\u043E\u0434\u0430"',runUnknownSlug:'\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 GoDD "{slug}". \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: {slugs}',runRecursive:'"run" \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u0430\u043C \u0441\u0435\u0431\u044F. \u0412\u044B\u0437\u043E\u0432\u0438\u0442\u0435 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: {slugs}',helpInstall:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C MCP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0432 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0445 \u043A\u043B\u0438\u0435\u043D\u0442\u0430\u0445 (\u0438\u043B\u0438 --client=<id|all>)",helpInit:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442 (\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u043E; --auto \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435)",helpUninstall:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C MCP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0437 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0445 \u043A\u043B\u0438\u0435\u043D\u0442\u043E\u0432 (\u0438\u043B\u0438 --client=<id|all>)",helpServe:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C MCP stdio-\u0441\u0435\u0440\u0432\u0435\u0440 (\u0432\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043A\u043B\u0438\u0435\u043D\u0442\u043E\u043C)",helpVersion:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0443\u044E \u0432\u0435\u0440\u0441\u0438\u044E \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F",helpVersionFlag:"\u0412\u044B\u0432\u0435\u0441\u0442\u0438 \u043D\u043E\u043C\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C",versionUpToDate:"\u0410\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F",versionUpdateAvailable:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F",versionChecking:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0439...",versionCheckFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F",fatalError:"\u041A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430",compositeMissingSlugs:"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",goddFilesTitle:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 GoDD:",goddFilesDocsPrompt:"\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0434\u043B\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438 (Enter \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: documents):",goddFilesGitattributesPrompt:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C .gitattributes \u043F\u0440\u0438 init, \u0435\u0441\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442?",goddFilesDependabotPrompt:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C .github/dependabot.yml \u043F\u0440\u0438 init, \u0435\u0441\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442?",goddFilesCreated:"GoDD-MCP-alpha.md \u0441\u043E\u0437\u0434\u0430\u043D."},VC={en:sZ,ja:aZ,ru:cZ};function Se(e){return VC[e]??VC.en}var Hb={en:"English",ja:"\u65E5\u672C\u8A9E",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"};var lZ=I.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),uZ=I.url().max(2048).refine(e=>{let t=new URL(e);return t.protocol==="https:"&&t.username===""&&t.password===""&&t.port===""&&t.search===""&&t.hash===""&&(t.hostname==="github.com"&&/\/pull\/\d+$/.test(t.pathname)||t.hostname==="gitlab.com"&&/\/-\/merge_requests\/\d+$/.test(t.pathname))},"open_pr_urls must contain GitHub pull or GitLab merge request URLs"),BC=I.object({plan_id:I.string().max(200).refine(e=>e.trim().length>0,"plan_id must not be blank").refine(e=>!/[\u0000-\u001f\u007f-\u009f]/.test(e),"plan_id must not contain control characters"),planned_pr_count:lZ,open_pr_urls:I.array(uZ).max(20),test_evidence_complete:I.boolean(),test_commands:I.array(I.object({command:I.string().max(500).refine(e=>e.trim().length>0,"command must not be blank"),exit_code:I.number().int().min(Number.MIN_SAFE_INTEGER).max(Number.MAX_SAFE_INTEGER)}).strict()).max(100)}).strict();function KC(e){let t;try{t=JSON.parse(e)}catch{throw new Error("gate_evidence must be valid JSON")}let n=BC.safeParse(t);if(!n.success)throw new Error(`Invalid gate_evidence: ${n.error.issues.map(i=>i.message).join("; ")}`);return n.data}function JC(e){let t=BC.parse(e),n="allow = planned_pr_count == 1 && open_pr_count <= 1 && test_evidence_complete && test_count > 0 && failed_test_count == 0",i=t.test_commands.filter(o=>o.exit_code!==0).length,r={plan_id:t.plan_id,planned_pr_count:t.planned_pr_count,open_pr_count:t.open_pr_urls.length,test_evidence_complete:t.test_evidence_complete,test_count:t.test_commands.length,failed_test_count:i};return t.planned_pr_count!==1||t.open_pr_urls.length>1?{verdict:"FAIL",reason:"ONE_PR_CONSTRAINT_FAILED",formula:n,measurements:r}:i>0?{verdict:"FAIL",reason:"TEST_GATE_FAILED",formula:n,measurements:r}:!t.test_evidence_complete||t.test_commands.length===0?{verdict:"INCONCLUSIVE",reason:"TEST_EVIDENCE_INCOMPLETE",formula:n,measurements:r}:{verdict:"PASS",reason:"COMMIT_GATE_SATISFIED",formula:n,measurements:r}}function HC(e,t){let[n,i]=t==="ja"?["\u30B3\u30DF\u30C3\u30C8\u524D\u30B2\u30FC\u30C8","\u5224\u5B9A"]:t==="ru"?["\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u043E\u043C\u043C\u0438\u0442\u0430","\u0412\u0435\u0440\u0434\u0438\u043A\u0442"]:["Commit Preflight Gate","Verdict"],r=Object.entries(e.measurements).map(([o,s])=>`${o}=${s}`).join(", ");return[`## ${n}`,`${i}: ${e.verdict}`,`- ${e.reason} | ${e.formula} | ${r}`].join(`
217
+ `)}var Zt="2.9.4";var ga={en:{run:'Unified entry point \u2014 parses a text command like "/godd-a/<tool> <args>" and runs the matching tool',dev:"Development (plan \u2192 implement \u2192 test \u2192 quality \u2192 docs in stages)",check:"Quality gate (verify Spec alignment, tests, types, lint, security)",docs:"Generate/update documentation",ship:"Ship (commit at proper granularity \u2192 quality check \u2192 push \u2192 create PR)",setup:"Environment setup (with recommended stack presets, confirms missing info)",review:"Review (CTO-level review + quality gate)",test:"Run/create tests",impact:"Impact analysis",commit:"Commit changes",push:"Push to remote",pr:"Create PR (template-compliant)",deploy:"Deploy (with verification & rollback plan)",adr:"Create ADR (Architecture Decision Record)",release:"Generate release notes (SemVer-compliant)",github:"GitHub configuration (repository/branch protection, etc.)",config:"Generate/repair config.godd (auto-detect stack + validation)",questions:"Interactive Q&A from question list (\u8CEA\u554F\u30EA\u30B9\u30C8.md)",e2e:"Browser-based E2E testing (execute & verify critical user flows)",benchmark:"Competitive prompt analysis (compare GoDD vs Cursor Rules / Claude Code / Codex)",map:"Project knowledge graph (visualize architecture & dependencies with Mermaid)",learn:"Save/recall project-specific patterns, conventions, and pitfalls",diagram:"Auto-update architecture diagrams (maintain living Mermaid docs in sync with code)",slide:"Generate presentation slides from project docs (Marp Markdown format)",design:"Generate/update visual designs from codebase (Pencil.dev sync)",metrics:"Token efficiency and optional evidence-based quality, budget, learning outcome, and guardrail preflight report",plan:"Advance one approved plan task at a time with durable state and a test-evidence gate",scratchpad:"Persistent conversation memory \u2014 save/recall/search/list/forget with BM25 vector search (Qdrant or local JSON fallback)"},ja:{run:'\u7D71\u4E00\u30A8\u30F3\u30C8\u30EA\u30DD\u30A4\u30F3\u30C8 \u2014 "/godd-a/<tool> <args>" \u5F62\u5F0F\u306E\u30C6\u30AD\u30B9\u30C8\u30B3\u30DE\u30F3\u30C9\u3092\u30D1\u30FC\u30B9\u3057\u3066\u5BFE\u5FDC\u30C4\u30FC\u30EB\u3092\u5B9F\u884C',dev:"\u958B\u767A\uFF08\u6BB5\u968E\u7684\u306B\u8A08\u753B\u2192\u5B9F\u88C5\u2192\u30C6\u30B9\u30C8\u2192\u54C1\u8CEA\u2192\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u5B9F\u884C\uFF09",check:"\u54C1\u8CEA\u30B2\u30FC\u30C8\uFF08Spec\u6574\u5408\u30FB\u30C6\u30B9\u30C8\u30FB\u578B\u30FBLint\u30FB\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3092\u691C\u8A3C\uFF09",docs:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u751F\u6210/\u66F4\u65B0",ship:"\u63D0\u51FA\uFF08\u9069\u5207\u306A\u7C92\u5EA6\u3067\u30B3\u30DF\u30C3\u30C8 \u2192 \u54C1\u8CEA\u30C1\u30A7\u30C3\u30AF \u2192 \u30D7\u30C3\u30B7\u30E5 \u2192 PR \u4F5C\u6210\uFF09",setup:"\u74B0\u5883\u69CB\u7BC9\uFF08\u63A8\u5968\u30B9\u30BF\u30C3\u30AF\u30D7\u30EA\u30BB\u30C3\u30C8\u4ED8\u304D\u30FB\u4E0D\u8DB3\u60C5\u5831\u306F\u78BA\u8A8D\uFF09",review:"\u30EC\u30D3\u30E5\u30FC\uFF08CTO \u30EC\u30D9\u30EB\u306E\u30EC\u30D3\u30E5\u30FC + \u54C1\u8CEA\u30B2\u30FC\u30C8\uFF09",test:"\u30C6\u30B9\u30C8\u5B9F\u884C/\u4F5C\u6210",impact:"\u5F71\u97FF\u5206\u6790",commit:"\u5909\u66F4\u3092\u30B3\u30DF\u30C3\u30C8",push:"\u30EA\u30E2\u30FC\u30C8\u306B\u30D7\u30C3\u30B7\u30E5",pr:"PR \u4F5C\u6210\uFF08\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u6E96\u62E0\uFF09",deploy:"\u30C7\u30D7\u30ED\u30A4\uFF08\u691C\u8A3C\u30FB\u30ED\u30FC\u30EB\u30D0\u30C3\u30AF\u8A08\u753B\u4ED8\u304D\uFF09",adr:"ADR\uFF08Architecture Decision Record\uFF09\u4F5C\u6210",release:"\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u751F\u6210\uFF08SemVer \u6E96\u62E0\uFF09",github:"GitHub \u8A2D\u5B9A\uFF08\u30EA\u30DD\u30B8\u30C8\u30EA/\u30D6\u30E9\u30F3\u30C1\u4FDD\u8B77\u7B49\uFF09",config:"config.godd \u3092\u6B63\u78BA\u306B\u751F\u6210\u30FB\u4FEE\u6B63\u3059\u308B\uFF08\u30B9\u30BF\u30C3\u30AF\u81EA\u52D5\u691C\u51FA + \u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\uFF09",questions:"\u8CEA\u554F\u30EA\u30B9\u30C8\uFF08\u8CEA\u554F\u30EA\u30B9\u30C8.md\uFF09\u304B\u3089\u30A4\u30F3\u30BF\u30E9\u30AF\u30C6\u30A3\u30D6\u306B\u8CEA\u554F\u3092\u7BA1\u7406",e2e:"\u30D6\u30E9\u30A6\u30B6\u30D9\u30FC\u30B9 E2E \u30C6\u30B9\u30C8\uFF08\u91CD\u8981\u30E6\u30FC\u30B6\u30FC\u30D5\u30ED\u30FC\u306E\u5B9F\u884C\u30FB\u691C\u8A3C\uFF09",benchmark:"\u7AF6\u5408\u30D7\u30ED\u30F3\u30D7\u30C8\u5206\u6790\uFF08GoDD vs Cursor Rules / Claude Code / Codex \u3092\u6BD4\u8F03\uFF09",map:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30CA\u30EC\u30C3\u30B8\u30B0\u30E9\u30D5\uFF08Mermaid \u3067\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u30FB\u4F9D\u5B58\u95A2\u4FC2\u3092\u53EF\u8996\u5316\uFF09",learn:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u56FA\u6709\u306E\u30D1\u30BF\u30FC\u30F3\u30FB\u6163\u4F8B\u30FB\u843D\u3068\u3057\u7A74\u3092\u4FDD\u5B58/\u53C2\u7167",diagram:"\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u56F3\u306E\u81EA\u52D5\u66F4\u65B0\uFF08\u30B3\u30FC\u30C9\u3068\u540C\u671F\u3057\u305F Mermaid \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u7DAD\u6301\uFF09",slide:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304B\u3089\u30D7\u30EC\u30BC\u30F3\u30B9\u30E9\u30A4\u30C9\u3092\u751F\u6210\uFF08Marp Markdown \u5F62\u5F0F\uFF09",design:"\u30B3\u30FC\u30C9\u30D9\u30FC\u30B9\u304B\u3089\u30D3\u30B8\u30E5\u30A2\u30EB\u30C7\u30B6\u30A4\u30F3\u3092\u751F\u6210/\u66F4\u65B0\uFF08Pencil.dev \u540C\u671F\uFF09",metrics:"\u30C8\u30FC\u30AF\u30F3\u52B9\u7387\u3068\u3001\u4EFB\u610F\u306E\u8A3C\u62E0\u306B\u57FA\u3065\u304F\u54C1\u8CEA\u30FB\u4E88\u7B97\u30FB\u5B66\u7FD2\u6210\u679C\u30FBguardrail preflight\u30EC\u30DD\u30FC\u30C8",plan:"\u627F\u8A8D\u6E08\u307F\u8A08\u753B\u3092\u6C38\u7D9A\u72B6\u614B\u3068\u30C6\u30B9\u30C8\u8A3C\u8DE1\u30B2\u30FC\u30C8\u4ED8\u304D\u3067\u4E00\u30BF\u30B9\u30AF\u305A\u3064\u9032\u3081\u308B",scratchpad:"\u4F1A\u8A71\u8A18\u61B6\u306E\u6C38\u7D9A\u5316 \u2014 BM25 \u30D9\u30AF\u30BF\u30FC\u691C\u7D22\u3067 save/recall/search/list/forget\uFF08Qdrant \u307E\u305F\u306F\u30ED\u30FC\u30AB\u30EB JSON \u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\uFF09"},ru:{run:'\u0415\u0434\u0438\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430 \u0432\u0445\u043E\u0434\u0430 \u2014 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u0443\u044E \u043A\u043E\u043C\u0430\u043D\u0434\u0443 "/godd-a/<tool> <args>" \u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442',dev:"\u0420\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u043A\u0430 (\u043F\u043B\u0430\u043D \u2192 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u2192 \u0442\u0435\u0441\u0442\u044B \u2192 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u043E \u2192 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F \u043F\u043E\u044D\u0442\u0430\u043F\u043D\u043E)",check:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 (Spec, \u0442\u0435\u0441\u0442\u044B, \u0442\u0438\u043F\u044B, \u043B\u0438\u043D\u0442\u0435\u0440, \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C)",docs:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438",ship:"\u041E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 (\u043A\u043E\u043C\u043C\u0438\u0442 \u2192 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u2192 \u043F\u0443\u0448 \u2192 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 PR)",setup:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0441\u0440\u0435\u0434\u044B (\u0441 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u043C\u0438 \u043F\u0440\u0435\u0441\u0435\u0442\u0430\u043C\u0438 \u0441\u0442\u0435\u043A\u0430)",review:"\u0420\u0435\u0432\u044C\u044E (CTO-\u0443\u0440\u043E\u0432\u0435\u043D\u044C + \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430)",test:"\u0417\u0430\u043F\u0443\u0441\u043A/\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0442\u0435\u0441\u0442\u043E\u0432",impact:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0432\u043B\u0438\u044F\u043D\u0438\u044F",commit:"\u0417\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",push:"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432 \u0443\u0434\u0430\u043B\u0451\u043D\u043D\u044B\u0439 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439",pr:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C PR (\u043F\u043E \u0448\u0430\u0431\u043B\u043E\u043D\u0443)",deploy:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C (\u0441 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u043E\u0439 \u0438 \u043F\u043B\u0430\u043D\u043E\u043C \u043E\u0442\u043A\u0430\u0442\u0430)",adr:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C ADR (\u0437\u0430\u043F\u0438\u0441\u044C \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u043D\u043E\u0433\u043E \u0440\u0435\u0448\u0435\u043D\u0438\u044F)",release:"\u0421\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043A \u0440\u0435\u043B\u0438\u0437\u0443 (SemVer)",github:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 GitHub (\u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439/\u0437\u0430\u0449\u0438\u0442\u0430 \u0432\u0435\u0442\u043E\u043A \u0438 \u0442.\u0434.)",config:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 config.godd (\u0430\u0432\u0442\u043E\u0434\u0435\u0442\u0435\u043A\u0442 \u0441\u0442\u0435\u043A\u0430 + \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u044F)",questions:"\u0418\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 Q&A \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 (\u8CEA\u554F\u30EA\u30B9\u30C8.md)",e2e:"E2E-\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 (\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u043F\u043E\u0442\u043E\u043A\u043E\u0432)",benchmark:"\u041A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u044B\u0439 \u0430\u043D\u0430\u043B\u0438\u0437 \u043F\u0440\u043E\u043C\u043F\u0442\u043E\u0432 (\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435 GoDD \u0441 Cursor Rules / Claude Code / Codex)",map:"\u0413\u0440\u0430\u0444 \u0437\u043D\u0430\u043D\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (\u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u044B \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 Mermaid)",learn:"\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435/\u0432\u044B\u0437\u043E\u0432 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u044B\u0445 \u0434\u043B\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043F\u0430\u0442\u0442\u0435\u0440\u043D\u043E\u0432, \u0441\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0439 \u0438 \u043F\u043E\u0434\u0432\u043E\u0434\u043D\u044B\u0445 \u043A\u0430\u043C\u043D\u0435\u0439",diagram:"\u0410\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u043D\u044B\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C (\u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u044B\u0445 Mermaid-\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432)",slide:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F \u0441\u043B\u0430\u0439\u0434\u043E\u0432 \u0438\u0437 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (\u0444\u043E\u0440\u043C\u0430\u0442 Marp Markdown)",design:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0434\u0438\u0437\u0430\u0439\u043D\u0430 \u0438\u0437 \u043A\u043E\u0434\u043E\u0432\u043E\u0439 \u0431\u0430\u0437\u044B (\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044F Pencil.dev)",metrics:"\u042D\u0444\u0444\u0435\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0442\u043E\u043A\u0435\u043D\u043E\u0432 \u0438 \u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043E\u0446\u0435\u043D\u043A\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430, \u0431\u044E\u0434\u0436\u0435\u0442\u0430, \u043E\u0431\u0443\u0447\u0435\u043D\u0438\u044F \u0438 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 guardrail \u043F\u043E \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u043C",plan:"\u041F\u043E\u0448\u0430\u0433\u043E\u0432\u043E\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0441 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u043C\u044B\u043C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u043C \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u043E\u0439 \u0442\u0435\u0441\u0442\u043E\u0432",scratchpad:"\u041F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u0430\u044F \u043F\u0430\u043C\u044F\u0442\u044C \u0434\u0438\u0430\u043B\u043E\u0433\u0430 \u2014 save/recall/search/list/forget \u0441 BM25 \u0432\u0435\u043A\u0442\u043E\u0440\u043D\u044B\u043C \u043F\u043E\u0438\u0441\u043A\u043E\u043C (Qdrant \u0438\u043B\u0438 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 JSON \u0444\u043E\u043B\u043B\u0431\u044D\u043A)"}};var qC={run:[{name:"command",required:!0}],dev:[{name:"request",required:!0},{name:"done_when",required:!1}],check:[{name:"target",required:!1}],docs:[{name:"target",required:!1}],ship:[{name:"title",required:!1}],review:[{name:"target",required:!1},{name:"action",required:!1}],test:[{name:"target",required:!1}],impact:[{name:"target",required:!1}],commit:[{name:"message",required:!1},{name:"gate_evidence",required:!1}],pr:[{name:"title",required:!1}],deploy:[{name:"target",required:!1}],adr:[{name:"title",required:!1}],release:[{name:"tag",required:!1}],setup:[{name:"preset",required:!1}],github:[{name:"request",required:!1}],config:[],questions:[{name:"action",required:!1}],e2e:[{name:"target",required:!1},{name:"url",required:!1}],benchmark:[{name:"target",required:!1}],map:[{name:"target",required:!1}],learn:[{name:"action",required:!1}],diagram:[{name:"target",required:!1}],slide:[{name:"type",required:!1},{name:"source",required:!1}],design:[{name:"target",required:!1},{name:"output",required:!1}],metrics:[{name:"quality_evidence",required:!1},{name:"budget_evidence",required:!1},{name:"learning_evidence",required:!1},{name:"guardrail_evidence",required:!1}],plan:[{name:"action",required:!0},{name:"plan",required:!1},{name:"task_id",required:!1},{name:"tests_passed",required:!1},{name:"test_evidence",required:!1},{name:"reason",required:!1}],scratchpad:[{name:"action",required:!0}]},to={en:{run:{command:'Slash command text, e.g. "/godd-a/dev add tests"'},dev:{request:"Request details",done_when:"Completion criteria"},check:{target:"Check target (omit for all recent changes)"},docs:{target:"Target file/feature"},ship:{title:"PR title"},review:{target:"Target file/PR (e.g., PR URL, PR number, file path)",action:"Post-review action (approve / request-changes / comment)"},test:{target:"Test target"},impact:{target:"Analysis target"},commit:{message:"Commit message",gate_evidence:"Optional JSON evidence for the fail-closed pre-commit test and one-PR gate"},pr:{title:"PR title"},deploy:{target:"Deploy target"},adr:{title:"Decision title"},release:{tag:"Target tag (omit for HEAD since last release)"},setup:{preset:"Stack preset (omakase = recommended)"},github:{request:"Configuration request"},questions:{action:"Action: list (default) / resolve <id> / add <question>"},e2e:{target:"Target page/flow to test",url:"Base URL of the application"},benchmark:{target:"Competitor system to analyze (cursor-rules / claude-code / codex / all)"},map:{target:"Target scope (module/directory/layer to visualize)"},learn:{action:"Action: save <category> <content> / recall / list / forget <id>"},diagram:{target:"Target diagram scope (architecture / module / data-flow / erd / all)"},slide:{type:"Presentation type (sprint-review / architecture / release / onboarding)",source:"Source documents to base slides on"},design:{target:"Design target (all / page name / component name)",output:"Output format (pencil / tokens)"},metrics:{quality_evidence:"Optional JSON evidence for output, execution, and design quality assessment",budget_evidence:"Optional JSON evidence for deterministic virtual-key budget boundary assessment",learning_evidence:"Optional numeric and boolean JSON evidence for deterministic learning outcome and grounding assessment",guardrail_evidence:"Optional JSON evidence for deterministic pre-provider guardrail preflight (monitor/block) assessment"},plan:{action:"Action: start / next / complete / status / abort",plan:"Approved plan JSON (required for start). Vertical slice rubric: plan.global_constraints, and per task files / consumes / produces / verify (allow_horizontal opts a genuinely single-layer task out). Set strict_authoring to reject plans that miss it. Any other field is reported as unknown_field and ignored",task_id:"Active task id (required for complete)",tests_passed:"Must be true after the test gate succeeds (required for complete)",test_evidence:"Successful test command and result (required for complete)",reason:"Audit reason (required for abort)"},scratchpad:{action:"Action: save <content> / recall <mem::address> / search <query> / list / forget <mem::address>"}},ja:{run:{command:'\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9\u6587\u5B57\u5217\uFF08\u4F8B: "/godd-a/dev \u30C6\u30B9\u30C8\u3092\u8FFD\u52A0"\uFF09'},dev:{request:"\u4F9D\u983C\u5185\u5BB9",done_when:"\u5B8C\u4E86\u6761\u4EF6"},check:{target:"\u30C1\u30A7\u30C3\u30AF\u5BFE\u8C61\uFF08\u7701\u7565\u6642: \u76F4\u8FD1\u306E\u5909\u66F4\u5168\u4F53\uFF09"},docs:{target:"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB/\u6A5F\u80FD"},ship:{title:"PR \u30BF\u30A4\u30C8\u30EB"},review:{target:"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB/PR\uFF08\u4F8B: PR URL, PR\u756A\u53F7, \u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF09",action:"\u30EC\u30D3\u30E5\u30FC\u5F8C\u306E\u30A2\u30AF\u30B7\u30E7\u30F3\uFF08approve / request-changes / comment\uFF09"},test:{target:"\u30C6\u30B9\u30C8\u5BFE\u8C61"},impact:{target:"\u5206\u6790\u5BFE\u8C61"},commit:{message:"\u30B3\u30DF\u30C3\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8",gate_evidence:"\u30B3\u30DF\u30C3\u30C8\u524D\u30C6\u30B9\u30C8\u30681 PR\u5236\u7D04\u3092fail-closed\u3067\u5224\u5B9A\u3059\u308B\u4EFB\u610F\u306EJSON\u8A3C\u62E0"},pr:{title:"PR \u30BF\u30A4\u30C8\u30EB"},deploy:{target:"\u30C7\u30D7\u30ED\u30A4\u5148"},adr:{title:"\u5224\u65AD\u306E\u30BF\u30A4\u30C8\u30EB"},release:{tag:"\u5BFE\u8C61\u30BF\u30B0\uFF08\u7701\u7565\u6642: \u76F4\u8FD1\u30EA\u30EA\u30FC\u30B9\u304B\u3089 HEAD\uFF09"},setup:{preset:"\u30B9\u30BF\u30C3\u30AF\u30D7\u30EA\u30BB\u30C3\u30C8\uFF08omakase = \u63A8\u5968\u69CB\u6210\uFF09"},github:{request:"\u8A2D\u5B9A\u5185\u5BB9"},questions:{action:"\u64CD\u4F5C: list\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09/ resolve <id> / add <\u8CEA\u554F\u6587>"},e2e:{target:"\u30C6\u30B9\u30C8\u5BFE\u8C61\u306E\u30DA\u30FC\u30B8/\u30D5\u30ED\u30FC",url:"\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30D9\u30FC\u30B9 URL"},benchmark:{target:"\u5206\u6790\u5BFE\u8C61\u306E\u7AF6\u5408\uFF08cursor-rules / claude-code / codex / all\uFF09"},map:{target:"\u53EF\u8996\u5316\u5BFE\u8C61\uFF08\u30E2\u30B8\u30E5\u30FC\u30EB/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA/\u30EC\u30A4\u30E4\u30FC\uFF09"},learn:{action:"\u64CD\u4F5C: save <\u30AB\u30C6\u30B4\u30EA> <\u5185\u5BB9> / recall / list / forget <id>"},diagram:{target:"\u56F3\u306E\u5BFE\u8C61\u7BC4\u56F2\uFF08architecture / module / data-flow / erd / all\uFF09"},slide:{type:"\u30D7\u30EC\u30BC\u30F3\u7A2E\u985E\uFF08sprint-review / architecture / release / onboarding\uFF09",source:"\u30BD\u30FC\u30B9\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8"},design:{target:"\u30C7\u30B6\u30A4\u30F3\u5BFE\u8C61\uFF08all / \u30DA\u30FC\u30B8\u540D / \u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u540D\uFF09",output:"\u51FA\u529B\u5F62\u5F0F\uFF08pencil / tokens\uFF09"},metrics:{quality_evidence:"\u51FA\u529B\u30FB\u5B9F\u884C\u30FB\u8A2D\u8A08\u54C1\u8CEA\u3092\u5224\u5B9A\u3059\u308B\u4EFB\u610F\u306E JSON \u8A3C\u62E0",budget_evidence:"\u4EEE\u60F3\u30AD\u30FC\u306E\u4E88\u7B97\u5883\u754C\u3092\u6C7A\u5B9A\u8AD6\u7684\u306B\u5224\u5B9A\u3059\u308B\u4EFB\u610F\u306E JSON \u8A3C\u62E0",learning_evidence:"\u5B66\u7FD2\u6210\u679C\u3068\u6839\u62E0\u6027\u3092\u6C7A\u5B9A\u8AD6\u7684\u306B\u5224\u5B9A\u3059\u308B\u6570\u5024\u30FB\u771F\u507D\u5024\u306E\u307F\u306E\u4EFB\u610F JSON \u8A3C\u62E0",guardrail_evidence:"provider\u547C\u51FA\u3057\u524Dguardrail(monitor/block)\u3092\u6C7A\u5B9A\u8AD6\u7684\u306B\u5224\u5B9A\u3059\u308B\u4EFB\u610F\u306E JSON \u8A3C\u62E0"},plan:{action:"\u64CD\u4F5C: start / next / complete / status / abort",plan:"\u627F\u8A8D\u6E08\u307F\u8A08\u753B JSON\uFF08start \u3067\u5FC5\u9808\uFF09\u3002\u5782\u76F4\u30B9\u30E9\u30A4\u30B9\u898F\u6E96: plan.global_constraints \u3068\u5404\u30BF\u30B9\u30AF\u306E files / consumes / produces / verify\uFF08\u6B63\u5F53\u306A\u5358\u4E00\u5C64\u30BF\u30B9\u30AF\u306F allow_horizontal \u3067\u9664\u5916\uFF09\u3002strict_authoring \u3092\u7ACB\u3066\u308B\u3068\u898F\u6E96\u672A\u9054\u3092\u62D2\u5426\u3002\u5217\u6319\u5916\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306F unknown_field \u3068\u3057\u3066\u5831\u544A\u306E\u3046\u3048\u7121\u8996\u3055\u308C\u308B",task_id:"\u5B9F\u884C\u4E2D\u30BF\u30B9\u30AF ID\uFF08complete \u3067\u5FC5\u9808\uFF09",tests_passed:"\u30C6\u30B9\u30C8\u30B2\u30FC\u30C8\u6210\u529F\u5F8C\u306E true\uFF08complete \u3067\u5FC5\u9808\uFF09",test_evidence:"\u6210\u529F\u3057\u305F\u30C6\u30B9\u30C8\u30B3\u30DE\u30F3\u30C9\u3068\u7D50\u679C\uFF08complete \u3067\u5FC5\u9808\uFF09",reason:"\u76E3\u67FB\u7528\u306E\u4E2D\u65AD\u7406\u7531\uFF08abort \u3067\u5FC5\u9808\uFF09"},scratchpad:{action:"\u64CD\u4F5C: save <\u5185\u5BB9> / recall <mem::\u30A2\u30C9\u30EC\u30B9> / search <\u30AF\u30A8\u30EA> / list / forget <mem::\u30A2\u30C9\u30EC\u30B9>"}},ru:{run:{command:'\u0422\u0435\u043A\u0441\u0442 slash-\u043A\u043E\u043C\u0430\u043D\u0434\u044B, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 "/godd-a/dev \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0441\u0442\u044B"'},dev:{request:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",done_when:"\u041A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F"},check:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u0432\u0441\u0435 \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F)"},docs:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0444\u0430\u0439\u043B/\u0444\u0443\u043D\u043A\u0446\u0438\u044F"},ship:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A PR"},review:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0444\u0430\u0439\u043B/PR (URL PR, \u043D\u043E\u043C\u0435\u0440 PR, \u043F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443)",action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043F\u043E\u0441\u043B\u0435 \u0440\u0435\u0432\u044C\u044E (approve / request-changes / comment)"},test:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F"},impact:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u0430\u043D\u0430\u043B\u0438\u0437\u0430"},commit:{message:"\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u043C\u0438\u0442\u0430",gate_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u043E \u0442\u0435\u0441\u0442\u043E\u0432 \u043F\u0435\u0440\u0435\u0434 \u043A\u043E\u043C\u043C\u0438\u0442\u043E\u043C \u0438 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F \u043E\u0434\u043D\u043E\u0433\u043E PR"},pr:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A PR"},deploy:{target:"\u0426\u0435\u043B\u044C \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F"},adr:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0440\u0435\u0448\u0435\u043D\u0438\u044F"},release:{tag:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0442\u0435\u0433 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u043E\u0442 HEAD \u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0440\u0435\u043B\u0438\u0437\u0430)"},setup:{preset:"\u041F\u0440\u0435\u0441\u0435\u0442 \u0441\u0442\u0435\u043A\u0430 (omakase = \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F)"},github:{request:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438"},questions:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: list (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E) / resolve <id> / add <\u0432\u043E\u043F\u0440\u043E\u0441>"},e2e:{target:"\u0426\u0435\u043B\u0435\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430/\u043F\u043E\u0442\u043E\u043A \u0434\u043B\u044F \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",url:"\u0411\u0430\u0437\u043E\u0432\u044B\u0439 URL \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F"},benchmark:{target:"\u041A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 \u0434\u043B\u044F \u0430\u043D\u0430\u043B\u0438\u0437\u0430 (cursor-rules / claude-code / codex / all)"},map:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (\u043C\u043E\u0434\u0443\u043B\u044C/\u043A\u0430\u0442\u0430\u043B\u043E\u0433/\u0441\u043B\u043E\u0439 \u0434\u043B\u044F \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438)"},learn:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: save <\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F> <\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435> / recall / list / forget <id>"},diagram:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B (architecture / module / data-flow / erd / all)"},slide:{type:"\u0422\u0438\u043F \u043F\u0440\u0435\u0437\u0435\u043D\u0442\u0430\u0446\u0438\u0438 (sprint-review / architecture / release / onboarding)",source:"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B"},design:{target:"\u0426\u0435\u043B\u044C \u0434\u0438\u0437\u0430\u0439\u043D\u0430 (all / \u0438\u043C\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B / \u0438\u043C\u044F \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430)",output:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0432\u044B\u0432\u043E\u0434\u0430 (pencil / tokens)"},metrics:{quality_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u044B\u0432\u043E\u0434\u0430, \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0438 \u0434\u0438\u0437\u0430\u0439\u043D\u0430",budget_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043B\u0438\u043C\u0438\u0442\u0430 \u0431\u044E\u0434\u0436\u0435\u0442\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430",learning_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0447\u0438\u0441\u043B\u043E\u0432\u044B\u0435 \u0438 \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u043E\u0431\u0443\u0447\u0435\u043D\u0438\u044F \u0438 \u043E\u0431\u043E\u0441\u043D\u043E\u0432\u0430\u043D\u043D\u043E\u0441\u0442\u0438",guardrail_evidence:"\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 JSON-\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0434\u043B\u044F \u0434\u0435\u0442\u0435\u0440\u043C\u0438\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 guardrail (monitor/block) \u043F\u0435\u0440\u0435\u0434 \u0432\u044B\u0437\u043E\u0432\u043E\u043C \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430"},plan:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: start / next / complete / status / abort",plan:"JSON \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u043F\u043B\u0430\u043D\u0430 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F start). \u041A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0441\u0440\u0435\u0437\u0430: plan.global_constraints \u0438 \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 files / consumes / produces / verify (allow_horizontal \u0438\u0441\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043E\u0434\u043D\u043E\u0441\u043B\u043E\u0439\u043D\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443). strict_authoring \u043E\u0442\u043A\u043B\u043E\u043D\u044F\u0435\u0442 \u043F\u043B\u0430\u043D\u044B, \u043D\u0435 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0449\u0438\u0435 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u044E. \u041B\u044E\u0431\u043E\u0435 \u0434\u0440\u0443\u0433\u043E\u0435 \u043F\u043E\u043B\u0435 \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442\u0441\u044F \u043A\u0430\u043A unknown_field \u0438 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044F",task_id:"ID \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F complete)",tests_passed:"true \u043F\u043E\u0441\u043B\u0435 \u0443\u0441\u043F\u0435\u0448\u043D\u043E\u0433\u043E \u0442\u0435\u0441\u0442\u043E\u0432\u043E\u0433\u043E \u0448\u043B\u044E\u0437\u0430 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F complete)",test_evidence:"\u041A\u043E\u043C\u0430\u043D\u0434\u0430 \u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u044B\u0439 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u043E\u0432 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F complete)",reason:"\u041F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0440\u0435\u0440\u044B\u0432\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u0430\u0443\u0434\u0438\u0442\u0430 (\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F abort)"},scratchpad:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: save <\u0442\u0435\u043A\u0441\u0442> / recall <mem::\u0430\u0434\u0440\u0435\u0441> / search <\u0437\u0430\u043F\u0440\u043E\u0441> / list / forget <mem::\u0430\u0434\u0440\u0435\u0441>"}}},vt="run",ir=[vt,"dev","check","docs","ship","setup","review","test","impact","commit","push","pr","deploy","adr","release","github","config","questions","e2e","map","learn","scratchpad","diagram","slide","design","metrics","plan"];var Bb={dev:{slugs:["common","dev"]},ship:{slugs:["common","commit","push","pr","check"]},review:{slugs:["common","review","check"]}};var ha=new Set(["dev","review","setup","test","impact","docs","check","deploy","adr","release","e2e","benchmark","map","learn","diagram","slide","design"]);function FC(e){return e in Bb||ha.has(e)}function Kb(e){if(Bb[e])return Bb[e].slugs;if(ha.has(e))return["common",e]}var ya=new Set(["config","questions","metrics","scratchpad","plan"]);function Jb(e="en"){let t=O.toolPrefix,n=ga[e]??ga.en,i=to[e]??to.en,r=to.en;return ir.map(o=>{let s=qC[o]??[];return{name:`${t}${o}`,description:n[o]??ga.en[o],...s.length>0?{arguments:s.map(a=>({name:a.name,description:i[o]?.[a.name]??r[o]?.[a.name]??a.name,required:a.required}))}:{}}})}function ZC(e,t="en"){return ga[t][e]??ga.en[e]??e}function GC(e="en"){let t=O.toolPrefix,n=to[e]??to.en,i=to.en;return Jb(e).map(r=>{let o=r.name.startsWith(t)?r.name.slice(t.length):r.name,s=qC[o]??[];return{name:r.name,description:r.description,inputSchema:{type:"object",properties:Object.fromEntries(s.map(a=>[a.name,{type:"string",description:n[o]?.[a.name]??i[o]?.[a.name]??a.name}])),required:s.filter(a=>a.required).map(a=>a.name)}}})}var sZ={selectDisplayLanguage:"Select display language:",selectMainLanguage:"Select the main language for your project:",selectSubLanguages:"Select sub-languages used in your team:",selectSubLanguagesHint:"(comma-separated numbers, or press Enter to skip)",skipSubLanguages:"No sub-languages selected.",scanningProject:"Scanning project...",detectedStack:"Detected stack:",confirmStack:"Is this correct?",manualStackEntry:"Please select your tech stack manually.",selectProjectType:"What are you building? (select all that apply)",projectTypes:{web:"Web App (frontend + backend)",api:"API / Backend only",mobile:"Mobile App",game:"Game",cli:"CLI / Library / Script",desktop:"Desktop App"},selectProgrammingLanguages:"Programming languages:",selectFrontend:"Frontend frameworks:",selectBackend:"Backend frameworks:",selectDatabase:"Databases:",selectOrm:"ORM:",selectInfra:"Infrastructure:",selectGame:"Game engines / frameworks:",selectMobile:"Mobile / Cross-platform:",selectOther:"Other technologies not listed above (comma-separated, or press Enter to skip):",toolRecommendationsTitle:"Recommended tools for your stack:",toolInstallMode:"How would you like to install?",toolInstallDefault:"Default (install all)",toolInstallCustom:"Custom (choose individually)",toolInstallSkip:"Skip (install later)",toolInstallPrompt:"Install?",toolInstalling:"Installing",toolInstallSuccess:"Installed successfully.",toolAlreadyInstalled:"Already installed (up to date). Skipped.",toolInstallFailed:"Installation failed. You can install it later via setup prompt.",toolSkippedInProject:"Already in package.json \u2014 skipped",toolGuidance:"Manual setup required \u2014 see message above",toolSummaryTitle:"Installation Summary",toolSummarySuccess:"Installed",toolSummaryAlready:"Already up to date",toolSummarySkipped:"In package.json",toolSummaryGuidance:"Manual setup",toolSummaryFailed:"Failed",toolRetryHint:"Retry",auditRunning:"Running security audit...",auditClean:"No vulnerabilities found",auditWarning:"Vulnerabilities detected",auditFixPrompt:"Run audit fix to resolve high/critical vulnerabilities?",auditFixSuccess:"Audit fix applied successfully",auditFixFailed:"Audit fix could not resolve all vulnerabilities \u2014 review manually",toolUniversalTag:"all projects",toolStackSpecificTag:"your stack",toolCategories:{vcs:"Version Control",browser_automation:"Browser Automation",e2e_testing:"E2E Testing",unit_testing:"Unit Testing",linting:"Linting",formatting:"Formatting",type_checking:"Type Checking",coverage:"Coverage",documentation:"Documentation",secret_scanning:"Secret Scanning",security_analysis:"Security Analysis",unused_code:"Unused Code Detection",dependency_analysis:"Dependency Analysis"},githubDetected:"GitHub repository detected.",githubConfigPrompt:"Enable auto-delete for merged branches?",githubConfigSkipped:"Skipped GitHub auto-delete configuration.",githubConfigSuccess:"\u2713 Merged branches will be auto-deleted on GitHub.",githubConfigFailed:"\u2717 Could not configure auto-delete. Run `gh repo edit --delete-branch-on-merge` manually.",configCreated:"Generated",configExists:"already exists",configOverwritten:"Overwritten",useForceFlag:"Use --force to overwrite.",languages:"Languages",frontend:"Frontend",backend:"Backend",database:"Database",orm:"ORM",infra:"Infra",game:"Game",mobile:"Mobile",other:"Other",pressEnterToClose:"Press Enter to close...",unknownCommand:"Unknown command",usage:"Usage:",installClientSuccess:"Registered with {client}!",installClientManual:"{client} CLI (`{cli}`) was not found on PATH. Run this command to register manually:",installClientManualNotSpawnable:"{client} CLI (`{cli}`) was found on PATH, but as a Windows .cmd/.bat shim that cannot be launched directly. Run this command to register manually:",installUpdated:"Configuration updated",installUnchanged:"Already up to date",licenseNotSet:"License key is not set. Set GODD_LICENSE_KEY environment variable or run: godd-a install --license-key=YOUR_KEY",restartClient:"Restart {client} to activate the MCP server.",installFailed:"Installation failed:",installGoddTkHookConfigured:"Configured the godd-tk automatic compression hook.",installGoddTkHookUnavailable:"godd-tk hook was not configured; MCP remains available without compression. Use `godd-tk exec -- <command>` manually.",detectedClients:"Detected MCP clients: {clients}",noClientDetected:"No supported MCP client was detected.",manualConfigHint:"Add the following snippet to your client's MCP server configuration:",unknownClient:"Unknown --client value. Available clients: {clients}.",uninstallTitle:"Uninstall",uninstallClientSuccess:"Removed from {client}",uninstallNotFound:"Not found (already removed)",uninstallManual:"The client CLI was not found on PATH. Run this command to remove the server manually:",uninstallManualNotSpawnable:"The client CLI was found on PATH, but as a Windows .cmd/.bat shim that cannot be launched directly. Run this command to remove the server manually:",uninstallFailed:"Uninstall failed:",uninstallAgentBrowserRemoved:"Removed the GoDD-registered agent-browser MCP entry",uninstallAgentBrowserKept:"Kept the agent-browser MCP entry: it does not match the GoDD-registered configuration (user-modified, self-registered, or registered by an older GoDD version). Remove it manually if it is no longer needed.",uninstallGoddTkHooksRemoved:"Removed godd-tk hook entries from hooks.json",commandsGenerated:"Native slash commands ({count} files): {dir}",commandsRemoved:"Removed {count} native slash command files ({dir})",commandsSkippedManual:"Native command files were not generated (client CLI unavailable). After registering manually, re-run `godd-a install` to generate the command files.",commandsUnsupported:'{client} does not support custom slash commands \u2014 no command files generated. "/godd-a/<tool>" text commands still work via the AGENTS.md dispatch rules.',commandsSessionStartNote:"{client} loads custom command files at session start \u2014 restart {client} to use the new commands.",commandsFailed:"Could not write or remove native command files for {client}.",commandsProtectedSkip:"Skipped to protect an existing user-created file: {path}",commandsPartialFailure:"{count} native command file(s) could not be written or removed for {client}.",initTitle:"Project initialization",initAutoHint:"Non-interactive mode (--auto): stack scan + config only; tool install wizard skipped. Use interactive init when you need guided tool setup.",yes:"Yes",no:"No",none:"None",invalidChoice:"Invalid choice. Please try again.",enterNumbers:"Enter numbers",updateAvailable:"A newer version is available:",updateCurrent:"current:",licenseMissing:"GODD_LICENSE_KEY environment variable is not set.",licenseMissingHint:"Re-register with: godd-a install --license-key=YOUR_KEY",licenseFailed:"License validation failed",configNotFound:"not found in project directory.",configNotFoundHint:'Run "godd-a init" to generate project configuration for better prompt accuracy.',configUnknownValues:"contains unknown values:",didYouMean:"did you mean",serverStarted:"started (stdio)",corruptMcpJson:"is corrupt. Backed up to {backup} and creating a fresh config.",licenseNotConfigured:"License key is not configured. Set GODD_LICENSE_KEY and restart Cursor.",resolvePromptFailed:"Failed to resolve prompt",resolveToolFailed:"Failed to resolve tool",localToolFailed:"Local tool execution failed",runUsage:'Usage: run { command: "/godd-a/<tool> <args>" } \u2014 accepted forms: /godd-a/<tool>, godd-a/<tool>, /godd-a:<tool>, /godd-a_<tool>, mcp__godd-a__<tool>, /<tool>. Example: "/godd-a/dev implement the login form"',runUnknownSlug:'Unknown GoDD tool "{slug}". Available tools: {slugs}',runRecursive:'"run" cannot dispatch to itself. Call the target tool directly. Available tools: {slugs}',helpInstall:"Register MCP server into detected clients (or --client=<id|all>)",helpInit:"Initialize project (interactive; use --auto for scan-only)",helpUninstall:"Remove MCP server from detected clients (or --client=<id|all>)",helpServe:"Start MCP stdio server (called by the client)",helpVersion:"Show installed version and check for updates",helpVersionFlag:"Print version number and exit",versionUpToDate:"Up to date",versionUpdateAvailable:"A newer version is available",versionChecking:"Checking for updates...",versionCheckFailed:"Could not check for updates",fatalError:"Fatal error",compositeMissingSlugs:"WARNING: The following sections could not be loaded",goddFilesTitle:"GoDD managed files configuration:",goddFilesDocsPrompt:"Documentation directory (press Enter for default: documents):",goddFilesGitattributesPrompt:"Auto-create .gitattributes on init if missing?",goddFilesDependabotPrompt:"Auto-create .github/dependabot.yml on init if missing?",goddFilesCreated:"GoDD-MCP-alpha.md generated."},aZ={selectDisplayLanguage:"\u8868\u793A\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectMainLanguage:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30A4\u30F3\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectSubLanguages:"\u30C1\u30FC\u30E0\u3067\u4F7F\u7528\u3059\u308B\u30B5\u30D6\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectSubLanguagesHint:"(\u30AB\u30F3\u30DE\u533A\u5207\u308A\u306E\u756A\u53F7\u3001\u307E\u305F\u306FEnter\u3067\u30B9\u30AD\u30C3\u30D7)",skipSubLanguages:"\u30B5\u30D6\u8A00\u8A9E\u306F\u9078\u629E\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002",scanningProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u30B9\u30AD\u30E3\u30F3\u4E2D...",detectedStack:"\u691C\u51FA\u3055\u308C\u305F\u30B9\u30BF\u30C3\u30AF:",confirmStack:"\u3053\u306E\u5185\u5BB9\u3067\u6B63\u3057\u3044\u3067\u3059\u304B\uFF1F",manualStackEntry:"\u6280\u8853\u30B9\u30BF\u30C3\u30AF\u3092\u624B\u52D5\u3067\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",selectProjectType:"\u4F55\u3092\u4F5C\u308A\u307E\u3059\u304B\uFF1F\uFF08\u8A72\u5F53\u3059\u308B\u3082\u306E\u3092\u3059\u3079\u3066\u9078\u629E\uFF09",projectTypes:{web:"Web \u30A2\u30D7\u30EA\uFF08\u30D5\u30ED\u30F3\u30C8 + \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\uFF09",api:"API / \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u306E\u307F",mobile:"\u30E2\u30D0\u30A4\u30EB\u30A2\u30D7\u30EA",game:"\u30B2\u30FC\u30E0",cli:"CLI / \u30E9\u30A4\u30D6\u30E9\u30EA / \u30B9\u30AF\u30EA\u30D7\u30C8",desktop:"\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u30A2\u30D7\u30EA"},selectProgrammingLanguages:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E:",selectFrontend:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectBackend:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectDatabase:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9:",selectOrm:"ORM:",selectInfra:"\u30A4\u30F3\u30D5\u30E9:",selectGame:"\u30B2\u30FC\u30E0\u30A8\u30F3\u30B8\u30F3 / \u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectMobile:"\u30E2\u30D0\u30A4\u30EB / \u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0:",selectOther:"\u4E0A\u8A18\u306B\u306A\u3044\u6280\u8853\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u5165\u529B\u3001\u30B9\u30AD\u30C3\u30D7\u306F Enter\uFF09:",toolRecommendationsTitle:"\u30B9\u30BF\u30C3\u30AF\u306B\u63A8\u5968\u3055\u308C\u308B\u30C4\u30FC\u30EB:",toolInstallMode:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u65B9\u6CD5\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",toolInstallDefault:"\u30C7\u30D5\u30A9\u30EB\u30C8\uFF08\u3059\u3079\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF09",toolInstallCustom:"\u30AB\u30B9\u30BF\u30E0\uFF08\u500B\u5225\u306B\u9078\u629E\uFF09",toolInstallSkip:"\u30B9\u30AD\u30C3\u30D7\uFF08\u5F8C\u3067\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF09",toolInstallPrompt:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\uFF1F",toolInstalling:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D",toolInstallSuccess:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002",toolAlreadyInstalled:"\u6700\u65B0\u7248\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u3067\u3059\u3002\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F\u3002",toolInstallFailed:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002setup \u30D7\u30ED\u30F3\u30D7\u30C8\u3067\u5F8C\u304B\u3089\u5BFE\u5FDC\u3067\u304D\u307E\u3059\u3002",toolSkippedInProject:"package.json \u306B\u5B9A\u7FA9\u6E08\u307F \u2014 \u30B9\u30AD\u30C3\u30D7",toolGuidance:"\u624B\u52D5\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u304C\u5FC5\u8981\u3067\u3059 \u2014 \u4E0A\u8A18\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044",toolSummaryTitle:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u7D50\u679C\u30B5\u30DE\u30EA\u30FC",toolSummarySuccess:"\u6210\u529F",toolSummaryAlready:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F",toolSummarySkipped:"package.json \u5B9A\u7FA9\u6E08\u307F",toolSummaryGuidance:"\u624B\u52D5\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7",toolSummaryFailed:"\u5931\u6557",toolRetryHint:"\u518D\u8A66\u884C",auditRunning:"\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u76E3\u67FB\u3092\u5B9F\u884C\u4E2D...",auditClean:"\u8106\u5F31\u6027\u306F\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F",auditWarning:"\u8106\u5F31\u6027\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F",auditFixPrompt:"audit fix \u3092\u5B9F\u884C\u3057\u3066 high/critical \u8106\u5F31\u6027\u3092\u4FEE\u6B63\u3057\u307E\u3059\u304B\uFF1F",auditFixSuccess:"audit fix \u304C\u6B63\u5E38\u306B\u9069\u7528\u3055\u308C\u307E\u3057\u305F",auditFixFailed:"audit fix \u3067\u3059\u3079\u3066\u306E\u8106\u5F31\u6027\u3092\u89E3\u6D88\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F \u2014 \u624B\u52D5\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044",toolUniversalTag:"\u5168\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5171\u901A",toolStackSpecificTag:"\u30B9\u30BF\u30C3\u30AF\u56FA\u6709",toolCategories:{vcs:"\u30D0\u30FC\u30B8\u30E7\u30F3\u7BA1\u7406",browser_automation:"\u30D6\u30E9\u30A6\u30B6\u81EA\u52D5\u5316",e2e_testing:"E2E \u30C6\u30B9\u30C8",unit_testing:"\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8",linting:"\u30EA\u30F3\u30BF\u30FC",formatting:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30BF\u30FC",type_checking:"\u578B\u30C1\u30A7\u30C3\u30AF",coverage:"\u30AB\u30D0\u30EC\u30C3\u30B8",documentation:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u751F\u6210",secret_scanning:"\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30B9\u30AD\u30E3\u30F3",security_analysis:"\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u5206\u6790",unused_code:"\u672A\u4F7F\u7528\u30B3\u30FC\u30C9\u691C\u51FA",dependency_analysis:"\u4F9D\u5B58\u5206\u6790"},githubDetected:"GitHub \u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002",githubConfigPrompt:"\u30DE\u30FC\u30B8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u306E\u81EA\u52D5\u524A\u9664\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u304B\uFF1F",githubConfigSkipped:"GitHub \u81EA\u52D5\u524A\u9664\u306E\u8A2D\u5B9A\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F\u3002",githubConfigSuccess:"\u2713 \u30DE\u30FC\u30B8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u306F GitHub \u4E0A\u3067\u81EA\u52D5\u524A\u9664\u3055\u308C\u307E\u3059\u3002",githubConfigFailed:"\u2717 \u81EA\u52D5\u524A\u9664\u306E\u8A2D\u5B9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u624B\u52D5\u3067 `gh repo edit --delete-branch-on-merge` \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",configCreated:"\u3092\u751F\u6210\u3057\u307E\u3057\u305F",configExists:"\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059",configOverwritten:"\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3057\u305F",useForceFlag:"\u4E0A\u66F8\u304D\u3059\u308B\u5834\u5408\u306F --force \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",languages:"\u8A00\u8A9E",frontend:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9",backend:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9",database:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9",orm:"ORM",infra:"\u30A4\u30F3\u30D5\u30E9",game:"\u30B2\u30FC\u30E0",mobile:"\u30E2\u30D0\u30A4\u30EB",other:"\u305D\u306E\u4ED6",pressEnterToClose:"Enter \u30AD\u30FC\u3092\u62BC\u3059\u3068\u9589\u3058\u307E\u3059...",unknownCommand:"\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9",usage:"\u4F7F\u3044\u65B9:",installClientSuccess:"{client} \u306B\u767B\u9332\u3057\u307E\u3057\u305F\uFF01",installClientManual:"{client} CLI\uFF08`{cli}`\uFF09\u304C PATH \u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u624B\u52D5\u3067\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044:",installClientManualNotSpawnable:"{client} CLI\uFF08`{cli}`\uFF09\u306F PATH \u4E0A\u3067\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u304C\u3001Windows \u306E .cmd/.bat \u30B7\u30E3\u30E0\u306E\u305F\u3081\u76F4\u63A5\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3002\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u624B\u52D5\u3067\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044:",installUpdated:"\u8A2D\u5B9A\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F",installUnchanged:"\u65E2\u306B\u6700\u65B0\u306E\u8A2D\u5B9A\u3067\u3059",licenseNotSet:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u304C\u672A\u8A2D\u5B9A\u3067\u3059\u3002\u74B0\u5883\u5909\u6570 GODD_LICENSE_KEY \u3092\u8A2D\u5B9A\u3059\u308B\u304B\u3001godd-a install --license-key=YOUR_KEY \u3067\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002",restartClient:"{client} \u3092\u518D\u8D77\u52D5\u3059\u308B\u3068 MCP \u30B5\u30FC\u30D0\u30FC\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002",installFailed:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",installGoddTkHookConfigured:"godd-tk \u81EA\u52D5\u5727\u7E2E\u30D5\u30C3\u30AF\u3092\u8A2D\u5B9A\u3057\u307E\u3057\u305F\u3002",installGoddTkHookUnavailable:"godd-tk \u30D5\u30C3\u30AF\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002MCP \u306F\u5727\u7E2E\u306A\u3057\u3067\u5229\u7528\u3067\u304D\u307E\u3059\u3002\u5FC5\u8981\u306B\u5FDC\u3058\u3066 `godd-tk exec -- <command>` \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",detectedClients:"\u691C\u51FA\u3055\u308C\u305F MCP \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8: {clients}",noClientDetected:"\u5BFE\u5FDC\u3059\u308B MCP \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002",manualConfigHint:"\u4EE5\u4E0B\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306E MCP \u30B5\u30FC\u30D0\u30FC\u8A2D\u5B9A\u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044:",unknownClient:"--client \u306E\u5024\u304C\u4E0D\u6B63\u3067\u3059\u3002\u6307\u5B9A\u53EF\u80FD\u306A\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8: {clients}",uninstallTitle:"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",uninstallClientSuccess:"{client} \u304B\u3089\u524A\u9664\u3057\u307E\u3057\u305F",uninstallNotFound:"\u767B\u9332\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u65E2\u306B\u524A\u9664\u6E08\u307F\uFF09",uninstallManual:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 CLI \u304C PATH \u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u624B\u52D5\u3067\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044:",uninstallManualNotSpawnable:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 CLI \u306F PATH \u4E0A\u3067\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u304C\u3001Windows \u306E .cmd/.bat \u30B7\u30E3\u30E0\u306E\u305F\u3081\u76F4\u63A5\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3002\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u624B\u52D5\u3067\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044:",uninstallFailed:"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",uninstallAgentBrowserRemoved:"GoDD \u304C\u767B\u9332\u3057\u305F agent-browser MCP \u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664\u3057\u307E\u3057\u305F",uninstallAgentBrowserKept:"agent-browser MCP \u30A8\u30F3\u30C8\u30EA\u3092\u4FDD\u6301\u3057\u307E\u3057\u305F: GoDD \u304C\u767B\u9332\u3059\u308B\u8A2D\u5B9A\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u30E6\u30FC\u30B6\u30FC\u306B\u3088\u308B\u5909\u66F4\u30FB\u72EC\u81EA\u767B\u9332\u30FB\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u306E GoDD \u306B\u3088\u308B\u767B\u9332\u306E\u53EF\u80FD\u6027\uFF09\u3002\u4E0D\u8981\u306A\u5834\u5408\u306F\u624B\u52D5\u3067\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002",uninstallGoddTkHooksRemoved:"hooks.json \u304B\u3089 godd-tk \u30D5\u30C3\u30AF\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664\u3057\u307E\u3057\u305F",commandsGenerated:"\u30CD\u30A4\u30C6\u30A3\u30D6\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9\uFF08{count} \u4EF6\uFF09: {dir}",commandsRemoved:"\u30CD\u30A4\u30C6\u30A3\u30D6\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9 {count} \u4EF6\u3092\u524A\u9664\u3057\u307E\u3057\u305F\uFF08{dir}\uFF09",commandsSkippedManual:"\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 CLI \u304C\u5229\u7528\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u30CD\u30A4\u30C6\u30A3\u30D6\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u624B\u52D5\u767B\u9332\u5F8C\u306B `godd-a install` \u3092\u518D\u5B9F\u884C\u3059\u308B\u3068\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB\u304C\u751F\u6210\u3055\u308C\u307E\u3059\u3002",commandsUnsupported:"{client} \u306F\u30AB\u30B9\u30BF\u30E0\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3002\u300C/godd-a/<tool>\u300D\u30C6\u30AD\u30B9\u30C8\u306F AGENTS.md \u306E\u30C7\u30A3\u30B9\u30D1\u30C3\u30C1\u898F\u5247\u7D4C\u7531\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002",commandsSessionStartNote:"{client} \u306F\u30BB\u30C3\u30B7\u30E7\u30F3\u958B\u59CB\u6642\u306B\u30AB\u30B9\u30BF\u30E0\u30B3\u30DE\u30F3\u30C9\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059\u3002\u65B0\u3057\u3044\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u3046\u306B\u306F {client} \u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",commandsFailed:"{client} \u306E\u30CD\u30A4\u30C6\u30A3\u30D6\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u307F/\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",commandsProtectedSkip:"\u65E2\u5B58\u306E\u30E6\u30FC\u30B6\u30FC\u4F5C\u6210\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u8B77\u3059\u308B\u305F\u3081\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F: {path}",commandsPartialFailure:"{client} \u306E\u30CD\u30A4\u30C6\u30A3\u30D6\u30B3\u30DE\u30F3\u30C9\u30D5\u30A1\u30A4\u30EB {count} \u4EF6\u3092\u66F8\u304D\u8FBC\u307F/\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",initTitle:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u521D\u671F\u5316",initAutoHint:"\u975E\u5BFE\u8A71\u30E2\u30FC\u30C9\uFF08--auto\uFF09: \u30B9\u30BF\u30C3\u30AF\u81EA\u52D5\u691C\u51FA\u3068 config.godd \u306E\u307F\u3002\u30C4\u30FC\u30EB\u5C0E\u5165\u30A6\u30A3\u30B6\u30FC\u30C9\u306F\u7701\u7565\u3055\u308C\u307E\u3059\u3002\u624B\u52D5\u3067\u30C4\u30FC\u30EB\u3092\u9078\u3073\u305F\u3044\u5834\u5408\u306F\u5BFE\u8A71\u5F0F init \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002",yes:"\u306F\u3044",no:"\u3044\u3044\u3048",none:"\u306A\u3057",invalidChoice:"\u7121\u52B9\u306A\u9078\u629E\u3067\u3059\u3002\u3082\u3046\u4E00\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",enterNumbers:"\u756A\u53F7\u3092\u5165\u529B",updateAvailable:"\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:",updateCurrent:"\u73FE\u5728:",licenseMissing:"GODD_LICENSE_KEY \u74B0\u5883\u5909\u6570\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",licenseMissingHint:"godd-a install --license-key=YOUR_KEY \u3067\u518D\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002",licenseFailed:"\u30E9\u30A4\u30BB\u30F3\u30B9\u691C\u8A3C\u5931\u6557",configNotFound:"\u304C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002",configNotFoundHint:"\u300Cgodd-a init\u300D\u3092\u5B9F\u884C\u3057\u3066\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A2D\u5B9A\u3092\u751F\u6210\u3059\u308B\u3068\u3001\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u7CBE\u5EA6\u304C\u5411\u4E0A\u3057\u307E\u3059\u3002",configUnknownValues:"\u306B\u4E0D\u660E\u306A\u5024\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059:",didYouMean:"\u3082\u3057\u304B\u3057\u3066",serverStarted:"\u3092\u8D77\u52D5\u3057\u307E\u3057\u305F (stdio)",corruptMcpJson:"\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002{backup} \u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u4F5C\u6210\u3057\u3001\u65B0\u898F\u8A2D\u5B9A\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002",licenseNotConfigured:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002GODD_LICENSE_KEY \u3092\u8A2D\u5B9A\u3057\u3066 Cursor \u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",resolvePromptFailed:"\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",resolveToolFailed:"\u30C4\u30FC\u30EB\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",localToolFailed:"\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F",runUsage:'\u4F7F\u3044\u65B9: run { command: "/godd-a/<tool> <args>" } \u2014 \u53D7\u3051\u4ED8\u3051\u5F62\u5F0F: /godd-a/<tool>, godd-a/<tool>, /godd-a:<tool>, /godd-a_<tool>, mcp__godd-a__<tool>, /<tool>\u3002\u4F8B: "/godd-a/dev \u30ED\u30B0\u30A4\u30F3\u30D5\u30A9\u30FC\u30E0\u3092\u5B9F\u88C5"',runUnknownSlug:'\u4E0D\u660E\u306A GoDD \u30C4\u30FC\u30EB "{slug}" \u3067\u3059\u3002\u5229\u7528\u53EF\u80FD\u306A\u30C4\u30FC\u30EB: {slugs}',runRecursive:'"run" \u306F\u81EA\u5206\u81EA\u8EAB\u3092\u30C7\u30A3\u30B9\u30D1\u30C3\u30C1\u3067\u304D\u307E\u305B\u3093\u3002\u5BFE\u8C61\u30C4\u30FC\u30EB\u3092\u76F4\u63A5\u547C\u3073\u51FA\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u5229\u7528\u53EF\u80FD\u306A\u30C4\u30FC\u30EB: {slugs}',helpInstall:"MCP \u30B5\u30FC\u30D0\u30FC\u3092\u691C\u51FA\u3055\u308C\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306B\u767B\u9332\uFF08--client=<id|all> \u3067\u6307\u5B9A\u53EF\uFF09",helpInit:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u521D\u671F\u5316\uFF08\u5BFE\u8A71\u5F0F\uFF0F--auto \u3067\u30B9\u30AD\u30E3\u30F3\u306E\u307F\uFF09",helpUninstall:"MCP \u30B5\u30FC\u30D0\u30FC\u3092\u691C\u51FA\u3055\u308C\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304B\u3089\u524A\u9664\uFF08--client=<id|all> \u3067\u6307\u5B9A\u53EF\uFF09",helpServe:"MCP stdio \u30B5\u30FC\u30D0\u30FC\u3092\u8D77\u52D5\uFF08\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304C\u547C\u3073\u51FA\u3057\uFF09",helpVersion:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u8868\u793A\u3057\u6700\u65B0\u7248\u3092\u78BA\u8A8D",helpVersionFlag:"\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u8868\u793A\u3057\u3066\u7D42\u4E86",versionUpToDate:"\u6700\u65B0\u7248\u3067\u3059",versionUpdateAvailable:"\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059",versionChecking:"\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D...",versionCheckFailed:"\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u78BA\u8A8D\u306B\u5931\u6557\u3057\u307E\u3057\u305F",fatalError:"\u81F4\u547D\u7684\u306A\u30A8\u30E9\u30FC",compositeMissingSlugs:"\u8B66\u544A: \u4EE5\u4E0B\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F",goddFilesTitle:"GoDD \u7BA1\u7406\u30D5\u30A1\u30A4\u30EB\u306E\u8A2D\u5B9A:",goddFilesDocsPrompt:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u4FDD\u5B58\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF08Enter \u3067\u30C7\u30D5\u30A9\u30EB\u30C8: documents\uFF09:",goddFilesGitattributesPrompt:"init \u6642\u306B .gitattributes \u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u81EA\u52D5\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F",goddFilesDependabotPrompt:"init \u6642\u306B .github/dependabot.yml \u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u81EA\u52D5\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F",goddFilesCreated:"GoDD-MCP-alpha.md \u3092\u751F\u6210\u3057\u307E\u3057\u305F\u3002"},cZ={selectDisplayLanguage:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044F\u0437\u044B\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F:",selectMainLanguage:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u044F\u0437\u044B\u043A \u043F\u0440\u043E\u0435\u043A\u0442\u0430:",selectSubLanguages:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B:",selectSubLanguagesHint:"(\u043D\u043E\u043C\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E \u0438\u043B\u0438 Enter \u0434\u043B\u044F \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u0430)",skipSubLanguages:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u044B.",scanningProject:"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u0430...",detectedStack:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0439 \u0441\u0442\u0435\u043A:",confirmStack:"\u0412\u0441\u0451 \u0432\u0435\u0440\u043D\u043E?",manualStackEntry:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0441\u0442\u0435\u043A \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",selectProjectType:"\u0427\u0442\u043E \u0432\u044B \u0441\u043E\u0437\u0434\u0430\u0451\u0442\u0435? (\u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0441\u0435 \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0438\u0435)",projectTypes:{web:"\u0412\u0435\u0431-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 (\u0444\u0440\u043E\u043D\u0442\u0435\u043D\u0434 + \u0431\u044D\u043A\u0435\u043D\u0434)",api:"API / \u0442\u043E\u043B\u044C\u043A\u043E \u0431\u044D\u043A\u0435\u043D\u0434",mobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435",game:"\u0418\u0433\u0440\u0430",cli:"CLI / \u0411\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430 / \u0421\u043A\u0440\u0438\u043F\u0442",desktop:"\u0414\u0435\u0441\u043A\u0442\u043E\u043F\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435"},selectProgrammingLanguages:"\u042F\u0437\u044B\u043A\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F:",selectFrontend:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectBackend:"\u0411\u044D\u043A\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectDatabase:"\u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445:",selectOrm:"ORM:",selectInfra:"\u0418\u043D\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430:",selectGame:"\u0418\u0433\u0440\u043E\u0432\u044B\u0435 \u0434\u0432\u0438\u0436\u043A\u0438 / \u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectMobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435 / \u043A\u0440\u043E\u0441\u0441\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435\u043D\u043D\u044B\u0435:",selectOther:"\u0422\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0438, \u043D\u0435 \u0432\u043E\u0448\u0435\u0434\u0448\u0438\u0435 \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u0432\u044B\u0448\u0435 (\u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E, \u0438\u043B\u0438 Enter \u0434\u043B\u044F \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u0430):",toolRecommendationsTitle:"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u0434\u043B\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0435\u043A\u0430:",toolInstallMode:"\u041A\u0430\u043A \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?",toolInstallDefault:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E (\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435)",toolInstallCustom:"\u0412\u044B\u0431\u043E\u0440\u043E\u0447\u043D\u043E (\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u043E \u043E\u0434\u043D\u043E\u043C\u0443)",toolInstallSkip:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C (\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435)",toolInstallPrompt:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?",toolInstalling:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430",toolInstallSuccess:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0443\u0441\u043F\u0435\u0448\u043D\u043E.",toolAlreadyInstalled:"\u0423\u0436\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0432\u0435\u0440\u0441\u0438\u044F. \u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E.",toolInstallFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C. \u041C\u043E\u0436\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 setup.",toolSkippedInProject:"\u0423\u0436\u0435 \u0432 package.json \u2014 \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E",toolGuidance:"\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0440\u0443\u0447\u043D\u0430\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u2014 \u0441\u043C. \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432\u044B\u0448\u0435",toolSummaryTitle:"\u0418\u0442\u043E\u0433\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438",toolSummarySuccess:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",toolSummaryAlready:"\u0423\u0436\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E",toolSummarySkipped:"\u0412 package.json",toolSummaryGuidance:"\u0420\u0443\u0447\u043D\u0430\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430",toolSummaryFailed:"\u041E\u0448\u0438\u0431\u043A\u0430",toolRetryHint:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",auditRunning:"\u0417\u0430\u043F\u0443\u0441\u043A \u0430\u0443\u0434\u0438\u0442\u0430 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438...",auditClean:"\u0423\u044F\u0437\u0432\u0438\u043C\u043E\u0441\u0442\u0438 \u043D\u0435 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u044B",auditWarning:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u044B \u0443\u044F\u0437\u0432\u0438\u043C\u043E\u0441\u0442\u0438",auditFixPrompt:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C audit fix \u0434\u043B\u044F \u0443\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0432\u044B\u0441\u043E\u043A\u0438\u0445/\u043A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0443\u044F\u0437\u0432\u0438\u043C\u043E\u0441\u0442\u0435\u0439?",auditFixSuccess:"audit fix \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043F\u0440\u0438\u043C\u0435\u043D\u0451\u043D",auditFixFailed:"audit fix \u043D\u0435 \u0441\u043C\u043E\u0433 \u0443\u0441\u0442\u0440\u0430\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0443\u044F\u0437\u0432\u0438\u043C\u043E\u0441\u0442\u0438 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0432\u0440\u0443\u0447\u043D\u0443\u044E",toolUniversalTag:"\u0432\u0441\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u044B",toolStackSpecificTag:"\u0434\u043B\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0435\u043A\u0430",toolCategories:{vcs:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u0432\u0435\u0440\u0441\u0438\u0439",browser_automation:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430",e2e_testing:"E2E \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",unit_testing:"\u042E\u043D\u0438\u0442-\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",linting:"\u041B\u0438\u043D\u0442\u0438\u043D\u0433",formatting:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",type_checking:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0442\u0438\u043F\u043E\u0432",coverage:"\u041F\u043E\u043A\u0440\u044B\u0442\u0438\u0435 \u043A\u043E\u0434\u0430",documentation:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",secret_scanning:"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441\u0435\u043A\u0440\u0435\u0442\u043E\u0432",security_analysis:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438",unused_code:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u043D\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E \u043A\u043E\u0434\u0430",dependency_analysis:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439"},githubDetected:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0451\u043D GitHub-\u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439.",githubConfigPrompt:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0445 \u0432\u0435\u0442\u043E\u043A?",githubConfigSkipped:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u0430.",githubConfigSuccess:"\u2713 \u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0435 \u0432\u0435\u0442\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C\u0441\u044F \u043D\u0430 GitHub.",githubConfigFailed:"\u2717 \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435. \u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 `gh repo edit --delete-branch-on-merge` \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",configCreated:"\u0421\u043E\u0437\u0434\u0430\u043D",configExists:"\u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442",configOverwritten:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u043D",useForceFlag:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 --force \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0438.",languages:"\u042F\u0437\u044B\u043A\u0438",frontend:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434",backend:"\u0411\u044D\u043A\u0435\u043D\u0434",database:"\u0411\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u044B\u0445",orm:"ORM",infra:"\u0418\u043D\u0444\u0440\u0430",game:"\u0418\u0433\u0440\u044B",mobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435",other:"\u041F\u0440\u043E\u0447\u0435\u0435",pressEnterToClose:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 Enter \u0434\u043B\u044F \u0432\u044B\u0445\u043E\u0434\u0430...",unknownCommand:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430",usage:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435:",installClientSuccess:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 {client}!",installClientManual:"CLI {client} (`{cli}`) \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 PATH. \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u044D\u0442\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u0443\u0447\u043D\u0443\u044E:",installClientManualNotSpawnable:"CLI {client} (`{cli}`) \u043D\u0430\u0439\u0434\u0435\u043D \u0432 PATH, \u043D\u043E \u044D\u0442\u043E Windows-\u043E\u0431\u0451\u0440\u0442\u043A\u0430 .cmd/.bat, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043D\u0435\u043B\u044C\u0437\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E. \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u044D\u0442\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u0443\u0447\u043D\u0443\u044E:",installUpdated:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430",installUnchanged:"\u0423\u0436\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E",licenseNotSet:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043D\u0435 \u0437\u0430\u0434\u0430\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 GODD_LICENSE_KEY \u0438\u043B\u0438 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435: godd-a install --license-key=YOUR_KEY",restartClient:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 {client} \u0434\u043B\u044F \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.",installFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438:",installGoddTkHookConfigured:"\u041D\u0430\u0441\u0442\u0440\u043E\u0435\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0445\u0443\u043A \u0441\u0436\u0430\u0442\u0438\u044F godd-tk.",installGoddTkHookUnavailable:"\u0425\u0443\u043A godd-tk \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D; MCP \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0431\u0435\u0437 \u0441\u0436\u0430\u0442\u0438\u044F. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 `godd-tk exec -- <command>` \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",detectedClients:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 MCP-\u043A\u043B\u0438\u0435\u043D\u0442\u044B: {clients}",noClientDetected:"\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0439 MCP-\u043A\u043B\u0438\u0435\u043D\u0442 \u043D\u0435 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D.",manualConfigHint:"\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u043E\u0432 \u0432\u0430\u0448\u0435\u0433\u043E \u043A\u043B\u0438\u0435\u043D\u0442\u0430:",unknownClient:"\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 --client. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043A\u043B\u0438\u0435\u043D\u0442\u044B: {clients}.",uninstallTitle:"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435",uninstallClientSuccess:"\u0423\u0434\u0430\u043B\u0435\u043D\u043E \u0438\u0437 {client}",uninstallNotFound:"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E (\u0443\u0436\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E)",uninstallManual:"CLI \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 PATH. \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u044D\u0442\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0440\u0443\u0447\u043D\u043E\u0433\u043E \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0441\u0435\u0440\u0432\u0435\u0440\u0430:",uninstallManualNotSpawnable:"CLI \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 PATH, \u043D\u043E \u044D\u0442\u043E Windows-\u043E\u0431\u0451\u0440\u0442\u043A\u0430 .cmd/.bat, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043D\u0435\u043B\u044C\u0437\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E. \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u044D\u0442\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0440\u0443\u0447\u043D\u043E\u0433\u043E \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0441\u0435\u0440\u0432\u0435\u0440\u0430:",uninstallFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F:",uninstallAgentBrowserRemoved:"\u0423\u0434\u0430\u043B\u0435\u043D\u0430 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F GoDD \u0437\u0430\u043F\u0438\u0441\u044C agent-browser MCP",uninstallAgentBrowserKept:"\u0417\u0430\u043F\u0438\u0441\u044C agent-browser MCP \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430: \u043D\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043C\u043E\u0439 GoDD (\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u0441\u0430\u043C\u043E\u0441\u0442\u043E\u044F\u0442\u0435\u043B\u044C\u043D\u043E \u0438\u043B\u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u0441\u0442\u0430\u0440\u043E\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 GoDD). \u0423\u0434\u0430\u043B\u0438\u0442\u0435 \u0432\u0440\u0443\u0447\u043D\u0443\u044E, \u0435\u0441\u043B\u0438 \u043E\u043D\u0430 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430.",uninstallGoddTkHooksRemoved:"\u0425\u0443\u043A\u0438 godd-tk \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0438\u0437 hooks.json",commandsGenerated:"\u041D\u0430\u0442\u0438\u0432\u043D\u044B\u0435 slash-\u043A\u043E\u043C\u0430\u043D\u0434\u044B ({count} \u0444\u0430\u0439\u043B\u043E\u0432): {dir}",commandsRemoved:"\u0423\u0434\u0430\u043B\u0435\u043D\u043E \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0445 slash-\u043A\u043E\u043C\u0430\u043D\u0434: {count} ({dir})",commandsSkippedManual:"\u0424\u0430\u0439\u043B\u044B \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0445 \u043A\u043E\u043C\u0430\u043D\u0434 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u044B (CLI \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D). \u041F\u043E\u0441\u043B\u0435 \u0440\u0443\u0447\u043D\u043E\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 `godd-a install`, \u0447\u0442\u043E\u0431\u044B \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A\u043E\u043C\u0430\u043D\u0434.",commandsUnsupported:'{client} \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 slash-\u043A\u043E\u043C\u0430\u043D\u0434\u044B \u2014 \u0444\u0430\u0439\u043B\u044B \u043A\u043E\u043C\u0430\u043D\u0434 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u044B. \u0422\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B "/godd-a/<tool>" \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u0447\u0435\u0440\u0435\u0437 \u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u0434\u0438\u0441\u043F\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 AGENTS.md.',commandsSessionStartNote:"{client} \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u2014 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 {client}, \u0447\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B.",commandsFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0445 \u043A\u043E\u043C\u0430\u043D\u0434 \u0434\u043B\u044F {client}.",commandsProtectedSkip:"\u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u0449\u0438\u0442\u044B \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430: {path}",commandsPartialFailure:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0445 \u043A\u043E\u043C\u0430\u043D\u0434: {count} ({client}).",initTitle:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430",initAutoHint:"\u041D\u0435\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C (--auto): \u0442\u043E\u043B\u044C\u043A\u043E \u0430\u0432\u0442\u043E\u0441\u043A\u0430\u043D \u0441\u0442\u0435\u043A\u0430 \u0438 config; \u043C\u0430\u0441\u0442\u0435\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D. \u0414\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 init.",yes:"\u0414\u0430",no:"\u041D\u0435\u0442",none:"\u041D\u0435\u0442",invalidChoice:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u044B\u0431\u043E\u0440. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.",enterNumbers:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u043C\u0435\u0440\u0430",updateAvailable:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F:",updateCurrent:"\u0442\u0435\u043A\u0443\u0449\u0430\u044F:",licenseMissing:"\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0441\u0440\u0435\u0434\u044B GODD_LICENSE_KEY \u043D\u0435 \u0437\u0430\u0434\u0430\u043D\u0430.",licenseMissingHint:"\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0439\u0442\u0435: godd-a install --license-key=YOUR_KEY",licenseFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",configNotFound:"\u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430.",configNotFoundHint:'\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 "godd-a init" \u0434\u043B\u044F \u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430.',configUnknownValues:"\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F:",didYouMean:"\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443",serverStarted:"\u0437\u0430\u043F\u0443\u0449\u0435\u043D (stdio)",corruptMcpJson:"\u043F\u043E\u0432\u0440\u0435\u0436\u0434\u0451\u043D. \u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F: {backup}. \u0421\u043E\u0437\u0434\u0430\u0451\u0442\u0441\u044F \u043D\u043E\u0432\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F.",licenseNotConfigured:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 GODD_LICENSE_KEY \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Cursor.",resolvePromptFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043F\u0440\u043E\u043C\u043F\u0442",resolveToolFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442",localToolFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430",runUsage:'\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: run { command: "/godd-a/<tool> <args>" } \u2014 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0444\u043E\u0440\u043C\u044B: /godd-a/<tool>, godd-a/<tool>, /godd-a:<tool>, /godd-a_<tool>, mcp__godd-a__<tool>, /<tool>. \u041F\u0440\u0438\u043C\u0435\u0440: "/godd-a/dev \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0444\u043E\u0440\u043C\u0443 \u0432\u0445\u043E\u0434\u0430"',runUnknownSlug:'\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 GoDD "{slug}". \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: {slugs}',runRecursive:'"run" \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u0430\u043C \u0441\u0435\u0431\u044F. \u0412\u044B\u0437\u043E\u0432\u0438\u0442\u0435 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: {slugs}',helpInstall:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C MCP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0432 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0445 \u043A\u043B\u0438\u0435\u043D\u0442\u0430\u0445 (\u0438\u043B\u0438 --client=<id|all>)",helpInit:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442 (\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u043E; --auto \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435)",helpUninstall:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C MCP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0437 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0445 \u043A\u043B\u0438\u0435\u043D\u0442\u043E\u0432 (\u0438\u043B\u0438 --client=<id|all>)",helpServe:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C MCP stdio-\u0441\u0435\u0440\u0432\u0435\u0440 (\u0432\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043A\u043B\u0438\u0435\u043D\u0442\u043E\u043C)",helpVersion:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0443\u044E \u0432\u0435\u0440\u0441\u0438\u044E \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F",helpVersionFlag:"\u0412\u044B\u0432\u0435\u0441\u0442\u0438 \u043D\u043E\u043C\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C",versionUpToDate:"\u0410\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F",versionUpdateAvailable:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F",versionChecking:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0439...",versionCheckFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F",fatalError:"\u041A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430",compositeMissingSlugs:"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",goddFilesTitle:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 GoDD:",goddFilesDocsPrompt:"\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0434\u043B\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438 (Enter \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: documents):",goddFilesGitattributesPrompt:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C .gitattributes \u043F\u0440\u0438 init, \u0435\u0441\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442?",goddFilesDependabotPrompt:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C .github/dependabot.yml \u043F\u0440\u0438 init, \u0435\u0441\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442?",goddFilesCreated:"GoDD-MCP-alpha.md \u0441\u043E\u0437\u0434\u0430\u043D."},VC={en:sZ,ja:aZ,ru:cZ};function Se(e){return VC[e]??VC.en}var Hb={en:"English",ja:"\u65E5\u672C\u8A9E",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"};var lZ=I.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),uZ=I.url().max(2048).refine(e=>{let t=new URL(e);return t.protocol==="https:"&&t.username===""&&t.password===""&&t.port===""&&t.search===""&&t.hash===""&&(t.hostname==="github.com"&&/\/pull\/\d+$/.test(t.pathname)||t.hostname==="gitlab.com"&&/\/-\/merge_requests\/\d+$/.test(t.pathname))},"open_pr_urls must contain GitHub pull or GitLab merge request URLs"),BC=I.object({plan_id:I.string().max(200).refine(e=>e.trim().length>0,"plan_id must not be blank").refine(e=>!/[\u0000-\u001f\u007f-\u009f]/.test(e),"plan_id must not contain control characters"),planned_pr_count:lZ,open_pr_urls:I.array(uZ).max(20),test_evidence_complete:I.boolean(),test_commands:I.array(I.object({command:I.string().max(500).refine(e=>e.trim().length>0,"command must not be blank"),exit_code:I.number().int().min(Number.MIN_SAFE_INTEGER).max(Number.MAX_SAFE_INTEGER)}).strict()).max(100)}).strict();function KC(e){let t;try{t=JSON.parse(e)}catch{throw new Error("gate_evidence must be valid JSON")}let n=BC.safeParse(t);if(!n.success)throw new Error(`Invalid gate_evidence: ${n.error.issues.map(i=>i.message).join("; ")}`);return n.data}function JC(e){let t=BC.parse(e),n="allow = planned_pr_count == 1 && open_pr_count <= 1 && test_evidence_complete && test_count > 0 && failed_test_count == 0",i=t.test_commands.filter(o=>o.exit_code!==0).length,r={plan_id:t.plan_id,planned_pr_count:t.planned_pr_count,open_pr_count:t.open_pr_urls.length,test_evidence_complete:t.test_evidence_complete,test_count:t.test_commands.length,failed_test_count:i};return t.planned_pr_count!==1||t.open_pr_urls.length>1?{verdict:"FAIL",reason:"ONE_PR_CONSTRAINT_FAILED",formula:n,measurements:r}:i>0?{verdict:"FAIL",reason:"TEST_GATE_FAILED",formula:n,measurements:r}:!t.test_evidence_complete||t.test_commands.length===0?{verdict:"INCONCLUSIVE",reason:"TEST_EVIDENCE_INCOMPLETE",formula:n,measurements:r}:{verdict:"PASS",reason:"COMMIT_GATE_SATISFIED",formula:n,measurements:r}}function HC(e,t){let[n,i]=t==="ja"?["\u30B3\u30DF\u30C3\u30C8\u524D\u30B2\u30FC\u30C8","\u5224\u5B9A"]:t==="ru"?["\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u043E\u043C\u043C\u0438\u0442\u0430","\u0412\u0435\u0440\u0434\u0438\u043A\u0442"]:["Commit Preflight Gate","Verdict"],r=Object.entries(e.measurements).map(([o,s])=>`${o}=${s}`).join(", ");return[`## ${n}`,`${i}: ${e.verdict}`,`- ${e.reason} | ${e.formula} | ${r}`].join(`
218
218
  `)}var Lr=require("node:fs"),lz=require("node:path"),uz=Fr(gd(),1);var $e=require("node:fs"),Be=require("node:path"),tz=require("node:readline"),so=require("node:child_process");var w=e=>({win32:e,darwin:e,linux:e}),k=(e,...t)=>t.some(n=>e.programming_languages.includes(n)),Dr=(e,...t)=>t.some(n=>e.mobile.includes(n)),dZ=[{category:"vcs",tool:"gh",installCmd:{win32:"winget install GitHub.cli",darwin:"brew install gh",linux:'(type -p wget >/dev/null || sudo apt-get install wget -y) && sudo mkdir -p -m 755 /etc/apt/keyrings && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && sudo apt-get update && sudo apt-get install gh -y'},universal:!0,condition:()=>!0},{category:"browser_automation",tool:"agent-browser",installCmd:w("echo agent-browser MCP is auto-registered by godd-a install \u2014 no additional setup needed"),universal:!0,condition:()=>!0},{category:"secret_scanning",tool:"gitleaks",installCmd:{win32:"winget install Gitleaks.Gitleaks",darwin:"brew install gitleaks",linux:"go install github.com/gitleaks/gitleaks/v8@latest"},universal:!0,condition:()=>!0},{category:"e2e_testing",tool:"playwright",installCmd:w("npm i -D @playwright/test@latest && npx playwright install"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"unit_testing",tool:"vitest",installCmd:w("npm i -D vitest@latest"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"linting",tool:"biome",installCmd:w("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"formatting",tool:"biome",installCmd:w("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"type_checking",tool:"typescript",installCmd:w("npm i -D typescript@latest"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"coverage",tool:"@vitest/coverage-v8",installCmd:w("npm i -D @vitest/coverage-v8@latest"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"unused_code",tool:"knip",installCmd:w("npm i -D knip@latest"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"dependency_analysis",tool:"dependency-cruiser",installCmd:w("npm i -D dependency-cruiser@latest"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"documentation",tool:"typedoc",installCmd:w("npm i -D typedoc@latest"),universal:!1,condition:e=>k(e,"typescript","javascript")},{category:"e2e_testing",tool:"pytest",installCmd:w("pip install --upgrade pytest httpx pytest-asyncio"),universal:!1,condition:e=>k(e,"python")},{category:"unit_testing",tool:"pytest",installCmd:w("pip install --upgrade pytest"),universal:!1,condition:e=>k(e,"python")},{category:"linting",tool:"ruff",installCmd:w("pip install --upgrade ruff"),universal:!1,condition:e=>k(e,"python")},{category:"formatting",tool:"ruff",installCmd:w("pip install --upgrade ruff"),universal:!1,condition:e=>k(e,"python")},{category:"type_checking",tool:"pyright",installCmd:w("pip install --upgrade pyright"),universal:!1,condition:e=>k(e,"python")},{category:"coverage",tool:"pytest-cov",installCmd:w("pip install --upgrade pytest-cov"),universal:!1,condition:e=>k(e,"python")},{category:"unused_code",tool:"vulture",installCmd:w("pip install --upgrade vulture"),universal:!1,condition:e=>k(e,"python")},{category:"dependency_analysis",tool:"pipdeptree",installCmd:w("pip install --upgrade pipdeptree"),universal:!1,condition:e=>k(e,"python")},{category:"documentation",tool:"mkdocs",installCmd:w("pip install --upgrade mkdocs mkdocs-material"),universal:!1,condition:e=>k(e,"python")},{category:"security_analysis",tool:"bandit",installCmd:w("pip install --upgrade bandit"),universal:!1,condition:e=>k(e,"python")},{category:"unit_testing",tool:"testify",installCmd:w("go get github.com/stretchr/testify@latest"),universal:!1,condition:e=>k(e,"go")},{category:"formatting",tool:"gofmt",installCmd:w("echo gofmt \u2014 built-in with Go toolchain"),universal:!1,condition:e=>k(e,"go")},{category:"coverage",tool:"go-cover",installCmd:w("echo go test -cover \u2014 built-in with Go toolchain"),universal:!1,condition:e=>k(e,"go")},{category:"linting",tool:"golangci-lint",installCmd:{win32:"go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest",darwin:"brew install golangci-lint",linux:"go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"},universal:!1,condition:e=>k(e,"go")},{category:"unused_code",tool:"deadcode",installCmd:w("go install golang.org/x/tools/cmd/deadcode@latest"),universal:!1,condition:e=>k(e,"go")},{category:"documentation",tool:"godoc",installCmd:w("go install golang.org/x/tools/cmd/godoc@latest"),universal:!1,condition:e=>k(e,"go")},{category:"security_analysis",tool:"gosec",installCmd:w("go install github.com/securego/gosec/v2/cmd/gosec@latest"),universal:!1,condition:e=>k(e,"go")},{category:"unit_testing",tool:"junit5",installCmd:w("echo JUnit 5 \u2014 add to pom.xml or build.gradle"),universal:!1,condition:e=>k(e,"java")&&!k(e,"kotlin")},{category:"linting",tool:"checkstyle",installCmd:w("echo Checkstyle \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>k(e,"java")&&!k(e,"kotlin")},{category:"formatting",tool:"google-java-format",installCmd:w("echo google-java-format \u2014 add to build config"),universal:!1,condition:e=>k(e,"java")&&!k(e,"kotlin")},{category:"coverage",tool:"jacoco",installCmd:w("echo JaCoCo \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>k(e,"java")},{category:"security_analysis",tool:"spotbugs",installCmd:w("echo SpotBugs \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>k(e,"java")},{category:"unit_testing",tool:"junit5",installCmd:w("echo JUnit 5 + MockK \u2014 add to build.gradle.kts"),universal:!1,condition:e=>k(e,"kotlin")},{category:"linting",tool:"detekt",installCmd:w("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>k(e,"kotlin")},{category:"formatting",tool:"ktlint",installCmd:w("echo ktlint \u2014 add Gradle plugin"),universal:!1,condition:e=>k(e,"kotlin")},{category:"coverage",tool:"kover",installCmd:w("echo Kover \u2014 add Gradle plugin"),universal:!1,condition:e=>k(e,"kotlin")},{category:"documentation",tool:"dokka",installCmd:w("echo Dokka \u2014 add Gradle plugin"),universal:!1,condition:e=>k(e,"kotlin")},{category:"unit_testing",tool:"xunit",installCmd:w("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>k(e,"csharp")},{category:"formatting",tool:"dotnet-format",installCmd:w("echo dotnet format \u2014 built-in (.NET 6+)"),universal:!1,condition:e=>k(e,"csharp")},{category:"coverage",tool:"coverlet",installCmd:w("dotnet add package coverlet.collector"),universal:!1,condition:e=>k(e,"csharp")},{category:"linting",tool:"dotnet-analyzers",installCmd:w("echo .NET Analyzers \u2014 built-in with .NET 5+ SDK"),universal:!1,condition:e=>k(e,"csharp")},{category:"documentation",tool:"docfx",installCmd:w("dotnet tool install -g docfx"),universal:!1,condition:e=>k(e,"csharp")},{category:"unit_testing",tool:"googletest",installCmd:w("echo GoogleTest \u2014 add via CMake FetchContent"),universal:!1,condition:e=>k(e,"cpp","c")},{category:"linting",tool:"clang-tidy",installCmd:{win32:"choco install llvm",darwin:"brew install llvm",linux:"sudo apt-get install -y clang-tidy"},universal:!1,condition:e=>k(e,"cpp","c")},{category:"formatting",tool:"clang-format",installCmd:{win32:"choco install llvm",darwin:"brew install clang-format",linux:"sudo apt-get install -y clang-format"},universal:!1,condition:e=>k(e,"cpp","c")},{category:"coverage",tool:"lcov",installCmd:{win32:"choco install lcov",darwin:"brew install lcov",linux:"sudo apt-get install -y lcov"},universal:!1,condition:e=>k(e,"cpp","c")},{category:"documentation",tool:"doxygen",installCmd:{win32:"choco install doxygen.install",darwin:"brew install doxygen",linux:"sudo apt-get install -y doxygen"},universal:!1,condition:e=>k(e,"cpp","c")},{category:"security_analysis",tool:"cppcheck",installCmd:{win32:"choco install cppcheck",darwin:"brew install cppcheck",linux:"sudo apt-get install -y cppcheck"},universal:!1,condition:e=>k(e,"cpp","c")},{category:"unit_testing",tool:"phpunit",installCmd:w("composer require --dev phpunit/phpunit"),universal:!1,condition:e=>k(e,"php")},{category:"linting",tool:"phpstan",installCmd:w("composer require --dev phpstan/phpstan"),universal:!1,condition:e=>k(e,"php")},{category:"formatting",tool:"php-cs-fixer",installCmd:w("composer require --dev friendsofphp/php-cs-fixer"),universal:!1,condition:e=>k(e,"php")},{category:"documentation",tool:"phpdoc",installCmd:w("composer require --dev phpdocumentor/phpdocumentor"),universal:!1,condition:e=>k(e,"php")},{category:"security_analysis",tool:"psalm",installCmd:w("composer require --dev vimeo/psalm"),universal:!1,condition:e=>k(e,"php")},{category:"unit_testing",tool:"rspec",installCmd:w("gem install rspec && rspec --init"),universal:!1,condition:e=>k(e,"ruby")},{category:"linting",tool:"rubocop",installCmd:w("gem install rubocop"),universal:!1,condition:e=>k(e,"ruby")},{category:"formatting",tool:"rubocop",installCmd:w("gem install rubocop"),universal:!1,condition:e=>k(e,"ruby")},{category:"coverage",tool:"simplecov",installCmd:w("gem install simplecov"),universal:!1,condition:e=>k(e,"ruby")},{category:"documentation",tool:"yard",installCmd:w("gem install yard"),universal:!1,condition:e=>k(e,"ruby")},{category:"security_analysis",tool:"brakeman",installCmd:w("gem install brakeman"),universal:!1,condition:e=>k(e,"ruby")},{category:"linting",tool:"swiftlint",installCmd:{win32:"echo SwiftLint \u2014 not available on Windows",darwin:"brew install swiftlint",linux:"echo SwiftLint \u2014 install from GitHub releases"},universal:!1,condition:e=>k(e,"swift")},{category:"formatting",tool:"swiftformat",installCmd:{win32:"echo SwiftFormat \u2014 not available on Windows",darwin:"brew install swiftformat",linux:"echo SwiftFormat \u2014 install from GitHub releases"},universal:!1,condition:e=>k(e,"swift")},{category:"unit_testing",tool:"cargo-test",installCmd:w("echo cargo test is built into the Rust toolchain"),universal:!1,condition:e=>k(e,"rust")},{category:"linting",tool:"clippy",installCmd:w("rustup component add clippy"),universal:!1,condition:e=>k(e,"rust")},{category:"formatting",tool:"rustfmt",installCmd:w("rustup component add rustfmt"),universal:!1,condition:e=>k(e,"rust")},{category:"coverage",tool:"tarpaulin",installCmd:w("cargo install cargo-tarpaulin"),universal:!1,condition:e=>k(e,"rust")},{category:"security_analysis",tool:"cargo-audit",installCmd:w("cargo install cargo-audit"),universal:!1,condition:e=>k(e,"rust")},{category:"unit_testing",tool:"flutter-test",installCmd:w("echo flutter test \u2014 built-in with Flutter SDK"),universal:!1,condition:e=>Dr(e,"flutter")},{category:"linting",tool:"flutter-lints",installCmd:w("dart pub add --dev flutter_lints"),universal:!1,condition:e=>Dr(e,"flutter")},{category:"documentation",tool:"dartdoc",installCmd:w("dart pub global activate dartdoc"),universal:!1,condition:e=>k(e,"dart")},{category:"linting",tool:"credo",installCmd:w('echo Credo \u2014 add {:credo, "~> 1.7"} to mix.exs'),universal:!1,condition:e=>k(e,"elixir")},{category:"type_checking",tool:"dialyxir",installCmd:w('echo Dialyxir \u2014 add {:dialyxir, "~> 1.4"} to mix.exs'),universal:!1,condition:e=>k(e,"elixir")},{category:"coverage",tool:"excoveralls",installCmd:w('echo ExCoveralls \u2014 add {:excoveralls, "~> 0.18"} to mix.exs'),universal:!1,condition:e=>k(e,"elixir")},{category:"documentation",tool:"ex-doc",installCmd:w('echo ExDoc \u2014 add {:ex_doc, "~> 0.34"} to mix.exs'),universal:!1,condition:e=>k(e,"elixir")},{category:"unit_testing",tool:"scalatest",installCmd:w("echo ScalaTest \u2014 add to build.sbt"),universal:!1,condition:e=>k(e,"scala")},{category:"linting",tool:"scalafix",installCmd:w("echo Scalafix \u2014 add sbt plugin"),universal:!1,condition:e=>k(e,"scala")},{category:"formatting",tool:"scalafmt",installCmd:w("echo Scalafmt \u2014 add sbt plugin"),universal:!1,condition:e=>k(e,"scala")},{category:"coverage",tool:"scoverage",installCmd:w("echo Scoverage \u2014 add sbt plugin"),universal:!1,condition:e=>k(e,"scala")},{category:"unit_testing",tool:"testthat",installCmd:w(`Rscript -e 'install.packages("testthat")'`),universal:!1,condition:e=>k(e,"r")},{category:"linting",tool:"lintr",installCmd:w(`Rscript -e 'install.packages("lintr")'`),universal:!1,condition:e=>k(e,"r")},{category:"formatting",tool:"styler",installCmd:w(`Rscript -e 'install.packages("styler")'`),universal:!1,condition:e=>k(e,"r")},{category:"coverage",tool:"covr",installCmd:w(`Rscript -e 'install.packages("covr")'`),universal:!1,condition:e=>k(e,"r")},{category:"documentation",tool:"roxygen2",installCmd:w(`Rscript -e 'install.packages("roxygen2")'`),universal:!1,condition:e=>k(e,"r")},{category:"unit_testing",tool:"hspec",installCmd:w("cabal install hspec"),universal:!1,condition:e=>k(e,"haskell")},{category:"linting",tool:"hlint",installCmd:w("cabal install hlint"),universal:!1,condition:e=>k(e,"haskell")},{category:"formatting",tool:"ormolu",installCmd:w("cabal install ormolu"),universal:!1,condition:e=>k(e,"haskell")},{category:"linting",tool:"perlcritic",installCmd:w("cpanm Perl::Critic"),universal:!1,condition:e=>k(e,"perl")},{category:"formatting",tool:"perltidy",installCmd:w("cpanm Perl::Tidy"),universal:!1,condition:e=>k(e,"perl")},{category:"linting",tool:"clj-kondo",installCmd:{win32:"echo clj-kondo \u2014 download from GitHub releases",darwin:"brew install borkdude/brew/clj-kondo",linux:"echo clj-kondo \u2014 download from GitHub releases"},universal:!1,condition:e=>k(e,"clojure")},{category:"formatting",tool:"cljfmt",installCmd:w("echo cljfmt \u2014 add to deps.edn"),universal:!1,condition:e=>k(e,"clojure")},{category:"formatting",tool:"juliaformatter",installCmd:w(`julia -e 'using Pkg; Pkg.add("JuliaFormatter")'`),universal:!1,condition:e=>k(e,"julia")},{category:"documentation",tool:"documenter",installCmd:w(`julia -e 'using Pkg; Pkg.add("Documenter")'`),universal:!1,condition:e=>k(e,"julia")},{category:"unit_testing",tool:"busted",installCmd:w("luarocks install busted"),universal:!1,condition:e=>k(e,"lua")},{category:"linting",tool:"luacheck",installCmd:w("luarocks install luacheck"),universal:!1,condition:e=>k(e,"lua")},{category:"formatting",tool:"stylua",installCmd:{win32:"cargo install stylua",darwin:"brew install stylua",linux:"cargo install stylua"},universal:!1,condition:e=>k(e,"lua")},{category:"unit_testing",tool:"forge-test",installCmd:{win32:"echo Foundry \u2014 install from https://getfoundry.sh",darwin:"curl -L https://foundry.paradigm.xyz | bash && foundryup",linux:"curl -L https://foundry.paradigm.xyz | bash && foundryup"},universal:!1,condition:e=>k(e,"solidity")},{category:"linting",tool:"solhint",installCmd:w("npm i -g solhint@latest"),universal:!1,condition:e=>k(e,"solidity")},{category:"formatting",tool:"prettier-solidity",installCmd:w("npm i -D prettier@latest prettier-plugin-solidity@latest"),universal:!1,condition:e=>k(e,"solidity")},{category:"security_analysis",tool:"slither",installCmd:w("pip install --upgrade slither-analyzer"),universal:!1,condition:e=>k(e,"solidity")},{category:"e2e_testing",tool:"detox",installCmd:w("npm i -D detox@latest"),universal:!1,condition:e=>Dr(e,"react-native","expo")},{category:"linting",tool:"detekt",installCmd:w("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>Dr(e,"jetpack-compose","kotlin-multiplatform")},{category:"linting",tool:"swiftlint",installCmd:{win32:"echo SwiftLint \u2014 not available on Windows",darwin:"brew install swiftlint",linux:"echo SwiftLint \u2014 install from GitHub releases"},universal:!1,condition:e=>Dr(e,"swiftui","uikit")},{category:"e2e_testing",tool:"cypress",installCmd:w("npm i -D cypress@latest"),universal:!1,condition:e=>Dr(e,"ionic","capacitor")},{category:"unit_testing",tool:"xunit",installCmd:w("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>Dr(e,"maui")},{category:"linting",tool:"gdlint",installCmd:w("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>k(e,"gdscript")},{category:"formatting",tool:"gdformat",installCmd:w("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>k(e,"gdscript")},{category:"unit_testing",tool:"xunit",installCmd:w("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>k(e,"fsharp")},{category:"formatting",tool:"fantomas",installCmd:w("dotnet tool install -g fantomas"),universal:!1,condition:e=>k(e,"fsharp")},{category:"unit_testing",tool:"alcotest",installCmd:w("opam install alcotest"),universal:!1,condition:e=>k(e,"ocaml")},{category:"formatting",tool:"ocamlformat",installCmd:w("opam install ocamlformat"),universal:!1,condition:e=>k(e,"ocaml")},{category:"unit_testing",tool:"eunit",installCmd:w("echo EUnit is built into OTP \u2014 use rebar3 eunit"),universal:!1,condition:e=>k(e,"erlang")},{category:"linting",tool:"elvis",installCmd:w("echo elvis \u2014 add as rebar3 plugin"),universal:!1,condition:e=>k(e,"erlang")},{category:"formatting",tool:"erlfmt",installCmd:w("echo erlfmt \u2014 add as rebar3 plugin"),universal:!1,condition:e=>k(e,"erlang")},{category:"unit_testing",tool:"zig-test",installCmd:w("echo zig test is built into the Zig toolchain"),universal:!1,condition:e=>k(e,"zig")},{category:"formatting",tool:"zig-fmt",installCmd:w("echo zig fmt is built into the Zig toolchain"),universal:!1,condition:e=>k(e,"zig")},{category:"unit_testing",tool:"nim-unittest",installCmd:w("echo nim unittest is built into the Nim standard library"),universal:!1,condition:e=>k(e,"nim")},{category:"formatting",tool:"nimpretty",installCmd:w("echo nimpretty is built into the Nim toolchain"),universal:!1,condition:e=>k(e,"nim")},{category:"linting",tool:"ameba",installCmd:w("echo Ameba \u2014 add to shard.yml"),universal:!1,condition:e=>k(e,"crystal")},{category:"unit_testing",tool:"dub-test",installCmd:w("echo dub test is built into the D toolchain"),universal:!1,condition:e=>k(e,"d")},{category:"linting",tool:"codenarc",installCmd:w("echo CodeNarc \u2014 add Gradle plugin"),universal:!1,condition:e=>k(e,"groovy")},{category:"linting",tool:"oclint",installCmd:{win32:"echo OCLint \u2014 not available on Windows",darwin:"brew install oclint",linux:"echo OCLint \u2014 install from GitHub releases"},universal:!1,condition:e=>k(e,"objective-c")},{category:"formatting",tool:"clang-format",installCmd:{win32:"choco install llvm",darwin:"brew install clang-format",linux:"sudo apt-get install -y clang-format"},universal:!1,condition:e=>k(e,"objective-c")},{category:"unit_testing",tool:"mstest",installCmd:w("dotnet add package MSTest.TestFramework MSTest.TestAdapter"),universal:!1,condition:e=>k(e,"visual-basic")},{category:"unit_testing",tool:"pester",installCmd:w("Install-Module -Name Pester -Force -SkipPublisherCheck"),universal:!1,condition:e=>k(e,"powershell")},{category:"linting",tool:"psscriptanalyzer",installCmd:w("Install-Module -Name PSScriptAnalyzer -Force"),universal:!1,condition:e=>k(e,"powershell")},{category:"linting",tool:"sqlfluff",installCmd:w("pip install --upgrade sqlfluff"),universal:!1,condition:e=>k(e,"sql")},{category:"formatting",tool:"sqlfluff",installCmd:w("pip install --upgrade sqlfluff"),universal:!1,condition:e=>k(e,"sql")},{category:"linting",tool:"shellcheck",installCmd:{win32:"winget install koalaman.shellcheck",darwin:"brew install shellcheck",linux:"sudo apt-get install -y shellcheck"},universal:!1,condition:e=>k(e,"bash")},{category:"formatting",tool:"shfmt",installCmd:{win32:"go install mvdan.cc/sh/v3/cmd/shfmt@latest",darwin:"brew install shfmt",linux:"go install mvdan.cc/sh/v3/cmd/shfmt@latest"},universal:!1,condition:e=>k(e,"bash")}];function WC(e){let t=new Set,n=[];for(let i of dZ)t.has(i.category)||i.condition(e)&&(n.push(i),t.add(i.category));return n}var Ae=require("node:fs"),Gt=require("node:path");var Ed="<!-- GoDD:start -->",Pd="<!-- GoDD:end -->",Cd={en:"Slash command dispatch",ja:"\u30B9\u30E9\u30C3\u30B7\u30E5\u30B3\u30DE\u30F3\u30C9\u306E\u30C7\u30A3\u30B9\u30D1\u30C3\u30C1",ru:"\u0414\u0438\u0441\u043F\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044F slash-\u043A\u043E\u043C\u0430\u043D\u0434"};function YC(e){let t=O.mcpKey,n=ir.filter(i=>i!==vt).join(", ");return e==="ja"?[`\u30E6\u30FC\u30B6\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8\u304C \`/${t}/<tool> <args>\` \u5F62\u5F0F\uFF08\`${t}/<tool>\`\u3001\`/${t}:<tool>\`\u3001\`/${t}_<tool>\`\u3001\`mcp__${t}__<tool>\`\u3001\u30D9\u30A2 \`/<tool>\` \u3082\u53EF\uFF09\u306E\u5834\u5408\u3001GoDD MCP \u306E \`run\` \u30C4\u30FC\u30EB\u3092 \`command\` \u5F15\u6570\u306B\u30E1\u30C3\u30BB\u30FC\u30B8\u5168\u6587\u3092\u5165\u308C\u3066\u547C\u3073\u51FA\u3057\u3001\u8FD4\u5374\u3055\u308C\u305F\u6307\u793A\u306B\u5F93\u3046\u3053\u3068\u3002`,`\`<tool>\` \u306F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306E\u8868\u793A\u5F62\u5F0F\u306B\u95A2\u4FC2\u306A\u304F\u30D9\u30A2 slug \u3068\u3057\u3066\u89E3\u91C8\u3055\u308C\u308B\u3002\u5229\u7528\u53EF\u80FD\u306A\u30C4\u30FC\u30EB: ${n}`]:e==="ru"?[`\u0415\u0441\u043B\u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438\u043C\u0435\u0435\u0442 \u0432\u0438\u0434 \`/${t}/<tool> <args>\` (\u0442\u0430\u043A\u0436\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F: \`${t}/<tool>\`, \`/${t}:<tool>\`, \`/${t}_<tool>\`, \`mcp__${t}__<tool>\` \u0438\u043B\u0438 \u043F\u0440\u043E\u0441\u0442\u043E \`/<tool>\`), \u0432\u044B\u0437\u043E\u0432\u0438\u0442\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \`run\` GoDD MCP, \u043F\u0435\u0440\u0435\u0434\u0430\u0432 \u043F\u043E\u043B\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0432 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0435 \`command\`, \u0438 \u0441\u043B\u0435\u0434\u0443\u0439\u0442\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0451\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u044F\u043C.`,`\`<tool>\` \u0438\u043D\u0442\u0435\u0440\u043F\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0433\u043E\u043B\u044B\u0439 slug \u043D\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E \u043E\u0442 \u0444\u043E\u0440\u043C\u0430\u0442\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043A\u043B\u0438\u0435\u043D\u0442\u0430. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: ${n}`]:[`When a user message matches \`/${t}/<tool> <args>\` (also accepted: \`${t}/<tool>\`, \`/${t}:<tool>\`, \`/${t}_<tool>\`, \`mcp__${t}__<tool>\`, or a bare \`/<tool>\`), call the GoDD MCP \`run\` tool with the full message text as its \`command\` argument, then follow the returned instructions.`,`\`<tool>\` is resolved as a bare slug regardless of the client's display format. Available tools: ${n}`]}function fZ(e){let t=(0,Gt.resolve)(e,".godd","state","current-phase.json");if(!(0,Ae.existsSync)(t))return null;try{let n=JSON.parse((0,Ae.readFileSync)(t,"utf-8")),i=["","### NES Context (Next Edit Suggestions)",""];return n.phase&&i.push(`- **Current phase**: ${n.phase} (${n.status??"unknown"})`),n.workflow_context&&i.push(`- **Context**: ${n.workflow_context}`),Array.isArray(n.next_likely_files)&&n.next_likely_files.length>0&&i.push(`- **Next likely files**: ${n.next_likely_files.join(", ")}`),i.join(`
219
219
  `)}catch{return null}}function pZ(e,t,n){let i=["### GoDD stack snapshot","",`Auto-detected from this repository (updated when \`${O.toolPrefix}config\` or \`${O.cli} init\` runs):`,""];for(let[o,s]of Object.entries(e))Array.isArray(s)&&s.length>0&&i.push(`- **${o}**: ${s.join(", ")}`);i.push("",`### ${Cd[n]??Cd.en}`,"",...YC(n));let r=fZ(t);return r&&i.push(r),i.push("",`_Generated by ${O.displayName} MCP \u2014 keep this block for drift detection._`),i.join(`
220
220
  `)}function no(e,t,n="en"){let i=(0,Gt.resolve)(e,"AGENTS.md"),r=pZ(t,e,n),o=`${Ed}
@@ -0,0 +1,26 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "releaseTag": "godd-tk-v0.1.0",
4
+ "targets": {
5
+ "darwin-arm64": {
6
+ "artifact": "godd-tk-aarch64-apple-darwin",
7
+ "bytes": 1450928,
8
+ "sha256": "7560ed51aacfcf278e02557339355b5a16a6c45965e3f10b1e47f15d2e14582e"
9
+ },
10
+ "darwin-x64": {
11
+ "artifact": "godd-tk-x86_64-apple-darwin",
12
+ "bytes": 1686888,
13
+ "sha256": "8771dcb838271ef32b1077cd104c582386c38403bb8ccf28986c3f957a762fee"
14
+ },
15
+ "linux-x64": {
16
+ "artifact": "godd-tk-x86_64-unknown-linux-musl",
17
+ "bytes": 2147096,
18
+ "sha256": "6c81e2fef94338540371bcf144d376f7cfc7a68b170f08749ecf7f08a550d5be"
19
+ },
20
+ "win32-x64": {
21
+ "artifact": "godd-tk-x86_64-pc-windows-msvc.exe",
22
+ "bytes": 1647104,
23
+ "sha256": "875918e53546d8730a3d28149a333498443704b45ef1cc41a3b7d098865e5f18"
24
+ }
25
+ }
26
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autodevjapan/godd-mcp-alpha",
3
- "version": "2.9.3",
3
+ "version": "2.9.4",
4
4
  "type": "module",
5
5
  "description": "Senior-engineering workflows for AI coding clients — plan, build, test, review, and ship with one command",
6
6
  "license": "UNLICENSED",
@@ -18,10 +18,12 @@
18
18
  "assets/godd-mcp-alpha-icon.png",
19
19
  "assets/native",
20
20
  "native-assets.json",
21
+ "godd-tk-assets.json",
21
22
  "dist/godd.cjs",
22
23
  "scripts/postinstall.js",
23
24
  "scripts/postinstall-godd-native.js",
24
25
  "scripts/native-assets.js",
26
+ "scripts/godd-tk-assets.js",
25
27
  "scripts/postinstall-godd-tk.js",
26
28
  "scripts/write-sha256.js",
27
29
  "README.md"
@@ -0,0 +1,154 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readFileSync, statSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+
6
+ const packageRoot = join(dirname(fileURLToPath(import.meta.url)), "..");
7
+
8
+ const MANIFEST_KEYS = ["releaseTag", "schemaVersion", "targets"];
9
+ const TARGET_KEYS = ["artifact", "bytes", "sha256"];
10
+ const EXPECTED_TARGET_ARTIFACTS = Object.freeze({
11
+ "darwin-arm64": "godd-tk-aarch64-apple-darwin",
12
+ "darwin-x64": "godd-tk-x86_64-apple-darwin",
13
+ "linux-x64": "godd-tk-x86_64-unknown-linux-musl",
14
+ "win32-x64": "godd-tk-x86_64-pc-windows-msvc.exe",
15
+ });
16
+ const SHA256_PATTERN = /^[0-9a-f]{64}$/;
17
+ export const GODD_TK_RELEASE_TAG_PATTERN = /^godd-tk-v\d+\.\d+\.\d+$/;
18
+
19
+ /**
20
+ * godd-tk の取得物が pinned release と一致しなかったときの終了コード。
21
+ *
22
+ * `postinstall.js` は godd-tk を `required:false`(opt-in)として扱うため、
23
+ * 通常の失敗(プラットフォーム未対応 / `gh` 不在 / ダウンロード失敗)は
24
+ * exit 0 = 「取得しない」として install を続行させる。
25
+ * それと **区別** して「取得したが digest が一致しない」= 供給経路の改竄疑い
26
+ * だけをこの専用コードで表現し、`postinstall.js` 側で install 全体を
27
+ * fail-closed に倒す。sysexits.h の EX_DATAERR に合わせて 65 を使う。
28
+ */
29
+ export const GODD_TK_INTEGRITY_EXIT_CODE = 65;
30
+
31
+ function isRecord(value) {
32
+ return typeof value === "object" && value !== null && !Array.isArray(value);
33
+ }
34
+
35
+ function requireExactKeys(value, expected, label) {
36
+ if (!isRecord(value)) throw new Error(`${label} must be an object`);
37
+ const actual = Object.keys(value).sort();
38
+ const sortedExpected = [...expected].sort();
39
+ if (JSON.stringify(actual) !== JSON.stringify(sortedExpected)) {
40
+ throw new Error(
41
+ `${label} keys mismatch: expected=${sortedExpected.join(",")} actual=${actual.join(",")}`,
42
+ );
43
+ }
44
+ }
45
+
46
+ export function validateGoddTkManifest(value) {
47
+ requireExactKeys(value, MANIFEST_KEYS, "godd-tk manifest");
48
+ if (value.schemaVersion !== 1) {
49
+ throw new Error("godd-tk manifest schemaVersion must be 1");
50
+ }
51
+ if (
52
+ typeof value.releaseTag !== "string" ||
53
+ !GODD_TK_RELEASE_TAG_PATTERN.test(value.releaseTag)
54
+ ) {
55
+ throw new Error("godd-tk manifest releaseTag is invalid");
56
+ }
57
+ requireExactKeys(
58
+ value.targets,
59
+ Object.keys(EXPECTED_TARGET_ARTIFACTS),
60
+ "godd-tk manifest targets",
61
+ );
62
+ const artifacts = new Set();
63
+ for (const [target, expectedArtifact] of Object.entries(
64
+ EXPECTED_TARGET_ARTIFACTS,
65
+ )) {
66
+ const entry = value.targets[target];
67
+ requireExactKeys(entry, TARGET_KEYS, `godd-tk manifest target ${target}`);
68
+ if (entry.artifact !== expectedArtifact) {
69
+ throw new Error(`godd-tk manifest artifact mismatch for ${target}`);
70
+ }
71
+ if (artifacts.has(entry.artifact)) {
72
+ throw new Error(`godd-tk manifest artifact is duplicated: ${entry.artifact}`);
73
+ }
74
+ artifacts.add(entry.artifact);
75
+ if (!Number.isSafeInteger(entry.bytes) || entry.bytes <= 0) {
76
+ throw new Error(`godd-tk manifest bytes are invalid for ${target}`);
77
+ }
78
+ if (typeof entry.sha256 !== "string" || !SHA256_PATTERN.test(entry.sha256)) {
79
+ throw new Error(`godd-tk manifest SHA-256 is invalid for ${target}`);
80
+ }
81
+ }
82
+ return value;
83
+ }
84
+
85
+ function deepFreeze(value) {
86
+ if (!isRecord(value)) return value;
87
+ for (const nested of Object.values(value)) deepFreeze(nested);
88
+ return Object.freeze(value);
89
+ }
90
+
91
+ /**
92
+ * drift gate も postinstall も、この manifest を「期待値」として読む。
93
+ * 浅い freeze だと `manifest.targets[t].sha256` を実行時に書き換えられ、
94
+ * 期待値そのものが可変になってしまうため深く凍結する。
95
+ */
96
+ export const GODD_TK_MANIFEST = deepFreeze(
97
+ validateGoddTkManifest(
98
+ JSON.parse(readFileSync(join(packageRoot, "godd-tk-assets.json"), "utf8")),
99
+ ),
100
+ );
101
+
102
+ /**
103
+ * postinstall が取得するリリースタグ。
104
+ *
105
+ * 期待 digest と同じファイルに置くことが陳腐化対策の中核。
106
+ * タグだけを別の定数として持つと「タグは新しいのに digest は古い」状態が
107
+ * 作れてしまうため、**タグの単一の出どころはこの manifest だけ**にする。
108
+ * 新しい godd-tk release を配布対象にするには manifest 全体を差し替える必要が
109
+ * あり、tag と digest が構造的に分岐できない。
110
+ */
111
+ export const GODD_TK_RELEASE_TAG = GODD_TK_MANIFEST.releaseTag;
112
+
113
+ export const GODD_TK_TARGETS = Object.freeze(
114
+ Object.fromEntries(
115
+ Object.entries(GODD_TK_MANIFEST.targets).map(([target, value]) => [
116
+ target,
117
+ Object.freeze({ ...value }),
118
+ ]),
119
+ ),
120
+ );
121
+
122
+ export function getGoddTkTarget(platform, arch, targets = GODD_TK_TARGETS) {
123
+ const key = `${platform}-${arch}`;
124
+ return Object.hasOwn(targets, key) ? targets[key] : null;
125
+ }
126
+
127
+ export function checksumBuffer(buffer) {
128
+ return createHash("sha256").update(buffer).digest("hex");
129
+ }
130
+
131
+ /**
132
+ * 取得済みファイルを manifest の bytes / sha256 と照合する。
133
+ * 不一致は必ず throw する(戻り値の真偽値では表現しない)。
134
+ */
135
+ export function verifyGoddTkArtifact(
136
+ path,
137
+ target,
138
+ read = readFileSync,
139
+ stat = statSync,
140
+ ) {
141
+ const size = stat(path).size;
142
+ if (size !== target.bytes) {
143
+ throw new Error(
144
+ `godd-tk size mismatch for ${target.artifact}: expected=${target.bytes} actual=${size}`,
145
+ );
146
+ }
147
+ const sha256 = checksumBuffer(read(path));
148
+ if (sha256 !== target.sha256) {
149
+ throw new Error(
150
+ `godd-tk SHA-256 mismatch for ${target.artifact}: expected=${target.sha256} actual=${sha256}`,
151
+ );
152
+ }
153
+ return { bytes: size, sha256 };
154
+ }
@@ -3,46 +3,44 @@
3
3
  /**
4
4
  * GoDD Token Killer — postinstall script
5
5
  *
6
- * Downloads the pre-built godd-tk binary for the current OS/arch
7
- * from GitHub Releases via `gh` CLI (supports private repos) and
8
- * places it in ~/.local/bin/ (Unix) or %LOCALAPPDATA%/godd-tk/ (Windows).
6
+ * Downloads the pinned pre-built godd-tk binary from GitHub Releases via the
7
+ * `gh` CLI (supports private repos), verifies it against the committed
8
+ * `godd-tk-assets.json` manifest (size + SHA-256), and only then places it in
9
+ * ~/.local/bin/ (Unix) or %LOCALAPPDATA%/godd-tk/ (Windows).
10
+ *
11
+ * 真正性の根拠は `gh` の TLS/認証**ではなく**、リポジトリにコミットされ
12
+ * レビューを通った manifest の digest である(Issue #1474)。
9
13
  */
10
14
 
11
- import { mkdirSync, chmodSync, existsSync, renameSync, unlinkSync } from "node:fs";
12
- import { join } from "node:path";
15
+ import { chmodSync, existsSync, mkdirSync, mkdtempSync, renameSync, rmSync, unlinkSync } from "node:fs";
16
+ import { join, resolve } from "node:path";
13
17
  import { homedir, platform, arch } from "node:os";
14
- import { execFileSync, execSync } from "node:child_process";
18
+ import { execFileSync } from "node:child_process";
19
+ import { fileURLToPath } from "node:url";
20
+ import {
21
+ GODD_TK_INTEGRITY_EXIT_CODE,
22
+ GODD_TK_RELEASE_TAG,
23
+ getGoddTkTarget,
24
+ verifyGoddTkArtifact,
25
+ } from "./godd-tk-assets.js";
15
26
 
16
27
  const REPO = "AutoDevJapan/GoDD-MCP-Alpha";
17
28
  const BINARY_NAME = "godd-tk";
18
- const VERSION_TAG = "godd-tk-v0.1.0";
19
-
20
- const TARGETS = {
21
- "darwin-x64": "godd-tk-x86_64-apple-darwin",
22
- "darwin-arm64": "godd-tk-aarch64-apple-darwin",
23
- "linux-x64": "godd-tk-x86_64-unknown-linux-musl",
24
- "win32-x64": "godd-tk-x86_64-pc-windows-msvc.exe",
25
- };
26
-
27
- function getInstallDir() {
28
- if (platform() === "win32") {
29
- const localAppData = process.env.LOCALAPPDATA || join(homedir(), "AppData", "Local");
29
+
30
+ export function getInstallDir(currentPlatform = platform(), environment = process.env) {
31
+ if (currentPlatform === "win32") {
32
+ const localAppData = environment.LOCALAPPDATA || join(homedir(), "AppData", "Local");
30
33
  return join(localAppData, "godd-tk");
31
34
  }
32
35
  return join(homedir(), ".local", "bin");
33
36
  }
34
37
 
35
- function getTarget() {
36
- const key = `${platform()}-${arch()}`;
37
- return TARGETS[key];
38
- }
39
-
40
- function getBinaryPath(installDir) {
41
- const ext = platform() === "win32" ? ".exe" : "";
38
+ export function getBinaryPath(installDir, currentPlatform = platform()) {
39
+ const ext = currentPlatform === "win32" ? ".exe" : "";
42
40
  return join(installDir, `${BINARY_NAME}${ext}`);
43
41
  }
44
42
 
45
- function isGhAvailable() {
43
+ function defaultIsGhAvailable() {
46
44
  try {
47
45
  execFileSync("gh", ["--version"], { stdio: "ignore", timeout: 5000 });
48
46
  return true;
@@ -51,76 +49,231 @@ function isGhAvailable() {
51
49
  }
52
50
  }
53
51
 
54
- async function main() {
55
- const target = getTarget();
52
+ function defaultDownload(tag, artifact, directory) {
53
+ execFileSync(
54
+ "gh",
55
+ [
56
+ "release",
57
+ "download",
58
+ tag,
59
+ "--repo",
60
+ REPO,
61
+ "--pattern",
62
+ artifact,
63
+ "--dir",
64
+ directory,
65
+ "--clobber",
66
+ ],
67
+ { stdio: "pipe", timeout: 60000 },
68
+ );
69
+ }
70
+
71
+ /**
72
+ * 返す `status` は 3 系統を厳密に区別する:
73
+ * - "installed" / "already-installed" … 検証済みバイナリが所定の場所にある
74
+ * - "skipped" … そもそも取得しない(exit 0、install 継続)。
75
+ * 既存の未検証バイナリが居た場合は必ず隔離済み
76
+ * - "integrity-failure" … 検証を通らないバイナリを実行経路から
77
+ * 外せなかった(exit 65 で fail-closed)
78
+ */
79
+ export function installGoddTk({
80
+ currentPlatform = platform(),
81
+ currentArch = arch(),
82
+ installDir = getInstallDir(currentPlatform),
83
+ isGhAvailable = defaultIsGhAvailable,
84
+ download = defaultDownload,
85
+ verify = verifyGoddTkArtifact,
86
+ exists = existsSync,
87
+ makeDir = (path) => mkdirSync(path, { recursive: true }),
88
+ // staging は必ず install 先と同じファイルシステム上に作る。
89
+ // os.tmpdir() を使うと /tmp が tmpfs / $HOME が別デバイスの環境で
90
+ // rename が常に EXDEV になり、検証機能そのものが無言で死ぬ。
91
+ makeTempDir = (parent) => mkdtempSync(join(parent, ".godd-tk-")),
92
+ removeTree = (path) => rmSync(path, { recursive: true, force: true }),
93
+ move = renameSync,
94
+ removeFile = unlinkSync,
95
+ chmod = chmodSync,
96
+ now = () => Date.now(),
97
+ log = console.log,
98
+ logError = console.error,
99
+ } = {}) {
100
+ const target = getGoddTkTarget(currentPlatform, currentArch);
56
101
  if (!target) {
57
- console.log(`[godd-tk] No pre-built binary for ${platform()}-${arch()}, skipping.`);
58
- console.log(`[godd-tk] Build from source: cd godd-mcp-alpha/godd-tk && cargo build --release`);
59
- return;
102
+ log(`[godd-tk] No pre-built binary for ${currentPlatform}-${currentArch}, skipping.`);
103
+ log(`[godd-tk] Build from source: cd godd-mcp-alpha/godd-tk && cargo build --release`);
104
+ return { status: "skipped", reason: "unsupported-platform" };
60
105
  }
61
106
 
62
- const installDir = getInstallDir();
63
- const binaryPath = getBinaryPath(installDir);
64
-
65
- if (existsSync(binaryPath)) {
107
+ const binaryPath = getBinaryPath(installDir, currentPlatform);
108
+ let unverifiedExisting = false;
109
+ if (exists(binaryPath)) {
66
110
  try {
67
- const version = execFileSync(binaryPath, ["--version"], { encoding: "utf8" }).trim();
68
- console.log(`[godd-tk] Already installed: ${version}`);
69
- return;
70
- } catch {
71
- // corrupted binary, re-download
111
+ verify(binaryPath, target);
112
+ log(`[godd-tk] Already installed and verified: ${binaryPath} (${GODD_TK_RELEASE_TAG})`);
113
+ return { status: "already-installed", binaryPath };
114
+ } catch (error) {
115
+ // 既存バイナリが pinned release と違う(自前ビルド・旧バージョン・改竄)。
116
+ // 「検証済み」と偽らず、pinned release での置き換えを試みる。
117
+ unverifiedExisting = true;
118
+ logError(
119
+ `[godd-tk] Existing binary does not match the pinned release ${GODD_TK_RELEASE_TAG}: ` +
120
+ `${error instanceof Error ? error.message : error}`,
121
+ );
122
+ log(`[godd-tk] Reinstalling the pinned, digest-verified release.`);
72
123
  }
73
124
  }
74
125
 
75
- if (!isGhAvailable()) {
76
- console.log(`[godd-tk] GitHub CLI (gh) not found — required for private repo download.`);
77
- console.log(`[godd-tk] Install gh: https://cli.github.com/ then run this script again.`);
78
- console.log(`[godd-tk] Or build from source: cd godd-mcp-alpha/godd-tk && cargo build --release`);
79
- return;
126
+ /**
127
+ * 「取得できなかった」経路の共通終端。
128
+ *
129
+ * 既存の未検証バイナリを検知していた場合、ここで黙って exit 0 に戻ると
130
+ * 未検証バイナリが実行経路に残り続ける(= 無言スキップ)。必ず隔離し、
131
+ * 隔離できないときだけ fail-closed に倒す。
132
+ */
133
+ function finishWithoutInstall(reason) {
134
+ if (!unverifiedExisting || !exists(binaryPath)) {
135
+ return { status: "skipped", reason };
136
+ }
137
+ // rename は宛先を黙って上書きする。クロックが巻き戻る環境(NTP バックステップ /
138
+ // スナップショット復元 / 固定クロックのコンテナ)で先行隔離物を消すと、
139
+ // 隔離の目的である証跡保全そのものが失われるため必ず空きパスを探す。
140
+ const stamp = now();
141
+ let quarantinePath = `${binaryPath}.unverified-${stamp}`;
142
+ for (let suffix = 1; exists(quarantinePath); suffix += 1) {
143
+ if (suffix > 1000) {
144
+ logError(
145
+ `[godd-tk] SECURITY: could not find a free quarantine path for ${binaryPath}.`,
146
+ );
147
+ return { status: "integrity-failure", reason: "unverified-existing-binary" };
148
+ }
149
+ quarantinePath = `${binaryPath}.unverified-${stamp}-${suffix}`;
150
+ }
151
+ try {
152
+ move(binaryPath, quarantinePath);
153
+ } catch (error) {
154
+ logError(
155
+ `[godd-tk] SECURITY: could not quarantine the unverified binary at ${binaryPath} — ` +
156
+ `${error instanceof Error ? error.message : error}`,
157
+ );
158
+ return { status: "integrity-failure", reason: "unverified-existing-binary" };
159
+ }
160
+ logError(
161
+ `[godd-tk] Quarantined the unverified binary to ${quarantinePath}; ` +
162
+ `it is no longer on the install path. Delete it once you have confirmed its origin.`,
163
+ );
164
+ return { status: "skipped", reason };
80
165
  }
81
166
 
82
- console.log(`[godd-tk] Downloading ${target} via gh CLI...`);
83
-
167
+ // 想定外の例外が `unverifiedExisting === true` のまま escape すると、
168
+ // 未検証バイナリを隔離しないまま install が続いてしまう(M2 と同じクラスの穴)。
169
+ // 取得〜配置の全体を包み、必ず finishWithoutInstall を通す。
170
+ // `integrity-failure` は throw ではなく return なので、この catch で降格することはない。
84
171
  try {
85
- mkdirSync(installDir, { recursive: true });
86
-
87
- const tmpDir = join(installDir, ".godd-tk-tmp");
88
- mkdirSync(tmpDir, { recursive: true });
89
-
90
- execSync(
91
- `gh release download ${VERSION_TAG} --repo ${REPO} --pattern "${target}" --dir "${tmpDir}" --clobber`,
92
- { stdio: "pipe", timeout: 60000 }
172
+ return runDownloadAndInstall();
173
+ } catch (error) {
174
+ logError(
175
+ `[godd-tk] Unexpected installer error: ${error instanceof Error ? error.message : error}`,
93
176
  );
177
+ return finishWithoutInstall("unexpected-error");
178
+ }
94
179
 
95
- const downloadedPath = join(tmpDir, target);
96
- if (!existsSync(downloadedPath)) {
97
- throw new Error(`Downloaded file not found at ${downloadedPath}`);
180
+ function runDownloadAndInstall() {
181
+ if (!isGhAvailable()) {
182
+ log(`[godd-tk] GitHub CLI (gh) not found — required for private repo download.`);
183
+ log(`[godd-tk] Install gh: https://cli.github.com/ then run this script again.`);
184
+ log(`[godd-tk] Or build from source: cd godd-mcp-alpha/godd-tk && cargo build --release`);
185
+ return finishWithoutInstall("gh-unavailable");
98
186
  }
99
187
 
100
- if (existsSync(binaryPath)) unlinkSync(binaryPath);
101
- renameSync(downloadedPath, binaryPath);
188
+ log(`[godd-tk] Downloading ${target.artifact} (${GODD_TK_RELEASE_TAG}) via gh CLI...`);
102
189
 
103
- if (platform() !== "win32") {
104
- chmodSync(binaryPath, 0o755);
190
+ let tmpDir;
191
+ try {
192
+ makeDir(installDir);
193
+ tmpDir = makeTempDir(installDir);
194
+ } catch (error) {
195
+ log(
196
+ `[godd-tk] Could not prepare a staging directory under ${installDir}: ` +
197
+ `${error instanceof Error ? error.message : error}`,
198
+ );
199
+ return finishWithoutInstall("staging-unavailable");
105
200
  }
106
201
 
107
- // Clean up temp dir
108
- try { unlinkSync(tmpDir); } catch {}
202
+ const downloadedPath = join(tmpDir, target.artifact);
203
+ try {
204
+ try {
205
+ download(GODD_TK_RELEASE_TAG, target.artifact, tmpDir);
206
+ } catch (error) {
207
+ log(`[godd-tk] Download failed: ${error instanceof Error ? error.message : error}`);
208
+ log(`[godd-tk] Build from source: cd godd-mcp-alpha/godd-tk && cargo build --release`);
209
+ return finishWithoutInstall("download-failed");
210
+ }
211
+ if (!exists(downloadedPath)) {
212
+ log(`[godd-tk] Downloaded file not found at ${downloadedPath}`);
213
+ log(`[godd-tk] Build from source: cd godd-mcp-alpha/godd-tk && cargo build --release`);
214
+ return finishWithoutInstall("download-failed");
215
+ }
216
+
217
+ // ここから先は「取得できた」ケース。digest 不一致は skip ではなく失敗。
218
+ try {
219
+ verify(downloadedPath, target);
220
+ } catch (error) {
221
+ logError(
222
+ `[godd-tk] SECURITY: downloaded artifact failed integrity verification — ` +
223
+ `${error instanceof Error ? error.message : error}`,
224
+ );
225
+ logError(
226
+ `[godd-tk] The artifact published at ${GODD_TK_RELEASE_TAG} does not match the digest ` +
227
+ `committed in godd-mcp-alpha/godd-tk-assets.json. Installation is aborted and nothing was installed.`,
228
+ );
229
+ return { status: "integrity-failure", reason: "digest-mismatch" };
230
+ }
231
+
232
+ try {
233
+ if (exists(binaryPath)) removeFile(binaryPath);
234
+ move(downloadedPath, binaryPath);
235
+ } catch (error) {
236
+ log(`[godd-tk] Installation failed: ${error instanceof Error ? error.message : error}`);
237
+ log(`[godd-tk] Build from source: cd godd-mcp-alpha/godd-tk && cargo build --release`);
238
+ return finishWithoutInstall("install-failed");
239
+ }
240
+ // ここまで来た時点で、置かれているのは検証済み bytes だけ。
241
+ unverifiedExisting = false;
109
242
 
110
- console.log(`[godd-tk] Installed to ${binaryPath}`);
111
- console.log(`[godd-tk] Run 'godd-tk init --agent cursor' to set up hooks`);
243
+ if (currentPlatform !== "win32") {
244
+ try {
245
+ chmod(binaryPath, 0o755);
246
+ } catch (error) {
247
+ logError(
248
+ `[godd-tk] Installed verified bytes but could not set the executable bit on ${binaryPath}: ` +
249
+ `${error instanceof Error ? error.message : error}`,
250
+ );
251
+ }
252
+ }
112
253
 
113
- // Add to PATH hint for Windows
114
- if (platform() === "win32") {
115
- const pathDirs = (process.env.PATH || "").toLowerCase().split(";");
116
- if (!pathDirs.includes(installDir.toLowerCase())) {
117
- console.log(`[godd-tk] Add ${installDir} to your PATH for global access`);
254
+ log(`[godd-tk] Installed and verified (sha256 ${target.sha256}): ${binaryPath}`);
255
+ log(`[godd-tk] Run 'godd-tk init --agent cursor' to set up hooks`);
256
+ if (currentPlatform === "win32") {
257
+ const pathDirs = (process.env.PATH || "").toLowerCase().split(";");
258
+ if (!pathDirs.includes(installDir.toLowerCase())) {
259
+ log(`[godd-tk] Add ${installDir} to your PATH for global access`);
260
+ }
261
+ }
262
+ return { status: "installed", binaryPath };
263
+ } finally {
264
+ try {
265
+ removeTree(tmpDir);
266
+ } catch {
267
+ // best effort
118
268
  }
119
269
  }
120
- } catch (err) {
121
- console.log(`[godd-tk] Download failed: ${err.message}`);
122
- console.log(`[godd-tk] Build from source: cd godd-mcp-alpha/godd-tk && cargo build --release`);
123
270
  }
124
271
  }
125
272
 
126
- main().catch(console.error);
273
+ export function toExitCode(result) {
274
+ return result.status === "integrity-failure" ? GODD_TK_INTEGRITY_EXIT_CODE : 0;
275
+ }
276
+
277
+ if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
278
+ process.exitCode = toExitCode(installGoddTk());
279
+ }
@@ -5,6 +5,11 @@ import { dirname, join, resolve } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
6
 
7
7
  const scriptsDirectory = dirname(fileURLToPath(import.meta.url));
8
+
9
+ // `godd-tk-assets.js` は import 時に manifest を読んで検証する I/O モジュールなので、
10
+ // `required:true` の godd-native 経路まで巻き込まないようここでは値だけを持つ。
11
+ // `GODD_TK_INTEGRITY_EXIT_CODE` との同値は tests/godd-tk-asset-integrity.test.ts が固定する。
12
+ const GODD_TK_INTEGRITY_EXIT_CODE = 65;
8
13
  export const INSTALLERS = [
9
14
  { name: "godd-native", script: "postinstall-godd-native.js", required: true },
10
15
  {
@@ -12,12 +17,21 @@ export const INSTALLERS = [
12
17
  script: "postinstall-godd-tk.js",
13
18
  required: false,
14
19
  optInEnvironment: "GODD_INSTALL_GODD_TK",
20
+ // opt-in の任意コンポーネントでも、供給経路の完全性検証に失敗した場合だけは
21
+ // install 全体を失敗させる(無言スキップ禁止 / Issue #1474)。
22
+ integrityExitCode: GODD_TK_INTEGRITY_EXIT_CODE,
15
23
  },
16
24
  ];
17
25
 
18
26
  export function runInstallers(execute = spawnSync) {
19
27
  let failed = false;
20
- for (const { name, script, required, optInEnvironment } of INSTALLERS) {
28
+ for (const {
29
+ name,
30
+ script,
31
+ required,
32
+ optInEnvironment,
33
+ integrityExitCode,
34
+ } of INSTALLERS) {
21
35
  if (
22
36
  optInEnvironment &&
23
37
  process.env[optInEnvironment] !== "1"
@@ -34,10 +48,25 @@ export function runInstallers(execute = spawnSync) {
34
48
  if (result.error) {
35
49
  console.error(`[${name}] Installer could not be executed: ${result.error.message}`);
36
50
  if (required) failed = true;
51
+ } else if (result.status === null) {
52
+ // spawnSync は timeout / シグナル kill で status:null, signal:"SIGTERM" を返す。
53
+ // 「非ゼロ終了」と一緒くたにせず、何も検証できていないことを明示する。
54
+ console.error(
55
+ `[${name}] Installer was terminated by signal ${result.signal ?? "unknown"}; nothing was verified.`,
56
+ );
57
+ if (required) failed = true;
37
58
  } else if (result.status !== 0) {
38
59
  if (required) {
39
60
  console.error(`[${name}] Required installer exited with status ${result.status}; installation failed.`);
40
61
  failed = true;
62
+ } else if (
63
+ integrityExitCode !== undefined &&
64
+ result.status === integrityExitCode
65
+ ) {
66
+ console.error(
67
+ `[${name}] Artifact integrity verification failed (status ${result.status}); installation failed.`,
68
+ );
69
+ failed = true;
41
70
  } else {
42
71
  console.error(`[${name}] Optional installer exited with status ${result.status}; MCP installation continues without this optional component.`);
43
72
  }