Rota é um planejador de estudos orientado por calendário para Android e Windows. O usuário descreve seu objetivo em linguagem natural para uma IA, importa um StudyPlan Code declarativo e acompanha no aplicativo exatamente o que precisa estudar em cada dia.
O mesmo modelo de plano, histórico protegido e revisões por conclusão real é compartilhado entre as duas edições.
%LOCALAPPDATA%\Rota\desktop-state.json, com troca atômica, cópia íntegra anterior e recuperação de corrupção%LOCALAPPDATA%\Rota\theme.txt.json e arrastar/soltar StudyPlan na janelastudy;O Rota não executa código vindo da IA. A IA fornece apenas JSON declarativo e o app valida o conteúdo antes de alterar o calendário.
Regras centrais:
objective.date estiver preenchida, sessões posteriores ao prazo são recusadas;plan.id precisa crescer monotonamente, mesmo depois de alternar para outro plano;::review::, namespace reservado às revisões automáticas;plan.id, session.id), então planos diferentes podem reutilizar o mesmo ID externo sem sobrescrever histórico;Usuário
↓
Comando em linguagem natural
↓
IA externa
↓
StudyPlan Code (JSON)
↓
StudyPlanImporter / validação
↓
StudyRepository / aplicação segura
↓
Calendário diário
↓
Conclusão real
↓
Revisões runtime D+1 / D+3 / D+7
↓
Histórico protegido
Exemplo mínimo:
{
"format": "studyplan",
"format_version": "0.2",
"plan": {
"id": "pre-calculo-2026",
"revision": 1,
"title": "Pré-Cálculo"
},
"objective": {
"name": "Dominar Pré-Cálculo",
"date": "2026-09-30"
},
"sessions": [
{
"id": "precalc-2026-09-02-fatoracao",
"date": "2026-09-02",
"subject": "Matemática",
"topic": "Fatoração e produtos notáveis",
"minutes": 60,
"target": "Resolver 10 exercícios e corrigir todos os erros",
"kind": "study"
}
]
}
kind aceita study, review e assessment. As revisões espaçadas normais não devem ser geradas pela IA; o próprio Rota cria D+1/D+3/D+7 quando uma sessão study é concluída. O marcador ::review:: é reservado ao runtime e não pode aparecer em IDs importados. IDs precisam ser únicos dentro de cada plano; planos diferentes podem usar o mesmo session.id com segurança.
Cada objeto de sessions representa uma sessão literal no calendário. O Rota não inventa sessões omitidas pela IA; por isso o prompt gerado pelo aplicativo exige que a IA produza o calendário completo necessário para executar o objetivo.
Requisitos:
Na raiz do projeto:
gradle --no-daemon testDebugUnitTest
gradle --no-daemon lintDebug
gradle --no-daemon assembleDebug
APK debug:
app/build/outputs/apk/debug/app-debug.apk
Requisito para desenvolvimento: .NET SDK 8 em Windows 10/11.
dotnet build .\desktop\Rota.Windows\Rota.Windows.csproj -c Release
dotnet run --project .\desktop\Rota.Windows\Rota.Windows.csproj
Publicação x64 self-contained:
dotnet publish .\desktop\Rota.Windows\Rota.Windows.csproj -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true /p:DebugType=None /p:DebugSymbols=false -o .\artifacts\Rota-Windows
Mais detalhes: desktop/Rota.Windows/README-WINDOWS.md.
Valida, nesta ordem:
zipalign, assinatura e metadados do APK;Valida:
win-x64 self-contained em arquivo executável;Rota.exe;Os artefatos Android atuais de CI são debug-signed. Isso é suficiente para testes, mas não é uma estratégia de distribuição estável. Uma publicação Android futura deve usar uma chave de release persistente armazenada fora do repositório, preferencialmente via GitHub Actions Secrets e/ou Play App Signing.
O executável Windows de desenvolvimento ainda não possui assinatura Authenticode comercial. Ele é funcional e validado pelo CI, mas o Windows SmartScreen pode exibir aviso de reputação na primeira execução. Uma distribuição pública definitiva deve usar um certificado de code signing persistente e protegido fora do repositório.
Nunca versione chaves privadas ou certificados com chave privada no Git.
C#
99.3%
Rota é um planejador de estudos orientado por calendário para Android e Windows. O usuário descreve seu objetivo em linguagem natural para uma IA, importa um StudyPlan Code declarativo e acompanha no aplicativo exatamente o que precisa estudar em cada dia.
O mesmo modelo de plano, histórico protegido e revisões por conclusão real é compartilhado entre as duas edições.
%LOCALAPPDATA%\Rota\desktop-state.json, com troca atômica, cópia íntegra anterior e recuperação de corrupção%LOCALAPPDATA%\Rota\theme.txt.json e arrastar/soltar StudyPlan na janelastudy;O Rota não executa código vindo da IA. A IA fornece apenas JSON declarativo e o app valida o conteúdo antes de alterar o calendário.
Regras centrais:
objective.date estiver preenchida, sessões posteriores ao prazo são recusadas;plan.id precisa crescer monotonamente, mesmo depois de alternar para outro plano;::review::, namespace reservado às revisões automáticas;plan.id, session.id), então planos diferentes podem reutilizar o mesmo ID externo sem sobrescrever histórico;Usuário
↓
Comando em linguagem natural
↓
IA externa
↓
StudyPlan Code (JSON)
↓
StudyPlanImporter / validação
↓
StudyRepository / aplicação segura
↓
Calendário diário
↓
Conclusão real
↓
Revisões runtime D+1 / D+3 / D+7
↓
Histórico protegido
Exemplo mínimo:
{
"format": "studyplan",
"format_version": "0.2",
"plan": {
"id": "pre-calculo-2026",
"revision": 1,
"title": "Pré-Cálculo"
},
"objective": {
"name": "Dominar Pré-Cálculo",
"date": "2026-09-30"
},
"sessions": [
{
"id": "precalc-2026-09-02-fatoracao",
"date": "2026-09-02",
"subject": "Matemática",
"topic": "Fatoração e produtos notáveis",
"minutes": 60,
"target": "Resolver 10 exercícios e corrigir todos os erros",
"kind": "study"
}
]
}
kind aceita study, review e assessment. As revisões espaçadas normais não devem ser geradas pela IA; o próprio Rota cria D+1/D+3/D+7 quando uma sessão study é concluída. O marcador ::review:: é reservado ao runtime e não pode aparecer em IDs importados. IDs precisam ser únicos dentro de cada plano; planos diferentes podem usar o mesmo session.id com segurança.
Cada objeto de sessions representa uma sessão literal no calendário. O Rota não inventa sessões omitidas pela IA; por isso o prompt gerado pelo aplicativo exige que a IA produza o calendário completo necessário para executar o objetivo.
Requisitos:
Na raiz do projeto:
gradle --no-daemon testDebugUnitTest
gradle --no-daemon lintDebug
gradle --no-daemon assembleDebug
APK debug:
app/build/outputs/apk/debug/app-debug.apk
Requisito para desenvolvimento: .NET SDK 8 em Windows 10/11.
dotnet build .\desktop\Rota.Windows\Rota.Windows.csproj -c Release
dotnet run --project .\desktop\Rota.Windows\Rota.Windows.csproj
Publicação x64 self-contained:
dotnet publish .\desktop\Rota.Windows\Rota.Windows.csproj -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true /p:DebugType=None /p:DebugSymbols=false -o .\artifacts\Rota-Windows
Mais detalhes: desktop/Rota.Windows/README-WINDOWS.md.
Valida, nesta ordem:
zipalign, assinatura e metadados do APK;Valida:
win-x64 self-contained em arquivo executável;Rota.exe;Os artefatos Android atuais de CI são debug-signed. Isso é suficiente para testes, mas não é uma estratégia de distribuição estável. Uma publicação Android futura deve usar uma chave de release persistente armazenada fora do repositório, preferencialmente via GitHub Actions Secrets e/ou Play App Signing.
O executável Windows de desenvolvimento ainda não possui assinatura Authenticode comercial. Ele é funcional e validado pelo CI, mas o Windows SmartScreen pode exibir aviso de reputação na primeira execução. Uma distribuição pública definitiva deve usar um certificado de code signing persistente e protegido fora do repositório.
Nunca versione chaves privadas ou certificados com chave privada no Git.
C#
99.3%