[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0STAXDP1B2WPEVZMFM1Q5":3,"skill-same:01M6C0STAXDP1B2WPEVZMFM1Q5":56},{"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":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":14,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":41,"updatedAt":42,"install":43,"resources":55},"01M6C0STAXDP1B2WPEVZMFM1Q5","etl-guidelines",null,"DEPRECADA — ETL legado (apps.dat_ingest) REMOVIDO. Import atual = import_export_contract + endpoints DRF. Não codar contra apps.dat_ingest.","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\u002Fetl-guidelines\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"guidelines","etl","etl guidelines","export","ingest","endpoints","contract","apps","import","true","drf","2026-11-10 10:12:30",false,"---\nname: etl-guidelines\ndescription: DEPRECADA — ETL legado (apps.dat_ingest) REMOVIDO. Import atual = import_export_contract + endpoints DRF. Não codar contra apps.dat_ingest.\ndisable-model-invocation: true\n---\n\n# ETL Guidelines — DEPRECADA (2026-06)\n\n> ⚠️ O ETL legado (`apps.dat_ingest`, comandos `etl_upsert_*` \u002F `etl_import_*`) foi **REMOVIDO** (#967\u002F#971).\n> **Não escreva código contra `apps.dat_ingest`** — o módulo não existe mais. Esta skill é só um redirect.\n\n**Import atual (SSOT):**\n\n- **Command**: `import_export_contract` — dry-run por padrão; `--apply` exige allowlist (bloqueado).\n- **API**: endpoints DRF `POST \u002Fapi\u002F\u003Crecurso>\u002Fimport\u002F` — pipeline async `ImportJob`.\n- **Padrões de import**: `apps\u002Fcore\u002Fimports\u002F` (hashing \u002F normalization).\n- **Spec viva**: `v2\u002Fdocs\u002Fspecs\u002Fbackend\u002Fimports.spec.md`.\n\nConteúdo histórico do ETL legado não é mantido aqui (ver git history se necessário).\n","# ETL Guidelines — DEPRECADA (2026-06)\n\n> ⚠️ O ETL legado (`apps.dat_ingest`, comandos `etl_upsert_*` \u002F `etl_import_*`) foi **REMOVIDO** (#967\u002F#971).\n> **Não escreva código contra `apps.dat_ingest`** — o módulo não existe mais. Esta skill é só um redirect.\n\n**Import atual (SSOT):**\n\n- **Command**: `import_export_contract` — dry-run por padrão; `--apply` exige allowlist (bloqueado).\n- **API**: endpoints DRF `POST \u002Fapi\u002F\u003Crecurso>\u002Fimport\u002F` — pipeline async `ImportJob`.\n- **Padrões de import**: `apps\u002Fcore\u002Fimports\u002F` (hashing \u002F normalization).\n- **Spec viva**: `v2\u002Fdocs\u002Fspecs\u002Fbackend\u002Fimports.spec.md`.\n\nConteúdo histórico do ETL legado não é mantido aqui (ver git history se necessário).\n",{"name":5,"description":7,"disable-model-invocation":35},true,"main","9e3a882d83e0853bdc570ae9d89c02d2a53bed82",".agents\u002Fskills\u002Fetl-guidelines","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa","Dev Python | IA | Automation | HTML | CSS | Data | Process | Projects","2026-11-11 08:34:26",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":35},[45,48,51],{"tool":46,"command":47},"npx","npx skills add matheusnorjosa\u002Faprender_sistema --skill etl-guidelines",{"tool":49,"command":50},"bunx","bunx skills add matheusnorjosa\u002Faprender_sistema --skill etl-guidelines",{"tool":52,"command":53},"pnpm","pnpm dlx skills add matheusnorjosa\u002Faprender_sistema --skill etl-guidelines","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fetl-guidelines\u002FSKILL.md",[],[57,96,120,141,153,184],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":73,"publishedAt":30},"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",[63,68],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":69,"categoryName":70,"taxonomyType":71,"taxonomyTypeDesc":72},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],"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","when",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":30},"01M6C0WG2SBP9PJG1YQFGGVJAR","verification-gate","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.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fverification-gate\u002FSKILL.md",[],[103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,95],"verification","verification gate","gate","run","first","verify","command","use","verify before claiming","say","done","feature","proof","bugfix","output","about","implementing",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":129,"publishedAt":30},"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",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000008","测试与质量",[130,131,132,133,134,135,85,136,110,137,138,139,114,90,29,119,95,140],"test","test driven development","development","driven","code","Production","write","bug","implementation","pytest","failing",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":30},"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",[],[132,148,149,150,151,110,152,90],"subagent","subagent development","para","subagents","ao",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":30},"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",[],[160,161,162,163,164,134,165,166,167,168,169,170,171,172,173,174,175,176,110,177,178,179,90,180,28,181,182,183,95],"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","pip","for","changes",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":193,"publishedAt":30},"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",[190],{"categoryNo":191,"categoryName":192,"taxonomyType":71,"taxonomyTypeDesc":72},"01JBSEEDCAT000000000000038","人力资源",[194,195,196,197,198,199,200,201,202,110,203,204,205,206,207,208,209,210,95,211],"handoff","resume handoff","resume","github","state","new session","work","context","session","github issue","issue","document","clear","name","saved","codebase","resuming","new"]