sdd-mcp-server 3.2.0 → 3.4.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 (64) hide show
  1. package/README.md +63 -27
  2. package/dist/adapters/cli/SDDToolAdapter.d.ts +5 -1
  3. package/dist/adapters/cli/SDDToolAdapter.js +108 -15
  4. package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
  5. package/dist/application/services/ContextCompactionService.d.ts +39 -0
  6. package/dist/application/services/ContextCompactionService.js +253 -0
  7. package/dist/application/services/ContextCompactionService.js.map +1 -0
  8. package/dist/application/services/ProjectService.d.ts +7 -1
  9. package/dist/application/services/ProjectService.js +56 -1
  10. package/dist/application/services/ProjectService.js.map +1 -1
  11. package/dist/application/services/TemplateService.js +27 -5
  12. package/dist/application/services/TemplateService.js.map +1 -1
  13. package/dist/application/services/WorkflowEngineService.d.ts +3 -1
  14. package/dist/application/services/WorkflowEngineService.js +20 -5
  15. package/dist/application/services/WorkflowEngineService.js.map +1 -1
  16. package/dist/application/services/WorkflowService.js +8 -0
  17. package/dist/application/services/WorkflowService.js.map +1 -1
  18. package/dist/application/services/staticSteering.js +10 -9
  19. package/dist/application/services/staticSteering.js.map +1 -1
  20. package/dist/cli/install-skills.d.ts +10 -0
  21. package/dist/cli/install-skills.js +79 -64
  22. package/dist/cli/install-skills.js.map +1 -1
  23. package/dist/cli/sdd-mcp-cli.js +7 -0
  24. package/dist/cli/sdd-mcp-cli.js.map +1 -1
  25. package/dist/cli/tool-support/antigravity.d.ts +18 -0
  26. package/dist/cli/tool-support/antigravity.js +79 -0
  27. package/dist/cli/tool-support/antigravity.js.map +1 -0
  28. package/dist/cli/tool-support/codex.d.ts +43 -0
  29. package/dist/cli/tool-support/codex.js +91 -0
  30. package/dist/cli/tool-support/codex.js.map +1 -0
  31. package/dist/cli/tool-support/index.d.ts +4 -0
  32. package/dist/cli/tool-support/index.js +3 -0
  33. package/dist/cli/tool-support/index.js.map +1 -0
  34. package/dist/cli/utils/find-package-root.d.ts +23 -0
  35. package/dist/cli/utils/find-package-root.js +87 -0
  36. package/dist/cli/utils/find-package-root.js.map +1 -0
  37. package/dist/domain/services/DomainService.d.ts +1 -0
  38. package/dist/domain/services/DomainService.js +12 -2
  39. package/dist/domain/services/DomainService.js.map +1 -1
  40. package/dist/domain/types.d.ts +13 -0
  41. package/dist/domain/types.js.map +1 -1
  42. package/dist/domain/workflow/WorkflowStateMachine.js +7 -2
  43. package/dist/domain/workflow/WorkflowStateMachine.js.map +1 -1
  44. package/dist/index.js +341 -20
  45. package/dist/index.js.map +1 -1
  46. package/dist/infrastructure/di/container.js +4 -0
  47. package/dist/infrastructure/di/container.js.map +1 -1
  48. package/dist/infrastructure/di/types.d.ts +1 -0
  49. package/dist/infrastructure/di/types.js +1 -0
  50. package/dist/infrastructure/di/types.js.map +1 -1
  51. package/dist/infrastructure/mcp/ResourceManager.js +21 -1
  52. package/dist/infrastructure/mcp/ResourceManager.js.map +1 -1
  53. package/dist/infrastructure/mcp/ToolRegistry.js +34 -2
  54. package/dist/infrastructure/mcp/ToolRegistry.js.map +1 -1
  55. package/dist/infrastructure/schemas/project.schema.d.ts +47 -4
  56. package/dist/infrastructure/schemas/project.schema.js +39 -2
  57. package/dist/infrastructure/schemas/project.schema.js.map +1 -1
  58. package/dist/utils/sddPaths.d.ts +69 -0
  59. package/dist/utils/sddPaths.js +138 -0
  60. package/dist/utils/sddPaths.js.map +1 -0
  61. package/package.json +2 -2
  62. package/skills/sdd-implement/SKILL.md +6 -4
  63. package/skills/sdd-tasks/SKILL.md +20 -7
  64. package/templates/codex-AGENTS.md +22 -0
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ if (isMCPMode) {
20
20
  console.error = (...args) => originalError("[SDD-DEBUG]", ...args);
21
21
  }
22
22
  import "reflect-metadata";
23
+ import { existsSync } from "fs";
24
+ import nodePath from "path";
23
25
  import { createContainer } from "./infrastructure/di/container.js";
24
26
  import { TYPES } from "./infrastructure/di/types.js";
25
27
  export async function createMCPServer() {
@@ -98,6 +100,10 @@ async function createSimpleMCPServer() {
98
100
  description: "Answers to clarification questions (second pass)",
99
101
  additionalProperties: { type: "string" },
100
102
  },
103
+ reviewTestCases: {
104
+ type: "boolean",
105
+ description: "Enable an optional TDD test-case review checkpoint before implementation",
106
+ },
101
107
  },
102
108
  required: ["projectName"],
103
109
  },
@@ -134,6 +140,20 @@ async function createSimpleMCPServer() {
134
140
  required: ["featureName", "phase"],
135
141
  },
136
142
  },
143
+ {
144
+ name: "sdd-review-test-cases",
145
+ description: "Mark optional TDD test-case review checkpoint as reviewed",
146
+ inputSchema: {
147
+ type: "object",
148
+ properties: {
149
+ featureName: {
150
+ type: "string",
151
+ description: "Feature name from spec initialization",
152
+ },
153
+ },
154
+ required: ["featureName"],
155
+ },
156
+ },
137
157
  {
138
158
  name: "sdd-quality-check",
139
159
  description: "Code quality analysis",
@@ -162,6 +182,11 @@ async function createSimpleMCPServer() {
162
182
  type: "string",
163
183
  description: "Feature name to load context for",
164
184
  },
185
+ mode: {
186
+ type: "string",
187
+ enum: ["compact", "standard", "full"],
188
+ description: "Context size mode. Defaults to compact handoff context.",
189
+ },
165
190
  },
166
191
  required: ["featureName"],
167
192
  },
@@ -234,15 +259,10 @@ async function createSimpleMCPServer() {
234
259
  return await handleQualityCheckSimplified(args);
235
260
  case "sdd-approve":
236
261
  return await handleApproveSimplified(args);
262
+ case "sdd-review-test-cases":
263
+ return await handleReviewTestCasesSimplified(args);
237
264
  case "sdd-context-load":
238
- return {
239
- content: [
240
- {
241
- type: "text",
242
- text: `Project context loaded for ${args.featureName}. (Simplified MCP mode)`,
243
- },
244
- ],
245
- };
265
+ return await handleContextLoadSimplified(args);
246
266
  case "sdd-validate-design":
247
267
  return {
248
268
  content: [
@@ -433,6 +453,9 @@ async function handleStatusSimplified(args) {
433
453
  status += `- Requirements: ${spec.approvals.requirements.generated ? "✅ Generated" : "❌ Not Generated"}${spec.approvals.requirements.approved ? ", ✅ Approved" : ", ❌ Not Approved"}\n`;
434
454
  status += `- Design: ${spec.approvals.design.generated ? "✅ Generated" : "❌ Not Generated"}${spec.approvals.design.approved ? ", ✅ Approved" : ", ❌ Not Approved"}\n`;
435
455
  status += `- Tasks: ${spec.approvals.tasks.generated ? "✅ Generated" : "❌ Not Generated"}${spec.approvals.tasks.approved ? ", ✅ Approved" : ", ❌ Not Approved"}\n\n`;
456
+ if (spec.checkpoints?.test_cases?.required) {
457
+ status += `**TDD Test Case Review**: ${spec.checkpoints.test_cases.reviewed ? "✅ Reviewed" : "❌ Pending"}\n`;
458
+ }
436
459
  status += `**Ready for Implementation**: ${spec.ready_for_implementation ? "✅ Yes" : "❌ No"}\n\n`;
437
460
  if (!spec.approvals.requirements.generated)
438
461
  status += `**Next Step**: Run \`sdd-requirements ${featureName}\``;
@@ -440,6 +463,8 @@ async function handleStatusSimplified(args) {
440
463
  status += `**Next Step**: Run \`sdd-design ${featureName}\``;
441
464
  else if (!spec.approvals.tasks.generated)
442
465
  status += `**Next Step**: Run \`sdd-tasks ${featureName}\``;
466
+ else if (spec.checkpoints?.test_cases?.required && !spec.checkpoints.test_cases.reviewed)
467
+ status += `**Next Step**: Review test cases, then run \`sdd-review-test-cases ${featureName}\``;
443
468
  else
444
469
  status += `**Next Step**: Run \`sdd-implement ${featureName}\` to begin implementation`;
445
470
  return { content: [{ type: "text", text: status }] };
@@ -471,6 +496,9 @@ async function handleStatusSimplified(args) {
471
496
  status += `- Requirements: ${spec.approvals.requirements.generated ? "✅" : "❌"}\n`;
472
497
  status += `- Design: ${spec.approvals.design.generated ? "✅" : "❌"}\n`;
473
498
  status += `- Tasks: ${spec.approvals.tasks.generated ? "✅" : "❌"}\n`;
499
+ if (spec.checkpoints?.test_cases?.required) {
500
+ status += `- Test cases reviewed: ${spec.checkpoints.test_cases.reviewed ? "✅" : "❌"}\n`;
501
+ }
474
502
  status += `- Ready: ${spec.ready_for_implementation ? "✅" : "❌"}\n\n`;
475
503
  }
476
504
  }
@@ -503,14 +531,41 @@ async function handleApproveSimplified(args) {
503
531
  ],
504
532
  };
505
533
  }
534
+ if (phase === "tasks" &&
535
+ spec.checkpoints?.test_cases?.required &&
536
+ !spec.checkpoints.test_cases.reviewed) {
537
+ return {
538
+ content: [
539
+ {
540
+ type: "text",
541
+ text: `Error: TDD test cases must be reviewed before approving tasks. ` +
542
+ `After review, run sdd-review-test-cases ${featureName}.`,
543
+ },
544
+ ],
545
+ isError: true,
546
+ };
547
+ }
506
548
  spec.approvals[phase].approved = true;
507
549
  spec.updated_at = new Date().toISOString();
550
+ spec.ready_for_implementation =
551
+ spec.approvals.requirements?.approved === true &&
552
+ spec.approvals.design?.approved === true &&
553
+ spec.approvals.tasks?.approved === true &&
554
+ (spec.checkpoints?.test_cases?.required !== true ||
555
+ spec.checkpoints.test_cases.reviewed === true);
508
556
  fs.writeFileSync(specPath, JSON.stringify(spec, null, 2));
557
+ const handoff = await generateCompactHandoffSimplified(featureName, phase);
509
558
  return {
510
559
  content: [
511
560
  {
512
561
  type: "text",
513
- text: `## Phase Approved\n\n**Feature**: ${featureName}\n**Phase**: ${phase}\n**Status**: ✅ Approved`,
562
+ text: `## Phase Approved\n\n` +
563
+ `**Feature**: ${featureName}\n` +
564
+ `**Phase**: ${phase}\n` +
565
+ `**Status**: ✅ Approved\n` +
566
+ `**Context Handoff**: ${handoff.relativePath}\n` +
567
+ `**Estimated Context Reduction**: ${handoff.reductionPercentage}% ` +
568
+ `(~${handoff.sourceTokens} → ~${handoff.compactTokens} tokens)`,
514
569
  },
515
570
  ],
516
571
  };
@@ -527,6 +582,260 @@ async function handleApproveSimplified(args) {
527
582
  };
528
583
  }
529
584
  }
585
+ async function handleContextLoadSimplified(args) {
586
+ const fs = await import("fs");
587
+ const path = await import("path");
588
+ const { featureName, mode = "compact" } = args || {};
589
+ if (!featureName) {
590
+ return {
591
+ content: [{ type: "text", text: "featureName is required" }],
592
+ isError: true,
593
+ };
594
+ }
595
+ if (!["compact", "standard", "full"].includes(mode)) {
596
+ return {
597
+ content: [{ type: "text", text: "mode must be compact, standard, or full" }],
598
+ isError: true,
599
+ };
600
+ }
601
+ try {
602
+ const { specDir, specPath } = ensureSimplifiedFeatureExists(featureName);
603
+ const handoffPath = path.join(specDir, "context", "handoff.md");
604
+ if (mode === "full") {
605
+ const context = await loadFullContextSimplified(featureName);
606
+ return { content: [{ type: "text", text: context }] };
607
+ }
608
+ if (!fs.existsSync(handoffPath)) {
609
+ await generateCompactHandoffSimplified(featureName, "requirements");
610
+ }
611
+ let context = fs.readFileSync(handoffPath, "utf8");
612
+ if (mode === "standard") {
613
+ context += `\n\n## Current Spec Metadata\n\n\`\`\`json\n${fs.readFileSync(specPath, "utf8")}\n\`\`\``;
614
+ }
615
+ return { content: [{ type: "text", text: context }] };
616
+ }
617
+ catch (error) {
618
+ return {
619
+ content: [
620
+ {
621
+ type: "text",
622
+ text: `Error loading context: ${error.message}`,
623
+ },
624
+ ],
625
+ isError: true,
626
+ };
627
+ }
628
+ }
629
+ function getSimplifiedSpecDir(featureName) {
630
+ const sddDir = existsSync(nodePath.join(process.cwd(), ".spec")) ? ".spec" : ".kiro";
631
+ return nodePath.join(process.cwd(), sddDir, "specs", featureName);
632
+ }
633
+ function ensureSimplifiedFeatureExists(featureName) {
634
+ const specDir = getSimplifiedSpecDir(featureName);
635
+ const specPath = nodePath.join(specDir, "spec.json");
636
+ if (!existsSync(specPath)) {
637
+ throw new Error(`Feature "${featureName}" not found. Run sdd-init first or check the feature name.`);
638
+ }
639
+ return { specDir, specPath };
640
+ }
641
+ async function generateCompactHandoffSimplified(featureName, approvedPhase) {
642
+ const fs = await import("fs");
643
+ const path = await import("path");
644
+ const { specDir } = ensureSimplifiedFeatureExists(featureName);
645
+ const contextDir = path.join(specDir, "context");
646
+ const documents = ["requirements.md", "design.md", "tasks.md", "spec.json"]
647
+ .map((name) => {
648
+ const filePath = path.join(specDir, name);
649
+ return fs.existsSync(filePath)
650
+ ? { name, filePath, content: fs.readFileSync(filePath, "utf8") }
651
+ : null;
652
+ })
653
+ .filter(Boolean);
654
+ if (documents.length === 0) {
655
+ throw new Error(`Feature "${featureName}" has no source documents to compact.`);
656
+ }
657
+ fs.mkdirSync(contextDir, { recursive: true });
658
+ const sourceCharacters = documents.reduce((sum, doc) => sum + doc.content.length, 0);
659
+ const spec = documents.find((doc) => doc.name === "spec.json");
660
+ const parsedSpec = spec ? JSON.parse(spec.content) : {};
661
+ const summaries = documents.map((doc) => summarizeDocumentSimplified(doc.name, doc.content));
662
+ const nextActions = getSimplifiedNextActions(approvedPhase, parsedSpec);
663
+ const draft = [
664
+ `# SDD Context Handoff: ${featureName}`,
665
+ "",
666
+ `Generated: ${new Date().toISOString()}`,
667
+ `Approved phase: ${approvedPhase}`,
668
+ "",
669
+ "## Workflow State",
670
+ "",
671
+ `- Requirements: ${formatSimplifiedApproval(parsedSpec.approvals?.requirements)}`,
672
+ `- Design: ${formatSimplifiedApproval(parsedSpec.approvals?.design)}`,
673
+ `- Tasks: ${formatSimplifiedApproval(parsedSpec.approvals?.tasks)}`,
674
+ parsedSpec.checkpoints?.test_cases?.required
675
+ ? `- TDD test-case review: ${parsedSpec.checkpoints.test_cases.reviewed ? "reviewed" : "pending"}`
676
+ : "- TDD test-case review: not required",
677
+ "",
678
+ "## Compact Phase Summaries",
679
+ "",
680
+ summaries.join("\n\n"),
681
+ "",
682
+ "## Next Actions",
683
+ "",
684
+ ...nextActions.map((action) => `- ${action}`),
685
+ "",
686
+ "## Source References",
687
+ "",
688
+ ...documents.map((doc) => `- ${doc.filePath}`),
689
+ "",
690
+ "## Context Budget Estimate",
691
+ "",
692
+ `- Full source context: ~${estimateTokensSimplified(sourceCharacters)} tokens`,
693
+ "- Handoff context: ~0 tokens",
694
+ "- Use `sdd-context-load` default compact mode for routine continuation.",
695
+ '- Use `sdd-context-load` with `mode: "full"` only for audits or ambiguous decisions.'
696
+ ].join("\n");
697
+ const compactTokens = estimateTokensSimplified(draft.length);
698
+ const sourceTokens = estimateTokensSimplified(sourceCharacters);
699
+ const reductionPercentage = sourceTokens === 0
700
+ ? 0
701
+ : Math.max(0, Math.round((1 - compactTokens / sourceTokens) * 100));
702
+ const content = draft.replace("- Handoff context: ~0 tokens", `- Handoff context: ~${compactTokens} tokens`);
703
+ const handoffPath = path.join(contextDir, "handoff.md");
704
+ fs.writeFileSync(handoffPath, content);
705
+ fs.writeFileSync(path.join(contextDir, `${approvedPhase}-handoff.md`), content);
706
+ return {
707
+ relativePath: path.relative(process.cwd(), handoffPath),
708
+ sourceTokens,
709
+ compactTokens,
710
+ reductionPercentage,
711
+ };
712
+ }
713
+ async function loadFullContextSimplified(featureName) {
714
+ const fs = await import("fs");
715
+ const path = await import("path");
716
+ const { specDir } = ensureSimplifiedFeatureExists(featureName);
717
+ const parts = [`# Full SDD Context: ${featureName}`];
718
+ for (const name of ["requirements.md", "design.md", "tasks.md", "spec.json"]) {
719
+ const filePath = path.join(specDir, name);
720
+ if (fs.existsSync(filePath)) {
721
+ parts.push(`## ${name}\n\n${fs.readFileSync(filePath, "utf8")}`);
722
+ }
723
+ }
724
+ return parts.join("\n\n");
725
+ }
726
+ function summarizeDocumentSimplified(name, content) {
727
+ const lines = content
728
+ .split(/\r?\n/)
729
+ .map((line) => line.trim())
730
+ .filter((line) => line.length > 0 && !line.startsWith("```"));
731
+ const headings = lines
732
+ .filter((line) => /^#{1,4}\s+/.test(line))
733
+ .map((line) => line.replace(/^#{1,4}\s+/, "").trim())
734
+ .filter(uniqueSimplifiedLine)
735
+ .slice(0, 8);
736
+ const bullets = lines
737
+ .filter((line) => /^[-*]\s+/.test(line) || /^\d+\.\s+/.test(line))
738
+ .map((line) => line.replace(/^[-*]\s+/, "").replace(/^\d+\.\s+/, "").trim())
739
+ .filter((line) => line.length <= 220)
740
+ .filter(uniqueSimplifiedLine)
741
+ .slice(0, 8);
742
+ const requirementLines = lines
743
+ .filter((line) => /\b(SHALL|MUST|WHEN|IF|THEN|WHERE|constraint|risk|security|performance|error|edge case)\b/i.test(line))
744
+ .map((line) => line.replace(/^[-*]\s+/, "").replace(/^\d+\.\s+/, "").trim())
745
+ .filter((line) => line.length <= 240)
746
+ .filter(uniqueSimplifiedLine)
747
+ .slice(0, 8);
748
+ return [
749
+ `### ${name}`,
750
+ headings.length > 0 ? "\n**Key sections:**" : "",
751
+ ...headings.map((line) => `- ${line}`),
752
+ bullets.length > 0 ? "\n**Important points:**" : "",
753
+ ...bullets.map((line) => `- ${line}`),
754
+ requirementLines.length > 0 ? "\n**Constraints and acceptance signals:**" : "",
755
+ ...requirementLines.map((line) => `- ${line}`),
756
+ headings.length === 0 && bullets.length === 0 && requirementLines.length === 0
757
+ ? "- No structured summary points found; open source document if this phase is active."
758
+ : "",
759
+ ].filter(Boolean).join("\n");
760
+ }
761
+ function uniqueSimplifiedLine(line, index, lines) {
762
+ return lines.findIndex((candidate) => candidate.toLowerCase() === line.toLowerCase()) === index;
763
+ }
764
+ function getSimplifiedNextActions(approvedPhase, spec) {
765
+ if (approvedPhase === "requirements") {
766
+ return ["Generate or review design using the approved requirements handoff."];
767
+ }
768
+ if (approvedPhase === "design") {
769
+ return ["Generate TDD task breakdown from the approved design handoff."];
770
+ }
771
+ if (spec.checkpoints?.test_cases?.required && !spec.checkpoints.test_cases.reviewed) {
772
+ return ["Review TDD test cases, then run sdd-review-test-cases before approving tasks."];
773
+ }
774
+ return ["Begin implementation with compact context loaded; open full docs only for ambiguous details."];
775
+ }
776
+ function formatSimplifiedApproval(status) {
777
+ if (status?.generated && status?.approved)
778
+ return "generated, approved";
779
+ if (status?.generated)
780
+ return "generated, pending approval";
781
+ return "not generated";
782
+ }
783
+ function estimateTokensSimplified(characters) {
784
+ return Math.max(1, Math.ceil(characters / 4));
785
+ }
786
+ async function handleReviewTestCasesSimplified(args) {
787
+ const fs = await import("fs");
788
+ const path = await import("path");
789
+ const { featureName } = args || {};
790
+ if (!featureName) {
791
+ return {
792
+ content: [{ type: "text", text: "featureName is required" }],
793
+ isError: true,
794
+ };
795
+ }
796
+ try {
797
+ const sddDir = fs.existsSync(path.join(process.cwd(), ".spec")) ? ".spec" : ".kiro";
798
+ const specPath = path.join(process.cwd(), sddDir, "specs", featureName, "spec.json");
799
+ const spec = JSON.parse(fs.readFileSync(specPath, "utf8"));
800
+ spec.workflow_options = {
801
+ ...(spec.workflow_options ?? {}),
802
+ review_test_cases: true,
803
+ };
804
+ spec.checkpoints = {
805
+ ...(spec.checkpoints ?? {}),
806
+ test_cases: {
807
+ required: true,
808
+ reviewed: true,
809
+ reviewed_at: new Date().toISOString(),
810
+ },
811
+ };
812
+ spec.updated_at = new Date().toISOString();
813
+ spec.ready_for_implementation =
814
+ spec.approvals?.requirements?.approved === true &&
815
+ spec.approvals?.design?.approved === true &&
816
+ spec.approvals?.tasks?.approved === true;
817
+ fs.writeFileSync(specPath, JSON.stringify(spec, null, 2));
818
+ return {
819
+ content: [
820
+ {
821
+ type: "text",
822
+ text: `## TDD Test Cases Reviewed\n\n**Feature**: ${featureName}\n**Status**: ✅ Reviewed`,
823
+ },
824
+ ],
825
+ };
826
+ }
827
+ catch (error) {
828
+ return {
829
+ content: [
830
+ {
831
+ type: "text",
832
+ text: `Error reviewing test cases: ${error.message}`,
833
+ },
834
+ ],
835
+ isError: true,
836
+ };
837
+ }
838
+ }
530
839
  // Simple quality check aligned with full server
531
840
  async function handleQualityCheckSimplified(args) {
532
841
  const { code = "", language = "javascript" } = args || {};
@@ -625,7 +934,7 @@ async function handleInitSimplified(args) {
625
934
  const fs = await import("fs");
626
935
  const path = await import("path");
627
936
  try {
628
- const { projectName, description } = args;
937
+ const { projectName, description, reviewTestCases = false } = args;
629
938
  if (!description || typeof description !== "string") {
630
939
  throw new Error("Description is required for project initialization");
631
940
  }
@@ -661,6 +970,15 @@ async function handleInitSimplified(args) {
661
970
  approved: false,
662
971
  },
663
972
  },
973
+ workflow_options: {
974
+ review_test_cases: reviewTestCases === true,
975
+ },
976
+ checkpoints: {
977
+ test_cases: {
978
+ required: reviewTestCases === true,
979
+ reviewed: reviewTestCases !== true,
980
+ },
981
+ },
664
982
  ready_for_implementation: false,
665
983
  };
666
984
  fs.writeFileSync(path.join(specDir, "spec.json"), JSON.stringify(specContent, null, 2));
@@ -727,7 +1045,7 @@ Note: Optional for new features or small additions. You can proceed directly to
727
1045
  1. \`sdd-init\` - Initialize spec with detailed project description
728
1046
  2. \`sdd-requirements\` - Generate requirements document
729
1047
  3. \`sdd-design\` - Interactive: "Have you reviewed requirements.md? [y/N]"
730
- 4. \`sdd-tasks\` - Interactive: Confirms both requirements and design review
1048
+ 4. \`sdd-tasks\` - Interactive: Confirms requirements/design review and asks whether TDD test cases need a review checkpoint
731
1049
 
732
1050
  ### Phase 2: Progress Tracking
733
1051
  \`sdd-status\` - Check current progress and phases
@@ -747,14 +1065,15 @@ Note: Optional for new features or small additions. You can proceed directly to
747
1065
  Managed by \`sdd-steering\` tool. Updates here reflect tool changes.
748
1066
 
749
1067
  ### Active Steering Files
750
- - \`product.md\`: Always included - Product context and business objectives
751
- - \`tech.md\`: Always included - Technology stack and architectural decisions
752
- - \`structure.md\`: Always included - File organization and code patterns
753
- - \`linus-review.md\`: Always included - Ensuring code quality of the projects
754
- - \`commit.md\`: Always included - Ensuring the commit / merge request / pull request title and message context
755
- - \`security-check.md\`: Always included - OWASP Top 10 security checklist (REQUIRED for code generation and review)
756
- - \`tdd-guideline.md\`: Always included - Test-Driven Development workflow (REQUIRED for all new features)
757
- - \`principles.md\`: Always included - Core coding principles (SOLID, DRY, KISS, YAGNI, Separation of Concerns, Modularity)
1068
+ Load steering documents on demand to control token usage:
1069
+ - \`product.md\`: Product context and business objectives
1070
+ - \`tech.md\`: Technology stack and architectural decisions
1071
+ - \`structure.md\`: File organization and code patterns
1072
+ - \`linus-review.md\`: Code quality review standards
1073
+ - \`commit.md\`: Commit and PR conventions
1074
+ - \`security-check.md\`: OWASP Top 10 checklist for code generation and review
1075
+ - \`tdd-guideline.md\`: TDD workflow for new features
1076
+ - \`principles.md\`: SOLID, DRY, KISS, YAGNI, Separation of Concerns, Modularity
758
1077
 
759
1078
  ### Custom Steering Files
760
1079
  <!-- Added by sdd-steering-custom tool -->
@@ -780,6 +1099,7 @@ Managed by \`sdd-steering\` tool. Updates here reflect tool changes.
780
1099
 
781
1100
  **Feature Name**: \`${featureName}\`
782
1101
  **Description**: ${description}
1102
+ **TDD Test Case Review Checkpoint**: ${reviewTestCases === true ? "Enabled" : "Disabled"}
783
1103
 
784
1104
  **Created Files**:
785
1105
  - \`.spec/specs/${featureName}/spec.json\` - Project metadata and phase tracking
@@ -841,7 +1161,7 @@ async function main() {
841
1161
  templates: "Handlebars-based template generation with inheritance",
842
1162
  },
843
1163
  tools: {
844
- count: 10,
1164
+ count: 11,
845
1165
  categories: [
846
1166
  "sdd-init",
847
1167
  "sdd-requirements",
@@ -850,6 +1170,7 @@ async function main() {
850
1170
  "sdd-implement",
851
1171
  "sdd-status",
852
1172
  "sdd-approve",
1173
+ "sdd-review-test-cases",
853
1174
  "sdd-quality-check",
854
1175
  "sdd-context-load",
855
1176
  "sdd-template-render",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ import { WorkflowValidationService } from "../../application/services/WorkflowVa
53
53
  import { CodebaseAnalysisService } from "../../application/services/CodebaseAnalysisService.js";
54
54
  import { SteeringDocumentService } from "../../application/services/SteeringDocumentService.js";
55
55
  import { ProjectContextService } from "../../application/services/ProjectContextService.js";
56
+ import { ContextCompactionService } from "../../application/services/ContextCompactionService.js";
56
57
  import { RequirementsClarificationService } from "../../application/services/RequirementsClarificationService.js";
57
58
  import { SteeringContextLoader } from "../../application/services/SteeringContextLoader.js";
58
59
  import { DescriptionAnalyzer } from "../../application/services/DescriptionAnalyzer.js";
@@ -161,6 +162,9 @@ export function createContainer() {
161
162
  container
162
163
  .bind(TYPES.ProjectContextService)
163
164
  .to(ProjectContextService);
165
+ container
166
+ .bind(TYPES.ContextCompactionService)
167
+ .to(ContextCompactionService);
164
168
  container
165
169
  .bind(TYPES.RequirementsClarificationService)
166
170
  .to(RequirementsClarificationService);