Arness Infra Report
Report an Arness Infra workflow issue by running a diagnostic and filing a GitHub issue on the Arness plugin repository. The arn-infra-doctor agent analyzes Infra configuration and behavior — it never reads project source code or business logic.
Workflow
Step 0: Smart Routing
Before proceeding, check whether the user's issue actually belongs to a different Arness plugin:
- Read the
## Arnesssection from the project's CLAUDE.md (if it exists). - Check the user's description for keyword signals:
- Code keywords: "plan", "spec", "execute", "taskify", "swift", "standard", "batch", "ship", "PR", "review-pr", "assess", "catch-up", "document-project", "save-plan"
- Spark keywords: "discover", "prototype", "greenfield", "stress test", "naming", "brainstorming", "feature extract", "visual sketch", "use cases"
- If Code signals detected: "This sounds like an Arness Code issue. Run
/arn-code-reportinstead." - If Spark signals detected: "This sounds like an Arness Spark issue. Run
/arn-spark-reportinstead." - If the user confirms it is actually an Infra issue, proceed.
Step 1: Explain the Process
Inform the user:
"I'll help you report an Arness Infra workflow issue. Here's how this works:
- You describe what happened — which skill you used and what went wrong
- I'll run a diagnostic that checks Infra's configuration and expected behavior (I won't read your project code)
- You'll review the issue report before it's submitted
- The issue gets filed on the Arness plugin repository for the maintainers
Your project code and business logic are never included in the report."
Step 2: Gather User Description
Ask the user using AskUserQuestion:
- "What happened? Which Arness Infra skill were you using and what went wrong?"
Let the user type a free-form description. This becomes the user_description for the diagnostic.
Step 3: Check Prerequisites
-
Detect the plugin's GitHub repository:
- Read the
repositoryfield from${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json. Parseowner/repofrom the URL. - Fallback:
git -C ${CLAUDE_PLUGIN_ROOT} remote get-url origin. Extractowner/repofrom the URL (strip.gitsuffix andhttps://github.com/orgit@github.com:prefix).
- Read the
-
Check
gh auth status— user must be authenticated to file issues. -
Read plugin version from
${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json. -
Read
## Arnessconfig from the project's CLAUDE.md (if it exists).
If GitHub access is not available, offer an alternative: generate the diagnostic report as a local file (arness-infra-report-<YYYY-MM-DD>.md in the project root) the user can manually submit.
Step 4: Invoke arn-infra-doctor
Spawn the arn-infra-doctor agent via the Task tool, passing the model from .arness/agent-models/infra.md as the model parameter (see plugins/arn-infra/skills/arn-infra-ensure-config/references/ensure-config.md "Dispatch convention" for fallback). Context:
- The user's description of the issue
- Project root path
## Arnessconfig content (or "not configured")- Plugin version
- Instruction to read the knowledge base at
${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-report/references/infra-knowledge-base.md
Wait for the agent to complete and collect the diagnostic report.
Step 5: Compose and Review Issue
Assemble the GitHub issue using the template from ${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-report/references/issue-template.md:
- Include the user's original description in the "User Report" section
- Include the doctor's diagnostic findings (ISSUE items only, not OK items)
- Include the doctor's assessment
- Include plugin version and relevant config state
- Include environment info (OS, Git, GitHub, gh CLI, Docker, IaC tool, Cloud CLI status)
- Exclude any project code or business logic
Present the complete draft to the user, then request explicit consent.
Ask (using AskUserQuestion):
This report will be filed as a public GitHub issue on the Arness repository. It contains only Arness configuration state and diagnostic findings — no project source code or business logic. Please review the report above carefully.
- Submit — I've reviewed it and consent to filing this publicly
- Save locally — save as a file instead of submitting
- Edit first — let me modify the report before deciding
- If Submit: proceed to Step 6.
- If Save locally: save as
arness-infra-report-<YYYY-MM-DD>.mdin the project root. Inform the user. Do not submit. - If Edit first: let the user modify the draft, then ask again.
Step 6: Submit Issue
The arn-infra-report label must already exist on the plugin repository (maintained by the plugin maintainers, not created by this skill).
-
Create the issue with the
arn-infra-reportlabel:gh issue create --repo <owner/repo> --title "<title>" --body "<body>" --label "arn-infra-report" -
If the command fails because the label does not exist, retry without
--labeland inform the user that the issue was filed without a label. -
Report the issue URL to the user.
If submission fails for other reasons (permissions, network), save the report as arness-infra-report-<YYYY-MM-DD>.md in the project root and inform the user with instructions to submit manually.
Error Handling
- Plugin not installed from GitHub — no git remote found in plugin root and no
repositoryfield in plugin.json. Generate report asarness-infra-report-<YYYY-MM-DD>.mdin the project root instead. ghnot authenticated — suggestgh auth login, offer local file fallback (arness-infra-report-<YYYY-MM-DD>.md).- User lacks permission to file issues on plugin repo — save report as
arness-infra-report-<YYYY-MM-DD>.mdin the project root, suggest opening manually. - arn-infra-doctor agent fails — report the failure, offer to file a minimal issue with just the user's description.
## Arnessconfig missing — proceed anyway, note "not configured" in the report.arn-infra-reportlabel missing from plugin repo — retry without--label, note this in the output.
Constraints
- Allowed tools: Read, Glob, Grep, Bash, Agent (for arn-infra-doctor)
- NEVER include project source code, business logic, or sensitive data in the report
- NEVER file issues on the user's own project repository — this skill only files on the Arness plugin repository
- ALWAYS present the full report draft and obtain explicit user consent before submitting
- ALWAYS offer a local-file alternative — the user must never be forced to submit publicly