{"adoption": {"forks": 190, "observed_at": "2026-09-01T02:14:03.436751+00:00", "stars": 1176}, "canonical_url": "https://ross.abutalabs.com/products/awspec", "card": {"archived": false, "artifact_type": "cli-tool", "description": "RSpec tests for your AWS resources.", "domain": ["cloud-computing", "testing", "infrastructure-as-code", "developer-tools"], "enriched": true, "function": ["testing", "cli"], "health_score": 97, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["k1LoW/awspec"], "name": "k1LoW/awspec", "platform": ["ruby", "cli", "cross-platform"], "pushed_at": "2026-08-30T00:30:25+00:00", "repo": "k1LoW/awspec", "stars": 1176, "tags": ["aws", "rspec", "infrastructure-testing", "ruby-gem", "terraform"], "topics": ["aws", "rspec"], "urls": [], "use_cases": ["test that my EC2 instances are running with the right security groups", "write RSpec tests for AWS infrastructure", "verify VPC and subnet configuration with automated tests", "validate AWS resources created by Terraform", "check SQS queue settings in tests", "infrastructure compliance testing for AWS"], "what_it_is": "awspec is a Ruby gem that lets you write RSpec tests for AWS resources, verifying their configuration and state. It provides a CLI for scaffolding specs and supports many AWS resource types, including integration with Terraform outputs.", "when_to_avoid": ["you use Python (consider moto or pytest-based tools)", "you want policy-as-code compliance scanning rather than RSpec tests", "you need to test non-AWS clouds"], "when_to_choose": ["you use Ruby/RSpec and want to test real AWS resource state", "you need infrastructure tests that complement Terraform or CloudFormation", "you want a large library of AWS resource type matchers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/awspec", "repo": "k1LoW/awspec", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.436751+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:26:12.234848+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81e634d920f6db991da3b70f918f101b953ac57100a994edcc87a176faa7778c", "fetched_at": "2026-09-01T02:14:03.436751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k1LoW/awspec"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 100, "rhythm": 56}, "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": 4055, "days_push": 4, "days_rel": 212, "gap_med": 68, "n_releases_24m": 6}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}