arkiv-social-graph

Installation
SKILL.md

Arkiv social graphs

Use the published arkiv-graph@0.3.1 public imports. Its SDK peer is >=0.8.0 <0.9.0; the examples below were checked with SDK 0.8.1. Read the package's consumer guide and installed declarations. Core builders can run without rendering React; arkiv-graph/react is a separate client entry.

Installation still brings React/d3 dependencies through react-force-graph-2d, even for a core-only Node consumer. Check the application's existing React peer compatibility before installing; the separate core import does not remove that dependency tree.

Define the relationship

  • Choose the public creator/owner scope, app namespace, endpoint identifiers and relationship meaning with the developer. project, profile names and relationship attributes identify data; they do not authorize readers or establish trusted authorship.
  • Store a follow/like as its own entity with lowercase attributes, such as entity_type: "follow", source_key and target_key. Entity Expiration belongs to this edge independently of its endpoints. The package reads relationships; it does not write edges or enforce foreign keys.
  • Pass typeAttribute: "entity_type" explicitly to builders/fetch. The library's default is camelCase entityType, which is unsuitable for newly written Tiramisu attributes. Pass the canonical explorer https://tiramisu.explorer.arkiv.network; 0.3.1 defaults to a noncanonical alias. The alias alone is not evidence of a broken link.
  • A directed follow is source → target. Set directed: true; use false only when the product deliberately treats the relation as symmetric. Self-joins are skipped by the join builder.
  • Distinct edge entities connecting the same pair remain distinct edges. The builder deduplicates edge IDs, not semantic pairs. Decide whether multiple follows/likes are meaningful; enforce any uniqueness in the app and reconcile concurrent or uncertain writes with arkiv-write-safety.
  • Prefer entity keys as endpoints. Stable business IDs need type-specific matching and a uniqueness policy: join indexes keep the first matching entity when IDs collide.
  • A ghost node means an endpoint was not fetched, not proof that it expired. It may be outside the query scope, truncated, missing or expired. Verify live availability separately. With placeholders disabled, unresolved joins remain standalone entities instead of becoming edges.

Use arkiv-data-modeling for the schema and arkiv-security-trust for publisher/mutable-owner policy. These are public relationships, not private follows or a SQL join engine.

Seeding and rerunning relationships

Installs
3
GitHub Stars
1
First Seen
7 days ago