-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
SpannerSync edited this page Jun 23, 2026
·
1 revision
- Go 1.23+
- golangci-lint
- Docker (for
@integrationtier with testcontainers-go)
go install github.com/spannersync/gherkinforge/cmd/gforge@latestVerify:
gforge --helpgit clone https://github.com/SpannerSync/gherkinforge.git
cd gherkinforge
go mod tidy
go test -race -count=1 -run TestFeatures ./tests/...Expected output:
Feature: Order Management
Scenario: Successfully creating an order emits a domain event ... passed
Scenario: Order creation fails when no items are provided ... passed
Scenario: Multi-item order total is mathematically verifiable ... passed
3 scenarios (3 passed)
17 steps (17 passed)
--- PASS: TestFeatures
gforge lint features/
# ✓ No violations found.Lint checks:
- Every
.featurefile has exactly one tier tag (@business,@integration,@nfr) -
@businessfiles use at least one DataTable or DocString - No forbidden implementation symbols in step text
- No UI/DOM vocabulary in
@businesssteps (Zero Trust Pillar 2)
gforge scaffold \
--feature features/business/create_order.feature \
--out pkg/context/shipmentGenerates:
pkg/context/shipment/
├── domain/
│ ├── shipment.go (aggregate root — int64 measurements)
│ └── ports.go (repository + event interfaces)
├── usecases/
│ └── create_shipment.go
└── adapters/
└── inmemory/
└── repository.go
make ci
# runs: lint-go → lint-features → test