mcpField
R
raise-issue

raise-issue

github.com/rheinmirDevelopment10216 installsUpdated 2w ago
Repository

About raise-issue

raise-issue is a development skill for recording and handing off deferred improvements, technical debt, and architecture issues. It treats a local ledger as the source of truth, assigns an owner, and can mirror entries to a remote tracker when configured; it does not fix runtime incidents or implement issues.

Key features

  1. 01Checks the wiki for duplicate issues
  2. 02Records context and evidence from a template
  3. 03Assigns an owner and handling entry point
  4. 04Updates the local ledger and index
  5. 05Optionally mirrors to a remote tracker
  6. 06Commits the ledger without pushing

Use cases

  1. 01Logging a feature gap for later work
  2. 02Handing technical debt to a future session
  3. 03Recording architecture or process improvements

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/rheinmir/setup --skill raise-issue

After installing, type/raise-issuein Claude Code to confirm it loaded.

Details

From the project README

Skill: raise-issue

WHAT

Purpose và context
  • Purpose: ghi một ISSUE đủ bối cảnh vào ledger local (nguồn chân lý) + index, assign owner/dispatch, mirror lên tracker remote nếu có, để phiên/dev khác pull về xử lý qua /fdk hoặc /propose.
  • Trigger (when to use):
    • Phiên ĐỂ HỎI/thiết kế, phát hiện một GAP hoặc nợ nhưng CHƯA thực hiện — cần ghi lại đủ bối cảnh để phiên/dev khác kéo về làm.
    • "raise issue", "tạo issue", "mở issue cho việc này", "log gap này để sau làm", "issue để dev khác pull về".
    • Feature-gap, tech-debt, câu hỏi kiến trúc, cải tiến quy trình, Plan-B/optionality.
  • Non-goals: KHÔNG dùng cho: bug/sự cố runtime/regression đang cháy → đó là orca-issue (repro-first gate). Việc đã sẵn sàng làm ngay trong phiên → đó là propose rồi code. Không push (việc của /ship).
Ranh giới với skill khác (đọc trước khi trùng)
  • orca-issue = vòng xử lý SỰ CỐ (bug), bắt buộc tái hiện đỏ→xanh. raise-issue = ghi việc TIẾN VỀ PHÍA TRƯỚC (gap/nợ), không repro.
  • propose = plan để LÀM NGAY trong phiên này. raise-issue = HANDOFF, cố ý defer, travel được sang phiên/máy/dự án khác.
  • raise-issue chỉ GHI + ASSIGN. Không code, không sửa nhánh khác. Người nhận sau này mở bằng /fdk (nếu là framework) hoặc /propose (nếu là feature dự án).
Mental model

phân loại (bug → orca-issue) → query wiki (R7-f) → ledger draft (nguồn chân lý) → assign → dòng ISSUES.md → [mirror tracker theo hợp đồng issue-tracker.md] → commit ledger → xác nhận, dừng.

Input và output contract
FieldRequired?Ý nghĩa
Inmô tả gap/nợ + bằng chứngcóđủ để người chưa dự phiên hiểu
Inassignee (username)khôngchưa rõ thì hỏi khi mirror
Inhợp đồng llmwiki/wiki/sources/issue-tracker.mdkhôngchưa có → tạo từ mẫu local-markdown
Outllmwiki/wiki/sources/draft/DDMMYY-<slug>.mdcótheo template, có frontmatter OKF + ## Origin
Outdòng trong llmwiki/wiki/sources/ISSUES.mdcóid · tiêu đề · status · assignee · tracker
Outissue remote + URL ở cột trackerkhi có trackerbody link ngược file ledger
Outcommit ledger (không push)cóissue chỉ tồn tại khi travel theo repo
Rules và capabilities
  • RULE-01 (MUST): CHỈ ghi + assign. Tuyệt đối không code, không sửa nhánh/dự án khác — issue phải travel sạch.
  • RULE-02 (MUST): Bối cảnh đủ cho người-chưa-dự-phiên: nêu bằng chứng (report/council/ADR), không giả định trí nhớ chung.
  • RULE-03 (MUST): Query wiki trước (R7-f) để không raise trùng issue đã có.
  • RULE-04 (MUST): Mỗi issue một file + một dòng index. Không nhét nhiều issue vào một file.
  • RULE-05 (MUST): Không tự nâng status quá open/claimed — chuyển in-progress/done là việc của phiên nhận.
  • RULE-06 (MUST): Touch only what the task requires — no opportunistic changes.
  • Capabilities: đọc wiki; ghi ledger + index trong llmwiki/wiki/sources/; commit cục bộ; ghi issue lên tracker remote qua adapter khai trong hợp đồng repo.
