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 + URLrecords 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/*.jsoncandidate
document and no other files. - Issue-first: submit an
interface-submissionissue 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:
- Submit an
interface-submissionissue. intake:dry-runparses and validates the issue.- The submission gate reviews source facts and safety.
- The gate or a maintainer applies
metagraphed-import-approved. - The import workflow opens a PR.
- 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.