Documents
CONTRIBUTING
CONTRIBUTING
Type
External
Status
Published
Created
Jun 6, 2026
Updated
Jun 7, 2026
Updated by
Dosu Bot
Source
View

Contributing To Metagraphed#

Metagraphed is a backend-first operational registry for Bittensor subnet interfaces. The source of truth is reviewed JSON in this repo; generated artifacts under public/metagraph are projections of that source.

Local Checks#

Use Node 22.

npm ci
npm run pipeline:check

Before opening a PR that changes public contracts, also run:

npm run test:coverage
git diff --check

For smaller changes, run the focused checks that match the files you touched:

npm run validate
npm run validate:schemas
npm run validate:api
npm run validate:openapi
npm run worker:test
npm run scan:public-safety

Registry Data Rules#

  • Native subnet existence comes from the Bittensor/Finney chain snapshot.
  • Public interface metadata comes from curated overlays or reviewed candidate records.
  • Third-party directories, docs, GitHub READMEs, and websites are enrichment sources only.
  • Do not add secrets, PATs, wallet paths, private dashboards, private URLs, validator-local state, or credentialed API flows.
  • Do not invent API/status surfaces for subnets that do not publish them.
  • Preserve raw native chain values separately from curated display metadata.
  • Treat duplicate netuid + kind + URL records as data-quality bugs.

Community Intake#

Community submissions can become candidates, not direct registry truth. There are
two supported paths:

  • PR-first: add exactly one registry/candidates/community/*.json candidate
    document and no other files.
  • Issue-first: submit an interface-submission issue and let the import
    workflow create the candidate PR after approval.

Do not include generated public/metagraph/** artifacts, native snapshots,
workflow/script changes, secrets, wallet/PAT material, private URLs, or
validator-local data in UGC submissions.

The public submission gate performs deterministic checks first:

  • active Finney netuid;
  • supported surface kind;
  • registered provider;
  • public-safe interface and source URLs;
  • one candidate per submission;
  • no duplicate curated surface or candidate;
  • submitter provenance for direct PRs;
  • no generated artifact edits.

Passing public preflight routes the submission into private gate review. The
private reviewer may merge/import clean submissions, close hard failures, or
route rare edge cases to manual review. Public comments expose broad reason
categories only; private scoring prompts, thresholds, and corpus weights are not
part of the public repo.

The issue import flow is:

  1. Submit an interface-submission issue.
  2. intake:dry-run parses and validates the issue.
  3. The submission gate reviews source facts and safety.
  4. The gate or a maintainer applies metagraphed-import-approved.
  5. The import workflow opens a PR.
  6. Normal validation plus gate review decide whether it merges.

Schema-valid does not mean accepted.

Generated Artifacts#

Avoid hand-editing public/metagraph unless you are correcting a stale derived artifact that cannot be regenerated without unrelated live-probe churn. Prefer changing canonical registry source and rebuilding.

Use:

npm run pipeline:refresh

for full local refreshes. Set METAGRAPH_WRITE_PROBE_RESULTS=1 only when you intentionally want live probe artifacts updated.

Pull Requests#

  • Use short, focused PRs with Conventional Commit-style titles.
  • Include the relevant validation commands in the PR body.
  • Do not include local paths, machine-specific setup, raw environment dumps, or private research notes.
  • Keep UI/frontend work out of this repo; this repo owns backend data contracts and generated JSON.