Standard format for ALL GitHub issues created by SpecWeave. Ensures checkable acceptance criteria, task connections, working links, and consistent metadata. Activates for create GitHub issue, sync to GitHub, format GitHub issue, standardize issue.
Enforces SpecWeave's mandatory GitHub issue format with clickable links and checkable criteria. Activates when creating or syncing issues via commands like `/sw-github:create-issue` or `/sw-github:sync`.
/plugin marketplace add anton-abyzov/specweave/plugin install sw-github@specweaveThis skill inherits all available tools. When active, it can use any tool Claude has access to.
CRITICAL: This is the MANDATORY format for ALL GitHub issues created by SpecWeave, whether for:
[FS-XXX][US-YYY] User Story Title ← STANDARD (User Stories)
[FS-XXX] Feature Title ← Rare (Feature-level only)
Examples:
[FS-059][US-003] Hook Optimization (P0)[FS-054][US-001] Fix Reopen Desync Bug (P0)[FS-048] Smart Pagination Feature[BUG] Title ← WRONG! Bug is a LABEL, not title prefix
[HOTFIX] Title ← WRONG! Hotfix is a LABEL
[FEATURE] Title ← WRONG! Feature is a LABEL
[DOCS] Title ← WRONG! Docs is a LABEL
[Increment XXXX] Title ← DEPRECATED! Old format
Why? Type-based prefixes like [BUG] break traceability:
Increment → Living Docs → GitHubWhat to do instead?
bug, enhancement, hotfixThe GitHub client (github-client-v2.ts) enforces this:
[BUG], [HOTFIX], [FEATURE], etc.[Increment XXXX] format[FS-XXX][US-YYY] or [FS-XXX] formatsEvery GitHub issue MUST include:
Checkable Acceptance Criteria
- [x] or - [ ]- [x] **AC-US4-01**: Description (P1, testable)Checkable Tasks
- [x] [T-008: Title](https://github.com/owner/repo/tree/develop/.specweave/increments/0031/tasks.md#t-008-title)Working GitHub URLs (v5.0.0+ - NO _features folder)
https://github.com/owner/repo/tree/develop/.specweave/docs/internal/specs/{project}/FS-031https://github.com/owner/repo/tree/develop/.specweave/docs/internal/specs/{project}/FS-031/us-004-*.mdhttps://github.com/owner/repo/tree/develop/.specweave/increments/0031/tasks.md#task-anchorhttps://github.com/owner/repo/tree/develop/.specweave/increments/0031Note: Feature ID is DERIVED from increment (0031 → FS-031)
Extracted Priority
**Priority**: P1NO Project Field
**Project**: ... - not needed for GitHub issues../../{project}/FS-031)**Priority**: undefined)File: plugins/specweave-github/lib/user-story-content-builder.ts
This is the gold standard implementation. All other builders must follow this pattern.
Key features:
// 1. Accept GitHub repo parameter
async buildIssueBody(githubRepo?: string): Promise<string>
// 2. Auto-detect repo from git remote
private async detectGitHubRepo(): Promise<string | null>
// 3. Extract priority from ACs
private extractPriorityFromACs(criteria: AcceptanceCriterion[]): string | null
// 4. Generate GitHub URLs (not relative) - v5.0.0+: No _features folder
const featureUrl = `https://github.com/${repo}/tree/develop/.specweave/docs/internal/specs/${project}/${featureId}`;
// 5. Convert task links to GitHub URLs
if (repo && taskLink.startsWith('../../')) {
const relativePath = taskLink.replace(/^\.\.\/\.\.\//, '.specweave/');
taskLink = `https://github.com/${repo}/tree/develop/${relativePath}`;
}
**Feature**: [FS-031](https://github.com/owner/repo/tree/develop/.specweave/docs/internal/specs/{project}/FS-031)
**Status**: complete
**Priority**: P1
---
## User Story
**As a** user
**I want** feature
**So that** benefit
📄 View full story: [`us-004-name.md`](https://github.com/owner/repo/tree/develop/.specweave/docs/internal/specs/{project}/FS-031/us-004-name.md)
---
## Acceptance Criteria
Progress: 4/6 criteria met (67%)
- [x] **AC-US4-01**: Description (P1, testable)
- [x] **AC-US4-02**: Description (P1, testable)
- [ ] **AC-US4-03**: Description (P2, testable)
- [ ] **AC-US4-04**: Description (P2, testable)
---
## Implementation Tasks
Progress: 3/6 tasks complete (50%)
**Increment**: [0031-name](https://github.com/owner/repo/tree/develop/.specweave/increments/0031-name)
- [x] [T-008: Title](https://github.com/owner/repo/tree/develop/.specweave/increments/0031/tasks.md#t-008-title)
- [x] [T-009: Title](https://github.com/owner/repo/tree/develop/.specweave/increments/0031/tasks.md#t-009-title)
- [ ] [T-010: Title](https://github.com/owner/repo/tree/develop/.specweave/increments/0031/tasks.md#t-010-title)
---
🤖 Auto-synced by SpecWeave
All GitHub issue content is generated by these builders:
UserStoryIssueBuilder (plugins/specweave-github/lib/user-story-issue-builder.ts)
us-*.md files[FS-XXX][US-YYY] Title formatGitHubFeatureSync (plugins/specweave-github/lib/github-feature-sync.ts)
All GitHub sync commands use the Universal Hierarchy:
/sw-github:sync - Sync increments via Feature/UserStory hierarchy/sw-github:create-issue - Create issue using standard format/sw-github:update-user-story - Update user story issueWhen creating/updating a GitHub issue, verify:
../../)Always! This is the ONLY acceptable format for GitHub issues created by SpecWeave.
No exceptions. No shortcuts. Every issue follows this standard.
plugins/specweave-github/lib/user-story-issue-builder.tsplugins/specweave-github/lib/github-feature-sync.tsThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.