Failure boundaries
  • Là bug/sự cố → cancelled ở skill này, chuyển orca-issue.
  • Trùng issue đã có (query R7-f) → không raise, báo issue sẵn có.
  • Không có tracker remote/CLI → succeeded hẹp ở chế độ ledger-only.
  • Đang ở nhánh chính và không được commit thẳng → commit vào nhánh issue/<DDMMYY-slug> và nói rõ.

HOW

Main workflow
StepTypeInputsActionOutputs/exitFailure/next
W01judgmentmô tảPhân loại foundation/feature-gap/tech-debt/architecture/processkindbug → dừng, orca-issue
W02deterministickind + từ khoáQuery wiki trước khi viết (R7-f)link [[...]] bối cảnhtrùng → dừng, báo issue có sẵn
W03judgmentbối cảnhViết draft theo templatefile ledger—
W04judgmentdraftAssign assignee + dispatch + entry, nêu lý dofrontmatter đủ—
W05effectdraftThêm dòng vào ISSUES.mdindexchưa có file → tạo
W06effecthợp đồng trackerMirror lên tracker remote nếu có (B01)URL ở cột trackerkhông có → ledger-only
W07effectledger + indexCommit ledger (không push)commitnhánh chính cấm → B02
W08deterministickết quảXác nhận id + đường dẫn + link + assignee, dừngbáo cáo—

Chi tiết từng bước (nguồn chân lý cho W01–W08):

  1. Phân loại issue: foundation | feature-gap | tech-debt | architecture | process. Nếu là bug → dừng, chuyển sang orca-issue.
  2. Query wiki trước khi viết (R7-f): tìm ADR/concept/draft liên quan để không trùng và để nêu bối cảnh chính xác. Ghi các link [[...]] vào phần Bối cảnh.
  3. Viết draft llmwiki/wiki/sources/draft/DDMMYY-<slug>.md theo template dưới — bối cảnh phải ĐỦ để người chưa dự phiên này pull về là hiểu ngay (vì sao issue tồn tại, bằng chứng, phạm vi, tiêu chí xong).
  4. Assign: điền assignee (người/agent chịu trách nhiệm) + dispatch (đề xuất Claude/opencode/human) + entry (mở bằng /fdk hay /propose). Nêu lý do chọn.
  5. Đăng ký vào index: thêm một dòng vào llmwiki/wiki/sources/ISSUES.md (tạo file nếu chưa có, header # Issues — ledger local).
  6. Mirror lên tracker remote (nếu có): phát hiện host + CLI (bảng trên); nếu có → tạo issue remote (body link ngược file ledger), ghi URL vào cột tracker. Không có → bỏ qua, ledger-only. Hỏi assignee (username) nếu chưa rõ.
  7. Commit ledger (GH#99): git add llmwiki/wiki/sources/draft/<DDMMYY-slug>.md llmwiki/wiki/sources/ISSUES.md && git commit -m "issue: <DDMMYY-slug> — <tiêu đề>". Ledger chỉ là nguồn chân lý khi nó travel theo repo — file untracked thì người pull về không thấy, git log --all rỗng, tức issue chưa tồn tại. Không push ở bước này (đó là việc của /ship); nếu đang ở nhánh chính và không được commit thẳng → tạo nhánh issue/<DDMMYY-slug> rồi commit vào đó và nói rõ.
  8. Xác nhận, KHÔNG thực hiện: báo lại issue id + đường dẫn ledger + link tracker + assignee. Dừng ở đây — việc thực thi là của phiên nhận.
Branches
IDKindGuardHành viSkip / failureRejoin
B01capability_optionalgit remote get-url origin + CLI tracker sẵn có (theo hợp đồng)tạo issue remote, body link ngược ledger, ghi URL cột trackerkhông có → ledger-only; chưa rõ assignee → hỏiW07
B02conditional_requiredđang ở nhánh chính và không được commit thẳngtạo nhánh issue/<DDMMYY-slug>, commit vào đó, nói rõ—W08
B03conditional_requiredchưa có llmwiki/wiki/sources/issue-tracker.mdtạo từ mẫu local-markdown; có remote GitHub → đề xuất mirror gh—W06
Validation và stopping

Hook wiki kiểm R9 (frontmatter OKF), R2 (## Origin), R5 (folder hợp lệ) khi ghi; ledger có trong git log sau W07. Dừng ở W08 — không thực thi issue.

Examples
  • Positive: "raise issue: chưa có cache cho skill-search" → kind tech-debt, query không trùng → llmwiki/wiki/sources/draft/190926-skill-search-cache.md + dòng ISSUES.md + gh issue create (body link ledger) → commit issue: 190926-skill-search-cache — … → báo id + link, dừng.
  • Boundary/failure: "tạo issue: approve bị treo trên prod" → phân loại là bug đang cháy → dừng, chuyển orca-issue (repro-first), không ghi ledger.
Reference — Nơi lưu — ledger local là NGUỒN CHÂN LÝ, tracker remote là mirror
  • Issue = một file draft: llmwiki/wiki/sources/draft/DDMMYY-<slug>.md (cùng chỗ propose, đi theo repo khi clone — travel-được, không phụ thuộc tracker ngoài). Đây luôn là nguồn chân lý.
  • Index tập trung: llmwiki/wiki/sources/ISSUES.md — một dòng/issue (id · tiêu đề · status · assignee · tracker), giống MEMORY.md. (Lưu ở sources/ chứ KHÔNG ở wiki/ root — R5 folder-structure chặn root.)
  • Mirror lên tracker remote NẾU CÓ (để hiện ở tab Issues, assign người thật, có notification): tự phát hiện theo git remote get-url origin + CLI sẵn có, mirror rồi ghi link vào cột tracker. Ledger vẫn là nguồn chân lý; tracker chỉ là bản sao để phối hợp.
Reference — Tracker — đọc HỢP ĐỒNG của repo, đừng hardcode CLI ở đây

Cách publish/fetch/label/close/claim ở repo này sống trong một file hợp đồng theo repo — llmwiki/wiki/sources/issue-tracker.md (adapter boundary). Skill này chỉ nói ý định; hợp đồng nói cách làm. Đổi tracker (thêm Jira, đổi GitLab) là sửa hợp đồng đó, KHÔNG sửa skill này. Xem [[issue-tracker]].

  • Chưa có file hợp đồng → tạo từ mẫu (mặc định local-markdown: ledger là gốc, không cần mạng); có remote GitHub → đề xuất thêm mirror gh.
  • Body issue remote PHẢI link ngược về file ledger (nguồn chân lý). Ghi URL vào cột tracker.
  • 5 nhãn chuẩn (cột labels, mặc định needs-triage): needs-triage · needs-info · ready-for-agent · ready-for-human · wontfix. Chỉ ready-for-agent mới được dispatch cho CLI headless; ready-for-human là việc phải người.
Reference — Hook wiki sẽ cắn — thoả ngay từ đầu (đỡ 3 lần bật lại)

Mọi file trong llmwiki/wiki/ phải có: (R9) YAML frontmatter OKF ở đầu (type/title/status/tags/timestamp/id) · (R2) section ## Origin truy nguồn · (R5) nằm trong folder hợp lệ (sources/draft/ cho issue, sources/ cho index). Template dưới đã gồm sẵn cả ba.

Reference — Template issue (frontmatter + thân)
---
type: issue
kind: foundation | feature-gap | tech-debt | architecture | process
title: "<một câu>"
status: open            # open | claimed | in-progress | done | wontfix
assignee: <tên/agent>   # ai chịu trách nhiệm
dispatch: <Claude | opencode:<model> | human>
entry: /fdk | /propose  # người nhận mở bằng skill nào
priority: P1 | P2 | P3
tags: [issue, <...>]    # R9 OKF
timestamp: <YYYY-MM-DD>
id: <DDMMYY-slug>
source_session: <mô tả ngắn phiên phát hiện>
---

# Issue: <tiêu đề>

## Vấn đề (một câu)
## Bối cảnh & bằng chứng   (vì sao issue tồn tại; link [[ADR]]/[[concept]]/report/council)
## Phạm vi                 (đụng file/module/dự án nào; universal hay local)
## Không thuộc phạm vi     (chống scope-creep)
## Hướng gợi ý (không bắt buộc)
## Tiêu chí HOÀN THÀNH     (kiểm chứng được)
## Assign & lý do
## Origin                  (R2 — raise bởi ai/phiên nào, nguồn bằng chứng)

Comments

Markdown supported