corpus
el corpus son charters de Grok Bot publicados como texto plano en repositorios públicos de GitHub, snapshot 2026-09-04. el corpus estricto es el conjunto de fuentes menos 3 repositorios que no son la unidad de análisis (bibliotecas de skills y directorios de prompts de configuración del tipo "set up a new bot for me"). esto no es un censo de plantillas públicas de Grok Bot. los directorios de enlaces de instalación quedan fuera porque su texto de configuración vive en x.ai, que este proyecto nunca consulta.
corpus estricto: 1596 charters de 86 repositorios, inclusión de 40 a 3000 palabras, solo inglés, un charter = una descripción de rol de bot que una persona podría pegar en el perfil de un bot. el corpus completo (con los 3 repositorios excluidos de vuelta) tiene 2282 charters y se usa solo como línea de robustez en el informe, nunca en la página de revisión.
cada fuente está fijada a un commit sha resuelto en la fecha del snapshot y descargada como tarball por ese sha. nunca se contactó api.github.com ni x.ai. todos los charters están en inglés: los detectores, sus listas de tokens y las etiquetas a mano son solo en inglés, y los resultados en cualquier otro idioma no son confiables.
conjunto de fuentes: se leyeron 89 repositorios en total: las selecciones propias de las listas curadas más 253 repositorios enlazados desde las dos listas de descubrimiento, de los cuales 171 quedaron fuera por las clases de exclusión vigentes (herramientas de código, conectores, puentes, instaladores, directorios de enlaces, documentación), 8 no se pudieron descargar y 74 se descargaron y pasaron por la misma prueba de inclusión. cada repositorio está fijado a un commit sha. marco de muestreo: charters publicados en repositorios enlazados desde dos listas curadas tipo awesome-list. no se usó búsqueda de código.
fuentes
| repositorio | rama | commit sha | estado en el corpus estricto | charters |
|---|---|---|---|---|
| AmitMirgal/orgbot-hub | main | 7f65a8011fa119c1ab4321d4437170bd6f8d3ea1 | en el corpus | 1 |
| Chakhdz/grok-bot-token-saver | master | fe82eb28665bdef430020999f448013e8491a203 | en el corpus | 1 |
| EndeavorYen/grok-bot-skills | main | d1a0e777842821a95bcdab6c88c1a5ae37d0d194 | en el corpus | 14 |
| GlobalTC/steer | main | 2423bf4d347b6ec6c2208d7d5aa9ef6973e9c600 | en el corpus | 3 |
| HAEGONG/grok-bot-profiles | main | 6f3d07e566008175486228a509bd8461e5efb85f | en el corpus | 12 |
| HammeredSmithy/bull-trade | main | 11feb72876a9572746527521fe05e4cc48f00abd | en el corpus | 28 |
| Heyvhuang/werewolf-gamemaster | main | 2f18703f30815a295d52f6c09812a076e8354329 | en el corpus | 1 |
| HxHippy/grok-bot-arch | main | b7c44ba488f4da42d0006a3c126e597ac5a7d465 | en el corpus | 0 |
| KinGao294/grok-bot-orange-book | main | 1f689f8c7c9143dcdbdbd6ae631f9bdcd8572b23 | en el corpus | 0 |
| Logos52/grok-bot-packets | main | 20903e2a2830010345f7227e1fa685c3722c8f9b | en el corpus | 19 |
| Octo-o-o-o/grok-job-kit | main | 90894b2f42723dcae6e25c3e5252f1bfedec6019 | en el corpus | 10 |
| OpulentiaAI/gtm-agent-automations | main | 568371d0b5c5c0ed28597dcc93ac5b6ce938967f | en el corpus | 262 |
| PROJECT-073-X/grok-bot-workforce | main | 9786f76311c88ad3f12b9ec87ba995d9f994e332 | en el corpus | 1 |
| PramodDutta/botskills | main | abe793060a7e7ad18e89e1f254e4ad0806556354 | en el corpus | 119 |
| Steltic/steltic_grokbot | main | a76d5f315509b3a7c488844c6f1f0dfbb932785b | en el corpus | 1 |
| Uncle-Gizmo/grok-bot-info | main | e927c1836f80134c898ec94a40d2ce635c6c910a | en el corpus | 1 |
| WeSs1982/echo-chief-of-staff | main | 874dc50ec41637233f21bbc0f5256b938afa8b98 | en el corpus | 0 |
| WebDevJasonCameron/ExploreGrokBot | main | 58fe3532ccbd3aecf8af06ea4a3706ac659d8f8c | en el corpus | 5 |
| YannisKiefer/grokbot-x | main | cade7d95e2b60c2c60c53648d4d10ba87ae18443 | en el corpus | 10 |
| ZeroPointRepo/GrokBotDev | main | d2aa69f8640e2ccef42f4b11b664e234c34c211d | en el corpus | 137 |
| ZooHero500/plays | main | 65fbafc806431ed079a03a03ad474710f65ad31f | en el corpus | 110 |
| a70win-wq/usegrokbot | main | 49c1dd3182ed14d1d76a99be4034ce153323b2ca | en el corpus | 1 |
| aaravarr/openbot | main | b694d788b1e558112d0443943b1e0ba740075d92 | en el corpus | 3 |
| andrewkittridge/grokory | main | 193608e9304de658a77e218c73fea02f41136867 | en el corpus | 4 |
| banana2556/cursor-grokbot-helper | main | 19af0152c015848d5a10bfe1c85d9143bef08929 | en el corpus | 0 |
| bcharleson/grokbot-peekaboo | main | 862172e0abfe15c1abf1efc538545fc5f214bb18 | en el corpus | 1 |
| codejunkie99/rosterroom | main | a7ec5620c85ec19b1d1ac22321ccce531455484f | en el corpus | 80 |
| composio-community/awesome-grok-bots | main | d732af02159bc2cc8f350422aaf09908822c2882 | en el corpus | 20 |
| cs68614-hash/awesome-grokbot-templates | main | 577e696d4a7c128760a7952636c2d10cccfcc9ca | en el corpus | 0 |
| dadamingmax/Grok-Bot-Setup-and-Usage-Guide | main | ad3f3fbb2ae40582379910710a5521d715e72f8c | en el corpus | 0 |
| danielvegac/grok-bot-startup-services-outbound | main | 2ba35f365daa6eb7cf9cc7d52f6597b24c9aff24 | en el corpus | 4 |
| ddhjy/grok-bot-hub | main | 37e4ce343bee7cd05a972b1efda218232e525142 | en el corpus | 0 |
| divo12/awesome-grok-bot-templates | main | 184d4cc50c34899c00d21ba87ce2eb82da887c27 | en el corpus | 10 |
| dragosroua/grok-bot-add-plugin | main | 80459c4543d2845492fc64dc2ddc4a366e8564fd | en el corpus | 6 |
| ellelion/botteams | main | e478f8de0d6ee32b985dcb8c08d1d0fd5232bf9d | en el corpus | 70 |
| enderzcx/grok-bot-switch | main | c612786ef8ec5e70c67fc691fea85cee1f06e724 | en el corpus | 0 |
| ethanolivertroy/grokbot-cloudflare-inbox | main | 9c994514f37738482186b4c422c875f573b4ed98 | en el corpus | 2 |
| fantomsuj/grokbot | main | 7cf5d3d97d8df426f63a40b06dd408379fa5dc11 | en el corpus | 0 |
| function1st/PhoneZero | main | 98a72eb9456477ba3985d4f7a7dc0a22c22c50d2 | en el corpus | 11 |
| galleonlabs/hypergrok-trading-desk | main | 0274d9e2429ff68bef4fd05099deb3f0899fe593 | en el corpus | 27 |
| hariou/technocore-grokbot-ja | master | a442d32a6a6394826616407be9f8c20136e23e5f | en el corpus | 1 |
| hesreallyhim/awesome-claude-code | main | db4db53566d757e31d75536627747fcaef01d7f1 | en el corpus | 0 |
| jaredtrichard/grok-factory | main | 2e9f8e55935e9ec3cb8c1fa823c64bd043c4351b | en el corpus | 10 |
| jaredtrichard/grok-research | main | 957bf951721ba0004b7c8d61559d44810e3e6666 | en el corpus | 4 |
| jaskirat1616/grok-skills | main | dfadd540f887c3834e9043a29e9ff402b48aaf66 | en el corpus | 186 |
| jay-sahnan/growth-grok-bots | main | 8cf16436859e2dd3a47f40f1d328052f5a6e3c85 | en el corpus | 0 |
| jblack4vols/grok-bot | main | 6f284805b7351e8022d3286624290d13cc3c5293 | en el corpus | 2 |
| jeremybrasher/grokbot-skills | main | fa7d4587d50a589b46ed9c3576b5f340549e49a3 | en el corpus | 92 |
| jinank/great-grokbots | main | 1c318bf616d89574cc1ecde8758cf0c1950badd6 | en el corpus | 0 |
| kunchenguid/grok-ship | main | ae1f5a787e544dcec69b819370615b2fcbef0eab | en el corpus | 7 |
| kwakseongjae/awesome-grok-bot | main | 1023020613037e354c4526ec8ff2a26549566125 | en el corpus | 3 |
| kydlikebtc/awesome-grokbot | main | 00304a366a46657b43c2bdc061f3b69fa0f1db48 | en el corpus | 2 |
| lazerusrm/botrouter | main | 118f909ab0e4e16f15d8b932ced562d65f1dba38 | en el corpus | 1 |
| lroolle/awesome-grokbot-templates | main | a12c2684a994b17647841b882d89d27550323805 | en el corpus | 0 |
| lsj210001/crew-contract | main | 06d24e73f55e6550bcc53d9a8bebea80c6170b0b | en el corpus | 0 |
| lureilly1/botjobs | main | 76e9a0e7491730d067d38c51385718b2232d244a | en el corpus | 0 |
| mKay00/grok-bot-second-brain | master | dfa5d1dc83e34f9a93346c703334027d030d8876 | en el corpus | 11 |
| mahathir69/technocore-safe | main | 96d7006d351a7d7de0130aecfb5c00c3a1a3722c | en el corpus | 3 |
| maplefukku/grok-bot-ops | main | c3e54f9e078698b4195abf9a130ed43ba8d4e3be | en el corpus | 1 |
| matsutouya/note-kojo | main | fbf79e2c3c5a60544e6fc3ba5a87105132568c55 | en el corpus | 0 |
| matteoantoci/firstmate | master | dc26ad39f5584f23c8408478c6799c2bd69b0a1f | en el corpus | 2 |
| mergisi/awesome-grokbot | main | 6210f2034c5737d1be100e227c8d308d9757ecf4 | en el corpus | 113 |
| mostdesign01-sudo/grokbot-use-cases | main | 9cdb036e17099a6f08784219cfba5294a03883a6 | en el corpus | 0 |
| mozilla/diversity | master | 5e612f24d537b5e7b80ae0aa730c32e499b68db4 | en el corpus | 10 |
| mtrxdev/build-brief | main | c158ee5333d956b18efc11be187e558485b6684b | en el corpus | 3 |
| napiermd/heavy-lift-cloud-agents | main | 3ebcbd91d5d2b0ab69f7f178570d3c24f07ae484 | en el corpus | 1 |
| nescafe2009/dsh-grokbot | main | 8a3b70813fe5aa720ecddd940d65ec8d58acd771 | en el corpus | 0 |
| njpatel/omabot | main | 801cb4b1dc3d20e75b43094aed36c3703e3f72e5 | en el corpus | 0 |
| noam99moyal-sudo/podcast-summary-bot | main | f9b8e871de6880646ff5ad2b6e2a0464dcd44b4f | en el corpus | 1 |
| novusordos666/grokbot-outreach-agent-team | main | 4ea1fd613329f66a4c51c2f0c231afd0b471a18c | en el corpus | 6 |
| owenisas/grokbot-openai | main | bd2e81fe991f699d0d2482d665fef32be1088131 | en el corpus | 0 |
| p10ns11y/botify | main | 8e249c3b84262f5c1eaadd1aa7441de5e28f7df5 | en el corpus | 2 |
| pacifico-1106/grokbot-control-plane | main | 4162e5218537d3b3c6213a48195a556b01d3676c | en el corpus | 1 |
| palehonk0-o/grokbot-market-memory | main | 9314e92d77b86c94df6e023e106c76927a91106d | en el corpus | 6 |
| quolu/plaude | main | 7c18750f39df0ee5591c9fdacca6b9781dfd1890 | en el corpus | 0 |
| richard7463/askgrokwallet | main | bc46298b059352171490390584fd895d92649a48 | en el corpus | 1 |
| rockyzhuo/grok-bot-blue-book | main | ebb28026a630e70be8e3da578cf85d5919ed5e19 | en el corpus | 0 |
| s-hiraoku/grok-bot-playbook | main | 306c7a12019b2e5aa6457f9f3607e8ff5692c689 | en el corpus | 0 |
| shrdgn/grokbot-skills | main | ab16e780a80ce74c701022dec726f9174e625f79 | en el corpus | 74 |
| steve228uk/grok-bot-shopping | main | c0a52b214e594973cf149aff3ad23068ef59c3ce | en el corpus | 4 |
| swcstudiospace/PumpGrok | main | d16963a007b285f1a62687f7fc61c5506583559b | en el corpus | 32 |
| tal-giladi/grokbot-field-guide | main | cbdb6b1895f25b5adb2767622860ba33e35c32d2 | en el corpus | 1 |
| thomasbek3/hermes-bot-kit | master | 13b446128ee2831d4a1bfa29bfabe0f772ed80c6 | en el corpus | 1 |
| tiankonglan/awesome-grok-bot-template | main | 826c52a67c816c7c1321f761d27219ff639afa99 | en el corpus | 0 |
| vercel/vercel-plugin | main | 7b0a6f61b254b0149bb644cadfb588a5c46df0c2 | en el corpus | 41 |
| zhulin025/LaoA-GrokBot | main | 527c3b5746bed34da3a6d4f9747e483c84534a41 | en el corpus | 0 |
| Anil-matcha/awesome-grok-bot | master | 2412bacefee2cdc31ceb526443ad780a89a2a2cd | excluido: no es la unidad de análisis | 0 |
| aaron-he-zhu/aaron-marketing-skills | main | 33dc05b0eeac3f78f4621ff898a1b84c04a65bda | excluido: no es la unidad de análisis | 0 |
| elie222/botdirectory.ai | main | badedc0c985bf3e021634e3d7823ded02cd5545e | excluido: no es la unidad de análisis | 0 |
| RongleCat/awesome-grok-bot | main | e8af8ee56813e891657e63dafda90b5755ac021d | solo descubrimiento, sin charters | 0 |
| majiayu000/awesome-grok-bot | main | f7f692c71a6379f3849ad2df5bdf2e310b974268 | solo descubrimiento, sin charters | 0 |
las ocho reglas y la puerta de publicación
cada regla es una función pura sobre el texto normalizado en inglés del charter, el mismo código que corre en tu navegador en la página de revisión. cada regla se contrastó con 60 charters etiquetados a mano, a ciegas, antes de leer la salida del detector. dos puertas: la puerta a es el acuerdo a tres vías (true / false / unclear), la puerta b es el acuerdo de true contra no-true, ambas en 0,85. filas: 1 pasa la puerta a, los conteos de todo el corpus son publicables. 2 falla a, pasa b, solo es publicable el conteo de true del corpus. 3 falla ambas pero nunca inventa un true, así que el conteo de true del corpus es una cota inferior. 4 falla todo, solo muestra. en la página de revisión aparecen solo las filas 1 a 3.
| regla | qué pregunta | puerta a | puerta b | precisión en true | fila | número reportado |
|---|---|---|---|---|---|---|
| R1 approval gate | exigir un sí humano antes de una acción irreversible | 0,567 | 0,817 | 0,880 | 4 | solo muestra: 30 de n = 60, intervalo del 95% de 0,377 a 0,623 |
| R2 state file | mantener un archivo de estado entre corridas | 0,633 | 0,733 | 0,786 | 4 | solo muestra: 24 de n = 60, intervalo del 95% de 0,286 a 0,526 |
| R3 silence rule | permitir que una corrida vacía no envíe nada | 0,833 | 0,950 | 0,923 | 2 | 378 de 1596 (solo el conteo de true del corpus) |
| R4 ownership boundary | decir qué no toca el bot | 0,767 | 0,767 | 0,796 | 4 | solo muestra: 43 de n = 60, intervalo del 95% de 0,592 a 0,815 |
| R5 stop condition | definir cuándo termina la corrida | 0,817 | 0,817 | 0,932 | 4 | solo muestra: 49 de n = 60, intervalo del 95% de 0,701 a 0,894 |
| R6 undisclosed capability | nombrar cada herramienta que usa el bot en la definición de su rol | 0,517 | 0,517 | 0,326 | 4 | solo muestra: 14 de n = 60, intervalo del 95% de 0,144 a 0,354 |
| R7 visible secret | no llevar en el texto ninguna clave, token, llave privada ni host interno | 1,000 | 1,000 | - | 1 | 0 de 1596 llevan una forma de secreto (conteo congelado); tras corregir las formas, 0 de 1596, mira la nota de abajo |
| R8 injection resistance | tratar el contenido que lee el bot (páginas, correos, tickets, texto pegado) como datos, no como órdenes | 0,917 | 0,917 | 0,786 | 1 | 1302 de 1596 guardan silencio sobre la pregunta (todo el corpus); 294 de 1596 resistentes; el conteo de expuestos es un piso del detector, mira abajo |
dos números fáciles de malinterpretar
formas de secreto: 0 de 1596 charters llevan una. este corpus son repositorios públicos curados, donde la protección de push y el escaneo de secretos de github hacen casi imposible que una clave viva sobreviva, así que el cero dice que la búsqueda se hizo en la superficie equivocada, no que nadie filtre. no se afirma nada sobre los enlaces compartidos, que este proyecto nunca lee.
parte de ese cero es el detector, no solo la superficie. las formas con las que corrió la auditoría exigían una cola alfanumérica sin cortes después del prefijo y la capa de texto sobre la que corrían eliminaba los guiones bajos, así que claves con la forma sk-ant-api03-..., sk-proj-... y ghp_... nunca fueron detectables. el 2026-09-05 se ampliaron las formas: una clave de api ahora es sk- seguido de hasta 40 caracteres de letras, dígitos, guiones o guiones bajos y luego al menos 16 alfanuméricos, un token de github es ghp_, gho_, ghu_, ghs_ o ghr_ más 20 alfanuméricos o github_pat_ más 20 caracteres, la forma de slack también acepta xoxe-, y la capa de texto conserva los guiones bajos dentro de un token. una dirección de correo ya no cuenta como secreto: la página de revisión la reporta aparte como algo que mirar antes de compartir. el corpus se volvió a escanear solo para esta regla, verificando byte a byte que las etiquetas de todas las demás no cambiaron: 0 de 1596 charters llevaban una forma de secreto antes, 0 de 1596 después (1 llevan una dirección de correo). los números publicados no cambian.
inyección: el número reportado es el silencio, 1302 de 1596 charters no dicen nada en ningún sentido sobre si el contenido que lee el bot puede darle órdenes. el detector encontró 0 charters de 1596 que le dicen al bot obedecer ese contenido, y 0 de los 60 charters etiquetados a mano; una muestra anterior etiquetada a mano sobre el corpus más amplio encontró un charter expuesto que el detector no había visto, así que un cero del detector aquí es un piso, no un hecho.
límites
- esto lee texto, no comportamiento. un charter con una línea de aprobación puede correr igual sin ella, y uno sin ella puede correr con cuidado.
- el corpus son charters en inglés publicados en repositorios públicos de github el 2026-09-04, no un censo de plantillas públicas. un solo repositorio aporta 0,164 del corpus estricto y una sola familia de casi duplicados (jaccard de 5-gramas en 0,50 o más) cubre 205 de 1596 charters, así que cada tasa los describe en parte a ellos.
- las reglas que están en la fila 4 (Aprobación, Memoria, Límite, Terminado, Herramientas) se reportan solo desde la muestra etiquetada a mano de 60. no están en la página de revisión, sea cual sea el titular del artículo que acompaña.
- los detectores son expresiones regulares sobre texto en inglés. una cláusula escrita de una forma que el corpus nunca usó pasará desapercibida, y un charter en otro idioma se leerá mal, por eso la página de revisión empieza por lo que tu charter ya hace y nunca le pone nota.
reproducir
el pipeline completo (python, solo biblioteca estándar), los números congelados con sus hashes sha256, las etiquetas a mano a ciegas, el registro de decisiones y el informe de paridad entre el motor del navegador y el motor de python existen como una carpeta de trabajo que no está publicada al momento de escribir esto, así que esta página no puede enlazarte a ella. lo que sí puedes comprobar aquí: la tabla de fuentes de arriba nombra cada repositorio y commit, así que el corpus se puede reconstruir desde esos anclajes, y rules.js en esta página es el motor exacto, generado a partir del de python. el motor del navegador coincidió con el de python en cada una de las 12768 etiquetas congeladas.