Skip to content

AMS contribution-profile: implement generic label/docs/agent-file extraction #6796

Description

@JSONbored

Part of #6793. Depends on #6795 (the ContributionProfile schema this extraction must produce).

Context

With a target schema defined, AMS needs the actual extraction logic: read a repo's real signals (label taxonomy, contribution docs, agent-facing files) and produce a populated ContributionProfile.

Requirements

  • Fetch and parse a target repo's label taxonomy (name + description) via the GitHub API, applying generic heuristics (not loopover-specific keyword matching) to classify labels as eligibility/exclusion/neutral where the description is explicit enough to support it.
  • Fetch and parse CONTRIBUTING.md, .github/PULL_REQUEST_TEMPLATE.md (or equivalent), and any AI-agent-facing docs (AGENTS.md, CLAUDE.md, .claude/skills/**) if present, extracting explicit eligibility statements where they exist.
  • Populate the profile's confidence/provenance fields honestly — a repo with no discoverable signals at all should produce a low-confidence/empty profile, not a false-positive guess.
  • Handle repos with partial signals gracefully (e.g. labels present but no docs, or docs present but generic/non-machine-parseable prose) — degrade to lower confidence rather than erroring.

Test Coverage Requirements

Unit tests against fixture data covering: a repo with loopover's own convention (should extract correctly), a repo with a different but explicit convention, and a repo with no discoverable signals at all (should produce a low-confidence/empty profile, not throw).

Deliverables

Expected Outcome

Given any target repo, AMS can produce a best-effort contribution profile from what that repo actually publishes, without any loopover-specific hardcoding.

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions