Skip to content

chore(course): extrai o curso para repositório próprio (v0.5.4) - #19

Merged
lglucas merged 2 commits into
mainfrom
chore/extract-course
Aug 9, 2026
Merged

chore(course): extrai o curso para repositório próprio (v0.5.4)#19
lglucas merged 2 commits into
mainfrom
chore/extract-course

Conversation

@lglucas

@lglucas lglucas commented Aug 9, 2026

Copy link
Copy Markdown
Owner

course/ virou lglucas/ai-dev-os-course (privado). Nada de conteúdo mudou — 11 arquivos foram via git subtree split com histórico, e o Sprint 0 em andamento foi junto no branch sprint-0-systems-html. Comparei as listas de arquivos antes de remover: 11/11 idênticas.

Por que

A justificativa de morar junto era versionamento conjunto, e ela não se sustentou. Este repo foi da v0.4.5 à v0.5.3 — inverteu duas fases do wizard, criou o Pitch, criou o CODEMAP — e o curso não acompanhou nenhuma dessas mudanças, acumulando 66 referências a uma numeração de estágios extinta. Mesmo repositório, mesmas releases, e o material envelheceu sozinho. Acoplamento nominal não produz manutenção conjunta.

O que decidiu foi a herança. Clonar o OS ou usar "Use this template" levava course/ junto, e nenhum arquivo de entrada — README, START-HERE.md, CLAUDE.md, WIZARD.md — mencionava a pasta uma vez sequer. O aviso "pode apagar esta pasta" existia dentro da própria pasta que a pessoa não sabia que tinha.

A mitigação óbvia não funcionaria: remover no detach cobre só quem clona, e o caminho recomendado no README é o botão "Use this template", cujos usuários nunca rodam detach.

E a v0.5.3 tinha acabado de piorar o quadro — course/systems/ contém .js, .ts e .sql, e o SKIP_DIR do codemap não cobria course, então o mapa de código de um fundador listaria a infraestrutura do curso como se fosse dele.

O que fica, de propósito

.claude/rules/wizard-stage-tags.md. A convenção [STAGE:X] é opt-in e serve a qualquer pessoa que queira rastrear progresso pelos commits. O curso é o maior consumidor, não o dono.

Também nesta versão

os-self-test ganha um 10º grupo: verifica que .claude-plugin/plugin.json está na versão do topo do CHANGELOG e que o número de skills anunciado bate com os SKILL.md existentes.

Foi escrito porque o defeito já tinha ocorrido — o manifesto ficou em "0.5.2" e "27 skills" durante a v0.5.3 inteira. Atualizei as contagens do README naquela release e não propaguei; como nada consumia aqueles números, nada acusou. A verificação estreou reprovando o próprio commit que a criou.

Verificação

  • os-self-test: 72 verificações, COERENTE
  • node --test: 94/94
  • codemap --check: ok

Nota

O repo novo é privado, então o README o cita sem hyperlink — link para repositório privado devolve 404 ao lychee e derrubaria o CI. Quando virar público, é trocar por link.

Fica em aberto

PR #9 altera 39 arquivos, 37 sob course/, que deixa de existir aqui. O trabalho está preservado no branch homônimo do repo novo; falta fechá-lo apontando para lá.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Documented the course’s move to a separate repository while preserving stage-tag conventions.
    • Added release notes and session history for version 0.5.4.
    • Removed course materials and supporting documentation from this repository.
  • New Features

    • Added self-checks that validate plugin metadata, version consistency, and advertised skill counts.
  • Chores

    • Updated the plugin version and description to reflect the current skills, generated CODEMAP, and external-pack registry.

…TACAO]

course/ virou lglucas/ai-dev-os-course. Nada de conteúdo mudou: os 11
arquivos foram via git subtree split com histórico, e o Sprint 0 em
andamento foi junto no branch sprint-0-systems-html. Comparei as listas
de arquivos antes de remover — 11/11 idênticas.

A justificativa de morar junto era versionamento conjunto, e não se
sustentou: o OS foi da v0.4.5 à v0.5.3 e o curso não acompanhou nenhuma
mudança, acumulando 66 referências a uma numeração de estágios extinta.
Mesmo repo, mesmas releases, envelhecimento solitário.

O que decidiu foi a herança. Clonar o OS levava course/ junto, e nenhum
arquivo de entrada mencionava a pasta. O aviso "pode apagar" ficava
dentro da própria pasta que a pessoa não sabia que tinha. Remover no
detach não resolveria: quem usa "Use this template" — o caminho
recomendado no README — nunca roda detach.

E a v0.5.3 pioraria isso: course/systems/ tem .js, .ts e .sql, e o
SKIP_DIR do codemap não cobria course, então o mapa de um fundador
listaria a infraestrutura do curso como código dele.

Fica aqui, de propósito: .claude/rules/wizard-stage-tags.md. A convenção
[STAGE:X] é opt-in e serve a qualquer um; o curso era só o maior
consumidor.

