P05 · Experience · Rendered with declared redactions

source register

Living UI component layer

39 lines22,333 bytessha256 9d78d7c16a7c

Declared public redactions: LOCAL_PATHS_REDACTED

S-001record 1
{
  "id": "S-001",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "Bundle store holds exactly 7,949 component directories; 7,828 with bundle.html; 7,678 with preview.webp; 7,949 with meta.json. RE-DERIVED BY THIS LANE via `ls harvest | wc -l` and glob counts; matches the inherited receipt exactly.",
  "limitations": "Directory counts only; contents not exhaustively validated beyond the corpus's own verify-harvest.mjs.",
  "disposition": "confirmed_inherited_fact"
}
S-002record 2
{
  "id": "S-002",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "Legacy source-bearing store: 3,509 entries, of which 3,507 are component dirs (excluding _utils), 3,507 carry registry-item.json AND classification.json, and 3,506 carry real non-demo .tsx source. RE-DERIVED BY THIS LANE.",
  "limitations": "The 3,506 figure counts components with at least one non-example .tsx file present on disk.",
  "disposition": "confirmed_inherited_fact"
}
S-003record 3
{
  "id": "S-003",
  "evidence_class": "observed",
  "source": "(join across both 21st stores)",
  "observed": "2026-08-27",
  "claim": "Canonical join re-run by this lane with case-insensitive author+slug normalisation: bundle keys 7,949, legacy keys 3,479 (28 with unparseable provenance), INTERSECTION 2,945, bundle-only 5,004, legacy-only 534, UNION 8,483.",
  "limitations": "Differs slightly from the inherited 2,942/8,515 because the two stores encode the URL differently (meta.json.url is /@author/components/slug; _provenance.fetchedFrom is /r/Author/slug) and 28 legacy records have no parseable provenance URL. Both results are defensible; the delta is normalisation, not error.",
  "disposition": "refines_inherited_fact"
}
S-004record 4
{
  "id": "S-004",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "Tagging re-derived against harvested ground truth: 7,279 tagged, 670 untagged of 7,949 (91.6%). componentToTags holds 7,382 entries (103 not on disk). stats.untagged=3998 and stats.tagged=3951 are BOTH stale fields. 75-tag vocabulary confirmed.",
  "limitations": "Confirms the inherited audit including the staleness finding.",
  "disposition": "confirmed_inherited_fact"
}
S-005record 5
{
  "id": "S-005",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "NEW FINDING: tagToComponents holds ONLY page-tier (ground truth) tags while tagCounts includes api+local inference. Worked example: sidebar is 47 in tagToComponents, 143 in tagCounts, decomposing to page=47/api=81/local=15. Any supply figure must state its tier.",
  "limitations": "Verified on sidebar and re-derived across the AutoSaaS-20; not exhaustively proven for all 75 tags.",
  "disposition": "new_finding_this_lane"
}
S-006record 6
{
  "id": "S-006",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "NEW FINDING: the 75-tag vocabulary behaves as a single-label scheme, not a facet grid. Mean 2.09 tags/component; 3,885 of 7,382 (52.6%) carry exactly one tag. Page-tier mean is 1.87 with 1,986 of 4,033 single-tagged.",
  "limitations": "Measured over the live index.",
  "disposition": "new_finding_this_lane"
}
S-007record 7
{
  "id": "S-007",
  "evidence_class": "observed",
  "source": "(AutoSaaS-20 vs corpus supply, computed by this lane)",
  "observed": "2026-08-27",
  "claim": "Ground-truth (page-tier, harvested, with preview) supply for all 20 AutoSaaS-required primitives ranges from 32 (onboarding) to 164 (spinner). Every required primitive has a direct tag and non-trivial supply. Sample: table 141/180, form 120/163, sidebar 44/139, timeline 42/133, onboarding 32/73 (page/any-tier).",
  "limitations": "Tag-to-requirement mapping is this lane's judgement, not an upstream fact.",
  "disposition": "new_finding_this_lane"
}
S-008record 8
{
  "id": "S-008",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "NEW FINDING: exact byte-identical preview duplicates are only 65 groups covering 167 components, a surplus of 102 of 7,678 (1.3%) — versus a 2,058 name-collision surplus (25.9%). Largest groups are test-fixture clusters from single authors.",
  "limitations": "SHA-1 over full file bytes. This is the FLOOR of duplication, not the visual near-duplicate rate, which remains UNMEASURED.",
  "disposition": "new_finding_this_lane"
}
S-009record 9
{
  "id": "S-009",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "NEW FINDING: no meta.json carries a harvest timestamp. Fields across a 3,000-dir sample: url, author, slug, name, description, installCommand, id, bundleUrl, previewUrl, harvested (all 3,000); usage_count, demo_id, video_url (1,125 = 37.5%); preview, previewVia (121). Directory mtimes across a 400-dir sample span 2026-08-18T20:03Z to 2026-08-18T21:10Z — a single 67-minute capture window.",
  "limitations": "mtime is a proxy and can be altered by filesystem operations.",
  "disposition": "new_finding_this_lane"
}
S-010record 10
{
  "id": "S-010",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "NEW FINDING: the discovery frontier holds 8,225 URLs (union) plus 687 extra, against 7,949 harvested. 276 are discovered-but-not-harvested; 0 harvested items are absent from the union. This delta is a ready-made refresh backlog.",
  "limitations": "Whether the 276 are live components or dead/non-component URLs was not checked.",
  "disposition": "new_finding_this_lane"
}
S-011record 11
{
  "id": "S-011",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "NEW FINDING: the true npm dependency surface is 237 distinct packages across the source-bearing store (lucide-react 1272, class-variance-authority 1031, framer-motion 874, @radix-ui/react-slot 824, motion 294, next 176, three 85, gsap 57, @react-three/fiber 29). Source files: 6,569 totalling 28.4 MB, median 2,524 B.",
  "limitations": "Declared dependencies, not import-graph-verified. This CLOSES the prior audit's UNMEASURED item 5, which found only 18 packages from import-wrapper demo.tsx files.",
  "disposition": "closes_prior_unknown"
}
S-012record 12
{
  "id": "S-012",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "Legacy semantic axes measured: 3,507 classified; 3,499 with best_for_industries; 3,507 with use_cases (16,241 total, mean 4.63); 99 distinct category values; complexity composite 2201/atomic 1261/system 44; 24 visual_style values (minimalist 1739, flat 1315, gradient 768); 38 distinct industry values.",
  "limitations": "Classified by claude-haiku-4-5 per _classifierModel; these are model judgements, not ground truth.",
  "disposition": "new_finding_this_lane"
}
S-013record 13
{
  "id": "S-013",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "NEW FINDING — FALSIFIES THE INDUSTRY AXIS: best_for_industries does not discriminate. Mean 3.93 industries/component; 171 components claim all 10 of the dominant set; 89.6% (3,143/3,507) claim saas. Top exact sets are repeated wholesale (180x creator-tools+e-commerce+media+saas).",
  "limitations": "Measured over the whole source store.",
  "disposition": "new_finding_this_lane"
}
S-014record 14
{
  "id": "S-014",
  "evidence_class": "observed",
  "source": "(17-industry crosswalk test by this lane)",
  "observed": "2026-08-27",
  "claim": "NEW FINDING — J-4 IS WEAKER THAN A 36->17 MERGE IMPLIES: only 2 of 17 target industries (real_estate, saas) have a direct legacy name analogue. Under a best-effort synonym crosswalk, 5 of 17 have ZERO reachable supply: construction, logistics_freight, insurance_agencies, mortgage_brokers, property_management. Reachable counts are wildly unbalanced (saas 3,153 vs recruiting_staffing 1, law_firms 2).",
  "limitations": "The crosswalk mapping is this lane's construction; a different mapping would shift counts but cannot create supply for the 5 zero industries.",
  "disposition": "new_finding_this_lane"
}
S-015record 15
{
  "id": "S-015",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "Junk/test-fixture rate measured with a corrected rule set: 78 of 7,949 (0.98%). Per-rule: localhost-author 38, fixture-string 21, bare-test-name 15, numeric-name 14, char-repeat 11. Author concentration: 848 distinct authors; top-10 hold 1,943 (24.4%); top-50 hold 4,551 (57.3%); 455 authors have exactly one component.",
  "limitations": "A first attempt used a broken regex that matched 100% of the corpus; that result was discarded and the rules rewritten. Heuristic, not exhaustive.",
  "disposition": "new_finding_this_lane"
}
S-016record 16
{
  "id": "S-016",
  "evidence_class": "observed",
  "source": "research/21st-corpus-audit-2026-08-27.md",
  "observed": "2026-08-27",
  "claim": "Prior audit (read in full, 569 lines). Key inherited facts: component source absent from the bundle store (demo.tsx median 346 B, 58.1% under 500 B); 86.7% of colour rules already tokenised (SAMPLED n=25); 87.3% carry a shadcn :root block (SAMPLED n=200); 55/60 (91.7%) re-theme with one regex pass; WebGL colour in 4/25 components; no token block in 5/60 (8.3%); 99.0% carry a .dark block; a 12-token swap was performed with JS bit-identical.",
  "limitations": "Its headline theming rates are SAMPLED, explicitly directional, and not corpus-wide. Its board.html/serve.mjs findings are observed.",
  "disposition": "inherited_receipt"
}
S-017record 17
{
  "id": "S-017",
  "evidence_class": "observed",
  "source": "research/actionmodel-builder-research-2026-08-26/phase-8/lanes/02-local-corpus-join/outputs/local-corpus-join-report.md",
  "observed": "2026-08-27",
  "claim": "Prior join lane (read in full, 173 lines). Inherited: verify-harvest.mjs PASS reconciling 7,949 = 7,828 + 121; two stores complementary not redundant; rights coverage 2 of 11,549 records (0.017%); 21st.dev terms (fetched 2026-07-20) prohibit scraping, prohibit AI training on marketplace content, and prohibit republishing structured metadata; SISO harvest rule 6 makes both stores summarize-only; joins J-1 through J-6 proposed.",
  "limitations": "Rights findings are a research observation explicitly requiring a counsel gate, not legal advice. The 'Mini 850k/80k corpus' remains unresolved.",
  "disposition": "inherited_receipt"
}
S-018record 18
{
  "id": "S-018",
  "evidence_class": "observed",
  "source": "[local path redacted]",
  "observed": "2026-08-27",
  "claim": "AutoSaaS enumerates 20 required components (app shell, sidebar, topbar, metric card, data table, filter bar, status badge, empty state, loading state, error state, detail drawer, modal, tabs, segmented control, form field, file uploader, activity timeline, report card, pricing table, onboarding checklist) and a per-component metadata contract (name, use case, props, states, accessibility notes, responsive behavior, source path, examples, tests). Outputs ui-component-library.md + component-registry.json.",
  "limitations": "A requirements document, not an implementation; no evidence any of it is built.",
  "disposition": "inherited_requirement"
}
S-019record 19
{
  "id": "S-019",
  "evidence_class": "observed",
  "source": "site/system-map/data/parts.json (id P05)",
  "observed": "2026-08-27",
  "claim": "P05 owns component ingestion/refresh, dedupe and source linkage, visual previews and interaction states, taxonomy/tags/semantic use cases, and gallery search/comparison/selection. Five open questions recorded. Deps P06, P07, P08, P12. Outputs ComponentRecord, PreviewSet, CategoryGraph, Selection.",
  "limitations": "Declares workstream_root as research/workstreams/P05-living-ui-component-layer/ whereas the actual run dir is research/workstreams/p05-living-component-layer/ — a path drift worth repointing.",
  "disposition": "scope_definition"
}
S-020record 20
{
  "id": "S-020",
  "evidence_class": "observed",
  "source": "research/actionmodel-builder-research-2026-08-26/phase-8/lanes/03-b2b-template-shelf/outputs/b2b-template-shelf-report.md",
  "observed": "2026-08-27",
  "claim": "The 17-industry denominator and its archetype mapping. case_workflow is primary for 6 of 17 industries; portal is secondary for 6 of 17; marketplace is primary and secondary for none. Archetypes are defined by data spine and authority model, not UI.",
  "limitations": "Its own falsifier: if a case_workflow spine cannot be re-skinned across its six industries without rewriting the state machine, archetype-level reuse is an illusion.",
  "disposition": "cross_lane_reference"
}
S-021record 21
{
  "id": "S-021",
  "evidence_class": "observed",
  "source": "research/workstreams/2026-08-27-sprint-1/SPRINT-1-PROGRAM.md",
  "observed": "2026-08-27",
  "claim": "Sprint depth contract and packet schema; lane S1-L3 owns P05, P06, P08. Research-only boundary; historical research immutable; parent unpromoted until coordinator verification.",
  "limitations": "",
  "disposition": "governing_contract"
}
S-022record 22
{
  "id": "S-022",
  "evidence_class": "observed",
  "source": "https://github.com/shadcn-ui/ui — apps/v4/content/docs/registry/dynamic-search.mdx",
  "observed": "2026-08-27",
  "claim": "VERIFIED BY THIS LANE via `gh api repos/shadcn-ui/ui/contents/... | base64 -d`. Dynamic Search: CLI appends q/type/limit/offset to GET /r/registry.json; a `pagination` object in the response signals server-side filtering; opt-in and backwards compatible; static registries need no changes.",
  "limitations": "Spec text read directly; adoption breadth not measured.",
  "disposition": "adopt_as_contract"
}
S-023record 23
{
  "id": "S-023",
  "evidence_class": "observed",
  "source": "https://component.gallery/components/ (via r.jina.ai)",
  "observed": "2026-08-27",
  "claim": "60 canonical components each with an explicit alias list across 95 design systems. Collisions observed: Banner is an alias of both Alert and Hero; Stepper is both an alias of Progress indicator and a standalone canonical; Label is an alias of Badge and standalone. Design-system facets: GitHub 70, Figma 23, Storybook 23; React 50, Sass 22, Web Components 20; Code examples 79, Open source 69, Unmaintained 11, Accessibility issues 4. Manual curation; no API/export/llms.txt.",
  "limitations": "403 to direct fetch; retrieved via reader proxy. A '2,676 examples' figure is UNVERIFIED. Per-component page structure not confirmed.",
  "disposition": "primary_taxonomy_evidence"
}
S-024record 24
{
  "id": "S-024",
  "evidence_class": "observed",
  "source": "https://21st.dev/api/mcp",
  "observed": "2026-08-27",
  "claim": "A JSON-RPC initialize POST returned 401 {\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32001,\"message\":\"Not authenticated - your API key is missing or was reset...\"}}; GET returns 405. Proves a live authenticated MCP endpoint.",
  "limitations": "Behaviour behind the key not observed. Free tier metered ~2 installs/day per the corpus AGENT.md.",
  "disposition": "upstream_capability"
}
S-025record 25
{
  "id": "S-025",
  "evidence_class": "observed",
  "source": "https://api.mobbin.com/mcp",
  "observed": "2026-08-27",
  "claim": "Mobbin ships a first-party hosted MCP returning inline images plus metadata; 60 req/min; default 20 screens per call; paid-plan OAuth-enforced; beta. Four search dimensions: Screens, UI Elements, Flows, Text in Screenshots. Weekly hand curation.",
  "limitations": "Scale figures conflict across sources (621,500/142,200 vs 600,000+/300,000+ vs 405,800/81,700); all UNVERIFIED as facts, quotable only as attributed claims.",
  "disposition": "reference_implementation"
}
S-026record 26
{
  "id": "S-026",
  "evidence_class": "observed",
  "source": "https://registry.directory/",
  "observed": "2026-08-27",
  "claim": "Cross-registry aggregator with freshness telemetry: same-day 'Just shipped' deltas (Shadcn Blocks +193, Zyeon UI +121, ReUI +93, Shadcn Space +62, UIAble +48), 35 'N items' badges, updated-recency from same-day to 10 months, capability badges including mcp, and human-written editorial groupings.",
  "limitations": "Beta; counts as-rendered on a single fetch, not re-derived per registry. A claim of 88 external registries in the shadcn repo is UNVERIFIED.",
  "disposition": "closest_prior_art"
}
S-027record 27
{
  "id": "S-027",
  "evidence_class": "observed",
  "source": "(live registry.json endpoints parsed by subagent)",
  "observed": "2026-08-27",
  "claim": "Item counts parsed live: ReactBits 672, Tailark 469, Aceternity 278, Magic UI 247, Fancy Components 158, HextaUI 139, Eldora UI 115, Kokonut UI 51, shadcn/ui core 63. Claim/reality gaps found: Magic UI homepage says '150+ components' vs 247 registry items; Aceternity homepage says '200+' vs its own AI page stating 111 free + 23 pro.",
  "limitations": "Registry ITEM count includes demos/examples and is NOT a component count. Licences and terms per registry were not assessed.",
  "disposition": "licensed_refresh_candidates"
}
S-028record 28
{
  "id": "S-028",
  "evidence_class": "observed",
  "source": "(gh api sweep over 102 repo slugs)",
  "observed": "2026-08-27",
  "claim": "91 of 102 GitHub slugs confirmed with full records; 11 returned 404. Licence traps caught by decoding LICENSE bodies rather than trusting the API field: browserless/browserless NOASSERTION is actually SSPL with explicit commercial/CI restriction; meilisearch is partly BSL 1.1; modelcontextprotocol/servers is mid-transition MIT to Apache-2.0; npm/cli is Artistic-2.0 not MIT. 21st-dev/magic-mcp has license null AND no LICENSE file (package.json asserts ISC) — treat as unlicensed. AGPL-3.0 confirmed on renovate, firecrawl, RSSHub, dssim, and cosscom/coss (which the slug origin-space/originui redirects to).",
  "limitations": "Star counts and pushed_at are point-in-time on 2026-08-27.",
  "disposition": "oss_denominator"
}
S-029record 29
{
  "id": "S-029",
  "evidence_class": "observed",
  "source": "(subagent coverage report, commercial slice B)",
  "observed": "2026-08-27",
  "claim": "Coverage shortfall recorded honestly: a subagent reached a hard model usage limit after verifying 8 of ~50 assigned gallery/design-system surfaces and declined to characterise the remaining 42 from memory. UI Garage verified SHUT DOWN. Land-book blocked by CAPTCHA even via proxy. Four component-kit domains fail DNS entirely: indie-ui.com, spectrumui.art, nyxbui.design, edilozi.pro.",
  "limitations": "The 42 unreached surfaces are recorded as evidence_class unknown in top-companies.jsonl and must not be treated as absent or negative.",
  "disposition": "coverage_gap"
}
S-030record 30
{
  "id": "S-030",
  "evidence_class": "observed",
  "source": "https://uiverse.io/elements",
  "observed": "2026-08-27",
  "claim": "4,456 UI elements extracted from the live page. Community-submitted continuous refresh, category plus style-tag facets, per-author attribution, strong visual browse. No agent access found: /llms.txt 404, /api/elements 404.",
  "limitations": "Agent-access absence probed on two paths only.",
  "disposition": "market_gap_evidence"
}
S-031record 31
{
  "id": "S-031",
  "evidence_class": "observed",
  "source": "https://www.awwwards.com/websites/",
  "observed": "2026-08-27",
  "claim": "Multi-facet scheme including hex colour-swatch filtering and font-name filtering alongside ~27 industry categories, style tags and technology facets.",
  "limitations": "Indexes whole sites, not components.",
  "disposition": "nontechnical_browse_precedent"
}
S-032record 32
{
  "id": "S-032",
  "evidence_class": "observed",
  "source": "https://adele.uxpin.com/",
  "observed": "2026-08-27",
  "claim": "~35-column design-system comparison matrix in five groups, including a 'color naming convention' facet with enum natural/abstract/branded/specific.",
  "limitations": "Page truncated at >=85 systems; true total UNVERIFIED; refresh cadence unknown.",
  "disposition": "facet_catalogue_precedent"
}
S-033record 33
{
  "id": "S-033",
  "evidence_class": "observed",
  "source": "https://designsystemsrepo.com/design-systems/",
  "observed": "2026-08-27",
  "claim": "Deliberately flat: no tags, categories or industry facets; only A-Z and Most Recent sort, at roughly 55 systems.",
  "limitations": "Total UNVERIFIED (truncated).",
  "disposition": "negative_control"
}
S-034record 34
{
  "id": "S-034",
  "evidence_class": "unknown",
  "source": "(visual near-duplicate rate over 7,678 previews)",
  "observed": "2026-08-27",
  "claim": "UNMEASURED. The prior audit proposed perceptual hashing and did not run it; this lane measured only the exact-duplicate floor (102 surplus, 1.3%). The true rate lies between 1.3% and the 25.9% name-collision proxy.",
  "limitations": "Requires running pHash and/or CLIP over the preview set — out of scope for a research-only lane.",
  "disposition": "open_question_gated_to_experiment"
}
S-035record 35
{
  "id": "S-035",
  "evidence_class": "unknown",
  "source": "(corpus-wide theme-eligibility pass rate)",
  "observed": "2026-08-27",
  "claim": "UNMEASURED. Inherited rates are SAMPLED n=25/n=60. The corpus-wide figure requires applying a token pack to all 7,949 bundles and scanning output CSS.",
  "limitations": "Would mutate no source but requires compute; not run in this lane.",
  "disposition": "open_question_gated_to_experiment"
}
S-036record 36
{
  "id": "S-036",
  "evidence_class": "unknown",
  "source": "(whether re-themed bundles look aesthetically correct)",
  "observed": "2026-08-27",
  "claim": "UNMEASURED and flagged by the prior audit as the most likely source of unpleasant surprises. Requires headless before/after screenshots plus contrast measurement.",
  "limitations": "",
  "disposition": "open_question_gated_to_experiment"
}
S-037record 37
{
  "id": "S-037",
  "evidence_class": "unknown",
  "source": "(rights clearance for both 21st stores)",
  "observed": "2026-08-27",
  "claim": "UNRESOLVED and explicitly NOT this lane's decision. 21st.dev terms prohibit the acquisition mechanism; SISO harvest rule 6 makes both stores summarize-only; rights coverage is 0.017%.",
  "limitations": "A counsel gate, not a research finding. This lane designs the refresh mechanism and flags the gate; it does not discharge it.",
  "disposition": "recorded_legal_gate"
}
S-038record 38
{
  "id": "S-038",
  "evidence_class": "unknown",
  "source": "(whether a paid 21st.dev key returns component source)",
  "observed": "2026-08-27",
  "claim": "UNRESOLVED. AGENT.md states /r/<author>/<slug> is metered at 2/day free and component_data.code is empty even authenticated. Testing requires a paid key and network calls — out of scope.",
  "limitations": "Gates whether the bundle-only 5,004 can ever become source-bearing.",
  "disposition": "open_question_blocked_on_authorization"
}