ワンクリックで
implement-jira-ticket
Implements Jira tickets end-to-end (git + plan + code + test). Use when given a Jira ticket ID (e.g., PBAT-123).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Implements Jira tickets end-to-end (git + plan + code + test). Use when given a Jira ticket ID (e.g., PBAT-123).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Promotes recurring feedback into the right skill, then guides /compact at phase boundaries.
Testing guidance for pytest, Jest/Vitest, Go, and TDD. Use when writing tests or improving coverage.
Methodical debugging with evidence and hypothesis testing. Use when troubleshooting fails or root cause is unclear.
Create new skills, commands, hooks, or subagents. Use when adding capabilities to Claude Code or Cursor.
PostgreSQL patterns for queries, schema, indexing, security. Use when writing SQL, designing schema, or adding indexes.
Reviews a GitHub PR diff for correctness, security, tests, architecture. Use when asked to review a PR or pull request.
| name | implement-jira-ticket |
| description | Implements Jira tickets end-to-end (git + plan + code + test). Use when given a Jira ticket ID (e.g., PBAT-123). |
<essential_principles>
ams-api-service), grep its routes/conftest/compose for the canonical pattern. Match it exactly: header names, search-via-POST shape, page envelope, conftest schema init, ECR images. See references/coding-conventions.md.customers_device), do NOT repeat the context in method names (get_by_id, not get_by_id_for_customer). Inside the same module, rename ORM aliases to drop the qualifier (DeviceOrm, not CustomersDeviceOrm). Drop ticket-only descriptors from code (a ticket saying "flat object" doesn't put flat in filenames).app/core/config.py — every new env var goes through Settings in UPPER_SNAKE_CASE. Don't os.environ.get(...) directly in business code, and don't set up env vars in test files — use pytest.ini env =. For multi-DB libraries (e.g., sensi_postgres), use the library's client_name parameter rather than manually mirroring env vars.BaseFilterPager, resolve_search_filter) that any future search endpoint can pick up. When page_token is provided, prior filters (incl. sort_by) come from the token, so sort_by is Optional in the schema and validated at endpoint level.SKIP_LOG_PATHS = {'/health', '/metrics'}).log_query pattern). Tests assert filter wiring; logs make production debugging tractable.X-Context-Id already exists in the project, don't introduce x-request-id for the same purpose.workflows/testing.md.workflows/testing.md.ams_schema.*, ORM rows (sensi_ams_db_orm.models.*), and internal models (app.models.*) with real values. Mock only at system boundaries (DB session, HTTP, S3, Kafka, scraper, logger). MagicMock for a pydantic schema or ORM row silently accepts wrong attribute access and papers over schema breaks. Imports at the top of the test file — never from foo import Bar inside a test body.make_* factory fixture to tests/conftest.py, not a private _make_* helper inside a single test file. Match the existing pattern (make_person_schedule, make_ams_config, make_customer). Use via dependency injection: def test_x(make_main_table_client): ....CLAUDE.md, README.md, docs/*.md to find every place that references the changed behaviour, identify the canonical source-of-truth (often README.md, others link to it), edit that one, and prune duplicates if any.CLAUDE.md, README.md, docs/api.md, docs/architecture.md. New env vars, new endpoints, new middleware behavior all need to land in docs.</essential_principles>
Provide a Jira ticket ID (e.g., `PBAT-123`) or paste the ticket details directly.Wait for ticket ID before proceeding.
Before filing a new ticket under an epic, grep the epic for already-shipped work that matches the description. When the user says "create a ticket under epic X to do Y", run searchJiraIssuesUsingJql with the epic key + a labels/summary filter (parent = X AND (text ~ "Y" OR labels in ("Y-keyword"))) and read the matches. If something is already Closed/Done with overlapping scope, surface it BEFORE creating — offer to (a) add a comment to that ticket, (b) re-open it, or (c) create the new one anyway with a clear delta. Recurring failure mode: confidently filing PBAT-NNN-duplicate under the same epic where the work has already shipped; the user pays the cost of catching it. The grep is two tool calls; the duplicate is wasted reviewer attention and a cancelled-ticket trail. Same rule for incident response: if the user asks for a fix ticket, scan the epic's recent Closed work first — the "fix" may already exist and the right action is a comment explaining why it didn't close the incident.
| Input | Action |
|---|---|
| Jira ID (e.g., PBAT-123) | Fetch via Atlassian MCP → follow workflows/implement-ticket.md |
| Pasted ticket details | Parse details → follow workflows/implement-ticket.md |
| Testing question | → workflows/testing.md |
| Coding-convention question | → references/coding-conventions.md |
| Review / done check | → workflows/review.md |
Detailed steps are in the workflow files. Read the relevant workflow before proceeding.
<success_criteria>
feature/{JIRA-ID})app/core/config.py in UPPER_SNAKE_CASEpytest.iniworkflows/review.md</success_criteria>