|
| 1 | +--- |
| 2 | +name: fast-forward-issues |
| 3 | +description: Transform a short feature, enhancement, or bug description into a complete production-ready GitHub issue with structured sections, acceptance criteria, and architectural quality requirements. Use when Codex needs to draft or refine an issue from a brief prompt. |
| 4 | +--- |
| 5 | + |
| 6 | +# Create GitHub Issue from Specification |
| 7 | + |
| 8 | +This skill transforms a short feature description into a complete, production-ready GitHub issue written in clear, precise, and structured English following strict quality guidelines. |
| 9 | + |
| 10 | +## When to Use This Skill |
| 11 | + |
| 12 | +Use this skill when: |
| 13 | +- User provides a short feature description and asks to create a GitHub issue |
| 14 | +- User wants to transform a brief idea into a structured issue |
| 15 | +- User asks to "create issue from description" or similar |
| 16 | +- User provides a prompt describing a feature/enhancement/bug |
| 17 | + |
| 18 | +## Input Processing |
| 19 | + |
| 20 | +### Extract the Feature Description |
| 21 | + |
| 22 | +The user will provide a short description. Extract and analyze: |
| 23 | +- The core request (add, enhance, fix, improve) |
| 24 | +- The subject/target of the request |
| 25 | +- Any specific tools, libraries, or technologies mentioned |
| 26 | +- The context or domain |
| 27 | + |
| 28 | +### Infer Missing Details |
| 29 | + |
| 30 | +Using engineering judgment, infer: |
| 31 | +- Common CLI patterns for the described feature type |
| 32 | +- Expected file locations and naming conventions |
| 33 | +- Standard architectural patterns for the feature domain |
| 34 | +- Typical acceptance criteria for similar features |
| 35 | + |
| 36 | +## Output Generation |
| 37 | + |
| 38 | +Generate a complete GitHub issue following this structure: |
| 39 | + |
| 40 | +### 1. Title |
| 41 | + |
| 42 | +- Clear, concise, descriptive |
| 43 | +- Action-oriented phrasing (Add, Enhance, Introduce, Fix) |
| 44 | +- Reflects intent and scope |
| 45 | + |
| 46 | +### 2. Description |
| 47 | + |
| 48 | +#### Problem |
| 49 | +- Explain current limitation or gap |
| 50 | +- Focus on real-world impact (DX, CI, maintenance, consistency) |
| 51 | +- Avoid fluff or generic statements |
| 52 | + |
| 53 | +#### Proposal |
| 54 | +- Describe solution at conceptual level |
| 55 | +- Avoid jumping into implementation |
| 56 | +- Clearly state what will be introduced or changed |
| 57 | + |
| 58 | +#### Goals |
| 59 | +- Define success criteria |
| 60 | +- Focus on outcomes, not implementation |
| 61 | + |
| 62 | +#### Expected Behavior |
| 63 | +- Describe feature from user perspective |
| 64 | +- Include CLI examples when relevant |
| 65 | + |
| 66 | +#### Implementation Strategy |
| 67 | +- Suggest practical approach |
| 68 | +- Mention tools, libraries, patterns when useful |
| 69 | +- Keep flexible, not prescriptive |
| 70 | + |
| 71 | +#### Requirements |
| 72 | +- Define strict functional requirements |
| 73 | +- Must be testable and objective |
| 74 | +- Include CLI behavior, outputs, determinism, CI compatibility |
| 75 | + |
| 76 | +#### Non-goals |
| 77 | +- Explicitly state what is out of scope |
| 78 | +- Prevent feature creep |
| 79 | + |
| 80 | +#### Benefits |
| 81 | +- Explain why feature matters |
| 82 | +- Focus on developer experience, maintainability, consistency |
| 83 | + |
| 84 | +#### Additional Context (optional) |
| 85 | +- Relevant background, ecosystem alignment, rationale |
| 86 | + |
| 87 | +### 3. Acceptance Criteria |
| 88 | + |
| 89 | +#### Functional Criteria |
| 90 | +- What must work |
| 91 | +- What must not break |
| 92 | +- Output expectations |
| 93 | +- Error handling expectations |
| 94 | + |
| 95 | +#### Architectural/Isolation Criteria (MANDATORY) |
| 96 | + |
| 97 | +Always include this section enforcing architectural quality: |
| 98 | + |
| 99 | +``` |
| 100 | +### Architectural / Isolation Criteria |
| 101 | +
|
| 102 | +- **MUST**: The core logic MUST be isolated into dedicated classes (no business logic inside the command/controller layer) |
| 103 | +- **MUST**: Responsibilities MUST be clearly separated: |
| 104 | + - One class for input/config resolution |
| 105 | + - One class for domain logic |
| 106 | + - One class for processing/transformations |
| 107 | + - One class for output/rendering |
| 108 | +- **MUST**: The command layer MUST act only as an orchestrator |
| 109 | +- **MUST**: The design MUST allow future extraction into an external reusable package with minimal changes |
| 110 | +- **MUST**: The implementation MUST avoid tight coupling to CLI/framework-specific I/O |
| 111 | +- **MUST**: The system MUST be extensible without requiring major refactoring |
| 112 | +``` |
| 113 | + |
| 114 | +## Style Guidelines |
| 115 | + |
| 116 | +- Be highly objective and precise |
| 117 | +- Avoid filler language |
| 118 | +- Avoid vague statements like "improve things" |
| 119 | +- Prefer deterministic, testable statements |
| 120 | +- Use clean Markdown formatting |
| 121 | +- Use code blocks for CLI examples |
| 122 | +- Use bullet points for clarity |
| 123 | +- Keep strong engineering tone (not marketing, not casual) |
| 124 | + |
| 125 | +## Output Format |
| 126 | + |
| 127 | +Output the complete, ready-to-use GitHub issue in Markdown format. Do not include: |
| 128 | +- Follow-up questions |
| 129 | +- Explanations about the prompt |
| 130 | +- Meta commentary |
| 131 | + |
| 132 | +## Example Transformation |
| 133 | + |
| 134 | +**Input:** |
| 135 | +"Add a command to analyze dependencies using composer-unused and dependency-analyser" |
| 136 | + |
| 137 | +**Output:** |
| 138 | +See the complete generated issue with all sections as specified above. |
0 commit comments