ArchVault-Versioner

ArchVault-Versioner

ArchVault Versioner is a template repository for organizing, tracking, and evolving software architectural documentation with the same rigor applied to source code, leveraging the documentation correlation and centralization capabilities of the Obsidian tool.

🏛️ ArchVault Versioner

Git 2.40+ GitHub Repo Conventional Commits License MIT

Versionamento inteligente de documentação arquitetural usando Git & GitHub como fonte única da verdade.

📑 Navegue pelo projeto

🚀 Início rápido🏗️ Estrutura📋 Workflow🤝 Contribuição📜 Changelog

🎯 Visão geral

logo

O ArchDoc Versioner é um repositório modelo para organizar, rastrear e evoluir documentação arquitetural de software com o mesmo rigor usado para código-fonte, utilizando o poder de correlação e centralização de documentação da ferramenta Obsidian.

"Arquitetura que não é versionada é arquitetura que não existe."




✨ Por que versionar documentação arquitetural?

  • Rastreabilidade: saiba quem mudou o quê, quando e por quê.
  • Revisão colaborativa: Pull Requests para decisões arquiteturais.
  • Histórico evolutivo: entenda como a arquitetura mudou ao longo do tempo.
  • Fonte única da verdade: diagramas, ADRs e glossário sempre sincronizados.
  • Integração com CI/CD: valide links, diagramas e estilo automaticamente.

🚀 Início rápido

1. Clone o template

git clone https://github.com/guisantoslima/ArchVault-Versioner.git archvault-versioner
cd archvault-versioner

2. Configure seu ambiente

git config --local user.name "Seu Nome"
git config --local user.email "seu.email@example.com"

3. Crie sua primeira decisão arquitetural

git checkout -b feat/arch-001-escolha-banco-dados
cp docs/archs/_template.md docs/adrs/ADR-001-escolha-banco-de-dados.md
# edite o arquivo...
git add .
git commit -m "feat(adr): adiciona ADR-001 sobre escolha do banco de dados"

🏗️ Estrutura do repositório

📦 archvault-versioner
 ├──📁 .github/
 │  ├── 📁 ISSUE_TEMPLATE/
 │  │   ├── bug_report.md
 │  │   ├── nova-decisao-arquitetural.md
 │  │   └── revisao-de-documento.md
 │  ├── 📁 workflows/                        # CI/CD para docs
 │  │   ├── diagrams.yml
 │  │   ├── links.yml
 │  │   └── PULL_REQUEST_TEMPLATE.md
 ├──📁 .obsidian
 ├──📁 ArchVault/
 │  ├── 📁 docs/
 │  │   ├── 📁 adrs/                        # Architecture Decision Records
 │  │   │   ├── ADR-001-ex.md
 │  │   │   └── _template.md
 │  │   ├── 📁 diagrams/                    # C4, UML, fluxos de dados
 │  │   │   ├── 📁 C1
 │  │   │   │   └── contexto-ex.puml
 │  │   │   ├── 📁 C2
 │  │   │   │   └── container-ex.puml
 │  │   │   ├── 📁 C3
 │  │   │   │   └── component-ex.puml
 │  │   │   ├── 📁 C4
 │  │   │   │   └── code-ex.puml
 │  │   ├── 📁 views/                       # Visões arquiteturais (lógica, física, etc.)
 │  │   │   ├── visao-logica.md
 │  │   │   ├── visao-processos.md
 │  │   │   ├── visao-desenvolvimento.md
 │  │   │   ├── visao-fisica.md
 │  │   │   └── visao-cenarios.md
 │  │   ├── 📁 roadmaps/                    # Roadmaps e Planejamentos
 │  │   │   └── roadmap-2026.md
 │  │   └── README.md                       # Guia de navegação dos docs
 │  ├── 📁 scripts/
 │  │   ├── novo-adr.sh
 │  │   └── verificar-links.sh
 │  └── 📁 img/
 │      └── ArchVault-Versioner-logo.png
 ├── CHANGELOG.md
 ├── CONTRIBUTING.md
 ├── LICENSE.md
 ├── README.md
 └── SECURITY.md

