@vibe2founder/tests2dialects 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/examples/imperative.spec.d.ts +1 -0
  2. package/dist/examples/imperative.spec.js +46 -0
  3. package/dist/examples/math.spec.d.ts +1 -0
  4. package/dist/examples/math.spec.js +39 -0
  5. package/dist/examples/narrative.spec.d.ts +1 -0
  6. package/dist/examples/narrative.spec.js +47 -0
  7. package/dist/examples/polyglot-shopping-cart.spec.d.ts +11 -0
  8. package/dist/examples/polyglot-shopping-cart.spec.js +161 -0
  9. package/dist/examples/sanity.spec.d.ts +1 -0
  10. package/dist/examples/sanity.spec.js +39 -0
  11. package/dist/examples/showcase-api.spec.d.ts +1 -0
  12. package/dist/examples/showcase-api.spec.js +62 -0
  13. package/dist/examples/test-api.d.ts +1 -0
  14. package/dist/examples/test-api.js +32 -0
  15. package/dist/packages/api-test-dialect/index.d.ts +28 -0
  16. package/dist/packages/api-test-dialect/index.js +102 -0
  17. package/dist/packages/reqify/index.d.ts +12 -0
  18. package/dist/packages/reqify/index.js +24 -0
  19. package/dist/src/cli.d.ts +6 -0
  20. package/dist/src/cli.js +330 -0
  21. package/dist/src/index.d.ts +134 -0
  22. package/dist/src/index.js +374 -0
  23. package/dist/src/semantic/core.d.ts +24 -0
  24. package/dist/src/semantic/core.js +16 -0
  25. package/{types/api-types.ts → dist/types/api-types.d.ts} +6 -11
  26. package/dist/types/api-types.js +1 -0
  27. package/package.json +59 -35
  28. package/packages/api-test-dialect/index.ts +132 -132
  29. package/readme.md +58 -58
  30. package/src/cli.ts +1 -1
  31. package/src/index.ts +19 -16
  32. package/src/semantic/core.ts +26 -0
  33. package/CHANGELOG.md +0 -73
  34. package/bun.lock +0 -22
  35. package/bunfig.toml +0 -2
  36. package/critica.md +0 -77
  37. package/docs/4-ideias.md +0 -66
  38. package/docs/api-api.md +0 -93
  39. package/docs/api-imperativo.md +0 -125
  40. package/docs/api-matematico.md +0 -145
  41. package/docs/api-narrativo.md +0 -181
  42. package/docs/guia-rapido.md +0 -189
  43. package/docs/whitepaper.md +0 -21
  44. package/examples/imperative.spec.ts +0 -58
  45. package/examples/math.spec.ts +0 -52
  46. package/examples/narrative.spec.ts +0 -61
  47. package/examples/polyglot-shopping-cart.spec.ts +0 -212
  48. package/examples/sanity.spec.ts +0 -54
  49. package/examples/showcase-api.spec.ts +0 -70
  50. package/examples/test-api.ts +0 -36
  51. package/infograficos/detalhado.png +0 -0
  52. package/infograficos/mobile.png +0 -0
  53. package/infograficos/normal.png +0 -0
  54. package/landing-page/README.md +0 -38
  55. package/landing-page/bun.lock +0 -609
  56. package/landing-page/eslint.config.js +0 -23
  57. package/landing-page/index.html +0 -17
  58. package/landing-page/package-lock.json +0 -2962
  59. package/landing-page/package.json +0 -34
  60. package/landing-page/postcss.config.js +0 -6
  61. package/landing-page/public/vite.svg +0 -1
  62. package/landing-page/src/App.tsx +0 -358
  63. package/landing-page/src/assets/react.svg +0 -1
  64. package/landing-page/src/index.css +0 -34
  65. package/landing-page/src/main.tsx +0 -10
  66. package/landing-page/tailwind.config.js +0 -59
  67. package/landing-page/tsconfig.app.json +0 -28
  68. package/landing-page/tsconfig.json +0 -7
  69. package/landing-page/tsconfig.node.json +0 -26
  70. package/landing-page/vite.config.ts +0 -7
  71. package/logo.png +0 -0
  72. package/output.log +0 -60
  73. package/podcast/O_Matem/303/241tico,_o_Narrador_e_o_Engenheiro.json +0 -0
  74. package/podcast/O_Matem/303/241tico,_o_Narrador_e_o_Engenheiro.md +0 -0
  75. package/podcast/critica-Dialetos_de_teste__inova/303/247/303/243o_ou_fragmenta/303/247/303/243o_.json +0 -0
  76. package/podcast/critica-Dialetos_de_teste__inova/303/247/303/243o_ou_fragmenta/303/247/303/243o_.md +0 -0
  77. package/podcast/critica-Unificar_filosofia_e_pr/303/241tica_na_documenta/303/247/303/243o_(7_words__covers_t.md +0 -1
  78. package/podcast/critica-Unificar_filosofia_e_pr/303/241tica_na_documenta/303/247/303/243o__7_words__covers_t.ogg +0 -0
  79. package/podcast/critica2-Sil/303/252ncio_estrat/303/251gico_e_sobrecarga_em_READMEs.ogg +0 -0
  80. package/podcast/critica2.json +0 -3191
  81. package/podcast/critica2.md +0 -1
  82. package/podcast/debate-Dialetos_de_teste__inova/303/247/303/243o_ou_fragmenta/303/247/303/243o_.json +0 -0
  83. package/podcast/debate-Dialetos_de_teste__inova/303/247/303/243o_ou_fragmenta/303/247/303/243o_.md +0 -0
  84. package/reports/01-01-2026_00-45.md +0 -40
  85. package/reports/01-01-2026_02-30.md +0 -37
  86. package/reports/03-02-2026_10-55.md +0 -8
  87. package/reports/03-02-2026_11-45.md +0 -13
  88. package/reports/03-02-2026_11-50.md +0 -10
  89. package/reports/26-01-2026_16-25.md +0 -31
  90. package/reports/26-01-2026_19-20.md +0 -27
  91. package/reports/31-12-2025_22-35.md +0 -25
  92. package/reports/31-12-2025_22-45.md +0 -15
  93. package/slides/Dialetos_de_Teste_Um_Executor_M/303/272ltiplos_Vocabul/303/241rios.pdf +0 -0
  94. package/tabela.html +0 -350
  95. package/tsconfig.json +0 -22
  96. package/www/index.html +0 -1344
@@ -1 +0,0 @@
1
- Bem-vindos! Hoje a nossa conversa é sobre os documentos Crítica e Esclarecimento e o Readme.md do Framework One Proof for All. Isso! É um material que propõe uma filosofia bem interessante com múltiplos dialetos de escrita. Exato! E a gente vai explorar aqui como deixar a conexão entre essa visão filosófica e a parte prática ainda mais forte. Vamos lá! Então, o primeiro ponto é este. A unificação da mensagem principal entre os dois documentos pode, e muito, solidificar a proposta de valor do framework. Certo. O documento Crítica e Esclarecimento é, olha, é brilhante. Ele vem de a filosofia aditiva, a ideia de especialização por contexto. É, assim, uma visão muito poderosa. E ele acalma o desenvolvedor, né? Dizendo que não precisa reescrever o legado. Exatamente. Só que aí você pula para o readme.md e a experiência muda. É um mergulho direto, bem denso, nos três dialetos, nas APIs. E a conexão se perde um pouco ali no meio do caminho. Perde. A ponte entre o porquê da filosofia e o o quê dos dialetos podia ser mais explícita. Mas assim, será que essa separação não é de propósito? Eu digo isso porque muitos desenvolvedores, e eu me incluo nessa, às vezes pulam a parte filosófica e vão direto para o código. Sim, para o como usar. É, não tem o risco de, se a gente misturar tudo, o readme ficar verboso demais para quem só quer ir direto ao ponto? É uma ótima pergunta e, olha, em 90% dos casos eu concordaria com você. Só que, para o One Proof for All, a filosofia é o produto. É o grande diferencial. Ah, entendi. Não é só mais uma sintaxe. Não é. A grande venda é essa ideia de que a linguagem do teste tem que espelhar a natureza do problema. Se o dev pula isso, ele olha os três dialetos e pensa o quê? Nossa, três APIs para aprender? Que complicado. Exato. Quando a mensagem é justamente o oposto. Escolha uma que se encaixa no seu mundo e pode até ignorar as outras por agora. A ponte tem que ser a primeira coisa que ele vê. Faz todo sentido. Então, a filosofia não é um prefácio. É tipo o manual de instruções para entender a ferramenta. Exatamente. Nesse caso, a sugestão é trazer essa alma do crítica e esclarecimento para dentro do readme.md. Não como um bloco de texto teórico, mas descendo os conceitos na própria apresentação, né? Isso. Os dialetos deixam de ser só features e viram a prova viva daquela filosofia em ação. E como seria isso na prática? Pode ser bem concreto. Pensa assim. Logo no início do Readme.md, antes de qualquer dialeto, uma sessão curta. Algo como a ferramenta certa para a tarefa certa, nossa filosofia em ação. Legal. E ali, em dois parágrafos, a gente resgata a essência da filosofia aditiva. Perfeito. E essa conexão pode continuar na apresentação de cada dialeto. Em vez de só dizer, dialeto matemático para testes científicos, a gente amarra com a persona. Como? Tipo, para o cientista de dados que pensa em provas axiomáticas, o dialeto matemático é a resposta. Ele concretiza nossas filosofias e especializa por contexto Sabe isso d um prop imediato Perfeito E at a frase de abertura do With Me MD pode ser transformada Em vez de algo genérico. Um soco direto na dor, já conectando com a solução. Pense em algo como, cansado de descrever um teorema matemático como a linguagem de comportamento, o One Proof for All nasce da filosofia aditiva. Em vez de substituir, a gente adiciona o vocabulário que falta. Uau! Em uma frase você vendeu o problema, a solução e a filosofia. A narrativa virou uma só. Exato. Mesmo com essa conexão, a gente ainda parte do princípio que o desenvolvedor sabe que tem um problema. Ele pode olhar para isso e pensar, interessante, mas meu describe it funciona bem, obrigado. Hum, bom ponto. Como a gente faz ele sentir que a ferramenta que ele usa hoje, que é o padrão da indústria, talvez não seja o bastante. Excelente! E essa é exatamente a nossa segunda observação. Explicitar a dor que cada dialeto resolve acelera muito a adoção. A identificação do usuário com a ferramenta, né? Isso. A documentação atual explica muito bem o que cada dialeto é, a vibe dele, para quem se destina. Tá claro. Um é científico, outro é narrativo, outro é rigoroso. Mas não está explícito por que isso é necessário. O material não gasta tempo articulando desconforto, sabe? O desconforto de usar Describe It para provar um algoritmo. É isso. Eu já passei por isso mil vezes. Você está testando uma função de criptografia pura, matemática pura, E o framework te força a escrever, describe SHA-256, it should produce a valid hash. Parece. Parece errado. Informal. Você não está descrevendo um comportamento. Você está provando uma verdade. Essa inadequação da linguagem é uma dor real, mas que a gente se acostuma a ignorar. Exato. Se a documentação consegue nomear essa dor... A conexão é imediata. A oportunidade aqui é transformar a apresentação de cada dialeto numa pequena narrativa de problema-solução. Antes da API, antes do código, a gente dedica um parágrafo para enquadrar o problema. Uma sessão A dor que a gente resolve, para cada um. Isso cria um gancho emocional. O leitor pensa, nossa, sim, eu odeio fazer isso. E aí, quando a solução aparece, não é mais uma API nova para aprender. É um alívio. Vamos desenhar isso, então, para o dialeto matemático. A gente poderia começar essa sessão, o problema, com a história que você mesma contou. Você está testando uma função de criptografia. Escrever describe e it soa informal e impreciso. A linguagem da ferramenta não espelha o rigor do seu código. Você não quer descrever. Você quer provar. Qualquer pessoa que já mexeu com o algoritmo puro vai sentir isso na hora. Na hora. E para o dialeto narrativo, qual é a dor ali? Pensa na barreira clássica entre o time de produto e o de engenharia. Ah, essa é a clássica. O PM escreve um card, o dev implementa e escreve um teste que só o outro dev entende. E o PM, que é o dono da regra de negócio? Ponto. Fica no escuro, torcendo para que tudo tenha sido coberto. A dor é a falta de uma linguagem comum. Exatamente. Então a gente enquadra o problema. Seu PM precisa validar as regras de negócio, mas não consegue ler seus testes. It should return for 03 grego para ele E se o pr teste fosse a documenta E se ele lesse como cen usu sem permiss tenta acessar o panel de admin A solução vira um alívio para essa dor de comunicação. Perfeito. E para o dialeto imperativo, a dor me parece um pouco mais sutil. Describe it funciona bem para APIs, né? Funciona, mas qual é a vibe da linguagem? É descritiva? Comportamental? Certo. Agora imagina que você está testando uma integração com um sistema bancário. Ou validando a conformidade com um contrato de API super rígido, com implicações legais. A linguagem do teste precisa ter o mesmo peso. O mesmo peso e autoridade. Usar describe it pode soar frágil, quase passivo. Entendi. A dor aqui é de autoridade. A linguagem do teste não impõe o respeito que o contrato exige. Exato. Então o problema seria, seus testes de integração precisam garantir conformidade com um contrato rígido. Usar Describe It soa frágil. Você não quer apenas descrever o que a API faz. Você precisa garantir sua conformidade e verificar cada cláusula. A troca de vocabulário muda completamente o peso do teste. Faz todo sentido. Com essa abordagem, cada dialeto se torna um herói resolvendo um problema específico e familiar. A ferramenta deixa de ser abstrata e passa a ser pessoal. Ok, estou convencida. A ponte filosófica está lá, a dor está articulada. Eu, como desenvolvedora atua animada, abro o Read Me Unibd pronta para resolver meus problemas e dou de cara com três dialetos ou uma tabela roseta, uma sessão sobre uso misto. E aí? De repente, a promessa de aprender só um parece distante e eu me sinto um pouco sobrecarregada. Por onde eu começo? E aí está a armadilha. A gente gastou esse tempo todo convencendo o usuário e agora a gente corre o risco de perdê-lo por uma sobrecarga de informação. O que nos leva ao terceiro ponto, imagino. Exatamente. A criação de um caminho de aprendizado guiado pode diminuir a carga cognitiva inicial e converter interesse em uso prático. Os documentos, como estão, são uma excelente enciclopédia. Se você já sabe o que quer, encontra rápido. Mas para um novato, uma enciclopédia é o lugar mais assustador para começar. Ele não precisa de uma enciclopédia. Ele precisa de um mapa do tesouro com um X marcando o primeiro passo. É a clássica tensão entre documentação de referência e guia de aprendizado. O que a gente precisa é reestruturar o readme.md para ser esse mapa. Exato. A primeira experiência do usuário com a ferramenta não pode ser uma tabela comparativa. tem que ser uma vitória. Rápida, fácil e gratificante. Isso cria momentum, sabe? Totalmente. Então a primeira coisa a fazer é criar essa vitória. No topo do readme.md, uma sessão nova. Seu primeiro teste em 5 minutos. Um quick start. Isso. A gente pega o dialeto mais comum, talvez um imperativo para um teste de API, e coloca um exemplo completo. NPM install, o código como rodar, copiou, colou, rodou, passou. Pronto. Em cinco minutos, o usuário não só entendeu a proposta, como já usou com sucesso. O engajamento é outro. Adorei. Depois dessa vitória inicial, ele está mais aberto a explorar. Mas a escolha entre os três dialetos ainda pode ser um ponto de atrito. E se a gente transformasse essa escolha em algo interativo ou quase um jogo? Uma sess visual tipo qual dialeto para voc Como um fluxograma Exato Ou um pequeno question Pergunta simples Voc est testando um algoritmo puro l matem Se sim, uma seta aponta. Seu caminho é o dialeto matemático. Seu teste precisa ser lido por não técnicos. Sim, vá de dialeto narrativo. Você está validando contratos, integrações. Sim, dialeto imperativo é o seu lar. Isso transforma uma tarefa de pesquisa numa decisão guiada de um minuto. Fantástico! Isso remove completamente a ansiedade da escolha. E o que a gente faz com os conceitos mais complexos, tipo a tabela roseta e o modo poliglota? A gente honra eles, mas no lugar certo. São ferramentas poderosíssimas, mas para um usuário avançado. Ou para quem está migrando um projeto inteiro. Exato. Então, a gente move isso para o final do documento, numa sessão de tópicos avançados ou guia de migração. O novo usuário nem precisa saber que eles existem no primeiro contato. A gente limpa o caminho principal. Tira todos os obstáculos. E tem mais uma coisa. O documento Crítica e Esclarecimento tem um exemplo ótimo de como o One Proof for All pode coexistir com testes legados. Ah, sim. Isso é uma das maiores barreiras para adoção. O medo de ter que reescrever tudo. Então a gente pode pegar esse exemplo e criar uma pequena sessão no readme.md. Como adotar gradualmente. Um passo a passo mostrando como uma equipe pode começar a usar o framework em um único arquivo novo. Numa Codebase que já tem centenas de testes em geste ou moca. Isso reforça a filosofia aditiva e mostra que a adoção pode ser indolor. Perfeito. Com isso, a jornada fica completa, né? Você chega, tem uma vitória em cinco minutos, um guia te ajuda a escolher seu caminho, você aprende o básico do seu dialeto. E quando estiver pronto, tem um guia de tópicos avançados e de migração te esperando. Deixou de ser uma enciclopédia e virou um tutor pessoal. Resumindo, então, a documentação e a filosofia do One Proof for All são excepcionais. A proposta de valor é nítida, muito relevante. O nosso foto aqui foi refinar a jornada do usuário. Isso, para que a experiência prática no readme.md esteja totalmente à altura da visão brilhante que foi apresentada no Crítica e Esclarecimento. Exatamente. A primeira grande ação é fortalecer essa ponte entre a filosofia e a prática, tecendo os conceitos do porquê diretamente na apresentação do como. Depois, em vez de só apresentar os dialetos, articular a dor que cada um deles resolve. Isso para criar uma conexão imediata e transformar a ferramenta em uma solução para um problema real, que o leitor sente. E por fim, o mais crucial para a adoção, projetar um caminho de onboarding que convida em vez de intimidar. Começando com uma vitória rápida no Quickstart, guiando a escolha do dialeto de forma visual. E tratando os conceitos avançados como que são, conteúdo para quem já está a bordo, não para quem está decidindo se quer embarcar. Com esses ajustes, a documentação evolui de um excelente manual de referência para se tornar uma poderosa ferramenta de conversão. Guiando o usuário do interesse à adoção de forma fluida e gratificante. O trabalho está incrível e a visão por trás dele é muito forte. Com certeza. Adoraríamos ver a evolução deste material. Sinta-se à vontade para submetê-lo novamente para nós após as revisões.