Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/ISSUE_TEMPLATE/agent_skill_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: πŸ€– Agent / Skill Request
description: Propose a new subagent or skill to bundle
title: "agent: "
labels: ["πŸ€– Agent", "πŸ” Triage"]
body:
- type: dropdown
id: kind
attributes:
label: Type
options:
- Agent (under `agents/`)
- Skill (under `skills/<name>/SKILL.md`)
validations:
required: true

- type: input
id: name
attributes:
label: Proposed name
placeholder: e.g. terraform-reviewer / accessibility-auditor
validations:
required: true

- type: textarea
id: description
attributes:
label: Description
description: One-paragraph summary for the frontmatter.
validations:
required: true

- type: textarea
id: when-to-use
attributes:
label: When to use it
description: Specific, actionable trigger conditions.
validations:
required: true

- type: textarea
id: gap
attributes:
label: Why isn't this covered by an existing one?
description: Link the closest existing agent/skill and explain the gap.
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: 🐞 Bug Report
description: Something is broken β€” agent fails, hook misbehaves, install errors, etc.
title: "bug: "
labels: ["🐞 Bug", "πŸ” Triage"]
body:
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Include reproduction steps if possible.
placeholder: |
1. Run `./install.sh`
2. Invoke `/egc-plan ...`
3. See error
validations:
required: true

- type: dropdown
id: environment
attributes:
label: Environment
multiple: true
options:
- Gemini CLI
- Antigravity
- npm package
- Other
validations:
required: true

- type: input
id: version
attributes:
label: OS / Version
placeholder: macOS 14.5 / v1.3.6
validations:
required: true

- type: textarea
id: logs
attributes:
label: Logs (optional)
render: shell
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: πŸ’¬ Discussions
url: https://github.com/Jamkris/everything-gemini-code/discussions
about: Questions, ideas, "is this the right pattern?", show and tell
- name: πŸ“– Documentation
url: https://github.com/Jamkris/everything-gemini-code/tree/main/docs
about: Multilingual docs (en / ko-KR / zh-CN)
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: ✨ Feature Request
description: Suggest a new feature, command, hook, or integration
title: "feat: "
labels: ["✨ Feature", "πŸ” Triage"]
body:
- type: textarea
id: problem
attributes:
label: Problem
description: What are you trying to do that the current bundle doesn't support?
validations:
required: true

- type: textarea
id: proposal
attributes:
label: Proposed solution
validations:
required: true

- type: dropdown
id: scope
attributes:
label: Scope
multiple: true
options:
- Agent
- Skill
- Slash command
- Hook
- Install / packaging
- Docs
- Other
30 changes: 30 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
## Summary

<!-- One or two sentences. What changed and why. -->

## Type

<!-- Check one or more -->

- [ ] feat β€” new agent / skill / command / hook
- [ ] fix β€” bug fix
- [ ] refactor β€” non-behavioral cleanup
- [ ] docs β€” documentation only
- [ ] chore β€” tooling, CI, dependency bumps
- [ ] breaking β€” changes a command name, agent tool list, or hook contract

## Test plan

<!-- How did you verify this? Check what you ran. -->

- [ ] `npm run lint` clean
- [ ] `npm test` passes
- [ ] `node scripts/ci/validate-agents.js` passes (if touching `agents/`)
- [ ] `node scripts/ci/validate-commands.js` passes (if touching `commands/`)
- [ ] Manual smoke test in Gemini CLI / Antigravity (describe below)

<!-- Describe any manual testing here. -->

## Related

