開発

前提

  • Go 1.26+
  • pass CLI + gpg(実バックエンドでのテスト用)

ビルド

git clone https://github.com/ikkun1222/trustless
cd trustless
go build -o trustless .

テスト

go test ./...

プロジェクト構造

├── main.go                          # CLIエントリポイント & サブコマンドディスパッチ
├── plugin.json                      # Agent Plugins 1.0.0 マニフェスト
├── skills/
│   └── trustless-usage/             # Agent Skills 仕様準拠の SKILL.md
├── schemas/
│   └── plugin.schema.json           # 公式 Agent Plugins スキーマ (vendored)
├── internal/
│   ├── backend/
│   │   ├── backend.go               # Backend インターフェース + 型定義
│   │   ├── env.go                   # 環境変数バックエンド
│   │   └── pass.go                  # Pass CLI バックエンド実装
│   ├── config/
│   │   └── config.go                # TOML 設定読み込み/保存 (+ ポリシー型)
│   ├── proxy/
│   │   ├── ca.go                    # MITM CA 証明書生成
│   │   ├── command.go               # HTTPフォワードプロキシ (認証情報置換)
│   │   └── mitm.go                  # MITM CONNECT ハンドラ (HTTPSインターセプト)
│   ├── run/
│   │   └── command.go               # サブプロセス認証情報注入 (+ ポリシーチェック)
│   ├── scanner/
│   │   ├── scanner.go               # パターンベース認証情報Redact
│   │   └── scanner_test.go          # Scanner テスト
│   └── secret/
│       └── command.go               # 認証情報ストア操作
├── scripts/
│   └── validate-plugin.py           # Agent Plugins パッケージング検証
└── docs/
    └── design.md                    # アーキテクチャ & 設計書

依存関係

trustless は実行時依存ゼロの単一静的バイナリとしてビルドされます。Go 標準ライブラリでほぼ全てを賄えますが、唯一 TOML パースだけは標準ライブラリに無いため、github.com/pelletier/go-toml/v2 — プロジェクト唯一の外部モジュール — を使用しています。手書きパーサ(未検証コード)を抱えるより、検証済みモジュール1つの方が supply chain リスクが小さいためです。pure Go(cgo 不使用)でバイナリ本体と同様に静的リンクされ、積極的にメンテナンスされ、fuzz テスト済みです。バージョンは go.sum で固定され、Dependabot と govulncheck で監視されています。

  • github.com/pelletier/go-toml/v2 — TOML設定ファイルパース

終了コード

コード意味
0成功
1一般エラー
2認証情報が見つからない / 不正な引数
3サブプロセスエラー / ポリシー違反 / 引数に認証情報検出
4設定エラー