{"adoption": {"forks": 61, "observed_at": "2026-08-28T04:03:35.391625+00:00", "stars": 1100}, "canonical_url": "https://ross.abutalabs.com/products/tablecloth", "card": {"archived": false, "artifact_type": "application", "description": "식탁보 프로젝트", "domain": ["security", "privacy", "e-government", "windows", "developer-tools"], "enriched": true, "function": ["security", "configuration-management", "gui", "sdk"], "health_score": 100, "homepage": null, "language": "C#", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["yourtablecloth/TableCloth"], "name": "yourtablecloth/TableCloth", "platform": ["windows", "dotnet"], "pushed_at": "2026-08-26T15:02:41+00:00", "repo": "yourtablecloth/TableCloth", "stars": 1100, "tags": ["windows-sandbox", "internet-banking", "south-korea", "security-programs", "avalonia", "wpf", "isolated-environment", "spork", "csharp", "dotnet", "sandboxing", "desktop"], "topics": ["hacktoberfest", "csharp", "dotnet", "sdk", "windows-10", "windows-11"], "urls": [], "use_cases": ["run internet banking security programs in an isolated sandbox", "use e-government sites without installing security software on host", "avoid installing ActiveX-style security plugins permanently", "test Korean banking security tools safely", "dispose of security program installations after each session", "run banking software on Windows 11 without polluting the host system"], "what_it_is": "TableCloth is a Windows application that launches Windows Sandbox to run security programs required by internet banking and e-government sites in an isolated environment. It provides a catalog of supported sites and automatically installs the necessary security software inside the sandbox, discarding all changes when the sandbox closes.", "when_to_avoid": ["you run Windows Home, which lacks Windows Sandbox", "your organization blocks virtualization or Windows Sandbox", "you need to keep installed security programs persistent across sessions", "you are not on Windows"], "when_to_choose": ["you need to use Korean internet banking or government sites that require security programs", "you want to avoid installing invasive security software on your main Windows system", "you are on Windows 11 Pro/Education/Enterprise with Windows Sandbox available", "you want a disposable environment for security-plugin-heavy websites"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tablecloth", "repo": "yourtablecloth/TableCloth", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "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:03:35.391625+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:35.391625+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:45:56.549226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8c700f30dc77ace8eca84c2c371bb1042493256c6e6cfa8b6c8c500ff16cd6fb", "fetched_at": "2026-08-28T04:03:35.391625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yourtablecloth/TableCloth"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1876, "days_push": 7, "days_rel": 7, "gap_med": 3, "n_releases_24m": 20}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}