Skip to content

Instantly share code, notes, and snippets.

View pedrovasconcellos's full-sized avatar

Pedro Vasconcellos pedrovasconcellos

View GitHub Profile
@pedrovasconcellos
pedrovasconcellos / memory-bank-and-spec-driven-development.md
Created November 10, 2026 22:07
Guia prático de Memory Bank e Spec Driven Development

Memory Bank mantém o contexto que um agente precisa recuperar ao trabalhar no projeto. Spec Driven Development, ou SDD, torna explícito o comportamento que uma mudança deve entregar e usa essa definição para orientar planejamento, implementação e verificação.

Para engenharia sênior, a combinação interessa porque torna três coisas revisáveis: o contexto usado para decidir, a intenção da mudança e a evidência de que o resultado atende à intenção. O ganho depende da qualidade desses três elementos e de sua manutenção.

Este guia cobre os conceitos, uma estrutura mínima de arquivos, um fluxo de trabalho, um exemplo com Go, MongoDB e SQS, critérios de revisão e exercícios. O exemplo de assinatura é hipotético; seus prazos e políticas são escolhas didáticas.

1 Entenda as responsabilidades

Elemento Pergunta que responde Conteúdo típico
@pedrovasconcellos
pedrovasconcellos / GITHUB_COPILOT_CODE_REVIEW_TRAINING.md
Last active November 11, 2026 01:52
Treinamento do Github Copilot Code Review

Regras de Code Review

Escopo e evidência

  • Revise diff, funções e consumidores afetados, conforme contratos e convenções documentados.
  • Priorize problemas introduzidos/agravados; diferencie dívida preexistente. Demonstre bugs com evidência e cenário alcançável.
  • Considere controles, testes e índices existentes. Se faltar contexto, indique o que verificar; não invente requisitos, métricas ou issues.

Severidade

@pedrovasconcellos
pedrovasconcellos / WHAT_IS_A_MEMORY_BANK.md
Created November 3, 2025 04:47
What is a Memory Bank?

What Is the Memory Bank For?

They are checklists that serve as verification guides to ensure that changes carried out by artificial intelligence (AI) in the code respect the defined standards and workflows of the project, reducing errors and maintaining consistency.

1. Before implementing

Purpose

@pedrovasconcellos
pedrovasconcellos / EXAMPLE_TYPESCRIPT_CLEAN_ARCHITECTURE.md
Created November 1, 2025 09:35
Example of clean architecture using TypeScript.

Layer Mapping

1. domain/ → internal/domain (Go)

Innermost layer — pure business rules.

// domain/entities/Order.ts
export class Order {
  private id: string;
  private customerId: string;
@pedrovasconcellos
pedrovasconcellos / WHAT_IS_A_MEMORY_BANK_PTBR.md
Last active November 3, 2025 04:44
O que é um Memory Bank?

Para que serve o Memory Bank?

São checklists que servem como guias de verificação para garantir que alterações realizadas pela inteligência artificial (IA) no código respeitem os padrões definidos e workflows do projeto, reduzindo erros e mantendo a consistência.

1. Antes de implementar

Propósito

@pedrovasconcellos
pedrovasconcellos / CLEAN_ARCHITECTURE.md
Last active November 7, 2025 02:00
Clean Architecture Memory Bank

Clean Architecture Memory Bank

TL;DR

  • Clean Architecture keeps business rules independent from delivery so changes in frameworks never break core logic.
  • Dependencies flow inward: infrastructure → adapters → application → domain.
  • Use cases expose ports; adapters implement them; infrastructure wire everything together under cmd/ entrypoints.

Core Principles

  • Separation of concerns: Domain logic lives in entities/value objects; use cases orchestrate; adapters translate boundaries; infrastructure provide tooling (frameworks and drivers) only.
  • Dependency rule: Inner layers know nothing about outer layers—never import adapters or infrastructure from the domain or application packages.
@pedrovasconcellos
pedrovasconcellos / CLEAN_ARCHITECTURE_FOLDER_STRUCTURE.md
Last active November 7, 2025 02:09
Clean Architecture folder structure

Clean Architecture

Folder structure

.                                     # Repository root
├── .github/                          # CI/CD workflows configurations
│   └── workflows/
│       ├── ci.yml                    # Test and lint pipeline
│       └── cd.yml                    # Deploy pipeline
@pedrovasconcellos
pedrovasconcellos / insert_random_data.py
Created April 11, 2025 00:01
Insert random data into MongoDB
from pymongo import MongoClient
from datetime import datetime
import uuid
from urllib.parse import quote_plus
USER = "master"
PASSWORD = quote_plus("password") # encodes the password
HOST = "localhost"
AUTH_DB = "admin"
DATABASE = "database_name"
from pymongo import MongoClient
import json
from datetime import datetime
from urllib.parse import quote_plus
USER = "master"
PASSWORD = quote_plus("password") # encodes the password
PASSWORD_PROD = quote_plus("password_prod")
HOST = "localhost"
HOST_PROD = "cluster.com"
@pedrovasconcellos
pedrovasconcellos / 20-intel.conf
Last active February 13, 2025 15:49
Virtual Monitor Xorg
#sudo vim /etc/X11/xorg.conf.d/20-intel.conf
#FileContent
Section "Device"
Identifier "IntelGPU"
Driver "intel"
Option "AccelMethod" "sna"
# Option "TearFree" "true"
EndSection