[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0THRAK60HCKE6FPG66GK5":3,"skill-same:01M6C0THRAK60HCKE6FPG66GK5":69},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":14,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6C0THRAK60HCKE6FPG66GK5","verification-gate",null,"Verify before claiming success. Use when about to say something works\u002Fis done, after implementing a feature, after a bugfix, or before pushing — run the proof command and confirm output first.","matheusnorjosa\u002Faprender_sistema","matheusnorjosa","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F117673804?v=4","01M6C0S19FG12BDFBTRWY9TTEQ","Matheus Norjosa","01M6C0S1DF0YB17TKGEYC70GSP",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fverification-gate\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"verification","gate","verification gate","verify","command","first","use","verify before claiming","say","run","done","feature","proof","bugfix","output","about","implementing","when","2026-11-10 10:12:30",false,"---\nname: verification-gate\ndescription: Verify before claiming success. Use when about to say something works\u002Fis done, after implementing a feature, after a bugfix, or before pushing — run the proof command and confirm output first.\n---\n\n# Verification Gate\n\nVerificação obrigatória antes de qualquer claim de sucesso. **NUNCA** afirme que algo funciona sem evidência fresca.\n\n> \"NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE\"\n\n## O Processo Gate (5 Passos)\n\nAntes de afirmar status, \"pronto\" ou satisfação:\n\n1. **IDENTIFICAR** — qual comando prova sua claim? (tabela abaixo)\n2. **RODAR** — execute completamente e freshly (não use cache mental).\n3. **LER** — leia o output COMPLETO e os exit codes.\n4. **VERIFICAR** — o output suporta a claim? (tabela de evidência abaixo)\n5. **CLAIM** — só APÓS confirmação, afirme sucesso.\n\n### Comando por tipo de claim (v2 = Docker-only, CP-01)\n\n| Claim | Comando | Evidência necessária |\n|-------|---------|----------------------|\n| \"Testes passam\" | `docker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002F -v` | `passed` + exit code 0 |\n| \"Sem erros pyright\" | `cd v2\u002Fbackend && pyright apps\u002Fcore config` | `0 errors` no output |\n| \"Build frontend OK\" | `cd v2\u002Ffrontend && npm run build` | exit code 0, sem erros |\n| \"Lint passa\" | `cd v2\u002Ffrontend && npm run lint` | exit code 0 |\n| \"Migration OK\" | `docker exec aprender_dev-web-1 python manage.py migrate --check` | exit code 0 |\n| \"Bug corrigido\" | o teste que falhava agora passa | `passed` no teste-alvo |\n| \"CI passou\" | `gh pr checks PR_NUMBER` | todos os checks verdes |\n\n## Red Flags — Linguagem Proibida antes de verificar\n\n\"should work\" \u002F \"deve funcionar\" · \"probably\" \u002F \"provavelmente\" ·\n\"seems fine\" \u002F \"parece ok\" · \"I think\" \u002F \"acho que\" ·\n\"Done!\" \u002F \"Pronto!\" (sem evidência) · \"Great!\" \u002F \"Ótimo!\" (sem rodar teste).\n\n## Checklist por tipo de tarefa\n\n**Após implementar feature:**\n```bash\ndocker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002Ftest_FEATURE.py -v\ncd v2\u002Fbackend && pyright apps\u002Fcore config\ncd v2\u002Ffrontend && npm run lint   # se tocou frontend\n```\n\n**Após fix de bug** (reproduzir → corrigir → confirmar):\n```bash\ndocker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002Ftest_BUG.py -x   # deve FALHAR antes do fix\ndocker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002Ftest_BUG.py -v   # deve PASSAR depois\n```\n\n**Antes de push** (o CI roda os mesmos gates — rode local primeiro):\n```bash\ndocker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002F -v\ncd v2\u002Fbackend && pyright apps\u002Fcore config\ncd v2\u002Ffrontend && npm run lint && npm run build\n```\n\n**Após import (export-contract \u002F DRF):** ver `reference\u002Fimport-verification.md`.\n\n## Exemplo: errado vs. certo\n\n❌ ERRADO:\n```\nImplementei a feature de bloqueio parcial. Os testes devem passar agora.\n```\n\n✅ CORRETO:\n```\nImplementei a feature de bloqueio parcial.\n\n$ docker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002Ftest_availability_service.py -v\n15 passed in 2.3s\n$ cd v2\u002Fbackend && pyright apps\u002Fcore config\n0 errors, 0 warnings\n\nTestes passam e type check OK.\n```\n","# Verification Gate\n\nVerificação obrigatória antes de qualquer claim de sucesso. **NUNCA** afirme que algo funciona sem evidência fresca.\n\n> \"NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE\"\n\n## O Processo Gate (5 Passos)\n\nAntes de afirmar status, \"pronto\" ou satisfação:\n\n1. **IDENTIFICAR** — qual comando prova sua claim? (tabela abaixo)\n2. **RODAR** — execute completamente e freshly (não use cache mental).\n3. **LER** — leia o output COMPLETO e os exit codes.\n4. **VERIFICAR** — o output suporta a claim? (tabela de evidência abaixo)\n5. **CLAIM** — só APÓS confirmação, afirme sucesso.\n\n### Comando por tipo de claim (v2 = Docker-only, CP-01)\n\n| Claim | Comando | Evidência necessária |\n|-------|---------|----------------------|\n| \"Testes passam\" | `docker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002F -v` | `passed` + exit code 0 |\n| \"Sem erros pyright\" | `cd v2\u002Fbackend && pyright apps\u002Fcore config` | `0 errors` no output |\n| \"Build frontend OK\" | `cd v2\u002Ffrontend && npm run build` | exit code 0, sem erros |\n| \"Lint passa\" | `cd v2\u002Ffrontend && npm run lint` | exit code 0 |\n| \"Migration OK\" | `docker exec aprender_dev-web-1 python manage.py migrate --check` | exit code 0 |\n| \"Bug corrigido\" | o teste que falhava agora passa | `passed` no teste-alvo |\n| \"CI passou\" | `gh pr checks PR_NUMBER` | todos os checks verdes |\n\n## Red Flags — Linguagem Proibida antes de verificar\n\n\"should work\" \u002F \"deve funcionar\" · \"probably\" \u002F \"provavelmente\" ·\n\"seems fine\" \u002F \"parece ok\" · \"I think\" \u002F \"acho que\" ·\n\"Done!\" \u002F \"Pronto!\" (sem evidência) · \"Great!\" \u002F \"Ótimo!\" (sem rodar teste).\n\n## Checklist por tipo de tarefa\n\n**Após implementar feature:**\n```bash\ndocker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002Ftest_FEATURE.py -v\ncd v2\u002Fbackend && pyright apps\u002Fcore config\ncd v2\u002Ffrontend && npm run lint   # se tocou frontend\n```\n\n**Após fix de bug** (reproduzir → corrigir → confirmar):\n```bash\ndocker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002Ftest_BUG.py -x   # deve FALHAR antes do fix\ndocker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002Ftest_BUG.py -v   # deve PASSAR depois\n```\n\n**Antes de push** (o CI roda os mesmos gates — rode local primeiro):\n```bash\ndocker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002F -v\ncd v2\u002Fbackend && pyright apps\u002Fcore config\ncd v2\u002Ffrontend && npm run lint && npm run build\n```\n\n**Após import (export-contract \u002F DRF):** ver `reference\u002Fimport-verification.md`.\n\n## Exemplo: errado vs. certo\n\n❌ ERRADO:\n```\nImplementei a feature de bloqueio parcial. Os testes devem passar agora.\n```\n\n✅ CORRETO:\n```\nImplementei a feature de bloqueio parcial.\n\n$ docker exec aprender_dev-web-1 pytest apps\u002Fcore\u002Ftests\u002Ftest_availability_service.py -v\n15 passed in 2.3s\n$ cd v2\u002Fbackend && pyright apps\u002Fcore config\n0 errors, 0 warnings\n\nTestes passam e type check OK.\n```\n",{"name":5,"description":7},"main","9e3a882d83e0853bdc570ae9d89c02d2a53bed82",".agents\u002Fskills\u002Fverification-gate","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa","Dev Python | IA | Automation | HTML | CSS | Data | Process | Projects","2026-11-12 02:52:37",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add matheusnorjosa\u002Faprender_sistema --skill verification-gate",{"tool":55,"command":56},"bunx","bunx skills add matheusnorjosa\u002Faprender_sistema --skill verification-gate",{"tool":58,"command":59},"pnpm","pnpm dlx skills add matheusnorjosa\u002Faprender_sistema --skill verification-gate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fverification-gate\u002FSKILL.md",true,[63],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"reference\u002Fimport-verification.md","REFERENCE","参考文档",1183,"https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fverification-gate\u002Freference\u002Fimport-verification.md",[70,108,113,135,147,179],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":86,"publishedAt":37},"01M6C0WHSP7S2QMJGGMQRXJ6PD","writing-standards","Apply AS v2 technical-writing standards (clarity, brevity, active voice, Python\u002FDjango conventions). Use when writing a README, a docstring (PEP 257), a commit message, a PR description, an error message, or any technical doc.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwriting-standards\u002FSKILL.md",[76,81],{"categoryNo":77,"categoryName":78,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,36],"writing","writing standards","standards","python","commit","pr","pr description","commit message","doc","voice","clarity","django","technical","README","message","active","as","error","technical-writing","brevity","docstring",{"skillNo":109,"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":110,"categories":111,"keywords":112,"publishedAt":37},"01M6C0WG2SBP9PJG1YQFGGVJAR","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fverification-gate\u002FSKILL.md",[],[19,21,20,28,24,22,23,25,26,27,29,30,31,32,33,34,35,36],{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":122,"publishedAt":37},"01M6C0WE010G12KH45YZW6M7K5","test-driven-development","Write the failing test before the implementation in AS v2 (pytest + Django\u002FDRF). Use when implementing a feature or fixing a bug, before any production code is written.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[119],{"categoryNo":120,"categoryName":121,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000008","测试与质量",[123,124,125,126,127,128,98,129,25,130,131,132,30,103,133,35,36,134],"test","test driven development","development","driven","code","Production","write","bug","implementation","pytest","drf","failing",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":37},"01M6C0WC6Y81XRVBJQSTKA96XQ","subagent-development","Orquestra subagents no AS v2 — decompõe a tarefa em domínios independentes, paraleliza e revisa em 2 estágios. Use ao delegar exploração, implementação ou validação cross-arquivo para acelerar o trabalho e poupar o contexto principal.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsubagent-development\u002FSKILL.md",[],[125,142,143,144,145,25,146,103],"subagent","subagent development","para","subagents","ao",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":37},"01M6C0W9W8D6JJWXW28Q7ZHAC9","security-scan","Automated security scanning for AS v2. Use before commits or when reviewing changes for vulnerabilities. Runs dependency audit (pip-audit, npm audit), secret detection (grep patterns), and code pattern scanning (SQL injection, XSS, eval, pickle, hardcoded secrets). Integrates with project hooks system.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsecurity-scan\u002FSKILL.md",[],[154,155,156,157,158,127,159,160,161,162,163,164,165,166,167,168,169,170,25,171,172,173,103,174,175,176,177,178,36],"security","security scan","scan","vulnerabilities","sql","npm","audit","dependency audit","detection","injection","xss","secrets","pip-audit","commits","system","grep","eval","hooks","security scanning","project","with","true","pip","for","changes",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":188,"publishedAt":37},"01M6C0W7RE3G3C2852YXQKR5J9","resume-handoff","Resume work from a saved handoff document, validating its state against the current codebase before continuing. Use when resuming work from a saved handoff after a context clear or in a new session (path, session name, or GitHub issue).","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fresume-handoff\u002FSKILL.md",[185],{"categoryNo":186,"categoryName":187,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000038","人力资源",[189,190,191,192,193,194,195,196,197,25,198,199,200,201,202,203,204,205,36,206],"handoff","resume handoff","resume","github","state","new session","work","context","session","github issue","issue","document","clear","name","saved","codebase","resuming","new"]