sdd-mcp-server 5.3.0 → 5.5.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 (117) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +85 -13
  3. package/agents/security-auditor.md +2 -2
  4. package/dist/__tests__/helpers/message-clarity.d.ts +15 -0
  5. package/dist/__tests__/helpers/message-clarity.js +26 -0
  6. package/dist/__tests__/helpers/message-clarity.js.map +1 -0
  7. package/dist/__tests__/helpers/message-extractor.d.ts +22 -0
  8. package/dist/__tests__/helpers/message-extractor.js +135 -0
  9. package/dist/__tests__/helpers/message-extractor.js.map +1 -0
  10. package/dist/__tests__/unit/jev/helpers.d.ts +84 -0
  11. package/dist/__tests__/unit/jev/helpers.js +188 -0
  12. package/dist/__tests__/unit/jev/helpers.js.map +1 -0
  13. package/dist/adapters/cli/SDDToolAdapter.d.ts +5 -1
  14. package/dist/adapters/cli/SDDToolAdapter.js +22 -3
  15. package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
  16. package/dist/application/services/JevAdvisoryService.d.ts +53 -0
  17. package/dist/application/services/JevAdvisoryService.js +310 -0
  18. package/dist/application/services/JevAdvisoryService.js.map +1 -0
  19. package/dist/application/services/JevBaseRef.d.ts +21 -0
  20. package/dist/application/services/JevBaseRef.js +46 -0
  21. package/dist/application/services/JevBaseRef.js.map +1 -0
  22. package/dist/application/services/JevChangeManifest.d.ts +33 -0
  23. package/dist/application/services/JevChangeManifest.js +208 -0
  24. package/dist/application/services/JevChangeManifest.js.map +1 -0
  25. package/dist/application/services/JevCheckTypes.d.ts +74 -0
  26. package/dist/application/services/JevCheckTypes.js +2 -0
  27. package/dist/application/services/JevCheckTypes.js.map +1 -0
  28. package/dist/application/services/JevCodeExcerpts.d.ts +23 -0
  29. package/dist/application/services/JevCodeExcerpts.js +102 -0
  30. package/dist/application/services/JevCodeExcerpts.js.map +1 -0
  31. package/dist/application/services/JevCommitLookup.d.ts +17 -0
  32. package/dist/application/services/JevCommitLookup.js +72 -0
  33. package/dist/application/services/JevCommitLookup.js.map +1 -0
  34. package/dist/application/services/JevExchange.d.ts +48 -0
  35. package/dist/application/services/JevExchange.js +119 -0
  36. package/dist/application/services/JevExchange.js.map +1 -0
  37. package/dist/application/services/JevQuestionCatalog.d.ts +28 -0
  38. package/dist/application/services/JevQuestionCatalog.js +194 -0
  39. package/dist/application/services/JevQuestionCatalog.js.map +1 -0
  40. package/dist/application/services/JevRedaction.d.ts +12 -0
  41. package/dist/application/services/JevRedaction.js +56 -0
  42. package/dist/application/services/JevRedaction.js.map +1 -0
  43. package/dist/application/services/JevReport.d.ts +41 -0
  44. package/dist/application/services/JevReport.js +101 -0
  45. package/dist/application/services/JevReport.js.map +1 -0
  46. package/dist/application/services/JevResponseValidator.d.ts +34 -0
  47. package/dist/application/services/JevResponseValidator.js +98 -0
  48. package/dist/application/services/JevResponseValidator.js.map +1 -0
  49. package/dist/application/services/JevResults.d.ts +3 -0
  50. package/dist/application/services/JevResults.js +7 -0
  51. package/dist/application/services/JevResults.js.map +1 -0
  52. package/dist/application/services/JevReviewCheck.d.ts +20 -0
  53. package/dist/application/services/JevReviewCheck.js +120 -0
  54. package/dist/application/services/JevReviewCheck.js.map +1 -0
  55. package/dist/application/services/JevSettings.d.ts +18 -0
  56. package/dist/application/services/JevSettings.js +72 -0
  57. package/dist/application/services/JevSettings.js.map +1 -0
  58. package/dist/application/services/JevSidecarStore.d.ts +68 -0
  59. package/dist/application/services/JevSidecarStore.js +201 -0
  60. package/dist/application/services/JevSidecarStore.js.map +1 -0
  61. package/dist/application/services/JevSpecState.d.ts +38 -0
  62. package/dist/application/services/JevSpecState.js +109 -0
  63. package/dist/application/services/JevSpecState.js.map +1 -0
  64. package/dist/application/services/JevTestcaseState.d.ts +22 -0
  65. package/dist/application/services/JevTestcaseState.js +85 -0
  66. package/dist/application/services/JevTestcaseState.js.map +1 -0
  67. package/dist/application/services/RedEvidenceClassifier.d.ts +10 -0
  68. package/dist/application/services/RedEvidenceClassifier.js +32 -0
  69. package/dist/application/services/RedEvidenceClassifier.js.map +1 -0
  70. package/dist/application/services/WorkflowEngineService.d.ts +28 -0
  71. package/dist/application/services/WorkflowEngineService.js +111 -63
  72. package/dist/application/services/WorkflowEngineService.js.map +1 -1
  73. package/dist/application/services/WorkflowValidationService.d.ts +16 -0
  74. package/dist/application/services/WorkflowValidationService.js +39 -34
  75. package/dist/application/services/WorkflowValidationService.js.map +1 -1
  76. package/dist/cli/install-skills.js +0 -0
  77. package/dist/cli/install-target.d.ts +8 -6
  78. package/dist/cli/install-target.js +11 -3
  79. package/dist/cli/install-target.js.map +1 -1
  80. package/dist/cli/tool-support/root-guidance.js +1 -0
  81. package/dist/cli/tool-support/root-guidance.js.map +1 -1
  82. package/dist/cli/tool-support/target-installer.d.ts +1 -0
  83. package/dist/cli/tool-support/target-installer.js +9 -5
  84. package/dist/cli/tool-support/target-installer.js.map +1 -1
  85. package/dist/domain/ports.d.ts +34 -0
  86. package/dist/domain/ports.js +11 -1
  87. package/dist/domain/ports.js.map +1 -1
  88. package/dist/infrastructure/adapters/FetchJevHttpAdapter.d.ts +4 -0
  89. package/dist/infrastructure/adapters/FetchJevHttpAdapter.js +73 -0
  90. package/dist/infrastructure/adapters/FetchJevHttpAdapter.js.map +1 -0
  91. package/dist/infrastructure/adapters/NodeGitAdapter.d.ts +5 -0
  92. package/dist/infrastructure/adapters/NodeGitAdapter.js +31 -0
  93. package/dist/infrastructure/adapters/NodeGitAdapter.js.map +1 -0
  94. package/dist/infrastructure/di/container.js +10 -0
  95. package/dist/infrastructure/di/container.js.map +1 -1
  96. package/dist/infrastructure/di/types.d.ts +4 -0
  97. package/dist/infrastructure/di/types.js +4 -0
  98. package/dist/infrastructure/di/types.js.map +1 -1
  99. package/dist/infrastructure/mcp/sddToolDefinitions.d.ts +1 -1
  100. package/dist/infrastructure/mcp/sddToolDefinitions.js +72 -1
  101. package/dist/infrastructure/mcp/sddToolDefinitions.js.map +1 -1
  102. package/dist/shared/version.d.ts +1 -1
  103. package/dist/shared/version.js +1 -1
  104. package/package.json +1 -1
  105. package/skills/output-clarity-ladder/SKILL.md +43 -0
  106. package/skills/output-clarity-ladder/references/ja.md +30 -0
  107. package/skills/output-clarity-ladder/references/zh-TW.md +30 -0
  108. package/skills/sdd-commit/SKILL.md +4 -3
  109. package/skills/sdd-design/SKILL.md +1 -1
  110. package/skills/sdd-implement/SKILL.md +4 -4
  111. package/skills/sdd-requirements/SKILL.md +6 -6
  112. package/skills/sdd-review/SKILL.md +3 -2
  113. package/skills/sdd-security-check/SKILL.md +3 -2
  114. package/skills/sdd-tasks/REFERENCE.md +4 -0
  115. package/skills/sdd-tasks/SKILL.md +8 -6
  116. package/templates/CLAUDE.md +1 -1
  117. package/templates/codex-AGENTS.md +1 -1
@@ -11,7 +11,7 @@ The user invokes this Skill; all MCP calls below are internal. Never ask the use
11
11
  ## Resolve and Restore
12
12
 
13
13
  1. Internally read status before doing method work.
14
- 2. With a supplied missing feature, internally initialize it from the user's name and complete goal. If clarification is required, present the structured questions, collect answers, and retry initialization. Use the returned canonical feature name.
14
+ 2. With a supplied missing feature, internally initialize it from the user's name and complete goal. If clarification is required, present the structured questions, collect answers, and retry initialization. Use the canonical feature name.
15
15
  3. With no supplied name: ask for a name and goal when no feature exists; resume the sole incomplete feature; when several are incomplete, list them and ask the user to select. Never infer identity from process memory.
16
16
  4. Load compact approved context. For a failed or unapproved requirements revision, load that draft only with full mode and explicit unapproved inclusion.
17
17
  5. If status reports an observed artifact identity for an orphan or manual edit, read that exact requirements file before revising. Never acknowledge its hash without inspecting and deliberately incorporating or replacing its content.
@@ -25,14 +25,14 @@ If durable state reports a conflict or host permission failure, present an actio
25
25
  - `**Objective:** ...`
26
26
  - `**EARS Specification:** ... SHALL ...`
27
27
  - `**Acceptance Criteria:** 1. ...` with at least one numbered item on the same line.
