Skip to main content

engram-issue-creation

Issue creation workflow for Engram following the issue-first enforcement system. Trigger: When creating a GitHub issue, reporting a bug, or requesting a feature.

소스 정보

저장소
Gentleman-Programming/engram
최근 소스 활동
2026년 10월 14일 04:01
감지된 SKILL.md 언어
영어
스타
7,283
포크
753

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
engram-issue-creation
description
Issue creation workflow for Engram following the issue-first enforcement system. Trigger: When creating a GitHub issue, reporting a bug, or requesting a feature.
license
Apache-2.0
metadata
{"author":"gentleman-programming","version":"1.0"}
## When to Use Use this skill when: - Creating a GitHub issue (bug report, feature request, docs improvement, or tracked question) - Helping a contributor file an issue - Triaging or approving issues as a maintainer --- ## Critical Rules 1. **Blank issues are disabled** — MUST use the matching bug, feature, docs, or tracked-question template 2. **Every issue gets `status:needs-review` automatically** on creation 3. **`status:approved` means maintainer-accepted proportional evidence** as defined in CONTRIBUTING.md; bugs include current-main reproduction and root cause 4. **General questions go to [Discussions](https://github.com/Gentleman-Programming/engram/discussions)**; questions requiring tracked work use `type:question` --- ## Workflow ``` 1. Search for a canonical root-cause tracker; add a new occurrence there when applicable 2. Choose the correct template and report consequence plus release context, not root cause or implementation 3. Submit → issue gets status:needs-review automatically 4. A maintainer triages and assigns an investigator, who records each same-root occurrence on the canonical tracker before duplicate closure 5. Use proportional evidence: scope/checks for trivial changes; current-remote-main SHA, reproduction, violated invariant/root cause, and regression test plan for bugs; approved design/non-goals and independent review plan for high-risk changes 6. A maintainer replaces the current status with status:approved after accepting that evidence; any real assignee satisfies ownership, not necessarily the PR author ``` --- ## Issue Templates ### Bug Report Template: `.github/ISSUE_TEMPLATE/bug_report.yml` Auto-labels: `type:bug`, `status:needs-review` #### Required Fields | Field | Description | |-------|-------------| | **Existing Issue Search** | Required acknowledgement; add evidence to a canonical tracker when applicable | | **Observed Consequence** | Clear user-visible consequence, without root-cause diagnosis | | **Steps to Reproduce** | Numbered steps to reproduce | | **Expected Behavior** | What should have happened | | **Actual Behavior** | What happened instead (include errors/logs) | | **Operating System** | Dropdown: macOS, Linux variants, Windows, WSL | | **Release Version** | Report context from `engram version`; an investigator verifies current remote main | | **Agent / Client** | Dropdown: Claude Code, OpenCode, Gemini CLI, Cursor, Windsurf, Other | #### Optional Fields | Field | Description | |-------|-------------| | **Relevant Logs** | Log output (auto-formatted as code block) | | **Additional Context** | Screenshots, workarounds, extra info | #### Example — Bug Report via CLI ```bash gh issue create --template "bug_report.yml" \ --title "fix(store): duplicate observations on concurrent saves" \ --body " ### Observed Consequence When two agents save observations concurrently, duplicates are created. ### Steps to Reproduce 1. Start two engram instances pointing to the same DB 2. Both save an observation with the same title simultaneously 3. Query observations — duplicates appear ### Expected Behavior The second save should upsert, not insert a duplicate. ### Actual Behavior Two identical observations exist with different IDs. ### Operating System macOS ### Release Version 0.3.1 ### Agent / Client Claude Code ### Relevant Logs \`\`\` UNIQUE constraint failed: observations.title \`\`\` " ``` --- ### Feature Request Template: `.github/ISSUE_TEMPLATE/feature_request.yml` Auto-labels: `type:feature`, `status:needs-review` #### Required Fields | Field | Description | |-------|-------------| | **Existing Issue Search** | Required acknowledgement; add evidence to a canonical tracker when applicable | | **Observed Consequence** | User problem and impact, not an implementation proposal | | **Desired Outcome** | User outcome, not an implementation proposal | | **Affected Area** | Dropdown: CLI, MCP Server, TUI, Store, Sync, Skills, Documentation, Other | | **Release Context** | Required report context; use `not release-specific` when applicable | #### Optional Fields | Field | Description | |-------|-------------| | **Workarounds and Constraints** | User-observed workarounds or constraints, not implementation alternatives | | **Additional Context** | Mockups, examples, references | #### Example — Feature Request via CLI ```bash gh issue create --template "feature_request.yml" \ --title "feat(cli): add --json flag to mem search" \ --body " ### Observed Consequence When scripting with engram, parsing human-readable search results is fragile. ### Desired Outcome Scripts can consume search results without parsing human-readable output. ### Release Context not release-specific ### Affected Area CLI (commands, flags) ### Workarounds and Constraints Using \`jq\` to parse the current output is unreliable because the format is unstructured. " ``` --- ### Tracked Question Template: `.github/ISSUE_TEMPLATE/tracked_question.yml` Auto-labels: `type:question`, `status:needs-review` Use this form only when the answer requires maintainer investigation, a repository change, or a durable decision. Send general questions and support to Discussions. Required fields: existing-issue search acknowledgement, question, tracking reason, affected area, and release context. Additional context is optional. --- ## Label System ### Applied Automatically on Issue Creation | Template | Labels added | |----------|-------------| | Bug Report | `type:bug`, `status:needs-review` | | Feature Request | `type:feature`, `status:needs-review` | | Documentation Improvement | `type:docs`, `status:needs-review` | | Tracked Question | `type:question`, `status:needs-review` | ### Applied by Maintainers | Label | When to apply | |-------|--------------| | `status:approved` | Proportional evidence accepted; bugs include current-main reproduction and root-cause evidence | | `priority:critical` | Critical bug or urgent feature | | `priority:high` | High priority | | `priority:medium` | Important but not blocking | | `priority:low` | Nice to have | | `status:possible-duplicate` | Duplicate under evaluation | | `status:wontfix` | Closed without implementation, including confirmed duplicates | | `resolution:duplicate` | Confirmed duplicate after closure | --- ## Maintainer Approval Workflow ``` 1. Search for a canonical tracker, triage the consequence, and assign an investigator 2. For bugs, reproduce against exact current remote main and record SHA; identify the first violated repository-owned invariant 3. Cluster only same-root/contract occurrences; keep distinct roots separate 4. Accept evidence proportional to risk using CONTRIBUTING.md; a short issue explanation suffices, no separate design document by default 5. If accepted → replace the current status with status:approved; otherwise explain and close if needed 6. Require approval and a real assignee for new implementation; existing PRs must comply before merge, not before backlog-wide activation ``` --- ## Decision Tree ``` Is it a bug? → Use Bug Report template Is it a new feature/improvement? → Use Feature Request template Is it a general question? → Use Discussions, NOT issues Is it a tracked question? → Use the Tracked Question template Is it a possible duplicate? → Replace the current status with status:possible-duplicate Is it a confirmed duplicate? → Close it, replace evaluation status with status:wontfix, then add resolution:duplicate ``` --- ## Commands ```bash # Search existing issues before creating to keep canonical evidence together gh issue list --search "keyword" # Create bug report gh issue create --template "bug_report.yml" --title "fix(scope): description" # Create feature request gh issue create --template "feature_request.yml" --title "feat(scope): description" # Create documentation improvement gh issue create --template "docs_improvement.yml" --title "docs(scope): description" # Create tracked question gh issue create --template "tracked_question.yml" --title "question(scope): description" # Maintainer: approve an issue gh issue edit <number> --remove-label "status:needs-review" --add-label "status:approved" # Maintainer: add priority gh issue edit <number> --add-label "priority:high" # Maintainer: replace every active status while evaluating a possible duplicate set -euo pipefail other_statuses="$(gh issue view <number> --json labels --jq '.labels[].name | select(startswith("status:") and . != "status:possible-duplicate")')" status_args=(--add-label "status:possible-duplicate") if [[ -n "$other_statuses" ]]; then status_args+=(--remove-label "${other_statuses//$'\n'/,}") fi gh issue edit <number> "${status_args[@]}" updated_statuses="$(gh issue view <number> --json labels --jq '.labels[].name | select(startswith("status:"))')" if [[ "$updated_statuses" != "status:possible-duplicate" ]]; then echo "status replacement could not be confirmed; stop without retrying" >&2 exit 1 fi # Maintainer: close a confirmed duplicate, then replace evaluation status with terminal status and resolution gh issue close <number> --reason "not planned" --comment "Closing as duplicate of #<canonical>." gh issue edit <number> --remove-label "status:possible-duplicate" --add-label "status:wontfix,resolution:duplicate" ```
GitHub에서 보기