@mocoto/mahoraga 0.14.9 → 0.15.1
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/README.md +263 -30
- package/dist/analysts/js-ts/registrar.js +1 -1
- package/dist/analysts/react/analysts/analyst-react-hooks.js +30 -15
- package/dist/analysts/react/analysts/analyst-react.js +4 -2
- package/dist/analysts/react/detectors/detector-react-best-practices.js +7 -4
- package/dist/caretakers/caretaker-imports.js +0 -9
- package/dist/cli/commands/command-github-actions.js +0 -27
- package/dist/core/messages/en/cli/cli-command-github-actions-messages.js +0 -5
- package/dist/core/messages/en/github/index.js +0 -1
- package/dist/core/messages/ja/cli/cli-command-github-actions-messages.js +0 -5
- package/dist/core/messages/ja/github/index.js +0 -1
- package/dist/core/messages/pt/cli/cli-command-github-actions-messages.js +0 -5
- package/dist/core/messages/pt/github/index.js +0 -1
- package/dist/core/messages/zh/cli/cli-command-github-actions-messages.js +0 -5
- package/dist/core/messages/zh/github/index.js +0 -1
- package/dist/core/registry/file-registry.js +1 -1
- package/dist/node.loader.js +0 -2
- package/dist/shared/formatters/formatters/commons.js +36 -10
- package/dist/shared/formatters/formatters/shell.js +6 -3
- package/dist/types/analysts/index.js +1 -1
- package/docs/.obsidian/app.json +7 -0
- package/docs/.obsidian/appearance.json +8 -0
- package/docs/.obsidian/community-plugins.json +28 -0
- package/docs/.obsidian/core-plugins-migration.json +18 -0
- package/docs/.obsidian/core-plugins.json +73 -0
- package/docs/.obsidian/graph.json +22 -0
- package/docs/.obsidian/workspace.json +196 -0
- package/docs/01-arquitetura/ADR-001-estrutura-testes.md +31 -0
- package/docs/01-arquitetura/_index.md +152 -0
- package/docs/02-componentes/_index.md +294 -0
- package/docs/02-componentes/supressao-inline.md +88 -0
- package/docs/03-guias/_index.md +173 -0
- package/docs/03-guias/contribuindo.md +71 -0
- package/docs/03-guias/testes.md +133 -0
- package/docs/04-glossario/_index.md +29 -0
- package/docs/04-glossario/termos.md +247 -0
- package/docs/05-referencias/_index.md +87 -0
- package/docs/_home.md +140 -0
- package/docs/partials/AVISO-PROVENIENCIA.md +3 -0
- package/docs/templates/ADR.md +24 -0
- package/docs/templates/componente.md +34 -0
- package/docs/templates/guia.md +28 -0
- package/package.json +31 -32
- package/dist/app/github.js +0 -14
- package/dist/app/index.js +0 -1
- package/dist/core/messages/en/github/github-app-messages.js +0 -9
- package/dist/core/messages/ja/github/github-app-messages.js +0 -9
- package/dist/core/messages/pt/github/github-app-messages.js +0 -9
- package/dist/core/messages/zh/github/github-app-messages.js +0 -9
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
Proveniência e Autoria: Este documento integra o projeto @mocoto/mahoraga (licença MIT-0).
|
|
3
|
+
tags: [moc, guias]
|
|
4
|
+
created: 2026-07-24
|
|
5
|
+
updated: 2026-07-25
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Guias
|
|
9
|
+
|
|
10
|
+
## Desenvolvimento
|
|
11
|
+
|
|
12
|
+
- [[contribuindo|Contribuindo]]: Como contribuir com o projeto
|
|
13
|
+
- [[testes|Testes]]: Padrões e boas práticas de teste
|
|
14
|
+
|
|
15
|
+
## Guia Rápido de Comandos
|
|
16
|
+
|
|
17
|
+
### Diagnóstico
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
mahoraga diagnosticar # análise padrão
|
|
21
|
+
mahoraga diagnosticar --full # completa (todos os detectores)
|
|
22
|
+
mahoraga diagnosticar --fast # rápida (apenas detectores essenciais)
|
|
23
|
+
mahoraga diagnosticar --compact # saída compacta
|
|
24
|
+
mahoraga diagnosticar --json # saída JSON
|
|
25
|
+
mahoraga diagnosticar --detalhado # saída detalhada
|
|
26
|
+
mahoraga diagnosticar --executive # relatório executivo (1 página)
|
|
27
|
+
mahoraga diagnosticar --monorepo # modo monorepo
|
|
28
|
+
mahoraga diagnosticar --stream # streaming NDJSON
|
|
29
|
+
mahoraga diagnosticar --guardian-check # verificar Guardian junto
|
|
30
|
+
mahoraga diagnosticar --auto-fix # corrigir automaticamente
|
|
31
|
+
mahoraga diagnosticar --include "src/**" --exclude "**/*.test.ts"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Guardian (Integridade)
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
mahoraga guardian # verificar integridade
|
|
38
|
+
mahoraga guardian --accept-baseline # aceitar estado atual como baseline
|
|
39
|
+
mahoraga guardian --diff # mostrar diferenças
|
|
40
|
+
mahoraga guardian --full-scan # scan completo
|
|
41
|
+
mahoraga guardian --json # saída JSON
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Licenças
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
mahoraga licencas scan # scan de dependências
|
|
48
|
+
mahoraga licencas notices generate # gerar THIRD-PARTY-NOTICES
|
|
49
|
+
mahoraga licencas disclaimer add # adicionar headers SPDX
|
|
50
|
+
mahoraga licencas disclaimer verify # verificar headers SPDX
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Compliance
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
mahoraga compliance report iso-27001 # relatório ISO 27001
|
|
57
|
+
mahoraga compliance report soc2 # relatório SOC 2
|
|
58
|
+
mahoraga compliance report soc2 --json # em JSON
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Análise CI/CD
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
mahoraga github-actions scan # GitHub Actions
|
|
65
|
+
mahoraga github-actions gate # quality gate
|
|
66
|
+
mahoraga gitlab-ci scan # GitLab CI
|
|
67
|
+
mahoraga circleci scan # CircleCI
|
|
68
|
+
mahoraga jenkins scan # Jenkins
|
|
69
|
+
mahoraga azure scan # Azure Pipelines
|
|
70
|
+
mahoraga convert --from github --to gitlab # converter templates
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Vulnerabilidades
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
mahoraga vulnerabilidades scan # scan npm audit
|
|
77
|
+
mahoraga vulnerabilidades scan --json # saída JSON
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Manutenção de Código
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
mahoraga formatar --write # formatar código
|
|
84
|
+
mahoraga formatar --check # verificar apenas
|
|
85
|
+
mahoraga fix-types --target src # corrigir any/unknown
|
|
86
|
+
mahoraga fix-types --dry-run # simular correção
|
|
87
|
+
mahoraga fix-types --interactive # modo interativo
|
|
88
|
+
mahoraga podar # remover arquivos órfãos
|
|
89
|
+
mahoraga names --scan # extrair nomes de variáveis
|
|
90
|
+
mahoraga names --apply # aplicar renomeações
|
|
91
|
+
mahoraga imports --scan # escanear aliases
|
|
92
|
+
mahoraga imports --apply # aplicar correções de import
|
|
93
|
+
mahoraga barrels --scan # preview de barrels
|
|
94
|
+
mahoraga barrels --generate # gerar barrels
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Plugins e Marketplace
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
mahoraga plugins list # listar plugins instalados
|
|
101
|
+
mahoraga plugins install <pacote> # instalar plugin
|
|
102
|
+
mahoraga plugins remove <pacote> # remover plugin
|
|
103
|
+
mahoraga marketplace search <termo> # buscar analistas
|
|
104
|
+
mahoraga marketplace install <nome> # instalar do marketplace
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Performance e Métricas
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
mahoraga perf snapshot # criar snapshot
|
|
111
|
+
mahoraga perf baseline # definir baseline
|
|
112
|
+
mahoraga perf compare # comparar snapshots
|
|
113
|
+
mahoraga metricas # métricas de execução
|
|
114
|
+
mahoraga metricas --analistas # métricas por analista
|
|
115
|
+
mahoraga metricas --json # JSON output
|
|
116
|
+
|
|
117
|
+
mahoraga analistas # listar analistas
|
|
118
|
+
mahoraga analistas --json # listar em JSON
|
|
119
|
+
mahoraga analistas --plugins # listar plugins
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Utilitários
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
mahoraga otimizar-svg --write # otimizar SVGs
|
|
126
|
+
mahoraga reverter listar # listar reversões
|
|
127
|
+
mahoraga reverter move <id> # reverter movimento
|
|
128
|
+
mahoraga atualizar --global # auto-update
|
|
129
|
+
mahoraga atualizar --local # update local
|
|
130
|
+
mahoraga formatters list # listar formatadores
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Convenções de Código
|
|
134
|
+
|
|
135
|
+
- **Nomenclatura:** Em português (BR) para funções e variáveis
|
|
136
|
+
- **Idioma:** Português é o idioma padrão do projeto
|
|
137
|
+
- **i18n:** Mensagens de usuário sempre em pt, en, zh, ja
|
|
138
|
+
- **Componentes:** Functional components com default export
|
|
139
|
+
- **Imports:** Path aliases (`@core/`, `@cli/`, etc.): nunca caminhos relativos profundos
|
|
140
|
+
- **Testes:** Vitest com `vi.hoisted()` + `vi.mock()`
|
|
141
|
+
|
|
142
|
+
## Como Criar um Novo Comando CLI
|
|
143
|
+
|
|
144
|
+
1. Criar arquivo em `src/cli/commands/command-meu-comando.ts`
|
|
145
|
+
2. Implementar função que recebe `aplicarFlagsGlobais` e retorna um `Command` do Commander
|
|
146
|
+
3. Adicionar o comando em `src/cli/commands/commands.ts`
|
|
147
|
+
4. Adicionar mensagens i18n em todas as 4 línguas
|
|
148
|
+
5. Criar testes em `tests/cli/commands/command-meu-comando.test.ts`
|
|
149
|
+
6. Usar `vi.hoisted()` para mocks, `parseAsync([], { from: 'user' })` para execução
|
|
150
|
+
|
|
151
|
+
## Testes
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# Suite completa
|
|
155
|
+
npm test
|
|
156
|
+
|
|
157
|
+
# Testes específicos
|
|
158
|
+
npx vitest run tests/cli/commands/command-format.test.ts
|
|
159
|
+
|
|
160
|
+
# Coverage
|
|
161
|
+
npm run coverage
|
|
162
|
+
|
|
163
|
+
# Modo watch
|
|
164
|
+
npx vitest
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Build
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
npm run build # compilar TypeScript
|
|
171
|
+
npm run typecheck # verificar tipos (sem emitir)
|
|
172
|
+
npm run lint # ESLint
|
|
173
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
Proveniência e Autoria: Este documento integra o projeto @mocoto/mahoraga (licença MIT-0).
|
|
3
|
+
tags: [guia]
|
|
4
|
+
status: rascunho
|
|
5
|
+
created: 2026-07-24
|
|
6
|
+
updated: 2026-07-25
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Contribuindo
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
1. Crie uma branch: `tipo/descricao-curta` (ex: `feat/novo-comando`)
|
|
14
|
+
2. Faça commits atômicos seguindo [conventional commits](https://www.conventionalcommits.org/)
|
|
15
|
+
3. Abra um Pull Request com descrição do *porquê*, não apenas do *que*
|
|
16
|
+
4. PRs devem ser pequenos (máx 200-400 linhas)
|
|
17
|
+
|
|
18
|
+
## Checklist pré-PR
|
|
19
|
+
|
|
20
|
+
- [ ] `npm run typecheck` passando
|
|
21
|
+
- [ ] `npm test` passando
|
|
22
|
+
- [ ] `npm run build` passando
|
|
23
|
+
- [ ] Cobertura adequada nos arquivos alterados
|
|
24
|
+
- [ ] Mensagens i18n atualizadas em pt, en, zh, ja
|
|
25
|
+
- [ ] Documentação atualizada em `Docs/`
|
|
26
|
+
|
|
27
|
+
## Convenções
|
|
28
|
+
|
|
29
|
+
- Commits: `tipo(escopo): descrição no imperativo`
|
|
30
|
+
- Tipos: feat, fix, refactor, docs, test, chore
|
|
31
|
+
- Branches: `tipo/issue-123-descricao`
|
|
32
|
+
- NUNCA force push
|
|
33
|
+
- NUNCA use `git add.`: adicione apenas arquivos intencionais
|
|
34
|
+
- Revise `git diff --cached` por segredos antes de commitar
|
|
35
|
+
|
|
36
|
+
## Estrutura de um Comando
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// src/cli/commands/command-exemplo.ts
|
|
40
|
+
import { Command } from 'commander';
|
|
41
|
+
|
|
42
|
+
export function comandoExemplo(aplicarFlagsGlobais: (opts: unknown) => void): Command {
|
|
43
|
+
const cmd = new Command('exemplo').alias('ex')
|
|
44
|
+
.description('Faz algo incrível')
|
|
45
|
+
.option('-t, --target <path>', 'Diretório alvo');
|
|
46
|
+
|
|
47
|
+
cmd.action(async (opts) => {
|
|
48
|
+
aplicarFlagsGlobais(opts);
|
|
49
|
+
// implementação...
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
return cmd;
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Convenções de i18n
|
|
57
|
+
|
|
58
|
+
Toda mensagem visível ao usuário deve ser adicionada em 4 línguas:
|
|
59
|
+
|
|
60
|
+
- `src/core/messages/pt/ ...`: Português (padrão)
|
|
61
|
+
- `src/core/messages/en/ ...`: Inglês
|
|
62
|
+
- `src/core/messages/zh/ ...`: Chinês
|
|
63
|
+
- `src/core/messages/ja/ ...`: Japonês
|
|
64
|
+
|
|
65
|
+
Mensagens são objetos `as const` exportados e tipados.
|
|
66
|
+
|
|
67
|
+
## Dependências
|
|
68
|
+
|
|
69
|
+
- **Runtime:** Node.js >=24.16.0
|
|
70
|
+
- **Gerenciador:** npm
|
|
71
|
+
- **Nunca adicione** `@types/*` como dependência de produção: use `devDependencies`
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
Proveniência e Autoria: Este documento integra o projeto @mocoto/mahoraga (licença MIT-0).
|
|
3
|
+
tags: [guia, testes]
|
|
4
|
+
status: rascunho
|
|
5
|
+
created: 2026-07-24
|
|
6
|
+
updated: 2026-07-25
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Testes
|
|
10
|
+
|
|
11
|
+
## Stack
|
|
12
|
+
|
|
13
|
+
- **Framework:** Vitest v4
|
|
14
|
+
- **Coverage:** v8 (via `@vitest/coverage-v8`)
|
|
15
|
+
- **Mocks:** `vi.hoisted()` + `vi.mock()` no topo dos arquivos
|
|
16
|
+
- **Organização:** `tests/` espelha `src/` em estrutura de diretórios
|
|
17
|
+
- **Aliases:** Mesma configuração de paths do tsconfig (definidos em `vitest.config.ts`)
|
|
18
|
+
|
|
19
|
+
## Padrões
|
|
20
|
+
|
|
21
|
+
### Teste de Comando CLI
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
25
|
+
|
|
26
|
+
const mockLog = vi.hoisted(() => ({ info: vi.fn(), erro: vi.fn() }));
|
|
27
|
+
|
|
28
|
+
vi.mock('@core/messages', () => ({
|
|
29
|
+
getMessages: () => ({ log: mockLog, /* ... */ }),
|
|
30
|
+
}));
|
|
31
|
+
|
|
32
|
+
import { comandoFormatar } from '../../../src/cli/commands/command-format.js';
|
|
33
|
+
|
|
34
|
+
describe('comandoFormatar', () => {
|
|
35
|
+
beforeEach(() => { vi.clearAllMocks(); });
|
|
36
|
+
|
|
37
|
+
it('cria comando com nome esperado', () => {
|
|
38
|
+
const cmd = comandoFormatar(vi.fn());
|
|
39
|
+
expect(cmd.name()).toBe('formatar');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('captura erros no scanRepository', async () => {
|
|
43
|
+
const exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => undefined as never);
|
|
44
|
+
const scanRepo = (await import('@core/execution')).scanRepository as ReturnType<typeof vi.fn>;
|
|
45
|
+
scanRepo.mockRejectedValue(new Error('erro'));
|
|
46
|
+
const cmd = comandoFormatar(vi.fn());
|
|
47
|
+
await cmd.parseAsync([], { from: 'user' });
|
|
48
|
+
expect(mockLog.erro).toHaveBeenCalled();
|
|
49
|
+
exitSpy.mockRestore();
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Teste com Callback Pattern (Mocks Complexos)
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
// Para módulos com mocking complexo (ex: createRequire, promisify):
|
|
58
|
+
const mockFn = vi.hoisted(() => vi.fn().mockResolvedValue([]));
|
|
59
|
+
|
|
60
|
+
vi.mock('node:module', () => ({
|
|
61
|
+
createRequire: () => (id: string) => {
|
|
62
|
+
if (id === 'license-checker') return { init: mockFn };
|
|
63
|
+
return require(id);
|
|
64
|
+
},
|
|
65
|
+
}));
|
|
66
|
+
|
|
67
|
+
vi.mock('node:util', () => ({ promisify: () => (fn: any) => fn }));
|
|
68
|
+
|
|
69
|
+
// Import dinâmico após os mocks
|
|
70
|
+
const mod = await import('../../src/licenses/generate-notices.js');
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Teste de Módulo com FS
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
import fs from 'node:fs';
|
|
77
|
+
import os from 'node:os';
|
|
78
|
+
import path from 'node:path';
|
|
79
|
+
|
|
80
|
+
let tmpDir: string;
|
|
81
|
+
|
|
82
|
+
beforeEach(() => {
|
|
83
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'mahoraga-test-'));
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
afterEach(() => {
|
|
87
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Teste de Tipos
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
import { describe, it, expectTypeOf } from 'vitest';
|
|
95
|
+
import type { MeuTipo } from '../../src/types/index.js';
|
|
96
|
+
|
|
97
|
+
describe('MeuTipo', () => {
|
|
98
|
+
it('deve ser string', () => {
|
|
99
|
+
expectTypeOf<MeuTipo>().toBeString();
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Cobertura
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npm run coverage # relatório completo
|
|
108
|
+
npx vitest run --coverage --reporter=text # apenas terminal
|
|
109
|
+
npx vitest run --coverage --reporter=html # HTML interativo
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Alvo
|
|
113
|
+
|
|
114
|
+
- Cobertura geral target: 56%+ statements
|
|
115
|
+
- Novos arquivos: 80%+ statements
|
|
116
|
+
- Módulos críticos (licenses, vulnerabilities, guardian): 90%+
|
|
117
|
+
|
|
118
|
+
## Dicas Avançadas
|
|
119
|
+
|
|
120
|
+
- `parseAsync([], { from: 'user' })`: Commander v15 não aceita args posicionais
|
|
121
|
+
- `vi.spyOn(process, 'exit')`: sempre restaurar com `.mockRestore()` no afterEach
|
|
122
|
+
- `vi.hoisted()` para variáveis que precisam existir antes dos mocks serem avaliados
|
|
123
|
+
- Testes de FS real usar `os.tmpdir()` + limpeza em `afterEach`
|
|
124
|
+
- Mocks de `@core/messages` são os mais comuns: criar helper se repetir muito
|
|
125
|
+
- Para testar barrels (index.ts), importar o barrel e verificar se as exportações existem
|
|
126
|
+
|
|
127
|
+
## Debug
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
npx vitest --reporter=verbose # log detalhado
|
|
131
|
+
npx vitest --reporter=json # saída JSON
|
|
132
|
+
npx vitest run tests/meu-teste.test.ts --reporter=verbose
|
|
133
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
Proveniência e Autoria: Este documento integra o projeto @mocoto/mahoraga (licença MIT-0).
|
|
3
|
+
tags: [moc, glossario]
|
|
4
|
+
created: 2026-07-24
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Glossário
|
|
8
|
+
|
|
9
|
+
## Termos do Domínio
|
|
10
|
+
|
|
11
|
+
| Termo | Definição |
|
|
12
|
+
|-------|-----------|
|
|
13
|
+
| **Analyst** | Analisador especializado que processa um aspecto do código (AST, dependências, etc.) |
|
|
14
|
+
| **Caretaker** | Módulo que aplica transformações automáticas no código fonte |
|
|
15
|
+
| **Guardian** | Pipeline de integridade que verifica baseline vs estado atual |
|
|
16
|
+
| **Baseline** | Estado de referência do projeto usado pelo Guardian |
|
|
17
|
+
| **Registry** | Registro central de analysts com descoberta automática |
|
|
18
|
+
| **Runtime** | Adaptador de ambiente (Node, Deno, Bun) |
|
|
19
|
+
| **MOC** | Map of Content: nota índice que linka notas relacionadas |
|
|
20
|
+
| **ADR** | Architecture Decision Record: registro de decisão arquitetural |
|
|
21
|
+
| **MCP** | Model Context Protocol: protocolo para agentes de IA acessarem ferramentas |
|
|
22
|
+
|
|
23
|
+
## Tags Utilizadas
|
|
24
|
+
|
|
25
|
+
- `#moc`: Nota do tipo Mapa de Conteúdo
|
|
26
|
+
- `#adr`: Architecture Decision Record
|
|
27
|
+
- `#guia`: Guia de desenvolvimento
|
|
28
|
+
- `#glossario`: Entrada de glossário
|
|
29
|
+
- `#termo`: Definição de termo
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
Proveniência e Autoria: Este documento integra o projeto @mocoto/mahoraga (licença MIT-0).
|
|
3
|
+
tags: [glossario, termo]
|
|
4
|
+
created: 2026-07-24
|
|
5
|
+
updated: 2026-07-25
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Termos do Domínio
|
|
9
|
+
|
|
10
|
+
## A
|
|
11
|
+
|
|
12
|
+
### ADR (Architecture Decision Record)
|
|
13
|
+
|
|
14
|
+
Registro de decisão arquitetural. Documenta o contexto, a decisão tomada, consequências e alternativas consideradas. Usa o template em `templates/ADR.md`.
|
|
15
|
+
|
|
16
|
+
### Advisor
|
|
17
|
+
|
|
18
|
+
Módulo que fornece recomendações contextuais baseadas nos resultados da análise. Dois tipos: genérico (`advisor.ts`) e específico do mahoraga (`advisor-mahoraga.ts`).
|
|
19
|
+
|
|
20
|
+
### Analyst
|
|
21
|
+
|
|
22
|
+
Analisador especializado que processa um aspecto específico do código. Descobertos automaticamente pelo Registry. Exemplos: analisador de AST, analisador de dependências, analisador de métricas.
|
|
23
|
+
|
|
24
|
+
### Archetype
|
|
25
|
+
|
|
26
|
+
Padrão arquitetural detectado pelo sistema de análise. Usado para classificar projetos e sugerir boas práticas específicas.
|
|
27
|
+
|
|
28
|
+
### Autodiscovery
|
|
29
|
+
|
|
30
|
+
Mecanismo que descobre automaticamente analistas e detectores sem registro manual. Implementado em `src/analysts/registry/autodiscovery.ts`.
|
|
31
|
+
|
|
32
|
+
### Azure Pipelines
|
|
33
|
+
|
|
34
|
+
Plataforma de CI/CD da Microsoft. O Mahoraga analisa pipelines Azure com detectores e correções específicos.
|
|
35
|
+
|
|
36
|
+
## B
|
|
37
|
+
|
|
38
|
+
### Babel
|
|
39
|
+
|
|
40
|
+
Parser de JavaScript/TypeScript usado pelo Mahoraga para análise de AST (Árvore Sintática Abstrata).
|
|
41
|
+
|
|
42
|
+
### Barrel
|
|
43
|
+
|
|
44
|
+
Arquivo `index.ts` que re-exporta módulos de um diretório. O Mahoraga pode escanear, gerar e gerenciar barrels automaticamente.
|
|
45
|
+
|
|
46
|
+
### Baseline
|
|
47
|
+
|
|
48
|
+
Estado de referência do projeto usado pelo Guardian para detectar alterações não autorizadas. Armazenado em `.mahoraga/baseline/`.
|
|
49
|
+
|
|
50
|
+
## C
|
|
51
|
+
|
|
52
|
+
### Caretaker
|
|
53
|
+
|
|
54
|
+
Módulo que aplica transformações automáticas no código fonte. Exemplo: `caretaker-imports.ts` gerencia aliases de import.
|
|
55
|
+
|
|
56
|
+
### CircleCI
|
|
57
|
+
|
|
58
|
+
Plataforma de CI/CD. O Mahoraga analisa pipelines CircleCI com detectores e correções.
|
|
59
|
+
|
|
60
|
+
### CLI
|
|
61
|
+
|
|
62
|
+
Command Line Interface. Interface de linha de comando implementada com Commander.js.
|
|
63
|
+
|
|
64
|
+
### Compliance
|
|
65
|
+
|
|
66
|
+
Conformidade com standards de segurança e governança. O Mahoraga gera relatórios ISO 27001 e SOC 2.
|
|
67
|
+
|
|
68
|
+
### Conventional Commits
|
|
69
|
+
|
|
70
|
+
Padrão de mensagens de commit: `tipo(escopo): descrição`. Tipos usados: feat, fix, refactor, docs, test, chore.
|
|
71
|
+
|
|
72
|
+
### Converter
|
|
73
|
+
|
|
74
|
+
Módulo que converte pipelines entre plataformas de CI/CD (ex: GitHub Actions → GitLab CI).
|
|
75
|
+
|
|
76
|
+
## D
|
|
77
|
+
|
|
78
|
+
### Detector
|
|
79
|
+
|
|
80
|
+
Unidade mínima de análise que verifica um aspecto específico do código. Múltiplos detectores compõem um analyst.
|
|
81
|
+
|
|
82
|
+
### Disclaimer
|
|
83
|
+
|
|
84
|
+
Header SPDX adicionado ao topo de arquivos fonte para declaração de licença. O módulo `licenses/disclaimer.ts` gerencia isso.
|
|
85
|
+
|
|
86
|
+
## E
|
|
87
|
+
|
|
88
|
+
### Ed25519
|
|
89
|
+
|
|
90
|
+
Algoritmo de curva elíptica usado pelo Guardian para assinatura GPG. Escolhido por segurança e performance.
|
|
91
|
+
|
|
92
|
+
## F
|
|
93
|
+
|
|
94
|
+
### Fix Types
|
|
95
|
+
|
|
96
|
+
Subcomando que corrige automaticamente tipos inseguros (`any` → tipos concretos, `unknown` → tipos específicos).
|
|
97
|
+
|
|
98
|
+
## G
|
|
99
|
+
|
|
100
|
+
### GitHub Actions
|
|
101
|
+
|
|
102
|
+
Plataforma de CI/CD do GitHub. O Mahoraga analisa workflows YAML com detectores especializados.
|
|
103
|
+
|
|
104
|
+
### GitLab CI
|
|
105
|
+
|
|
106
|
+
Plataforma de CI/CD do GitLab. Análise de pipelines `.gitlab-ci.yml`.
|
|
107
|
+
|
|
108
|
+
### GPG (GNU Privacy Guard)
|
|
109
|
+
|
|
110
|
+
Sistema de criptografia usado pelo Guardian para assinar e verificar baselines de integridade.
|
|
111
|
+
|
|
112
|
+
### Guardian
|
|
113
|
+
|
|
114
|
+
Pipeline de integridade que compara o baseline com o estado atual do projeto, detectando desvios e alterações suspeitas. Usa assinatura GPG Ed25519.
|
|
115
|
+
|
|
116
|
+
## I
|
|
117
|
+
|
|
118
|
+
### i18n
|
|
119
|
+
|
|
120
|
+
Internacionalização. O Mahoraga suporta 4 idiomas: Português (padrão), Inglês, Chinês, Japonês.
|
|
121
|
+
|
|
122
|
+
### Inquisitor
|
|
123
|
+
|
|
124
|
+
Módulo do core que coordena a execução dos analisadores durante o scan.
|
|
125
|
+
|
|
126
|
+
## J
|
|
127
|
+
|
|
128
|
+
### Jenkins
|
|
129
|
+
|
|
130
|
+
Plataforma de CI/CD open-source. O Mahoraga analisa pipelines Jenkins.
|
|
131
|
+
|
|
132
|
+
## L
|
|
133
|
+
|
|
134
|
+
### Loader ESM
|
|
135
|
+
|
|
136
|
+
Mecanismo em `src/node.loader.ts` que resolve path aliases em tempo de execução, permitindo imports como `@core/execution`.
|
|
137
|
+
|
|
138
|
+
## M
|
|
139
|
+
|
|
140
|
+
### MCP (Model Context Protocol)
|
|
141
|
+
|
|
142
|
+
Protocolo padrão que permite agentes de IA acessarem ferramentas e recursos externos de forma segura.
|
|
143
|
+
|
|
144
|
+
### Marketplace
|
|
145
|
+
|
|
146
|
+
Sistema de distribuição de analistas comunitários. Comandos: `marketplace search`, `marketplace install`.
|
|
147
|
+
|
|
148
|
+
### MOC (Map of Content)
|
|
149
|
+
|
|
150
|
+
Nota índice que funciona como hub de navegação, linkando notas relacionadas sobre um mesmo tema. Substitui pastas profundas na documentação.
|
|
151
|
+
|
|
152
|
+
### Monorepo
|
|
153
|
+
|
|
154
|
+
Repositório com múltiplos projetos. O Mahoraga detecta configurações pnpm-workspace, lerna, nx e turbo.
|
|
155
|
+
|
|
156
|
+
## N
|
|
157
|
+
|
|
158
|
+
### NDJSON (Newline Delimited JSON)
|
|
159
|
+
|
|
160
|
+
Formato de streaming usado para projetos grandes. Cada linha é um JSON válido, permitindo processamento incremental.
|
|
161
|
+
|
|
162
|
+
### npm audit
|
|
163
|
+
|
|
164
|
+
Ferramenta do npm para scan de vulnerabilidades em dependências. Integrada ao módulo `vulnerabilities/`.
|
|
165
|
+
|
|
166
|
+
## P
|
|
167
|
+
|
|
168
|
+
### Phantom
|
|
169
|
+
|
|
170
|
+
Arquivo que existe no filesystem mas não é importado por nenhum outro módulo. Detectado pelo detector de phantoms.
|
|
171
|
+
|
|
172
|
+
### Plugin
|
|
173
|
+
|
|
174
|
+
Extensão do sistema de análise. Plugins built-in: analyst-formatter, detector-documentation, detector-markdown, detector-node.
|
|
175
|
+
|
|
176
|
+
### Poda (Pruning)
|
|
177
|
+
|
|
178
|
+
Remoção automatizada de arquivos órfãos e código morto. Comando: `mahoraga podar`.
|
|
179
|
+
|
|
180
|
+
### postcss
|
|
181
|
+
|
|
182
|
+
Parser de CSS usado pelos analisadores CSS e CSS-in-JS.
|
|
183
|
+
|
|
184
|
+
## R
|
|
185
|
+
|
|
186
|
+
### Registry
|
|
187
|
+
|
|
188
|
+
Registro central de analysts com descoberta automática via `autodiscovery.ts`. Permite que novos analysts sejam detectados sem registro manual.
|
|
189
|
+
|
|
190
|
+
### Runtime
|
|
191
|
+
|
|
192
|
+
Camada de abstração do ambiente de execução. Suporta Node.js através do adaptador em `src/core/runtime/`.
|
|
193
|
+
|
|
194
|
+
## S
|
|
195
|
+
|
|
196
|
+
### Scanner
|
|
197
|
+
|
|
198
|
+
Motor que percorre o filesystem, identifica arquivos por tipo e coordena a análise. Presente em `core/execution/` e `licenses/scanner.ts`.
|
|
199
|
+
|
|
200
|
+
### Schema Versioning
|
|
201
|
+
|
|
202
|
+
Sistema de versionamento de schemas de relatórios para compatibilidade retroativa.
|
|
203
|
+
|
|
204
|
+
### Sentinel
|
|
205
|
+
|
|
206
|
+
Mecanismo do Guardian que monitora continuamente alterações no projeto.
|
|
207
|
+
|
|
208
|
+
### SOC 2
|
|
209
|
+
|
|
210
|
+
Standard de auditoria de controles organizacionais. Relatório gerado pelo módulo `reports/compliance/`.
|
|
211
|
+
|
|
212
|
+
### SPDX
|
|
213
|
+
|
|
214
|
+
Software Package Data Exchange. Padrão para comunicação de informações de licenças. Usado pelo módulo `licenses/`.
|
|
215
|
+
|
|
216
|
+
### Streaming
|
|
217
|
+
|
|
218
|
+
Modo de saída NDJSON para projetos grandes, permitindo processamento incremental sem carregar tudo em memória.
|
|
219
|
+
|
|
220
|
+
## T
|
|
221
|
+
|
|
222
|
+
### THIRD-PARTY-NOTICES
|
|
223
|
+
|
|
224
|
+
Arquivo gerado pelo Mahoraga listando todas as licenças de dependências do projeto.
|
|
225
|
+
|
|
226
|
+
## W
|
|
227
|
+
|
|
228
|
+
### Worker Pool
|
|
229
|
+
|
|
230
|
+
Sistema de processamento paralelo em `src/core/workers/`. Gerencia fila de tarefas, workers e resultados.
|
|
231
|
+
|
|
232
|
+
## X
|
|
233
|
+
|
|
234
|
+
### xxhash
|
|
235
|
+
|
|
236
|
+
Algoritmo de hashing não-criptográfico usado pelo Guardian para hash rápido de arquivos.
|
|
237
|
+
|
|
238
|
+
## Índice de Tags
|
|
239
|
+
|
|
240
|
+
| Tag | Uso |
|
|
241
|
+
|-----|-----|
|
|
242
|
+
| `#moc` | Nota Mapa de Conteúdo |
|
|
243
|
+
| `#adr` | Architecture Decision Record |
|
|
244
|
+
| `#guia` | Guia de desenvolvimento |
|
|
245
|
+
| `#glossario` | Entrada de glossário |
|
|
246
|
+
| `#termo` | Definição de termo individual |
|
|
247
|
+
| `#componente` | Documentação de componente |
|