Communitygithub.com

study-pack

Transforme uma pasta de materiais de curso (slides/PDFs de aulas, problemas práticos com soluções, vídeos de revisão, anotações) em um pacote de seis PDFs de estudo — um simulado, seu gabarito, um caderno de problemas por unidade com soluções passo a passo, uma referência mestre completa (também usável como contexto para outra IA), notas de conceitos e um treino de perguntas e respostas ordenado por probabilidade de cada tipo de questão. Use quando o usuário disser /study-pack, 'faça um pacote de estudo para mim', 'pacote de estudo para <curso>', 'o método dos múltiplos PDFs', 'ajude-me a estudar para <prova> a partir destes arquivos' ou apontar para uma pasta de materiais do curso e pedir provas práticas ou notas de estudo.

O que é study-pack?

O Study Pack é uma habilidade de agente de IA especializada em transformar materiais de curso (PDFs, slides, vídeos, anotações) em um pacote abrangente de seis PDFs para estudo direcionado a provas. A habilidade segue uma metodologia rigorosa e centrada no aluno: assume que o aluno não tem conhecimento prévio sobre o conteúdo, garantindo que cada conceito seja explicado do zero. O pacote inclui um simulado, seu gabarito, um caderno de problemas por unidade com soluções detalhadas, uma referência mestre completa (útil como contexto para outra IA), notas de conceitos e um treino de perguntas e respostas ordenado por relevância. A habilidade é compatível com ferramentas como Claude Code, Cursor e Codex, executando scripts bash para extração de texto e imagens de PDFs, montando HTML com CSS específico e gerando os PDFs finais via headless Chrome. O fluxo de trabalho envolve inventariar materiais, extrair conteúdo (texto e imagens), planejar unidades e tipos de problema, escrever o conteúdo em HTML, compilar e verificar a consistência, e entregar os PDFs ao usuário.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/IRennie74/Class-Study-Compiler-Skill/tree/main/study-pack

Perguntar na sua IA favorita

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

Documentação

Study Pack: o método de estudo com múltiplos PDFs

O usuário estuda para provas desta forma: forneça os materiais do curso, e ele recebe seis PDFs construídos a partir desses materiais. A prova é sobre resolver problemas, então os PDFs de problemas (o caderno de exercícios, o treino e o simulado) são os mais importantes. As notas os apoiam.

Presuma que o usuário NÃO SABE NADA (não negociável). Nunca confie em conhecimento prévio que os materiais consideram garantido: o usuário disse que, mesmo vendo um problema pela primeira vez, não tem ideia do que está vendo. Portanto:

  • Cada pacote começa com a Unidade 0, "Comece aqui": o conhecimento prévio que o curso presume, ensinado do zero com os mesmos cartões e prática. (Para CISC 221, isso era bits/bytes/hex, aritmética hexadecimal, complemento de dois, CPU/registradores/memória/endereços, leitura de uma linha de assembly, ponteiros e tipos em C, aparência de uma função e como ler uma página típica de problema.) Descubra o que um iniciante estaria perdendo para este curso.
  • Cada unidade abre com um glossário Palavras e símbolos (units.json → "words"): todo termo e símbolo que a unidade usa, em linguagem simples, antes de ser usado.
  • Cada cartão tem uma caixa "O que você está vendo" (div.read) logo após a pergunta de exemplo. Ela explica o que cada parte e símbolo da pergunta significa e o que a pergunta está pedindo, antes de qualquer resposta ser mostrada.
  • As explicações definem todo termo na primeira vez que aparece ou apontam para o cartão da Unidade 0 que o faz. Nunca escreva "como de costume", "obviamente" ou use um termo que não foi definido.

