{"adoption": {"forks": 96, "observed_at": "2026-08-28T04:04:59.749009+00:00", "stars": 1535}, "canonical_url": "https://ross.abutalabs.com/products/optic", "card": {"archived": true, "artifact_type": "cli-tool", "description": "OpenAPI linting, diffing and testing. Optic helps prevent breaking changes, publish accurate documentation and improve the design of your APIs.", "domain": ["apis", "developer-tools", "documentation", "web-development"], "enriched": true, "function": ["api-framework", "documentation", "testing", "linter", "developer-tools"], "health_score": 10, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["opticdev/optic"], "name": "opticdev/optic", "platform": ["cli", "cross-platform"], "pushed_at": "2026-01-08T21:11:15+00:00", "repo": "opticdev/optic", "stars": 1535, "tags": ["openapi", "swagger", "api-linting", "breaking-changes", "api-diffing", "spec-testing", "nodejs"], "topics": ["openapi", "apis", "documentation", "swagger", "openapi3", "api-documentation", "api-linter"], "urls": [], "use_cases": ["lint openapi specs for design issues", "detect breaking changes in api before release", "generate openapi spec from captured traffic", "keep swagger documentation accurate with automated tests", "diff two openapi versions in ci", "enforce api design rules across a team"], "what_it_is": "Optic is a CLI tool for linting, diffing, and testing OpenAPI specifications. It catches breaking changes, generates specs from traffic, and keeps API documentation accurate.", "when_to_avoid": ["you don't use OpenAPI/Swagger to describe your APIs", "you need a GUI-only API design tool", "you want runtime API monitoring rather than spec-level checks"], "when_to_choose": ["your team maintains an OpenAPI spec and wants to prevent breaking changes", "you need automated API contract checks in CI", "your documentation drifts from actual API behavior"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/optic", "repo": "opticdev/optic", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "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:04:59.749009+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:59.749009+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:31:10.085560+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bc276802e927828f6b8a7e4feef90479f919da5c6ce090977110cc9563e8bde", "fetched_at": "2026-08-28T04:04:59.749009+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opticdev/optic"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 61, "longevity": 100, "rhythm": 30}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3106, "days_push": 237, "days_rel": 388, "gap_med": 87, "n_releases_24m": 6}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}