From ac-tools
Creates GitHub issues in WaterplanAI/agentic-config repo for bugs and feature requests using GitHub CLI. Handles templates, explicit args, or extracts from conversation context. Invoke via /ac-issue.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ac-tools:ac-issueThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creates GitHub issues in the central agentic-config repository (WaterplanAI/agentic-config) for bug reports and feature requests.
Creates GitHub issues in the central agentic-config repository (WaterplanAI/agentic-config) for bug reports and feature requests.
/ac-issue # Context-based: extract from conversation
/ac-issue "Title" "Description" # Explicit: user provides details
/ac-issue --bug "Title" # Bug report with template
/ac-issue --feature "Title" # Feature request with template
Target Repository: WaterplanAI/agentic-config
INSTRUCTION: Verify GitHub CLI authentication before any other operation.
# Check if gh CLI is installed
if ! command -v gh &>/dev/null; then
echo "ERROR: GitHub CLI (gh) not found"
echo ""
echo "Please install GitHub CLI: https://cli.github.com/"
exit 1
fi
echo "Checking GitHub CLI authentication..."
GH_AUTH_OUTPUT=$(gh auth status 2>&1)
GH_AUTH_STATUS=$?
if [ $GH_AUTH_STATUS -ne 0 ]; then
echo "ERROR: GitHub CLI not authenticated"
echo ""
echo "$GH_AUTH_OUTPUT"
echo ""
echo "Please authenticate with: gh auth login"
exit 1
fi
echo "$GH_AUTH_OUTPUT"
echo ""
echo "Authentication verified."
Validation Logic:
gh auth status and capture exit codegh auth login instructionINSTRUCTION: Parse arguments to determine input mode.
Arguments: $ARGUMENTS
Mode Detection Logic:
| Input Pattern | Mode | Action |
|---|---|---|
| Empty/no args | Context Mode | Extract from recent conversation |
--bug "Title" | Bug Template | Use bug report template with provided title |
--feature "Title" | Feature Template | Use feature request template with provided title |
"Title" "Description" | Explicit Mode | Use provided title and description |
"Title" only | Explicit Mode | Use title, prompt for description |
Parsing Examples:
$ARGUMENTS = "" -> Context Mode
$ARGUMENTS = "--bug \"Auth fails\"" -> Bug Template, title="Auth fails"
$ARGUMENTS = "--feature \"Add X\"" -> Feature Template, title="Add X"
$ARGUMENTS = "\"Title\" \"Body text\"" -> Explicit, title="Title", body="Body text"
INSTRUCTION: If no arguments provided, analyze recent conversation for issue details.
Context Extraction Heuristics:
Search recent messages for error patterns:
Error:, ERROR:, Exception:, failed, unexpectedat , File ", traceback patternsexit code, returned non-zeroExtract reproduction context:
Identify expected vs actual behavior:
If Context Found:
If No Context Found:
No issue context detected in recent conversation.
Please provide issue details:
/ac-issue "Title" "Description"
Or specify type:
/ac-issue --bug "Brief description of the bug"
/ac-issue --feature "Brief description of the feature"
INSTRUCTION: Gather safe environment information for issue context.
# Collect environment info (sanitized)
ENV_OS=$(uname -s 2>/dev/null || echo "Unknown")
ENV_OS_VERSION=$(uname -r 2>/dev/null || echo "Unknown")
ENV_SHELL=$(basename "$SHELL" 2>/dev/null || echo "Unknown")
ENV_GIT_VERSION=$(git --version 2>/dev/null | cut -d' ' -f3 || echo "Unknown")
ENV_BRANCH=$(git branch --show-current 2>/dev/null || echo "N/A")
# Get agentic-config version from plugin.json
if [ -d "${CLAUDE_PLUGIN_ROOT}" ]; then
# Read version from plugin.json if available
ENV_AGENTIC_VERSION=$(python3 -c "import json; print(json.load(open('${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json'))['version'])" 2>/dev/null || echo "Unknown")
else
ENV_AGENTIC_VERSION="Unknown"
fi
echo "Environment collected:"
echo " OS: $ENV_OS $ENV_OS_VERSION"
echo " Shell: $ENV_SHELL"
echo " Git: $ENV_GIT_VERSION"
echo " Branch: $ENV_BRANCH"
echo " agentic-config: $ENV_AGENTIC_VERSION"
Information to EXCLUDE (Privacy/Security):
~)ghp_, sk-, AKIA, 32+ char alphanumeric).env filesINSTRUCTION: Sanitize any user-provided or extracted content before including in issue.
Sanitization Rules:
Path Anonymization:
# Replace home directory with ~
sanitized="${content//$HOME/\~}"
# Replace common user path patterns
sanitized=$(echo "$sanitized" | sed -E 's|/Users/[^/]+|~|g; s|/home/[^/]+|~|g')
Secret Detection:
[A-Za-z0-9_-]{32,}ghp_, gho_, sk-, AKIA, Bearer [REDACTED] and warn userWarning on Detection:
WARNING: Potential sensitive data detected and redacted.
Please review the preview carefully before submitting.
INSTRUCTION: Format the issue body with structured sections.
Bug Report Template (when --bug flag used):
## Bug Description
<user-provided or context-extracted description>
## Environment
- OS: <ENV_OS> <ENV_OS_VERSION>
- Shell: <ENV_SHELL>
- Git: <ENV_GIT_VERSION>
- agentic-config: <ENV_AGENTIC_VERSION>
## Steps to Reproduce
<if available from context, otherwise "Not provided">
## Expected Behavior
<if available>
## Actual Behavior
<error messages, stack traces from context>
---
Reported via `/ac-issue` command
Feature Request Template (when --feature flag used):
## Feature Description
<user-provided description>
## Use Case
<why this feature would be useful>
## Proposed Solution
<if user provided suggestions>
## Environment
- agentic-config: <ENV_AGENTIC_VERSION>
---
Reported via `/ac-issue` command
General Template (explicit or context mode):
## Description
<user-provided or context-extracted description>
## Environment
- OS: <ENV_OS> <ENV_OS_VERSION>
- Shell: <ENV_SHELL>
- Git: <ENV_GIT_VERSION>
- agentic-config: <ENV_AGENTIC_VERSION>
## Context
<relevant error messages, stack traces, or unexpected behavior if available>
## Additional Information
<any other relevant details>
---
Reported via `/ac-issue` command
INSTRUCTION: Display formatted issue preview and wait for user confirmation.
Display Format:
Issue Title: <TITLE>
Repository: WaterplanAI/agentic-config
Labels: <bug | enhancement | none>
Body:
---
<FORMATTED_BODY>
---
Create this issue? (yes/no/edit)
- yes: Create the issue as shown
- no: Cancel issue creation
- edit: Provide modified title or description
Confirmation Logic:
yes before proceedingno: Exit gracefully with "Issue creation cancelled"edit: Prompt for new title/description and re-previewINSTRUCTION: Execute gh CLI to create the issue.
# Determine label based on mode
LABEL_FLAG=""
if [ "$MODE" = "bug" ]; then
LABEL_FLAG="--label bug"
elif [ "$MODE" = "feature" ]; then
LABEL_FLAG="--label enhancement"
fi
# Create issue with HEREDOC for body
ISSUE_URL=$(gh issue create \
--repo WaterplanAI/agentic-config \
--title "$ISSUE_TITLE" \
$LABEL_FLAG \
--body "$(cat <<'EOF'
<FORMATTED_BODY>
EOF
)" 2>&1)
CREATE_STATUS=$?
if [ $CREATE_STATUS -ne 0 ]; then
echo "ERROR: Failed to create issue"
echo "$ISSUE_URL"
echo ""
echo "You can try creating the issue manually at:"
echo "https://github.com/WaterplanAI/agentic-config/issues/new"
exit 1
fi
echo "$ISSUE_URL"
INSTRUCTION: Display success message with issue URL and next steps.
ISSUE CREATED SUCCESSFULLY
Issue URL: <ISSUE_URL>
Title: <ISSUE_TITLE>
Repository: WaterplanAI/agentic-config
Next Steps:
1. View issue: <ISSUE_URL>
2. Add more context if needed via GitHub web interface
3. Monitor for maintainer response
Thank you for contributing to agentic-config!
| Error | Detection | Response |
|---|---|---|
| gh not installed | command -v gh fails | "GitHub CLI not found. Install: https://cli.github.com/" |
| Not authenticated | gh auth status exit != 0 | "Please authenticate: gh auth login" |
| No context found | Context extraction returns empty | Prompt for explicit input |
| Network error | gh issue create fails | Show error, suggest manual creation |
| Rate limited | gh returns rate limit error | "GitHub API rate limited. Try again later." |
Central Repository Target
WaterplanAI/agentic-configDual Input Mode
Mandatory Preview
Minimal Tool Requirements
Project-Agnostic Design
npx claudepluginhub waterplanai/agentic-config --plugin ac-toolsGenerates structured issue reports for GitHub/GitLab repos with code references, media attachments, and session context. Works for bugs, features, and improvements.
Open-source issue creation: bug reports, feature requests, and structured contribution communication. Invoke whenever task involves any interaction with issues in external repositories — filing bugs, proposing features, reporting problems, or preparing issue content for open-source projects.
Reports bugs and feature requests against Infrahub-ecosystem GitHub repos by classifying, routing, and searching for duplicates. Triggers when a user wants to file an issue.