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.
+2 -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
@@ -18,4 +19,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
+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"