|
| 1 | +Create a GitHub issue for the robosystems-python-client repository based on the user's input. |
| 2 | + |
| 3 | +## Instructions |
| 4 | + |
| 5 | +1. **Determine Issue Type** - Based on the user's description, determine which type to use: |
| 6 | + - **Bug**: Defects or unexpected behavior |
| 7 | + - **Task**: Specific, bounded work items that can be completed in one PR |
| 8 | + - **Feature**: User-facing feature suggestions |
| 9 | + - **Spec**: Features requiring technical design, multiple phases, or architectural changes |
| 10 | + - **RFC**: Significant design proposals needing team discussion before implementation |
| 11 | + |
| 12 | +2. **Gather Context** - If the user provides a file path or references existing code: |
| 13 | + - Read the relevant files to understand the current implementation |
| 14 | + - Check client methods in `/robosystems_client/` |
| 15 | + - Review tests in `/tests/` |
| 16 | + |
| 17 | +3. **Draft the Issue** - Use the YAML templates in `.github/ISSUE_TEMPLATE/`: |
| 18 | + - `bug.yml` - Include reproduction steps, version info |
| 19 | + - `task.yml` - Be specific about scope and acceptance criteria |
| 20 | + - `feature.yml` - Simple "I wish I could..." format |
| 21 | + - `spec.yml` - Fill in all sections with technical detail |
| 22 | + - `rfc.yml` - Comprehensive design with alternatives considered |
| 23 | + |
| 24 | +4. **Sanitize for Public Visibility** - Before creating: |
| 25 | + - Remove any internal API details or secrets |
| 26 | + - Generalize any sensitive information |
| 27 | + - Keep technical implementation details (these are fine to share) |
| 28 | + |
| 29 | +5. **Create the Issue** - Use `gh issue create` with: |
| 30 | + - Clear, concise title (no prefixes like [SPEC] - types handle categorization) |
| 31 | + - Well-formatted markdown body matching the template structure |
| 32 | + - Appropriate metadata labels (see below) |
| 33 | + |
| 34 | +6. **Set Issue Type** - After creation, set the issue type via GraphQL: |
| 35 | + ```bash |
| 36 | + # Get issue ID |
| 37 | + gh api graphql -f query='{ repository(owner: "RoboFinSystems", name: "robosystems-python-client") { issue(number: NUMBER) { id } } }' |
| 38 | + |
| 39 | + # Set type (use correct type ID) |
| 40 | + gh api graphql -f query='mutation { updateIssue(input: { id: "ISSUE_ID", issueTypeId: "TYPE_ID" }) { issue { number } } }' |
| 41 | + ``` |
| 42 | + |
| 43 | + Issue Type IDs (org-level, shared across repos): |
| 44 | + - Task: `IT_kwDODL_jkM4BnUUo` |
| 45 | + - Bug: `IT_kwDODL_jkM4BnUUp` |
| 46 | + - Feature: `IT_kwDODL_jkM4BnUUq` |
| 47 | + - Spec: `IT_kwDODL_jkM4B0XrY` |
| 48 | + - RFC: `IT_kwDODL_jkM4B0XrZ` |
| 49 | + |
| 50 | +## Labels |
| 51 | + |
| 52 | +Issue types handle primary categorization. Use labels for metadata. |
| 53 | + |
| 54 | +**Area** (which part of the client): |
| 55 | +- `area:client` - Core client functionality |
| 56 | +- `area:api` - API method implementations |
| 57 | +- `area:types` - Pydantic models and type definitions |
| 58 | +- `area:auth` - Authentication handling |
| 59 | +- `area:errors` - Error handling |
| 60 | +- `area:testing` - Test coverage |
| 61 | +- `area:docs` - Documentation |
| 62 | +- `area:packaging` - pyproject.toml, releases |
| 63 | +- `area:ci-cd` - Workflows, releases |
| 64 | + |
| 65 | +**Priority** (when to do it): |
| 66 | +- `priority:critical` - Drop everything |
| 67 | +- `priority:high` - Next up |
| 68 | +- `priority:low` - Backlog |
| 69 | + |
| 70 | +**Size** (how long): |
| 71 | +- `size:small` - < 1 day |
| 72 | +- `size:medium` - 1-3 days |
| 73 | +- `size:large` - > 3 days |
| 74 | + |
| 75 | +**Status**: |
| 76 | +- `blocked` - Waiting on something |
| 77 | +- `needs-review` - Ready for review |
| 78 | + |
| 79 | +## Output Format |
| 80 | + |
| 81 | +After creating the issue, provide: |
| 82 | +1. The issue URL |
| 83 | +2. Brief summary of what was created |
| 84 | +3. Issue type and labels applied |
| 85 | +4. Any suggested follow-up tasks or related issues to create |
| 86 | + |
| 87 | +$ARGUMENTS |
0 commit comments