<!-- Closes #N, refs #N, links to discussion. Delete if none. -->
70 changes: 70 additions & 0 deletions .github/labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# --- Type ---------------------------------------------------------------
- name: 🐞 Bug
color: d73a4a
description: Something isn't working
- name: ✨ Feature
color: a2eeef
description: New feature or improvement request
- name: πŸ”¨ Refactor
color: f29a4e
description: Code refactoring with no behavior change
- name: πŸ“ƒ Docs
color: 1D76DB
description: Documentation changes (README, docs/)
- name: βœ… Test
color: ccffc4
description: Test additions or fixes (tests/, fixtures)
- name: βš™ Setting
color: e3dede
description: Tooling, CI, dependencies, build setup
- name: 🌏 Release
color: C2E0C6
description: Release, packaging, publish
- name: πŸ™‹β€β™‚οΈ Question
color: 9ED447
description: Further information is requested

# --- Area ---------------------------------------------------------------
- name: πŸ€– Agent
color: 7057ff
description: Changes under agents/ (subagent definitions)
- name: 🧠 Skill
color: 0e8a16
description: Changes under skills/ (SKILL.md)
- name: ⌨ Command
color: D4C5F9
description: Changes under commands/ (egc-* slash commands)
- name: πŸͺ Hook
color: e99695
description: Changes under hooks/ or scripts/hooks/
- name: πŸ“š Rules
color: C5DEF5
description: Changes under rules/ (shipped to user ~/.gemini/rules/)
- name: πŸ“¦ Install
color: FEF2C0
description: install.sh / install.ps1 / npm packaging

# --- Severity / nature --------------------------------------------------
- name: πŸ›‘ Security
color: b60205
description: Security-relevant change or vulnerability
- name: πŸ’₯ Breaking
color: d93f0b
description: Breaks command names, tool lists, or hook contracts

# --- Triage / flow ------------------------------------------------------
- name: πŸ” Triage
color: ededed
description: Awaiting maintainer triage
- name: 🌱 Good First Issue
color: 7057ff
description: Approachable for first-time contributors
- name: 🀝 Help Wanted
color: 008672
description: Maintainer would like community help on this
- name: πŸŒ€ Duplicate
color: cccccc
description: Already tracked elsewhere
- name: 🚫 Wontfix
color: ffffff
description: Out of scope or intentionally not addressed
63 changes: 63 additions & 0 deletions scripts/setup-labels.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/usr/bin/env bash
# Sync GitHub labels from .github/labels.yml.
#
# Idempotent: re-running updates color/description on existing labels.
# Requires `gh` CLI and `python3` (used to parse the YAML).

set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
LABELS_FILE="$ROOT/.github/labels.yml"

if [ ! -f "$LABELS_FILE" ]; then
echo "Labels manifest not found at $LABELS_FILE" >&2
exit 1
fi

if ! command -v gh >/dev/null 2>&1; then
echo "gh CLI not installed. See https://cli.github.com/" >&2
exit 1
fi
Comment thread
greptile-apps[bot] marked this conversation as resolved.
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.

if ! command -v python3 >/dev/null 2>&1; then
echo "python3 not found. Please install Python 3." >&2
exit 1
fi

# Parse YAML into TSV rows (name<TAB>color<TAB>description) via python.
python3 - "$LABELS_FILE" <<'PY' | while IFS=$'\t' read -r name color description; do
import sys, re

path = sys.argv[1]
with open(path, encoding='utf-8') as f:
src = f.read()

entries = []
current = None
for line in src.splitlines():
if line.startswith('#') or not line.strip():
continue
m = re.match(r'^- name:\s*(.+?)\s*$', line)
if m:
if current:
entries.append(current)
current = {'name': m.group(1), 'color': '', 'description': ''}
continue
m = re.match(r'^\s+color:\s*(.+?)\s*$', line)
if m and current is not None:
current['color'] = m.group(1)
continue
m = re.match(r'^\s+description:\s*(.+?)\s*$', line)
if m and current is not None:
current['description'] = m.group(1)
if current:
entries.append(current)

for e in entries:
print(f"{e['name']}\t{e['color']}\t{e['description']}")
PY
echo "Syncing label: $name"
gh label create "$name" --color "$color" --description "$description" --force >/dev/null
done

echo "Done."
Loading