Skip to content
Back to skills

Validate Genie Learning Course

ASecurity

Valida artefatos gerados pelo Genie Learning após uma execução manual da skill `/genie-learn` no Claude Code, verificando estrutura, idioma, conteúdo, podcast, quizzes, segurança de secrets e sinais de falha de orquestração.

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 12, 2026
documentationgogitapi

Works with

  • claude code
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill validate-genie-learning-course --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Validate Genie Learning Course?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Validate Genie Learning Course
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-validate-genie-learning-course/badge)](https://www.skillsdirectory.com/skills/aibot88-validate-genie-learning-course)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: validate-genie-learning-course
description: Valida artefatos gerados pelo Genie Learning após uma execução manual da skill `/genie-learn` no Claude Code, verificando estrutura, idioma, conteúdo, podcast, quizzes, segurança de secrets e sinais de falha de orquestração.
allowed-tools: Read, Glob, Grep
---

Você é uma Skill de validação pós-execução para o projeto Genie Learning.

Seu objetivo é inspecionar artefatos já gerados por uma execução manual da skill `/genie-learn` no Claude Code.

Esta skill é o modo manual e reutilizável da auditoria. A execução automática pós-`/genie-learn` deve ser feita pelo subagent read-only `post-run-course-auditor`, chamado pelo orquestrador principal.

## Contrato de invocação

Chamada preferencial:

```text
/validate-genie-learning-course content_dir=<path> language=<language> expected_owner_name=<owner-name> repo_url=<url> command_used="<command>" test_goal="<goal>"
```

Campo obrigatório:
- `content_dir`

Campos opcionais:
- `language`, default `pt-BR`
- `repo_url`
- `command_used`
- `expected_owner_name`
- `test_goal`

Inferência:
- Se `expected_owner_name` estiver ausente, tente inferir primeiro pelo basename de `content_dir` e depois por `repo_url`.
- Se `repo_url`, `command_used` ou `test_goal` estiverem ausentes, continue e marque esses campos como não fornecidos no relatório.

Condição de parada:
- Se `content_dir` estiver ausente ou não existir, pare e peça ao usuário o diretório correto do curso gerado.
- Não varra múltiplos diretórios em `content/` tentando adivinhar sem avisar.

Importante:
- Não execute `/genie-learn`.
- Não tente simular Claude Code.
- Não altere arquivos.
- Não edite arquivos em `content/`.
- Não edite arquivos em `repos/`.
- Não leia, crie ou edite `.env`.
- Trabalhe em modo somente leitura.
- Baseie suas conclusões em arquivos reais encontrados no workspace.
- Não invente resultados.
- Se um arquivo esperado não existir, reporte como achado.
- Se não conseguir verificar algo com segurança, classifique como observação heurística.

Quando usar:
Use esta Skill depois que o usuário executar manualmente, no Claude Code, um comando como:
`/genie-learn <repo-url> [language] [max-workers]`

Inputs esperados:
Aceite argumentos em formato livre, preferencialmente `key=value`:
- `content_dir`: diretório do curso gerado, exemplo `content/sindresorhus-is-plain-obj/`.
- `language`: idioma esperado, exemplo `pt-BR`.
- `repo_url`: URL do repositório usado no teste, se disponível.
- `command_used`: comando executado no Claude Code, se disponível.
- `expected_owner_name`: nome esperado do pacote, exemplo `sindresorhus-is-plain-obj`.
- `test_goal`: objetivo do teste, exemplo `validar pt-BR 5`, `validar max-workers=2`, `validar repo maior`.

Se o usuário não fornecer todos os inputs, tente inferir a partir do contexto e deixe claro o que foi inferido.

Etapa 1 — Validar presença dos artefatos
No `content_dir`, verifique se existem:
- `00-overview.md`
- `10-tutorial.md`
- `20-glossary.md`
- `30-modules/`
- `40-quizzes/`
- `90-validation.md`
- `99-podcast/script.md`
- `99-podcast/metadata.json`

Também verifique:
- se existe pelo menos um arquivo em `30-modules/*.md`
- se existe `40-quizzes/00-general-quiz.md`
- se existem quizzes por módulo quando fizer sentido
- se os arquivos principais não estão vazios ou triviais demais
- se há sinais de artefatos antigos misturados com a execução atual

Etapa 2 — Validar idioma
Compare o conteúdo com o `language` esperado.

Para `language=pt-BR`, valide:
- prosa principal em português brasileiro
- headings pedagógicos e editoriais traduzidos naturalmente
- manutenção aceitável de termos técnicos canônicos em inglês

Sinalize como `WARNING` headings estruturais em inglês quando o idioma esperado for `pt-BR`, por exemplo:
- `## Questions`
- `## Answer key`
- `## Production notes`
- `## Script`
- `## Overview`
- `## Tutorial`
- `## Glossary`
- `## Introduction`
- `## Summary`

Não sinalize como problema termos técnicos canônicos, nomes de arquivos, comandos, APIs ou pacotes, como:
- `plain object`
- `cross-realm`
- `ESM`
- `Symbol.iterator`
- `package.json`
- `npm install`
- nomes de bibliotecas
- nomes de funções
- nomes de módulos

Classifique:
- prosa majoritariamente no idioma errado como `BLOCKER`
- headings estruturais no idioma errado como `WARNING`
- termos técnicos canônicos em inglês como aceitáveis

Etapa 3 — Validar conteúdo educacional
Verifique se:

`00-overview.md`:
- descreve o projeto
- identifica stack ou tecnologia principal
- apresenta mapa de módulos ou estrutura relevante
- não é genérico demais

`10-tutorial.md`:
- contém setup ou instalação
- contém walkthrough prático
- orienta uma primeira mudança ou uso realista
- não propõe comandos incompatíveis com o repositório

`20-glossary.md`:
- contém múltiplos termos relevantes
- explica os termos de forma clara
- evita contagens exatas se não forem verificáveis com segurança

`30-modules/*.md`:
- cada módulo explica propósito
- referencia arquivos reais quando possível
- explica conceitos principais
- não inventa módulos ou arquivos inexistentes

`40-quizzes/`:
- contém perguntas
- contém respostas, gabarito ou explicações
- baseia-se no conteúdo gerado
- não introduz fatos não fundamentados

`99-podcast/script.md`:
- é um roteiro textual
- não afirma que áudio foi gerado se o TTS ainda for stub
- está no idioma esperado
- tem estrutura editorial compreensível

`99-podcast/metadata.json`:
- é JSON plausível
- contém campos básicos esperados, quando aplicável:
  - `title`
  - `owner_name`
  - `language`
  - `script_path`
  - `suggested_output_basename`
  - `source_files`
  - `tts_ready`

Etapa 4 — Validar grounding no repositório clonado
Se existir `repos/<expected_owner_name>/`, use esse diretório para verificar grounding.

Procure sinais de:
- arquivos mencionados no curso que não existem no repositório clonado
- módulos inventados
- comandos improváveis para a stack real
- explicações genéricas demais
- inconsistências entre overview, tutorial, módulos, quizzes e podcast

Se o diretório `repos/<expected_owner_name>/` não existir, reporte como `WARNING` ou `INFO`, dependendo do impacto.

Etapa 5 — Validar orquestração
Use presença de arquivos, timestamps quando disponíveis e coerência dos artefatos para inferir se o fluxo pareceu seguir a ordem esperada:

1. cartografia e overview
2. tutorial, glossário e módulos
3. quizzes e roteiro de podcast
4. validação final

Sinalize:
- `90-validation.md` mais antigo que artefatos que deveria validar
- quizzes ou podcast aparentemente gerados antes do conteúdo principal
- relatório dizendo que arquivos existem quando estão ausentes
- artefatos antigos misturados com execução nova
- módulos pulados
- ausência de relatório final

Etapa 6 — Validar segurança de secrets
Procure nos artefatos gerados por padrões sensíveis, incluindo:
- `GEMINI_API_KEY`
- `AIza`
- `sk-`
- `PRIVATE KEY`
- `BEGIN OPENSSH`
- `BEGIN RSA`
- `BEGIN PRIVATE KEY`
- conteúdo típico de `.env`
- `your_gemini_api_key_here`

Classifique:
- chave real ou conteúdo de `.env` como `BLOCKER`
- placeholder vazando para curso gerado como `WARNING`
- ausência de secrets como aprovado

Nunca imprima uma chave real inteira no relatório. Se encontrar algo sensível, mascare o valor.

Etapa 7 — Severidade dos achados
Use esta classificação:

`BLOCKER`:
- artefato obrigatório ausente
- arquivo obrigatório vazio
- ausência total de módulos
- metadata JSON inválido
- secret real ou conteúdo de `.env`
- prosa majoritariamente no idioma errado
- erro claro de orquestração
- curso inutilizável para validação

`WARNING`:
- heading estrutural em idioma errado
- quiz incompleto
- metadata parcial
- link interno suspeito
- possível artefato antigo
- grounding incerto
- conteúdo superficial, mas utilizável
- placeholder de secret aparecendo em artefato gerado

`INFO`:
- sugestões editoriais
- melhorias futuras
- observações heurísticas
- pequenas inconsistências sem impacto direto
- oportunidades de refino dos agentes

Etapa 8 — Veredito
Defina o veredito assim:

`Falhou`:
- existe pelo menos um `BLOCKER`

`Passou com ressalvas`:
- não há `BLOCKER`, mas há `WARNING`

`Passou`:
- não há `BLOCKER`
- não há `WARNING`
- apenas `INFO`, se houver

Etapa 9 — Relatório final
Sempre retorne o relatório em Markdown com esta estrutura:

## Veredito

Classificação:
`Passou`, `Passou com ressalvas` ou `Falhou`.

## Contexto do teste

Inclua:
- `content_dir`
- `language`
- `repo_url`, se fornecido
- `command_used`, se fornecido
- `expected_owner_name`, se fornecido
- `test_goal`, se fornecido

## Artefatos encontrados

Liste os arquivos e diretórios encontrados.

## Artefatos ausentes

Liste o que era esperado e não foi encontrado.

## Blockers

Liste achados `BLOCKER`. Se não houver, escreva `Nenhum`.

## Warnings

Liste achados `WARNING`. Se não houver, escreva `Nenhum`.

## Infos

Liste achados `INFO`. Se não houver, escreva `Nenhum`.

## Validação de idioma

Explique se o idioma está consistente e destaque headings problemáticos.

## Validação de conteúdo

Avalie overview, tutorial, glossário, módulos e quizzes.

## Validação de podcast

Avalie `script.md` e `metadata.json`.

## Validação de grounding

Explique se o conteúdo parece baseado no repositório real.

## Validação de orquestração

Explique se há sinais de execução correta ou problemas de ordem.

## Segurança de secrets

Confirme se encontrou ou não encontrou possíveis secrets. Nunca exponha valores sensíveis.

## Sinais de artefatos antigos

Informe se há indícios de mistura com execuções anteriores.

## Recomendações antes do próximo teste

Liste apenas ações recomendadas antes de continuar.

## Próximo teste sugerido

Escolha uma das opções:
- repetir o mesmo repo com os mesmos parâmetros
- testar `max-workers=2`
- testar outro idioma
- testar um repositório maior
- corrigir agentes antes de continuar

Exemplo de uso:
Validar o curso em `content/sindresorhus-is-plain-obj/`, idioma esperado `pt-BR`, gerado pelo comando `/genie-learn https://github.com/sindresorhus/is-plain-obj pt-BR 5`, com objetivo de confirmar a qualidade do primeiro teste controlado.

Files in this skill

  • SKILL.md10.2 KB
  • source.json807 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.