English · 中文 · Español · 日本語 · Português
AIエージェントのためのデジタル市民権プロトコルへのコントリビューションにご関心をお寄せいただきありがとうございます。このガイドでは、最初の一歩をお手伝いします。
- Node.js >= 18 (コアプロトコルとTypeScript SDKに必要)
- Python >= 3.12 (Python SDKに必要)
- Go >= 1.21 (Go SDKに必要)
- Rust (stableツールチェーン、Rust SDKに必要)
- 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 conformance各SDKは sdks/ 配下の独自ディレクトリに置かれ、独立した依存関係を持ちます。
# 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 testこのプロジェクトでは、一貫したコードスタイルを強制するために自動化ツールを使用しています。
- ESLint JavaScript/TypeScript の lint (
.eslintrc.jsonを参照) - Prettier コードフォーマット (
.prettierrc.jsonを参照) - EditorConfig 基本的なエディタ設定 (
.editorconfigを参照)
- デフォルトで
constを使用すること。varは絶対に使用しないこと - 文字列にはシングルクォートを使用すること
- 末尾のカンマは常に付けること
- 最大行幅は100文字
- 2スペースのインデントを使用すること (Makefileを除く)
コミット前にコードをフォーマットしてください。
npx prettier --write .
npx eslint --fix .- リポジトリをフォークして、
mainから機能ブランチを作成します。 - フォーカスされた論理的なコミットで変更を加えます。
- 新機能やバグ修正にはテストを追加または更新します。
- PRを開く前にローカルですべてのテストがパスすることを確認します。
- 何が変わったか、なぜ変わったかを明確に記述したプルリクエストを
mainに対して開きます。
- すべての既存テストがパスする
- 新機能には新しいテストが追加されている
- コードがプロジェクトのスタイルガイドラインに従っている
- 該当する場合、ドキュメントが更新されている
- コミットメッセージが以下のフォーマットに従っている
コンベンショナルコミットメッセージを使用してください。
<type>(<scope>): <short summary>
<optional body>
- feat: 新機能
- fix: バグ修正
- docs: ドキュメントのみの変更
- style: フォーマット、セミコロンの欠落など (コード変更なし)
- refactor: バグ修正も機能追加もしないコード変更
- test: テストの追加または更新
- chore: ビルドプロセス、依存関係の更新、ツーリング
- core: コアプロトコル、CLI、スキーマ
- sdk/ts: TypeScript SDK
- sdk/py: Python SDK
- sdk/go: Go SDK
- sdk/rust: Rust SDK
- sdk/wasm: WASM SDK
- integration/*: フレームワーク統合
- ci: 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
- すべての新機能には対応するテストを含めてください。
- バグ修正には、そのバグを捕捉できたはずのリグレッションテストを含めてください。
tests/conformance/の適合性テストは、すべての実装でプロトコル準拠を検証します。- SDKテストでは、バンドル作成、署名、検証、エラーケースをカバーしてください。
- PRがマージされる前にCIがパスする必要があります。テスト失敗は抑制されません — テストが失敗すると、ビルドも失敗します。
コントリビューションについて質問がある場合は、GitHub issueを開くか、ディスカッションを開始してください。喜んで最初の一歩をお手伝いします。