abm-ks 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/CHANGELOG.md +108 -0
- package/CONTRIBUTING.md +294 -0
- package/LICENSE +21 -0
- package/README.md +455 -0
- package/docs/guides/abm-concepts.md +239 -0
- package/docs/guides/getting-started.md +284 -0
- package/docs/reference/quick-reference.md +143 -0
- package/package.json +62 -0
- package/src/core/agents/abm-master.agent.yaml +172 -0
- package/src/core/config.yaml +123 -0
- package/src/core/module.yaml +77 -0
- package/src/core/workflows/browse-library/instructions.md +315 -0
- package/src/core/workflows/browse-library/workflow.yaml +54 -0
- package/src/core/workflows/help/instructions.md +645 -0
- package/src/core/workflows/help/workflow.yaml +60 -0
- package/src/core/workflows/list-models/instructions.md +149 -0
- package/src/core/workflows/list-models/workflow.yaml +67 -0
- package/src/core/workflows/use-template/instructions.md +214 -0
- package/src/core/workflows/use-template/workflow.yaml +98 -0
- package/src/core/workflows/workflow-init/checklist.md +98 -0
- package/src/core/workflows/workflow-init/instructions.md +451 -0
- package/src/core/workflows/workflow-init/project-context-template.md +141 -0
- package/src/core/workflows/workflow-init/questions.yaml +281 -0
- package/src/core/workflows/workflow-init/workflow.yaml +169 -0
- package/src/core/workflows/workflow-status/instructions.md +319 -0
- package/src/core/workflows/workflow-status/status-display.md +278 -0
- package/src/core/workflows/workflow-status/workflow.yaml +125 -0
- package/src/module-registry.yaml +48 -0
- package/src/modules/abm/agents/cpp-dev.agent.yaml +380 -0
- package/src/modules/abm/agents/experiment-designer.agent.yaml +358 -0
- package/src/modules/abm/agents/model-designer.agent.yaml +255 -0
- package/src/modules/abm/agents/netlogo-dev.agent.yaml +320 -0
- package/src/modules/abm/agents/odd-writer.agent.yaml +307 -0
- package/src/modules/abm/agents/python-dev.agent.yaml +330 -0
- package/src/modules/abm/agents/simulation-architect.agent.yaml +286 -0
- package/src/modules/abm/config.yaml +212 -0
- package/src/modules/abm/library/CONTRIBUTING.md +340 -0
- package/src/modules/abm/library/README.md +115 -0
- package/src/modules/abm/library/model-registry.yaml +195 -0
- package/src/modules/abm/library/model-template/MODEL-TEMPLATE.md +394 -0
- package/src/modules/abm/library/model-template/model-schema.yaml +330 -0
- package/src/modules/abm/library/model-template/submission-checklist.md +181 -0
- package/src/modules/abm/module.yaml +215 -0
- package/src/modules/abm/templates/models/cpp/README.md +29 -0
- package/src/modules/abm/templates/models/netlogo/predator-prey/README.md +28 -0
- package/src/modules/abm/templates/models/netlogo/predator-prey/predator-prey.nlogo +414 -0
- package/src/modules/abm/templates/models/netlogo/schelling-segregation/README.md +26 -0
- package/src/modules/abm/templates/models/netlogo/schelling-segregation/schelling.nlogo +330 -0
- package/src/modules/abm/templates/models/netlogo/sir-epidemic/README.md +28 -0
- package/src/modules/abm/templates/models/netlogo/sir-epidemic/sir-epidemic.nlogo +345 -0
- package/src/modules/abm/templates/models/python/predator-prey/README.md +118 -0
- package/src/modules/abm/templates/models/python/predator-prey/model-info.yaml +61 -0
- package/src/modules/abm/templates/models/python/predator-prey/src/__init__.py +0 -0
- package/src/modules/abm/templates/models/python/predator-prey/src/model.py +267 -0
- package/src/modules/abm/templates/models/python/predator-prey/src/run.py +87 -0
- package/src/modules/abm/templates/models/python/schelling-segregation/README.md +47 -0
- package/src/modules/abm/templates/models/python/schelling-segregation/model-info.yaml +48 -0
- package/src/modules/abm/templates/models/python/schelling-segregation/src/__init__.py +0 -0
- package/src/modules/abm/templates/models/python/schelling-segregation/src/model.py +109 -0
- package/src/modules/abm/templates/models/python/schelling-segregation/src/run.py +57 -0
- package/src/modules/abm/templates/models/python/sir-epidemic/README.md +41 -0
- package/src/modules/abm/templates/models/python/sir-epidemic/model-info.yaml +48 -0
- package/src/modules/abm/templates/models/python/sir-epidemic/src/__init__.py +0 -0
- package/src/modules/abm/templates/models/python/sir-epidemic/src/model.py +108 -0
- package/src/modules/abm/templates/models/python/sir-epidemic/src/run.py +48 -0
- package/src/modules/abm/workflows/1-conceptualization/model-brief/instructions.md +354 -0
- package/src/modules/abm/workflows/1-conceptualization/model-brief/model-brief-template.md +204 -0
- package/src/modules/abm/workflows/1-conceptualization/model-brief/workflow.yaml +152 -0
- package/src/modules/abm/workflows/1-conceptualization/pattern-identification/instructions.md +384 -0
- package/src/modules/abm/workflows/1-conceptualization/pattern-identification/patterns-template.md +149 -0
- package/src/modules/abm/workflows/1-conceptualization/pattern-identification/workflow.yaml +136 -0
- package/src/modules/abm/workflows/2-design/behavior-rules/behavior-spec-template.md +187 -0
- package/src/modules/abm/workflows/2-design/behavior-rules/instructions.md +307 -0
- package/src/modules/abm/workflows/2-design/behavior-rules/workflow.yaml +100 -0
- package/src/modules/abm/workflows/2-design/entity-design/entity-spec-template.md +169 -0
- package/src/modules/abm/workflows/2-design/entity-design/instructions.md +276 -0
- package/src/modules/abm/workflows/2-design/entity-design/workflow.yaml +104 -0
- package/src/modules/abm/workflows/2-design/environment-setup/environment-spec-template.md +215 -0
- package/src/modules/abm/workflows/2-design/environment-setup/instructions.md +287 -0
- package/src/modules/abm/workflows/2-design/environment-setup/workflow.yaml +104 -0
- package/src/modules/abm/workflows/2-design/process-scheduling/instructions.md +267 -0
- package/src/modules/abm/workflows/2-design/process-scheduling/scheduling-spec-template.md +243 -0
- package/src/modules/abm/workflows/2-design/process-scheduling/workflow.yaml +91 -0
- package/src/modules/abm/workflows/3-implementation/code-generation/code-templates.md +396 -0
- package/src/modules/abm/workflows/3-implementation/code-generation/instructions.md +434 -0
- package/src/modules/abm/workflows/3-implementation/code-generation/workflow.yaml +165 -0
- package/src/modules/abm/workflows/3-implementation/experiment-setup/experiment-templates.md +349 -0
- package/src/modules/abm/workflows/3-implementation/experiment-setup/instructions.md +367 -0
- package/src/modules/abm/workflows/3-implementation/experiment-setup/workflow.yaml +124 -0
- package/src/modules/abm/workflows/3-implementation/model-testing/instructions.md +419 -0
- package/src/modules/abm/workflows/3-implementation/model-testing/test-report-template.md +244 -0
- package/src/modules/abm/workflows/3-implementation/model-testing/workflow.yaml +132 -0
- package/src/modules/abm/workflows/4-documentation/generate-odd/instructions.md +415 -0
- package/src/modules/abm/workflows/4-documentation/generate-odd/odd-template.md +240 -0
- package/src/modules/abm/workflows/4-documentation/generate-odd/workflow.yaml +151 -0
- package/src/modules/abm/workflows/4-documentation/readme-generation/instructions.md +347 -0
- package/src/modules/abm/workflows/4-documentation/readme-generation/readme-template.md +261 -0
- package/src/modules/abm/workflows/4-documentation/readme-generation/workflow.yaml +137 -0
- package/src/modules/brainstorm/agents/creative-thinker.agent.yaml +11 -0
- package/src/modules/brainstorm/agents/critic.agent.yaml +120 -0
- package/src/modules/brainstorm/agents/critical-analyst.agent.yaml +11 -0
- package/src/modules/brainstorm/agents/domain-expert.agent.yaml +12 -0
- package/src/modules/brainstorm/agents/facilitator.agent.yaml +95 -0
- package/src/modules/brainstorm/agents/researcher.agent.yaml +115 -0
- package/src/modules/brainstorm/agents/synthesizer.agent.yaml +74 -0
- package/src/modules/brainstorm/agents/visionary.agent.yaml +122 -0
- package/src/modules/brainstorm/config.yaml +46 -0
- package/src/modules/brainstorm/module.yaml +104 -0
- package/src/modules/brainstorm/workflows/brainstorm-session/instructions.md +7 -0
- package/src/modules/brainstorm/workflows/brainstorm-session/workflow.yaml +14 -0
- package/src/modules/brainstorm/workflows/concept-validation/workflow.yaml +5 -0
- package/src/modules/brainstorm/workflows/hypothesis-generation/workflow.yaml +108 -0
- package/src/modules/brainstorm/workflows/idea-exploration/workflow.yaml +5 -0
- package/src/modules/brainstorm/workflows/ideation-session/workflow.yaml +138 -0
- package/src/modules/brainstorm/workflows/literature-review/workflow.yaml +106 -0
- package/src/modules/brainstorm/workflows/model-scoping/workflow.yaml +120 -0
- package/src/modules/brainstorm/workflows/problem-definition/workflow.yaml +108 -0
- package/src/modules/documentation/agents/communicator.agent.yaml +142 -0
- package/src/modules/documentation/agents/data-analyst.agent.yaml +140 -0
- package/src/modules/documentation/agents/reviewer.agent.yaml +131 -0
- package/src/modules/documentation/agents/scientific-editor.agent.yaml +120 -0
- package/src/modules/documentation/agents/technical-writer.agent.yaml +122 -0
- package/src/modules/documentation/config.yaml +73 -0
- package/src/modules/documentation/module.yaml +100 -0
- package/src/modules/documentation/workflows/academic-paper/workflow.yaml +159 -0
- package/src/modules/documentation/workflows/analysis-protocol/workflow.yaml +161 -0
- package/src/modules/documentation/workflows/data-collection-guide/workflow.yaml +165 -0
- package/src/modules/documentation/workflows/documentation-review/workflow.yaml +114 -0
- package/src/modules/documentation/workflows/technical-manual/workflow.yaml +133 -0
- package/src/test-modules.js +572 -0
- package/tests/e2e/flow-tests.cjs +339 -0
- package/tests/integration/integration-tests.cjs +562 -0
- package/tests/run-all-tests.cjs +175 -0
- package/tests/validation/yaml-validator.cjs +345 -0
- package/tools/abm-ks-npx-wrapper.js +17 -0
- package/tools/cli/abm-ks-cli.js +133 -0
- package/tools/cli/commands/help.js +43 -0
- package/tools/cli/commands/index.js +17 -0
- package/tools/cli/commands/install.js +53 -0
- package/tools/cli/commands/version.js +17 -0
- package/tools/installer/lib/config-collector.js +322 -0
- package/tools/installer/lib/defaults.js +204 -0
- package/tools/installer/lib/file-copier.js +248 -0
- package/tools/installer/lib/index.js +18 -0
- package/tools/installer/lib/installer.js +492 -0
- package/tools/installer/lib/logger.js +233 -0
- package/tools/installer/lib/module-manager.js +222 -0
- package/tools/installer/lib/team-selector.js +238 -0
- package/tools/installer/lib/ui.js +197 -0
- package/tools/installer/lib/utils.js +239 -0
- package/tools/installer/test-config.js +99 -0
- package/tools/installer/test-installer.js +172 -0
- package/tools/installer/test-ui.js +138 -0
- package/tools/scripts/prepare.js +37 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
|
|
4
|
+
|
|
5
|
+
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/),
|
|
6
|
+
e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/).
|
|
7
|
+
|
|
8
|
+
## [0.1.0] - 2025-01-15
|
|
9
|
+
|
|
10
|
+
### 🎉 Release Inicial
|
|
11
|
+
|
|
12
|
+
Primeira versão pública do ABM-KS (Agent-Based Modeling Knowledge System).
|
|
13
|
+
|
|
14
|
+
### Adicionado
|
|
15
|
+
|
|
16
|
+
#### Core
|
|
17
|
+
- Sistema modular com arquitetura extensível
|
|
18
|
+
- Agente ABM Master para coordenação geral
|
|
19
|
+
- Workflows de inicialização (`*init`) e status (`*status`)
|
|
20
|
+
- Sistema de help contextual com 8 tópicos
|
|
21
|
+
|
|
22
|
+
#### Equipe de Desenvolvimento ABM (7 agentes)
|
|
23
|
+
- Model Designer - Design conceitual de modelos
|
|
24
|
+
- Simulation Architect - Arquitetura técnica
|
|
25
|
+
- Python Developer - Implementação Python/Mesa
|
|
26
|
+
- NetLogo Developer - Implementação NetLogo
|
|
27
|
+
- C++ Developer - Implementação C++ de alta performance
|
|
28
|
+
- ODD Writer - Documentação ODD Protocol
|
|
29
|
+
- Experiment Designer - Design de experimentos
|
|
30
|
+
|
|
31
|
+
#### Workflows ABM (11 workflows em 4 fases)
|
|
32
|
+
- **Fase 1**: model-brief, pattern-identification
|
|
33
|
+
- **Fase 2**: entity-design, behavior-rules, environment-setup, process-scheduling
|
|
34
|
+
- **Fase 3**: code-generation, model-testing, experiment-setup
|
|
35
|
+
- **Fase 4**: generate-odd, readme-generation
|
|
36
|
+
|
|
37
|
+
#### Equipe de Brainstorming (5 agentes) - Opcional
|
|
38
|
+
- Facilitador - Coordenação de sessões
|
|
39
|
+
- Pesquisador - Revisão de literatura
|
|
40
|
+
- Crítico - Análise crítica
|
|
41
|
+
- Visionário - Ideação criativa
|
|
42
|
+
- Sintetizador - Consolidação de documentos
|
|
43
|
+
|
|
44
|
+
#### Workflows de Brainstorming (5 workflows)
|
|
45
|
+
- ideation-session, literature-review, problem-definition
|
|
46
|
+
- hypothesis-generation, model-scoping
|
|
47
|
+
|
|
48
|
+
#### Equipe de Documentação (5 agentes) - Opcional
|
|
49
|
+
- Editor Científico - Escrita acadêmica
|
|
50
|
+
- Documentador Técnico - Manuais técnicos
|
|
51
|
+
- Analista de Dados - Protocolos de análise
|
|
52
|
+
- Revisor - Controle de qualidade
|
|
53
|
+
- Comunicador - Adaptação para públicos
|
|
54
|
+
|
|
55
|
+
#### Workflows de Documentação (5 workflows)
|
|
56
|
+
- academic-paper, technical-manual, data-collection-guide
|
|
57
|
+
- analysis-protocol, documentation-review
|
|
58
|
+
|
|
59
|
+
#### Biblioteca de Modelos
|
|
60
|
+
- Sistema de biblioteca com registry YAML
|
|
61
|
+
- 6 templates prontos:
|
|
62
|
+
- Predator-Prey (Python + NetLogo)
|
|
63
|
+
- SIR Epidemic (Python + NetLogo)
|
|
64
|
+
- Schelling Segregation (Python + NetLogo)
|
|
65
|
+
- Comandos: `*list-models`, `*use-template`, `*browse-library`
|
|
66
|
+
- Framework para contribuições da comunidade
|
|
67
|
+
|
|
68
|
+
#### Documentação
|
|
69
|
+
- Guia Getting Started
|
|
70
|
+
- Guia de Conceitos ABM
|
|
71
|
+
- Cartão de Referência Rápida
|
|
72
|
+
- Sistema de help integrado
|
|
73
|
+
|
|
74
|
+
#### Infraestrutura
|
|
75
|
+
- CLI para instalação via npx
|
|
76
|
+
- Sistema de seleção de equipes
|
|
77
|
+
- 331 testes automatizados
|
|
78
|
+
- Validação de YAML e integridade
|
|
79
|
+
|
|
80
|
+
### Estatísticas
|
|
81
|
+
|
|
82
|
+
| Componente | Quantidade |
|
|
83
|
+
|------------|------------|
|
|
84
|
+
| Agentes | 18 |
|
|
85
|
+
| Workflows | 27 |
|
|
86
|
+
| Templates | 6 |
|
|
87
|
+
| Testes | 331 |
|
|
88
|
+
| Arquivos | 235 |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Versões Futuras
|
|
93
|
+
|
|
94
|
+
### [0.2.0] - Planejado
|
|
95
|
+
- [ ] Mais templates de modelos
|
|
96
|
+
- [ ] Suporte a Repast Simphony
|
|
97
|
+
- [ ] Integração com Git
|
|
98
|
+
- [ ] Dashboard de progresso visual
|
|
99
|
+
|
|
100
|
+
### [0.3.0] - Planejado
|
|
101
|
+
- [ ] Biblioteca comunitária online
|
|
102
|
+
- [ ] Validação automática de ODD
|
|
103
|
+
- [ ] Export para LaTeX
|
|
104
|
+
- [ ] Internacionalização (i18n)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
[0.1.0]: https://github.com/abm-ks/abm-ks/releases/tag/v0.1.0
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
# Contribuindo para o ABM-KS
|
|
2
|
+
|
|
3
|
+
Obrigado por considerar contribuir com o ABM-KS! 🎉
|
|
4
|
+
|
|
5
|
+
Este documento fornece diretrizes para contribuições ao projeto.
|
|
6
|
+
|
|
7
|
+
## 📋 Índice
|
|
8
|
+
|
|
9
|
+
- [Código de Conduta](#código-de-conduta)
|
|
10
|
+
- [Como Posso Contribuir?](#como-posso-contribuir)
|
|
11
|
+
- [Reportando Bugs](#reportando-bugs)
|
|
12
|
+
- [Sugerindo Melhorias](#sugerindo-melhorias)
|
|
13
|
+
- [Contribuindo com Código](#contribuindo-com-código)
|
|
14
|
+
- [Adicionando Templates](#adicionando-templates)
|
|
15
|
+
- [Guia de Estilo](#guia-de-estilo)
|
|
16
|
+
- [Processo de Review](#processo-de-review)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Código de Conduta
|
|
21
|
+
|
|
22
|
+
Este projeto adota um código de conduta para garantir um ambiente acolhedor para todos. Ao participar, você concorda em manter um ambiente respeitoso e inclusivo.
|
|
23
|
+
|
|
24
|
+
### Nossos Padrões
|
|
25
|
+
|
|
26
|
+
✅ **Comportamentos esperados:**
|
|
27
|
+
- Usar linguagem acolhedora e inclusiva
|
|
28
|
+
- Respeitar diferentes pontos de vista
|
|
29
|
+
- Aceitar críticas construtivas
|
|
30
|
+
- Focar no que é melhor para a comunidade
|
|
31
|
+
|
|
32
|
+
❌ **Comportamentos inaceitáveis:**
|
|
33
|
+
- Linguagem ou imagens ofensivas
|
|
34
|
+
- Assédio de qualquer tipo
|
|
35
|
+
- Ataques pessoais ou políticos
|
|
36
|
+
- Publicar informações privadas de outros
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Como Posso Contribuir?
|
|
41
|
+
|
|
42
|
+
### 🐛 Reportando Bugs
|
|
43
|
+
|
|
44
|
+
Antes de reportar um bug:
|
|
45
|
+
1. Verifique se já não foi reportado
|
|
46
|
+
2. Teste com a versão mais recente
|
|
47
|
+
3. Colete informações relevantes
|
|
48
|
+
|
|
49
|
+
**Inclua no seu report:**
|
|
50
|
+
- Versão do ABM-KS
|
|
51
|
+
- Sistema operacional
|
|
52
|
+
- Passos para reproduzir
|
|
53
|
+
- Comportamento esperado vs atual
|
|
54
|
+
- Screenshots/logs se aplicável
|
|
55
|
+
|
|
56
|
+
### 💡 Sugerindo Melhorias
|
|
57
|
+
|
|
58
|
+
Sugestões são bem-vindas! Abra uma issue descrevendo:
|
|
59
|
+
- O problema que a melhoria resolve
|
|
60
|
+
- Como você imagina a solução
|
|
61
|
+
- Alternativas consideradas
|
|
62
|
+
- Contexto adicional
|
|
63
|
+
|
|
64
|
+
### 📝 Melhorando Documentação
|
|
65
|
+
|
|
66
|
+
Documentação é crucial! Você pode:
|
|
67
|
+
- Corrigir erros de digitação
|
|
68
|
+
- Esclarecer seções confusas
|
|
69
|
+
- Adicionar exemplos
|
|
70
|
+
- Traduzir para outros idiomas
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Contribuindo com Código
|
|
75
|
+
|
|
76
|
+
### Setup do Ambiente
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Clone seu fork
|
|
80
|
+
git clone https://github.com/seu-usuario/abm-ks.git
|
|
81
|
+
cd abm-ks
|
|
82
|
+
|
|
83
|
+
# Instale dependências
|
|
84
|
+
npm install
|
|
85
|
+
|
|
86
|
+
# Execute testes
|
|
87
|
+
node tests/run-all-tests.cjs
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Fluxo de Trabalho
|
|
91
|
+
|
|
92
|
+
1. **Fork** o repositório
|
|
93
|
+
2. **Clone** seu fork localmente
|
|
94
|
+
3. **Crie uma branch** para sua feature
|
|
95
|
+
```bash
|
|
96
|
+
git checkout -b feature/minha-feature
|
|
97
|
+
```
|
|
98
|
+
4. **Faça commits** com mensagens claras
|
|
99
|
+
5. **Execute testes** antes de submeter
|
|
100
|
+
6. **Abra um Pull Request**
|
|
101
|
+
|
|
102
|
+
### Estrutura de Commits
|
|
103
|
+
|
|
104
|
+
Use mensagens de commit claras e descritivas:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
tipo(escopo): descrição curta
|
|
108
|
+
|
|
109
|
+
Descrição mais detalhada se necessário.
|
|
110
|
+
|
|
111
|
+
Fixes #123
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Tipos de commit:**
|
|
115
|
+
- `feat`: Nova feature
|
|
116
|
+
- `fix`: Correção de bug
|
|
117
|
+
- `docs`: Documentação
|
|
118
|
+
- `style`: Formatação
|
|
119
|
+
- `refactor`: Refatoração
|
|
120
|
+
- `test`: Testes
|
|
121
|
+
- `chore`: Manutenção
|
|
122
|
+
|
|
123
|
+
### Executando Testes
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Todos os testes
|
|
127
|
+
node tests/run-all-tests.cjs
|
|
128
|
+
|
|
129
|
+
# Testes específicos
|
|
130
|
+
node src/test-modules.js # Estrutura
|
|
131
|
+
node tests/validation/yaml-validator.cjs # YAML
|
|
132
|
+
node tests/integration/integration-tests.cjs # Integração
|
|
133
|
+
node tests/e2e/flow-tests.cjs # E2E
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Importante:** Todos os testes devem passar antes do PR ser aceito.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Adicionando Templates
|
|
141
|
+
|
|
142
|
+
Templates de modelos são muito bem-vindos!
|
|
143
|
+
|
|
144
|
+
### Requisitos
|
|
145
|
+
|
|
146
|
+
1. Modelo deve ser funcional e testado
|
|
147
|
+
2. Código bem documentado
|
|
148
|
+
3. README explicativo
|
|
149
|
+
4. Seguir a estrutura padrão
|
|
150
|
+
|
|
151
|
+
### Estrutura do Template
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
templates/models/{plataforma}/{nome-do-modelo}/
|
|
155
|
+
├── model-info.yaml # Metadados do modelo
|
|
156
|
+
├── README.md # Documentação
|
|
157
|
+
└── src/ # Código fonte
|
|
158
|
+
├── model.py # (Python)
|
|
159
|
+
└── model.nlogo # (NetLogo)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### model-info.yaml
|
|
163
|
+
|
|
164
|
+
```yaml
|
|
165
|
+
model:
|
|
166
|
+
id: nome-do-modelo
|
|
167
|
+
name: "Nome Exibição"
|
|
168
|
+
version: 1.0.0
|
|
169
|
+
description: "Descrição breve"
|
|
170
|
+
|
|
171
|
+
metadata:
|
|
172
|
+
author: "Seu Nome"
|
|
173
|
+
domain: ecology|epidemiology|economics|social|other
|
|
174
|
+
complexity: beginner|intermediate|advanced
|
|
175
|
+
|
|
176
|
+
technical:
|
|
177
|
+
platform: python|netlogo|cpp
|
|
178
|
+
requirements:
|
|
179
|
+
- mesa>=2.0.0
|
|
180
|
+
|
|
181
|
+
tags:
|
|
182
|
+
- tag1
|
|
183
|
+
- tag2
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Processo de Submissão
|
|
187
|
+
|
|
188
|
+
1. Crie o modelo seguindo a estrutura
|
|
189
|
+
2. Adicione ao registry em `library/model-registry.yaml`
|
|
190
|
+
3. Execute `node src/test-modules.js` para validar
|
|
191
|
+
4. Abra um PR com a categoria `template`
|
|
192
|
+
|
|
193
|
+
Veja também: [library/CONTRIBUTING.md](src/modules/abm/library/CONTRIBUTING.md)
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Guia de Estilo
|
|
198
|
+
|
|
199
|
+
### YAML
|
|
200
|
+
|
|
201
|
+
```yaml
|
|
202
|
+
# Use 2 espaços para indentação
|
|
203
|
+
# Strings com caracteres especiais entre aspas
|
|
204
|
+
# Listas com hífen e espaço
|
|
205
|
+
|
|
206
|
+
workflow:
|
|
207
|
+
id: meu-workflow
|
|
208
|
+
name: "Meu Workflow"
|
|
209
|
+
description: >
|
|
210
|
+
Descrição multilinha usando
|
|
211
|
+
folded scalar.
|
|
212
|
+
|
|
213
|
+
steps:
|
|
214
|
+
- id: step-1
|
|
215
|
+
name: "Primeiro Passo"
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Markdown
|
|
219
|
+
|
|
220
|
+
- Use headers hierárquicos (#, ##, ###)
|
|
221
|
+
- Inclua índice para docs longos
|
|
222
|
+
- Use tabelas para informações estruturadas
|
|
223
|
+
- Adicione exemplos de código com syntax highlighting
|
|
224
|
+
|
|
225
|
+
### JavaScript
|
|
226
|
+
|
|
227
|
+
```javascript
|
|
228
|
+
// Use const/let, nunca var
|
|
229
|
+
// Funções com nomes descritivos
|
|
230
|
+
// Comente código complexo
|
|
231
|
+
// Siga o estilo existente no projeto
|
|
232
|
+
|
|
233
|
+
const colors = {
|
|
234
|
+
green: '\x1b[32m',
|
|
235
|
+
reset: '\x1b[0m'
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
function validateSchema(filePath, schemaType) {
|
|
239
|
+
// Implementação...
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Processo de Review
|
|
246
|
+
|
|
247
|
+
### O que esperamos
|
|
248
|
+
|
|
249
|
+
1. **Código limpo** - Legível e bem estruturado
|
|
250
|
+
2. **Testes passando** - Todos os 331+ testes
|
|
251
|
+
3. **Documentação** - Atualizada conforme mudanças
|
|
252
|
+
4. **Commits claros** - Histórico compreensível
|
|
253
|
+
|
|
254
|
+
### Timeline
|
|
255
|
+
|
|
256
|
+
- PRs são revisados em até 7 dias
|
|
257
|
+
- Feedback será dado via comentários
|
|
258
|
+
- Iterações podem ser necessárias
|
|
259
|
+
- Merge após aprovação
|
|
260
|
+
|
|
261
|
+
### Labels
|
|
262
|
+
|
|
263
|
+
- `bug` - Correção de bug
|
|
264
|
+
- `enhancement` - Nova feature
|
|
265
|
+
- `documentation` - Docs
|
|
266
|
+
- `template` - Novo template
|
|
267
|
+
- `good first issue` - Bom para iniciantes
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Reconhecimento
|
|
272
|
+
|
|
273
|
+
Todos os contribuidores serão reconhecidos no projeto:
|
|
274
|
+
- Lista de Contributors no README
|
|
275
|
+
- Changelog com créditos
|
|
276
|
+
- Releases com agradecimentos
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Dúvidas?
|
|
281
|
+
|
|
282
|
+
- Abra uma issue com label `question`
|
|
283
|
+
- Participe das discussões no GitHub
|
|
284
|
+
- Entre em contato via email
|
|
285
|
+
|
|
286
|
+
**Obrigado por contribuir!** 🙏
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
<div align="center">
|
|
291
|
+
|
|
292
|
+
[↑ Voltar ao topo](#contribuindo-para-o-abm-ks)
|
|
293
|
+
|
|
294
|
+
</div>
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ABM-KS Contributors
|
|
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.
|