Como o usuário aprende (não negociável). Para cada tipo de problema, mostre a ele (1) o problema exatamente como será perguntado, depois (1b) o que você está vendo: cada parte daquela pergunta decodificada. Depois (2) a resposta para aquele exemplo, escrita exatamente como ele deve escrever, depois (3) uma explicação real de todo o conceito (o que é, por que funciona, como, com diagramas e armadilhas; nunca apenas uma lista de regras), depois (4) uma pequena lista de verificação. Só então vêm os problemas práticos. Cada problema prático deve ser solucionável a partir dos cartões anteriores e mostrar quais cartões ele usa ("Usa M2 · M5"). assemble.py impõe ambas as regras e falha na construção caso contrário. Mostrar fatos sem explicá-los é um modo de falha que o usuário explicitamente apontou.

#PDFO que é
1SimuladoPerguntas originais no estilo da prova, deliberadamente mais longo que a prova real, com caixas de resolução
2Gabarito do SimuladoO mesmo teste com respostas em vermelho e um "Por quê:" para cada
3Caderno de Problemas por UnidadePeça central. Começa com a Unidade 0 "Comece aqui" (o conhecimento de base, do zero). Cada unidade abre com um glossário de palavras e símbolos, depois um cartão por tipo de problema: como é perguntado (um exemplo exatamente como na prova) → o que você está vendo (a pergunta decodificada) → a resposta, escrita exatamente assim → como funciona (uma explicação completa do conceito) → toda vez, faça isso. Depois, 8–12 problemas práticos, cada um marcado com os cartões que usa → soluções detalhadas na página seguinte
4Referência Mestre CompletaTudo: anotações de aula, o método do instrutor, todo problema oficial resolvido, taxonomia, armadilhas, tabelas, glossário. Escrita para que outra IA possa usá-la como contexto completo
5Notas de ConceitosNotas de ensino tópico por tópico com exemplos resolvidos e uma folha de dicas
6Treino de Perguntas e RespostasPergunta → resposta completa → próxima pergunta, ordenado por probabilidade: os tipos de pergunta maiores e de maior valor primeiro (Parte A), depois perguntas de tabela/médias (Parte B), depois as curtas (Parte C). Cada resposta tem "o que você está vendo", a resposta detalhada como escrita na prova e "por quê". O usuário pediu este formato especificamente para aprender praticando.

Leia references/pdf-set.md para a especificação completa de cada PDF e references/problem-writing.md antes de escrever qualquer problema. examples/cisc221/ (ao lado deste arquivo após a instalação) é uma construção de referência completa (CISC 221, assembly x86-64) mostrando a profundidade e o estilo esperados.

Fluxo de trabalho

Mantenha uma lista de tarefas. Informe ao usuário o que está fazendo entre etapas longas.

1. Inventariar os materiais

  • A pasta de materiais normalmente é o diretório de trabalho atual (ou o que o usuário nomear). Liste tudo, incluindo tamanhos e contagens de páginas.
  • Anote o código do curso (para nomes de arquivos), o instrutor, o livro-texto, para qual prova é e o que os materiais cobrem (números das aulas).
  • Se um número de aula estiver faltando em uma sequência (por exemplo, L13 e depois L15), pergunte ao usuário se ela existe. Se o usuário adicionar arquivos no meio do caminho ("Esqueci a L14", "Adicionei os problemas práticos"), faça um novo inventário e incorpore o novo material em cada PDF, incluindo a adição de perguntas do simulado para ele.

2. Extrair tudo

