GSBot is a feature-complete Discord bot for garment sustainability education and tracking. The core functionality is implemented and ready for community testing.
| Feature | Description | Status |
|---|---|---|
poise/serenity Integration |
Full Discord bot with async (tokio) prefix-command handling; one Rust module per former cog |
Done |
sqlx + SQLite |
Complete data layer with row structs and SQL migrations applied at startup
via |
Done |
Caching Layer |
TTL and LRU caching for database queries and expensive operations |
Done |
Logging System |
|
Done |
Configuration |
|
Done |
SPARK seam ( |
Pure, total scoring kernel exposing a stable C ABI in |
Done |
| Command | Functionality | Status |
|---|---|---|
|
Calculate and display sustainability score for garments with water, carbon, energy metrics |
Done |
|
Find more sustainable alternatives in the same garment category |
Done |
|
Generate material-specific care instructions to extend garment life |
Done |
|
Display random sustainability tips for conscious consumption |
Done |
| Command | Functionality | Status |
|---|---|---|
|
Detailed environmental impact breakdown: water usage, carbon footprint, biodegradability, chemical usage, energy consumption |
Done |
|
Side-by-side comparison of two materials across all sustainability metrics |
Done |
|
Search materials and garments by name, description, or category |
Done |
| Command | Functionality | Status |
|---|---|---|
|
View top-rated sustainable brands with overall ratings |
Done |
|
Detailed brand profile: environmental, labor, animal welfare ratings, certifications, transparency scores |
Done |
| Feature | Description | Status |
|---|---|---|
Points System |
Earn points for sustainability queries (2-7 points per action) |
Done |
Leveling |
Level progression every 100 points |
Done |
Ranks |
5-tier rank system: Learner → Conscious Consumer → Enthusiast → Eco Warrior → Champion |
Done |
|
User statistics, rank, level, points, preferences |
Done |
|
Top 10 sustainability champions |
Done |
|
Configure materials, budget, priority preferences |
Done |
| Model | Attributes | Status |
|---|---|---|
Material |
5 environmental scores, production metrics, biodegradability, recycling potential, care requirements |
Done |
Garment |
Category, materials relationship, weight, lifespan, care instructions, calculated sustainability score |
Done |
Brand |
3 rating dimensions, 5 certification flags, transparency score, Good On You rating |
Done |
User |
Discord ID, points, level, queries count, preferences |
Done |
Target: Prepare for public deployment
-
❏ Curate initial material dataset (20+ common materials with verified metrics)
-
❏ Curate garment dataset (50+ common garment types)
-
❏ Integrate Good On You API or scrape verified brand data
-
❏ Database backup and recovery procedures (see
gsbot-backup-db)
-
❏ Container optimization (multi-stage build, minimal image)
-
❏ Health check endpoints
-
❏ Graceful shutdown handling
-
❏ Kubernetes manifests or docker-compose production config
-
❏ Secret management (Vault, SOPS, or sealed secrets)
-
❏ Prometheus metrics endpoint
-
❏ Grafana dashboard templates
-
❏ Error tracking (Sentry integration)
-
❏ Command usage analytics
Target: Comprehensive sustainability intelligence
-
❏ Good On You API integration for real-time brand ratings
-
❏ Open Apparel Registry integration for supply chain transparency
-
❏ Life Cycle Assessment (LCA) database connections
-
❏ Fashion Revolution transparency index data
-
❏ Multi-factor scoring with configurable weights
-
❏ Regional impact variations (production location matters)
-
❏ Seasonal recommendations
-
❏ Price-per-wear calculations
Target: Tailored sustainability guidance
-
❏ Wardrobe tracking (what you own)
-
❏ Purchase history logging
-
❏ Personal sustainability dashboard
-
❏ Goal setting and progress tracking
-
❏ Achievement badges beyond ranks
-
❏ Personalized alternative suggestions based on preferences
-
❏ Budget-aware recommendations
-
❏ Style-compatible sustainable swaps
-
❏ Seasonal wardrobe planning
Target: Social sustainability
-
❏ Clothing swap coordination
-
❏ Guild leaderboards (per server)
-
❏ Community challenges
-
❏ Sustainability streaks
-
❏ Share achievements
Target: Multi-platform presence
-
❏ Slack workspace bot
-
❏ Telegram bot
-
❏ Web dashboard (readonly initially)
-
❏ REST API for third-party integrations
The Python → Rust/SPARK migration is complete. The current implementation uses:
-
poise0.6 overserenity0.12 (async Discord interactions viatokio) -
sqlx0.8 + SQLite (sqlx::migrate!applied at startup) -
tracing/tracing-subscriber/tracing-appender(logging) -
anyhow/thiserror(errors),dotenvy(config) -
cargo test --all-targets(testing)
The Python prototype has been removed in full. Per the hyperpolymath estate Rust/SPARK standard (which governs over any generic template), no banned-language file may be reintroduced — the Hypatia scanner self-scans this repository and treats any such file as a CRITICAL finding.
Future verification path (the SPARK seam is already in place):
-
src/domain.rsis the pure, total scoring kernel and exposes a stable C ABI inmod ffi. -
Specify and formally verify a SPARK/Ada implementation of that numeric core.
-
Link it in place of the Rust bodies via the hyperpolymath Zig-FFI / Idris2-ABI pattern — callers go through the safe Rust wrappers, so the substitution is transparent and requires no caller changes.
See CONTRIBUTING.md for development guidelines.
Priority areas for contribution:
-
Data curation - Verified material and brand datasets
-
Testing - Expand integration test coverage
-
Documentation - User guides and command examples
-
Localization - Multi-language support