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.
- package/CHANGELOG.md +49 -0
- package/README.md +85 -13
- package/agents/security-auditor.md +2 -2
- package/dist/__tests__/helpers/message-clarity.d.ts +15 -0
- package/dist/__tests__/helpers/message-clarity.js +26 -0
- package/dist/__tests__/helpers/message-clarity.js.map +1 -0
- package/dist/__tests__/helpers/message-extractor.d.ts +22 -0
- package/dist/__tests__/helpers/message-extractor.js +135 -0
- package/dist/__tests__/helpers/message-extractor.js.map +1 -0
- package/dist/__tests__/unit/jev/helpers.d.ts +84 -0
- package/dist/__tests__/unit/jev/helpers.js +188 -0
- package/dist/__tests__/unit/jev/helpers.js.map +1 -0
- package/dist/adapters/cli/SDDToolAdapter.d.ts +5 -1
- package/dist/adapters/cli/SDDToolAdapter.js +22 -3
- package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
- package/dist/application/services/JevAdvisoryService.d.ts +53 -0
- package/dist/application/services/JevAdvisoryService.js +310 -0
- package/dist/application/services/JevAdvisoryService.js.map +1 -0
- package/dist/application/services/JevBaseRef.d.ts +21 -0
- package/dist/application/services/JevBaseRef.js +46 -0
- package/dist/application/services/JevBaseRef.js.map +1 -0
- package/dist/application/services/JevChangeManifest.d.ts +33 -0
- package/dist/application/services/JevChangeManifest.js +208 -0
- package/dist/application/services/JevChangeManifest.js.map +1 -0
- package/dist/application/services/JevCheckTypes.d.ts +74 -0
- package/dist/application/services/JevCheckTypes.js +2 -0
- package/dist/application/services/JevCheckTypes.js.map +1 -0
- package/dist/application/services/JevCodeExcerpts.d.ts +23 -0
- package/dist/application/services/JevCodeExcerpts.js +102 -0
- package/dist/application/services/JevCodeExcerpts.js.map +1 -0
- package/dist/application/services/JevCommitLookup.d.ts +17 -0
- package/dist/application/services/JevCommitLookup.js +72 -0
- package/dist/application/services/JevCommitLookup.js.map +1 -0
- package/dist/application/services/JevExchange.d.ts +48 -0
- package/dist/application/services/JevExchange.js +119 -0
- package/dist/application/services/JevExchange.js.map +1 -0
- package/dist/application/services/JevQuestionCatalog.d.ts +28 -0
- package/dist/application/services/JevQuestionCatalog.js +194 -0
- package/dist/application/services/JevQuestionCatalog.js.map +1 -0
- package/dist/application/services/JevRedaction.d.ts +12 -0
- package/dist/application/services/JevRedaction.js +56 -0
- package/dist/application/services/JevRedaction.js.map +1 -0
- package/dist/application/services/JevReport.d.ts +41 -0
- package/dist/application/services/JevReport.js +101 -0
- package/dist/application/services/JevReport.js.map +1 -0
- package/dist/application/services/JevResponseValidator.d.ts +34 -0
- package/dist/application/services/JevResponseValidator.js +98 -0
- package/dist/application/services/JevResponseValidator.js.map +1 -0
- package/dist/application/services/JevResults.d.ts +3 -0
- package/dist/application/services/JevResults.js +7 -0
- package/dist/application/services/JevResults.js.map +1 -0
- package/dist/application/services/JevReviewCheck.d.ts +20 -0
- package/dist/application/services/JevReviewCheck.js +120 -0
- package/dist/application/services/JevReviewCheck.js.map +1 -0
- package/dist/application/services/JevSettings.d.ts +18 -0
- package/dist/application/services/JevSettings.js +72 -0
- package/dist/application/services/JevSettings.js.map +1 -0
- package/dist/application/services/JevSidecarStore.d.ts +68 -0
- package/dist/application/services/JevSidecarStore.js +201 -0
- package/dist/application/services/JevSidecarStore.js.map +1 -0
- package/dist/application/services/JevSpecState.d.ts +38 -0
- package/dist/application/services/JevSpecState.js +109 -0
- package/dist/application/services/JevSpecState.js.map +1 -0
- package/dist/application/services/JevTestcaseState.d.ts +22 -0
- package/dist/application/services/JevTestcaseState.js +85 -0
- package/dist/application/services/JevTestcaseState.js.map +1 -0
- package/dist/application/services/RedEvidenceClassifier.d.ts +10 -0
- package/dist/application/services/RedEvidenceClassifier.js +32 -0
- package/dist/application/services/RedEvidenceClassifier.js.map +1 -0
- package/dist/application/services/WorkflowEngineService.d.ts +28 -0
- package/dist/application/services/WorkflowEngineService.js +111 -63
- package/dist/application/services/WorkflowEngineService.js.map +1 -1
- package/dist/application/services/WorkflowValidationService.d.ts +16 -0
- package/dist/application/services/WorkflowValidationService.js +39 -34
- package/dist/application/services/WorkflowValidationService.js.map +1 -1
- package/dist/cli/install-skills.js +0 -0
- package/dist/cli/install-target.d.ts +8 -6
- package/dist/cli/install-target.js +11 -3
- package/dist/cli/install-target.js.map +1 -1
- package/dist/cli/tool-support/root-guidance.js +1 -0
- package/dist/cli/tool-support/root-guidance.js.map +1 -1
- package/dist/cli/tool-support/target-installer.d.ts +1 -0
- package/dist/cli/tool-support/target-installer.js +9 -5
- package/dist/cli/tool-support/target-installer.js.map +1 -1
- package/dist/domain/ports.d.ts +34 -0
- package/dist/domain/ports.js +11 -1
- package/dist/domain/ports.js.map +1 -1
- package/dist/infrastructure/adapters/FetchJevHttpAdapter.d.ts +4 -0
- package/dist/infrastructure/adapters/FetchJevHttpAdapter.js +73 -0
- package/dist/infrastructure/adapters/FetchJevHttpAdapter.js.map +1 -0
- package/dist/infrastructure/adapters/NodeGitAdapter.d.ts +5 -0
- package/dist/infrastructure/adapters/NodeGitAdapter.js +31 -0
- package/dist/infrastructure/adapters/NodeGitAdapter.js.map +1 -0
- package/dist/infrastructure/di/container.js +10 -0
- package/dist/infrastructure/di/container.js.map +1 -1
- package/dist/infrastructure/di/types.d.ts +4 -0
- package/dist/infrastructure/di/types.js +4 -0
- package/dist/infrastructure/di/types.js.map +1 -1
- package/dist/infrastructure/mcp/sddToolDefinitions.d.ts +1 -1
- package/dist/infrastructure/mcp/sddToolDefinitions.js +72 -1
- package/dist/infrastructure/mcp/sddToolDefinitions.js.map +1 -1
- package/dist/shared/version.d.ts +1 -1
- package/dist/shared/version.js +1 -1
- package/package.json +1 -1
- package/skills/output-clarity-ladder/SKILL.md +43 -0
- package/skills/output-clarity-ladder/references/ja.md +30 -0
- package/skills/output-clarity-ladder/references/zh-TW.md +30 -0
- package/skills/sdd-commit/SKILL.md +4 -3
- package/skills/sdd-design/SKILL.md +1 -1
- package/skills/sdd-implement/SKILL.md +4 -4
- package/skills/sdd-requirements/SKILL.md +6 -6
- package/skills/sdd-review/SKILL.md +3 -2
- package/skills/sdd-security-check/SKILL.md +3 -2
- package/skills/sdd-tasks/REFERENCE.md +4 -0
- package/skills/sdd-tasks/SKILL.md +8 -6
- package/templates/CLAUDE.md +1 -1
- 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
|
|
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.
|
|
29
|
-
4. Check completeness, consistency, feasibility, traceability, and testability; run gap analysis
|
|
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
|
|
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,
|
|
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.
|
|
17
|
-
7.
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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,
|
|
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
|
|
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
|
|
49
|
+
Read [REFERENCE.md](REFERENCE.md) only for the task template, sizing, dependency diagrams, checklist, or case-list format.
|
package/templates/CLAUDE.md
CHANGED
|
@@ -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
|
|