tinystruct-patterns
Ajuda seu agente a trabalhar com o framework Java 'tinystruct'. Ele pode gerar scripts, criar classes e configurar rotas para projetos que usam essa tecnologia.
O que ela faz
Este guia ensina como usar o framework Java tinystruct para criar aplicações. Ele foca em fazer com que suas aplicações funcionem tanto no terminal (linha de comando) quanto na web, sem precisar de configurações extras.
Quando usar
- ✓Ao iniciar um novo projeto com tinystruct.
- ✓Quando quiser que sua aplicação rode em linha de comando e na web.
- ✓Ao gerar os scripts de inicialização (bin/dispatcher) para seu projeto.
Exemplo do que pedir para a IA
“Como eu crio um script de inicialização para meu projeto tinystruct?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O tinystruct usa um script chamado `bin/dispatcher` (ou `bin/dispatcher.cmd` no Windows) como a principal ferramenta. Ele permite rodar suas funções tanto no terminal quanto em um servidor web, de forma integrada.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add affaan-m/ECC --skill tinystruct-patternsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/tinystruct-patterns/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões de Desenvolvimento tinystruct
Padrões de arquitetura e implementação para construir módulos com o framework Java tinystruct – um framework leve e de alta performance que trata CLI e HTTP como cidadãos iguais, não exigindo um método main() e configuração mínima.
Princípio Central
CLI e HTTP são cidadãos iguais. Cada método anotado com @Action deve, idealmente, ser executável tanto de um terminal quanto de um navegador web sem modificação. Essa capacidade "dual-mode" é a filosofia de design central do tinystruct.
Ferramenta Primária de Desenvolvimento: bin/dispatcher
bin/dispatcher é a ferramenta padrão e de maior prioridade para desenvolver, executar, testar e depurar uma aplicação tinystruct – use-a antes de uma configuração de execução de IDE, um main() escrito manualmente, curl ou um navegador. Como cada @Action é dual-mode por design, bin/dispatcher permite que você exercite roteamento, vinculação de argumentos e lógica de negócios diretamente do terminal, com o ciclo de feedback mais rápido possível e sem a necessidade de servidor/navegador.
# Run any @Action directly - the fastest way to verify a new action works
# (the class must be imported; see --import or default.import.applications in application.properties)
bin/dispatcher greet/James --import com.example.MyService
bin/dispatcher echo --words "Praise the Lord"
# Start the HTTP server when you need the web-facing counterpart
bin/dispatcher start --import org.tinystruct.system.HttpServer
# Import additional Application/MCP classes for the current run
# (one --import per class; a comma-separated list fails with ClassNotFoundException)
bin/dispatcher start --import org.tinystruct.system.HttpServer --import com.example.MyService
# Discover what's available
bin/dispatcher --help
bin/dispatcher --version
Adote este fluxo de trabalho por padrão: implemente o @Action, execute-o imediatamente via bin/dispatcher <action> para confirmar que ele se comporta corretamente no modo CLI e só inicie o servidor HTTP (também via bin/dispatcher start ...) quando precisar verificar o caminho voltado para a web (por exemplo, mode = Mode.HTTP_POST, sessões, uploads de arquivos). Nunca codifique um main(String[] args) como ponto de entrada de uma aplicação – bin/dispatcher (ou bin/dispatcher.cmd no Windows) é o único ponto de entrada para cada módulo.
Gerando bin/dispatcher e bin/dispatcher.cmd
Todo projeto tinystruct precisa de seu launcher em bin/. O framework o gera – nunca o escreva à mão, e nunca o copie de outro projeto ou substitua um main(). ApplicationManager.init() escreve o launcher para o sistema operacional atual em bin/ sob o diretório de trabalho sempre que ele estiver faltando, a partir de templates dentro do jar do tinystruct, com a versão desse jar preenchida. Quebras de linha e o bit executável já estão corretos.
1. Encontre a versão do tinystruct contra a qual o projeto está sendo compilado: a propriedade <tinystruct.version> ou a dependência org.tinystruct:tinystruct em pom.xml. O jar deve ser alcançável, em ~/.m2/repository/org/tinystruct/tinystruct/<version>/ (execute mvn dependency:resolve se não estiver) ou no lib/ do projeto.
2. A partir da raiz do projeto, execute o framework uma vez:
java -cp ~/.m2/repository/org/tinystruct/tinystruct/<version>/tinystruct-<version>.jar \
org.tinystruct.system.Dispatcher --version
Substitua <version> pela versão encontrada na etapa 1. No Windows, use %USERPROFILE%\.m2\repository\org\tinystruct\tinystruct\<version>\tinystruct-<version>.jar e a mesma classe. Isso cria apenas o script para o SO em que você o executou, e apenas se ele ainda não existir:
| Executado em | Cria |
|---|---|
| Linux, macOS | bin/dispatcher (executável, LF) |
| Windows | bin\dispatcher.cmd (CRLF) |
3. Verifique. A partir da raiz do projeto, execute bin/dispatcher --version (Windows: bin\dispatcher.cmd --version). Ele imprime Dispatcher (cli) (built on tinystruct-<version>), e o VERSION dentro do script é igual à versão do jar. Em seguida, bin/dispatcher --help lista os comandos e todas as ações importadas. Mostre ao usuário o arquivo que você criou.
4. Obtenha ambos os scripts executando a etapa 2 em cada SO, ou deixe um colega de equipe ou CI no outro SO executá-lo e commitar o resultado. Commite ambos, para que um checkout em qualquer SO funcione. Não tente simular o outro SO com -Dos.name=…: no Windows, ele falha (UnsupportedOperationException de setPosixFilePermissions) e deixa um bin/dispatcher vazio. .gitattributes recomendado, para que um checkout não corrompa as quebras de linha:
…
Perguntas frequentes
O que é o `bin/dispatcher`?
É um script que inicia sua aplicação tinystruct. Ele é a forma recomendada de rodar, testar e depurar seu código, funcionando tanto para linha de comando quanto para web.
Por que usar `bin/dispatcher` em vez de um `main()`?
O `bin/dispatcher` foi feito para o tinystruct e garante que suas funções rodem em ambos os modos (terminal e web) sem alterações. Ele simplifica o desenvolvimento e a configuração.
Como o `bin/dispatcher` é criado?
O próprio framework tinystruct o gera automaticamente quando ele não existe. Você só precisa rodar um comando Java específico uma vez, e ele cria o script para o seu sistema operacional.
Detalhes
Descrição original do autor
Expert guidance for developing with the tinystruct Java framework. Use when working on the tinystruct codebase or any project built on tinystruct — including generating the bin/dispatcher and bin/dispatcher.cmd launcher scripts when a project lacks them, creating Application classes, @Action-mapped routes, unit tests, ActionRegistry, HTTP/CLI dual-mode handling, the built-in HTTP server, the event
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #299
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
api-and-interface-design
Ajuda a criar APIs e interfaces bem definidas. É útil ao projetar como diferentes partes de um software vão se comunicar.
addyosmani/agent-skills
mason
Ajuda seu agente a escrever código limpo e funcional. Ele segue as regras definidas para garantir que tudo funcione como esperado.
sickn33/agentic-awesome-skills
max
Faz seu agente melhorar o código existente sem mudar o que ele faz. Ele deixa o código mais fácil de ler e manter.
sickn33/agentic-awesome-skills