Pacote de Estudo (Study Pack)

Transforma material de curso do Notion ou arquivos enviados em um pacote de estudo vinculado (Sílabo, Resumo, Revisão, Plano opcional), ou atualiza um pacote existente, com um formulário de perguntas fixo e um kit de página padrão para que todos os cursos tenham a mesma aparência e funcionamento.

O que é Pacote de Estudo (Study Pack)?

Este skill gera um conjunto de quatro páginas web interligadas para qualquer curso, a partir de material fornecido pelo usuário (páginas do Notion, PDFs, DOCX, slides, texto colado) ou da busca ativa no Notion. O processo é altamente estruturado: um kit fixo (`kit/`) contém todo o HTML, CSS e JS, e o agente escreve apenas o conteúdo em JSON seguindo um esquema rigoroso. Isso garante que a aparência e as funcionalidades sejam idênticas entre cursos, evitando customizações que quebrem o padrão. O skill opera em etapas: (0) verifica se já existe um pacote e pergunta se o usuário deseja atualizá-lo; (1) coleta e organiza todo o material; (2) apresenta um formulário de perguntas fixo para configurar tema, fonte, formato de exercícios, etc.; (3) escreve o conteúdo de cada página em paralelo com subagentes; (4) gera um plano de estudos (opcional); (5) constrói as páginas, verifica automaticamente com testes de layout e publicação. O resultado é um pacote profissional, consistente e pronto para uso, com ferramentas integradas como calculadora, tutor, modo foco, histórico e notas. É compatível com Claude Code, Cursor e Codex, exigindo acesso à API do Notion e a capacidade de publicar artefatos HTML.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/CAFEERON21br18/claude-skills/tree/HEAD/study-pack

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

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

Documentação

O que Pacote de Estudo (Study Pack) faz?

Quatro páginas interligadas para um curso, sempre construídas pelo kit (kit/ em github.com/CAFEERON21br18/claude-skills, pasta study-pack/kit):

  1. Sílabo: tópicos numerados, apenas o essencial.
  2. Resumo: o curso completo, explicações completas, ≥ 3 exemplos resolvidos por tópico.
  3. Revisão: lição curta + exercícios (seus / do usuário), correção, histórico, notas, tutor.
  4. Plano (opcional): plano datado até o exame, gráficos, marcações.

Regra zero: o kit decide a aparência, você só escreve o conteúdo

  • Cada página é gerada a partir de kit/build.py. Nunca escreva ou modifique HTML, CSS ou JS de página manualmente, nunca "melhore" o layout, nunca adicione um estilo específico da página. Mesmas opções ⇒ mesmas páginas, independentemente do curso (CDI, AL, LP…).
  • Você escreve apenas o JSON descrito em kit/SCHEMA.md (com Python json.dump), depois constrói, verifica e publica.
  • As perguntas são sempre o formulário de kit/questions.py, na sua ordem, no seu formato. Nunca reformule, reordene, divida ou pergunte de outra forma. Nunca liste nomes de temas sem suas cores.
  • Se algo não puder ser feito com o kit, diga em uma linha na mensagem final. Não contorne isso em HTML.

O que o kit fixa para você (não reimplemente): o cabeçalho (layout CDI: linha do curso + título à esquerda, as 4 abas do pacote à direita, ferramentas na segunda linha: contagem regressiva · ferramentas de página · As minhas notas · botão claro/escuro com o ícone de sol/lua de ruben-bonanni-ribeiro.dev), a barra de tópicos, KaTeX com fontes incorporadas, ajuste de matemática larga, notas, chat do tutor, calculadora gráfica, modo foco, contagem regressiva em dias corridos, links na mesma aba, layout para celular, armazenamento.

Ferramentas por página (ordem fixa, uma opção desativada simplesmente está ausente):

PáginaFerramentas do cabeçalhoFaixa abaixo do cabeçalho
Sílabocontagem regressiva · Foco · As minhas notas · ☾/☀—
Resumocontagem regressiva · Calculadora · Foco · As minhas notas · ☾/☀—
Revisãocontagem regressiva · Calculadora · Foco · Só erradas · Histórico · As minhas notas · ☾/☀feitas / certas / a rever + guardadas
Planocontagem regressiva · Hoje · Esconder feitas · ☾/☀sessões feitas + horas

