This skill should be used when posting to GitHub — creating issues, PR comments, PR reviews, or issue comments. Provides the signature format, project SHA retrieval pattern, and safe numbering conventions. Required for every GitHub post from a Forge agent or interactive session.
From forgenpx claudepluginhub flox/forge-plugin --plugin forgeThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
Any Claude Code session running with the Forge plugin that posts content externally (GitHub issues/PRs, etc.) must include a signature footer that provides traceability back to the project commit used to generate the content.
This applies to:
---
*Via Forge ({agent_name}) • {commit_sha}*
---
*Via Forge (code-reviewer) • a3f2c1b*
---
*Via Forge (implementation-worker) • 1d2891e*
---
*Via Forge (interactive) • bc4ca11*
Concise: 35-45 characters typical length Professional: Italic footer matches existing GitHub patterns Unobtrusive: Separator line provides visual boundary Traceable: Short SHA (7 chars) links to specific project context
Use this bash pattern to retrieve the project commit SHA:
PROJECT_SHA=$(cd "${CLAUDE_PLUGIN_ROOT}/.." 2>/dev/null && \
git rev-parse --short HEAD 2>/dev/null || echo "unknown")
How it works:
$CLAUDE_PLUGIN_ROOT points to the plugin directorygit rev-parse --short HEAD to get the commit SHACRITICAL: Variables must be expanded by the shell, not written literally. In bash, quoting a heredoc delimiter suppresses variable expansion.
# WRONG — variables not expanded:
gh pr comment 123 --body "$(cat <<'EOF'
*Via Forge (interactive) • $PROJECT_SHA*
EOF
)"
# CORRECT — variables are expanded (unquoted delimiter):
PROJECT_SHA=$(cd "${CLAUDE_PLUGIN_ROOT}/.." && \
git rev-parse --short HEAD 2>/dev/null || echo "unknown")
gh pr comment 123 --body "$(cat <<EOF
Comment content here.
---
*Via Forge (interactive) • ${PROJECT_SHA}*
EOF
)"
PROJECT_SHA=$(cd "${CLAUDE_PLUGIN_ROOT}/.." && \
git rev-parse --short HEAD 2>/dev/null || echo "unknown")
gh issue create --repo owner/repo \
--title "Issue title" \
--body "$(cat <<EOF
Issue content here.
---
*Via Forge (ticket-creator) • ${PROJECT_SHA}*
EOF
)"
PROJECT_SHA=$(cd "${CLAUDE_PLUGIN_ROOT}/.." && \
git rev-parse --short HEAD 2>/dev/null || echo "unknown")
gh pr comment 123 --body "$(cat <<EOF
Comment content here.
---
*Via Forge (implementation-worker) • ${PROJECT_SHA}*
EOF
)"
Use these agent identifiers in signatures:
| Agent Name | Usage |
|---|---|
interactive | Interactive sessions posting to GitHub |
ticket-creator | Creating GitHub issues |
pr-discussion-processor | Replying to PR discussions |
implementation-worker | PR self-review comments |
code-reviewer | Code review comments |
When to use "interactive":
Any Claude Code session with Forge posting to GitHub:
When creating numbered lists in posts that are later
referenced in a summary, use item words not #N notation
to avoid GitHub auto-linking to issues.
❌ Bad: "Must fix: #1, #2" (GitHub links to issues 1 and 2)
✅ Good: "Must fix: Items 1, 2"
See the github-posting guidelines in your documentation for complete patterns.