🌐
default governance

Open Source

A pm-cli workspace preset for open source project maintainers. Prioritizes low friction for community contributions — no ownership enforcement, community-friendly templates, and core metadata so maint

default Encourages completeness but doesn't block. Warnings on incomplete items.

Templates

bug-reportfeature-requestgood-first-issue

Install as extension

$ pm install github.com/unbraind/pm-presets --project
Then apply: pm oss-setup

Settings

{
  "id_prefix": "oss-",
  "author_default": "",
  "governance": {
    "preset": "default",
    "ownership_enforcement": "off",
    "create_mode_default": "progressive",
    "close_validation_default": "warn",
    "metadata_profile": "core"
  },
  "validation": {
    "sprint_release_format": "warn",
    "parent_reference": "warn"
  },
  "item_types": {
    "definitions": [
      {
        "name": "Feature",
        "description": "A new capability requested by the community"
      },
      {
        "name": "Issue",
        "description": "A defect or unintended behavior"
      },
      {
        "name": "Task",
        "description": "Maintenance, refactor, or contributor onboarding work"
      }
    ]
  },
  "testing": {
    "record_results_to_items": true
  },
  "search": {
    "mode": "keyword"
  },
  "calendar": {
    "default_view": "agenda",
    "first_day_of_week": 1
  },
  "telemetry": {
    "enabled": false
  }
}

Template Files

📄 bug-report.json JSON
{
  "name": "bug-report",
  "description": "A bug report submitted by a user, including reproduction steps and environment details.",
  "defaults": {
    "type": "Issue",
    "status": "open",
    "priority": "medium",
    "tags": [
      "bug",
      "community"
    ],
    "metadata": {
      "reported_by": "",
      "version": "",
      "os_platform": "",
      "steps_to_reproduce": "",
      "expected_behavior": "",
      "actual_behavior": "",
      "logs_or_screenshots": "",
      "upstream_issue_url": ""
    }
  }
}
📄 feature-request.json JSON
{
  "name": "feature-request",
  "description": "A feature request submitted by a community contributor or user.",
  "defaults": {
    "type": "Feature",
    "status": "open",
    "priority": "medium",
    "tags": [
      "feature-request",
      "community"
    ],
    "metadata": {
      "requested_by": "",
      "use_case": "",
      "proposed_solution": "",
      "alternatives_considered": "",
      "upstream_issue_url": "",
      "milestone": ""
    }
  }
}
📄 good-first-issue.json JSON
{
  "name": "good-first-issue",
  "description": "A well-scoped task suitable for first-time contributors. Should include clear context and pointers to relevant code.",
  "defaults": {
    "type": "Task",
    "status": "open",
    "priority": "low",
    "tags": [
      "good-first-issue",
      "help-wanted",
      "contributor-friendly"
    ],
    "metadata": {
      "skill_level": "beginner",
      "estimated_hours": "",
      "relevant_files": "",
      "mentorship_contact": "",
      "related_docs_url": "",
      "pr_checklist": "tests passing, docs updated if needed, changelog entry"
    }
  }
}

Documentation

A pm-cli workspace preset for open source project maintainers. Prioritizes low friction for community contributions — no ownership enforcement, community-friendly templates, and core metadata so maintainers have enough context to triage and review.

What This Preset Configures

Settings (settings.json)

Setting Value Rationale
id_prefix oss- Makes item IDs identifiable in changelogs and PR references
governance.preset default Reasonable structure without blocking async contributors
governance.ownership_enforcement none Community items are unassigned by default; no warnings
governance.close_validation_default warn Encourages completeness when closing, but doesn't block
governance.metadata_profile core Captures enough context for async triage
validation.sprint_release_format warn Milestones are flexible; only warns on format issues
validation.parent_reference warn Community issues often stand alone; parent not required

Templates

Template Type Purpose
feature-request Feature Community-submitted feature proposals
bug-report Issue User-submitted bug with repro steps and environment info
good-first-issue Task Curated beginner-friendly tasks with mentorship context

Workflow Overview

Incoming community issue
  ├── Triage → apply feature-request or bug-report template
  ├── Label good-first-issue → apply good-first-issue template
  └── Assign milestone → link to release
  1. When a community member reports something, create an item with pm create --template bug-report or pm create --template feature-request.
  2. Fill in the upstream_issue_url metadata field to link back to the GitHub/GitLab issue.
  3. Tag promising small issues as good-first-issue using pm create --template good-first-issue.
  4. Set milestone metadata to track which release the fix targets.
  5. Close items with pm close — a warning fires if reproduction steps or expected behavior are missing.

Installation

Run the setup script from your repository root after running pm init:

bash .agents/pm/presets/open-source/setup.sh

Or copy files manually:

cp presets/open-source/settings.json .agents/pm/settings.json
cp presets/open-source/templates/*.json .agents/pm/templates/

Customization Tips

  • Add a triage_label metadata field to templates if your project uses a labeling system.
  • Set author_default to your bot username if you auto-create items from webhook events.
  • Switch ownership_enforcement to warn once the project grows and you want to track who owns each item.
All presets View source on GitHub