Automatically detect and update linked issues after commits or artifact changes.
Automatically updates linked issues when commits or artifacts reference them.
/plugin marketplace add jmagly/aiwg/plugin install sdlc@aiwgThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Automatically detect and update linked issues after commits or artifact changes.
This skill maintains issue tracker synchronization by:
When triggered, this skill:
Detects issue references:
Classifies reference type:
Fixes, Closes, Resolves → Close issueImplements, Addresses, Part of → Add progress commentRefs, See, Related to → Add reference commentBlocks, Blocked by → Add blocker notificationGathers context:
Generates appropriate comment:
task-completed.md template for closureprogress-update.md template for progressblocker-found.md template for blockersUpdates issues via API:
gh CLI) or Gitea (using MCP tools)Reports results:
| Pattern | Action | Example |
|---|---|---|
Fixes #N | Close issue | git commit -m "Fixes #17: Add auth" |
Closes #N | Close issue | git commit -m "Closes #17" |
Resolves #N | Close issue | git commit -m "Resolves #17" |
Implements #N | Progress update | git commit -m "Implements #17 partially" |
Addresses #N | Progress update | git commit -m "Addresses #17" |
Part of #N | Progress update | git commit -m "Part of #17" |
Related to #N | Reference comment | git commit -m "Related to #17" |
Refs #N | Reference comment | git commit -m "Refs #17" |
See #N | Reference comment | git commit -m "See #17" |
Blocks #N | Blocker notification | git commit -m "Blocks #17" |
Blocked by #N | Blocker notification | git commit -m "Blocked by #17" |
Multi-issue support:
git commit -m "Fixes #17, Closes #18, Addresses #19"
Each issue is processed separately.
Cross-repository:
git commit -m "Fixes owner/repo#123"
Updates issue in the specified repository.
Metadata section:
## References
- Primary issue: #17
- Related: #18, #19
- Blocks: #20
Frontmatter:
---
issue: 17
related_issues: [18, 19]
blocked_by: 16
---
Inline mentions:
This feature addresses issue #17 by implementing automatic synchronization.
TODO comments:
// TODO(#17): Add retry logic
// FIXME(#17): Handle edge case
Documentation comments:
/**
* @issue #17
* @implements @.aiwg/requirements/UC-017.md
*/
export class IssueSync {}
Test descriptions:
describe('Issue #17: Auto-sync', () => {
it('should detect issue references', () => {});
});
For each detected issue, collect:
Commit Information:
Change Statistics:
Artifact Context:
Build/Test Context:
## Task Completed
**Status**: Completed
**Completed by**: {author_name}
**Completion date**: {commit_timestamp}
## Summary of Work
{commit_message}
## Changes Made
### Files Modified
{list_of_changed_files_with_categorization}
**Code Changes**:
- `{file_path}` (+{lines} -{lines})
**Tests Added**:
- `{test_file_path}` (+{lines} -{lines})
**Documentation**:
- `{doc_file_path}` (+{lines} -{lines})
### Statistics
- Total files changed: {count}
- Lines added: {count}
- Lines removed: {count}
## Commit Details
- **Commit**: {repo}@{short_sha}
- **Branch**: {branch_name}
- **Full SHA**: {full_sha}
- **View**: {commit_url}
## Verification
- [x] Code committed and pushed
- [ ] CI/CD pipeline (check: {ci_url})
- [ ] Code review (if required)
- [ ] Ready for deployment
## Related Items
- Commit: {repo}@{sha}
{if_applicable}
- Related PR: #{pr_number}
- Related issues: #{issue_numbers}
- Artifacts: {artifact_paths}
---
*Automated completion notice from commit {short_sha}. Please review and verify.*
## Progress Update
**Status**: In Progress
**Updated by**: {author_name}
**Update date**: {commit_timestamp}
**Progress**: {estimate}% complete
## Work Completed
{commit_message}
### Changes in This Update
**Files modified**: {count}
{key_file_list}
**Lines changed**: +{added} -{removed}
### Commits in This Update
- {short_sha}: {message}
## Current Status
{infer_from_commit_and_files}
## Commit Reference
- **Commit**: {repo}@{short_sha}
- **Branch**: {branch_name}
- **View**: {commit_url}
---
*Automated progress update from commit {short_sha}.*
## Blocker Alert
**Status**: Blocked
**Reported by**: {author_name}
**Reported date**: {commit_timestamp}
**Severity**: {infer_from_context}
## Blocker Description
{commit_message}
## Context
Related commit: {repo}@{short_sha}
{additional_context_from_changed_files}
## Impact
{analyze_blocking_relationship}
## Commit Reference
- **Commit**: {repo}@{short_sha}
- **Branch**: {branch_name}
- **View**: {commit_url}
---
*Automated blocker notification from commit {short_sha}. Please address this blocking issue.*
gh CLI)# Add comment
gh issue comment {issue_number} --body "{comment_body}"
# Close issue
gh issue close {issue_number} --comment "{completion_comment}"
# Add label
gh issue edit {issue_number} --add-label "completed"
# Add comment
mcp__gitea__create_issue_comment \
--owner {owner} \
--repo {repo} \
--issue_number {number} \
--body "{comment_body}"
# Close issue
mcp__gitea__edit_issue \
--owner {owner} \
--repo {repo} \
--issue_number {number} \
--state closed
# Then add completion comment
# Check remotes to determine platform
git remote -v
# If github.com → Use gh CLI
# If git.integrolabs.net or other Gitea → Use MCP tools
# Prefer origin remote if multiple remotes present
https://example.com/issues/123v1.2.3[skip-issue-sync]Issue not found:
Warning: Issue #123 not found. Skipping update.
Permission denied:
Warning: Cannot update issue #123 - insufficient permissions. Manual update required.
API rate limit:
Warning: API rate limit reached. Queuing updates for retry.
.aiwg/config.yamlissue_auto_sync:
enabled: true
platforms:
- github
- gitea
# When to run
triggers:
post_commit: true
artifact_update: true
manual: true
# Detection patterns
patterns:
close: ["Fixes", "Closes", "Resolves"]
progress: ["Implements", "Addresses", "Part of"]
reference: ["Refs", "See", "Related to"]
blocker: ["Blocks", "Blocked by"]
# Behavior
auto_close: true
auto_label: true
notify_dependencies: true
# Safety
skip_patterns:
- "\\[skip-issue-sync\\]"
- "https?://.*/issues/\\d+"
- "v\\d+\\.\\d+\\.\\d+"
# Scanning
scan_commits: 1 # Number of commits to scan
scan_artifacts: true
scan_code_comments: false # Disable for performance
Post-commit hook (.git/hooks/post-commit):
#!/bin/bash
# Auto-sync issues after commit
# Check if skill is enabled
if grep -q "issue_auto_sync: enabled: true" .aiwg/config.yaml 2>/dev/null; then
# Run issue sync skill
aiwg skill run issue-auto-sync
fi
Pre-push hook (bulk sync before push):
#!/bin/bash
# Sync all commits in push
# Get commits being pushed
commits=$(git log origin/main..HEAD --pretty=format:"%H")
# Run sync for each
for commit in $commits; do
aiwg issue-sync --commit $commit
done
# Commit references issue
git commit -m "Fixes #17: Add issue sync automation"
git push
# Skill automatically runs (if post-commit hook enabled)
# Or manually trigger
aiwg skill run issue-auto-sync
Output:
"Issue Auto-Sync Complete
Commits scanned: 1
Issues detected: 1
Updated Issues:
✅ #17 - Closed with completion comment
Commit: abc123
Action: Closed issue with task-completed template
No errors."
# Scan last 5 commits
aiwg issue-sync --scan-recent 5
Output:
"Issue Auto-Sync Complete
Commits scanned: 5
Issues detected: 3
Updated Issues:
✅ #17 - Closed
✅ #18 - Progress update added
✅ #19 - Reference comment added
Skipped:
⚠️ #20 - Already closed
⚠️ #21 - Issue not found"
When .aiwg/requirements/UC-017.md is updated with:
## References
- Primary issue: #17
- Related: #18
Skill detects reference and adds comment to #17:
"Referenced in artifact: .aiwg/requirements/UC-017.md
This issue is now documented in requirements."
## Issue Auto-Sync Report
**Run time**: {timestamp}
**Trigger**: {post-commit|manual|artifact-update}
**Scope**: {commit_range_or_artifacts}
### Summary
- Commits scanned: {count}
- Artifacts scanned: {count}
- Issues detected: {count}
- Issues updated: {count}
- Errors: {count}
### Actions Taken
#### Closed Issues ({count})
- #17 - "Add issue sync automation"
- Commit: abc123
- Comment: task-completed.md
- Label added: completed
#### Progress Updates ({count})
- #18 - "Update documentation"
- Commit: def456
- Comment: progress-update.md
- Label added: in-progress
#### Reference Comments ({count})
- #19 - "Refactor API"
- Commit: ghi789
- Comment: reference
#### Blocker Notifications ({count})
- #20 - "Deploy pipeline"
- Blocked by: #21
- Notified in commit jkl012
### Skipped ({count})
- #22 - Already closed
- #23 - Issue not found
- #24 - Permission denied
### Errors ({count})
{if_any}
- API rate limit reached (queued for retry)
- Connection timeout for issue #25
### Next Actions
{if_applicable}
- Review closed issues: #{numbers}
- Address permission issues: #{numbers}
- Retry failed updates: #{numbers}
Clear intent:
✅ Good: "Fixes #17: Add automatic issue synchronization"
❌ Bad: "Fixed stuff"
Multiple issues:
✅ Good: "Fixes #17, Addresses #18, Related to #19"
❌ Bad: "Fixes 17 18 19" (ambiguous)
Descriptive context:
✅ Good: "Implements #17: Add commit message parsing and API integration"
❌ Bad: "Implements #17" (no context)
Explicit in metadata:
## References
- Primary: #17 - Issue sync automation
- Related: #18 - Documentation updates
- Blocks: #20 - Until API integration complete
Clear in descriptions:
This feature implements issue #17 by adding automatic synchronization
between git commits and issue trackers.
.aiwg/reports/issue-sync-{timestamp}.md.aiwg/logs/issue-sync-errors.log.aiwg/logs/issue-updates.jsonActivates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.