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.
Inherits all available tools
Additional assets for this skill
This 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.ts