28
- 3. Replace ambiguous words with observable bounds. Include security, privacy, accessibility, compatibility, errors, and performance only when relevant.
29
- 4. Check completeness, consistency, feasibility, traceability, and testability; run gap analysis internally when existing code is in scope.
28
+ 3. Replace ambiguous words with observable bounds. Add security, privacy, accessibility, compatibility, errors, and performance only when relevant.
29
+ 4. Check completeness, consistency, feasibility, traceability, and testability; run gap analysis when existing code is in scope.
30
30
 
31
- Internally submit the complete Markdown with the exact revision and artifact identity last observed. Submission, not direct file editing, is the canonical write. Present the saved path and a concise validation result. A failed validation is a durable draft: revise it using the observed draft content and identity; do not request approval.
31
+ Internally submit the complete Markdown with the exact revision and artifact identity last observed. Submission, not direct file editing, is the canonical write. Present the saved path and validation result. A failed validation is a durable draft: revise it using the observed draft and identity; do not request approval.
32
32
 
33
33
  ## Human Gate
34
34
 
35
- When validation passes, ask one explicit question: **“Approve these requirements?”** Only an unambiguous affirmative answer in this Skill flow permits the internal approval call for the exact reviewed revision and artifact. Never self-approve or treat host tool permission as approval. After approval, reread status and report the persisted outcome.
35
+ When validation passes, internally run the JEV `requirements` check and show its line, if any; it never affects approval. Then ask one explicit question: **“Approve these requirements?”** Only an unambiguous affirmative answer in this Skill flow permits the internal approval call for the exact reviewed revision and artifact. Never self-approve or treat host tool permission as approval. After approval, reread status and report the persisted outcome.
36
36
 
37
37
  ## Specialist Delegation
38
38
 
@@ -40,7 +40,7 @@ Target renderers provide the `planner` route. When a native advisor is required,
40
40
 
41
41
  ## Output
42
42
 
43
- Return the canonical saved path, key scope decisions, concise validation evidence, the approval question or persisted approval, and durable blockers. Do not present raw MCP operations as next steps. Execution report: mode (inline|project-agent; asked|reused|not offered), agents started and whether parallel, configured model/effort per agent (never claim unobserved values), and any fallback to the parent.
43
+ Return the canonical saved path, scope decisions, validation evidence, the approval question or persisted approval, and durable blockers. Do not present raw MCP operations as next steps. Execution report: mode (inline|project-agent; asked|reused|not offered), agents started and whether parallel, configured model/effort per agent (never claim unobserved values), and any fallback to the parent.
44
44
 
45
45
  ## Optional Reference
46
46
 
@@ -13,8 +13,9 @@ disable-model-invocation: true
13
13
  3. Review data flow, state transitions, concurrency, resource ownership, compatibility, and boundary conditions.
14
14
  4. Check authorization, validation, injection, secret handling, sensitive logging, and dependency risk where applicable.
15
15
  5. Remove false positives and preference-only remarks. Cite each finding with a path and line, triggering scenario, impact, and concrete remediation.
16
- 6. Rank findings: **critical** (security/data loss), **important** (incorrect behavior/regression), then **minor** (maintainability with real cost).
17
- 7. State verification evidence and residual risk. If no findings remain, say so explicitly.
16
+ 6. After removing false positives, the parent (never an agent) internally runs the JEV `security` and `principles` checks on the finding records and changed units. Show each returned line, note severity disagreements, and report only violated principles with their location. Keep the model's severity when JEV is unavailable. For a PR or branch review, pass its base (for example `origin/<base-branch>` or a commit SHA) as `baseRef` so committed changes are judged; omit `baseRef` when only uncommitted changes are reviewed.
17
+ 7. Rank findings: **critical** (security/data loss), **important** (incorrect behavior/regression), then **minor** (maintainability with real cost).
18
+ 8. State verification evidence and residual risk. If no findings remain, say so explicitly.
18
19
 
19
20
  Do not edit code unless asked. Never claim a test or security check ran when it did not.
20
21
 
@@ -14,9 +14,10 @@ disable-model-invocation: true
14
14
  4. Search for embedded secrets and unsafe sensitive-data logging. Never print a discovered secret; redact it and identify only its location/type.
15
15
  5. Inspect dependency and automated scan results only when the project provides safe focused commands; distinguish tool evidence from manual review.
16
16
  6. For each finding, prove the path to impact, assign severity, cite location, and give a minimal remediation plus a regression test.
17
- 7. Compare implementation with security requirements and design controls. Record coverage gaps and residual risk.
17
+ 7. After the audit returns, the parent (never an agent) internally runs the JEV `security` check on the finding records, notes severity disagreements, and keeps the audit severity when JEV is unavailable. For a PR or branch audit, pass its base (for example `origin/<base-branch>` or a commit SHA) as `baseRef` so committed changes are judged; omit `baseRef` when only uncommitted changes are audited.
18
+ 8. Compare implementation with security requirements and design controls. Record coverage gaps and residual risk.
18
19
 
19
- Do not make destructive probes, contact external systems, or claim exploitability without evidence.
20
+ Do not make destructive probes, contact the audited target or its systems, or claim exploitability without evidence. The only permitted outbound call is the parent's opt-in JEV triage after the audit returns.
20
21
 
21
22
  ## Specialist Delegation
22
23
 
@@ -20,6 +20,10 @@ Use comma-separated values for `Covers`, `Dependencies`, and `Affected artifacts
20
20
 
21
21
  Prefer a vertical behavior slice over separate “write all tests” and “write all code” phases. Split when a task has distinct observable outcomes, ownership boundaries, or independently verifiable failure modes. Merge tasks that would otherwise require a serial handoff with no standalone value. Mark concurrency only when slices do not edit the same contract or require one another's output.
22
22
 
23
+ ## JEV Case List
24
+
25
+ When the JEV `testcases` check is active, it asks for a case list once. Send one entry per planned test case for each TDD-required task: `taskId` (for example `1.1`), `kind` (`behavior`, `boundary`, `error`, `transition`, or `security`), `given`, `when`, `then`, and `covers` (the acceptance criterion the case proves). Keep the list in task order; the same list in the same order is recognized as unchanged. Cases for tasks that are not TDD-required are not sent. Present flagged tasks first, then the rest, and treat the check as advice: it never records the test-case review checkpoint.
26
+
23
27
  ## Checklist
24
28
 
25
29
  Every requirement and design component is covered; dependencies form an acyclic order; each behavioral task begins with RED; edge/error/security/migration scenarios appear where relevant; acceptance criteria are measurable; optional test-case review is explicit; no task is merely “finish”, “wire up”, or “add tests”; and approval remains a separate user-visible gate.
@@ -14,9 +14,9 @@ The user invokes this Skill; backend lifecycle calls are internal. Never tell th
14
14
  2. Design and requirements must be approved. If durable status says otherwise, present the persisted blocker and make no file change.
15
15
  3. Load the latest approved compact context before method work. Load an unapproved tasks draft only with full mode and explicit unapproved inclusion.
16
16
  4. The saved test-case-review choice is authoritative. Ask once only when status has no choice; reuse it on every revision.
17
- 5. If status reports an observed artifact identity for an orphan or manual edit, read that exact tasks file before revising. Never acknowledge its hash without inspecting and deliberately incorporating or replacing its content.
17
+ 5. If status reports an observed artifact identity for an orphan or manual edit, read that exact tasks file before revising. Never acknowledge its hash without inspecting it and deliberately incorporating or replacing it.
18
18
 
19
- If the runtime is unavailable because of host permission, report an actionable reload/trust or policy blocker; never substitute manual backend instructions.
19
+ If the runtime is unavailable by host permission, report a reload/trust or policy blocker; never substitute manual backend instructions.
20
20
 
21
21
  ## Method and Artifact Contract
22
22
 
@@ -26,22 +26,24 @@ If the runtime is unavailable because of host permission, report an actionable r
26
26
  4. `TDD` is exactly `required` or `not-applicable — <reason>`. Behavioral work uses RED → GREEN → REFACTOR and covers relevant boundaries, errors, transitions, security, migration, and integration.
27
27
  5. Mark concurrency only for genuinely independent slices.
28
28
 
29
- Internally submit complete Markdown with the exact revision and artifact identity last observed and the persisted review choice. Submission is the canonical write. Present the saved path and concise validation outcome. A failed validation remains a durable draft to revise and cannot advance.
29
+ Internally submit complete Markdown with the exact revision and artifact identity last observed and the persisted review choice. Submission is the canonical write. A failed validation stays a durable draft and cannot advance.
30
30
 
31
31
  ## Human Gates
32
32
 
33
+ Before the test-case or approval question, internally run the JEV `testcases` check; when it asks for a case list, send one, flagged tasks first, and show its line. It never records the checkpoint.
34
+
33
35
  If test-case review is required, present the concrete behavior, boundary, and error cases. Only explicit confirmation records the internal checkpoint for the exact tasks revision and artifact. This is separate from approval.
34
36
 
35
37
  After validation and any required review, ask **“Approve these implementation tasks?”** Only an unambiguous affirmative answer in this Skill flow permits internal approval of the exact reviewed artifact. Never self-approve. Reread status after each checkpoint and approval.
36
38
 
37
39
  ## Specialist Delegation
38
40
 
39
- Target renderers provide the `planner` route. When a native advisor is required, dispatch exactly one compact handoff with `specialistDepth: 1`; include only approved decisions, constraints, dependencies, and the task contract. The specialist must not delegate again. Keep the handoff and returned summary at or below 2,048 estimated tokens. If unavailable, record one fallback and continue in the parent without retrying or selecting a generic child.
41
+ Target renderers provide the `planner` route. When a native advisor is required, dispatch exactly one compact handoff with `specialistDepth: 1`; include only approved decisions, constraints, and the task contract. The specialist must not delegate again. Keep handoff and summary at or below 2,048 estimated tokens. If unavailable, record one fallback and continue in the parent without retrying or selecting a generic child.
40
42
 
41
43
  ## Output
42
44
 
43
- Return the canonical saved path, traceability, saved checkpoint choice, concise validation evidence, the current human decision, and durable blockers. Do not present raw MCP operations as next steps. Execution report: mode (inline|project-agent; asked|reused|not offered), agents started and whether parallel, configured model/effort per agent (never claim unobserved values), and any fallback to the parent.
45
+ Return the saved path, traceability, checkpoint choice, validation evidence, the current human decision, and durable blockers. Do not present raw MCP operations as next steps. Execution report: mode (inline|project-agent; asked|reused|not offered), agents started and whether parallel, configured model/effort per agent (never claim unobserved values), and any fallback to the parent.
44
46
 
45
47
  ## Optional Reference
46
48
 
47
- Read [REFERENCE.md](REFERENCE.md) only for the exact task template, sizing heuristics, dependency diagrams, or extended checklist.
49
+ Read [REFERENCE.md](REFERENCE.md) only for the task template, sizing, dependency diagrams, checklist, or case-list format.
@@ -1,6 +1,6 @@
1
1
  # CLAUDE.md — Spec-Driven Development
2
2
 
3
- This project uses `sdd-mcp-server` with manual-only Skills and its hidden governed runtime.
3
+ This project uses `sdd-mcp-server` with manual-only workflow Skills and its hidden governed runtime. The `output-clarity-ladder` skill applies automatically to explanation, summary, and teaching replies; it is the only model-invocable skill.
4
4
 
5
5
  ## Start
6
6
 
@@ -1,6 +1,6 @@
1
1
  # AGENTS.md — Spec-Driven Development (SDD)
2
2
 
3
- This project uses `sdd-mcp-server` with manual-only Skills and its hidden governed runtime.
3
+ This project uses `sdd-mcp-server` with manual-only workflow Skills and its hidden governed runtime. The `output-clarity-ladder` skill applies automatically to explanation, summary, and teaching replies; it is the only model-invocable skill.
4
4
 
5
5
  ## Start
6
6