Pular para o conteúdo
Skillpedia
APIs e servidores (backend)280 mil · #299

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

https://github.com/affaan-m/ECC/blob/main/skills/tinystruct-patterns/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/skills/tinystruct-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/tinystruct-patterns/SKILL.md -o SKILL.md
Conteú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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas