specweave 0.17.17 → 0.17.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js +65 -6
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts +63 -0
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/epic-content-builder.js +216 -0
- package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts +2 -2
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.js +19 -4
- package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts +8 -6
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +78 -117
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +107 -3
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/core/deduplication/command-deduplicator.d.ts +166 -0
- package/dist/src/core/deduplication/command-deduplicator.d.ts.map +1 -0
- package/dist/src/core/deduplication/command-deduplicator.js +254 -0
- package/dist/src/core/deduplication/command-deduplicator.js.map +1 -0
- package/dist/src/core/sync/enhanced-content-builder.d.ts +32 -54
- package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -1
- package/dist/src/core/sync/enhanced-content-builder.js +141 -138
- package/dist/src/core/sync/enhanced-content-builder.js.map +1 -1
- package/dist/src/core/sync/types.d.ts +52 -0
- package/dist/src/core/sync/types.d.ts.map +1 -0
- package/dist/src/core/sync/types.js +5 -0
- package/dist/src/core/sync/types.js.map +1 -0
- package/dist/src/core/types/config.d.ts +51 -0
- package/dist/src/core/types/config.d.ts.map +1 -1
- package/dist/src/core/types/config.js +16 -0
- package/dist/src/core/types/config.js.map +1 -1
- package/dist/src/core/types/increment-metadata.d.ts +4 -0
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
- package/dist/src/core/types/increment-metadata.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/agents/pm/AGENT.md +159 -12
- package/plugins/specweave/commands/specweave.md +70 -405
- package/plugins/specweave/hooks/hooks.json +4 -0
- package/plugins/specweave/hooks/lib/sync-spec-content.sh +2 -2
- package/plugins/specweave/hooks/post-increment-planning.sh +26 -2
- package/plugins/specweave/hooks/pre-command-deduplication.sh +86 -0
- package/plugins/specweave-ado/commands/specweave-ado-sync-spec.md +1 -1
- package/plugins/specweave-ado/lib/ado-spec-content-sync.js +49 -5
- package/plugins/specweave-ado/lib/ado-spec-content-sync.ts +72 -6
- package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +1 -1
- package/plugins/specweave-github/commands/specweave-github-sync-epic.md +1 -1
- package/plugins/specweave-github/commands/specweave-github-sync-spec.md +1 -1
- package/plugins/specweave-github/hooks/post-task-completion.sh +32 -0
- package/plugins/specweave-github/lib/epic-content-builder.js +227 -0
- package/plugins/specweave-github/lib/epic-content-builder.ts +317 -0
- package/plugins/specweave-github/lib/github-epic-sync.js +23 -24
- package/plugins/specweave-github/lib/github-epic-sync.ts +29 -4
- package/plugins/specweave-jira/commands/specweave-jira-sync-epic.md +1 -1
- package/plugins/specweave-jira/commands/specweave-jira-sync-spec.md +1 -1
- package/plugins/specweave-jira/lib/enhanced-jira-sync.js +134 -0
- package/plugins/specweave-jira/lib/{enhanced-jira-sync.ts.disabled → enhanced-jira-sync.ts} +26 -52
- package/plugins/specweave-release/commands/specweave-release-platform.md +1 -1
- package/plugins/specweave-release/hooks/post-task-completion.sh +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-deduplicator.js","sourceRoot":"","sources":["../../../../src/core/deduplication/command-deduplicator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,77 +1,55 @@
|
|
|
1
|
+
import { SpecContent, UserStory, TaskLink, EnhancedSpecContent } from './types';
|
|
2
|
+
export { EnhancedSpecContent };
|
|
1
3
|
/**
|
|
2
4
|
* Enhanced Content Builder
|
|
3
5
|
*
|
|
4
|
-
* Builds rich external issue descriptions with full spec content
|
|
5
|
-
*
|
|
6
|
-
* - User stories with collapsible sections
|
|
7
|
-
* - Acceptance criteria
|
|
8
|
-
* - Task links with GitHub issue numbers
|
|
9
|
-
* - Architecture references
|
|
10
|
-
* - Source links
|
|
6
|
+
* Builds rich external issue descriptions with full spec content
|
|
7
|
+
* for GitHub, JIRA, and Azure DevOps integrations.
|
|
11
8
|
*/
|
|
12
|
-
import { SpecContent, SpecUserStory } from '../spec-content-sync.js';
|
|
13
|
-
export interface TaskMapping {
|
|
14
|
-
incrementId: string;
|
|
15
|
-
tasks: Task[];
|
|
16
|
-
tasksUrl: string;
|
|
17
|
-
}
|
|
18
|
-
export interface Task {
|
|
19
|
-
id: string;
|
|
20
|
-
title: string;
|
|
21
|
-
userStories: string[];
|
|
22
|
-
githubIssue?: number;
|
|
23
|
-
jiraIssue?: string;
|
|
24
|
-
adoWorkItem?: number;
|
|
25
|
-
completed?: boolean;
|
|
26
|
-
status?: 'pending' | 'in-progress' | 'completed';
|
|
27
|
-
}
|
|
28
|
-
export interface ArchitectureDoc {
|
|
29
|
-
type: 'adr' | 'hld' | 'diagram';
|
|
30
|
-
path: string;
|
|
31
|
-
title: string;
|
|
32
|
-
}
|
|
33
|
-
export interface SourceLinks {
|
|
34
|
-
spec?: string;
|
|
35
|
-
plan?: string;
|
|
36
|
-
tasks?: string;
|
|
37
|
-
}
|
|
38
|
-
export interface EnhancedSpecContent extends SpecContent {
|
|
39
|
-
summary?: string;
|
|
40
|
-
taskMapping?: TaskMapping;
|
|
41
|
-
architectureDocs?: ArchitectureDoc[];
|
|
42
|
-
sourceLinks?: SourceLinks;
|
|
43
|
-
}
|
|
44
9
|
export declare class EnhancedContentBuilder {
|
|
45
10
|
/**
|
|
46
|
-
* Build complete external
|
|
11
|
+
* Build complete external description from spec
|
|
12
|
+
*/
|
|
13
|
+
buildExternalDescription(spec: SpecContent): string;
|
|
14
|
+
/**
|
|
15
|
+
* Build summary section
|
|
16
|
+
*/
|
|
17
|
+
buildSummarySection(spec: SpecContent | {
|
|
18
|
+
summary: string;
|
|
19
|
+
}): string;
|
|
20
|
+
/**
|
|
21
|
+
* Build user stories section with collapsible details
|
|
47
22
|
*/
|
|
48
|
-
|
|
23
|
+
buildUserStoriesSection(userStories: UserStory[]): string;
|
|
49
24
|
/**
|
|
50
|
-
* Build
|
|
25
|
+
* Build individual user story with collapsible details
|
|
51
26
|
*/
|
|
52
|
-
|
|
27
|
+
private buildUserStoryDetails;
|
|
53
28
|
/**
|
|
54
|
-
*
|
|
29
|
+
* Group acceptance criteria by priority
|
|
55
30
|
*/
|
|
56
|
-
|
|
31
|
+
private groupAcceptanceCriteriaByPriority;
|
|
57
32
|
/**
|
|
58
|
-
* Build tasks section with
|
|
59
|
-
*
|
|
60
|
-
* NEW: Shows tasks as checkboxes with completion status
|
|
33
|
+
* Build tasks section with GitHub issue links
|
|
34
|
+
* Supports both simple array and options object for backward compatibility
|
|
61
35
|
*/
|
|
62
|
-
buildTasksSection(
|
|
36
|
+
buildTasksSection(tasks: TaskLink[] | any, ownerOrOptions?: string | {
|
|
63
37
|
showCheckboxes?: boolean;
|
|
64
38
|
showProgressBar?: boolean;
|
|
65
39
|
showCompletionStatus?: boolean;
|
|
66
|
-
provider?:
|
|
67
|
-
}): string;
|
|
40
|
+
provider?: string;
|
|
41
|
+
}, repo?: string): string;
|
|
68
42
|
/**
|
|
69
|
-
* Build architecture
|
|
43
|
+
* Build architecture section
|
|
70
44
|
*/
|
|
71
|
-
buildArchitectureSection(
|
|
45
|
+
buildArchitectureSection(docs: string[]): string;
|
|
72
46
|
/**
|
|
73
47
|
* Build source links section
|
|
74
48
|
*/
|
|
75
|
-
buildSourceLinksSection(sourceLinks:
|
|
49
|
+
buildSourceLinksSection(sourceLinks: {
|
|
50
|
+
spec: string;
|
|
51
|
+
plan: string;
|
|
52
|
+
tasks: string;
|
|
53
|
+
}): string;
|
|
76
54
|
}
|
|
77
55
|
//# sourceMappingURL=enhanced-content-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhanced-content-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/sync/enhanced-content-builder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"enhanced-content-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/sync/enhanced-content-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAuB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGrG,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACI,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;IA2B1D;;OAEG;IACI,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAI3E;;OAEG;IACI,uBAAuB,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM;IAehE;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyC7B;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAoBzC;;;OAGG;IACI,iBAAiB,CACtB,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,EACvB,cAAc,CAAC,EAAE,MAAM,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EACpI,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM;IAyET;;OAEG;IACI,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM;IAcvD;;OAEG;IACI,uBAAuB,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;CASnG"}
|
|
@@ -1,198 +1,201 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Enhanced Content Builder
|
|
3
3
|
*
|
|
4
|
-
* Builds rich external issue descriptions with full spec content
|
|
5
|
-
*
|
|
6
|
-
* - User stories with collapsible sections
|
|
7
|
-
* - Acceptance criteria
|
|
8
|
-
* - Task links with GitHub issue numbers
|
|
9
|
-
* - Architecture references
|
|
10
|
-
* - Source links
|
|
4
|
+
* Builds rich external issue descriptions with full spec content
|
|
5
|
+
* for GitHub, JIRA, and Azure DevOps integrations.
|
|
11
6
|
*/
|
|
12
7
|
export class EnhancedContentBuilder {
|
|
13
8
|
/**
|
|
14
|
-
* Build complete external
|
|
9
|
+
* Build complete external description from spec
|
|
15
10
|
*/
|
|
16
11
|
buildExternalDescription(spec) {
|
|
17
12
|
const sections = [];
|
|
18
|
-
// Summary
|
|
13
|
+
// 1. Executive Summary
|
|
19
14
|
sections.push(this.buildSummarySection(spec));
|
|
20
|
-
// User
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
// 2. User Stories (collapsible in GitHub)
|
|
16
|
+
sections.push(this.buildUserStoriesSection(spec.userStories));
|
|
17
|
+
// 3. Linked Tasks (if available)
|
|
18
|
+
if (spec.tasks && spec.tasks.length > 0) {
|
|
19
|
+
sections.push(this.buildTasksSection(spec.tasks));
|
|
23
20
|
}
|
|
24
|
-
//
|
|
25
|
-
if (spec.taskMapping) {
|
|
26
|
-
sections.push(this.buildTasksSection(spec.taskMapping));
|
|
27
|
-
}
|
|
28
|
-
// Architecture section
|
|
21
|
+
// 4. Architecture References (if available)
|
|
29
22
|
if (spec.architectureDocs && spec.architectureDocs.length > 0) {
|
|
30
23
|
sections.push(this.buildArchitectureSection(spec.architectureDocs));
|
|
31
24
|
}
|
|
32
|
-
// Source
|
|
25
|
+
// 5. Source Links (if available)
|
|
33
26
|
if (spec.sourceLinks) {
|
|
34
27
|
sections.push(this.buildSourceLinksSection(spec.sourceLinks));
|
|
35
28
|
}
|
|
36
|
-
return sections.
|
|
29
|
+
return sections.join('\n\n');
|
|
37
30
|
}
|
|
38
31
|
/**
|
|
39
|
-
* Build summary section
|
|
32
|
+
* Build summary section
|
|
40
33
|
*/
|
|
41
34
|
buildSummarySection(spec) {
|
|
42
|
-
return `## Summary\n\n${spec.summary
|
|
35
|
+
return `## Summary\n\n${spec.summary}`;
|
|
43
36
|
}
|
|
44
37
|
/**
|
|
45
|
-
* Build user stories section with collapsible
|
|
38
|
+
* Build user stories section with collapsible details
|
|
46
39
|
*/
|
|
47
40
|
buildUserStoriesSection(userStories) {
|
|
48
|
-
|
|
41
|
+
if (!userStories || userStories.length === 0) {
|
|
42
|
+
return `## User Stories\n\nNo user stories defined.`;
|
|
43
|
+
}
|
|
44
|
+
const sections = ['## User Stories'];
|
|
49
45
|
for (const story of userStories) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
lines.push(`<summary><strong>${story.id}: ${story.title}</strong></summary>`);
|
|
53
|
-
lines.push('');
|
|
54
|
-
if (story.acceptanceCriteria && story.acceptanceCriteria.length > 0) {
|
|
55
|
-
lines.push('**Acceptance Criteria**:');
|
|
56
|
-
for (const ac of story.acceptanceCriteria) {
|
|
57
|
-
const priority = ac.priority ? ` (${ac.priority}` : '';
|
|
58
|
-
const testable = ac.testable ? ', testable)' : ')';
|
|
59
|
-
const suffix = priority || ac.testable ? `${priority}${testable}` : '';
|
|
60
|
-
const checkbox = ac.completed ? '[x]' : '[ ]';
|
|
61
|
-
lines.push(`- ${checkbox} **${ac.id}**: ${ac.description}${suffix}`);
|
|
62
|
-
}
|
|
63
|
-
lines.push('');
|
|
64
|
-
}
|
|
65
|
-
lines.push('</details>');
|
|
46
|
+
const storySection = this.buildUserStoryDetails(story);
|
|
47
|
+
sections.push(storySection);
|
|
66
48
|
}
|
|
67
|
-
return
|
|
49
|
+
return sections.join('\n\n');
|
|
68
50
|
}
|
|
69
51
|
/**
|
|
70
|
-
* Build
|
|
71
|
-
*
|
|
72
|
-
* NEW: Shows tasks as checkboxes with completion status
|
|
52
|
+
* Build individual user story with collapsible details
|
|
73
53
|
*/
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
lines.push(
|
|
78
|
-
|
|
79
|
-
const total = taskMapping.tasks.length;
|
|
80
|
-
const completed = taskMapping.tasks.filter(t => t.completed || t.status === 'completed').length;
|
|
81
|
-
const percent = total > 0 ? Math.round((completed / total) * 100) : 0;
|
|
82
|
-
// Progress header with count
|
|
83
|
-
lines.push(`**Progress**: ${completed}/${total} tasks completed (${percent}%)`);
|
|
54
|
+
buildUserStoryDetails(story) {
|
|
55
|
+
const lines = [];
|
|
56
|
+
// Use GitHub collapsible format
|
|
57
|
+
lines.push(`<details>`);
|
|
58
|
+
lines.push(`<summary><strong>${story.id}: ${story.title}</strong></summary>`);
|
|
84
59
|
lines.push('');
|
|
85
|
-
//
|
|
86
|
-
if (
|
|
87
|
-
|
|
88
|
-
const filled = Math.round((completed / total) * barWidth);
|
|
89
|
-
const bar = '█'.repeat(filled) + '░'.repeat(barWidth - filled);
|
|
90
|
-
lines.push(`\`${bar}\` ${percent}%`);
|
|
60
|
+
// Add description if available
|
|
61
|
+
if (story.description) {
|
|
62
|
+
lines.push(`**Description**: ${story.description}`);
|
|
91
63
|
lines.push('');
|
|
92
64
|
}
|
|
93
|
-
//
|
|
94
|
-
if (
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
checkbox = isCompleted ? '[x]' : '[ ]';
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
// GitHub uses markdown checkboxes
|
|
110
|
-
checkbox = isCompleted ? '[x]' : '[ ]';
|
|
111
|
-
}
|
|
112
|
-
const statusEmoji = isCompleted && showCompletionStatus && provider === 'github' ? ' ✅' : '';
|
|
113
|
-
// Issue link (provider-specific)
|
|
114
|
-
let issueLink = '';
|
|
115
|
-
if (provider === 'github' && task.githubIssue) {
|
|
116
|
-
issueLink = ` [#${task.githubIssue}](https://github.com/issue/${task.githubIssue})`;
|
|
117
|
-
}
|
|
118
|
-
else if (provider === 'jira' && task.jiraIssue) {
|
|
119
|
-
issueLink = ` [${task.jiraIssue}]`;
|
|
120
|
-
}
|
|
121
|
-
else if (provider === 'ado' && task.adoWorkItem) {
|
|
122
|
-
issueLink = ` [#${task.adoWorkItem}]`;
|
|
65
|
+
// Acceptance Criteria
|
|
66
|
+
if (story.acceptanceCriteria && story.acceptanceCriteria.length > 0) {
|
|
67
|
+
lines.push('**Acceptance Criteria**:');
|
|
68
|
+
lines.push('');
|
|
69
|
+
// Group by priority
|
|
70
|
+
const byPriority = this.groupAcceptanceCriteriaByPriority(story.acceptanceCriteria);
|
|
71
|
+
for (const priority of ['P1', 'P2', 'P3', 'OTHER']) {
|
|
72
|
+
const criteria = byPriority[priority];
|
|
73
|
+
if (criteria && criteria.length > 0) {
|
|
74
|
+
for (const ac of criteria) {
|
|
75
|
+
const priorityLabel = ac.priority ? ` (${ac.priority})` : '';
|
|
76
|
+
lines.push(`- **${ac.id}**${priorityLabel}: ${ac.description}`);
|
|
77
|
+
}
|
|
123
78
|
}
|
|
124
|
-
// User stories
|
|
125
|
-
const userStories = task.userStories && task.userStories.length > 0
|
|
126
|
-
? ` (implements ${task.userStories.join(', ')})`
|
|
127
|
-
: '';
|
|
128
|
-
lines.push(`- ${checkbox} **${task.id}**: ${task.title}${userStories}${issueLink}${statusEmoji}`);
|
|
129
79
|
}
|
|
130
80
|
}
|
|
131
81
|
else {
|
|
132
|
-
|
|
133
|
-
for (const task of taskMapping.tasks) {
|
|
134
|
-
const issueLink = task.githubIssue ? ` (#${task.githubIssue})` : '';
|
|
135
|
-
lines.push(`- **${task.id}**: ${task.title}${issueLink}`);
|
|
136
|
-
if (task.userStories && task.userStories.length > 0) {
|
|
137
|
-
lines.push(` - Implements: ${task.userStories.join(', ')}`);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
82
|
+
lines.push('**Acceptance Criteria**: No acceptance criteria defined.');
|
|
140
83
|
}
|
|
141
84
|
lines.push('');
|
|
142
|
-
lines.push(
|
|
85
|
+
lines.push('</details>');
|
|
143
86
|
return lines.join('\n');
|
|
144
87
|
}
|
|
145
88
|
/**
|
|
146
|
-
*
|
|
89
|
+
* Group acceptance criteria by priority
|
|
147
90
|
*/
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
91
|
+
groupAcceptanceCriteriaByPriority(criteria) {
|
|
92
|
+
const grouped = {
|
|
93
|
+
P1: [],
|
|
94
|
+
P2: [],
|
|
95
|
+
P3: [],
|
|
96
|
+
OTHER: [] // For criteria without priority or with other priorities
|
|
97
|
+
};
|
|
98
|
+
for (const ac of criteria) {
|
|
99
|
+
const priority = ac.priority || 'OTHER';
|
|
100
|
+
if (priority in grouped) {
|
|
101
|
+
grouped[priority].push(ac);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
grouped.OTHER.push(ac);
|
|
105
|
+
}
|
|
151
106
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
107
|
+
return grouped;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Build tasks section with GitHub issue links
|
|
111
|
+
* Supports both simple array and options object for backward compatibility
|
|
112
|
+
*/
|
|
113
|
+
buildTasksSection(tasks, ownerOrOptions, repo) {
|
|
114
|
+
// Handle both old and new signatures
|
|
115
|
+
let taskList;
|
|
116
|
+
let owner;
|
|
117
|
+
let options = {};
|
|
118
|
+
if (Array.isArray(tasks)) {
|
|
119
|
+
taskList = tasks;
|
|
120
|
+
if (typeof ownerOrOptions === 'string') {
|
|
121
|
+
owner = ownerOrOptions;
|
|
122
|
+
}
|
|
123
|
+
else if (typeof ownerOrOptions === 'object') {
|
|
124
|
+
options = ownerOrOptions;
|
|
162
125
|
}
|
|
163
|
-
lines.push('');
|
|
164
126
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
127
|
+
else {
|
|
128
|
+
// tasks is actually taskMapping object
|
|
129
|
+
taskList = tasks?.tasks || [];
|
|
130
|
+
if (typeof ownerOrOptions === 'object') {
|
|
131
|
+
options = ownerOrOptions;
|
|
132
|
+
owner = tasks?.owner;
|
|
133
|
+
repo = tasks?.repo;
|
|
169
134
|
}
|
|
135
|
+
}
|
|
136
|
+
if (!taskList || taskList.length === 0) {
|
|
137
|
+
return `## Tasks\n\nNo tasks defined.`;
|
|
138
|
+
}
|
|
139
|
+
const lines = ['## Tasks'];
|
|
140
|
+
lines.push('');
|
|
141
|
+
// Add progress bar if requested
|
|
142
|
+
if (options.showProgressBar && taskList.length > 0) {
|
|
143
|
+
const completed = taskList.filter(t => t.completed).length;
|
|
144
|
+
const total = taskList.length;
|
|
145
|
+
const percentage = Math.round((completed / total) * 100);
|
|
146
|
+
lines.push(`**Progress**: ${completed}/${total} tasks (${percentage}%)`);
|
|
170
147
|
lines.push('');
|
|
171
148
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
149
|
+
for (const task of taskList) {
|
|
150
|
+
let taskLine = '';
|
|
151
|
+
// Add checkbox if requested
|
|
152
|
+
if (options.showCheckboxes) {
|
|
153
|
+
taskLine += task.completed ? '- [x] ' : '- [ ] ';
|
|
176
154
|
}
|
|
177
|
-
|
|
155
|
+
else {
|
|
156
|
+
taskLine += '- ';
|
|
157
|
+
}
|
|
158
|
+
taskLine += `**${task.id}**: ${task.title}`;
|
|
159
|
+
// Add GitHub issue link if available
|
|
160
|
+
if (task.githubIssue && owner && repo) {
|
|
161
|
+
const issueUrl = `https://github.com/${owner}/${repo}/issues/${task.githubIssue}`;
|
|
162
|
+
taskLine += ` ([#${task.githubIssue}](${issueUrl}))`;
|
|
163
|
+
}
|
|
164
|
+
// Add user story references
|
|
165
|
+
if (task.userStoryIds && task.userStoryIds.length > 0) {
|
|
166
|
+
taskLine += ` → Implements: ${task.userStoryIds.join(', ')}`;
|
|
167
|
+
}
|
|
168
|
+
// Add completion status if requested
|
|
169
|
+
if (options.showCompletionStatus && task.completed) {
|
|
170
|
+
taskLine += ' ✅';
|
|
171
|
+
}
|
|
172
|
+
lines.push(taskLine);
|
|
178
173
|
}
|
|
179
|
-
return lines.join('\n')
|
|
174
|
+
return lines.join('\n');
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Build architecture section
|
|
178
|
+
*/
|
|
179
|
+
buildArchitectureSection(docs) {
|
|
180
|
+
const lines = ['## Architecture'];
|
|
181
|
+
lines.push('');
|
|
182
|
+
lines.push('Related architecture documentation:');
|
|
183
|
+
lines.push('');
|
|
184
|
+
for (const doc of docs) {
|
|
185
|
+
const fileName = doc.split('/').pop() || doc;
|
|
186
|
+
lines.push(`- [${fileName}](${doc})`);
|
|
187
|
+
}
|
|
188
|
+
return lines.join('\n');
|
|
180
189
|
}
|
|
181
190
|
/**
|
|
182
191
|
* Build source links section
|
|
183
192
|
*/
|
|
184
193
|
buildSourceLinksSection(sourceLinks) {
|
|
185
|
-
const lines = ['## Source'];
|
|
194
|
+
const lines = ['## Source Files'];
|
|
186
195
|
lines.push('');
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
190
|
-
if (sourceLinks.plan) {
|
|
191
|
-
lines.push(`- [plan.md](${sourceLinks.plan})`);
|
|
192
|
-
}
|
|
193
|
-
if (sourceLinks.tasks) {
|
|
194
|
-
lines.push(`- [tasks.md](${sourceLinks.tasks})`);
|
|
195
|
-
}
|
|
196
|
+
lines.push(`- **Specification**: [spec.md](${sourceLinks.spec})`);
|
|
197
|
+
lines.push(`- **Technical Plan**: [plan.md](${sourceLinks.plan})`);
|
|
198
|
+
lines.push(`- **Task List**: [tasks.md](${sourceLinks.tasks})`);
|
|
196
199
|
return lines.join('\n');
|
|
197
200
|
}
|
|
198
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhanced-content-builder.js","sourceRoot":"","sources":["../../../../src/core/sync/enhanced-content-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enhanced-content-builder.js","sourceRoot":"","sources":["../../../../src/core/sync/enhanced-content-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for Enhanced Content Sync
|
|
3
|
+
*/
|
|
4
|
+
export interface AcceptanceCriterion {
|
|
5
|
+
id: string;
|
|
6
|
+
description: string;
|
|
7
|
+
priority?: string;
|
|
8
|
+
completed?: boolean;
|
|
9
|
+
testable?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface UserStory {
|
|
12
|
+
id: string;
|
|
13
|
+
title: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
acceptanceCriteria?: AcceptanceCriterion[];
|
|
16
|
+
}
|
|
17
|
+
export interface TaskLink {
|
|
18
|
+
id: string;
|
|
19
|
+
title: string;
|
|
20
|
+
githubIssue?: number;
|
|
21
|
+
jiraIssue?: string;
|
|
22
|
+
adoWorkItem?: number;
|
|
23
|
+
userStoryIds: string[];
|
|
24
|
+
completed?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface SourceLinks {
|
|
27
|
+
spec: string;
|
|
28
|
+
plan: string;
|
|
29
|
+
tasks: string;
|
|
30
|
+
}
|
|
31
|
+
export interface SpecContent {
|
|
32
|
+
id: string;
|
|
33
|
+
title: string;
|
|
34
|
+
summary: string;
|
|
35
|
+
userStories: UserStory[];
|
|
36
|
+
tasks?: TaskLink[];
|
|
37
|
+
architectureDocs?: string[];
|
|
38
|
+
sourceLinks?: SourceLinks;
|
|
39
|
+
}
|
|
40
|
+
export interface EnhancedContent {
|
|
41
|
+
title: string;
|
|
42
|
+
body: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Enhanced spec content for external tool sync
|
|
46
|
+
* Extends SpecContent with additional metadata
|
|
47
|
+
*/
|
|
48
|
+
export interface EnhancedSpecContent extends SpecContent {
|
|
49
|
+
taskMapping?: any;
|
|
50
|
+
[key: string]: any;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/sync/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/sync/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|