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):
- Sílabo: tópicos numerados, apenas o essencial.
- Resumo: o curso completo, explicações completas, ≥ 3 exemplos resolvidos por tópico.
- Revisão: lição curta + exercícios (seus / do usuário), correção, histórico, notas, tutor.
- 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 Pythonjson.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ágina | Ferramentas do cabeçalho | Faixa abaixo do cabeçalho |
|---|---|---|
| Sílabo | contagem regressiva · Foco · As minhas notas · ☾/☀ | — |
| Resumo | contagem regressiva · Calculadora · Foco · As minhas notas · ☾/☀ | — |
| Revisão | contagem regressiva · Calculadora · Foco · Só erradas · Histórico · As minhas notas · ☾/☀ | feitas / certas / a rever + guardadas |
| Plano | contagem regressiva · Hoje · Esconder feitas · ☾/☀ | sessões feitas + horas |
Passo 0 — Kit, e já existe um pacote?
- 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 ./kitLeiakit/SCHEMA.md. - 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. - 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
Artifactaction:"read"sempathagora, 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 (readcompath:"index.html") paraextract.py. python3 kit/extract.py pack <páginas salvas…>reconstróipack/(pack.json, topics, plan.json) a partir das páginas do kit. Mantenhaslug,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) emstorage.ls.revisao, o nome do documento do banco de dados (ex.:revisao,lp-revision-v2) emstorage.docs.revisao, e o mesmo paraplanoe 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
urlexistente 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)
python3 kit/questions.py --lang <pt|fr|en> [--mine] [--calc] [--lesson-style] [--exam YYYY-MM-DD](--minese o usuário enviou seus próprios exercícios,--calcse houver muitos cálculos,--lesson-stylese essa página do Notion existir,--examse uma data foi encontrada.)- Chame o Visualizador
read_me(móduloelicitation), depoisshow_widgetcom exatamente o HTML impresso, títulostudy_pack_details. Nada mais no widget, nenhuma pergunta extra. - A resposta retorna como uma linha (
Theme: … · Font: … · Features: … · Exercise format: … · Source: … · Per topic: … · Language: … · Graph calc: … · Tutor: … · Plan: … · Deadline: … · Hours: …). Mapeie parapack.json. - Sem Visualizador nesta sessão → envie a saída de
questions.py … --textna íntegra (ela mostra cada tema com suas cores hexadecimais) e aguarde as respostas numeradas. Nenhum outro formato, nunca. - 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, executepython3 kit/check_contrast.py <file>até passar, coloque o objeto empack.jsontheme. - 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
python3 kit/build.py pack --out pack/out(para em qualquer erro de esquema: corrija o JSON, nunca o HTML).python3 kit/check.py pack/out --shotsdeve 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 parapack/out/shots/*(cabeçalho, blocos densos de matemática, celular escuro). Corrija o JSON, reconstrua, verifique novamente uma vez.- Carregue
artifact-capabilitiese 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+userapenas. - 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 empack.json; publique cada página em suaurl.
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.