minerva-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Paulo Henrique Santos
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,142 @@
1
+ # 🦉 Minerva CLI
2
+
3
+ > Organização acadêmica de ponta a ponta para estudantes de **Análise e Desenvolvimento de Sistemas** da **FATEC** — direto do terminal, integrada ao Obsidian.
4
+
5
+ [![CI](https://github.com/phs-santos/fatec-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/phs-santos/fatec-cli/actions/workflows/ci.yml)
6
+ ![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen)
7
+ ![License](https://img.shields.io/badge/license-MIT-blue)
8
+
9
+ A Minerva cria e mantém um **vault de estudos completo** para toda a graduação: os 6 semestres com todas as disciplinas da [matriz curricular oficial](https://fatectq.cps.sp.gov.br/matriz-curricular-ads/), templates de aula/resumo/prova/trabalho, dashboard automático, flashcards, cheatsheets, portfólio e muito mais.
10
+
11
+ ## Instalação
12
+
13
+ ```bash
14
+ npm install -g minerva-cli
15
+ ```
16
+
17
+ Requer Node.js 20+ (LTS).
18
+
19
+ ## Começando
20
+
21
+ ```bash
22
+ minerva init # cria o vault fatec-ads/ com tudo dentro
23
+ cd fatec-ads
24
+ minerva dashboard # gera o dashboard de estudos
25
+ ```
26
+
27
+ Abra a pasta `fatec-ads/` como vault no **Obsidian** e pronto. 🟣
28
+
29
+ ## Comandos
30
+
31
+ | Comando | O que faz |
32
+ | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
33
+ | `minerva init [pasta]` | Cria a estrutura completa do curso (Git, README, matriz, 6 semestres, templates, Obsidian, dashboard) |
34
+ | `minerva dashboard` | Regenera o dashboard: disciplinas, pendências, próximas provas, progresso |
35
+ | `minerva aula [título]` | Cria a anotação de uma aula |
36
+ | `minerva resumo [tema]` | Cria um resumo de estudo |
37
+ | `minerva prova [nome] --data YYYY-MM-DD` | Agenda e planeja uma prova |
38
+ | `minerva trabalho [título] --entrega YYYY-MM-DD` | Cria um trabalho com data de entrega |
39
+ | `minerva projeto [nome]` | Cria um projeto de disciplina |
40
+ | `minerva portfolio` | Gera o índice do portfólio com todos os projetos |
41
+ | `minerva cheatsheet [assunto]` | Cria uma cheatsheet avulsa (Git, SQL, Linux...) |
42
+ | `minerva flashcards [tema]` | Cria um deck de flashcards (compatível com Spaced Repetition) |
43
+ | `minerva semestre [n]` | Mostra ou define o semestre atual |
44
+ | `minerva disciplina` | Lista as disciplinas; `disciplina add` cria uma extra |
45
+ | `minerva estudo [horas]` | Registra horas de estudo (`-d` para disciplina); sem argumento, mostra os totais |
46
+ | `minerva pendencias` | Lista todos os checkboxes abertos do semestre, com arquivo e linha |
47
+ | `minerva semana` | Provas, entregas e pendências dos próximos 7 dias (`--dias N` muda a janela) |
48
+ | `minerva nota` | Boletim com médias e situação; `nota add` registra a nota de uma avaliação |
49
+ | `minerva stats` | Streak, horas e gráfico de constância dos últimos 30 dias |
50
+ | `minerva flashcards export` | Exporta todos os flashcards para TSV importável no Anki |
51
+ | `minerva open [arquivo]` | Abre o dashboard (ou um arquivo) no Obsidian |
52
+ | `minerva commit [msg]` | Faz git add + commit de tudo que mudou no vault |
53
+ | `minerva config` | Mostra a configuração; `config set <chave> <valor>` edita |
54
+ | `minerva completion <shell>` | Gera autocomplete para bash ou zsh |
55
+ | `minerva update-matriz` | Atualiza a matriz curricular a partir do site oficial da FATEC |
56
+ | `minerva doctor` | Diagnóstico do ambiente e do vault |
57
+ | `minerva version` / `minerva help` | Versão e ajuda |
58
+
59
+ Todos os comandos de nota aceitam `-d/--disciplina` e `-s/--semestre` para pular os prompts interativos, e `-c/--commit` para commitar o vault após criar. Comandos de leitura (`estudo`, `pendencias`, `semana`, `nota`, `stats`, `config`) aceitam `--json` para uso em scripts.
60
+
61
+ ### Resumos e flashcards com IA
62
+
63
+ `minerva resumo --ai` lê suas anotações em `Aulas/` e gera o rascunho do resumo com Claude; `minerva flashcards --ai` gera cards a partir dos seus `Resumos/`. Requer a variável de ambiente `ANTHROPIC_API_KEY`:
64
+
65
+ ```bash
66
+ export ANTHROPIC_API_KEY="sk-ant-..."
67
+ minerva resumo "Normalização" -d "Banco de Dados" --ai
68
+ ```
69
+
70
+ ### Exemplo
71
+
72
+ ```bash
73
+ minerva aula "Normalização" -d "Banco de Dados" -s 3
74
+ # ✔ Pronto! Nota criada em:
75
+ # • 3-semestre/Banco de Dados/Aulas/2026-07-13-aula-normalizacao.md
76
+ ```
77
+
78
+ ## Estrutura criada pelo `minerva init`
79
+
80
+ ```
81
+ fatec-ads/
82
+ ├── dashboard/ # Dashboard.md gerado automaticamente
83
+ ├── roadmap/ # roadmap da graduação
84
+ ├── curriculo/ # matriz.json (matriz curricular oficial)
85
+ ├── portfolio/ # índice de projetos (minerva portfolio)
86
+ ├── entrevistas/ estagio/ certificados/ artigos/ livros/
87
+ ├── snippets/ flashcards/ cheatsheets/ laboratorio/ desafios/
88
+ ├── templates/ # templates Handlebars personalizáveis
89
+ ├── projetos-pessoais/
90
+ ├── obsidian/ # daily notes, canvas, attachments, excalidraw
91
+ ├── 1-semestre/ ... 6-semestre/
92
+ │ └── <Disciplina>/
93
+ │ ├── README.md Cheatsheet.md Resumo-Final.md
94
+ │ ├── Aulas/ Resumos/ Provas/ Trabalhos/ Projetos/
95
+ │ └── Exercicios/ Flashcards/ Laboratorio/ Referencias/
96
+ └── minerva.json # configuração do vault
97
+ ```
98
+
99
+ ## Personalizando templates
100
+
101
+ Os templates ficam em `templates/*.hbs` dentro do vault. Edite qualquer um deles e a Minerva passa a usar a sua versão — os embutidos no pacote são apenas o fallback.
102
+
103
+ ## Como atualizar
104
+
105
+ ```bash
106
+ npm update -g minerva-cli
107
+ minerva update-matriz # re-sincroniza a matriz com o site da FATEC
108
+ ```
109
+
110
+ ## Desenvolvimento
111
+
112
+ ```bash
113
+ git clone https://github.com/phs-santos/fatec-cli
114
+ cd minerva-cli
115
+ npm install
116
+ npm run dev -- --help # roda a CLI via tsx
117
+ npm test # Vitest
118
+ npm run lint # ESLint + Prettier
119
+ npm run build # tsup → ESM + CJS + tipos
120
+ ```
121
+
122
+ A arquitetura, as decisões de design e os diagramas estão em [docs/ARQUITETURA.md](docs/ARQUITETURA.md). Fluxogramas de uso (do zero à rotina semanal) em [docs/GUIA-DE-USO.md](docs/GUIA-DE-USO.md).
123
+
124
+ ## Roadmap
125
+
126
+ - [x] Resumos e flashcards gerados por IA (Anthropic; OpenAI/Gemini via interface `AiProvider`)
127
+ - [x] Exportação de flashcards para Anki
128
+ - [x] Registro de horas, boletim de notas e estatísticas de constância
129
+ - [ ] Integração com Notion e Google Calendar
130
+ - [ ] Sincronização com GitHub / nuvem
131
+ - [ ] Servidor MCP para uso com agentes
132
+
133
+ ## Como contribuir
134
+
135
+ 1. Abra uma issue descrevendo a proposta.
136
+ 2. Fork + branch (`feat/minha-feature`).
137
+ 3. `npm test` e `npm run lint` verdes.
138
+ 4. Abra o pull request. 💜
139
+
140
+ ## Licença
141
+
142
+ MIT