Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 18 additions & 15 deletions content/global-team/jinx/commands.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,27 +31,30 @@ These commands return the information directly. No GitHub issues are created.
| `/jinx translate status` | Translation coverage across languages |
| `/jinx translate validate [lang]` | Check translation placeholders |
| `/jinx chapter-health` | Check chapter activity health |
| `/jinx validate-directory` | Validate directory entries in a PR |
| `/jinx blog-check-links` | Check all blog URLs for broken links |

## Action commands

These commands perform an action (create an issue, send an invite, post an announcement) and reply with a link to what was created.

| Command | What it does |
| --------------------------------------- | ------------------------------------------------------------- |
| `/jinx invite @user to <team>` | Invite a user to the org and a team, creates onboarding issue |
| `/jinx offboard @user from <team>` | Start offboarding, creates tracking issue |
| `/jinx chapter-setup <city> <country>` | Create a chapter setup checklist issue |
| `/jinx chapter-update <city> <country>` | Create a chapter update issue |
| `/jinx blog-add <url>` | Auto-create a blog entry from a URL |
| `/jinx cfp add <conf> <deadline> <url>` | Track a new call for proposals |
| `/jinx cfp recommend <conf> @speaker` | Recommend a speaker for a conference |
| `/jinx contributors update [repo]` | Update the contributors list via PR |
| `/jinx events sync` | Sync and publish the chapter event summary |
| `/jinx announce <post-url>` | Announce a blog post on social media |
| `/jinx remind stale` | Nudge stale onboarding/offboarding issues, report links |
| `/jinx slack-invite <email>` | Post a Slack invite request for an organiser to action |
| Command | What it does |
| --------------------------------------- | -------------------------------------------------------------------------------- |
| `/jinx invite @user to <team>` | Invite a user to the org and a team, creates onboarding issue |
| `/jinx offboard @user from <team>` | Start offboarding, creates tracking issue |
| `/jinx chapter-setup <city> <country>` | Create a chapter setup checklist issue |
| `/jinx chapter-update <city> <country>` | Create a chapter update issue |
| `/jinx blog-add <url>` | Auto-create a blog entry from a URL |
| `/jinx cfp add <conf> <deadline> <url>` | Track a new call for proposals |
| `/jinx cfp recommend <conf> @speaker` | Recommend a speaker for a conference |
| `/jinx contributors update [repo]` | Update the contributors list via PR |
| `/jinx events sync` | Sync and publish the chapter event summary |
| `/jinx announce <post-url>` | Announce a blog post on social media |
| `/jinx remind stale` | Nudge stale onboarding/offboarding issues, report links |
| `/jinx slack-invite <email>` | Post a Slack invite request for an organiser to action |
| `/jinx review <gate> <pr>` | Summon a Copilot content review on a PR (gate: brand, blog, social, translation) |
| `/jinx copilot-sync <owner/repo>` | Sync the grimoire review gates into a repo's Copilot instructions (PR) |

The `review` and `copilot-sync` commands drive [Copilot content reviews]({{< relref "for-developers#copilot-content-reviews" >}}) -- a pre-human review gate that flags brand, blog, social, and translation issues but never approves, merges, or publishes.

## Slack-only commands

Expand Down
37 changes: 37 additions & 0 deletions content/global-team/jinx/for-developers.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,43 @@ The jinx repo runs several checks on pull requests:

If Jinx is not yet installed on the repo, ping someone with org-admin access.

## Copilot content reviews

Jinx can hand a content review to **GitHub Copilot**, guided by the four review gates in [rladies/grimoire](https://github.com/rladies/grimoire) -- brand, blog, social, and translation.
Grimoire is a set of Claude Agent Skills, and Copilot only reads its own instruction files, so Jinx bridges the two.
Turning it on for a repo is two steps.

1. **Sync the gates into the repo.** Run `/jinx copilot-sync <owner/repo>`. It opens a PR that adds `.github/copilot-instructions.md` and path-scoped `.github/instructions/*.instructions.md` so Copilot's review speaks the RLadies+ brand and voice. Re-run it whenever grimoire changes.
2. **Wire the reusable workflow** so Copilot reviews every content PR. It needs `pull-requests: write` on top of the usual `contents: read` / `packages: read`:

```yaml
# .github/workflows/jinx-copilot-review.yml
name: Copilot review
on:
pull_request:
types: [opened, ready_for_review, synchronize]
paths:
- "content/**"
permissions:
contents: read
packages: read
pull-requests: write
jobs:
copilot-review:
uses: rladies/jinx/.github/workflows/reusable-copilot-review.yml@main
secrets: inherit
```

On demand, an organiser can also summon a review from Slack or a GitHub comment, naming the gate and the PR:

```
/jinx review blog rladies/rladies.github.io#42
```

Copilot posts its findings on the PR as a tiered Blockers / Warnings / Nits punch list.
It is a _pre-human_ review gate -- it flags issues for a human to act on, and never approves, merges, or publishes.
Copilot code review must be enabled on the org, and Jinx's GitHub App needs Pull Requests read & write (it already has this).

## The jinx R package

The command logic lives in the [`jinx` R package](https://rladies.github.io/jinx/).
Expand Down
Loading