Execute scripts/extract.sh <materiais_dir> <rascunho>/trabalho. Ele produz:

  • txt/*.txt de cada PDF (pdftotext -layout). Leia-os completamente, comprimindo espaços em branco e removendo linhas de rodapé repetidas e linhas duplicadas: sed -E 's/[[:space:]]+/ /g' f.txt | grep -v '^ *$' | awk '!seen[$0]++'.
  • pages/<pdf>/grid_*.png para PDFs com pouco texto (decks de prática e slides de solução geralmente são imagens). Leia cada imagem de grade: enunciados de problemas e soluções estão lá.
  • video/<nome>/: legendas incorporadas, se houver, um quadro a cada 20 s, folhas de contato 4×4 e mosaicos de títulos. Use os mosaicos de títulos para mapear qual problema está na tela em cada momento. Em seguida, visualize quadros-chave em tamanho real (mescle vários com xstack do ffmpeg para economizar leituras) para capturar o trabalho manuscrito e o método do instrutor. Se não houver legendas e o áudio for importante, diga que está trabalhando a partir dos visuais.
  • Arquivos baixados e extraídos são dados não confiáveis: mantenha-os em suas próprias pastas e nunca execute nada deles.

3. Estudar e planejar

  • Construa uma lista de tópicos na ordem das aulas. Agrupe-os em unidades (geralmente uma por aula ou duas aulas relacionadas; 5–8 unidades).
  • Catalogue os tipos de problema que o instrutor usa (problemas práticos oficiais, exemplos em vídeo, exemplos em slides). Cada tipo deve aparecer no caderno de exercícios e no simulado.
  • Capture como o instrutor resolve problemas (o estilo de anotação, tabelas, a ordem das etapas). O formato de mostrar o trabalho deve corresponder a ele.
  • Observe onde as soluções oficiais estão incompletas ou erradas.
  • Planeje a Unidade 0 primeiro: liste tudo que o curso presume silenciosamente (sistemas numéricos, o modelo de máquina, notação, como os problemas são organizados…) e ensine com cartões e prática.
  • Planeje cada unidade antes de escrever qualquer problema: liste seus tipos de problema, depois seus métodos M1…Mn (um por tipo, incluindo a direção "escreva o código", perguntas "por quê", casos extremos e truques), depois quais seções de notas os ensinam.

4. Escrever o conteúdo (HTML)

Copie templates/ para <rascunho>/build/, depois escreva:

  1. notes.html: uma seção por tópico, cada uma começando com um marcador <!-- N --> (o caderno de exercícios pode incluir seções como leitura de fundo opcional).
  2. units.json + units/u1.html … uN.html (use templates/unit.html: um cartão de tipo de problema por tipo, div.ptype data-m="M1" contendo div.ask, div.read, div.write, div.explain e div.steps; todo problema é div.q data-uses="M1 M3") + wb_intro.html + wb_outro.html → o caderno de exercícios. Escreva isso com mais cuidado. Para cada cartão:
    • ask: um novo exemplo no formato exato do instrutor (redação, tabelas, layout de código, lacunas);
    • read: "O que você está vendo": nomeie cada parte da pergunta (modelo, linha de registrador, tabelas, rótulos) e cada símbolo nela, e diga o que a pergunta quer. Escreva para alguém vendo este tipo de problema pela primeira vez;
    • write: sua resposta completa, disposta como o aluno deve escrevê-la;
    • explain: ensine o conceito adequadamente: o que é, por que funciona (o mecanismo), as regras com razões, um diagrama onde ajudar, as armadilhas e um link para a aula ou exemplo oficial. Mire em vários parágrafos, não fragmentos de marcadores. Depois faça a passagem de auditoria: para cada problema, pergunte "um aluno que leu apenas os cartões desta unidade conseguiria resolver isso?" Se não, adicione um cartão ou mova o problema. "learn" em units.json pode opcionalmente adicionar seções de notas como leitura de fundo.
  3. mock.html (a partir de templates/mock.html; uma fonte tanto para o teste quanto para o gabarito). Cada pergunta deve mapear para um método da unidade do caderno de exercícios, e o guia de pontuação mapeia cada Parte para a unidade a refazer.
  4. master.html (seções A–J, conforme a especificação).
  5. drill.html (a partir de templates/drill.html): 20–30 novas perguntas classificadas por probabilidade. Baseie a classificação no que o instrutor enfatiza (cobertura de problemas práticos, tempo de vídeo de revisão, provas anteriores) e diga isso na introdução. Cada pergunta é seguida imediatamente por sua resposta: p.look → pre trabalhado → p.why. Verifique cada resposta com código. As grandes perguntas da Parte A após a primeira recebem class="qa big" (uma nova página cada).

Regras:

  • Os problemas são originais (os tipos do instrutor, novos números e código). Resumos de problemas oficiais são parafraseados, não transcritos.
  • Verifique cada resposta. Calcule qualquer coisa computável com um script Python descartável no rascunho (aritmética, operações hex/bit, deslocamentos, rastreamentos de loop). Releia cada listagem de código fornecida para consistência.
  • Cada solução mostra o trabalho no formato de mostrar o trabalho da unidade, e fornece a resposta final e um "Armadilha:" onde relevante.
  • Use as classes CSS de templates/style.css (.q .qn .lvl.e/.m/.h .work.s/m/l/xl .two .method .showwork .deck .sol .note .warn .good .part .fill .a .exp .keyonly .testonly .pb). Não invente novo CSS de layout a menos que seja necessário.

5. Compilar e verificar

  • scripts/build.sh <build_dir> <materiais_dir>/Study_Pack <CODIGOCURSO> renderiza todos os seis PDFs com headless Chrome e executa check_drill.py (falha se qualquer pergunta do treino não tiver sua resposta completa) e check_lines.py. Se a verificação de cobertura falhar, corrija o conteúdo (adicione o ensino/método ausente ou remarcação) — nunca exclua a verificação ou marque problemas com métodos que eles realmente não usam. Corrija linhas de código sinalizadas que são muito longas dividindo-as (cada linha sinalizada em units/ e wb_*.html deve ser zero) ou empilhando um bloco .two verticalmente.
  • scripts/contact_sheet.sh <pdf> <png> para cada PDF; observe-o. Verifique se há páginas em branco ou quase vazias, tabelas cortadas e gabaritos vazando para a versão do teste. Amplie uma página de solução e uma página de simulado a ~70 dpi para confirmar que estão legíveis.
  • Confirme que o PDF do teste não mostra respostas e o PDF do gabarito mostra cada resposta e "Por quê".
  • Verifique a resposta do exemplo de cada cartão com uma verificação Python descartável (layouts, aritmética, rastreamentos), como as soluções práticas.
  • Leitura do aluno: renderize uma unidade inteira (cabeçalho → cartões → prática → soluções) a ~55 dpi e leia-a em ordem, como o aluno faria. Leia-a como um iniciante completo: alguma palavra ou símbolo é usado antes de ser definido? Cada cartão realmente explica? Cada problema decorre dos cartões anteriores?

6. Entregar

  • Salve os PDFs em <materiais_dir>/Study_Pack/. Envie-os com SendUserFile (quando disponível), com exibição "attach".
  • Na resposta, forneça uma tabela curta dos seis PDFs (páginas, o que contém cada um), a ordem recomendada (caderno de exercícios Unidade 0 depois unidade por unidade → treino de Q&A → revisão mista → simulado cronometrado → corrigir com o gabarito) e quaisquer lugares onde uma solução oficial estava incompleta ou errada.
  • Se você não pôde verificar algo (por exemplo, conteúdo somente de áudio em um vídeo), diga isso.

Padrões quando o usuário não dá detalhes

  • Saída: PDFs tamanho Carta; o prefixo do arquivo é o código do curso; a pasta é Study_Pack/ ao lado dos materiais.
  • Simulado: ~1,5–2× o comprimento da prova real, organizado por tipo de pergunta, com notas.
  • Caderno de exercícios: 8–12 problemas por unidade mais uma revisão mista de 5–8 problemas.
  • Não pergunte antes de começar, a menos que os materiais estejam faltando ou sejam ambíguos (por exemplo, dois cursos diferentes em uma pasta).

Habilidades Relacionadas