Create an Engineering Issue
Turn a vague feature, chore, or engineering request into a provider issue that another engineer can implement without reconstructing intent. Use create-bug for broken or regressed behavior.
Read the shared contract-impact rubric before
inspecting or drafting the issue. This authoring copy is mirrored byte-for-byte
at skills/spec-review/reference/contract-impact.md; change both together.
Workflow
- Classify the request. If it describes symptoms, an exception, a regression, or expected-versus-actual behavior, stop and use
create-bug.
- Resolve the target repository and issue provider from the request, repository remote, or native provider tools. If no writable provider is available, produce provider-neutral Markdown.
- Search open and closed issues for the outcome, component, and distinctive terms. Link a real duplicate instead of creating another issue.
- Inspect repository guidance, relevant code, architecture, schemas, migrations, database objects, APIs, generated artifacts, UI, tests, and recent changes. Ground scope in evidence; do not invent an implementation.
- Apply the contract-impact rubric: classify database impact and API impact independently from repository evidence before drafting. Trace affected producers, consumers, compatibility, migration, authorization, data-boundary, delivery, and verification work. Record evidence for an explicit no-change declaration when a layer is unaffected.
- Define the user or operator, current situation, desired outcome, and why the work matters now.
- Trace the remaining work across affected layers and identify dependencies, privacy, observability, and rollout concerns not already captured by the contracts.
- Write independently verifiable acceptance criteria, including negative, boundary, compatibility, migration, authorization, and regression cases appropriate to the change.
- Separate required scope, explicit out-of-scope items, risks, and open decisions. Ask only when an unresolved choice materially changes the ticket; leave unsupported material details as owned open questions.
- Draft the issue with the template below. Show it before external creation unless the user already explicitly authorized creation.
- Create with the provider's native capability and existing labels/milestone conventions when available. Return the URL and summarize any provider metadata you could not set.
Template
## Context
<current user-facing situation and repository evidence>
## Goal
<specific desired outcome and success definition>
## User story
As a <persona>,
I want <capability>,
so that <outcome>.
## Proposed approach
<high-level implementation constraints supported by evidence; leave design room>
## Database contract
<complete applicable contract from the shared rubric, or "No database contract change." with supporting evidence>
## API contract
<complete applicable contract from the shared rubric, or "No API contract change." with supporting evidence>
## Acceptance criteria
- [ ] <observable behavior and verification>
- [ ] <negative or boundary behavior>
- [ ] <test, migration, authorization, or rollout requirement>
## Out of scope
- <explicit boundary>
## Risks and dependencies
- <risk/dependency plus mitigation or owner>
## Open questions
- <only decisions that could change scope or outcome>
## References
- <code paths, docs, related issues/PRs>
Quality bar
- Titles are short, action-oriented, and name the outcome.
- Every criterion can be demonstrated by a test, command, API response, rendered state, or recorded external result.
- Database and API impacts are independently classified and complete under the shared rubric; unaffected layers are declared explicitly and supported by evidence.
- Findings name concrete paths or contracts; generic “improve” language is rejected.
- External mutation, assignment, and milestone changes stay within the user's authorization.
- Never include secrets, credentials, private customer data, or unnecessary source excerpts.
Built by aictrl.dev. This skill teaches the workflow; aictrl operationalizes it — grounded in your backlog, team standards, and codebase knowledge graph. See how →
1---2name: create-issue3description: Create a code-grounded engineering story or task with scope, acceptance criteria, test expectations, risks, and open questions. Use when the user says "create an issue", "open a ticket", "make a backlog item", or describes a feature or chore that should be tracked; delegate defects to create-bug.4---56# Create an Engineering Issue78Turn a vague feature, chore, or engineering request into a provider issue that another engineer can implement without reconstructing intent. Use `create-bug` for broken or regressed behavior.910Read the [shared contract-impact rubric](reference/contract-impact.md) before11inspecting or drafting the issue. This authoring copy is mirrored byte-for-byte12at `skills/spec-review/reference/contract-impact.md`; change both together.1314## Workflow15161. Classify the request. If it describes symptoms, an exception, a regression, or expected-versus-actual behavior, stop and use `create-bug`.172. Resolve the target repository and issue provider from the request, repository remote, or native provider tools. If no writable provider is available, produce provider-neutral Markdown.183. Search open and closed issues for the outcome, component, and distinctive terms. Link a real duplicate instead of creating another issue.194. Inspect repository guidance, relevant code, architecture, schemas, migrations, database objects, APIs, generated artifacts, UI, tests, and recent changes. Ground scope in evidence; do not invent an implementation.205. Apply the contract-impact rubric: classify database impact and API impact independently from repository evidence before drafting. Trace affected producers, consumers, compatibility, migration, authorization, data-boundary, delivery, and verification work. Record evidence for an explicit no-change declaration when a layer is unaffected.216. Define the user or operator, current situation, desired outcome, and why the work matters now.227. Trace the remaining work across affected layers and identify dependencies, privacy, observability, and rollout concerns not already captured by the contracts.238. Write independently verifiable acceptance criteria, including negative, boundary, compatibility, migration, authorization, and regression cases appropriate to the change.249. Separate required scope, explicit out-of-scope items, risks, and open decisions. Ask only when an unresolved choice materially changes the ticket; leave unsupported material details as owned open questions.2510. Draft the issue with the template below. Show it before external creation unless the user already explicitly authorized creation.2611. Create with the provider's native capability and existing labels/milestone conventions when available. Return the URL and summarize any provider metadata you could not set.2728## Template2930```markdown31## Context32<current user-facing situation and repository evidence>3334## Goal35<specific desired outcome and success definition>3637## User story38As a <persona>,39I want <capability>,40so that <outcome>.4142## Proposed approach43<high-level implementation constraints supported by evidence; leave design room>4445## Database contract46<complete applicable contract from the shared rubric, or "No database contract change." with supporting evidence>4748## API contract49<complete applicable contract from the shared rubric, or "No API contract change." with supporting evidence>5051## Acceptance criteria52- [ ] <observable behavior and verification>53- [ ] <negative or boundary behavior>54- [ ] <test, migration, authorization, or rollout requirement>5556## Out of scope57- <explicit boundary>5859## Risks and dependencies60- <risk/dependency plus mitigation or owner>6162## Open questions63- <only decisions that could change scope or outcome>6465## References66- <code paths, docs, related issues/PRs>67```6869## Quality bar7071- Titles are short, action-oriented, and name the outcome.72- Every criterion can be demonstrated by a test, command, API response, rendered state, or recorded external result.73- Database and API impacts are independently classified and complete under the shared rubric; unaffected layers are declared explicitly and supported by evidence.74- Findings name concrete paths or contracts; generic “improve” language is rejected.75- External mutation, assignment, and milestone changes stay within the user's authorization.76- Never include secrets, credentials, private customer data, or unnecessary source excerpts.7778---79**Built by [aictrl.dev](https://aictrl.dev/?utm_source=oss-skills&utm_medium=skill&utm_campaign=create-issue&utm_listing=github-skills&utm_platform=portable&utm_skill=create-issue).** This skill teaches the workflow; aictrl *operationalizes* it — grounded in your backlog, team standards, and codebase knowledge graph. [See how →](https://aictrl.dev/features?utm_source=oss-skills&utm_medium=skill&utm_campaign=create-issue&utm_listing=github-skills&utm_platform=portable&utm_skill=create-issue)