@specforge/mcp 3.3.5 → 3.3.7

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