{"adoption": {"forks": 4568, "observed_at": "2026-08-28T04:12:20.719167+00:00", "stars": 66353}, "canonical_url": "https://ross.abutalabs.com/products/openspec", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Spec-driven development (SDD) for AI coding assistants.", "domain": ["developer-tools", "documentation", "large-language-models"], "enriched": true, "function": ["developer-tools", "workflow-automation", "documentation", "prompt-engineering", "cli"], "health_score": 100, "homepage": "https://openspec.dev/", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Fission-AI/OpenSpec"], "name": "Fission-AI/OpenSpec", "platform": ["cli", "cross-platform"], "pushed_at": "2026-08-26T23:24:19+00:00", "repo": "Fission-AI/OpenSpec", "stars": 66353, "tags": ["spec-driven-development", "ai-coding-assistants", "sdd", "context-engineering", "slash-commands", "brownfield", "automation", "ai-agents", "nodejs"], "topics": ["spec", "ai", "context-engineering", "engineering", "planning", "prd", "sdlc", "spec-driven-development", "specification", "sdd"], "urls": [], "use_cases": ["manage specs for ai coding assistants", "generate spec deltas before implementing changes", "keep ai agent context persistent across chat sessions", "plan features with proposals and task checklists", "review intent and requirements instead of just code diffs", "onboard developers with a browsable spec library", "add spec-driven development to an existing brownfield codebase"], "what_it_is": "OpenSpec is a lightweight spec-driven development (SDD) framework that lets AI coding assistants like Claude Code, Cursor, and Copilot work from versioned specification files stored in the repository. It provides slash-command workflows (/opsx:explore, propose, apply, archive) that generate proposals, spec deltas, design docs, and task checklists before code is written.", "when_to_avoid": ["you prefer heavyweight waterfall or formal requirements-management tools", "your team writes code without AI assistance and has no spec discipline needs", "you need strict compliance-grade requirements traceability"], "when_to_choose": ["you use AI coding assistants and want structured, reviewable change planning", "you want requirements and scenarios versioned in git alongside code", "you work on an existing codebase and need iterative, lightweight spec workflows", "you want tool-agnostic specs with no API keys or MCP servers required"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openspec", "repo": "Fission-AI/OpenSpec", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:12:20.719167+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:16:57.722362+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8364d79c8424c339c1e700bc446a0ae0befabf4cac222d8d6e920d03ae831200", "fetched_at": "2026-08-28T04:12:20.719167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Fission-AI/OpenSpec"}, {"content_hash": "26df9e82225ea006d63dac27d37715f5d860a04bfaaf846ed0866b4e12c08fe4", "fetched_at": "2026-08-28T17:53:17.200900+00:00", "kind": "homepage", "missing": false, "url": "https://openspec.dev/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 28, "rhythm": 99}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 393, "days_push": 7, "days_rel": 7, "gap_med": 3.5, "n_releases_24m": 45}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}