English · 中文 · Español · 日本語 · Português
Gracias por tu interés en contribuir al Digital Citizenship Protocol for AI Agents. Esta guía te ayudará a empezar.
- Node.js >= 18 (requerido para el protocolo core y el SDK TypeScript)
- Python >= 3.12 (requerido para el SDK Python)
- Go >= 1.21 (requerido para el SDK Go)
- Rust (toolchain stable, requerido para el SDK Rust)
- Git
# Clone the repository
git clone https://github.com/dcp-ai-protocol/dcp-ai.git
cd dcp-ai
# Install root dependencies (core protocol + CLI)
npm install
# Run conformance tests to verify your setup (should print "DCP-AI CONFORMANCE PASS (V1 + V2)")
npm run conformanceCada SDK vive en su propio directorio bajo sdks/ y tiene dependencias independientes:
# TypeScript SDK
cd sdks/typescript && npm install
# Python SDK
cd sdks/python && pip install -e ".[dev]"
# Go SDK
cd sdks/go && go mod download
# Rust SDK
cd sdks/rust && cargo build
# WASM SDK (requires Rust + wasm-pack + Node.js)
cd sdks/wasm && npm installnpm run conformance# TypeScript
cd sdks/typescript
npm run test # Run tests
npm run test:coverage # Run tests with coverage
# Python
cd sdks/python
pytest -v
# Go
cd sdks/go
go test ./...
# Rust
cd sdks/rust
cargo test
# WASM (build verification)
cd sdks/wasm
npm testEste proyecto usa herramientas automatizadas para aplicar un estilo de código consistente:
- ESLint para linting de JavaScript/TypeScript (consulta
.eslintrc.json) - Prettier para formateo de código (consulta
.prettierrc.json) - EditorConfig para configuraciones básicas del editor (consulta
.editorconfig)
- Usa
constpor defecto; nunca usesvar - Usa comillas simples para strings
- Incluye siempre comas finales (trailing commas)
- Ancho máximo de línea de 100 caracteres
- Usa indentación de 2 espacios (excepto Makefiles)
Formatea tu código antes de hacer commit:
npx prettier --write .
npx eslint --fix .- Haz fork del repositorio y crea una rama de feature desde
main. - Haz tus cambios en commits enfocados y lógicos.
- Escribe o actualiza tests para cualquier funcionalidad nueva o corrección de bugs.
- Asegúrate de que todos los tests pasen localmente antes de abrir un PR.
- Abre un pull request contra
maincon una descripción clara de qué cambió y por qué.
- Todos los tests existentes pasan
- Se agregaron nuevos tests para la funcionalidad nueva
- El código sigue las pautas de estilo del proyecto
- Documentación actualizada si aplica
- Los mensajes de commit siguen el formato a continuación
Usa mensajes de commit convencionales:
<type>(<scope>): <short summary>
<optional body>- feat: Una nueva funcionalidad
- fix: Una corrección de bug
- docs: Cambios solo de documentación
- style: Formateo, punto y coma faltantes, etc. (sin cambio de código)
- refactor: Cambio de código que ni corrige un bug ni agrega una funcionalidad
- test: Agregar o actualizar tests
- chore: Proceso de build, actualizaciones de dependencias, tooling
- core: Protocolo core, CLI, schemas
- sdk/ts: SDK TypeScript
- sdk/py: SDK Python
- sdk/go: SDK Go
- sdk/rust: SDK Rust
- sdk/wasm: SDK WASM
- integration/*: Integraciones con frameworks
- ci: Workflows CI/CD
feat(sdk/ts): add post-quantum signature support
fix(core): correct Merkle root computation for single-entry chains
docs(sdk/py): add installation instructions for extras
test(core): add conformance tests for expired bundles
chore(ci): add code coverage to TypeScript SDK workflow- Todas las nuevas funcionalidades deben incluir tests correspondientes.
- Las correcciones de bugs deben incluir un test de regresión que hubiese atrapado el bug.
- Los tests de conformidad en
tests/conformance/verifican el cumplimiento del protocolo en todas las implementaciones. - Los tests de los SDKs deben cubrir la creación de bundles, firma, verificación y casos de error.
- CI debe pasar antes de que un PR pueda ser mergeado. Los fallos de tests no se suprimen — si los tests fallan, el build falla.
Si tienes preguntas sobre cómo contribuir, abre un issue en GitHub o inicia una discusión. Estaremos encantados de ayudarte a empezar.