gh-relatelisted
Install: claude install-skill fadymondy/gh-pms
# gh-relate
Encode a relationship between two issues so both ends see it.
## Supported relationship kinds
| Kind | Body section on source | Reverse section on target | Special behavior |
|---|---|---|---|
| `depends_on` | `## Depends on` | `## Blocks` | source can't go to in-progress until all deps closed |
| `blocks` | `## Blocks` | `## Depends on` | inverse of depends_on |
| `related_to` | `## Related to` | `## Related to` | bidirectional, no semantic constraint |
| `duplicate_of` | `## Duplicate of` | `## Has duplicates` | source is auto-closed with reason "not planned" |
## Usage
User says: `#42 depends on #38 #39` → run:
```bash
${CLAUDE_PLUGIN_ROOT}/lib/ghcall.sh issue-relate 42 "Depends on" "#38"
${CLAUDE_PLUGIN_ROOT}/lib/ghcall.sh issue-relate 42 "Depends on" "#39"
${CLAUDE_PLUGIN_ROOT}/lib/ghcall.sh issue-relate 38 "Blocks" "#42"
${CLAUDE_PLUGIN_ROOT}/lib/ghcall.sh issue-relate 39 "Blocks" "#42"
```
User says: `#100 is a duplicate of #87` → run:
```bash
${CLAUDE_PLUGIN_ROOT}/lib/ghcall.sh duplicate-of 100 "#87"
```
(This appends `## Duplicate of` on #100, comments on #87, and closes #100 with `not planned` reason.)
## What it does
1. For each `(source, kind, target)` triple:
- Append the link to source's body under the right section (creates the section if absent)
- Append the inverse link on target's body
- Post a one-line comment on each side: `🔗 {kind} {target}` so the timeline shows it natively
2. For `duplicate_of`, additionally close the sourc