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---2id: github-issue-triage3name: forge-issue-triage4autonomy_tier: T15version: 1.1.06description: 'Governed triage workflow for GitHub issues across the arifOS federation7 Use this skill whenever a new issue is opened, an issue lacks labels, or an agent8 needs to determine if it belongs in a different repo or federation organ.9 This skill classifies, routes, labels, and drafts responses — but never closes,10 never assigns to Arif, and never promises code fixes without sovereign approval.'11owner: AAA12risk_tier: medium13knowledge_basis:14 language: true15 math: false16 physics: false17host_compatibility:18- claude-code19- codex20- opencode21- kimi22- kimi-code23dependencies:24 servers:25 - a-forge26 tools:27 - forge_github_search28 - forge_github_pr29 - forge_filesystem_read30examples:31- New issue opened in ariffazil/arifos with no labels — triage it32- Issue about GEOX well logs filed in AAA repo — route it correctly33- Detect duplicate of an existing issue and link them34tests:35- Correctly classify a bug report vs feature request vs question36- Route a constitutional floor issue to arifOS, not A-FORGE37- Detect duplicate issue and draft linking comment without closing38- Never apply `wontfix` or `invalid` without 888_JUDGE seal39version_lock:40 schema_version: '1'41 artifact_hash: pending42orthogonal_tags:43 trinitarian:44 - Ω45 - Δ46 - ΦΙ47 functional:48 - Ops49 layer: CODING/FI50 autonomy_tier: T151floor_scope:52- F153- F254- F455- F656- F1157- F1358canonical_siblings:59- github-issues # OpenCode-scope: monitoring shell (gh CLI)60- github-pr-review # post-triage, when issue graduates to PR61- github-ci-diagnose # if issue reports CI failure62- secret-safety-scan # if issue smells like secret exposure63capability_tier: fed-agent-subagent64ecology_state: WARM65---6667# GitHub Issue Triage6869## Overview7071Issues are the ingress surface of federation chaos. An unlabeled issue in the72wrong repo is entropy. This skill compresses that entropy into structure —73classify, route, label, draft — without closing or assigning without sovereign74ack.7576This skill is the **governance workflow** for triaging. The OpenCode-scope77skill `github-issues` is the **monitoring shell** that polls the federation78with `gh issue list`. Use this skill to act on what `github-issues` reports.7980## When to Use8182Before using this skill on any mutating, irreversible, or high-blast-radius task:831. **ART** — Attune (what is the real task?), Recognize (what class of power?), Test (fit · authority · evidence · blast · reversible).842. **Kernel** — Route to arifOS for F1–F13 judgment if action class is Maker/Messenger/Mutator/Destroyer/Sovereign.853. **ACT** — Apply narrow, Constrain scope, Trace witness, STOP before corruption.864. **Receipt** — Leave evidence of what changed, why, and under whose authority.878889Issues are the ingress surface of federation chaos. An unlabeled issue in the90wrong repo is entropy. This skill compresses that entropy into structure.9192## When to Use9394- New issue opened with no labels95- Issue appears to be in the wrong repo96- Issue references multiple federation organs97- Agent needs to understand if issue is duplicate, spam, or valid9899## When NOT to Use100101- Do NOT use if issue requires immediate code fix — escalate to A-FORGE engineer102- Do NOT use if issue reports secret exposure — escalate to secret-safety-scan103- Do NOT use if issue is a constitutional violation — escalate to 888_JUDGE104105## Inputs106107| Input | Required | Description |108|-------|----------|-------------|109| issue_url | yes | Full GitHub issue URL |110| repo_context | yes | Which repo the issue lives in |111| existing_labels | no | Current labels on the issue |112113## Procedure114115### Step 1: Read & Classify116117Read the issue title and body. Classify into exactly one bucket:118119- `bug` — something is broken120- `feature` — new capability requested121- `docs` — documentation incorrect or missing122- `question` — user needs clarification123- `routing-error` — issue filed in wrong repo124- `duplicate` — identical to existing issue125- `spam/void` — noise, not actionable126127### Step 2: Authority & Routing Check128129Use the canonical repo map:130131| Keyword / Domain | Correct Repo |132|------------------|--------------|133| F1–F13, constitutional, floors, vault, judge | ariffazil/arifos |134| agent engine, build, orchestration, TypeScript | ariffazil/A-FORGE |135| petrophysics, well logs, seismic, earth | ariffazil/geox |136| finance, capital, portfolio, NPV, risk | ariffazil/wealth |137| vitality, metabolic, WELL, health | ariffazil/well |138| control plane, AAA, routing, skills | ariffazil/AAA |139| website, static, arif-fazil.com | ariffazil/arif-sites |140141If issue is in wrong repo:142- Draft a polite comment: "Thanks for filing. This belongs in [correct-repo] because [reason]."143- Apply `routing-error` label.144- Do NOT close. Let sovereign or repo owner transfer it.145146### Step 3: Duplicate Detection147148Search open issues in target repo for similar titles. If duplicate found:149- Draft comment: "This appears to be a duplicate of #XXX. Closing as duplicate is gated — please confirm."150- Do NOT close without Arif ack.151152### Step 4: Label & Respond153154Apply labels based on classification:155- `bug`, `feature`, `docs`, `question`, `routing-error`, `duplicate`156- Add organ label if cross-organ: `organ:arifos`, `organ:geox`, etc.157- Add risk tier if obvious: `risk:low`, `risk:medium`, `risk:high`158159Draft response comment:160- Acknowledge the issue161- State classification162- State routing (if applicable)163- State next step (e.g., "Awaiting sovereign review for priority")164- NEVER promise a fix timeline165- NEVER assign to Arif without his explicit ack166167### Step 5: Evidence Log168169Append a line to your internal reasoning trace:170```171[ISSUE-TRIAGE] <issue-url> | <classification> | <routing> | <labels-applied>172```173174## Forbidden Actions175176- **NEVER** close an issue without documenting why and waiting for ack177- **NEVER** assign to Arif without his explicit ack178- **NEVER** write "I will fix this" — only "Routed to X organ for evaluation"179- **NEVER** apply `wontfix` or `invalid` without 888_JUDGE180- **NEVER** delete issue comments181182## Output Format183184```markdown185## Issue Triage Result186187- **Issue:** <url>188- **Classification:** <bucket>189- **Routing:** <same-repo | target-repo>190- **Labels Applied:** <list>191- **Duplicate Of:** <issue-number-or-none>192- **Response Drafted:** <yes/no>193- **Escalation Required:** <none | 888_JUDGE | secret-safety-scan | A-FORGE>194```