Standardized logging of agent actions, decisions, and handoffs via Jira comments for complete audit trail.
/plugin marketplace add marcel-Ngan/ai-dev-team/plugin install marcel-ngan-ai-dev-team@marcel-Ngan/ai-dev-teamThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Standardized logging of agent actions, decisions, and handoffs via Jira comments for complete audit trail.
| Tool | Purpose |
|---|---|
Atlassian:addCommentToJiraIssue | Add comments |
Atlassian:getJiraIssue | Read existing comments |
All values come from config/project.json:
{
"cloudId": "{{jira.cloudId}}"
}
All agent comments must start with:
š¤ **[Agent Name] Agent**
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **Business Analyst Agent**
**Action:** Created acceptance criteria
**Details:**
- Added 4 acceptance criteria based on stakeholder requirements
- Identified 2 edge cases for review
- No blocking dependencies found
**Next:** Product Owner validation`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **Business Analyst Agent** ā **Software Architect Agent**
**Handoff:** Technical review needed
**Context:**
- Story fully analyzed
- 4 acceptance criteria defined
- Stakeholder confirmed requirements
**Questions for Architect:**
1. Recommended authentication approach?
2. Any concerns with session handling?
**Attached:** Requirements analysis complete`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **Software Architect Agent**
**Decision Made:** Technical approach selected
**Decision:** Use JWT tokens for authentication
**Rationale:**
- Stateless, scales horizontally
- Industry standard
- Existing library support
**Alternatives Considered:**
- Session-based: Rejected (scaling concerns)
- OAuth only: Rejected (adds complexity for MVP)
**Impact:** Affects all auth-related stories`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **Senior Developer Agent**
**š« Blocker Identified**
**Issue:** Cannot proceed with email sending
**Reason:** SMTP configuration not available
**Blocked Since:** 2024-01-15
**Impact:**
- This story blocked
- Email verification story also affected
**Required Action:**
DevOps to provide SMTP credentials
**Escalated To:** Orchestrator for stakeholder notification`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **DevOps Engineer Agent**
**ā
Blocker Resolved**
**Issue:** SMTP configuration
**Resolution:** Credentials added to environment config
**Blocked Duration:** 2 days
**Verification:**
- Test email sent successfully
- All environments updated
**Next:** Development can resume`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **Senior Developer Agent**
**Code Review Complete**
**PR:** #123
**Status:** Changes Requested
**Feedback:**
1. ā ļø Add input validation for email field
2. ā ļø Missing error handling for network failures
3. ā
Good test coverage
4. ā
Clean code structure
**Required Changes:** 2
**Next:** Junior Developer to address feedback`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **QA Engineer Agent**
**Testing Complete**
**Environment:** Staging
**Test Cases:** 8 executed
**Results:**
- ā
Passed: 7
- ā Failed: 1
**Failed Test:**
- TC-04: Password reset with expired link
- Expected: Error message
- Actual: Application error
**Bug Created:** PROJECT-67
**Verdict:** Cannot accept until bug fixed`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **Orchestrator Agent**
**š Escalated to Stakeholder**
**Decision Required:** Scope clarification
**Question:**
Should password reset allow username OR email, or email only?
**Options:**
1. Email only (simpler, more secure)
2. Username or email (more user-friendly)
**Recommendation:** Option 1 (email only)
**Impact:** Affects acceptance criteria #2
**Awaiting:** Stakeholder decision
**Ticket:** Assigned to stakeholder`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **Orchestrator Agent**
**ā
Stakeholder Decision Received**
**Question:** Password reset identifier
**Decision:** Email only (Option 1)
**Decided By:** {{STAKEHOLDER_NAME}}
**Date:** 2024-01-15
**Rationale:** Security preference over convenience for MVP
**Actions:**
- Updated acceptance criteria
- Logged in Decision Log (Confluence)
- Notified Business Analyst
**Story unblocked, proceeding with implementation.`
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `š¤ **Orchestrator Agent** - Sprint Planning
**Assigned to Sprint 6**
**Sprint Goal:** Complete user authentication flow
**Capacity Check:** ā
Within velocity
**Commitment:**
- Story points: 5
- Sprint total: 27/30 points
**Dependencies:** None blocking
**Ready to start:** Day 1 of sprint`
})
Atlassian:getJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
expand: "renderedFields,changelog"
})
| Agent | Primary Comment Types |
|---|---|
| All Agents | Action completed, handoffs |
| Orchestrator | Escalations, decisions, sprint assignments |
| Senior Developer | Code review, technical decisions |
| QA Engineer | Test results, bug references |
| DevOps Engineer | Blocker resolution, deployment notes |
| Error | Cause | Resolution |
|---|---|---|
| 400 Bad Request | Invalid markdown | Simplify formatting |
| 403 Forbidden | No comment permission | Check project permissions |
| 404 Not Found | Invalid issue key | Verify issue exists |
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.