Também nesta versão:
- os-self-test ganha 10º grupo, que verifica o manifesto do plugin
  contra o CHANGELOG e a contagem real de skills. Escrito porque o
  plugin.json ficou em 0.5.2/27 skills durante a v0.5.3 inteira sem
  nada acusar. Estreou reprovando o próprio commit que o criou.
- plugin.json atualizado para 0.5.4/28 skills/12 regras.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@lglucas, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3500a9b6-308e-4671-85cd-9fff9b42969c

📥 Commits

Reviewing files that changed from the base of the PR and between 8a326c7 and e2e3677.

📒 Files selected for processing (2)
  • scripts/os-self-test.js
  • session-log/2026-08-09-v0.5.4-course-extraction.md
📝 Walkthrough

Walkthrough

The PR removes the course/ content, documents its relocation to a separate repository, updates v0.5.4 plugin metadata, and adds self-test checks for manifest version and skill-count consistency.

Changes

Course extraction and repository boundary

Layer / File(s) Summary
Course repository boundary and migration record
course/**, README.md, session-log/*
The course content is removed. Documentation records its relocation, the migration procedure, retained stage tags, and repository state.
Release metadata synchronization
.claude-plugin/plugin.json, CHANGELOG.md
Plugin metadata now reports version 0.5.4, 28 skills, a generated CODEMAP, and the curated external-pack registry. The changelog records the release changes.
Plugin manifest validation
scripts/os-self-test.js, session-log/2026-08-09-v0.5.4-course-extraction.md
os-self-test validates manifest presence, JSON syntax, changelog version, and advertised skill count for OS repositories.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes extracting the course into a separate repository and identifies the release version.
Description check ✅ Passed The description clearly covers the extraction, rationale, preserved content, tests, remaining work, and Claude Code generation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/extract-course

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/os-self-test.js`:
- Around line 262-265: Update the validation around claimed in the plugin
self-test so a manifest description without a numeric “skills” count records an
explicit failure or warning instead of silently passing. Preserve the existing
mismatch failure and matching-count success behavior in this conditional flow.

In `@session-log/2026-08-09-v0.5.4-course-extraction.md`:
- Line 42: Update the v0.5.3 reference in the log sentence to use the absolute
date 2026-08-08 instead of “de anteontem”, preserving the rest of the sentence
unchanged.

In `@session-log/INDEX.md`:
- Line 9: Create the required session-log/YYYY-MM-DD-project-genesis.md artifact
for the project-genesis session. Do not treat the existing
2026-08-09-v0.5.4-course-extraction.md entry as a substitute; preserve that
existing release record.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b790e62b-a56b-4e10-8586-fffb693812c6

📥 Commits

Reviewing files that changed from the base of the PR and between c610447 and 8a326c7.

📒 Files selected for processing (17)
  • .claude-plugin/plugin.json
  • CHANGELOG.md
  • README.md
  • course/CHANGELOG-COURSE.md
  • course/README.md
  • course/content/aula-1-fundacao/README.md
  • course/content/aula-1-fundacao/treco/po-de-diamante-po-de-fome.md
  • course/content/aula-2-construcao/README.md
  • course/content/aula-3-soberania/README.md
  • course/content/shared/curso-overview.md
  • course/sprints/sprint-0-fundacao.md
  • course/systems/grand-prix/BRIEF.md
  • course/systems/trilho-red-team/BRIEF.md
  • course/videos/INDEX.md
  • scripts/os-self-test.js
  • session-log/2026-08-09-v0.5.4-course-extraction.md
  • session-log/INDEX.md
💤 Files with no reviewable changes (11)
  • course/content/shared/curso-overview.md
  • course/systems/trilho-red-team/BRIEF.md
  • course/systems/grand-prix/BRIEF.md
  • course/videos/INDEX.md
  • course/sprints/sprint-0-fundacao.md
  • course/content/aula-1-fundacao/README.md
  • course/README.md
  • course/content/aula-2-construcao/README.md
  • course/content/aula-1-fundacao/treco/po-de-diamante-po-de-fome.md
  • course/CHANGELOG-COURSE.md
  • course/content/aula-3-soberania/README.md

Comment thread scripts/os-self-test.js
Comment thread session-log/2026-08-09-v0.5.4-course-extraction.md Outdated
Comment thread session-log/INDEX.md
Quando a description não trazia "N skills", claimed ficava undefined e a
verificação não registrava nada — silenciosa justamente no caso em que
alguém remove o número, que é como a defasagem começa.

Também troca "de anteontem" por data absoluta no session-log: a tag
v0.5.3 é de 2026-08-09, mesmo dia do log, então além de ambíguo estava
factualmente errado.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@lglucas
lglucas merged commit 4ecf522 into main Aug 9, 2026
3 checks passed
@lglucas
lglucas deleted the chore/extract-course branch August 9, 2026 04:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant