@slope-dev/slope 1.13.2 → 1.16.0

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 (212) hide show
  1. package/dist/cli/commands/context.d.ts +2 -0
  2. package/dist/cli/commands/context.d.ts.map +1 -0
  3. package/dist/cli/commands/context.js +190 -0
  4. package/dist/cli/commands/context.js.map +1 -0
  5. package/dist/cli/commands/distill.d.ts.map +1 -1
  6. package/dist/cli/commands/distill.js +13 -4
  7. package/dist/cli/commands/distill.js.map +1 -1
  8. package/dist/cli/commands/docs.d.ts +5 -0
  9. package/dist/cli/commands/docs.d.ts.map +1 -0
  10. package/dist/cli/commands/docs.js +303 -0
  11. package/dist/cli/commands/docs.js.map +1 -0
  12. package/dist/cli/commands/enrich.d.ts +2 -0
  13. package/dist/cli/commands/enrich.d.ts.map +1 -0
  14. package/dist/cli/commands/enrich.js +140 -0
  15. package/dist/cli/commands/enrich.js.map +1 -0
  16. package/dist/cli/commands/guard.d.ts.map +1 -1
  17. package/dist/cli/commands/guard.js +2 -0
  18. package/dist/cli/commands/guard.js.map +1 -1
  19. package/dist/cli/commands/index-cmd.d.ts +2 -0
  20. package/dist/cli/commands/index-cmd.d.ts.map +1 -0
  21. package/dist/cli/commands/index-cmd.js +296 -0
  22. package/dist/cli/commands/index-cmd.js.map +1 -0
  23. package/dist/cli/commands/init.d.ts.map +1 -1
  24. package/dist/cli/commands/init.js +73 -182
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/initiative.d.ts +2 -0
  27. package/dist/cli/commands/initiative.d.ts.map +1 -0
  28. package/dist/cli/commands/initiative.js +207 -0
  29. package/dist/cli/commands/initiative.js.map +1 -0
  30. package/dist/cli/commands/loop.d.ts +2 -0
  31. package/dist/cli/commands/loop.d.ts.map +1 -0
  32. package/dist/cli/commands/loop.js +388 -0
  33. package/dist/cli/commands/loop.js.map +1 -0
  34. package/dist/cli/commands/prep.d.ts +2 -0
  35. package/dist/cli/commands/prep.d.ts.map +1 -0
  36. package/dist/cli/commands/prep.js +94 -0
  37. package/dist/cli/commands/prep.js.map +1 -0
  38. package/dist/cli/commands/roadmap.d.ts.map +1 -1
  39. package/dist/cli/commands/roadmap.js +134 -46
  40. package/dist/cli/commands/roadmap.js.map +1 -1
  41. package/dist/cli/commands/session.d.ts.map +1 -1
  42. package/dist/cli/commands/session.js +2 -0
  43. package/dist/cli/commands/session.js.map +1 -1
  44. package/dist/cli/commands/store.js +76 -10
  45. package/dist/cli/commands/store.js.map +1 -1
  46. package/dist/cli/commands/vision.d.ts.map +1 -1
  47. package/dist/cli/commands/vision.js +104 -7
  48. package/dist/cli/commands/vision.js.map +1 -1
  49. package/dist/cli/guards/stop-check.d.ts +6 -1
  50. package/dist/cli/guards/stop-check.d.ts.map +1 -1
  51. package/dist/cli/guards/stop-check.js +84 -5
  52. package/dist/cli/guards/stop-check.js.map +1 -1
  53. package/dist/cli/guards/worktree-check.d.ts +14 -0
  54. package/dist/cli/guards/worktree-check.d.ts.map +1 -0
  55. package/dist/cli/guards/worktree-check.js +137 -0
  56. package/dist/cli/guards/worktree-check.js.map +1 -0
  57. package/dist/cli/index.js +56 -0
  58. package/dist/cli/index.js.map +1 -1
  59. package/dist/cli/interactive-init.d.ts +19 -0
  60. package/dist/cli/interactive-init.d.ts.map +1 -0
  61. package/dist/cli/interactive-init.js +132 -0
  62. package/dist/cli/interactive-init.js.map +1 -0
  63. package/dist/cli/loop/analyze.d.ts +8 -0
  64. package/dist/cli/loop/analyze.d.ts.map +1 -0
  65. package/dist/cli/loop/analyze.js +62 -0
  66. package/dist/cli/loop/analyze.js.map +1 -0
  67. package/dist/cli/loop/backlog.d.ts +26 -0
  68. package/dist/cli/loop/backlog.d.ts.map +1 -0
  69. package/dist/cli/loop/backlog.js +95 -0
  70. package/dist/cli/loop/backlog.js.map +1 -0
  71. package/dist/cli/loop/config.d.ts +10 -0
  72. package/dist/cli/loop/config.d.ts.map +1 -0
  73. package/dist/cli/loop/config.js +75 -0
  74. package/dist/cli/loop/config.js.map +1 -0
  75. package/dist/cli/loop/continuous.d.ts +6 -0
  76. package/dist/cli/loop/continuous.d.ts.map +1 -0
  77. package/dist/cli/loop/continuous.js +108 -0
  78. package/dist/cli/loop/continuous.js.map +1 -0
  79. package/dist/cli/loop/executor.d.ts +8 -0
  80. package/dist/cli/loop/executor.d.ts.map +1 -0
  81. package/dist/cli/loop/executor.js +600 -0
  82. package/dist/cli/loop/executor.js.map +1 -0
  83. package/dist/cli/loop/guard-runner.d.ts +14 -0
  84. package/dist/cli/loop/guard-runner.d.ts.map +1 -0
  85. package/dist/cli/loop/guard-runner.js +53 -0
  86. package/dist/cli/loop/guard-runner.js.map +1 -0
  87. package/dist/cli/loop/logger.d.ts +9 -0
  88. package/dist/cli/loop/logger.d.ts.map +1 -0
  89. package/dist/cli/loop/logger.js +37 -0
  90. package/dist/cli/loop/logger.js.map +1 -0
  91. package/dist/cli/loop/model-selector.d.ts +14 -0
  92. package/dist/cli/loop/model-selector.d.ts.map +1 -0
  93. package/dist/cli/loop/model-selector.js +59 -0
  94. package/dist/cli/loop/model-selector.js.map +1 -0
  95. package/dist/cli/loop/parallel.d.ts +6 -0
  96. package/dist/cli/loop/parallel.d.ts.map +1 -0
  97. package/dist/cli/loop/parallel.js +109 -0
  98. package/dist/cli/loop/parallel.js.map +1 -0
  99. package/dist/cli/loop/pr-lifecycle.d.ts +26 -0
  100. package/dist/cli/loop/pr-lifecycle.d.ts.map +1 -0
  101. package/dist/cli/loop/pr-lifecycle.js +244 -0
  102. package/dist/cli/loop/pr-lifecycle.js.map +1 -0
  103. package/dist/cli/loop/types.d.ts +98 -0
  104. package/dist/cli/loop/types.d.ts.map +1 -0
  105. package/dist/cli/loop/types.js +37 -0
  106. package/dist/cli/loop/types.js.map +1 -0
  107. package/dist/cli/loop/worktree.d.ts +30 -0
  108. package/dist/cli/loop/worktree.d.ts.map +1 -0
  109. package/dist/cli/loop/worktree.js +134 -0
  110. package/dist/cli/loop/worktree.js.map +1 -0
  111. package/dist/cli/registry.d.ts.map +1 -1
  112. package/dist/cli/registry.js +9 -0
  113. package/dist/cli/registry.js.map +1 -1
  114. package/dist/core/analyzers/stack.d.ts +2 -0
  115. package/dist/core/analyzers/stack.d.ts.map +1 -1
  116. package/dist/core/analyzers/stack.js +9 -6
  117. package/dist/core/analyzers/stack.js.map +1 -1
  118. package/dist/core/config.d.ts +6 -0
  119. package/dist/core/config.d.ts.map +1 -1
  120. package/dist/core/config.js.map +1 -1
  121. package/dist/core/constants.d.ts +2 -0
  122. package/dist/core/constants.d.ts.map +1 -1
  123. package/dist/core/constants.js +2 -0
  124. package/dist/core/constants.js.map +1 -1
  125. package/dist/core/context.d.ts +20 -0
  126. package/dist/core/context.d.ts.map +1 -0
  127. package/dist/core/context.js +59 -0
  128. package/dist/core/context.js.map +1 -0
  129. package/dist/core/docs.d.ts +50 -0
  130. package/dist/core/docs.d.ts.map +1 -0
  131. package/dist/core/docs.js +67 -0
  132. package/dist/core/docs.js.map +1 -0
  133. package/dist/core/embedding-client.d.ts +11 -0
  134. package/dist/core/embedding-client.d.ts.map +1 -0
  135. package/dist/core/embedding-client.js +92 -0
  136. package/dist/core/embedding-client.js.map +1 -0
  137. package/dist/core/embedding-store.d.ts +44 -0
  138. package/dist/core/embedding-store.d.ts.map +1 -0
  139. package/dist/core/embedding-store.js +7 -0
  140. package/dist/core/embedding-store.js.map +1 -0
  141. package/dist/core/embedding.d.ts +32 -0
  142. package/dist/core/embedding.d.ts.map +1 -0
  143. package/dist/core/embedding.js +114 -0
  144. package/dist/core/embedding.js.map +1 -0
  145. package/dist/core/enrich.d.ts +76 -0
  146. package/dist/core/enrich.d.ts.map +1 -0
  147. package/dist/core/enrich.js +115 -0
  148. package/dist/core/enrich.js.map +1 -0
  149. package/dist/core/generators/roadmap.d.ts +6 -1
  150. package/dist/core/generators/roadmap.d.ts.map +1 -1
  151. package/dist/core/generators/roadmap.js +150 -0
  152. package/dist/core/generators/roadmap.js.map +1 -1
  153. package/dist/core/guard.d.ts +1 -1
  154. package/dist/core/guard.d.ts.map +1 -1
  155. package/dist/core/guard.js +8 -0
  156. package/dist/core/guard.js.map +1 -1
  157. package/dist/core/index.d.ts +27 -5
  158. package/dist/core/index.d.ts.map +1 -1
  159. package/dist/core/index.js +25 -4
  160. package/dist/core/index.js.map +1 -1
  161. package/dist/core/initiative.d.ts +72 -0
  162. package/dist/core/initiative.d.ts.map +1 -0
  163. package/dist/core/initiative.js +421 -0
  164. package/dist/core/initiative.js.map +1 -0
  165. package/dist/core/interview-engine.d.ts +34 -0
  166. package/dist/core/interview-engine.d.ts.map +1 -0
  167. package/dist/core/interview-engine.js +195 -0
  168. package/dist/core/interview-engine.js.map +1 -0
  169. package/dist/core/interview-steps.d.ts +27 -0
  170. package/dist/core/interview-steps.d.ts.map +1 -0
  171. package/dist/core/interview-steps.js +157 -0
  172. package/dist/core/interview-steps.js.map +1 -0
  173. package/dist/core/interview.d.ts +20 -0
  174. package/dist/core/interview.d.ts.map +1 -1
  175. package/dist/core/interview.js +61 -34
  176. package/dist/core/interview.js.map +1 -1
  177. package/dist/core/metaphor-preview.d.ts +34 -0
  178. package/dist/core/metaphor-preview.d.ts.map +1 -0
  179. package/dist/core/metaphor-preview.js +94 -0
  180. package/dist/core/metaphor-preview.js.map +1 -0
  181. package/dist/core/prep.d.ts +88 -0
  182. package/dist/core/prep.d.ts.map +1 -0
  183. package/dist/core/prep.js +302 -0
  184. package/dist/core/prep.js.map +1 -0
  185. package/dist/core/roles.d.ts +3 -0
  186. package/dist/core/roles.d.ts.map +1 -1
  187. package/dist/core/roles.js +36 -0
  188. package/dist/core/roles.js.map +1 -1
  189. package/dist/core/store.d.ts +1 -1
  190. package/dist/core/store.d.ts.map +1 -1
  191. package/dist/core/vision.d.ts +10 -0
  192. package/dist/core/vision.d.ts.map +1 -1
  193. package/dist/core/vision.js +37 -0
  194. package/dist/core/vision.js.map +1 -1
  195. package/dist/mcp/index.d.ts.map +1 -1
  196. package/dist/mcp/index.js +55 -7
  197. package/dist/mcp/index.js.map +1 -1
  198. package/dist/mcp/registry.d.ts +1 -1
  199. package/dist/mcp/registry.d.ts.map +1 -1
  200. package/dist/mcp/registry.js +44 -0
  201. package/dist/mcp/registry.js.map +1 -1
  202. package/dist/mcp/sandbox.d.ts.map +1 -1
  203. package/dist/mcp/sandbox.js +12 -1
  204. package/dist/mcp/sandbox.js.map +1 -1
  205. package/dist/store/index.d.ts +26 -1
  206. package/dist/store/index.d.ts.map +1 -1
  207. package/dist/store/index.js +193 -1
  208. package/dist/store/index.js.map +1 -1
  209. package/dist/store-pg/index.d.ts.map +1 -1
  210. package/dist/store-pg/index.js +25 -0
  211. package/dist/store-pg/index.js.map +1 -1
  212. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import type { ReviewType } from './types.js';
