SkillForge is a generator-driven toolchain for creating and publishing high-volume Seren skills from a typed skill.spec.yaml.
- Stage: bootstrap (
SF-01) - Design proposal:
docs/20260221_SkillForge_Proposal.md - Implementation plan:
docs/plans/20260222_SkillForge_Implementation_Plan.md
Read these before making code changes:
docs/architecture/0001_skillforge_context.mddocs/testing/TEST_STRATEGY.mddocs/testing/ANTI_PATTERNS.mddocs/metrics/METRIC_DEFINITIONS.md
- Python 3.11+
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"make format
make lint
make test
make check-generatedpython -m skillforge --help
skillforge --help
python -m skillforge validate --spec examples/minimal/skill.spec.yaml
python -m skillforge validate --spec examples/polymarket-trader/skill.spec.yaml --online-publishers --require-api-key
python -m skillforge resolve-publishers --spec examples/polymarket-trader/skill.spec.yaml --check --require-api-key
python -m skillforge resolve-publishers --spec examples/polymarket-trader/skill.spec.yaml --write --require-api-key
python -m skillforge release --spec examples/browser-automation/skill.spec.yaml --target ../seren-skills
python -m skillforge release --spec examples/polymarket-trader/skill.spec.yaml --target ../seren-skills --resolve-publishers --require-api-key --create-pr
python -m skillforge generate --spec examples/minimal/skill.spec.yaml --out /tmp/skillforge-out
python -m skillforge test --mode quick --spec examples/minimal/skill.spec.yamlrelease is the default shipping path. It generates artifacts into a temporary directory, publishes them into a local seren-skills clone using publish.org and publish.slug from the spec, and can open the destination PR with --create-pr.
validatenow blocks guessed RPC slugs likerpc-ethereumunless explicitly allowlisted via--allow-guessed-publisher-slug.resolve-publishersresolves connector publisher slugs from live gateway catalog (GET /publishers) and can rewrite stale slugs inskill.spec.yaml.- CI runs online checks for all example specs and fails if publishers are unknown/inactive or unresolved.