---
name: dd-file-issue
description: File GitHub issues to the right repository (pup CLI or plugin)
trigger: |
  Use this skill when the user wants to:
  - Report a bug
  - Request a feature
  - File an issue
  - Submit a problem report
  - Report something not working
  - Suggest an improvement
examples:
  - "This isn't working, file an issue"
  - "Can you create a bug report for this?"
  - "I want to request a new feature"
  - "Report this error to the team"
---

# DD File Issue Skill

This skill helps you file GitHub issues to the correct repository - either the `pup` CLI tool or the Claude plugin, depending on the nature of the issue.

**Invocation**: `/dd-file-issue`

## Decision Logic: Which Repository?

### File to `DataDog/pup` Repository
Issues related to the `pup` CLI tool itself:
- **API Functionality**: API calls failing, incorrect responses, missing API endpoints
- **Authentication**: OAuth2 issues, token refresh problems, API key handling
- **CLI Behavior**: Command syntax, flags not working, output format issues
- **pup Installation**: Binary installation, PATH issues, version problems
- **API Coverage**: Missing Datadog API endpoints, incomplete command coverage
- **Performance**: Slow API calls, timeout issues (when not related to agents)
- **Error Messages**: Confusing pup error messages, API errors

**Example Issues for pup**:
- "pup logs search returns 404 error"
- "OAuth token refresh not working"
- "Need support for new Datadog API endpoint"
- "pup --output=json returns invalid JSON"
- "pup auth login fails on Linux"

### File to `DataDog/datadog-api-claude-plugin` Repository
Issues related to the Claude plugin and its agents:
- **Agent Behavior**: Agent selection, agent prompts, agent responses
- **Documentation**: README, CLAUDE.md, AGENTS.md, agent files inaccurate
- **Agent Prompts**: Agent giving wrong guidance, unclear instructions
- **Skill Issues**: Skills not working correctly
- **Plugin Installation**: Plugin setup, configuration issues
- **Agent Selection**: Claude picking wrong agent for task
- **Examples/Guides**: Missing or incorrect examples in agent files
- **User Experience**: Confusing workflows, unclear instructions

**Example Issues for plugin**:
- "logs agent doesn't explain query syntax clearly"
- "Agent tells me to use wrong pup command"
- "Documentation says to use TypeScript but we use pup now"
- "Need better examples for metrics queries"
- "Agent selection guide is confusing"

### Unclear Cases (Ask User)
If unclear which repository the issue belongs to:
- Ask the user for more context
- Explain the difference between pup and plugin issues
- Let user decide

## Workflow

1. **Gather Information**
   - What went wrong?
   - What were you trying to do?
   - What error message did you see (if any)?
   - What agent/command were you using?

2. **Determine Repository**
   - Analyze the issue against decision logic above
   - If unclear, ask user to clarify

3. **Check for Existing Issues**
   - Search the target repository for similar issues
   - If found, suggest commenting on existing issue instead

4. **Collect Issue Details**
   - Title: Clear, concise summary (e.g., "logs agent: incorrect time format example")
   - Body: Detailed description with:
     - What happened
     - Expected behavior
     - Steps to reproduce
     - Environment details (OS, pup version, plugin version)
     - Relevant logs/errors

5. **Select Issue Type**
   - Bug report
   - Feature request
   - Documentation improvement
   - Question

6. **Create Issue**
   - Use `gh issue create` to file the issue
   - Add appropriate labels
   - Provide issue URL to user

## Implementation

### 1. Determine Repository

Ask clarifying questions:

```markdown
To file this issue correctly, I need to understand:

1. What were you trying to do?
2. What went wrong?
3. Was this a problem with:
   - A pup command not working? (→ pup repo)
   - An agent giving bad guidance? (→ plugin repo)
   - Documentation being wrong/unclear? (→ plugin repo)
```

### 2. Search for Existing Issues

For pup repository:
```bash
gh issue list \
  --repo DataDog/pup \
  --search "your search terms" \
  --limit 10
```

For plugin repository:
```bash
gh issue list \
  --repo DataDog/datadog-api-claude-plugin \
  --search "your search terms" \
  --limit 10
```

### 3. Create Issue

For pup repository:
```bash
gh issue create \
  --repo DataDog/pup \
  --title "Clear, concise title" \
  --body "Detailed description" \
  --label "bug" # or "enhancement", "documentation"
```

For plugin repository:
```bash
gh issue create \
  --repo DataDog/datadog-api-claude-plugin \
  --title "Clear, concise title" \
  --body "Detailed description" \
  --label "bug" # or "enhancement", "documentation", "agent"
```

### Issue Body Template

Use this template for comprehensive issue reports:

```markdown
## Description
[Clear description of the issue]

## Expected Behavior
[What should happen]

## Actual Behavior
[What actually happened]

## Steps to Reproduce
1. [First step]
2. [Second step]
3. [...]

## Environment
- OS: [e.g., macOS 14.1, Ubuntu 22.04]
- Pup version: [run `pup --version`]
- Plugin version: [from plugin.json]
- Claude Code version: [if relevant]

## Error Messages / Logs
```
[Paste any error messages or relevant logs]
```

## Additional Context
[Any other relevant information]

## Suggested Fix (Optional)
[If you have ideas for how to fix this]
```