Passo 0 — Kit, e já existe um pacote?

  1. Obtenha o kit, sempre (pode ter mudado): git clone --depth 1 https://github.com/CAFEERON21br18/claude-skills /tmp/sp && cp -r /tmp/sp/study-pack/kit ./kit Leia kit/SCHEMA.md.
  2. Liste os artefatos do usuário (lista Artifact, escopo "all", limite 200) e procure por "Sílabo/Syllabus/Programa — ", "Resumo — ", "Revisão/Revision — ", "Plano — " ou nomes semelhantes.
  3. Encontrado → pergunte uma vez, simples: "Já existe um pacote de . Atualizo esse ou crio um novo?" (Atualizar o existente (recomendado) · Criar um novo). Se atualização: "O que muda?" (Juntar material novo · Mudar opções · Juntar uma página que falta · Refazer os exercícios). Nome ambíguo → pergunte uma vez qual, com as correspondências mais próximas e "Nenhum, começar do zero". Não encontrado → prossiga silenciosamente.

Modo de atualização

  • Leia cada página existente na íntegra com Artifact action:"read" sem path agora, no Passo 0. A publicação é recusada a menos que a versão ativa completa tenha sido lida. Uma página grande retorna como um arquivo salvo: leia esse arquivo em partes de ~150–200 linhas até o fim. Em seguida, salve também o HTML de cada página (read com path:"index.html") para extract.py.
  • python3 kit/extract.py pack <páginas salvas…> reconstrói pack/ (pack.json, topics, plan.json) a partir das páginas do kit. Mantenha slug, storage, urls, números de tópicos e ids de exercícios como estão.
  • Pacote antigo (sem dados do kit): infira as configurações da página (tema, fonte, idioma, recursos, contagem) e escreva pack.json. Copie suas chaves de armazenamento em "storage" para que o progresso seja preservado: a chave localStorage (ex.: cdi-revisao-v1, lp-revision-v2) em storage.ls.revisao, o nome do documento do banco de dados (ex.: revisao, lp-revision-v2) em storage.docs.revisao, e o mesmo para plano e o prefixo do tema.
  • Exercícios: o mesmo exercício (mesma folha + número) mantém seu id; novos exercícios recebem os próximos números. Tentativas em exercícios removidos aparecem como "Exercício da versão anterior": diga isso no final.
  • Plano mantido: nunca mova sessões datadas (as marcações são indexadas por data + índice); atualize apenas textos, contagens e links. Um plano reconstruído do zero perde as marcações antigas: diga isso no final.
  • Faça apenas as perguntas que o usuário deseja alterar, mais as que o novo material levanta (ex.: fonte se agora enviaram exercícios). Reutilize todo o resto de pack.json.
  • Publique na url existente de cada página. Termine com o que mudou, por página.

Passo 1 — Reunir o material (antes de qualquer pergunta)

  • Fontes: páginas do Notion nomeadas ou vinculadas (busque cada uma, siga as páginas filhas do curso), arquivos enviados (PDF, docx, slides, imagens, lidos na íntegra), texto colado. Curso nomeado mas sem fonte → pesquise no Notion, confirme a página em uma linha.
  • Pesquise no Notion uma página chamada como "lesson-style" (o formato de exercício próprio do usuário). Se encontrada, leia-a: ela se torna a primeira opção de formato de exercício.
  • Colete cada tópico, definição, teorema, método, armadilha, exemplo resolvido, exercício com sua fonte (folha + número), data do exame e, para os exercícios do próprio usuário: tópico, dificuldade, métodos, resolução (completa / parcial / apenas resposta / nenhuma).
  • Enunciados faltando (uma folha com apenas respostas): diga em uma linha agora, antes das perguntas, e peça o PDF. Nunca invente um enunciado. Um enunciado reconstruído a partir de outra página do usuário ou da tabela de respostas recebe "reconstructed": true ("enunciado reconstituído").
  • Livro-texto no Notion: extraia-o com um subagente por bloco de tópicos (ex.: 1–3, 4–8, 9–11), em paralelo. Cada um retorna JSON por tópico: definições e teoremas com a numeração do livro, armadilhas, ≥ 4 exemplos resolvidos com passos (o quê + porquê) e resposta final; cada um recalcula todos os números com sympy e sinaliza erros do livro em vez de corrigi-los silenciosamente → blocos bookerr ("Gralha no livro").
  • Lista mestre de tópicos: numerados 1, 2, 3… na ordem do curso, nunca letras. Nunca renumerados depois.
  • Curso com muitos cálculos (matemática, física, estatística, engenharia, finanças) → a pergunta da calculadora é mostrada.
  • Fonte ilegível → diga qual, continue.

Passo 2 — As perguntas (um formulário fixo)

  1. python3 kit/questions.py --lang <pt|fr|en> [--mine] [--calc] [--lesson-style] [--exam YYYY-MM-DD] (--mine se o usuário enviou seus próprios exercícios, --calc se houver muitos cálculos, --lesson-style se essa página do Notion existir, --exam se uma data foi encontrada.)
  2. Chame o Visualizador read_me (módulo elicitation), depois show_widget com exatamente o HTML impresso, título study_pack_details. Nada mais no widget, nenhuma pergunta extra.
  3. A resposta retorna como uma linha (Theme: … · Font: … · Features: … · Exercise format: … · Source: … · Per topic: … · Language: … · Graph calc: … · Tutor: … · Plan: … · Deadline: … · Hours: …). Mapeie para pack.json.
  4. Sem Visualizador nesta sessão → envie a saída de questions.py … --text na íntegra (ela mostra cada tema com suas cores hexadecimais) e aguarde as respostas numeradas. Nenhum outro formato, nunca.
  5. Pulado ou não respondido (execução sem supervisão) → padrões: tema Focus, Atkinson Hyperlegible, barra lateral + foco + histórico + progresso + contagem regressiva, lesson-style se encontrado senão múltipla escolha + resposta livre, 50/50 se o usuário tem exercícios senão seus, 5 por tópico, idioma da conversa, calculadora sim se houver muitos cálculos, tutor sim, sem plano. Diga quais padrões foram usados.

Em seguida, antes de construir:

  • Fonte = apenas meus e alguns tópicos não têm nenhum exercício do usuário → diga quais tópicos agora e pergunte uma vez: deixe-os sem exercícios (com o aviso) ou preencha esses tópicos apenas com exercícios do curso / Claude.
  • Tema "Outro" → copie o preset mais próximo em kit/themes.json, mude apenas as cores, execute python3 kit/check_contrast.py <file> até passar, coloque o objeto em pack.json theme.
  • Formatos → tipos de exercício: lesson-style = suas regras (abaixo); Como na fonte = mantenha o formato da folha (pergunta aberta → free; MCQ / V/F apenas onde a folha os tem); Escolha múltipla = mcq; Resposta livre = free; V/F = tf. (Preenchimento de lacunas não está no kit.)

Passo 3 — Escrever o conteúdo (apenas JSON)

Divida os tópicos em grupos e escreva-os com até 4 subagentes em paralelo (ex.: 1–3, 4–6, 7–9, 10–11). Dê a cada um: kit/SCHEMA.md, o material de seus tópicos, as respostas do Passo 2 e estas regras. Cada um escreve pack/topics/<n>.json com um script Python (json.dump, nunca manualmente) e verifica todos os cálculos com sympy. Em seguida, leia seus arquivos e verifique se seguem as regras.

Sílabo (syllabus): 2–6 marcadores por tópico, ≤ 12 palavras, frases nominais / regras / fórmulas, sem frases completas, sem enchimento. Toda regra relevante para o exame, nada inventado.

Resumo (resumo + examples): toda definição, teorema, regra e método do tópico, explicados completamente (intuição → enunciado formal → quando e como usar), notação do curso; blocos def / thm / formula / method / trap. ≥ 3 exemplos resolvidos por tópico, simples → nível de exame, métodos diferentes: os exercícios do usuário com resoluções primeiro, depois exemplos do curso, depois novos. Cada passo tem do + why (+ trap onde os alunos escorregam). Etiqueta de origem: a fonte real, ou "new" → "Novo". Nunca rotule um exemplo inventado com uma fonte do curso. Quando um MCQ é reutilizado como exemplo, mantenha apenas os passos da solução: remova frases sobre as opções ("A troca…", "A opção B…", "C e D…").

