用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/aiFabricoCom/fabrico-collections-codex --skill fabrico-jira-task-formatting命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | fabrico-jira-task-formatting |
| description | Format epics and stories for Jira with field mapping and review gates. |
This skill helps you transform an extracted task list (epics and user stories) into a Jira-ready format that can be directly pushed to Jira. It applies a consistent benchmark template to every task, preserves source traceability, validates completeness, and manages a two-gate review process before any issues are created.
Use the checklist below and track your progress:
Formatting progress:
- [ ] Step 1: Load the benchmark template and extracted tasks
- [ ] Step 2: Format each epic for Jira
- [ ] Step 3: Format each story for Jira
- [ ] Step 4: Validate completeness against benchmark
- [ ] Step 5: Flag uncertain fields and ask user
- [ ] Step 6: Formatting Review — User reviews formatted markdown
- [ ] Step 7: Save the Jira-ready tasks document
- [ ] Step 8: Push Approval — User approves Jira push
- [ ] Step 9: Create or update issues in Jira
- [ ] Step 10: Post-push verification against Jira
- [ ] Step 11: Archive session artifacts and refresh the project baseline
Step 1: Load the benchmark template and extracted tasks
Load two inputs:
./jira-task.example.md) which defines the expected structure and fields for Jira epics and storiesextracted-tasks.md) produced by the fabrico-task-extracting skillReview the benchmark template to understand:
Step 2: Format each epic for Jira
For each epic in the extracted tasks document, create a Jira-ready epic entry with:
Protected Status Guard: If an epic has a protected status (Done, Cancelled, PO APPROVE), preserve its content exactly as imported. Do not reformat, reword, or modify any fields. Mark it with
🔒in the output and skip all formatting steps below for this epic.
Step 3: Format each story for Jira
For each user story, create a Jira-ready story entry with:
Protected Status Guard: If a story has a protected status (Done, Cancelled, PO APPROVE), preserve its content exactly as imported. Do not reformat, reword, or modify any fields. Mark it with
🔒in the output and skip all formatting steps below for this story.
GIVEN / WHEN / THEN criteria are valid and should remain readable after formattingStep 4: Validate completeness against benchmark
Protected Status Guard: Skip completeness validation for tasks with a protected status (Done, Cancelled, PO APPROVE) — their content is preserved as-is and is not subject to benchmark compliance.
Cross-check every formatted task against the benchmark template:
Create a summary table showing completeness status for each task.
Step 5: Flag uncertain fields and ask user
Protected Status Guard: Do not flag or ask the user about fields on tasks with a protected status (Done, Cancelled, PO APPROVE). These tasks are read-only and their fields cannot be changed.
For any task where:
Ask the user directly to get user input. Ask exactly one question per focused question, each scoped to a single epic or story. The question must identify which task has the uncertain field and what field is missing (e.g., "[Epic 2: Payment Processing > Story 2.1: User can checkout] The priority for this story could not be determined from the workshop materials. Should it be High (core MVP) or Medium (post-MVP)?"). Do not proceed to the review gate until all flags are resolved.
Step 6: Formatting Review — User reviews formatted markdown
Present the formatted output to the user for review. If changes were made during formatting (e.g., rewording, priority adjustments), present each changed task individually with one focused question per task, identifying the specific epic/story and the change made. Ask: "Is this change acceptable?"
After all individual changes are reviewed, ask one workflow-level question: "All formatting is complete. Are you happy with these tasks? Any final changes before I proceed to save and push?"
The user must explicitly approve before proceeding. If changes are requested, update and re-present the affected tasks individually.
Step 7: Save the Jira-ready tasks document
Generate the final output following the ./jira-task.example.md template format.
Include the Jira Key field for every epic and story. For newly formatted tasks (not yet pushed to Jira), set the Jira Key to — as a placeholder. For tasks imported from Jira or previously pushed, preserve their existing Jira key.
Save the file to specifications/<workshop-name>/jira-tasks.md.
Step 8: Push Approval — User approves Jira push
Before creating any issues in Jira, confirm with the user:
This is the final gate — after this, issues will be created in Jira.
Step 9: Create or update issues in Jira
Before pushing, present a sync summary to the user:
—) — list titles and countPROJ-123, and status is NOT protected) — list titles, keys, and countUsing the Atlassian tools, process issues based on their Jira Key:
For tasks without a Jira Key (create):
jira-tasks.md with the returned Jira issue key — do not wait until all issues are createdjira-tasks.md with its Jira keyFor tasks with an existing Jira Key (update):
After all issues are processed, report the final state back to the user — showing all Jira keys in jira-tasks.md and confirming which were created, updated, and skipped (with their statuses).
Step 10: Post-push verification against Jira
After the Jira sync succeeds, read back the created or updated issues and verify at least the following for each task:
If verification finds mismatches, surface them clearly and do not claim the push is fully verified until the differences are resolved or explicitly acknowledged by the user.
Step 11: Archive session artifacts and refresh the project baseline
When verification succeeds, archive the current session artifacts under specifications/projects/<project-name>/sessions/<YYYY-MM-DD>-<workshop-name>/.
specifications/projects/<project-name>/task-baseline.mdJira Key as the primary identity when merging baseline entriesIf any issue creation or update fails, inform the user immediately and ask how to proceed.
When the user requests a change to a specific task outside of the main formatting workflow (e.g., "add acceptance criteria to Story 2.3" or "change the priority of Epic 1"):
jira-tasks.md first — apply the requested change to the file—), inform the user that the task has not been pushed yet and offer to create itjira-tasks.md until the next batch pushWhen formatting descriptions and acceptance criteria for Jira:
h2., h3. for headings (not ##, ###)*bold* for bold text (not **bold**)_italic_ for italic text (not *italic*)* item for bullet lists (with space after asterisk)# item for numbered lists{noformat} or {code} blocks for preformatted text(/) criterion for checklist items (Jira checkbox format)(/) GIVEN ... WHEN ... THEN ...Note: The markdown file saved locally uses standard markdown. The Jira-specific formatting is applied only when creating the actual issues.
This is an alternative entry point for the skill. Instead of formatting extracted tasks, the agent fetches existing Jira issues and converts them into the jira-tasks.md format with Jira keys pre-populated. This enables iterating on existing Jira backlogs using the agent's skills.
Import progress:
- [ ] Step I-1: Identify import target
- [ ] Step I-2: Fetch issues from Jira
- [ ] Step I-3: Map Jira fields to benchmark template
- [ ] Step I-4: Generate jira-tasks.md
- [ ] Step I-5: Present imported tasks for user review
- [ ] Step I-6: Save to specifications directory
Step I-1: Identify import target
Ask the user to specify what to import. Accept any of these:
PROJ) — imports all epics and their linked storiesPROJ-10, PROJ-15) — imports those epics and their child storiesUse one focused question to determine the import scope if the user hasn't specified it.
Step I-2: Fetch issues from Jira
Using the Atlassian MCP server tools:
Step I-3: Map Jira fields to benchmark template
Convert each fetched issue into the benchmark template format:
| Jira Field | Template Field | Notes |
|---|---|---|
| Summary | Title (Summary) | Direct mapping |
| Description | Description sections | Parse into structured sections (Overview/Value/Metrics for epics; Context/User Story/Requirements/Technical Notes for stories). If the Jira description does not follow a structured format, restructure it to match the template as closely as possible. |
| Priority | Priority | Direct mapping (Highest/High/Medium/Low) |
| Labels | Labels | Direct mapping |
| Issue Key | Jira Key | Populate directly (e.g., PROJ-123) |
| Parent link | Parent epic reference | Map to parent epic title |
| Story Points | Story Points / Sizing Guidance | If estimated, include; otherwise mark as TBD |
| Status | Status | Direct mapping of the Jira workflow status (e.g., To Do, In Progress, Done). Used to enforce the Protected Status Policy. |
If an imported description cannot be cleanly restructured into the benchmark format, flag it for user review with one focused question per flagged task.
Protected Status Handling on Import: After mapping all fields, check each imported task's Status. If the status is Done, Cancelled, or PO APPROVE, mark the task as read-only by adding a
🔒indicator next to its title. These tasks are imported for visibility but must never be modified locally or pushed back to Jira. Preserve their content exactly as fetched.
Step I-4: Generate jira-tasks.md
Create the jira-tasks.md file with all imported tasks in the benchmark template format. Every task must have its Jira Key field populated with the actual Jira issue key.
Step I-5: Present imported tasks for user review
Present each imported task to the user for review with one focused question per task. Highlight any descriptions that were restructured or fields that could not be mapped cleanly. Ask: "Does this imported task look correct?"
Step I-6: Save to specifications directory
Save the final file to specifications/<project-or-topic>/jira-tasks.md.
After import, the user can modify the local file. For each change, the agent asks whether to push it to Jira immediately (using the Per-Change Modification Flow above). The user can also batch-push all local changes later using the standard push flow (Step 8 → Step 9).
fabrico-task-extracting - provides the extracted tasks used as input for formatting