npx claudepluginhub minukHwang/claude-plugins --plugin jira/createCreates a new beads issue interactively or via title, type (bug/feature/task/epic/chore/decision), and priority args. Uses beads MCP create tool, shows ID/details, offers linking.
/createLaunches Socratic workflow designer subagent to create orchestration workflows from natural language descriptions using interactive questioning. Accepts optional initial description argument.
/createCreates a new scaffold template in .scaffold/<name> with scaffold.yaml config, Go template files for project or template scaffolds, and validates via lint and dry-run generation.
/createCreates a workspace directory with git worktrees for multi-repository development. Parses description for GitHub PRs, JIRA keys, and repos; sets up feature branches or PR checkouts.
/createAnalyzes project state (git, Node.js, Python, Rust, Go) and creates 9 baseline Markdown context files in .claude/context/ for structure, tech, progress, vision, and more.
/createCreates a new NotebookLM notebook via CLI with given title and optional sources (URLs, files, YouTube, PDFs, etc.). Reports notebook ID and added sources.
Create a new issue in the configured Jira project with optional Notion TODO sync.
cat .claude/workflow.json 2>/dev/null
If not exists or jira.enabled is false:
✗ Jira integration not configured.
Run /workflow:init to set up Jira integration.
Extract:
jira.cloudId - Cloud ID for API callsjira.siteUrl - Atlassian site URL (e.g., yoursite.atlassian.net)jira.projectKey - Project key for issue creationnotion.enabled - Whether to sync to Notioncat ~/.claude/notion.json 2>/dev/null
Extract:
todo.id - TODO database ID (user-level config)First, fetch available issue types:
mcp__atlassian__getJiraProjectIssueTypesMetadata:
cloudId: {jira.cloudId}
projectIdOrKey: {jira.projectKey}
Note: Issue type names may be localized (e.g., Korean: 작업, 버그, 스토리, 에픽).
Use the name field from the API response, not hardcoded English names.
Ask user (AskUserQuestion): "Select issue type:"
Present options from API response (common types):
| Option | Description |
|---|---|
| Task (작업) | Small individual work item |
| Bug (버그) | Problem or error to fix |
| Story (스토리) | User story or feature |
| Epic (에픽) | Collection of related issues |
If selected type is NOT Epic (에픽):
Query existing Epics in project:
mcp__atlassian__searchJiraIssuesUsingJql:
cloudId: {jira.cloudId}
jql: "project = {jira.projectKey} AND type = Epic ORDER BY created DESC"
maxResults: 10
fields: ["summary"]
If Epics found, ask user (Cascading Selection):
Round 1 (first 3 + None/More):
Ask user (AskUserQuestion): "상위 Epic을 선택하세요:"
| Option | Description |
|---|---|
| {epic1.key} | {epic1.summary} |
| {epic2.key} | {epic2.summary} |
| {epic3.key} | {epic3.summary} |
| More.../None | Show more or create standalone |
Round 2 (if More...):
| Option | Description |
|---|---|
| {epic4.key} | {epic4.summary} |
| {epic5.key} | {epic5.summary} |
| {epic6.key} | {epic6.summary} |
| None | Create as standalone issue |
If no Epics found:
Store selected Epic info:
{selected_epic_key} - Epic issue key (e.g., CP-1){selected_epic_summary} - Epic summary for NotionAsk user (AskUserQuestion): "Enter issue summary (title):"
User enters the summary text.
Ask user (AskUserQuestion): "Enter issue description (or leave empty):"
Note: Description field is required by Jira API. If user skips, use empty string "".
Ask user (AskUserQuestion): "Select priority:"
| Option | Description |
|---|---|
| High | Urgent, needs immediate attention |
| Medium | Normal priority (Recommended) |
| Low | Can be addressed later |
Ask user (AskUserQuestion): "Set due date?"
| Option | Description |
|---|---|
| Yes | Enter due date |
| No | Create without due date |
If Yes:
Get current date:
date +%Y-%m-%d
Calculate date options based on current date:
{current_date} + 7 days{current_date} + 14 daysPrompt user for date selection (YYYY-MM-DD format)
Store as {due_date}
Ask user (AskUserQuestion): "Set start date?"
| Option | Description |
|---|---|
| Today | Start working now |
| Custom | Enter specific date |
| Skip | Set later via /jira:start |
If Today:
date +%Y-%m-%d
Store as {start_date}.
If Custom:
Prompt user for date selection (YYYY-MM-DD format).
Store as {start_date}.
If Skip:
{start_date} remains empty (will be set by /jira:start).
mcp__atlassian__atlassianUserInfo
Extract {current_user_account_id} from response.
Call mcp__atlassian__createJiraIssue:
cloudId: {jira.cloudId}
projectKey: {jira.projectKey}
issueTypeName: {selected_type} # Use localized name from Step 1
summary: {entered_summary}
description: {entered_description} # Required, use "" if empty
parent: {selected_epic_key} # Only if Epic selected in Step 1.5
assignee_account_id: {current_user_account_id} # Auto-assign to self
If {due_date} or {start_date} was set:
mcp__atlassian__editJiraIssue:
cloudId: {jira.cloudId}
issueIdOrKey: {created_issue_key}
fields: {
"duedate": "{due_date}", // if due_date provided
"customfield_10015": "{start_date}" // if start_date provided
}
Note: Start Date field name may vary by project:
customfield_10015, customfield_10014, Start dateNote: Priority via additional_fields may cause "Input data should be a String" error.
Set priority separately via mcp__atlassian__editJiraIssue if needed.
If notion.enabled is true (from workflow.json) and todo.id exists (from ~/.claude/notion.json):
Get git remote info:
git remote get-url origin
Parse the URL to extract:
{host}: github.com or gitlab.com{namespace}: owner/org name{project}: repository nameFormat project as markdown link: [{project}](https://{host}/{namespace}/{project})
Create Notion TODO item via mcp__notion__notion-create-pages:
parent: {"type": "data_source_id", "data_source_id": "{todo.id}"}
pages: [{
"properties": {
"Title": "{summary}",
"Type": "{issue_type}", // Epic, Story, Task, Bug (from Step 1)
"Epic": "[{epic_key}](https://{jira.siteUrl}/browse/{epic_key}) - {epic_summary}", # Only if Epic selected
"Status": "Todo",
"Project": "[{project}](https://{host}/{namespace}/{project})",
"Jira Link": "[{issueKey}](https://{jira.siteUrl}/browse/{issueKey})",
"Priority": "{priority}",
"date:Period:start": "{start_date}", // if start_date provided
"date:Period:end": "{due_date}", // if due_date provided
"date:Period:is_datetime": 0
}
}]
Note: If no Epic selected, omit the "Epic" field. Note: Omit date fields if not set (don't include empty date fields).
Note: If todo.id not found in user config, skip Notion sync with message:
⚠️ Notion TODO database not configured.
Run /workflow:init to set up Notion TODO sync.
Ask user (AskUserQuestion): "Would you like to start working on this issue now?"
| Option | Description |
|---|---|
| Yes | Run /jira:start {issueKey} |
| No | Just create the issue |
If Yes, execute /jira:start {issueKey}.
✓ Issue created: {issueKey}
Summary: {summary}
Type: {type}
Parent: {epic_key} ({epic_summary}) # if Epic selected
Priority: {priority}
Start Date: {start_date} # if set
Due Date: {due_date} # if set
Assignee: {current_user_name}
URL: https://{jira.siteUrl}/browse/{issueKey}
{if notion synced}
✓ Notion TODO item created
├── Type: {type}
├── Epic: [{epic_key}]({url}) - {epic_summary}
└── Period: {start_date} → {due_date}
{/if}
Next steps:
- /jira:start {issueKey} - Start working on this issue
- /jira:view {issueKey} - View issue details
✗ Failed to create issue: {error message}