Skip to content

21StarkCom/bifrost

Repository files navigation

Bifröst

The bridge between the realms. Canonical, multi-runtime marketplace for stark bundles — one source of truth (catalog/) renders into per-runtime trees for Claude Code, Codex, and Gemini CLI, plus a signed web registry served at marketplace.21stark.com. GitHub slug: 21StarkCom/bifrost.

The repo is also a native Claude Code marketplace: .claude-plugin/marketplace.json at the repo root is the manifest CC reads directly — no custom client.

Bundles

Bundle Purpose
stark-constitution Project setup & session priming (spec-kit constitution phase).
stark-plan Plan-time guidance (spec-kit plan phase).
stark-analyze Multi-domain review + adversarial red-team of designs/plans/PRs.
stark-implement Implementation-time guidance (spec-kit implement phase).
stark-gh GitHub workflow commands + MCP.
stark-ops Ops/runtime utilities.

Install (Claude Code)

/plugin marketplace add 21StarkCom/bifrost
/plugin install stark-gh@stark-marketplace

Each plugin is self-contained — its supporting tool scripts, prompts, and config are vendored into the bundle, so /plugin install works with no install.sh and no stark-skills checkout on your machine. Only prerequisite: Node ≥ 22.6 (skills run node --experimental-strip-types; stark doctor checks it).

Other runtimes go through the engine CLI:

cd engine
go run ./cmd/stark install stark-gh --runtime codex   # or gemini

See docs/native-install-loop.md for the full install loop.

Develop

Source of truth is the stark-skills repo, not this one. The catalog's skills/ + commands/ and the vendor/stark-skills/ snapshot are generated from a stark-skills checkout — never hand-edit them, dist/, index.json, or bundles/*.json. What you DO edit here: each catalog/<bundle>/bundle.yaml (metadata + the skills:/commands: membership manifest) and curated catalog/<bundle>/mcp/ artifacts.

Standard loop:

cd engine
# 1. regenerate catalog skills/commands + vendor/ from a stark-skills checkout
go run ./cmd/stark sync --from ../../stark-skills ../catalog
# 2. render dist/ (vendors vendor/stark-skills into each bundle) + manifests
go run ./cmd/stark build ../catalog
# 3. gates — all must be clean before pushing
go run ./cmd/stark validate ../catalog
go run ./cmd/stark sync --from ../../stark-skills --check ../catalog   # catalog/vendor drift
go run ./cmd/stark build --check ../catalog                            # dist drift
go run ./cmd/stark check-bumps ../catalog                              # bump bundle version on content change
go test ./... -count=1

To publish a skill change: edit it in stark-skills, bump the affected bundle's version in its bundle.yaml here, then run the loop. CI does this automatically — a push to stark-skills main regenerates and opens a PR here (.github/workflows/marketplace-sync.yml in stark-skills). This repo's .github/workflows/ci.yml then gates the PR: validate → build --check → check-bumps → lint → tests → gitleaks. All blocking except lint.

Web SPA (web/):

cd web
npm install
npm run dev        # local
npm run build      # tsc --noEmit && vite build
npm test

Static origin (server/) is the Cloud Run image fronting the registry behind the ev-infra-group platform load balancer.

Architecture, in one paragraph

internal/load parses catalog/ into a model.Catalog. Per-runtime adapters in internal/adapter/{claude,codex,gemini} render bundles into runtime-specific file trees. internal/build drives a full render; internal/install consumes one per-runtime render and writes it into a user's config. cmd/stark wires these. Determinism is load-bearing: build --check is the drift gate and check-bumps enforces version-bump immutability. Only dist/claude/ is committed (CC consumes it at-rest); dist/codex/ and dist/gemini/ are produced by stark install on the user's machine.

More detail in CLAUDE.md.

Trust & governance

This distributes code that runs inside developer agents and, for mcp/ entries, spawns commands on developer machines. Integrity rests on:

  1. Protected, linear main (no force-push, no bypass).
  2. CI-signed build manifest (GitHub OIDC → sigstore/cosign keyless, signer repo:21StarkCom/bifrost@refs/heads/main).
  3. Commit SHA, which the manifest binds digests to.

stark verify-manifest checks all three. Self-computed digests alone are only an anti-drift signal.

MCP command values and agent.tools must be on positive allowlists (engine/internal/validate/{allowlist,toolsallow}.go). Adding an entry requires a CODEOWNERS-gated PR with maintainer + @aryeh-stark approval.

Full threat model and controls: docs/SECURITY.md.

Documentation map

License & ownership

Internal 21 Stark AI project. See CODEOWNERS for review gates.

About

Internal marketplace for sharing stark skills, prompts, commands, agents & MCP servers across Claude Code, Codex, and Gemini

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages