Token导航 LogoToken导航TokenDH.com
待分类external-servicegithub未标认证来源可访问clear审计未展示

jira-mapperJira mapper 工具

Agent Skill

用于处理 Jira 项目、任务、缺陷、Sprint、负责人和状态流转。它适合让 Agent 辅助查询工单、汇总迭代进展、创建任务或整理需求和缺陷信息。使用时要确认项目权限、字段配置和工作流规则,不同团队的 Issue 类型、状态和必填字段可能不同;涉及批量改状态、改负责人或创建工单时,应先预览变更内容再执行。

总安装

428

周安装

18

GitHub Stars

127

下载量

150
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:jira-mapper(Jira mapper 工具)
来源仓库:https://github.com/anton-abyzov/specweave
仓库路径:skills/jira-mapper
安装命令:
npx skills add https://github.com/anton-abyzov/specweave --skill jira-mapper
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/anton-abyzov/specweave --skill jira-mapper

简介

用于处理 Jira 项目、任务、缺陷、Sprint、负责人和状态流转。

  • 适合辅助查询工单、汇总迭代进展、创建任务或整理需求和缺陷信息。
  • 使用时需确认项目权限、字段配置和工作流规则,不同团队配置可能不同。
  • 涉及批量改状态、改负责人或创建工单时,应先预览变更内容再执行。
  • 安装方式:github,支持 Codex、Claude、Cursor、Gemini CLI。

SKILL.md

Specweave Jira Mapper Skill

You are an expert in mapping SpecWeave concepts to JIRA and vice versa with precision and traceability.

Core Responsibilities

  1. Export SpecWeave increments to JIRA (Increment → Epic + Stories + Subtasks)
  2. Import JIRA epics as SpecWeave increments (Epic → Increment structure)
  3. Sync: Content flows SpecWeave→JIRA, status flows JIRA→SpecWeave
  4. Maintain traceability (store keys, URLs, timestamps)
  5. Validate mapping accuracy using test cases
  6. Handle edge cases (missing fields, invalid statuses, API errors)

Concept Mappings

SpecWeave → JIRA

