stemedb/Makefile
jordan c59066949a feat: Add quickstart "Beyond Hello World" sections with Skeptic and Layered endpoints
- Add Layered() method to Go SDK for per-source-class consensus queries
- Add LayeredQueryParams, LayeredResult, TierResolution types to Go SDK
- Create conflict example demonstrating Skeptic and Layered endpoints
- Update quickstart.md with sections 6 (conflict detection) and 7 (authority tiers)
- Remove tracked Go binary and add data/ to .gitignore

The new quickstart sections demonstrate Episteme's differentiating features:
- Skeptic endpoint shows "Trust but Verify" conflict analysis
- Layered endpoint shows per-tier resolution (Clinical vs Anecdotal)

Note: Pre-existing large files flagged by pre-commit hook (technical debt from prior sessions)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 21:00:59 -07:00

115 lines
2.9 KiB
Makefile

# Makefile for StemeDB
.PHONY: all build dev quality install clean test help go-fmt go-lint go-test validate
# Default target
all: build
## --- Development ---
# Build the project (dev profile)
build:
cargo build
# Run the project
dev:
cargo run -p stemedb-core
# Run tests
test:
cargo test --workspace
# Validate end-to-end (build, start server, assert, query, shutdown)
validate:
@./scripts/validate.sh
# Fast validation (skip build, use existing binaries)
validate-fast:
@./scripts/validate.sh --no-build
## --- Quality & Verification ---
# Run all quality checks (formatting, linting, duplication, tests)
quality: fmt-check lint duplication test
@echo "✅ Quality checks passed!"
# Check for code duplication
duplication:
@echo "Checking for code duplication..."
@jscpd ./crates --format rust --min-lines 5 --min-tokens 50 || true
# Check formatting without changing files
fmt-check:
cargo fmt --all -- --check
# Run clippy (linter)
lint:
cargo clippy --workspace --all-targets --all-features -- -D warnings
# Fix formatting automatically
fmt:
cargo fmt --all
## --- Go SDK ---
# Format Go code
go-fmt:
@echo "Formatting Go SDK..."
@for mod in sdk/go/steme sdk/go/adk sdk/go/examples/basic sdk/go/examples/skeptic; do \
if [ -d "$$mod" ]; then \
gofmt -w "$$mod"; \
command -v goimports >/dev/null && goimports -w "$$mod" || true; \
fi \
done
# Lint Go code
go-lint:
@echo "Linting Go SDK..."
@for mod in sdk/go/steme sdk/go/adk; do \
if [ -f "$$mod/go.mod" ]; then \
echo "$$mod"; \
(cd "$$mod" && go vet ./...); \
command -v golangci-lint >/dev/null && (cd "$$mod" && golangci-lint run ./...) || true; \
fi \
done
# Test Go code
go-test:
@echo "Testing Go SDK..."
@for mod in sdk/go/steme sdk/go/adk; do \
if [ -f "$$mod/go.mod" ]; then \
echo "$$mod"; \
(cd "$$mod" && go test ./... -v); \
fi \
done
## --- Installation ---
# Install dependencies (Rust toolchain, etc - assumed cargo exists)
install:
@echo "Ensuring rust toolchain is up to date..."
rustup update stable
@echo "Installing helpful tools..."
# cargo install cargo-watch # Optional but recommended
## --- Utilities ---
clean:
cargo clean
help:
@echo "Available commands:"
@echo " make build - Build the workspace"
@echo " make dev - Run the core binary"
@echo " make test - Run unit tests"
@echo " make quality - Run format check, clippy, duplication, tests"
@echo " make fmt - Auto-format code"
@echo " make lint - Run clippy linter"
@echo " make duplication - Check for code duplication (jscpd)"
@echo " make go-fmt - Format Go SDK code"
@echo " make go-lint - Lint Go SDK code"
@echo " make go-test - Test Go SDK"
@echo " make install - Setup environment"
@echo " make validate - End-to-end validation (build, server, assert, query)"
@echo " make validate-fast - Fast validation (skip build)"