@koichinishizuka/runeforge
v25.8.0
Published
Blueprint to optimal stack JSON converter - Part of Rune* Ecosystem
Maintainers
Readme
🔥 Runeforge - Part of Rune* Ecosystem
Blueprint to optimal stack JSON converter
Runeforge v3 is a CLI tool that takes a Blueprint (requirements specification) and returns an optimal technology stack as JSON. The generated plan.json can be directly passed to RuneWeave v2 and later versions.
Features
- ✅ Blueprint YAML/JSON → Optimal Stack JSON
- ✅ Deterministic plan generation with seeds
- ✅ Schema validation with JSON Schema
- ✅ Cost, latency, and compliance constraints
- ✅ Rust 2021 Edition, MSRV 1.80
- ✅ Ready for Rust 2025 Edition migration
Installation
cargo install --path .Usage
Basic Usage
runeforge plan -f blueprint.yaml --seed 42 --out plan.jsonCLI Options
runeforge plan \
-f blueprint.yaml # Required: Blueprint file (YAML or JSON)
--seed 42 # Optional: Deterministic seed (default: 42)
--out plan.json # Optional: Output file (default: stdout)
--strict # Optional: Enable strict schema validationExit Codes
| Code | Meaning | |------|---------| | 0 | Success | | 1 | Blueprint schema validation failed | | 2 | Stack schema validation failed | | 3 | No stack matches constraints |
Blueprint Schema
project_name: "my-app"
goals:
- "high-performance"
- "low-cost"
constraints:
monthly_cost_usd_max: 100.0
coldstart_ms_max: 50.0
persistence: "both" # kv | sql | both
region_allow:
- "us-east-1"
- "eu-west-1"
compliance:
- "audit-log"
- "sbom"
traffic_profile:
rps_peak: 1000.0
global: true
latency_sensitive: false
prefs: # Optional preferences
frontend: ["SvelteKit", "Next.js"]
backend: ["Actix Web 4", "Axum"]
database: ["PlanetScale"]
ai: ["RuneSage", "OpenAI"]
single_language_mode: "rust" # rust | go | ts | nullGenerated Stack Schema
{
"decisions": [
{
"topic": "backend",
"choice": "Actix Web 4.11",
"reasons": ["最高 RPS", "Tokio 1.47 安定"],
"alternatives": ["Axum"]
}
],
"stack": {
"language": "Rust",
"frontend": "SvelteKit 2",
"backend": "Actix Web 4.11",
"database": "PlanetScale Boost",
"cache": "Cloudflare KV",
"queue": "NATS JetStream 0.37",
"auth": "Passkeys(OIDC)",
"payments": "RuneVault → Stripe",
"ai": ["RuneSage", "OpenAI GPT-4o"],
"infra": "Terraform + Cloudflare Workers",
"ci_cd": "GitHub Actions"
},
"estimated": {
"monthly_cost_usd": 110.0
},
"slo": {
"availability_pct": 99.95,
"p95_ms": {
"read": 800.0,
"write": 1200.0
}
},
"risk": [
{
"id": "r1",
"desc": "Workers で TCP 制限",
"mitigation": "`connect()` API 経由で HTTP 化"
}
]
}Examples
The repository includes three test cases:
Baseline (Low Cost)
runeforge plan -f examples/baseline.yaml --seed 42Latency Optimized
runeforge plan -f examples/latency.yaml --seed 42Compliance Heavy
runeforge plan -f examples/compliance.yaml --seed 42Selection Algorithm
- Normalize - Fill in Blueprint defaults
- Filter - Remove candidates that don't meet constraints
- Score - Calculate weighted scores:
- Quality: 30%
- SLO: 25%
- Cost: 20%
- Security: 15%
- Operations: 10%
- Select - Choose highest scoring candidates
- Validate - Ensure output matches schema
Development
Prerequisites
- Rust 1.80+
- Standard development tools
Build
cargo build --releaseTest
cargo testRun Examples
# Test baseline scenario
cargo run -- plan -f examples/baseline.yaml --seed 42
# Test with strict validation
cargo run -- plan -f examples/latency.yaml --seed 42 --strict
# Output to file
cargo run -- plan -f examples/compliance.yaml --seed 42 --out output.jsonArchitecture
src/
├── main.rs # CLI interface (clap)
├── selector.rs # Stack selection logic
├── schema.rs # Schema validation & types
└── util.rs # Utilities (hash, random, etc.)
resources/
└── rules.yaml # Candidate definitions & weights
schemas/
├── blueprint.schema.json
└── stack.schema.json
examples/
├── baseline.yaml # Low cost scenario
├── latency.yaml # Ultra-low latency
└── compliance.yaml # Enterprise complianceContributing
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Ensure
cargo testpasses - Submit a pull request
License
MIT License - see LICENSE for details.
Changelog
v3.0.0 (2025-08-06)
- Initial release
- Blueprint → Stack JSON conversion
- Deterministic selection with seeds
- Schema validation support
- Rust 2021 Edition, MSRV 1.80
