a5-coin

Gera listas de verificação de coleção de moedas em formato A5 para fichário Filofax, prontas para impressão em PDF. Ative quando o usuário solicitar uma lista de moedas imprimível, inserção para fichário, PDF de coleção de moedas, lista A5 ou qualquer combinação de "moeda" + "imprimir" / "fichário" / "lista" / "PDF". Também ative ao iterar sobre um PDF existente de lista de moedas — reformatando, adicionando séries, ajustando layout. Essa skill codifica regras de formatação complexas para ReportLab em papel A5 com margens para perfuração de 6 furos, impressão a laser em escala de cinza e fonte Carlito (equivalente à Calibri).

O que é a5-coin?

Esta skill gera PDFs de checklists de moedas no formato A5, otimizados para fichários Filofax com perfuração de 6 furos. Útil para numismatas que desejam uma lista de verificação impressa, organizada por séries, com colunas para nome, período, ano e status de coleção ("Tenho" / "Preciso"). A skill usa ReportLab, com layout especialmente ajustado para papel A5 (148×210 mm) e impressão a laser em escala de cinza, evitando dependência de cores. Ela suporta fontes Carlito (compatível com Calibri), desenha guias de perfuração, aplica hachura em linhas coletadas, seções com cabeçalhos em barra preta, e garante que as colunas de nome, período e status mantenham o mesmo tamanho de fonte (11pt) para um visual profissional. O fluxo de páginas é contínuo, sem páginas em branco ou seções separadas, e gera uma página de capa com estatísticas da coleção. Indicada para plataformas como Claude Code e claude.ai, salvando o PDF em diretório de saída e renderizando com pdf2image para revisão visual.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cercit/AI-Skills/tree/main/a5-coin

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Gerador de PDF de Checklist de Moedas A5

Quando usar

  • O usuário deseja uma lista de verificação de coleção de moedas imprimível
  • O usuário menciona A5, Filofax, fichário ou páginas de planejador para moedas
  • O usuário quer cruzar uma exportação do Numista com uma lista mestre de séries
  • O usuário está iterando sobre um PDF de checklist de moedas gerado anteriormente

Configuração da Página

from reportlab.lib.pagesizes import A5
PAGE_W, PAGE_H = A5  # 148mm x 210mm (419,53 x 595,28 pts)

LEFT_M = 18*mm    # MAIS LARGA — desobstrui a perfuração de 6 furos Filofax
RIGHT_M = 6*mm
TOP_M = 9*mm
BOT_M = 8*mm
USABLE_W = PAGE_W - LEFT_M - RIGHT_M  # ~124mm

Guias de Perfuração de 6 Furos

Desenhe em cada página. Posições padrão dos furos Filofax A5 a partir da borda superior:

HOLE_POSITIONS_MM = [19, 51, 70, 140, 159, 191]
for h in HOLE_POSITIONS_MM:
    y = PAGE_H - h*mm
    c.setStrokeColor(HexColor("#CCCCCC"))
    c.setLineWidth(0.25)
    c.circle(4.5*mm, y, 2.2*mm, stroke=1, fill=0)

Fonte

Use Carlito (metricamente compatível com Calibri, gratuita sob a Licença de Fonte Aberta SIL). No Linux geralmente está em:

/usr/share/fonts/truetype/crosextra/Carlito-Regular.ttf
/usr/share/fonts/truetype/crosextra/Carlito-Bold.ttf
/usr/share/fonts/truetype/crosextra/Carlito-Italic.ttf

No Windows ou macOS, baixe Carlito do Google Fonts e aponte para esses arquivos.

Registre as três variantes. Nunca use Helvetica como fallback: o layout abaixo é ajustado para métricas estilo Calibri.

Regras Tipográficas (RESTRIÇÕES RÍGIDAS)

ElementoFonteTamanhoNotas
Título da capaCarlito-Bold20ptCentralizado em faixa preta
Subtítulo da capaCarlito-Bold16ptAbaixo do título
Cabeçalhos de seçãoCarlito-Bold8,5-9ptBranco sobre barra preta
Cabeçalhos de colunaCarlito-Bold7,5ptCinza, acima da linha separadora
Texto do corpo — TODAS as colunasCarlito / Carlito-Bold11ptUniforme em Nome, Período, Agora
Linha de detalhe coletadoCarlito-Italic8,5ptCinza, abaixo da linha coletada
RodapéCarlito6ptNúmero da página + nome do checklist
Coluna de valor facialCarlito9ptAlinhado à direita, abreviado (5Y, 10Y, 1J)

