Appearance
AI Agent Skills
The Jubiloop monorepo includes a set of agentic development skills that automate common workflows: feature development, commits, pull requests, code review, documentation updates, and repository maintenance. Skills follow the Agent Skills open standard and work across multiple AI-powered development tools.
Setup
Skills work out of the box for basic usage (file editing, code generation). For full functionality, three external integrations are needed.
GitHub CLI (gh)
Required by: /create-pr, /update-pr, /release-notes, /review-pr
The PR creation and review skills use the GitHub CLI to interact with pull requests.
bash
# Install
brew install gh # macOS
sudo apt install gh # Ubuntu/Debian
# Authenticate
gh auth loginWhy: Skills create PRs, fetch PR diffs, and post review comments via gh pr create, gh pr view, and gh api.
Shortcut MCP
Required by: /feature-dev, /commit, /create-pr, /create-ticket, /prototype-to-cards, /expand-card, /prototype-feature, /qa-test
The Shortcut MCP connects skills to our project management tool. Skills use it to fetch ticket details, extract context for commit messages, and link PRs to stories.
Get your API token at app.shortcut.com/settings/account/api-tokens.
Claude Code setup
The easiest way is the CLI:
bash
claude mcp add shortcut --transport=stdio \
-e SHORTCUT_API_TOKEN=your-token-here \
-- npx -y @shortcut/mcp@latestOr add manually to ~/.claude.json under projects.mcpServers:
json
{
"projects": {
"mcpServers": {
"shortcut": {
"command": "npx",
"args": ["-y", "@shortcut/mcp@latest"],
"env": {
"SHORTCUT_API_TOKEN": "your-token-here"
}
}
}
}
}Cursor setup
Option A — hosted (recommended, no token required):
Add to ~/.cursor/mcp.json or <project-root>/.cursor/mcp.json:
json
{
"mcpServers": {
"shortcut": {
"url": "https://mcp.shortcut.com/mcp"
}
}
}Cursor will prompt you to authorise with Shortcut via OAuth on first use.
Option B — local via npx:
json
{
"mcpServers": {
"shortcut": {
"command": "npx",
"args": ["-y", "@shortcut/mcp@latest"],
"env": {
"SHORTCUT_API_TOKEN": "your-token-here"
}
}
}
}OpenCode setup
Add to your OpenCode MCP config:
json
{
"mcpServers": {
"shortcut": {
"command": "npx",
"args": ["-y", "@shortcut/mcp@latest"],
"env": {
"SHORTCUT_API_TOKEN": "your-token-here"
}
}
}
}Playwright MCP
Required by: /prototype-to-cards, /expand-card, /prototype-feature, /qa-test
Skills that interact with the UI prototype or run QA tests use Playwright MCP to navigate pages, take screenshots, and capture accessibility snapshots.
Claude Code setup
bash
claude mcp add playwright npx @playwright/mcp@latestOr add manually to ~/.claude.json under projects.mcpServers:
json
{
"projects": {
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
}Cursor setup
Add to ~/.cursor/mcp.json or <project-root>/.cursor/mcp.json:
json
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}OpenCode setup
Add to your OpenCode MCP config:
json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"playwright": {
"type": "local",
"command": ["npx", "@playwright/mcp@latest"],
"enabled": true
}
}
}Context7 MCP (optional)
Used by: /feature-dev
Context7 fetches up-to-date library documentation and code examples. Useful when working with AdonisJS, Better Auth, TanStack, and other project dependencies.
Claude Code setup
bash
claude mcp add context7 --transport=stdio \
-- npx -y @context7/mcp@latestCompatibility
Skills are discovered and invoked differently depending on which tool you use.
| Feature | Claude Code | OpenCode | Cursor |
|---|---|---|---|
Discovers .claude/skills/ | Yes (native) | Yes (native) | Yes (compat layer) |
/skill-name invocation | Yes | Via .opencode/commands/ wrapper | Yes (native) |
disable-model-invocation | Honored | Ignored (own permission model) | Honored |
allowed-tools pre-approval | Honored | Ignored | Ignored |
| Auto-invocation by description | Yes | Yes | Yes |
OpenCode note: OpenCode discovers skills from .claude/skills/ but requires command wrappers in .opencode/commands/ for /skill-name invocation. These wrappers exist for all skills in this repo.
Cursor note: Cursor discovers skills from .claude/skills/ natively (compatibility layer). No additional configuration needed. The allowed-tools frontmatter field is silently ignored; tool permissions follow Cursor's own model.
Skills Registry
Development
| Skill | When to Use |
|---|---|
/feature-dev | Starting a new feature or working on a Shortcut ticket. Orchestrates the full workflow: requirements, codebase exploration, solution design, implementation with review loops. |
/commit | Ready to commit staged or unstaged changes. Analyzes the diff, extracts the ticket ID from the branch name, and drafts a commit message following project conventions. Always confirms before committing. |
/create-ticket | Creating a single Shortcut ticket from a description. Drafts the ticket using the project template, interviews about epic assignment with live Shortcut data, and creates after confirmation. |
/prototype-feature | Building a new UI feature in the prototype app (apps/ui-prototype). Takes a description or Shortcut ticket, implements the page/component with mock data, and screenshots the result. Use when a card has the wireframe-needed label. |
/prototype-to-cards | Generating Shortcut tickets from an existing prototype feature. Navigates the prototype via Playwright, screenshots key UI states, and drafts well-scoped cards using the project ticket template. |
/expand-card | Expanding a high-level placeholder card (HLC) into 3-8 detailed, PR-review-sized Shortcut stories. Takes an HLC reference or Shortcut story ID, reads its Expansion Prompt, checks the codebase, and generates well-scoped implementation cards. |
Quality & Review
| Skill | When to Use |
|---|---|
/review-pr | Reviewing a pull request for bugs, architectural violations, and convention adherence. Works locally or from GitHub Actions. |
/qa-test | Pre-PR QA testing. Analyzes the branch diff, generates a test plan, executes via Playwright MCP with screenshots, and produces a pass/fail report. Use --for-pr to format results for PR descriptions. |
Repository Management
| Skill | When to Use |
|---|---|
/create-pr | Opening a pull request. Analyzes the git diff, fetches the Shortcut ticket, and drafts a PR description using the project template. |
/update-pr | Updating an existing PR description after new commits are pushed. Fetches the current description, identifies what changed, and proposes updates for confirmation. |
/release-notes | Cutting a release to QA or production. Creates a develop→qa or qa→main PR with structured release notes grouped by app, CalVer versioning, and a deployment checklist. A GitHub Action auto-tags the release on merge. |
/clean-branches | Cleaning up local git branches that have been deleted on the remote. Also removes associated worktrees. |
/update-docs | Documentation seems stale or a feature was just shipped. Scans code changes against existing docs and proposes updates. |
Tooling
| Skill | When to Use |
|---|---|
/manage-skill | Creating a new skill or updating an existing one. Routes to /create-skill or /update-skill based on intent. |
/create-skill | Scaffolding a brand new skill from scratch. Generates SKILL.md, reference files, OpenCode wrapper, validates, and updates this registry. |
/update-skill | Modifying an existing skill. Reads the current state, applies changes, validates, and updates the registry. |
/audit-skills | Auditing skills for redundant MCP calls, stale lookups, and optimization opportunities. Identifies static values being fetched dynamically and proposes reference file updates. |
All skill definitions live in .claude/skills/<skill-name>/SKILL.md in the repo root. For pre-step and post-step guidance for each skill, see the Available Skills tables in the root AGENTS.md.
Typical Workflow
A feature development cycle using skills:
- Start the feature:
/feature-dev sc-123or/feature-dev add budget tracking to events - During development: The feature-dev skill handles implementation, review loops, and commits internally
- After feature-dev completes: Review the summary and notes
- Check documentation:
/update-docsto scan for stale or missing docs - Open the PR:
/create-prto create a pull request with auto-populated description - Review someone else's PR:
/review-pr 85to review PR #85
Not every step requires a skill. For small changes (typo fix, config tweak), just make the change and use /commit directly.
Creating and Updating Skills
Use /manage-skill to create new skills or update existing ones:
/manage-skill # asks what you want to do
/manage-skill add deploy staging # creates a new deploy-staging skill
/manage-skill update feature-dev # updates the existing feature-dev skillThe manage-skill workflow includes a validation step that checks structural validity, cross-references, tool completeness, and compatibility with other skills.
New skills are created in .claude/skills/<skill-name>/ with an optional OpenCode wrapper in .opencode/commands/. The skills registry in this document is updated as the last step.
Directory Structure
.claude/skills/ # All skills (committed to repo)
<skill-name>/
SKILL.md # Main skill file (required)
references/ # Detailed docs loaded on demand
writing-style.md # Prose style rules (if skill produces text)
<topic>.md # Other reference material
.opencode/commands/ # OpenCode command wrappers
<skill-name>.md # Delegates to .claude/skills/<skill-name>/SKILL.md
.claude/references/ # Shared references (not skill-specific)
writing-style.md # Universal writing style guideSkills follow the Agent Skills specification. The frontmatter fields (name, description, disable-model-invocation, allowed-tools) control discovery and invocation behavior.