chore: bootstrap contributor onboarding (issue templates, labels, roadmap)#22
Conversation
There was a problem hiding this comment.
Code Review
This pull request adds essential community and project files, including a Code of Conduct, a roadmap, issue templates, support guidelines, and a label setup script. The review feedback points out several areas for improvement: dynamically resolving the repository name in the label setup script to support external forks, correcting a reference to a non-existent package path in the 'Good First Issues' backlog, and fixing a broken relative link to the roadmap in the feature request template.
| REPO="${1:-hoainho/ohmyperf}" | ||
|
|
||
| if ! command -v gh >/dev/null 2>&1; then | ||
| echo "ERROR: gh CLI not found. Install from https://cli.github.com/" >&2 | ||
| exit 1 | ||
| fi |
There was a problem hiding this comment.
Hardcoding the default repository to hoainho/ohmyperf will cause the script to fail with permission errors for any external contributor running it on their fork without arguments. We can dynamically resolve the current repository using the gh CLI, falling back to an error if it cannot be resolved.
| REPO="${1:-hoainho/ohmyperf}" | |
| if ! command -v gh >/dev/null 2>&1; then | |
| echo "ERROR: gh CLI not found. Install from https://cli.github.com/" >&2 | |
| exit 1 | |
| fi | |
| REPO="${1:-}" | |
| if ! command -v gh >/dev/null 2>&1; then | |
| echo "ERROR: gh CLI not found. Install from https://cli.github.com/" >&2 | |
| exit 1 | |
| fi | |
| if [ -z "$REPO" ]; then | |
| REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner 2>/dev/null || echo "") | |
| fi | |
| if [ -z "$REPO" ]; then | |
| echo "ERROR: Could not resolve repository. Please run inside a git repository or pass the repository as an argument (e.g. owner/repo)." >&2 | |
| exit 1 | |
| fi |
| **Hints.** | ||
| - Schema source-of-truth: `packages/shared-types/src/report.schema.json`. |
There was a problem hiding this comment.
The path packages/shared-types/src/report.schema.json references a non-existent package. According to the package list and test suite in README.md, there is no @ohmyperf/shared-types or packages/shared-types workspace. Please update this hint to point to the correct location of the report schema (e.g., within packages/core or wherever the schema is defined).
| attributes: | ||
| label: Pre-flight | ||
| options: | ||
| - label: I searched [existing issues](https://github.com/hoainho/ohmyperf/issues?q=is%3Aissue) and the [roadmap](../ROADMAP.md) |
There was a problem hiding this comment.
…dmap) Adds the foundation contributors expect before opening a PR: - .github/ISSUE_TEMPLATE/ — bug, feature, question forms with structured fields - .github/FUNDING.yml — GitHub Sponsors - .github/CODE_OF_CONDUCT.md — Contributor Covenant 2.1 - .github/GOOD_FIRST_ISSUES.md — 15 ready-to-open issue drafts + 5 help-wanted - SUPPORT.md — channel routing for users - ROADMAP.md — quarterly milestones tied to OpenSpec changes - LABELS.md + scripts/setup-labels.sh — 36-label taxonomy via gh CLI - docs/CONTRIBUTING-ADDITIONS-PROPOSAL.md — first-PR walkthrough - docs/README-HERO-PROPOSAL.md — README hero rewrite proposal Also fixes package.json bugs.url which was pointing at github.com/ohmyperf/ohmyperf (non-existent org) instead of github.com/hoainho/ohmyperf. `npm bugs @ohmyperf/cli` now resolves correctly. No code changes. No surface impact. Behaviour unchanged.
f81e1cf to
66f0d19
Compare
Summary
Bootstraps the contributor-onboarding foundation OhMyPerf needs to convert visitors into stars/forks/PRs. No code or behaviour changes — pure scaffolding + a 1-line
package.jsonbug fix.Surfaces touched
.github/,scripts/)SUPPORT.md,ROADMAP.md,LABELS.md,docs/*-PROPOSAL.md)package.json—bugs.urltypo fix only (no version bump, no dep change)No
packages/core/impact. No surface contract change.What ships
Issue intake (raises bar from "free text" to "structured triage"):
.github/ISSUE_TEMPLATE/bug_report.yml— required fields: version, surface (multi-select), Node version, OS, repro, actual, expected.github/ISSUE_TEMPLATE/feature_request.yml— problem / proposal / surface / alternatives / OpenSpec willingness.github/ISSUE_TEMPLATE/question.yml— minimal, points to Discussions.github/ISSUE_TEMPLATE/config.yml— disables blank issues, links to Discussions + security advisories + hosted viewerFunding + governance:
.github/FUNDING.yml— GitHub Sponsors enabled, other platforms commented out until verified.github/CODE_OF_CONDUCT.md— Contributor Covenant 2.1 (standard, expected by Linux Foundation programs / Hacktoberfest / GitHub's "community standards")SUPPORT.md— channel routing matrix; reduces "how do I report X" frictionRoadmap + label system:
ROADMAP.md— Q2/Q3/Q4 2026 milestones + "Considering" + "How to influence" sectionsLABELS.md— 36-label taxonomy:type/*,area/*,priority/*,status/*, plus recruiting labels (good-first-issue,help-wanted,mentor-available,hacktoberfest)scripts/setup-labels.sh— idempotent bash script that creates or updates all 36 labels viaghCLI. Run once:./scripts/setup-labels.shContributor recruitment material:
.github/GOOD_FIRST_ISSUES.md— 15 ready-to-open issue drafts (sized 1-4h each) + 5 larger help-wanted issues, each with acceptance criteria + hints + difficulty rating + suggested labelsProposals (not applied — owner reviews):
docs/README-HERO-PROPOSAL.md— README hero rewrite lifting MCP angle to top + badge row + GIF placeholderdocs/CONTRIBUTING-ADDITIONS-PROPOSAL.md— "Your first PR" walkthrough + coding conventions + rejection criteriaBug fix:
package.json:bugs.urlwas pointing atgithub.com/ohmyperf/ohmyperf/issues(non-existent org). Now correctly points atgithub.com/hoainho/ohmyperf/issues.npm bugs @ohmyperf/clinow resolves.Verification
npm pkg get bugs.url→"https://github.com/hoainho/ohmyperf/issues"✓?template=bug_report.ymlURL on the branch).scripts/setup-labels.sh hoainho/ohmyperfruns idempotently (create-or-update logic, no destructive deletes).Recommended next steps after merge
./scripts/setup-labels.sh hoainho/ohmyperfonce..github/GOOD_FIRST_ISSUES.md(copy/paste each block as a new issue, apply the suggested labels).docs/README-HERO-PROPOSAL.mdand decide whether to apply the hero rewrite as a follow-up PR.docs/CONTRIBUTING-ADDITIONS-PROPOSAL.mdand merge the additions into the existingCONTRIBUTING.mdif approved.Out of scope (separate PRs)