GitHub Issue Triage
Overview
Issues are the ingress surface of federation chaos. An unlabeled issue in the
wrong repo is entropy. This skill compresses that entropy into structure —
classify, route, label, draft — without closing or assigning without sovereign
ack.
This skill is the governance workflow for triaging. The OpenCode-scope
skill github-issues is the monitoring shell that polls the federation
with gh issue list. Use this skill to act on what github-issues reports.
When to Use
Before using this skill on any mutating, irreversible, or high-blast-radius task:
- ART — Attune (what is the real task?), Recognize (what class of power?), Test (fit · authority · evidence · blast · reversible).
- Kernel — Route to arifOS for F1–F13 judgment if action class is Maker/Messenger/Mutator/Destroyer/Sovereign.
- ACT — Apply narrow, Constrain scope, Trace witness, STOP before corruption.
- Receipt — Leave evidence of what changed, why, and under whose authority.
Issues are the ingress surface of federation chaos. An unlabeled issue in the
wrong repo is entropy. This skill compresses that entropy into structure.
When to Use
- New issue opened with no labels
- Issue appears to be in the wrong repo
- Issue references multiple federation organs
- Agent needs to understand if issue is duplicate, spam, or valid
When NOT to Use
- Do NOT use if issue requires immediate code fix — escalate to A-FORGE engineer
- Do NOT use if issue reports secret exposure — escalate to secret-safety-scan
- Do NOT use if issue is a constitutional violation — escalate to 888_JUDGE
Inputs
| Input |
Required |
Description |
| issue_url |
yes |
Full GitHub issue URL |
| repo_context |
yes |
Which repo the issue lives in |
| existing_labels |
no |
Current labels on the issue |
Procedure
Step 1: Read & Classify
Read the issue title and body. Classify into exactly one bucket:
bug — something is broken
feature — new capability requested
docs — documentation incorrect or missing
question — user needs clarification
routing-error — issue filed in wrong repo
duplicate — identical to existing issue
spam/void — noise, not actionable
Step 2: Authority & Routing Check
Use the canonical repo map:
| Keyword / Domain |
Correct Repo |
| F1–F13, constitutional, floors, vault, judge |
ariffazil/arifos |
| agent engine, build, orchestration, TypeScript |
ariffazil/A-FORGE |
| petrophysics, well logs, seismic, earth |
ariffazil/geox |
| finance, capital, portfolio, NPV, risk |
ariffazil/wealth |
| vitality, metabolic, WELL, health |
ariffazil/well |
| control plane, AAA, routing, skills |
ariffazil/AAA |
| website, static, arif-fazil.com |
ariffazil/arif-sites |
If issue is in wrong repo:
- Draft a polite comment: "Thanks for filing. This belongs in [correct-repo] because [reason]."
- Apply
routing-error label.
- Do NOT close. Let sovereign or repo owner transfer it.
Step 3: Duplicate Detection
Search open issues in target repo for similar titles. If duplicate found:
- Draft comment: "This appears to be a duplicate of #XXX. Closing as duplicate is gated — please confirm."
- Do NOT close without Arif ack.
Step 4: Label & Respond
Apply labels based on classification:
bug, feature, docs, question, routing-error, duplicate
- Add organ label if cross-organ:
organ:arifos, organ:geox, etc.
- Add risk tier if obvious:
risk:low, risk:medium, risk:high
Draft response comment:
- Acknowledge the issue
- State classification
- State routing (if applicable)
- State next step (e.g., "Awaiting sovereign review for priority")
- NEVER promise a fix timeline
- NEVER assign to Arif without his explicit ack
Step 5: Evidence Log
Append a line to your internal reasoning trace:
[ISSUE-TRIAGE] <issue-url> | <classification> | <routing> | <labels-applied>
Forbidden Actions
- NEVER close an issue without documenting why and waiting for ack
- NEVER assign to Arif without his explicit ack
- NEVER write "I will fix this" — only "Routed to X organ for evaluation"
- NEVER apply
wontfix or invalid without 888_JUDGE
- NEVER delete issue comments
Output Format
## Issue Triage Result
- **Issue:** <url>
- **Classification:** <bucket>
- **Routing:** <same-repo | target-repo>
- **Labels Applied:** <list>
- **Duplicate Of:** <issue-number-or-none>
- **Response Drafted:** <yes/no>
- **Escalation Required:** <none | 888_JUDGE | secret-safety-scan | A-FORGE>
1---2name: forge-issue-triage3description: Governed triage workflow for GitHub issues across the arifOS federation Use this skill whenever a new issue is opened, an issue lacks labels, or an agent needs to determine if it belongs in a different repo or federation organ. This skill classifies, routes, labels, and drafts responses — but never closes, never assigns to Arif, and never promises code fixes without sovereign approval.4---56# GitHub Issue Triage78## Overview910Issues are the ingress surface of federation chaos. An unlabeled issue in the11wrong repo is entropy. This skill compresses that entropy into structure —12classify, route, label, draft — without closing or assigning without sovereign13ack.1415This skill is the **governance workflow** for triaging. The OpenCode-scope16skill `github-issues` is the **monitoring shell** that polls the federation17with `gh issue list`. Use this skill to act on what `github-issues` reports.1819## When to Use2021Before using this skill on any mutating, irreversible, or high-blast-radius task:221. **ART** — Attune (what is the real task?), Recognize (what class of power?), Test (fit · authority · evidence · blast · reversible).232. **Kernel** — Route to arifOS for F1–F13 judgment if action class is Maker/Messenger/Mutator/Destroyer/Sovereign.243. **ACT** — Apply narrow, Constrain scope, Trace witness, STOP before corruption.254. **Receipt** — Leave evidence of what changed, why, and under whose authority.262728Issues are the ingress surface of federation chaos. An unlabeled issue in the29wrong repo is entropy. This skill compresses that entropy into structure.3031## When to Use3233- New issue opened with no labels34- Issue appears to be in the wrong repo35- Issue references multiple federation organs36- Agent needs to understand if issue is duplicate, spam, or valid3738## When NOT to Use3940- Do NOT use if issue requires immediate code fix — escalate to A-FORGE engineer41- Do NOT use if issue reports secret exposure — escalate to secret-safety-scan42- Do NOT use if issue is a constitutional violation — escalate to 888_JUDGE4344## Inputs4546| Input | Required | Description |47|-------|----------|-------------|48| issue_url | yes | Full GitHub issue URL |49| repo_context | yes | Which repo the issue lives in |50| existing_labels | no | Current labels on the issue |5152## Procedure5354### Step 1: Read & Classify5556Read the issue title and body. Classify into exactly one bucket:5758- `bug` — something is broken59- `feature` — new capability requested60- `docs` — documentation incorrect or missing61- `question` — user needs clarification62- `routing-error` — issue filed in wrong repo63- `duplicate` — identical to existing issue64- `spam/void` — noise, not actionable6566### Step 2: Authority & Routing Check6768Use the canonical repo map:6970| Keyword / Domain | Correct Repo |71|------------------|--------------|72| F1–F13, constitutional, floors, vault, judge | ariffazil/arifos |73| agent engine, build, orchestration, TypeScript | ariffazil/A-FORGE |74| petrophysics, well logs, seismic, earth | ariffazil/geox |75| finance, capital, portfolio, NPV, risk | ariffazil/wealth |76| vitality, metabolic, WELL, health | ariffazil/well |77| control plane, AAA, routing, skills | ariffazil/AAA |78| website, static, arif-fazil.com | ariffazil/arif-sites |7980If issue is in wrong repo:81- Draft a polite comment: "Thanks for filing. This belongs in [correct-repo] because [reason]."82- Apply `routing-error` label.83- Do NOT close. Let sovereign or repo owner transfer it.8485### Step 3: Duplicate Detection8687Search open issues in target repo for similar titles. If duplicate found:88- Draft comment: "This appears to be a duplicate of #XXX. Closing as duplicate is gated — please confirm."89- Do NOT close without Arif ack.9091### Step 4: Label & Respond9293Apply labels based on classification:94- `bug`, `feature`, `docs`, `question`, `routing-error`, `duplicate`95- Add organ label if cross-organ: `organ:arifos`, `organ:geox`, etc.96- Add risk tier if obvious: `risk:low`, `risk:medium`, `risk:high`9798Draft response comment:99- Acknowledge the issue100- State classification101- State routing (if applicable)102- State next step (e.g., "Awaiting sovereign review for priority")103- NEVER promise a fix timeline104- NEVER assign to Arif without his explicit ack105106### Step 5: Evidence Log107108Append a line to your internal reasoning trace:109```110[ISSUE-TRIAGE] <issue-url> | <classification> | <routing> | <labels-applied>111```112113## Forbidden Actions114115- **NEVER** close an issue without documenting why and waiting for ack116- **NEVER** assign to Arif without his explicit ack117- **NEVER** write "I will fix this" — only "Routed to X organ for evaluation"118- **NEVER** apply `wontfix` or `invalid` without 888_JUDGE119- **NEVER** delete issue comments120121## Output Format122123```markdown124## Issue Triage Result125126- **Issue:** <url>127- **Classification:** <bucket>128- **Routing:** <same-repo | target-repo>129- **Labels Applied:** <list>130- **Duplicate Of:** <issue-number-or-none>131- **Response Drafted:** <yes/no>132- **Escalation Required:** <none | 888_JUDGE | secret-safety-scan | A-FORGE>133```