Jira Task Manager Skill
This skill automates common Jira operations.
Resource Locations
- - Jira Configuration: Refer to references/jira.md for Jira URL, credentials, and Google Drive folder ID.
- Scripts: All automation logic resides in
scripts/.
Standard Workflows
1. List To Do Issues
scripts/get_my_todo_issues.py — Returns issues assigned to
xwang@attrix.ca in project DS with status "To Do".
2. Get Issue Details
scripts/get_issue_description.py <ISSUE_KEY> — Returns summary and full description.
3. Create Issue
scripts/create_issue.py — Requires: Project Key, Issue Type, Summary. Optional: description template from Google Drive, Priority, Assignee.
4. Update Issue
scripts/update_issue.py — Requires: Issue Key, field, new value. Uses transition IDs for status changes.
5. Add Comment
scripts/add_comment.py — Requires: Issue Key, comment text. Optional: attachment from Google Drive.
6. Get Issue Info
scripts/get_issue_info.py <ISSUE_KEY> — Returns current status, assignee, and metadata.
7. Prepare Repo
scripts/sync_repo.py <ISSUE_KEY> — Finds repo via
references/repos.json, fetches remote, checks out or creates
feature/<ISSUE_KEY> branch. Reports
repo_path and
branch. Optional:
--branch <name> to force branch name.
8. Full Task Execution Flow (End-to-End)
Trigger: "work on DS-XXX", "fix DS-XXX", "pick up DS-XXX". Follow steps in order without asking unless blocked.
- 1.
get_issue_info.py → summarize task, acceptance criteria, subtasks. - Confirm with user — wait for explicit approval before proceeding.
- INLINECODE15 → report
repo_path and branch. All edits are relative to repo_path. - Read relevant source files before making any changes.
- Implement changes. No per-edit confirmations unless scope is ambiguous.
- INLINECODE19 → fix failures, re-run until passing.
- Report: what changed, test results, branch. Stop and wait — do not merge, push, or transition status until user approves.
9. React/Zustand State Persistence Bugs
Trigger: Field reverts after navigation or re-entering a detail page.
- - Sync field updates back to the global store immediately after a successful mutation.
- Keep per-entity overrides (keyed by entity id) and merge after re-fetch rather than caching the whole object.
- Audit
useMemo/useCallback/useEffect deps for stale closures. Use selector-based Zustand subscriptions for high-traffic components. - Apply the smallest safe fix — avoid broadening cache scope unnecessarily.
Important Notes
- - All Jira API interactions will be performed using the credentials stored in
references/jira.md. - Repo-to-issue mapping and test commands are configured in references/repos.json.
- For security, ensure
JIRA_API_TOKEN is kept confidential.
Jira 任务管理器技能
该技能可自动化常见的 Jira 操作。
资源位置
- - Jira 配置:请参考 references/jira.md 获取 Jira URL、凭据和 Google Drive 文件夹 ID。
- 脚本:所有自动化逻辑均位于 scripts/ 目录中。
标准工作流程
1. 列出待办事项
scripts/get
mytodo_issues.py — 返回分配给 xwang@attrix.ca、项目为 DS、状态为待办的问题。
2. 获取问题详情
scripts/get
issuedescription.py <问题键> — 返回摘要和完整描述。
3. 创建问题
scripts/create_issue.py — 必需项:项目键、问题类型、摘要。可选项:来自 Google Drive 的描述模板、优先级、经办人。
4. 更新问题
scripts/update_issue.py — 必需项:问题键、字段、新值。使用转换 ID 进行状态变更。
5. 添加评论
scripts/add_comment.py — 必需项:问题键、评论内容。可选项:来自 Google Drive 的附件。
6. 获取问题信息
scripts/get
issueinfo.py <问题键> — 返回当前状态、经办人和元数据。
7. 准备仓库
scripts/sync
repo.py <问题键> — 通过 references/repos.json 查找仓库,获取远程仓库,检出或创建 feature/<问题键> 分支。报告 repopath 和 branch。可选项:--branch <名称> 强制指定分支名称。
8. 完整任务执行流程(端到端)
触发条件:处理 DS-XXX、修复 DS-XXX、接手 DS-XXX。按顺序执行步骤,除非遇到阻塞,否则无需询问。
- 1. getissueinfo.py → 总结任务、验收标准、子任务。
- 与用户确认 — 等待明确批准后再继续。
- syncrepo.py <问题键> → 报告 repopath 和 branch。所有编辑操作均相对于 repopath。
- 在进行任何更改前,先阅读相关源文件。
- 实施更改。除非范围不明确,否则无需逐次确认编辑。
- runtests.py --issue <问题键> → 修复失败项,重新运行直至通过。
- 报告:变更内容、测试结果、分支。停止并等待 — 在用户批准前,不要合并、推送或转换状态。
9. React/Zustand 状态持久化错误
触发条件:导航或重新进入详情页面后字段恢复原值。
- - 在成功变更后立即将字段更新同步回全局存储。
- 保留按实体覆盖的值(以实体 ID 为键),在重新获取后合并,而不是缓存整个对象。
- 审计 useMemo/useCallback/useEffect 的依赖项是否存在陈旧闭包。对高流量组件使用基于选择器的 Zustand 订阅。
- 应用最小安全修复 — 避免不必要地扩大缓存范围。
重要说明
- - 所有 Jira API 交互将使用 references/jira.md 中存储的凭据执行。
- 仓库到问题的映射和测试命令在 references/repos.json 中配置。
- 为安全起见,请确保 JIRAAPI_TOKEN 保密。