## Best Practices

### Good Issue Titles
✅ Good:
- "logs agent: incorrect time format documentation"
- "pup metrics query: --from flag ignores relative time"
- "Agent selection guide: missing decision tree for security agents"

❌ Bad:
- "It doesn't work"
- "Bug"
- "Help"

### When to Bundle Issues
- **Don't bundle** unrelated issues - file separately
- **Do bundle** if multiple issues stem from same root cause
- **Do bundle** if documenting several examples of same problem

### Labels to Use

**For pup repository**:
- `bug` - Something isn't working
- `enhancement` - New feature or request
- `documentation` - Improvements or additions to documentation
- `question` - Further information is requested

**For plugin repository**:
- `bug` - Something isn't working
- `enhancement` - New feature or request
- `documentation` - Improvements or additions to documentation
- `agent` - Related to specific agent behavior
- `skill` - Related to skills
- `question` - Further information is requested

## Examples

### Example 1: Filing a pup Bug

**User**: "The pup logs search command times out after 30 seconds"

**Analysis**: This is a pup CLI issue (command behavior)

**Steps**:
1. Search existing issues: `gh issue list --repo DataDog/pup --search "timeout"`
2. If not found, create issue:

```bash
gh issue create \
  --repo DataDog/pup \
  --title "pup logs search: command times out after 30 seconds" \
  --body "## Description
The \`pup logs search\` command times out after 30 seconds when searching large time ranges.

## Expected Behavior
Should either complete the query or allow configurable timeout.

## Actual Behavior
Command fails with timeout error after 30 seconds.

## Steps to Reproduce
1. Run: \`pup logs search --query='*' --from='7d' --to='now'\`
2. Wait 30 seconds
3. See timeout error

## Environment
- OS: macOS 14.1
- Pup version: 1.2.3
- DD_SITE: datadoghq.com

## Error Message
\`\`\`
Error: request timeout after 30000ms
\`\`\`
" \
  --label "bug"
```

### Example 2: Filing a Plugin Documentation Issue

**User**: "The logs agent documentation shows TypeScript examples instead of pup commands"

**Analysis**: This is a plugin issue (documentation)

**Steps**:
1. Search existing issues: `gh issue list --repo DataDog/datadog-api-claude-plugin --search "TypeScript"`
2. Create issue:

```bash
gh issue create \
  --repo DataDog/datadog-api-claude-plugin \
  --title "logs agent: outdated TypeScript examples in documentation" \
  --body "## Description
The logs agent documentation still shows TypeScript/Node.js examples instead of pup CLI commands.

## Location
\`agents/logs.md\` lines 150-200

## Expected
Should show pup CLI command examples like:
\`\`\`bash
pup logs search --query='*' --from='1h'
\`\`\`

## Actual
Shows TypeScript code with imports and API clients

## Impact
Confusing for users who expect pup CLI commands

## Files Affected
- agents/logs.md
- Possibly other agent files (need audit)
" \
  --label "documentation" \
  --label "agent"
```

### Example 3: Feature Request for Plugin

**User**: "Can we add an agent for Datadog SLO reporting?"

**Analysis**: This is a plugin enhancement (new agent)

```bash
gh issue create \
  --repo DataDog/datadog-api-claude-plugin \
  --title "enhancement: add SLO reporting agent" \
  --body "## Feature Request

### Description
Add a new agent focused on SLO reporting and analysis, separate from the SLO management agent.

### Use Cases
- Generate SLO reports for stakeholders
- Analyze SLO trends over time
- Compare SLOs across services

### Proposed Agent Capabilities
- Query SLO history
- Generate formatted reports
- Calculate SLO burn rates
- Identify at-risk SLOs

### Related Agents
- Current \`slos.md\` focuses on SLO CRUD operations
- New agent would focus on analytics and reporting

### Priority
Medium - would improve SLO workflow
" \
  --label "enhancement" \
  --label "agent"
```

## Error Handling

If issue creation fails:
1. Check network connectivity
2. Verify gh CLI is authenticated: `gh auth status`
3. Check repository permissions
4. Provide user with issue details to file manually

## Success Response

After successfully filing an issue:

```markdown
✅ Issue created successfully!

**Repository**: DataDog/[repo-name]
**Issue**: #123
**URL**: https://github.com/DataDog/[repo-name]/issues/123
**Title**: [issue title]

The team will review your issue and respond soon. You can:
- Track the issue at the URL above
- Add more details by commenting on the issue
- Subscribe to notifications for updates
```

## Tips for Users

1. **Be specific** - Include exact commands, error messages, agent names
2. **Provide context** - What were you trying to accomplish?
3. **Include environment details** - OS, versions, configuration
4. **One issue per report** - Don't bundle unrelated problems
5. **Check existing issues first** - Avoid duplicates
6. **Be patient** - Maintainers will respond when available