🔄 Workflow de versionamento

graph LR
    A[Identifica necessidade<br/>de mudança] --> B{Cria novo ADR<br/>ou atualiza doc?}
    B -->|Novo| C[Copia template<br/>de ADR]
    B -->|Atualiza| D[Edita documento<br/>existente]
    C --> E[Abre branch<br/>feat/adr-NNN]
    D --> E
    E --> F[Commit com<br/>Conventional Commits]
    F --> G[Abre Pull Request]
    G --> H[Revisão por pares]
    H -->|Aprovado| I[Merge na main]
    H -->|Solicita ajustes| E
    I --> J[Atualiza CHANGELOG.md]
    J --> K[Tag semântica<br/>vX.Y.Z]

📌 Convenção de commits

Use Conventional Commits para manter o histórico legível e gerar changelog automaticamente.

TipoQuando usarExemplo
feat(adr)Nova decisão arquiteturalfeat(adr): ADR-003 escolha de message broker
docs(diag)Novo ou atualizado diagramadocs(diag): atualiza C4 de containers
docs(visao)Nova visão arquiteturaldocs(visao): adiciona visão de segurança
fix(gloss)Correção no glossáriofix(gloss): corrige definição de saga
chore(tools)Ferramentas e scriptschore(tools): adiciona script de verificação de links

🏷️ Versionamento semântico para documentação

Aplicamos versionamento semântico ao conteúdo do repositório:

VersãoSignificadoExemplo
MAJORArquitetura completamente redesenhadav2.0.0
MINORNova ADR, nova visão, novo diagramav1.3.0
PATCHCorreções, revisões menores, typov1.3.2

📝 Templates prontos

🏛️ ADR — Architecture Decision Record

Acesse o template completo em docs/adrs/_template.md ou use o script:

./scripts/novo-adr.sh "escolha do message broker"

🖼️ Diagrama C4 — PlantUML

@startuml C4_Contexto
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml

Person(usuario, "Usuário", "Usuário final do sistema")
System(sistema, "Sistema", "Plataforma de versionamento de docs")
System_Ext(github, "GitHub", "Repositório e revisão colaborativa")

Rel(usuario, sistema, "Acessa")
Rel(sistema, github, "Sincroniza docs")

SHOW_LEGEND()
@enduml

🤝 Como contribuir

  1. Leia o CONTRIBUTING.md.
  2. Verifique se já existe uma issue relacionada.
  3. Crie uma branch a partir da main: feat/adr-NNN-descricao-curta.
  4. Faça commits claros com Conventional Commits.
  5. Abra um Pull Request usando o template fornecido.
  6. Solicite revisão de pelo menos 1 arquiteto ou tech lead.

✅ Checklist de Pull Request

  • O documento segue o template correspondente.
  • Links internos e externos foram verificados.
  • Diagramas foram renderizados sem erros.
  • O CHANGELOG.md foi atualizado.
  • A versão semântica foi atualizada, se necessário.

📜 Changelog

Mudanças documentadas seguem o formato Keep a Changelog.


 Versão | Data | Solution Request | Feature | Branch | Responsável | Changes (PR)

Veja o histórico completo em CHANGELOG.md.


🛠️ Ferramentas recomendadas

FerramentaUsoLink
GitVersionamento de código e docshttps://git-scm.com
GitHubRepositório, PRs e Issueshttps://github.com
PlantUMLDiagramas C4 e UMLhttps://plantuml.com
MermaidDiagramas em Markdownhttps://mermaid-js.github.io
MarkdownlintPadronização de Markdownhttps://github.com/DavidAnson/markdownlint
ObsidianAnotações Markdown Linkhttps://obsidian.md

📚 Leitura recomendada


📄 Licença

Este projeto está licenciado sob a Licença MIT.


⬆️ Voltar ao topo


How to Install

  1. Download the ZIP or clone the repository
  2. Open the folder as a vault in Obsidian (File → Open Vault)
  3. Obsidian will prompt you to install required plugins

Stats

Stars

3

Forks

1

License

MIT

Last updated 1mo ago