2
+ export type SpecialistType = 'backend' | 'ml-engineer' | 'database' | 'frontend' | 'ux-designer';
3
+ export type InitiativeSprintPhase = 'pending' | 'planning' | 'plan_review' | 'executing' | 'scoring' | 'pr_review' | 'complete';
4
+ export interface ReviewGateConfig {
5
+ plan: {
6
+ required: ReviewType[];
7
+ specialists: 'auto' | SpecialistType[];
8
+ };
9
+ pr: {
10
+ required: ReviewType[];
11
+ };
12
+ }
13
+ export interface ReviewRecord {
14
+ reviewer: SpecialistType | ReviewType;
15
+ completed: boolean;
16
+ findings_count: number;
17
+ reviewer_mode: 'manual' | 'auto';
18
+ }
19
+ export interface InitiativeSprintStatus {
20
+ sprint_number: number;
21
+ phase: InitiativeSprintPhase;
22
+ plan_reviews: ReviewRecord[];
23
+ pr_reviews: ReviewRecord[];
24
+ scorecard?: string;
25
+ pr_url?: string;
26
+ branch?: string;
27
+ }
28
+ export interface InitiativeDefinition {
29
+ name: string;
30
+ description: string;
31
+ roadmap: string;
32
+ review_gates: ReviewGateConfig;
33
+ sprints: InitiativeSprintStatus[];
34
+ }
35
+ export interface ReviewChecklistItem {
36
+ question: string;
37
+ category: string;
38
+ }
39
+ export interface ReviewChecklistContext {
40
+ sprint_number: number;
41
+ ticket_count: number;
42
+ slope: number;
43
+ file_patterns: string[];
44
+ has_new_infra: boolean;
45
+ description?: string;
46
+ }
47
+ export declare function getNextPhase(current: InitiativeSprintPhase): InitiativeSprintPhase | null;
48
+ export declare function canAdvance(sprint: InitiativeSprintStatus, gates: ReviewGateConfig): {
49
+ ok: true;
50
+ } | {
51
+ ok: false;
52
+ reason: string;
53
+ };
54
+ export declare function selectSpecialists(tickets: Array<{
55
+ title: string;
56
+ description?: string;
57
+ filePatterns?: string[];
58
+ }>): SpecialistType[];
59
+ export type ReviewChecklistType = ReviewType | SpecialistType;
60
+ export type ReviewGate = 'plan' | 'pr';
61
+ export declare function getReviewChecklist(reviewerType: ReviewChecklistType, gate: ReviewGate, _context?: ReviewChecklistContext): ReviewChecklistItem[];
62
+ export declare function loadInitiative(cwd: string): InitiativeDefinition | null;
63
+ export declare function saveInitiative(cwd: string, initiative: InitiativeDefinition): void;
64
+ export declare function createInitiative(name: string, description: string, roadmapPath: string, cwd: string, gatesOverride?: Partial<ReviewGateConfig>): InitiativeDefinition;
65
+ export declare function advanceSprint(cwd: string, sprintNumber: number): {
66
+ phase: InitiativeSprintPhase;
67
+ previous: InitiativeSprintPhase;
68
+ };
69
+ export declare function recordReview(cwd: string, sprintNumber: number, gate: ReviewGate, reviewer: ReviewChecklistType, findingsCount?: number): void;
70
+ export declare function getNextSprint(initiative: InitiativeDefinition): InitiativeSprintStatus | null;
71
+ export declare function formatInitiativeStatus(initiative: InitiativeDefinition): string;
72
+ //# sourceMappingURL=initiative.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initiative.d.ts","sourceRoot":"","sources":["../../src/core/initiative.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,421 @@
1
+ // RoadmapDefinition used via parseRoadmap return type
2
+ import { readFileSync, writeFileSync, mkdirSync, rmSync, existsSync } from 'node:fs';
3
+ import { join, dirname } from 'node:path';
4
+ import { parseRoadmap } from './roadmap.js';
5
+ // --- State Machine ---
6
+ const VALID_TRANSITIONS = {
7
+ pending: 'planning',
8
+ planning: 'plan_review',
9
+ plan_review: 'executing',
10
+ executing: 'scoring',
11
+ scoring: 'pr_review',
12
+ pr_review: 'complete',
13
+ complete: null,
14
+ };
15
+ export function getNextPhase(current) {
16
+ return VALID_TRANSITIONS[current];
17
+ }
18
+ export function canAdvance(sprint, gates) {
19
+ const next = getNextPhase(sprint.phase);
20
+ if (!next)
21
+ return { ok: false, reason: `Sprint is already complete` };
22
+ // Validate prerequisites for specific transitions
23
+ if (sprint.phase === 'plan_review') {
24
+ // All required plan reviews + specialist reviews must be completed
25
+ const requiredReviews = gates.plan.required;
26
+ for (const reviewType of requiredReviews) {
27
+ const record = sprint.plan_reviews.find(r => r.reviewer === reviewType);
28
+ if (!record || !record.completed) {
29
+ return { ok: false, reason: `Required plan review not complete: ${reviewType}` };
30
+ }
31
+ }
32
+ // Check specialist reviews
33
+ const specialistReviews = sprint.plan_reviews.filter(r => !requiredReviews.includes(r.reviewer));
34
+ const incompleteSpecialists = specialistReviews.filter(r => !r.completed);
35
+ if (incompleteSpecialists.length > 0) {
36
+ return {
37
+ ok: false,
38
+ reason: `Specialist reviews not complete: ${incompleteSpecialists.map(r => r.reviewer).join(', ')}`,
39
+ };
40
+ }
41
+ }
42
+ if (sprint.phase === 'pr_review') {
43
+ // All required PR reviews must be completed
44
+ for (const reviewType of gates.pr.required) {
45
+ const record = sprint.pr_reviews.find(r => r.reviewer === reviewType);
46
+ if (!record || !record.completed) {
47
+ return { ok: false, reason: `Required PR review not complete: ${reviewType}` };
48
+ }
49
+ }
50
+ }
51
+ return { ok: true };
52
+ }
53
+ // --- Specialist Selection ---
54
+ const SPECIALIST_PATTERNS = {
55
+ backend: /\b(store|api|server|endpoint|route|middleware|auth|cli|command|handler)\b/i,
56
+ 'ml-engineer': /\b(ml|ai|model|embedding|vector|neural|inference|llm|prompt|scoring|prediction)\b/i,
57
+ database: /\b(sqlite|postgres|pg|migration|schema|table|index|query|store-pg|sql)\b/i,
58
+ frontend: /\b(html|css|component|dashboard|report|chart|svg|template|render|canvas)\b/i,
59
+ 'ux-designer': /\b(onboarding|init|interview|wizard|tutorial|ux|accessibility|flow|getting-started|walkthrough)\b/i,
60
+ };
61
+ const SPECIALIST_PRIORITY = [
62
+ 'backend',
63
+ 'database',
64
+ 'ml-engineer',
65
+ 'frontend',
66
+ 'ux-designer',
67
+ ];
68
+ export function selectSpecialists(tickets) {
69
+ // Concatenate all ticket text
70
+ const text = tickets
71
+ .map(t => [t.title, t.description ?? '', ...(t.filePatterns ?? [])].join(' '))
72
+ .join(' ');
73
+ // Count keyword hits per specialist
74
+ const counts = new Map();
75
+ for (const [specialist, pattern] of Object.entries(SPECIALIST_PATTERNS)) {
76
+ const matches = text.match(new RegExp(pattern, 'gi'));
77
+ counts.set(specialist, matches?.length ?? 0);
78
+ }
79
+ // Include specialists with hit count >= 2
80
+ const selected = SPECIALIST_PRIORITY.filter(s => (counts.get(s) ?? 0) >= 2);
81
+ // If none meet threshold, include the top scorer (minimum 1 specialist)
82
+ if (selected.length === 0) {
83
+ let maxCount = 0;
84
+ let topSpecialist = 'backend';
85
+ for (const s of SPECIALIST_PRIORITY) {
86
+ const count = counts.get(s) ?? 0;
87
+ if (count > maxCount) {
88
+ maxCount = count;
89
+ topSpecialist = s;
90
+ }
91
+ }
92
+ return [topSpecialist];
93
+ }
94
+ return selected;
95
+ }
96
+ // --- Review Checklists ---
97
+ const ARCHITECT_PLAN_CHECKLIST = [
98
+ { question: 'Does the plan duplicate existing SLOPE infrastructure? (check imports, existing functions)', category: 'duplication' },
99
+ { question: 'Are dependencies correct and ordering optimal?', category: 'dependencies' },
100
+ { question: 'Does the approach match codebase patterns? (naming, module structure, export style)', category: 'patterns' },
101
+ { question: 'Are there scope gaps or underscoped complexity?', category: 'scope' },
102
+ { question: 'Does it introduce unnecessary abstractions?', category: 'complexity' },
103
+ { question: 'Are ticket counts reasonable (3-4 per sprint)?', category: 'scope' },
104
+ ];
105
+ const ARCHITECT_PR_CHECKLIST = [
106
+ { question: 'Design decisions align with plan', category: 'alignment' },
107
+ { question: 'API surface changes are intentional (new exports from index.ts)', category: 'api' },
108
+ { question: 'No breaking changes without version bump', category: 'compatibility' },
109
+ { question: 'Cross-package dependencies use workspace:* protocol', category: 'monorepo' },
110
+ ];
111
+ const CODE_PR_CHECKLIST = [
112
+ { question: 'Tests cover new functionality (check test file count delta)', category: 'testing' },
113
+ { question: 'Error handling at system boundaries', category: 'errors' },
114
+ { question: 'No security vulnerabilities', category: 'security' },
115
+ { question: 'TypeScript strict mode compliance', category: 'types' },
116
+ { question: 'Conventional commit messages', category: 'commits' },
117
+ ];
118
+ const SPECIALIST_PLAN_CHECKLISTS = {
119
+ backend: [
120
+ { question: 'API design follows existing patterns', category: 'api' },
121
+ { question: 'Error handling patterns are consistent', category: 'errors' },
122
+ { question: 'CLI flag conventions match existing commands', category: 'cli' },
123
+ { question: 'Test strategy covers edge cases', category: 'testing' },
124
+ { question: 'Backwards compatibility maintained', category: 'compatibility' },
125
+ ],
126
+ 'ml-engineer': [
127
+ { question: 'Model integration approach is sound', category: 'integration' },
128
+ { question: 'Token/cost considerations addressed', category: 'cost' },
129
+ { question: 'Fallback behavior defined for failures', category: 'fallback' },
130
+ { question: 'Evaluation metrics specified', category: 'metrics' },
131
+ { question: 'Context window budgets documented', category: 'budget' },
132
+ ],
133
+ database: [
134
+ { question: 'Schema design is normalized appropriately', category: 'schema' },
135
+ { question: 'Migration strategy handles rollback', category: 'migration' },
136
+ { question: 'Query performance considered for large datasets', category: 'performance' },
137
+ { question: 'Store interface parity maintained (SQLite / PG)', category: 'parity' },
138
+ { question: 'Rollback plan documented', category: 'rollback' },
139
+ ],
140
+ frontend: [
141
+ { question: 'Rendering approach is efficient', category: 'rendering' },
142
+ { question: 'Accessibility requirements met', category: 'accessibility' },
143
+ { question: 'No external deps (self-contained HTML/SVG)', category: 'dependencies' },
144
+ { question: 'Responsive design considered', category: 'responsive' },
145
+ ],
146
+ 'ux-designer': [
147
+ { question: 'User flow is clear and intuitive', category: 'flow' },
148
+ { question: 'Progressive disclosure applied', category: 'disclosure' },
149
+ { question: 'Error states have helpful messages', category: 'errors' },
150
+ { question: 'Help text is actionable', category: 'help' },
151
+ { question: 'Graceful degradation for edge cases', category: 'degradation' },
152
+ ],
153
+ };
154
+ export function getReviewChecklist(reviewerType, gate, _context) {
155
+ if (gate === 'plan') {
156
+ if (reviewerType === 'architect')
157
+ return ARCHITECT_PLAN_CHECKLIST;
158
+ if (reviewerType in SPECIALIST_PLAN_CHECKLISTS) {
159
+ return SPECIALIST_PLAN_CHECKLISTS[reviewerType];
160
+ }
161
+ return [];
162
+ }
163
+ if (gate === 'pr') {
164
+ if (reviewerType === 'architect')
165
+ return ARCHITECT_PR_CHECKLIST;
166
+ if (reviewerType === 'code')
167
+ return CODE_PR_CHECKLIST;
168
+ return [];
169
+ }
170
+ return [];
171
+ }
172
+ // --- Initiative File I/O ---
173
+ const INITIATIVE_FILE = '.slope/initiative.json';
174
+ const INITIATIVE_LOCK = '.slope/.initiative.lock';
175
+ function isProcessAlive(pid) {
176
+ try {
177
+ process.kill(pid, 0);
178
+ return true;
179
+ }
180
+ catch {
181
+ return false;
182
+ }
183
+ }
184
+ function acquireLock(cwd) {
185
+ const lockDir = join(cwd, INITIATIVE_LOCK);
186
+ const parent = join(cwd, '.slope');
187
+ if (!existsSync(parent)) {
188
+ mkdirSync(parent, { recursive: true });
189
+ }
190
+ try {
191
+ mkdirSync(lockDir, { recursive: false });
192
+ writeFileSync(join(lockDir, 'pid'), String(process.pid));
193
+ return true;
194
+ }
195
+ catch {
196
+ // Check for stale lock
197
+ try {
198
+ const pid = parseInt(readFileSync(join(lockDir, 'pid'), 'utf8'), 10);
199
+ if (!isNaN(pid) && !isProcessAlive(pid)) {
200
+ rmSync(lockDir, { recursive: true });
201
+ return acquireLock(cwd); // retry once after removing stale lock
202
+ }
203
+ }
204
+ catch { /* lock dir exists but no pid file — treat as held */ }
205
+ return false;
206
+ }
207
+ }
208
+ function releaseLock(cwd) {
209
+ const lockDir = join(cwd, INITIATIVE_LOCK);
210
+ try {
211
+ rmSync(lockDir, { recursive: true });
212
+ }
213
+ catch { /* lock already released */ }
214
+ }
215
+ function withLock(cwd, fn) {
216
+ if (!acquireLock(cwd)) {
217
+ throw new Error('Initiative file is locked by another process. Try again.');
218
+ }
219
+ try {
220
+ return fn();
221
+ }
222
+ finally {
223
+ releaseLock(cwd);
224
+ }
225
+ }
226
+ export function loadInitiative(cwd) {
227
+ const filePath = join(cwd, INITIATIVE_FILE);
228
+ if (!existsSync(filePath))
229
+ return null;
230
+ const raw = readFileSync(filePath, 'utf8');
231
+ try {
232
+ return JSON.parse(raw);
233
+ }
234
+ catch (err) {
235
+ throw new Error(`Corrupted initiative file at ${INITIATIVE_FILE}: ${err.message}`);
236
+ }
237
+ }
238
+ export function saveInitiative(cwd, initiative) {
239
+ withLock(cwd, () => {
240
+ const dir = dirname(join(cwd, INITIATIVE_FILE));
241
+ mkdirSync(dir, { recursive: true });
242
+ writeFileSync(join(cwd, INITIATIVE_FILE), JSON.stringify(initiative, null, 2) + '\n');
243
+ });
244
+ }
245
+ // --- Initiative Creation ---
246
+ export function createInitiative(name, description, roadmapPath, cwd, gatesOverride) {
247
+ // Load and validate roadmap
248
+ let raw;
249
+ try {
250
+ raw = JSON.parse(readFileSync(join(cwd, roadmapPath), 'utf8'));
251
+ }
252
+ catch {
253
+ throw new Error(`Cannot read roadmap at: ${roadmapPath}`);
254
+ }
255
+ const { roadmap } = parseRoadmap(raw);
256
+ if (!roadmap) {
257
+ throw new Error(`Invalid roadmap at: ${roadmapPath}`);
258
+ }
259
+ const defaultGates = {
260
+ plan: { required: ['architect'], specialists: 'auto' },
261
+ pr: { required: ['architect', 'code'] },
262
+ };
263
+ const gates = {
264
+ plan: { ...defaultGates.plan, ...gatesOverride?.plan },
265
+ pr: { ...defaultGates.pr, ...gatesOverride?.pr },
266
+ };
267
+ const sprints = roadmap.sprints.map(s => ({
268
+ sprint_number: s.id,
269
+ phase: 'pending',
270
+ plan_reviews: [],
271
+ pr_reviews: [],
272
+ }));
273
+ const initiative = {
274
+ name,
275
+ description,
276
+ roadmap: roadmapPath,
277
+ review_gates: gates,
278
+ sprints,
279
+ };
280
+ saveInitiative(cwd, initiative);
281
+ return initiative;
282
+ }
283
+ // --- Advance Sprint Phase ---
284
+ export function advanceSprint(cwd, sprintNumber) {
285
+ const initiative = loadInitiative(cwd);
286
+ if (!initiative)
287
+ throw new Error('No initiative found. Run "slope initiative create" first.');
288
+ const sprint = initiative.sprints.find(s => s.sprint_number === sprintNumber);
289
+ if (!sprint)
290
+ throw new Error(`Sprint ${sprintNumber} not found in initiative.`);
291
+ const check = canAdvance(sprint, initiative.review_gates);
292
+ if (!check.ok)
293
+ throw new Error(check.reason);
294
+ const previous = sprint.phase;
295
+ const next = getNextPhase(sprint.phase);
296
+ if (!next)
297
+ throw new Error(`Cannot advance sprint ${sprintNumber}: no next phase from "${sprint.phase}".`);
298
+ // On transition to plan_review, populate expected review records if empty
299
+ if (next === 'plan_review' && sprint.plan_reviews.length === 0) {
300
+ // Add required reviews
301
+ for (const rt of initiative.review_gates.plan.required) {
302
+ sprint.plan_reviews.push({
303
+ reviewer: rt,
304
+ completed: false,
305
+ findings_count: 0,
306
+ reviewer_mode: rt === 'architect' ? 'manual' : 'auto',
307
+ });
308
+ }
309
+ // Add specialist reviews
310
+ if (initiative.review_gates.plan.specialists === 'auto') {
311
+ // Load roadmap to get ticket info for specialist selection
312
+ try {
313
+ const raw = JSON.parse(readFileSync(join(cwd, initiative.roadmap), 'utf8'));
314
+ const { roadmap } = parseRoadmap(raw);
315
+ if (roadmap) {
316
+ const roadmapSprint = roadmap.sprints.find(s => s.id === sprintNumber);
317
+ if (roadmapSprint) {
318
+ const tickets = roadmapSprint.tickets.map(t => ({ title: t.title }));
319
+ const specialists = selectSpecialists(tickets);
320
+ for (const specialist of specialists) {
321
+ sprint.plan_reviews.push({
322
+ reviewer: specialist,
323
+ completed: false,
324
+ findings_count: 0,
325
+ reviewer_mode: 'auto',
326
+ });
327
+ }
328
+ }
329
+ }
330
+ }
331
+ catch { /* roadmap unavailable — skip specialist selection */ }
332
+ }
333
+ else {
334
+ for (const specialist of initiative.review_gates.plan.specialists) {
335
+ sprint.plan_reviews.push({
336
+ reviewer: specialist,
337
+ completed: false,
338
+ findings_count: 0,
339
+ reviewer_mode: 'auto',
340
+ });
341
+ }
342
+ }
343
+ }
344
+ // On transition to pr_review, populate expected PR review records if empty
345
+ if (next === 'pr_review' && sprint.pr_reviews.length === 0) {
346
+ for (const rt of initiative.review_gates.pr.required) {
347
+ sprint.pr_reviews.push({
348
+ reviewer: rt,
349
+ completed: false,
350
+ findings_count: 0,
351
+ reviewer_mode: rt === 'architect' ? 'manual' : 'auto',
352
+ });
353
+ }
354
+ }
355
+ sprint.phase = next;
356
+ saveInitiative(cwd, initiative);
357
+ return { phase: next, previous };
358
+ }
359
+ // --- Record Review ---
360
+ export function recordReview(cwd, sprintNumber, gate, reviewer, findingsCount = 0) {
361
+ const initiative = loadInitiative(cwd);
362
+ if (!initiative)
363
+ throw new Error('No initiative found. Run "slope initiative create" first.');
364
+ const sprint = initiative.sprints.find(s => s.sprint_number === sprintNumber);
365
+ if (!sprint)
366
+ throw new Error(`Sprint ${sprintNumber} not found in initiative.`);
367
+ // Validate gate matches current phase
368
+ if (gate === 'plan' && sprint.phase !== 'plan_review') {
369
+ throw new Error(`Cannot record plan review: sprint is in "${sprint.phase}" phase (expected "plan_review")`);
370
+ }
371
+ if (gate === 'pr' && sprint.phase !== 'pr_review') {
372
+ throw new Error(`Cannot record PR review: sprint is in "${sprint.phase}" phase (expected "pr_review")`);
373
+ }
374
+ const reviews = gate === 'plan' ? sprint.plan_reviews : sprint.pr_reviews;
375
+ const existing = reviews.find(r => r.reviewer === reviewer);
376
+ if (existing) {
377
+ existing.completed = true;
378
+ existing.findings_count = findingsCount;
379
+ }
380
+ else {
381
+ reviews.push({
382
+ reviewer,
383
+ completed: true,
384
+ findings_count: findingsCount,
385
+ reviewer_mode: reviewer === 'architect' ? 'manual' : 'auto',
386
+ });
387
+ }
388
+ saveInitiative(cwd, initiative);
389
+ }
390
+ // --- Next Sprint ---
391
+ export function getNextSprint(initiative) {
392
+ return initiative.sprints.find(s => s.phase !== 'complete') ?? null;
393
+ }
394
+ // --- Format Status ---
395
+ export function formatInitiativeStatus(initiative) {
396
+ const lines = [];
397
+ lines.push(`\n# Initiative: ${initiative.name}`);
398
+ lines.push('\u2550'.repeat(50));
399
+ lines.push(`\nRoadmap: ${initiative.roadmap}`);
400
+ const completed = initiative.sprints.filter(s => s.phase === 'complete').length;
401
+ lines.push(`Progress: ${completed}/${initiative.sprints.length} sprints complete\n`);
402
+ // Table header
403
+ lines.push('Sprint Phase Plan Reviews PR Reviews Branch');
404
+ lines.push('\u2500'.repeat(90));
405
+ for (const sprint of initiative.sprints) {
406
+ const planReviews = sprint.plan_reviews.length > 0
407
+ ? sprint.plan_reviews.map(r => `${r.reviewer}:${r.completed ? '\u2713' : '\u2717'}`).join(' ')
408
+ : '-';
409
+ const prReviews = sprint.pr_reviews.length > 0
410
+ ? sprint.pr_reviews.map(r => `${r.reviewer}:${r.completed ? '\u2713' : '\u2717'}`).join(' ')
411
+ : '-';
412
+ lines.push(`S${String(sprint.sprint_number).padEnd(5)} ` +
413
+ `${sprint.phase.padEnd(13)} ` +
414
+ `${planReviews.padEnd(21)} ` +
415
+ `${prReviews.padEnd(21)} ` +
416
+ `${sprint.branch ?? '-'}`);
417
+ }
418
+ lines.push('');
419
+ return lines.join('\n');
420
+ }
421
+ //# sourceMappingURL=initiative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initiative.js","sourceRoot":"","sources":["../../src/core/initiative.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { InitInput } from './interview.js';
2
+ export interface DetectedInfo {
3
+ projectName?: string;
4
+ repoUrl?: string;
5
+ existingSprintNumber?: number;
6
+ detectedPlatforms: string[];
7
+ techStack?: string[];
8
+ }
9
+ export interface InterviewContext {
10
+ cwd: string;
11
+ detected: DetectedInfo;
12
+ }
13
+ /**
14
+ * Fast, lightweight project detection. No git log analysis, no heavy scanning.
15
+ * Each step is wrapped in try/catch for graceful fallback.
16
+ */
17
+ export declare function runLightweightDetection(cwd: string): DetectedInfo;
18
+ /**
19
+ * Build the full interview context from cwd.
20
+ */
21
+ export declare function buildInterviewContext(cwd: string): InterviewContext;
22
+ /**
23
+ * Validate interview answers against step definitions.
24
+ * Returns an array of { field, message } errors (empty = valid).
25
+ */
26
+ export declare function validateInterviewAnswers(answers: Record<string, unknown>): Array<{
27
+ field: string;
28
+ message: string;
29
+ }>;
30
+ /**
31
+ * Transform interview answers map into InitInput for core initFromInterview().
32
+ */
33
+ export declare function answersToInitInput(answers: Record<string, unknown>): InitInput;
34
+ //# sourceMappingURL=interview-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interview-engine.d.ts","sourceRoot":"","sources":["../../src/core/interview-engine.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CA4EjE;AA2BD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAKnE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkC3C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAuC9E"}