SpecWeave ConceptJIRA ConceptMapping Rules
IncrementEpicTitle: [Increment ###] [Title]
User Story (from spec.md)StoryLinked to parent Epic, includes acceptance criteria
Task (from tasks.md)SubtaskLinked to parent Story, checkbox → Subtask
Acceptance Criteria (TC-0001)Story DescriptionFormatted as checkboxes in Story description
Priority P1Priority: HighestCritical path, must complete
Priority P2Priority: HighImportant but not blocking
Priority P3Priority: MediumNice to have
Status: plannedStatus: To DoNot started
Status: in-progressStatus: In ProgressActive work
Status: completedStatus: DoneFinished
spec.mdEpic DescriptionSummary + link to spec (if GitHub repo)

JIRA → SpecWeave

JIRA ConceptSpecWeave ConceptImport Rules
EpicIncrementAuto-number next available (e.g., 0003)
StoryUser StoryExtract title, description, acceptance criteria
SubtaskTaskMap to tasks.md checklist
Story DescriptionAcceptance CriteriaParse checkboxes as TC-0001, TC-0002
Epic LinkParent IncrementMaintain parent-child relationships
Priority: HighestPriority P1Critical
Priority: HighPriority P2Important
Priority: Medium/LowPriority P3Nice to have
Status: To DoStatus: plannedNot started
Status: In ProgressStatus: in-progressActive
Status: DoneStatus: completedFinished
Custom Field: Spec URLspec.md linkCross-reference

Conversion Workflows

1. Export: Increment → JIRA Epic

Input: .specweave/increments/0001-feature-name/

Prerequisites:

  • Increment folder exists
  • spec.md exists with valid frontmatter
  • tasks.md exists
  • JIRA connection configured

Process:

  1. Read increment files: # Read spec.md - Extract frontmatter (title, description, priority) - Extract user stories (US1-001, US1-002) - Extract acceptance criteria (TC-0001, TC-0002) # Read tasks.md - Extract task checklist - Group tasks by user story (if structured)
  2. Create JIRA Epic: Title: [Increment 0001] Feature Name Description: {spec.md summary} Specification: {link to spec.md if GitHub repo} Labels: specweave, priority:P1, status:planned Custom Fields: - SpecWeave Increment ID: 0001-feature-name - Spec URL: https://github.com/user/repo/blob/main/.specweave/increments/0001-feature-name/spec.md
  3. Create JIRA Stories (one per user story): Title: {User Story title} Description: **As a** {role} **I want to** {goal} **So that** {benefit} **Acceptance Criteria**: - [] TC-0001: {criteria} - [] TC-0002: {criteria} Epic Link: {Epic Key} Labels: specweave, user-story
  4. Create JIRA Subtasks (from tasks.md): Title: {Task description} Parent: {Story Key} Labels: specweave, task
  5. Update increment frontmatter: jira: epic_key: "PROJ-123" epic_url: "https://jira.company.com/browse/PROJ-123" stories: - key: "PROJ-124" user_story_id: "US1-001" - key: "PROJ-125" user_story_id: "US1-002" last_sync: "2025-10-26T14:00:00Z" sync_direction: "export"

Output:

✅ Exported to JIRA!

Epic: PROJ-123
URL: https://jira.company.com/browse/PROJ-123
Stories: 5 created (PROJ-124 to PROJ-128)
Subtasks: 12 created
Last Sync: 2025-10-26T14:00:00Z

2. Import: JIRA Epic → Increment

Input: JIRA Epic key (e.g., PROJ-123)

Prerequisites:

  • Valid JIRA Epic key
  • Epic exists and is accessible
  • JIRA connection configured

Process:

  1. Fetch Epic details (via JIRA API/MCP): - Epic title, description, labels - Epic custom fields (if SpecWeave ID exists) - Priority, status
  2. Fetch linked Stories and Subtasks: - All Stories linked to Epic - All Subtasks linked to each Story - Story descriptions (acceptance criteria)
  3. Auto-number next increment: # Scan.specweave/increments/ for highest number ls.specweave/increments/ | grep -E '^[0-9]{4}' | sort -n | tail -1 # Increment by 1 → 0003
  4. Create increment folder: .specweave/increments/0003-imported-feature/
  5. Generate spec.md: --- increment_id: "0003" title: "{Epic title}" status: "{mapped from JIRA status}" priority: "{mapped from JIRA priority}" created_at: "{Epic created date}" jira: epic_key: "PROJ-123" epic_url: "https://jira.company.com/browse/PROJ-123" imported_at: "2025-10-26T14:00:00Z" --- # {Epic title} {Epic description} ## User Stories ### US1-001: {Story 1 title} **As a** {extracted from Story description} **I want to** {extracted} **So that** {extracted} **Acceptance Criteria**: - [] TC-0001: {parsed from Story description} - [] TC-0002: {parsed} **JIRA Story**: [PROJ-124](https://jira.company.com/browse/PROJ-124)
  6. Generate tasks.md: # Tasks: {Increment title} ## User Story: US1-001 - [] {Subtask 1 title} (JIRA: PROJ-130) - [] {Subtask 2 title} (JIRA: PROJ-131) ## User Story: US1-002 - [] {Subtask 3 title} (JIRA: PROJ-132)
  7. Update JIRA Epic (add custom field if available): Custom Field: SpecWeave Increment ID = 0003-imported-feature

Output:

✅ Imported from JIRA!

Increment: 0003-imported-feature
Location: .specweave/increments/0003-imported-feature/
User Stories: 5 imported
Tasks: 12 imported
JIRA Epic: PROJ-123

3. Bidirectional Sync

Trigger: Manual (/sync-jira) or webhook

Prerequisites:

  • Increment has JIRA metadata in frontmatter
  • JIRA Epic/Stories exist
  • Last sync timestamp available

Process:

  1. Detect changes since last sync: SpecWeave changes: - spec.md modified after last_sync - tasks.md modified after last_sync - Task checkboxes changed JIRA changes: - Epic/Story/Subtask updated after last_sync - Status changes - New comments
  2. Compare and detect conflicts: Conflict types: - Title changed in both (SpecWeave + JIRA) - Task marked done in SpecWeave, but JIRA Subtask still "In Progress" - Priority changed in both
  3. Present conflicts to user: ⚠️ Sync Conflicts Detected: 1. Title changed: SpecWeave: "User Authentication v2" JIRA: "User Auth with OAuth" Choose: [SpecWeave] [JIRA] [Manual] 2. Task status mismatch: Task: "Implement login endpoint" SpecWeave: ✅ completed JIRA Subtask: In Progress Choose: [Mark JIRA Done] [Uncheck SpecWeave] [Manual]
  4. Apply sync: SpecWeave → JIRA: - Update Epic/Story titles - Update Subtask statuses (checkbox → JIRA status) - Add comments for significant changes JIRA → SpecWeave: - Update spec.md frontmatter (status, priority) - Update task checkboxes (JIRA Subtask status → checkbox) - Log JIRA comments to increment logs/
  5. Update sync timestamps: jira: last_sync: "2025-10-26T16:30:00Z" sync_direction: "two-way" conflicts_resolved: 2

Output:

✅ Synced with JIRA!

Direction: Two-way
Changes Applied:
  - SpecWeave → JIRA: 3 updates
  - JIRA → SpecWeave: 5 updates
Conflicts Resolved: 2 (user decisions)
Last Sync: 2025-10-26T16:30:00Z

Edge Cases and Error Handling

Missing Fields

Problem: Increment missing spec.md or JIRA Epic missing required fields

Solution:

❌ Error: spec.md not found in increment 0001-feature-name

   Expected: .specweave/increments/0001-feature-name/spec.md

   Please create spec.md before exporting to JIRA.

JIRA API Errors

Problem: JIRA API rate limit, authentication failure, network error

Solution:

❌ JIRA API Error: Rate limit exceeded (429)

   Retry in: 60 seconds

   Alternative: Export to JSON and manually import to JIRA later.

Invalid Status Mapping

Problem: JIRA uses custom workflow statuses not in standard mapping

Solution:

⚠️  Unknown JIRA status: "Awaiting Review"

   Available mappings:
   - To Do → planned
   - In Progress → in-progress
   - Done → completed

   Map "Awaiting Review" to: [planned] [in-progress] [completed] [Custom]

Conflict Resolution

Problem: Same field changed in both SpecWeave and JIRA

Solution:

  • Always ask user for resolution
  • Provide diff view
  • Offer merge options
  • Never auto-resolve conflicts silently

Best Practices

  1. Always validate before sync - Check increment structure, JIRA connection
  2. Preserve traceability - Store JIRA keys in frontmatter, SpecWeave IDs in JIRA
  3. Ask before overwriting - Never auto-resolve conflicts
  4. Log all operations - Write sync logs to .specweave/increments/{id}/logs/jira-sync.log
  5. Handle errors gracefully - Provide actionable error messages
  6. Test mappings - Use test cases to validate accuracy

Usage Examples

Export to JIRA

User: "Export increment 0001 to JIRA"

You:
1. Read .specweave/increments/0001-*/spec.md and tasks.md
2. Extract user stories and tasks
3. Create JIRA Epic with title "[Increment 0001] {title}"
4. Create Stories for each user story
5. Create Subtasks for each task
6. Update increment frontmatter with JIRA keys
7. Present summary with Epic URL

Import from JIRA

User: "Import JIRA epic PROJ-123"

You:
1. Fetch Epic PROJ-123 via JIRA API
2. Fetch linked Stories and Subtasks
3. Auto-number next increment (e.g., 0003)
4. Generate spec.md with user stories
5. Generate tasks.md with subtasks
6. Present summary with increment location

Bidirectional Sync

User: "Sync increment 0001 with JIRA"

You:
1. Read increment frontmatter for JIRA keys
2. Detect changes since last_sync
3. Compare SpecWeave vs JIRA
4. Present conflicts (if any) for user resolution
5. Apply sync (SpecWeave ↔ JIRA)
6. Update sync timestamps
7. Present summary with changes applied


Confluence Page Sync (Atlassian Wiki)

Overview

Sync SpecWeave living docs to Confluence pages. Confluence is commonly paired with JIRA for documentation.

Reference: confluence-page-api.md

Confluence Credentials

# .env (gitignored)
CONFLUENCE_API_TOKEN=your-api-token
CONFLUENCE_EMAIL=your-email@example.com
CONFLUENCE_DOMAIN=your-domain.atlassian.net
CONFLUENCE_SPACE_KEY=PROJ

Page Update Workflow (CRITICAL)

Rule: Version MUST be incremented on every update.

# 1. GET current page to retrieve version
GET /wiki/api/v2/pages/{pageId}?body-format=storage
→ Extract: version.number, title, spaceId

# 2. PUT with incremented version
PUT /wiki/api/v2/pages/{pageId}
{
  "id": "{pageId}",
  "status": "current",
  "title": "{title}",
  "spaceId": "{spaceId}",
  "body": {
    "representation": "storage",
    "value": "<p>Updated content</p>"
  },
  "version": {
    "number": {currentVersion + 1},
    "message": "Synced from SpecWeave"
  }
}

SpecWeave → Confluence Mapping

SpecWeaveConfluenceLocation
Increment spec.mdPage/wiki/spaces/{SPACE}/pages/{pageId}
tasks.mdTask List macro<ac:task-list> in page body
Living docsChild pagesUnder parent page
AC checkboxesTask statuscomplete/incomplete

Storage Format Essentials

Confluence uses XHTML-based storage format (NOT standard HTML):

<!-- Task list for spec ACs -->
<ac:task-list>
  <ac:task>
    <ac:task-status>incomplete</ac:task-status>
    <ac:task-body>AC-001: User can login</ac:task-body>
  </ac:task>
  <ac:task>
    <ac:task-status>complete</ac:task-status>
    <ac:task-body>AC-002: Password validation</ac:task-body>
  </ac:task>
</ac:task-list>

<!-- Status macro (colored label) -->
<ac:structured-macro ac:name="status">
  <ac:parameter ac:name="colour">Green</ac:parameter>
  <ac:parameter ac:name="title">COMPLETED</ac:parameter>
</ac:structured-macro>

<!-- Code block -->
<ac:structured-macro ac:name="code">
  <ac:parameter ac:name="language">typescript</ac:parameter>
  <ac:plain-text-body><![CDATA[const x = 1;]]></ac:plain-text-body>
</ac:structured-macro>

Metadata Storage

{
  "external_sync": {
    "jira": { "issueKey": "PROJ-123" },
    "confluence": {
      "pageId": "123456789",
      "pageUrl": "https://company.atlassian.net/wiki/spaces/PROJ/pages/123456789",
      "spaceKey": "PROJ",
      "lastSyncedAt": "2026-02-02T10:30:00Z"
    }
  }
}

Common Errors

ErrorCauseFix
409: Version must be incrementedStale versionRe-GET page, increment version
400: Invalid storage formatBad XHTMLSelf-close tags (<br />)
403: ForbiddenNo page permissionCheck space permissions

You are the authoritative mapper between SpecWeave and JIRA. Your conversions must be accurate, traceable, and reversible.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

26.71%
按下载量换算40

Antigravity

21.29%
按下载量换算32

Cursor

17.24%
按下载量换算26

Gemini CLI

13.22%
按下载量换算20

windsurf

7.43%
按下载量换算11

OpenCode

3.27%
按下载量换算5

安全审计

暂无安全审计结果可展示。

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills