@specforge/mcp 3.2.3 → 3.3.1

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.
Files changed (148) hide show
  1. package/README.md +1 -1
  2. package/dist/autopilot/api/autopilot-api-client.js +1 -1
  3. package/dist/autopilot/api/autopilot-api-client.js.map +1 -1
  4. package/dist/cli/commands/complete.d.ts +14 -0
  5. package/dist/cli/commands/complete.d.ts.map +1 -0
  6. package/dist/cli/commands/complete.js +96 -0
  7. package/dist/cli/commands/complete.js.map +1 -0
  8. package/dist/cli/commands/docs/content/examples.d.ts.map +1 -1
  9. package/dist/cli/commands/docs/content/examples.js +35 -40
  10. package/dist/cli/commands/docs/content/examples.js.map +1 -1
  11. package/dist/cli/commands/docs/content/workflow.d.ts.map +1 -1
  12. package/dist/cli/commands/docs/content/workflow.js +9 -13
  13. package/dist/cli/commands/docs/content/workflow.js.map +1 -1
  14. package/dist/cli/commands/index.d.ts +2 -0
  15. package/dist/cli/commands/index.d.ts.map +1 -1
  16. package/dist/cli/commands/index.js +2 -0
  17. package/dist/cli/commands/index.js.map +1 -1
  18. package/dist/cli/commands/init.d.ts.map +1 -1
  19. package/dist/cli/commands/init.js +100 -14
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/init.types.d.ts +2 -0
  22. package/dist/cli/commands/init.types.d.ts.map +1 -1
  23. package/dist/cli/commands/init.types.js.map +1 -1
  24. package/dist/cli/commands/review-planning.d.ts +1 -0
  25. package/dist/cli/commands/review-planning.d.ts.map +1 -1
  26. package/dist/cli/commands/review-planning.js +2 -0
  27. package/dist/cli/commands/review-planning.js.map +1 -1
  28. package/dist/cli/commands/scaffold/agent-types.d.ts +1 -7
  29. package/dist/cli/commands/scaffold/agent-types.d.ts.map +1 -1
  30. package/dist/cli/commands/scaffold/agent-types.js +0 -12
  31. package/dist/cli/commands/scaffold/agent-types.js.map +1 -1
  32. package/dist/cli/commands/scaffold/types.d.ts +1 -7
  33. package/dist/cli/commands/scaffold/types.d.ts.map +1 -1
  34. package/dist/cli/commands/scaffold/types.js +2 -7
  35. package/dist/cli/commands/scaffold/types.js.map +1 -1
  36. package/dist/cli/commands/set-status.d.ts +14 -0
  37. package/dist/cli/commands/set-status.d.ts.map +1 -0
  38. package/dist/cli/commands/set-status.js +109 -0
  39. package/dist/cli/commands/set-status.js.map +1 -0
  40. package/dist/cli/index.d.ts.map +1 -1
  41. package/dist/cli/index.js +5 -1
  42. package/dist/cli/index.js.map +1 -1
  43. package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts +3 -2
  44. package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts.map +1 -1
  45. package/dist/cli/templates/agents/content/core/sfag-orchestrator.js +118 -61
  46. package/dist/cli/templates/agents/content/core/sfag-orchestrator.js.map +1 -1
  47. package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts +3 -2
  48. package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts.map +1 -1
  49. package/dist/cli/templates/agents/content/core/sfag-spec-creator.js +302 -81
  50. package/dist/cli/templates/agents/content/core/sfag-spec-creator.js.map +1 -1
  51. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts +3 -2
  52. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts.map +1 -1
  53. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js +209 -83
  54. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js.map +1 -1
  55. package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts +2 -2
  56. package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts.map +1 -1
  57. package/dist/cli/templates/agents/content/research/sfag-package-researcher.js +84 -106
  58. package/dist/cli/templates/agents/content/research/sfag-package-researcher.js.map +1 -1
  59. package/dist/cli/templates/agents/index.d.ts.map +1 -1
  60. package/dist/cli/templates/agents/index.js +0 -23
  61. package/dist/cli/templates/agents/index.js.map +1 -1
  62. package/dist/cli/templates/commands.d.ts +0 -3
  63. package/dist/cli/templates/commands.d.ts.map +1 -1
  64. package/dist/cli/templates/commands.js +0 -89
  65. package/dist/cli/templates/commands.js.map +1 -1
  66. package/dist/cli/templates/content/sf-blockers.d.ts +1 -1
  67. package/dist/cli/templates/content/sf-blockers.d.ts.map +1 -1
  68. package/dist/cli/templates/content/sf-blockers.js +5 -2
  69. package/dist/cli/templates/content/sf-blockers.js.map +1 -1
  70. package/dist/cli/templates/content/sf-commit.d.ts +1 -1
  71. package/dist/cli/templates/content/sf-commit.d.ts.map +1 -1
  72. package/dist/cli/templates/content/sf-commit.js +11 -8
  73. package/dist/cli/templates/content/sf-commit.js.map +1 -1
  74. package/dist/cli/templates/content/sf-context.d.ts +1 -1
  75. package/dist/cli/templates/content/sf-context.d.ts.map +1 -1
  76. package/dist/cli/templates/content/sf-context.js +16 -15
  77. package/dist/cli/templates/content/sf-context.js.map +1 -1
  78. package/dist/cli/templates/content/sf-help.d.ts +1 -1
  79. package/dist/cli/templates/content/sf-help.d.ts.map +1 -1
  80. package/dist/cli/templates/content/sf-help.js +4 -21
  81. package/dist/cli/templates/content/sf-help.js.map +1 -1
  82. package/dist/cli/templates/content/sf-init.d.ts +1 -1
  83. package/dist/cli/templates/content/sf-init.d.ts.map +1 -1
  84. package/dist/cli/templates/content/sf-init.js +10 -7
  85. package/dist/cli/templates/content/sf-init.js.map +1 -1
  86. package/dist/cli/templates/content/sf-reset.d.ts +1 -1
  87. package/dist/cli/templates/content/sf-reset.d.ts.map +1 -1
  88. package/dist/cli/templates/content/sf-reset.js +10 -19
  89. package/dist/cli/templates/content/sf-reset.js.map +1 -1
  90. package/dist/cli/templates/content/sf-search.d.ts +1 -1
  91. package/dist/cli/templates/content/sf-search.d.ts.map +1 -1
  92. package/dist/cli/templates/content/sf-search.js +5 -4
  93. package/dist/cli/templates/content/sf-search.js.map +1 -1
  94. package/dist/cli/templates/content/sf-status.d.ts +1 -1
  95. package/dist/cli/templates/content/sf-status.d.ts.map +1 -1
  96. package/dist/cli/templates/content/sf-status.js +5 -8
  97. package/dist/cli/templates/content/sf-status.js.map +1 -1
  98. package/dist/cli/ui/banner.d.ts +17 -0
  99. package/dist/cli/ui/banner.d.ts.map +1 -0
  100. package/dist/cli/ui/banner.js +105 -0
  101. package/dist/cli/ui/banner.js.map +1 -0
  102. package/dist/tools/core/admin.js +5 -5
  103. package/dist/tools/core/admin.js.map +1 -1
  104. package/dist/tools/core/help.js +1 -1
  105. package/dist/tools/core/help.js.map +1 -1
  106. package/dist/tools/core/ticket.d.ts.map +1 -1
  107. package/dist/tools/core/ticket.js +12 -0
  108. package/dist/tools/core/ticket.js.map +1 -1
  109. package/dist/tools/index.js +4 -4
  110. package/dist/tools/index.js.map +1 -1
  111. package/dist/types/index.d.ts +2 -2
  112. package/dist/types/index.d.ts.map +1 -1
  113. package/dist/validation/index.js +1 -1
  114. package/dist/validation/index.js.map +1 -1
  115. package/package.json +1 -1
  116. package/src/cli/templates/agents/content/core/sfag-orchestrator.ts +118 -61
  117. package/src/cli/templates/agents/content/core/sfag-spec-creator.ts +302 -81
  118. package/src/cli/templates/agents/content/core/sfag-ticket-implementer.ts +209 -83
  119. package/src/cli/templates/agents/content/research/sfag-package-researcher.ts +84 -106
  120. package/src/cli/templates/agents/index.ts +0 -27
  121. package/src/cli/templates/commands.ts +0 -89
  122. package/src/cli/templates/content/sf-blockers.ts +5 -2
  123. package/src/cli/templates/content/sf-commit.ts +11 -8
  124. package/src/cli/templates/content/sf-context.ts +16 -15
  125. package/src/cli/templates/content/sf-help.ts +4 -21
  126. package/src/cli/templates/content/sf-init.ts +10 -7
  127. package/src/cli/templates/content/sf-reset.ts +10 -19
  128. package/src/cli/templates/content/sf-search.ts +5 -4
  129. package/src/cli/templates/content/sf-status.ts +5 -8
  130. package/src/cli/templates/skills/specforge-orchestrator.md +1 -1
  131. package/src/cli/templates/skills/specforge-worker.md +51 -19
  132. package/src/cli/templates/agents/content/core/sfag-implementer.ts +0 -113
  133. package/src/cli/templates/agents/content/task-type/sfag-api-implementer.ts +0 -132
  134. package/src/cli/templates/agents/content/task-type/sfag-docs-writer.ts +0 -183
  135. package/src/cli/templates/agents/content/task-type/sfag-frontend-builder.ts +0 -141
  136. package/src/cli/templates/agents/content/task-type/sfag-infra-architect.ts +0 -149
  137. package/src/cli/templates/agents/content/task-type/sfag-schema-designer.ts +0 -132
  138. package/src/cli/templates/agents/content/task-type/sfag-test-writer.ts +0 -171
  139. package/src/cli/templates/content/sf-autonomous.ts +0 -78
  140. package/src/cli/templates/content/sf-create-epics.ts +0 -129
  141. package/src/cli/templates/content/sf-create-spec.ts +0 -136
  142. package/src/cli/templates/content/sf-create-tickets.ts +0 -148
  143. package/src/cli/templates/content/sf-epic.ts +0 -69
  144. package/src/cli/templates/content/sf-import.ts +0 -88
  145. package/src/cli/templates/content/sf-next.ts +0 -67
  146. package/src/cli/templates/content/sf-review.ts +0 -67
  147. package/src/cli/templates/content/sf-ticket.ts +0 -76
  148. package/src/cli/templates/content/sf-validate.ts +0 -78
@@ -1,148 +0,0 @@
1
- /**
2
- * SF-Create-Tickets Command Template
3
- *
4
- * Template for creating detailed tickets individually with full implementation context.
5
- */
6
-
7
- export const SF_CREATE_TICKETS_CONTENT = `# Create Tickets (SpecForge)
8
-
9
- Create detailed tickets for an epic with full implementation context.
10
-
11
- ## Arguments
12
- - \`$ARGUMENTS\` - Required: Epic ID
13
-
14
- ## Task
15
-
16
- ### 1. Get Epic Context
17
-
18
- **MCP Calls:**
19
- \`\`\`typescript
20
- epic({
21
- operation: 'get',
22
- epicId: $ARGUMENTS,
23
- include: ['tickets', 'specification'] // Get existing tickets and parent spec
24
- })
25
- \`\`\`
26
-
27
- ### 2. Extract Ticket Definitions
28
-
29
- **Logic:**
30
- - Read epic description and objective
31
- - Parse task breakdown from epic content
32
- - Determine complexity and dependencies
33
- - Extract acceptance criteria for each ticket
34
-
35
- ### 3. Create Tickets
36
-
37
- **MCP Calls:**
38
- \`\`\`typescript
39
- // For each task in epic
40
- for (const task of tasks) {
41
- await ticket({
42
- operation: 'create',
43
-
44
- // === REQUIRED ===
45
- epicId: $ARGUMENTS,
46
- title: task.title,
47
-
48
- // === CORE (recommended) ===
49
- description: task.description,
50
- priority: 'high', // high | medium | low
51
- complexity: 'medium', // small | medium | large | xlarge
52
- estimatedHours: 4,
53
- tags: ['feature', 'api'],
54
- notes: 'Watch out for edge case X', // Warnings, considerations
55
-
56
- // === ACCEPTANCE CRITERIA ===
57
- acceptanceCriteria: [
58
- 'Function returns correct result for valid input',
59
- 'Function throws error for invalid input',
60
- 'Unit tests cover all branches'
61
- ],
62
-
63
- // === IMPLEMENTATION GUIDANCE ===
64
- implementation: {
65
- filesToCreate: ['src/services/user.service.ts'],
66
- filesToModify: ['src/index.ts'],
67
- steps: [
68
- 'Create UserService class',
69
- 'Implement createUser method',
70
- 'Add validation with zod',
71
- 'Write unit tests'
72
- ],
73
- testing: 'Use vitest with mocked database'
74
- },
75
- technicalDetails: {
76
- approach: 'Repository pattern with dependency injection',
77
- stack: ['typescript', 'prisma', 'zod'],
78
- endpoints: ['/api/users POST'],
79
- databaseChanges: ['Add users table']
80
- },
81
-
82
- // === CODE REFERENCES ===
83
- codeReferences: [{
84
- name: 'createUser',
85
- language: 'typescript',
86
- code: \`async function createUser(data: CreateUserInput): Promise<User> {
87
- const validated = createUserSchema.parse(data);
88
- return await db.user.create({ data: validated });
89
- }\`
90
- }],
91
- typeReferences: [{
92
- name: 'CreateUserInput',
93
- definition: \`interface CreateUserInput {
94
- email: string;
95
- name: string;
96
- role?: 'admin' | 'user';
97
- }\`
98
- }],
99
-
100
- // === DEPENDENCIES ===
101
- dependsOn: ['ticket-id-1', 'ticket-id-2'] // Must complete these first
102
- })
103
- }
104
- \`\`\`
105
-
106
- ### 4. Display Creation Results
107
-
108
- **Output:**
109
- \`\`\`
110
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
111
- TICKETS CREATED
112
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
113
- Epic: E{n} - {epicTitle}
114
-
115
- CREATED TICKETS
116
- ─────────────────────────────────────────────────────────────────
117
- E{n}-T1 │ {title} │ {complexity} │ ready
118
- E{n}-T2 │ {title} │ {complexity} │ pending (depends on T1)
119
- E{n}-T3 │ {title} │ {complexity} │ ready
120
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
121
-
122
- Total: {ticketCount} tickets created
123
-
124
- Next: Run /sf-status to see overall progress
125
- \`\`\`
126
-
127
- ## Field Reference
128
-
129
- | Field | Required | Description |
130
- |-------|----------|-------------|
131
- | epicId | ✅ | Parent epic |
132
- | title | ✅ | Ticket title |
133
- | description | | What to implement |
134
- | complexity | | small \\| medium \\| large \\| xlarge |
135
- | acceptanceCriteria | | Success criteria (array of strings) |
136
- | implementation | | Steps, files to create/modify |
137
- | technicalDetails | | Approach, stack, endpoints |
138
- | codeReferences | | Code snippets to guide implementation |
139
- | typeReferences | | Type definitions to implement |
140
- | dependsOn | | Ticket IDs that must complete first |
141
- | notes | | Warnings, edge cases, considerations |
142
-
143
- ## Notes
144
- - Only epicId and title are required
145
- - Tickets with dependsOn start as 'pending', others as 'ready'
146
- - codeReferences and typeReferences provide implementation guidance
147
- - Use /sf-next to start working on ready tickets
148
- `;
@@ -1,69 +0,0 @@
1
- /**
2
- * SF-Epic Command Template
3
- *
4
- * Template for viewing epic details and progress.
5
- */
6
-
7
- export const SF_EPIC_CONTENT = `# View Epic (SpecForge)
8
-
9
- View detailed information about a specific epic and its progress.
10
-
11
- ## Arguments
12
- - \`$ARGUMENTS\` - Required: Epic ID (e.g., E1)
13
-
14
- ## Task
15
-
16
- ### 1. Get Epic Details
17
-
18
- **MCP Calls:**
19
- \`\`\`typescript
20
- get_epic($ARGUMENTS)
21
- get_specification(epic.specificationId)
22
- list_tickets({ epicId: $ARGUMENTS })
23
- \`\`\`
24
-
25
- ### 2. Calculate Progress
26
-
27
- **Logic:**
28
- - Count tickets by status
29
- - Calculate completion percentage
30
- - Identify blockers
31
- - Track velocity
32
-
33
- ### 3. Display Epic Overview
34
-
35
- **Output:**
36
- \`\`\`
37
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
38
- EPIC: E{n}
39
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
40
- {title}
41
-
42
- Specification: {specTitle}
43
- Progress: {done}/{total} ({percentage}%)
44
- Status: {status}
45
-
46
- DESCRIPTION
47
- ─────────────────────────────────────────────────────────────────
48
- {description}
49
-
50
- TICKETS
51
- ─────────────────────────────────────────────────────────────────
52
- ✓ E{n}-T{m} │ {title} │ done
53
- → E{n}-T{m} │ {title} │ in_progress
54
- ○ E{n}-T{m} │ {title} │ ready
55
- ⊗ E{n}-T{m} │ {title} │ blocked
56
-
57
- PATTERNS
58
- ─────────────────────────────────────────────────────────────────
59
- {epicPatterns}
60
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
61
-
62
- Next: Run /sf-next to continue implementation
63
- \`\`\`
64
-
65
- ## Notes
66
- - Shows all tickets in epic
67
- - Displays epic-level patterns
68
- - Use /sf-ticket-implementation <id> to work on specific ticket
69
- `;
@@ -1,88 +0,0 @@
1
- /**
2
- * SF-Import-Plan Command Template
3
- *
4
- * Template for transforming a plan into a complete SpecForge specification.
5
- */
6
-
7
- export const SF_IMPORT_PLAN_CONTENT = `# Import Plan (SpecForge)
8
-
9
- Transform a plan document into a complete SpecForge specification with epics and tickets.
10
-
11
- ## Arguments
12
- - \`$ARGUMENTS\` - Required: Path to plan markdown file
13
-
14
- ## Task
15
-
16
- ### 1. Read and Parse Plan
17
-
18
- **Logic:**
19
- - Read file at $ARGUMENTS
20
- - Extract specification metadata
21
- - Parse epic sections
22
- - Extract ticket information
23
- - Identify patterns and guardrails
24
-
25
- ### 2. Create Specification
26
-
27
- **MCP Calls:**
28
- \`\`\`typescript
29
- create_specification({
30
- title: extractedTitle,
31
- description: extractedDescription,
32
- metadata: extractedMetadata
33
- })
34
- \`\`\`
35
-
36
- ### 3. Create Epics and Tickets
37
-
38
- **MCP Calls:**
39
- \`\`\`typescript
40
- // For each epic in plan
41
- for (const epic of epics) {
42
- const epicId = await create_epic({
43
- specificationId,
44
- title: epic.title,
45
- description: epic.description
46
- })
47
-
48
- // For each ticket in epic
49
- for (const ticket of epic.tickets) {
50
- await create_ticket({
51
- epicId,
52
- title: ticket.title,
53
- description: ticket.description,
54
- dependencies: ticket.dependencies
55
- })
56
- }
57
- }
58
- \`\`\`
59
-
60
- ### 4. Display Import Results
61
-
62
- **Output:**
63
- \`\`\`
64
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
65
- PLAN IMPORT COMPLETE
66
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
67
- Specification: {title}
68
- ID: {specificationId}
69
-
70
- CREATED
71
- ─────────────────────────────────────────────────────────────────
72
- Epics: {epicCount}
73
- Tickets: {ticketCount}
74
-
75
- STRUCTURE
76
- ─────────────────────────────────────────────────────────────────
77
- E1 │ {title} │ {ticketCount} tickets
78
- E2 │ {title} │ {ticketCount} tickets
79
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
80
-
81
- Next: Run /sf-init {specificationId} to start work
82
- \`\`\`
83
-
84
- ## Notes
85
- - Automatically creates full ticket system from plan
86
- - Preserves epic and ticket structure
87
- - Use /sf-init to begin implementation
88
- `;
@@ -1,67 +0,0 @@
1
- /**
2
- * SF-Next Command Template
3
- *
4
- * Template for quick starting the next ready ticket.
5
- */
6
-
7
- export const SF_NEXT_CONTENT = `# Quick Start Next Ticket (SpecForge)
8
-
9
- Automatically find and start the next ready ticket for implementation.
10
-
11
- ## Task
12
-
13
- ### 1. Find Next Ready Ticket
14
-
15
- **MCP Calls:**
16
- \`\`\`typescript
17
- get_working_context()
18
- list_tickets({
19
- specificationId,
20
- status: 'ready',
21
- sortBy: 'priority'
22
- })
23
- \`\`\`
24
-
25
- ### 2. Set Ticket Context
26
-
27
- **MCP Calls:**
28
- \`\`\`typescript
29
- set_working_context({
30
- ticketId: nextTicket.id
31
- })
32
- update_ticket({
33
- ticketId: nextTicket.id,
34
- status: 'in_progress'
35
- })
36
- \`\`\`
37
-
38
- ### 3. Display Ticket Details
39
-
40
- **Output:**
41
- \`\`\`
42
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
- STARTING: E{n}-T{m}
44
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
45
- Title: {title}
46
- Priority: {priority}
47
- Epic: E{n} - {epicTitle}
48
- Dependencies: {depCount} completed
49
-
50
- DESCRIPTION
51
- ─────────────────────────────────────────────────────────────────
52
- {description}
53
-
54
- ACCEPTANCE CRITERIA
55
- ─────────────────────────────────────────────────────────────────
56
- □ {criterion1}
57
- □ {criterion2}
58
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
59
-
60
- Ready to implement!
61
- \`\`\`
62
-
63
- ## Notes
64
- - Automatically selects highest priority ready ticket
65
- - Updates ticket status to in_progress
66
- - Sets working context to selected ticket
67
- `;
@@ -1,67 +0,0 @@
1
- /**
2
- * SF-Review Command Template
3
- *
4
- * Template for reviewing accomplishments and progress analysis.
5
- */
6
-
7
- export const SF_REVIEW_CONTENT = `# Review Accomplishments (SpecForge)
8
-
9
- Comprehensive review of implementation progress and accomplishments.
10
-
11
- ## Arguments
12
- - \`$ARGUMENTS\` - Optional: Specification ID to review
13
-
14
- ## Task
15
-
16
- ### 1. Get Specification Context
17
-
18
- **MCP Calls:**
19
- \`\`\`typescript
20
- get_working_context()
21
-
22
- if ($ARGUMENTS) {
23
- set_working_context({ specificationId: "$ARGUMENTS" })
24
- }
25
-
26
- get_specification(specificationId)
27
- \`\`\`
28
-
29
- ### 2. Load Implementation Data
30
-
31
- **MCP Calls:**
32
- \`\`\`typescript
33
- list_epics({ specificationId })
34
- list_tickets({ specificationId })
35
- \`\`\`
36
-
37
- ### 3. Display Review Summary
38
-
39
- **Output:**
40
- \`\`\`
41
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
42
- IMPLEMENTATION REVIEW
43
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
44
- Specification: {title}
45
- Overall: {done}/{total} ({percentage}%)
46
-
47
- PROGRESS BY EPIC
48
- ─────────────────────────────────────────────────────────────────
49
- E{n} │ {title} │ {ticketsDone}/{ticketsTotal} ({pct}%)
50
-
51
- RECENTLY COMPLETED
52
- ─────────────────────────────────────────────────────────────────
53
- ✓ E{n}-T{m} │ {title} │ {completedDate}
54
-
55
- VELOCITY
56
- ─────────────────────────────────────────────────────────────────
57
- Last 7 days: {ticketsCompleted} tickets
58
- Average: {avgPerDay} tickets/day
59
- Remaining: ~{estimatedDays} days
60
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
61
- \`\`\`
62
-
63
- ## Notes
64
- - Shows completed tickets and velocity metrics
65
- - Provides estimated completion timeline
66
- - Use /sf-status for current state
67
- `;
@@ -1,76 +0,0 @@
1
- /**
2
- * SF-Ticket-Implementation Command Template
3
- *
4
- * Template for implementing a specific ticket with streamlined workflow.
5
- */
6
-
7
- export const SF_TICKET_IMPLEMENTATION_CONTENT = `# Implement Ticket (SpecForge)
8
-
9
- Implement a specific ticket with full context and streamlined workflow.
10
-
11
- ## Arguments
12
- - \`$ARGUMENTS\` - Optional: Ticket ID to implement (e.g., E1-T3)
13
-
14
- ## Task
15
-
16
- ### 1. Select Ticket
17
-
18
- **MCP Calls:**
19
- \`\`\`typescript
20
- // If no arguments, prompt user
21
- if (!$ARGUMENTS) {
22
- list_tickets({
23
- specificationId,
24
- status: 'ready'
25
- })
26
- // Display selection menu
27
- }
28
-
29
- // Get ticket details
30
- get_ticket($ARGUMENTS || selectedId)
31
- \`\`\`
32
-
33
- ### 2. Verify Dependencies
34
-
35
- **MCP Calls:**
36
- \`\`\`typescript
37
- // Check all dependencies are completed
38
- for (const depId of ticket.dependencies) {
39
- get_ticket(depId)
40
- // Verify status is 'done'
41
- }
42
- \`\`\`
43
-
44
- ### 3. Set Context and Start
45
-
46
- **MCP Calls:**
47
- \`\`\`typescript
48
- set_working_context({ ticketId: ticket.id })
49
- update_ticket({
50
- ticketId: ticket.id,
51
- status: 'in_progress'
52
- })
53
- \`\`\`
54
-
55
- ### 4. Display Implementation View
56
-
57
- **Output:**
58
- \`\`\`
59
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
60
- IMPLEMENTING: E{n}-T{m}
61
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
62
- {title}
63
-
64
- {fullDescription}
65
- {implementationGuidance}
66
- {acceptanceCriteria}
67
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
68
-
69
- Begin implementation
70
- \`\`\`
71
-
72
- ## Notes
73
- - Verifies all dependencies are completed
74
- - Provides full ticket context for implementation
75
- - Use /sf-commit when complete
76
- `;
@@ -1,78 +0,0 @@
1
- /**
2
- * SF-Validate Command Template
3
- *
4
- * Template for validating ticket system health.
5
- */
6
-
7
- export const SF_VALIDATE_CONTENT = `# Validate Ticket System (SpecForge)
8
-
9
- Run comprehensive health checks on the ticket system.
10
-
11
- ## Arguments
12
- - \`$ARGUMENTS\` - Optional: Specification ID to validate
13
-
14
- ## Task
15
-
16
- ### 1. Get Specification Context
17
-
18
- **MCP Calls:**
19
- \`\`\`typescript
20
- get_working_context()
21
-
22
- if ($ARGUMENTS) {
23
- set_working_context({ specificationId: "$ARGUMENTS" })
24
- }
25
-
26
- get_specification(specificationId)
27
- \`\`\`
28
-
29
- ### 2. Load and Validate Data
30
-
31
- **MCP Calls:**
32
- \`\`\`typescript
33
- list_epics({ specificationId })
34
- list_tickets({ specificationId })
35
-
36
- // Validate each ticket
37
- for (const ticket of tickets) {
38
- get_ticket(ticket.id)
39
- // Check dependencies, status, fields
40
- }
41
- \`\`\`
42
-
43
- ### 3. Display Validation Results
44
-
45
- **Output:**
46
- \`\`\`
47
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
48
- SYSTEM VALIDATION
49
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
50
- Specification: {title}
51
-
52
- CHECKS
53
- ─────────────────────────────────────────────────────────────────
54
- ✓ All epics have valid structure
55
- ✓ All tickets have required fields
56
- ✓ Dependency graph is acyclic
57
- ✓ Status transitions are valid
58
- ✓ No orphaned tickets
59
-
60
- WARNINGS
61
- ─────────────────────────────────────────────────────────────────
62
- ⚠ E{n}-T{m}: Missing acceptance criteria
63
- ⚠ E{n}-T{m}: Long dependency chain (depth {n})
64
-
65
- ERRORS
66
- ─────────────────────────────────────────────────────────────────
67
- ✗ E{n}-T{m}: Circular dependency detected
68
- ✗ E{n}-T{m}: Invalid dependency reference
69
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
70
-
71
- Status: {errors ? 'FAILED' : 'PASSED'}
72
- \`\`\`
73
-
74
- ## Notes
75
- - Checks dependency graph integrity
76
- - Validates ticket structure and fields
77
- - Reports warnings and errors
78
- `;