Crítico: mantenha as colunas Nome, Período e Agora no MESMO tamanho de fonte (11pt). Tamanhos mistos parecem amadores em uma página impressa.

Layout das Linhas

ROW_H = 16-18      # pts — espaçamento generoso entre linhas
SEC_H = 17          # altura da barra de cabeçalho de seção
COL_H = 13          # altura do cabeçalho de coluna
COLLECTED_EXTRA = 11 # altura extra para linha de detalhe em linhas coletadas
  • Desenhe uma linha separadora sutil (0,2pt, #DDDDDD) na parte inferior de cada linha
  • Fundos alternados de linhas: linhas pares recebem preenchimento #EBEBEB
  • Linhas coletadas: texto em negrito + marca de seleção na caixa de verificação

Posições das Colunas (a partir de LEFT_M)

COL_CK = 0          # caixa de verificação
COL_YR = 11         # ano
COL_NM = 36         # nome da moeda (coluna principal)
# Colunas do lado direito — empurrar para a direita para evitar sobreposição com texto do período
COL_ERA = 84*mm     # marcador de era (B/P/N) ou valor facial
COL_NOW = 89*mm     # estado atual / informação secundária

Lições importantes: strings de data/período como "300 BCE-1279" têm ~28mm de largura em 11pt. O marcador de era e a coluna AGORA DEVEM começar após 84mm para evitar sobreposição. Isso foi corrigido após várias iterações.

Design em Escala de Cinza (OBRIGATÓRIO)

Projetado para impressora a laser em escala de cinza. Nunca dependa de cor para significado.

Elemento visualAbordagem em escala de cinza
Destaque de linha coletadaHachura diagonal (não preenchimento colorido)
Cabeçalhos de seçãoTexto branco sobre barra preta sólida
Linhas alternadas#EBEBEB vs branco
Indicadores de eraLetras de texto (B/P/N), não pontos coloridos
Marcas de casa da moeda coletadasNegrito vs peso normal (não cor)
Caixas de verificaçãoMarca de seleção desenhada com linhas, não Unicode

Implementação da hachura:

def hatch(c, x, y, w, h):
    c.saveState()
    p = c.beginPath(); p.rect(x, y, w, h)
    c.clipPath(p, stroke=0)
    c.setStrokeColor(HexColor("#CCCCCC"))
    c.setLineWidth(0.35)
    for i in range(-int(h), int(w+h), 5):
        c.line(x+i, y, x+i+h, y+h)
    c.restoreState()

Marca de seleção (não X, não Unicode):

c.setStrokeColor(BLK); c.setLineWidth(1.2)
cx = LEFT_M + COL_CK + 1; cy = ty - 1
c.line(cx+2, cy+4, cx+4, cy+1.5)
c.line(cx+4, cy+1.5, cx+8, cy+7.5)

Fluxo de Páginas (Contínuo)

Nunca dê a cada seção sua própria página. As seções fluem continuamente. Seções pequenas (3-5 itens) devem caber na mesma página que o final da seção anterior.

# Evitar órfão: cabeçalho de seção precisa de header + col_header + 1 linha no mínimo
if item_type == 'section_header':
    needed = h + COL_H + 2 + ROW_H + 4
    if y - needed < BOT_M:
        y = new_page(c)

Estrutura da Página de Capa

  1. Faixa preta com título (20pt) e subtítulo (16pt)
  2. Linha de subtítulo abaixo da faixa (12pt, cinza)
  3. Régua horizontal
  4. Caixa de estatísticas (#EBEBEB): "Total: X Tenho: Y Preciso: Z" (14pt negrito)
  5. Porcentagem de cobertura (11pt, cinza)
  6. Nome do colecionador (14pt negrito) + identificador Numista (11pt)
  7. Seção de legenda (se aplicável)
  8. Resumo da série com contagens alinhadas à direita

Não Incluir

  • Página de anotações em branco separada (desperdiça papel)
  • Elementos dependentes de cor
  • Marcas de verificação Unicode ou caracteres especiais (problemas de cobertura de fonte)
  • Tamanhos de fonte abaixo de 7pt para qualquer elemento
  • Mais de 1 página de espaço em branco em qualquer lugar do documento

Saída

Salve o PDF onde o usuário possa abri-lo (no claude.ai: /mnt/user-data/outputs/ e chame present_files; no Claude Code: a pasta de trabalho). Renderize as páginas com pdf2image para verificação visual antes de entregar.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas