lean-spec 0.2.6-dev.20251126030344 → 0.2.6-dev.20251126033915

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.
@@ -8328,7 +8328,8 @@ function createTool() {
8328
8328
  outputSchema: {
8329
8329
  success: z.boolean(),
8330
8330
  path: z.string(),
8331
- message: z.string()
8331
+ message: z.string(),
8332
+ reminder: z.string().optional()
8332
8333
  }
8333
8334
  },
8334
8335
  async (input, _extra) => {
@@ -8349,7 +8350,8 @@ function createTool() {
8349
8350
  const output = {
8350
8351
  success: true,
8351
8352
  path: capturedOutput.includes("Created:") ? capturedOutput.split("Created:")[1].split("\n")[0].trim() : "",
8352
- message: `Spec '${input.name}' created successfully`
8353
+ message: `Spec '${input.name}' created successfully`,
8354
+ reminder: "\u{1F4A1} Remember to update status to 'in-progress' when you start implementing! Use: update tool with status='in-progress'"
8353
8355
  };
8354
8356
  return {
8355
8357
  content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
@@ -8584,7 +8586,8 @@ function listTool() {
8584
8586
  includeArchived: z.boolean().optional().describe("Include archived specs in results (default: false). Set to true to see completed/archived work.")
8585
8587
  },
8586
8588
  outputSchema: {
8587
- specs: z.array(z.any())
8589
+ specs: z.array(z.any()),
8590
+ warnings: z.array(z.string()).optional()
8588
8591
  }
8589
8592
  },
8590
8593
  async (input, _extra) => {
@@ -8596,7 +8599,26 @@ function listTool() {
8596
8599
  assignee: input.assignee,
8597
8600
  includeArchived: input.includeArchived
8598
8601
  });
8599
- const output = { specs };
8602
+ const warnings = [];
8603
+ if (!input.status) {
8604
+ const inProgressSpecs = specs.filter((s) => s.status === "in-progress");
8605
+ const mockBoard = {
8606
+ columns: {
8607
+ planned: [],
8608
+ "in-progress": inProgressSpecs,
8609
+ complete: [],
8610
+ archived: []
8611
+ }
8612
+ };
8613
+ const staleSpecs = getStaleSpecs(mockBoard);
8614
+ for (const spec of staleSpecs) {
8615
+ warnings.push(`\u26A0\uFE0F Spec "${spec.name}" has been in-progress for ${spec.daysStale} days. Consider updating status.`);
8616
+ }
8617
+ }
8618
+ const output = {
8619
+ specs,
8620
+ ...warnings.length > 0 ? { warnings } : {}
8621
+ };
8600
8622
  return {
8601
8623
  content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
8602
8624
  structuredContent: output
@@ -8874,6 +8896,18 @@ function tokensTool() {
8874
8896
  }
8875
8897
  ];
8876
8898
  }
8899
+ function getStatusReminder(newStatus) {
8900
+ switch (newStatus) {
8901
+ case "in-progress":
8902
+ return "\u{1F4A1} Spec marked in-progress. Remember to document decisions in the spec as you work, and update to 'complete' when done!";
8903
+ case "complete":
8904
+ return "\u2705 Spec marked complete! Consider: Did you document what you learned? Are there follow-up specs needed?";
8905
+ case "planned":
8906
+ return "\u{1F4CB} Spec marked as planned. Update to 'in-progress' before you start implementing!";
8907
+ default:
8908
+ return void 0;
8909
+ }
8910
+ }
8877
8911
  function updateTool() {
8878
8912
  return [
8879
8913
  "update",
@@ -8889,7 +8923,8 @@ function updateTool() {
8889
8923
  },
8890
8924
  outputSchema: {
8891
8925
  success: z.boolean(),
8892
- message: z.string()
8926
+ message: z.string(),
8927
+ reminder: z.string().optional()
8893
8928
  }
8894
8929
  },
8895
8930
  async (input, _extra) => {
@@ -8905,9 +8940,11 @@ function updateTool() {
8905
8940
  if (input.tags !== void 0) updates.tags = input.tags;
8906
8941
  if (input.assignee !== void 0) updates.assignee = input.assignee;
8907
8942
  await updateSpec(input.specPath, updates);
8943
+ const reminder = getStatusReminder(input.status);
8908
8944
  const output = {
8909
8945
  success: true,
8910
- message: `Spec updated successfully`
8946
+ message: `Spec updated successfully`,
8947
+ ...reminder ? { reminder } : {}
8911
8948
  };
8912
8949
  return {
8913
8950
  content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
@@ -9503,5 +9540,5 @@ if (import.meta.url === `file://${process.argv[1]}`) {
9503
9540
  }
9504
9541
 
9505
9542
  export { analyzeCommand, archiveCommand, backfillCommand, boardCommand, checkCommand, compactCommand, createCommand, createMcpServer, depsCommand, examplesCommand, filesCommand, ganttCommand, initCommand, linkCommand, listCommand, mcpCommand, migrateCommand, openCommand, searchCommand, splitCommand, statsCommand, templatesCommand, timelineCommand, tokensCommand, uiCommand, unlinkCommand, updateCommand, validateCommand, viewCommand };
9506
- //# sourceMappingURL=chunk-IXCZPYB7.js.map
9507
- //# sourceMappingURL=chunk-IXCZPYB7.js.map
9543
+ //# sourceMappingURL=chunk-VWR4YMIR.js.map
9544
+ //# sourceMappingURL=chunk-VWR4YMIR.js.map