chore: added GitHub templates, triage command, updated license and package metadata

- Added issue templates (bug report, feature request, question) with provider/platform dropdowns
- Added PR template and security policy
- Added /triage Claude command for automated issue classification
- Updated LICENSE to include Can Boluk copyright
- Updated author/contributors across all package.json files
- Added homepage, bugs, keywords, engines to all packages
- Created platform:wsl label for WSL-specific issues
This commit is contained in:
can1357
2026-02-13 16:03:15 +01:00
parent 5f95cd891a
commit 9647181774
17 changed files with 387 additions and 6 deletions
+100
View File
@@ -0,0 +1,100 @@
# Triage Command
Classify and label open GitHub issues that are missing labels.
## Arguments
- `$ARGUMENTS`: Scope filter — `open` (default), `closed`, or `all`. Append `--relabel` to re-classify issues that already have labels.
## Steps
### 1. Fetch Issues
Parse `$ARGUMENTS` to determine scope and whether `--relabel` is set.
```bash
# For open (default):
gh issue list --state open --json number,title,body,labels,comments,createdAt --limit 50
# For closed:
gh issue list --state closed --json number,title,body,labels,comments,createdAt --limit 30
# For all: run both commands and merge results
```
### 2. Filter Candidates
- If `--relabel` is NOT set, skip any issue that already has at least one label.
- If `--relabel` IS set, process all fetched issues.
### 3. Classify Each Issue
For each candidate issue, read the title, body, and **all comments** (comments often contain critical context). Apply labels from the categories below. An issue can receive multiple labels.
**Type labels** (pick exactly one):
| Label | Signals |
|---|---|
| `bug` | Crashes, errors, stack traces, regressions, "doesn't work", "broke" |
| `enhancement` | Feature requests, integrations, "would be nice", "could we add" |
| `question` | How-to, usage help, "is it possible", "how do I" |
| `documentation` | Docs missing, incorrect, or outdated |
| `invalid` | Spam, off-topic, not actionable |
| `duplicate` | Clearly duplicates another open issue (note the original in a comment) |
**Area labels** (pick all that apply):
| Label | Signals |
|---|---|
| `auth` | OAuth, login, API keys, tokens, authentication, authorization |
| `cli` | Slash commands, CLI arguments, flags, command parsing |
| `providers` | LLM provider-specific (Google, OpenAI, Anthropic, Gemini, Ollama, etc.) |
| `setup` | Installation, build errors, dependency issues, first-run problems |
| `tui` | TUI rendering, display glitches, terminal width, color, layout |
| `ux` | UX improvements that are not bugs — workflow, ergonomics, usability |
**Platform labels** (pick all that apply):
| Label | Signals |
|---|---|
| `platform:linux` | Mentions Linux, Docker, Ubuntu, Debian, Fedora, Arch |
| `platform:macos` | Mentions macOS, Mac, Homebrew, Darwin |
| `platform:windows` | Mentions Windows (native), PowerShell, cmd.exe |
| `platform:wsl` | Mentions WSL or Windows Subsystem for Linux — distinct from both native Windows and Linux |
**Meta labels** (use sparingly, only when clearly appropriate):
| Label | Signals |
|---|---|
| `good first issue` | Well-scoped, self-contained, good for new contributors |
| `help wanted` | Maintainers want community help |
| `wontfix` | Intentional behavior, out of scope |
### 4. Apply Labels
For each issue, apply the chosen labels. **Never remove existing labels.**
```bash
gh issue edit <number> --add-label "bug,tui,platform:linux"
```
### 5. Print Summary
After processing all issues, print a markdown summary table:
```
## Triage Summary
| # | Title | Added Labels | Skipped |
|---|-------|-------------|---------|
| 42 | TUI crashes on resize | bug, tui | |
| 38 | Add Ollama support | enhancement, providers | |
| 35 | How to configure API key | question, auth | |
| 30 | Dashboard colors | | Already labeled |
```
Include counts at the end: `Processed: X | Labeled: Y | Skipped: Z`
## Classification Tips
- When uncertain between `bug` and `enhancement`, check if existing behavior broke (bug) or new behavior is requested (enhancement).
- If an issue mentions a specific provider AND another area (e.g., "OpenAI auth fails"), apply both `providers` and `auth`.
- WSL issues get `platform:wsl` — not `platform:linux` or `platform:windows`.
- Don't apply `good first issue` or `help wanted` during automated triage — those require maintainer judgment.
- If the body is empty or unclear, read the comments before skipping. Users often clarify in replies.
+110
View File
@@ -0,0 +1,110 @@
name: Bug Report
description: Report a bug or crash
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: Description
description: What happened?
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to Reproduce
description: Minimal steps to reproduce the issue
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What did you expect to happen?
validations:
required: true
- type: textarea
id: error-output
attributes:
label: Error Output
description: Paste any error messages or stack traces
render: shell
- type: dropdown
id: environment
attributes:
label: Platform
options:
- macOS
- Linux
- Windows (native)
- Windows (WSL)
validations:
required: true
- type: input
id: version
attributes:
label: omp version
description: Output of `omp --version`
placeholder: "e.g. 12.1.0"
validations:
required: true
- type: input
id: bun-version
attributes:
label: Bun version
description: Output of `bun --version`
placeholder: "e.g. 1.3.8"
validations:
required: true
- type: dropdown
id: provider
attributes:
label: Provider
description: Which provider were you using? Leave blank if not provider-specific.
options:
- Anthropic (Claude Pro/Max)
- ChatGPT Plus/Pro (Codex)
- GitHub Copilot
- Google Cloud Code Assist (Gemini CLI)
- Antigravity (Gemini 3, Claude, GPT-OSS)
- Cursor
- OpenCode Zen
- Kimi Code
- Z.AI (GLM)
- MiniMax Coding Plan
- Perplexity
- Amazon Bedrock
- OpenRouter
- Ollama / Local
- Custom (models.yml)
- Other
- type: dropdown
id: area
attributes:
label: Area
description: Which part of omp is affected?
options:
- TUI / Display
- Authentication / Login
- Model selection
- Tool execution
- MCP servers
- Extensions / Plugins
- CLI commands
- Setup / Installation
- Session / Compaction
- Other
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Screenshots, config snippets, or other relevant information
+11
View File
@@ -0,0 +1,11 @@
blank_issues_enabled: true
contact_links:
- name: Model Configuration
url: https://github.com/can1357/oh-my-pi/blob/main/packages/coding-agent/docs/models.md
about: How to add custom providers and models via models.yml
- name: Extensions Guide
url: https://github.com/can1357/oh-my-pi/blob/main/packages/coding-agent/docs/extensions.md
about: Build custom tools, commands, and integrations
- name: Skills Documentation
url: https://github.com/can1357/oh-my-pi/blob/main/packages/coding-agent/docs/skills.md
about: How to create and use skills
@@ -0,0 +1,48 @@
name: Feature Request
description: Suggest a new feature or improvement
labels: ["enhancement"]
body:
- type: textarea
id: description
attributes:
label: Description
description: What would you like?
validations:
required: true
- type: textarea
id: use-case
attributes:
label: Use Case
description: Why is this needed? What problem does it solve?
validations:
required: true
- type: dropdown
id: area
attributes:
label: Area
description: Which part of omp does this relate to?
options:
- Provider / Model support
- TUI / Display
- Tools
- MCP servers
- Extensions / Plugins
- CLI commands
- Skills / Commands
- Session management
- Configuration
- Other
- type: textarea
id: proposed-solution
attributes:
label: Proposed Solution
description: How would you implement this? Link to relevant docs or APIs if applicable.
- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Any workarounds or other approaches you've tried?
+38
View File
@@ -0,0 +1,38 @@
name: Question
description: Ask about usage or configuration
labels: ["question"]
body:
- type: textarea
id: question
attributes:
label: Question
validations:
required: true
- type: textarea
id: context
attributes:
label: Context
description: What are you trying to do?
- type: dropdown
id: area
attributes:
label: Topic
options:
- Provider setup / Login
- Custom models (models.yml)
- Extensions
- MCP servers
- Skills / Commands
- Configuration
- Other
- type: dropdown
id: environment
attributes:
label: Platform
options:
- macOS
- Linux
- Windows
+17
View File
@@ -0,0 +1,17 @@
## What
<!-- Brief description of the change -->
## Why
<!-- Motivation, context, or link to issue (fixes #N) -->
## Testing
<!-- How was this tested? -->
---
- [ ] `bun check` passes
- [ ] Tested locally
- [ ] CHANGELOG updated (if user-facing)
+18
View File
@@ -0,0 +1,18 @@
# Security Policy
## Supported Versions
Only the latest release is supported with security updates.
## Reporting a Vulnerability
To report a security issue, either:
- Email can1357 directly, or
- Open a [private security advisory](https://github.com/can1357/oh-my-pi/security/advisories/new) on GitHub
Include steps to reproduce and any relevant details. Do not open a public issue for security vulnerabilities.
## Response
Reports are handled on a best-effort basis. You can expect an initial acknowledgment within a few days.
+1
View File
@@ -1,6 +1,7 @@
MIT License
Copyright (c) 2025 Mario Zechner
Copyright (c) 2025-2026 Can Bölük
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+4 -1
View File
@@ -35,13 +35,16 @@
"transport",
"state-management"
],
"author": "Mario Zechner",
"author": "Can Bölük",
"contributors": ["Mario Zechner"],
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/agent"
},
"homepage": "https://github.com/can1357/oh-my-pi",
"bugs": { "url": "https://github.com/can1357/oh-my-pi/issues" },
"engines": {
"bun": ">=1.3.7"
},
+4 -1
View File
@@ -82,13 +82,16 @@
"unified",
"api"
],
"author": "Mario Zechner",
"author": "Can Bölük",
"contributors": ["Mario Zechner"],
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/ai"
},
"homepage": "https://github.com/can1357/oh-my-pi",
"bugs": { "url": "https://github.com/can1357/oh-my-pi/issues" },
"engines": {
"bun": ">=1.3.7"
},
+4 -1
View File
@@ -119,13 +119,16 @@
"tui",
"agent"
],
"author": "Mario Zechner",
"author": "Can Bölük",
"contributors": ["Mario Zechner"],
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/coding-agent"
},
"homepage": "https://github.com/can1357/oh-my-pi",
"bugs": { "url": "https://github.com/can1357/oh-my-pi/issues" },
"engines": {
"bun": ">=1.3.7"
}
+3
View File
@@ -2,6 +2,7 @@
"name": "@oh-my-pi/pi-natives",
"version": "12.1.0",
"description": "Native Rust functionality via N-API",
"keywords": ["napi", "rust", "native", "grep", "text-processing"],
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
@@ -31,6 +32,8 @@
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/natives"
},
"homepage": "https://github.com/can1357/oh-my-pi",
"bugs": { "url": "https://github.com/can1357/oh-my-pi/issues" },
"dependencies": {
"@oh-my-pi/pi-utils": "workspace:*"
},
@@ -3,6 +3,8 @@
"version": "0.0.1",
"private": true,
"description": "Edit benchmark suite using React source code mutations",
"author": "Can Bölük",
"license": "MIT",
"type": "module",
"main": "./src/index.ts",
"bin": {
@@ -13,6 +15,14 @@
"generate": "bun run src/generate.ts --react-dir /tmp/react-source --count-per-type 4",
"check": "tsgo -p tsconfig.json --noEmit"
},
"repository": {
"type": "git",
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/react-edit-benchmark"
},
"engines": {
"bun": ">=1.3.7"
},
"dependencies": {
"@oh-my-pi/pi-agent-core": "workspace:*",
"@oh-my-pi/pi-coding-agent": "workspace:*",
+2
View File
@@ -47,6 +47,8 @@
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/stats"
},
"homepage": "https://github.com/can1357/oh-my-pi",
"bugs": { "url": "https://github.com/can1357/oh-my-pi/issues" },
"dependencies": {
"@oh-my-pi/pi-ai": "workspace:*",
"date-fns": "^4.1.0",
+9 -1
View File
@@ -2,6 +2,8 @@
"name": "@oh-my-pi/swarm-extension",
"version": "12.1.0",
"description": "Swarm orchestration extension for omp",
"keywords": ["swarm", "orchestration", "agent", "extension"],
"author": "Derek Rynd",
"type": "module",
"bin": {
"omp-swarm": "src/cli.ts"
@@ -23,5 +25,11 @@
"type": "git",
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/swarm-extension"
}
},
"engines": {
"bun": ">=1.3.7"
},
"files": ["src"],
"homepage": "https://github.com/can1357/oh-my-pi",
"bugs": { "url": "https://github.com/can1357/oh-my-pi/issues" }
}
+4 -1
View File
@@ -36,13 +36,16 @@
"typescript",
"cli"
],
"author": "Mario Zechner",
"author": "Can Bölük",
"contributors": ["Mario Zechner"],
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/tui"
},
"homepage": "https://github.com/can1357/oh-my-pi",
"bugs": { "url": "https://github.com/can1357/oh-my-pi/issues" },
"engines": {
"bun": ">=1.3.7"
},
+3
View File
@@ -2,6 +2,7 @@
"name": "@oh-my-pi/pi-utils",
"version": "12.1.0",
"description": "Shared utilities for pi packages",
"keywords": ["utilities", "cli", "logging", "streams"],
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
@@ -34,6 +35,8 @@
"url": "git+https://github.com/can1357/oh-my-pi.git",
"directory": "packages/utils"
},
"homepage": "https://github.com/can1357/oh-my-pi",
"bugs": { "url": "https://github.com/can1357/oh-my-pi/issues" },
"dependencies": {
"winston": "^3.19.0",
"winston-daily-rotate-file": "^5.0.0"