Revisão (lesson, worked, exercises): blocos de lição curtos, um exemplo worked e depois os exercícios.

Seleção de exercícios:

  • Apenas meus, Todos: todo exercício do usuário sob seu tópico, nada adicionado; um tópico sem nenhum recebe o aviso. Apenas meus, N: os melhores N por tópico — mais relevantes para o exame primeiro, depois variedade (cada método uma vez, fácil → nível de exame, nenhum testando a mesma coisa da mesma forma); menos de N → todos eles + aviso de shortage.
  • 50/50, Todos: todo exercício do usuário + outros tantos do Claude, visando o que os deles cobrem menos. 50/50, N: metade do usuário (escolhidos como acima, arredondado para cima), metade do Claude no mesmo estilo.
  • Seus: exercícios do curso primeiro, depois novos no mesmo estilo.

Resoluções fornecidas pelo usuário: elas são o gabarito — mantenha seus passos e notação, explique cada passo (o quê, porquê, armadilha). Passos faltando: complete-os, by_claude: true. Verifique cada resolução (recalcule com sympy); um passo errado nunca é corrigido silenciosamente: flag com o texto e a correção. Nenhuma resolução: escreva uma e verifique-a.

Regras lesson-style (quando escolhido; a página do Notion vence se disser mais): mcq com exatamente 4 opções A–D; questões de cálculo gate: true ("Resolve no papel primeiro" + "Já resolvi — mostrar opções") e free_too: true (cole o trabalho ou uma foto, Claude corrige); opções de matemática uma por linha (layout padrão), cada uma em uma única linha; cada opção errada é um erro típico e seu why o nomeia; a letra correta varia (nunca a mesma letra mais de duas vezes seguidas).

Texto: **bold**, nunca itálico; matemática em $…$ / $$…$$; links de recall [[n]] quando Recall estiver ativado.

Passo 4 — Plano (apenas se Plano = sim)

Coloque as configurações em pack.json → plan (início = hoje, hours: "auto" ou o número, dias busy com outros exames e suas notas, weights para tópicos pesados, hours_note no idioma do pacote), depois python3 kit/plan.py pack. Ele imprime o que precisou ser cortado quando o tempo é curto: diga na mensagem final.

Passo 5 — Construir, verificar, publicar

  1. python3 kit/build.py pack --out pack/out (para em qualquer erro de esquema: corrija o JSON, nunca o HTML).
  2. python3 kit/check.py pack/out --shots deve imprimir ALL CHECKS PASSED (nenhum estouro de página em 400 / 1440 px claro e escuro, nada cortado, 0 erros de KaTeX, nenhum $ bruto, nenhum erro de JS, cabeçalho e ordem de ferramentas fixos, nenhum link em nova aba, interações funcionam). Depois olhe para pack/out/shots/* (cabeçalho, blocos densos de matemática, celular escuro). Corrija o JSON, reconstrua, verifique novamente uma vez.
  3. Carregue artifact-capabilities e declare o que as páginas usam: armazenamento de conta (db) e identidade do visualizador (user) para notas, histórico e marcações; perguntar ao Claude (sample) para o tutor e a correção (Sílabo, Resumo, Revisão). Plano: db + user apenas.
  4. Novo pacote: publique os 4 arquivos (títulos vêm das páginas, ícone "book"), coloque as 4 URLs em pack.json → urls, reconstrua, verifique novamente, republicue cada um em sua URL (as abas e links cruzados precisam das URLs). Atualização: URLs já estão em pack.json; publique cada página em sua url.

Finalização

Apenas algumas linhas: o que foi construído ou atualizado (os cards carregam os links), algo faltando do material, exercícios do usuário / do curso / escritos por Claude, a lista das resoluções do usuário sinalizadas como erradas (exercício + passo), o que o plano precisou cortar e qualquer coisa que não pôde ser ativada (tutor, armazenamento de conta). Diga uma vez que as fórmulas copiam como LaTeX (selecione + copie, ou clique duas vezes em uma fórmula). Nenhum resumo dos passos.

Habilidades Relacionadas