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 +21 -0
- package/README.md +142 -0
- package/dist/index.cjs +2137 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +2097 -0
- package/dist/index.js.map +1 -0
- package/package.json +93 -0
- package/templates/aula.hbs +38 -0
- package/templates/cheatsheet.hbs +26 -0
- package/templates/dashboard.hbs +46 -0
- package/templates/disciplina.hbs +42 -0
- package/templates/flashcard.hbs +17 -0
- package/templates/projeto.hbs +40 -0
- package/templates/prova.hbs +36 -0
- package/templates/readme.hbs +51 -0
- package/templates/resumo-final.hbs +31 -0
- package/templates/resumo.hbs +30 -0
- package/templates/trabalho.hbs +34 -0
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
|
+
[](https://github.com/phs-santos/fatec-cli/actions/workflows/ci.yml)
|
|
6
|
+

|
|
7
|
+

|
|
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
|