Create new adapter/service type with port interface
Creates new service type with port interface and first adapter implementation.
/plugin marketplace add venturo-id/venturo-claude/plugin install venturo-go@venturo-toolsCreate a brand new service type with port interface and first adapter implementation.
Use this when:
internal/domains/ports/Already have port? → Use /venturo-go:add-adapter-impl
Ask these questions:
internal/domains/ports/)Present complete plan before implementation.
internal/domains/ports/{service}.gopkg/{service}/{provider}/config.goadapter.goerrors.gointernal/config/config.go.env.examplepkg/{service}/main.{service}.gocmd/api/main.goadapter_test.go, integration_test.goREADME.md/venturo-go:add-amqp)Email Port:
type EmailService interface {
SendEmail(to, subject, body string) error
SendHTMLEmail(to, subject, htmlBody string) error
}
Storage Port:
type StorageService interface {
UploadFile(ctx context.Context, path string, data io.Reader) (string, error)
DownloadFile(ctx context.Context, path string) (io.ReadCloser, error)
DeleteFile(ctx context.Context, path string) error
}
Payment Port:
type PaymentService interface {
CreatePayment(ctx context.Context, amount int64, currency string) (*PaymentResult, error)
RefundPayment(ctx context.Context, paymentID string) error
}
HTTP API-Based (SendGrid, Mailgun, Stripe):
http.ClientSDK-Based (AWS, Google Cloud):
Connection Pool (Redis, Database):
Close() methodUser: /venturo-go:new-adapter
Claude: What type of adapter? (Email, Storage, Payment...)
User: Payment
Claude: Specific provider?
User: Stripe
Claude: Checking for payment port... Not found.
I'll create:
1. internal/domains/ports/payment.go (interface)
2. pkg/payment/stripe/ (adapter)
3. pkg/payment/main.payment.go (init)
[Proceeds with implementation]
pkg/email/gomail/)