corpus
o corpus são charters de Grok Bot publicados como texto puro em repositórios públicos do GitHub, snapshot 2026-09-04. o corpus estrito é o conjunto de fontes menos 3 repositórios que não são a unidade de análise (bibliotecas de skills e diretórios de prompts de configuração do tipo "set up a new bot for me"). isto não é um censo de modelos públicos de Grok Bot. diretórios de links de instalação ficam de fora porque seu texto de configuração mora em x.ai, que este projeto nunca consulta.
corpus estrito: 1596 charters de 86 repositórios, inclusão de 40 a 3000 palavras, só inglês, um charter = uma descrição de papel de bot que uma pessoa poderia colar no perfil de um bot. o corpus completo (com os 3 repositórios excluídos de volta) tem 2282 charters e é usado só como linha de robustez no relatório, nunca na página de verificação.
cada fonte está fixada a um commit sha resolvido na data do snapshot e baixada como tarball por esse sha. api.github.com e x.ai nunca foram contatados. todos os charters estão em inglês: os detectores, suas listas de tokens e os rótulos manuais são só em inglês, e resultados em qualquer outro idioma não são confiáveis.
conjunto de fontes: 89 repositórios foram lidos no total: as escolhas das próprias listas curadas mais 253 repositórios linkados a partir das duas listas de descoberta, dos quais 171 foram excluídos pelas classes de exclusão vigentes (ferramentas de código, conectores, pontes, instaladores, diretórios de links, documentação), 8 não puderam ser baixados e 74 foram baixados e passaram pelo mesmo teste de inclusão. cada repositório está fixado a um commit sha. quadro de amostragem: charters publicados em repositórios linkados a partir de duas awesome-lists curadas. nenhuma busca de código foi usada.
fontes
| repositório | branch | commit sha | status no corpus estrito | charters |
|---|---|---|---|---|
| AmitMirgal/orgbot-hub | main | 7f65a8011fa119c1ab4321d4437170bd6f8d3ea1 | no corpus | 1 |
| Chakhdz/grok-bot-token-saver | master | fe82eb28665bdef430020999f448013e8491a203 | no corpus | 1 |
| EndeavorYen/grok-bot-skills | main | d1a0e777842821a95bcdab6c88c1a5ae37d0d194 | no corpus | 14 |
| GlobalTC/steer | main | 2423bf4d347b6ec6c2208d7d5aa9ef6973e9c600 | no corpus | 3 |
| HAEGONG/grok-bot-profiles | main | 6f3d07e566008175486228a509bd8461e5efb85f | no corpus | 12 |
| HammeredSmithy/bull-trade | main | 11feb72876a9572746527521fe05e4cc48f00abd | no corpus | 28 |
| Heyvhuang/werewolf-gamemaster | main | 2f18703f30815a295d52f6c09812a076e8354329 | no corpus | 1 |
| HxHippy/grok-bot-arch | main | b7c44ba488f4da42d0006a3c126e597ac5a7d465 | no corpus | 0 |
| KinGao294/grok-bot-orange-book | main | 1f689f8c7c9143dcdbdbd6ae631f9bdcd8572b23 | no corpus | 0 |
| Logos52/grok-bot-packets | main | 20903e2a2830010345f7227e1fa685c3722c8f9b | no corpus | 19 |
| Octo-o-o-o/grok-job-kit | main | 90894b2f42723dcae6e25c3e5252f1bfedec6019 | no corpus | 10 |
| OpulentiaAI/gtm-agent-automations | main | 568371d0b5c5c0ed28597dcc93ac5b6ce938967f | no corpus | 262 |
| PROJECT-073-X/grok-bot-workforce | main | 9786f76311c88ad3f12b9ec87ba995d9f994e332 | no corpus | 1 |
| PramodDutta/botskills | main | abe793060a7e7ad18e89e1f254e4ad0806556354 | no corpus | 119 |
| Steltic/steltic_grokbot | main | a76d5f315509b3a7c488844c6f1f0dfbb932785b | no corpus | 1 |
| Uncle-Gizmo/grok-bot-info | main | e927c1836f80134c898ec94a40d2ce635c6c910a | no corpus | 1 |
| WeSs1982/echo-chief-of-staff | main | 874dc50ec41637233f21bbc0f5256b938afa8b98 | no corpus | 0 |
| WebDevJasonCameron/ExploreGrokBot | main | 58fe3532ccbd3aecf8af06ea4a3706ac659d8f8c | no corpus | 5 |
| YannisKiefer/grokbot-x | main | cade7d95e2b60c2c60c53648d4d10ba87ae18443 | no corpus | 10 |
| ZeroPointRepo/GrokBotDev | main | d2aa69f8640e2ccef42f4b11b664e234c34c211d | no corpus | 137 |
| ZooHero500/plays | main | 65fbafc806431ed079a03a03ad474710f65ad31f | no corpus | 110 |
| a70win-wq/usegrokbot | main | 49c1dd3182ed14d1d76a99be4034ce153323b2ca | no corpus | 1 |
| aaravarr/openbot | main | b694d788b1e558112d0443943b1e0ba740075d92 | no corpus | 3 |
| andrewkittridge/grokory | main | 193608e9304de658a77e218c73fea02f41136867 | no corpus | 4 |
| banana2556/cursor-grokbot-helper | main | 19af0152c015848d5a10bfe1c85d9143bef08929 | no corpus | 0 |
| bcharleson/grokbot-peekaboo | main | 862172e0abfe15c1abf1efc538545fc5f214bb18 | no corpus | 1 |
| codejunkie99/rosterroom | main | a7ec5620c85ec19b1d1ac22321ccce531455484f | no corpus | 80 |
| composio-community/awesome-grok-bots | main | d732af02159bc2cc8f350422aaf09908822c2882 | no corpus | 20 |
| cs68614-hash/awesome-grokbot-templates | main | 577e696d4a7c128760a7952636c2d10cccfcc9ca | no corpus | 0 |
| dadamingmax/Grok-Bot-Setup-and-Usage-Guide | main | ad3f3fbb2ae40582379910710a5521d715e72f8c | no corpus | 0 |
| danielvegac/grok-bot-startup-services-outbound | main | 2ba35f365daa6eb7cf9cc7d52f6597b24c9aff24 | no corpus | 4 |
| ddhjy/grok-bot-hub | main | 37e4ce343bee7cd05a972b1efda218232e525142 | no corpus | 0 |
| divo12/awesome-grok-bot-templates | main | 184d4cc50c34899c00d21ba87ce2eb82da887c27 | no corpus | 10 |
| dragosroua/grok-bot-add-plugin | main | 80459c4543d2845492fc64dc2ddc4a366e8564fd | no corpus | 6 |
| ellelion/botteams | main | e478f8de0d6ee32b985dcb8c08d1d0fd5232bf9d | no corpus | 70 |
| enderzcx/grok-bot-switch | main | c612786ef8ec5e70c67fc691fea85cee1f06e724 | no corpus | 0 |
| ethanolivertroy/grokbot-cloudflare-inbox | main | 9c994514f37738482186b4c422c875f573b4ed98 | no corpus | 2 |
| fantomsuj/grokbot | main | 7cf5d3d97d8df426f63a40b06dd408379fa5dc11 | no corpus | 0 |
| function1st/PhoneZero | main | 98a72eb9456477ba3985d4f7a7dc0a22c22c50d2 | no corpus | 11 |
| galleonlabs/hypergrok-trading-desk | main | 0274d9e2429ff68bef4fd05099deb3f0899fe593 | no corpus | 27 |
| hariou/technocore-grokbot-ja | master | a442d32a6a6394826616407be9f8c20136e23e5f | no corpus | 1 |
| hesreallyhim/awesome-claude-code | main | db4db53566d757e31d75536627747fcaef01d7f1 | no corpus | 0 |
| jaredtrichard/grok-factory | main | 2e9f8e55935e9ec3cb8c1fa823c64bd043c4351b | no corpus | 10 |
| jaredtrichard/grok-research | main | 957bf951721ba0004b7c8d61559d44810e3e6666 | no corpus | 4 |
| jaskirat1616/grok-skills | main | dfadd540f887c3834e9043a29e9ff402b48aaf66 | no corpus | 186 |
| jay-sahnan/growth-grok-bots | main | 8cf16436859e2dd3a47f40f1d328052f5a6e3c85 | no corpus | 0 |
| jblack4vols/grok-bot | main | 6f284805b7351e8022d3286624290d13cc3c5293 | no corpus | 2 |
| jeremybrasher/grokbot-skills | main | fa7d4587d50a589b46ed9c3576b5f340549e49a3 | no corpus | 92 |
| jinank/great-grokbots | main | 1c318bf616d89574cc1ecde8758cf0c1950badd6 | no corpus | 0 |
| kunchenguid/grok-ship | main | ae1f5a787e544dcec69b819370615b2fcbef0eab | no corpus | 7 |
| kwakseongjae/awesome-grok-bot | main | 1023020613037e354c4526ec8ff2a26549566125 | no corpus | 3 |
| kydlikebtc/awesome-grokbot | main | 00304a366a46657b43c2bdc061f3b69fa0f1db48 | no corpus | 2 |
| lazerusrm/botrouter | main | 118f909ab0e4e16f15d8b932ced562d65f1dba38 | no corpus | 1 |
| lroolle/awesome-grokbot-templates | main | a12c2684a994b17647841b882d89d27550323805 | no corpus | 0 |
| lsj210001/crew-contract | main | 06d24e73f55e6550bcc53d9a8bebea80c6170b0b | no corpus | 0 |
| lureilly1/botjobs | main | 76e9a0e7491730d067d38c51385718b2232d244a | no corpus | 0 |
| mKay00/grok-bot-second-brain | master | dfa5d1dc83e34f9a93346c703334027d030d8876 | no corpus | 11 |
| mahathir69/technocore-safe | main | 96d7006d351a7d7de0130aecfb5c00c3a1a3722c | no corpus | 3 |
| maplefukku/grok-bot-ops | main | c3e54f9e078698b4195abf9a130ed43ba8d4e3be | no corpus | 1 |
| matsutouya/note-kojo | main | fbf79e2c3c5a60544e6fc3ba5a87105132568c55 | no corpus | 0 |
| matteoantoci/firstmate | master | dc26ad39f5584f23c8408478c6799c2bd69b0a1f | no corpus | 2 |
| mergisi/awesome-grokbot | main | 6210f2034c5737d1be100e227c8d308d9757ecf4 | no corpus | 113 |
| mostdesign01-sudo/grokbot-use-cases | main | 9cdb036e17099a6f08784219cfba5294a03883a6 | no corpus | 0 |
| mozilla/diversity | master | 5e612f24d537b5e7b80ae0aa730c32e499b68db4 | no corpus | 10 |
| mtrxdev/build-brief | main | c158ee5333d956b18efc11be187e558485b6684b | no corpus | 3 |
| napiermd/heavy-lift-cloud-agents | main | 3ebcbd91d5d2b0ab69f7f178570d3c24f07ae484 | no corpus | 1 |
| nescafe2009/dsh-grokbot | main | 8a3b70813fe5aa720ecddd940d65ec8d58acd771 | no corpus | 0 |
| njpatel/omabot | main | 801cb4b1dc3d20e75b43094aed36c3703e3f72e5 | no corpus | 0 |
| noam99moyal-sudo/podcast-summary-bot | main | f9b8e871de6880646ff5ad2b6e2a0464dcd44b4f | no corpus | 1 |
| novusordos666/grokbot-outreach-agent-team | main | 4ea1fd613329f66a4c51c2f0c231afd0b471a18c | no corpus | 6 |
| owenisas/grokbot-openai | main | bd2e81fe991f699d0d2482d665fef32be1088131 | no corpus | 0 |
| p10ns11y/botify | main | 8e249c3b84262f5c1eaadd1aa7441de5e28f7df5 | no corpus | 2 |
| pacifico-1106/grokbot-control-plane | main | 4162e5218537d3b3c6213a48195a556b01d3676c | no corpus | 1 |
| palehonk0-o/grokbot-market-memory | main | 9314e92d77b86c94df6e023e106c76927a91106d | no corpus | 6 |
| quolu/plaude | main | 7c18750f39df0ee5591c9fdacca6b9781dfd1890 | no corpus | 0 |
| richard7463/askgrokwallet | main | bc46298b059352171490390584fd895d92649a48 | no corpus | 1 |
| rockyzhuo/grok-bot-blue-book | main | ebb28026a630e70be8e3da578cf85d5919ed5e19 | no corpus | 0 |
| s-hiraoku/grok-bot-playbook | main | 306c7a12019b2e5aa6457f9f3607e8ff5692c689 | no corpus | 0 |
| shrdgn/grokbot-skills | main | ab16e780a80ce74c701022dec726f9174e625f79 | no corpus | 74 |
| steve228uk/grok-bot-shopping | main | c0a52b214e594973cf149aff3ad23068ef59c3ce | no corpus | 4 |
| swcstudiospace/PumpGrok | main | d16963a007b285f1a62687f7fc61c5506583559b | no corpus | 32 |
| tal-giladi/grokbot-field-guide | main | cbdb6b1895f25b5adb2767622860ba33e35c32d2 | no corpus | 1 |
| thomasbek3/hermes-bot-kit | master | 13b446128ee2831d4a1bfa29bfabe0f772ed80c6 | no corpus | 1 |
| tiankonglan/awesome-grok-bot-template | main | 826c52a67c816c7c1321f761d27219ff639afa99 | no corpus | 0 |
| vercel/vercel-plugin | main | 7b0a6f61b254b0149bb644cadfb588a5c46df0c2 | no corpus | 41 |
| zhulin025/LaoA-GrokBot | main | 527c3b5746bed34da3a6d4f9747e483c84534a41 | no corpus | 0 |
| Anil-matcha/awesome-grok-bot | master | 2412bacefee2cdc31ceb526443ad780a89a2a2cd | excluído: não é a unidade de análise | 0 |
| aaron-he-zhu/aaron-marketing-skills | main | 33dc05b0eeac3f78f4621ff898a1b84c04a65bda | excluído: não é a unidade de análise | 0 |
| elie222/botdirectory.ai | main | badedc0c985bf3e021634e3d7823ded02cd5545e | excluído: não é a unidade de análise | 0 |
| RongleCat/awesome-grok-bot | main | e8af8ee56813e891657e63dafda90b5755ac021d | só descoberta, sem charters | 0 |
| majiayu000/awesome-grok-bot | main | f7f692c71a6379f3849ad2df5bdf2e310b974268 | só descoberta, sem charters | 0 |
as oito regras e a porta de publicação
cada regra é uma função pura sobre o texto normalizado em inglês do charter, o mesmo código que roda no seu navegador na página de verificação. cada regra foi conferida contra 60 charters rotulados à mão, às cegas, antes de a saída do detector ser lida. duas portas: a porta a é a concordância em três vias (true / false / unclear), a porta b é a concordância de true contra não-true, ambas em 0,85. linhas: 1 passa a porta a, as contagens de todo o corpus são publicáveis. 2 falha em a, passa em b, só a contagem de true do corpus é publicável. 3 falha nas duas mas nunca inventa um true, então a contagem de true do corpus é um limite inferior. 4 falha em tudo, só amostra. na página de verificação aparecem só as linhas 1 a 3.
| regra | o que pergunta | porta a | porta b | precisão em true | linha | número reportado |
|---|---|---|---|---|---|---|
| R1 approval gate | exigir um sim humano antes de uma ação irreversível | 0,567 | 0,817 | 0,880 | 4 | só amostra: 30 de n = 60, intervalo de 95% de 0,377 a 0,623 |
| R2 state file | manter um arquivo de estado entre execuções | 0,633 | 0,733 | 0,786 | 4 | só amostra: 24 de n = 60, intervalo de 95% de 0,286 a 0,526 |
| R3 silence rule | permitir que uma execução vazia não envie nada | 0,833 | 0,950 | 0,923 | 2 | 378 de 1596 (só a contagem de true do corpus) |
| R4 ownership boundary | dizer o que o bot não toca | 0,767 | 0,767 | 0,796 | 4 | só amostra: 43 de n = 60, intervalo de 95% de 0,592 a 0,815 |
| R5 stop condition | definir quando a execução termina | 0,817 | 0,817 | 0,932 | 4 | só amostra: 49 de n = 60, intervalo de 95% de 0,701 a 0,894 |
| R6 undisclosed capability | nomear cada ferramenta que o bot usa na definição do seu papel | 0,517 | 0,517 | 0,326 | 4 | só amostra: 14 de n = 60, intervalo de 95% de 0,144 a 0,354 |
| R7 visible secret | não trazer no texto nenhuma chave, token, chave privada ou host interno | 1,000 | 1,000 | - | 1 | 0 de 1596 trazem um formato de segredo (contagem congelada); após a correção dos formatos, 0 de 1596, veja a nota abaixo |
| R8 injection resistance | tratar o conteúdo que o bot lê (páginas, e-mails, tickets, texto colado) como dados, não como ordens | 0,917 | 0,917 | 0,786 | 1 | 1302 de 1596 ficam em silêncio sobre a pergunta (todo o corpus); 294 de 1596 resistentes; a contagem de expostos é um piso do detector, veja abaixo |
dois números fáceis de interpretar mal
formatos de segredo: 0 de 1596 charters trazem um. este corpus são repositórios públicos curados, onde a proteção de push e a varredura de segredos do github tornam uma chave ativa quase impossível, então o zero diz que a busca foi feita na superfície errada, não que ninguém vaza. nada se afirma sobre links compartilhados, que este projeto nunca lê.
parte desse zero é o detector, não só a superfície. os formatos com que a auditoria rodou exigiam uma cauda alfanumérica sem quebras depois do prefixo e a camada de texto em que rodavam descartava os sublinhados, então chaves com o formato sk-ant-api03-..., sk-proj-... e ghp_... nunca foram detectáveis. em 2026-09-05 os formatos foram ampliados: uma chave de api agora é sk- seguido de até 40 caracteres de letras, dígitos, hifens ou sublinhados e depois pelo menos 16 alfanuméricos, um token do github é ghp_, gho_, ghu_, ghs_ ou ghr_ mais 20 alfanuméricos ou github_pat_ mais 20 caracteres, o formato do slack também aceita xoxe-, e a camada de texto mantém os sublinhados dentro de um token. um endereço de e-mail não conta mais como segredo: a página de verificação o reporta à parte como algo a olhar antes de compartilhar. o corpus foi varrido de novo só para esta regra, com os rótulos de todas as outras verificados byte a byte como idênticos: 0 de 1596 charters traziam um formato de segredo antes, 0 de 1596 depois (1 trazem um endereço de e-mail). os números publicados não mudam.
injeção: o número reportado é o silêncio, 1302 de 1596 charters não dizem nada, num sentido ou no outro, sobre se o conteúdo que o bot lê pode lhe dar ordens. o detector encontrou 0 charters de 1596 que mandam o bot obedecer a esse conteúdo, e 0 dos 60 charters rotulados à mão; uma amostra anterior rotulada à mão sobre o corpus mais amplo encontrou um charter exposto que o detector não tinha visto, então um zero do detector aqui é um piso, não um fato.
limites
- isto lê texto, não comportamento. um charter com uma linha de aprovação ainda pode rodar sem ela, e um sem ela pode rodar com cuidado.
- o corpus são charters em inglês publicados em repositórios públicos do github em 2026-09-04, não um censo de modelos públicos. um único repositório fornece 0,164 do corpus estrito e uma única família de quase duplicatas (jaccard de 5-gramas em 0,50 ou mais) cobre 205 de 1596 charters, então cada taxa os descreve em parte.
- as regras que estão na linha 4 (Aprovação, Memória, Limite, Concluído, Ferramentas) são reportadas só a partir da amostra rotulada à mão de 60. não estão na página de verificação, seja qual for a manchete do artigo que acompanha.
- os detectores são expressões regulares sobre texto em inglês. uma cláusula escrita de um jeito que o corpus nunca usou vai passar despercebida, e um charter em outro idioma será lido errado, e é por isso que a página de verificação começa pelo que o seu charter já faz e nunca lhe dá nota.
reproduzir
o pipeline completo (python, só biblioteca padrão), os números congelados com seus hashes sha256, os rótulos manuais às cegas, o registro de decisões e o relatório de paridade entre o motor do navegador e o motor em python existem como uma pasta de trabalho que não está publicada no momento em que isto é escrito, então esta página não pode linkar você a ela. o que você pode conferir aqui: a tabela de fontes acima nomeia cada repositório e commit, então o corpus pode ser reconstruído a partir dessas âncoras, e o rules.js desta página é o motor exato, gerado a partir do de python. o motor do navegador concordou com o de python em cada um dos 12768 rótulos congelados.