[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P4BY97MZ51XRYC6KHMERTG":3,"skill-same:01M6P4BY97MZ51XRYC6KHMERTG":62},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6P4BY97MZ51XRYC6KHMERTG","clarify-first",null,"Before executing a request, check for real ambiguity and ask the user (always in Portuguese) only what the prompt and context do not already answer.","maurodesouza\u002Fai-kanban-app-lab","maurodesouza","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54520907?v=4","01M6P3VA3WVQC4XZ0RQWJCDKW6","Mauro de Souza","01M6P3VA7YK770SNWT12GBEGAF",1,"MIT","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.agents\u002Fskills\u002Fclarify-first\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"first","clarify","clarify first","prompt","check","ask","context","user","only","portuguese","do","what the","answer","ambiguity","for","request","2026-11-10 10:12:30",false,"---\nname: clarify-first\ndescription: Before executing a request, check for real ambiguity and ask the user (always in Portuguese) only what the prompt and context do not already answer.\n---\n\n# Objective\n\nBefore executing any request, make sure nothing important is being guessed.\n\nAsk only when there is a **real ambiguity**. A question that the prompt already answers is a defect.\n\n# Scope\n\nApplies to requests coming directly from the user and at the start of `tech-lead`.\n\nDoes not apply inside `epic-implementer` or its sub-skills: they run autonomously and ask only on their stop conditions.\n\n# 1. Language\n\nAll communication with the user is in **Brazilian Portuguese**:\n\n* Questions\n* Answer options\n* Explanations\n* Stated assumptions\n\nNever ask a question or present an option in English. Code identifiers, file names and commands stay as they are.\n\n# 2. Read Before Asking\n\nBefore writing any question:\n\n1. Read the whole prompt, including pasted content and previous messages in the conversation.\n2. List every requirement and decision the user already stated.\n3. Check the repository, rules and existing code for the answer.\n\nEverything found in these steps is **decided**. Do not ask about it, do not ask to confirm it, do not turn it into an option.\n\n# 3. Is It a Real Ambiguity?\n\nAsk a question only when **all** of these are true:\n\n1. The answer is not in the prompt, the conversation, the repository or the project rules.\n2. Different reasonable answers lead to materially different results (different behavior, architecture, scope, data or cost).\n3. There is no safe default or existing convention that resolves it.\n4. Getting it wrong would be expensive to undo.\n\nIf any condition is false, do not ask:\n\n* Answer in the context → use it.\n* Low impact or easy to change later → decide, and state the assumption in one line in Portuguese.\n* A convention exists → follow it.\n\nNever ask:\n\n* To confirm something the user wrote (\"Você quer mesmo X?\" when the prompt says X).\n* To repeat a requirement back as a question.\n* Whether to proceed when the request is clear.\n* About implementation details the user does not care about and that can be safely decided.\n\n# 4. How to Ask\n\nGroup all real ambiguities into a single round. Ask at most 4 questions per round. Use the structured question tool when available (e.g. `AskUserQuestion`), otherwise a numbered list.\n\n## Question\n\nEach question must:\n\n* State what is unclear and where it comes from (cite the part of the request).\n* Explain why it matters: what changes depending on the answer.\n* Be answerable without re-reading the whole request.\n\n## Options\n\nEach option must:\n\n* Have a short, specific label.\n* Explain what will be done if it is chosen.\n* Make the difference from the other options clear (consequence, trade-off).\n\nPut the recommended option first and mark it with `(Recomendado)` when there is a recommendation.\n\nAvoid vague options such as \"Sim\", \"Não\", \"Outro\", \"Depende\".\n\n## Example\n\n❌ Bad - confirms what is already in the prompt, vague options, in English:\n\n> Prompt: \"Use MobX for the stores.\"\n>\n> Question: \"Which state library should I use?\" - Options: \"MobX\", \"Other\".\n\n✅ Good - real ambiguity, explanatory question and options:\n\n> Pergunta: O pedido diz para mostrar notificações após salvar o card, mas não diz se o erro de rede também deve gerar notificação. Isso define se o handle de salvar dispara `notification.show` só no sucesso ou também na falha.\n>\n> * **Sucesso e falha (Recomendado)** - Notifica nos dois casos; na falha mostra a mensagem do erro e mantém o card em edição.\n> * **Somente sucesso** - Notifica apenas quando salva; a falha aparece só como erro no próprio formulário.\n\n# 5. After the Answers\n\n* Treat the answers as decided. Do not ask about them again.\n* Ask a new round only if the answers create a new real ambiguity.\n* If everything is clear from the start, proceed directly without asking anything.\n\n# 6. Rules\n\n* Never guess when a real ambiguity exists.\n* Never ask when there is none.\n","# Objective\n\nBefore executing any request, make sure nothing important is being guessed.\n\nAsk only when there is a **real ambiguity**. A question that the prompt already answers is a defect.\n\n# Scope\n\nApplies to requests coming directly from the user and at the start of `tech-lead`.\n\nDoes not apply inside `epic-implementer` or its sub-skills: they run autonomously and ask only on their stop conditions.\n\n# 1. Language\n\nAll communication with the user is in **Brazilian Portuguese**:\n\n* Questions\n* Answer options\n* Explanations\n* Stated assumptions\n\nNever ask a question or present an option in English. Code identifiers, file names and commands stay as they are.\n\n# 2. Read Before Asking\n\nBefore writing any question:\n\n1. Read the whole prompt, including pasted content and previous messages in the conversation.\n2. List every requirement and decision the user already stated.\n3. Check the repository, rules and existing code for the answer.\n\nEverything found in these steps is **decided**. Do not ask about it, do not ask to confirm it, do not turn it into an option.\n\n# 3. Is It a Real Ambiguity?\n\nAsk a question only when **all** of these are true:\n\n1. The answer is not in the prompt, the conversation, the repository or the project rules.\n2. Different reasonable answers lead to materially different results (different behavior, architecture, scope, data or cost).\n3. There is no safe default or existing convention that resolves it.\n4. Getting it wrong would be expensive to undo.\n\nIf any condition is false, do not ask:\n\n* Answer in the context → use it.\n* Low impact or easy to change later → decide, and state the assumption in one line in Portuguese.\n* A convention exists → follow it.\n\nNever ask:\n\n* To confirm something the user wrote (\"Você quer mesmo X?\" when the prompt says X).\n* To repeat a requirement back as a question.\n* Whether to proceed when the request is clear.\n* About implementation details the user does not care about and that can be safely decided.\n\n# 4. How to Ask\n\nGroup all real ambiguities into a single round. Ask at most 4 questions per round. Use the structured question tool when available (e.g. `AskUserQuestion`), otherwise a numbered list.\n\n## Question\n\nEach question must:\n\n* State what is unclear and where it comes from (cite the part of the request).\n* Explain why it matters: what changes depending on the answer.\n* Be answerable without re-reading the whole request.\n\n## Options\n\nEach option must:\n\n* Have a short, specific label.\n* Explain what will be done if it is chosen.\n* Make the difference from the other options clear (consequence, trade-off).\n\nPut the recommended option first and mark it with `(Recomendado)` when there is a recommendation.\n\nAvoid vague options such as \"Sim\", \"Não\", \"Outro\", \"Depende\".\n\n## Example\n\n❌ Bad - confirms what is already in the prompt, vague options, in English:\n\n> Prompt: \"Use MobX for the stores.\"\n>\n> Question: \"Which state library should I use?\" - Options: \"MobX\", \"Other\".\n\n✅ Good - real ambiguity, explanatory question and options:\n\n> Pergunta: O pedido diz para mostrar notificações após salvar o card, mas não diz se o erro de rede também deve gerar notificação. Isso define se o handle de salvar dispara `notification.show` só no sucesso ou também na falha.\n>\n> * **Sucesso e falha (Recomendado)** - Notifica nos dois casos; na falha mostra a mensagem do erro e mantém o card em edição.\n> * **Somente sucesso** - Notifica apenas quando salva; a falha aparece só como erro no próprio formulário.\n\n# 5. After the Answers\n\n* Treat the answers as decided. Do not ask about them again.\n* Ask a new round only if the answers create a new real ambiguity.\n* If everything is clear from the start, proceed directly without asking anything.\n\n# 6. Rules\n\n* Never guess when a real ambiguity exists.\n* Never ask when there is none.\n",{"name":5,"description":7},"main","6f1867f215cf86d20099b6dfb1164c79abfb87ce","lab-10\u002F.agents\u002Fskills\u002Fclarify-first",0,"https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab","https:\u002F\u002Fgithub.com\u002Fmaurodesouza","Software Engineer","2026-10-28 02:01:00",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add maurodesouza\u002Fai-kanban-app-lab --skill clarify-first",{"tool":54,"command":55},"bunx","bunx skills add maurodesouza\u002Fai-kanban-app-lab --skill clarify-first",{"tool":57,"command":58},"pnpm","pnpm dlx skills add maurodesouza\u002Fai-kanban-app-lab --skill clarify-first","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.agents\u002Fskills\u002Fclarify-first\u002FSKILL.md",true,[],[63,88,105,131,143,154],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":35},"01M6P519M13JTBZDK3ZJP48P2C","utils-implementation","Write and organize utils (pure helpers for formatting, mapping, filtering, math, parsing, ids, storage) as one namespace object per domain with clear, readable names. Use before creating or changing any util.","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Futils-implementation\u002FSKILL.md",[],[70,71,72,73,33,74,75,76,77,78,79,80,81,82,83,84,85,86,87],"utils implementation","implementation","utils","parsing","object","storage","ids","clear","math","write","filtering","with","use","organize","domain","mapping","formatting","as",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":99,"publishedAt":35},"01M6P516BP8GPRJHPGVFWRF5T8","test-writer","Write tests for the current implementation","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Ftest-writer\u002FSKILL.md",[94],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[100,101,102,103,79,71,104,33],"test","test writer","writer","write tests","tests",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":35},"01M6P50M0Z2AQH32ZTV90D5V32","tech-lead","Analyze a project, turn the user's goal into an implementation-ready GitHub Epic and Issues (following project rules, the Command Bus architecture and Fragiola UI), then start epic-implementer automatically (use the no-implement flag to stop after planning).","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Ftech-lead\u002FSKILL.md",[],[112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,82,128,129,130],"tech","tech lead","ready","command bus architecture","implement","github","EPIC","architecture","planning","issues","ui","start","analyze","Rules","command","implementer","goal","stop","project",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":35},"01M6P50GND99S9QQY6KWPP6NW9","tech-lead-publish","Publish a final Epic and its Issues to GitHub, linked and labeled, keeping dependency and execution information. Sub-skill of tech-lead.","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Ftech-lead-publish\u002FSKILL.md",[],[138,113,112,139,117,121,140,141,118,142],"tech lead publish","publish","execution","dependency","information",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":35},"01M6P50D4P2SQSYZM7TZMHZA0J","setup-command-system","Install the Command System architecture in the project","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Fsetup-command-system\u002FSKILL.md",[],[150,126,151,152,119,153,130],"setup command system","system","setup","install",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":35},"01M6P50A032630X9JDDZYJMNV3","reviewer","Review code changes and provide feedback","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Freviewer\u002FSKILL.md",[],[156,161,162,163,164,165],"code","review code","feedback","changes","review"]