sdd-mcp-server 5.4.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 +29 -0
- package/README.md +9 -6
- package/agents/security-auditor.md +2 -2
- 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 +21 -2
- 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 +50 -2
- package/dist/application/services/WorkflowEngineService.js.map +1 -1
- package/dist/application/services/WorkflowValidationService.d.ts +16 -0
- package/dist/application/services/WorkflowValidationService.js +10 -5
- package/dist/application/services/WorkflowValidationService.js.map +1 -1
- package/dist/cli/install-target.d.ts +6 -6
- package/dist/cli/install-target.js +9 -3
- package/dist/cli/install-target.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/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/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [5.5.0] - 2026-10-20
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Add opt-in, advisory JEV checks that call the TypeSafe Jev decision API. They judge requirements testability, design-to-requirement fidelity, planned test cases, RED validity, security finding triage, and coding-principle adherence. JEV is off by default. It needs `SDD_JEV_ENABLED` (or `.spec/sdd-config.json`) and `SDD_JEV_API_KEY`. Code excerpts need the separate `SDD_JEV_ALLOW_CODE`.
|
|
14
|
+
- Add the `sdd-jev-check` MCP tool, the 17th tool. It never changes `spec.json`, approval, validation, or the next action. Results are saved as sidecar files bound to the artifact revision and SHA-256.
|
|
15
|
+
- Add a local RED classifier. It flags setup failures such as `Cannot find module` and `TS2304` without any request.
|
|
16
|
+
- Redact secrets from every JEV request, bound excerpts to 15 lines around a finding and 8 KB per request, and never send `.env*` files, keys, lockfiles, or generated output.
|
|
17
|
+
- Add an optional `baseRef` input to the `security` and `principles` checks of `sdd-jev-check`. A PR or branch review can now judge already-committed changes: the change set is everything that differs between the merge base of `baseRef` and `HEAD`, and the working tree. `baseRef` is validated before any Git command runs and resolved with read-only Git (`--end-of-options`, Git 2.30 or later). A bad ref gives a `skipped` result with the reason `invalid-base-ref`. Without `baseRef`, behavior is unchanged.
|
|
18
|
+
- Committed-range results are saved as `jev-review-<kind>-range-<hash>.json`, bound to the merge-base commit, the `HEAD` commit, and the diff hash. `sdd-commit` still matches staged diffs only.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
- The tool contract grows from 16 to 17 tools. The 16 existing tools keep their inputs and outputs.
|
|
22
|
+
- Seven Skills (`sdd-requirements`, `sdd-design`, `sdd-tasks`, `sdd-implement`, `sdd-review`, `sdd-security-check`, `sdd-commit`) show at most one JEV line. `sdd-commit` only reads a saved sidecar.
|
|
23
|
+
- `sdd-security-check` and the `security-auditor` agent now forbid contact with the audited target or its systems. The agent still has no network access. Only the parent may make the opt-in JEV triage call.
|
|
24
|
+
- The installer git-ignores code-review sidecars (`.spec/reviews/` and `jev-review-*`).
|
|
25
|
+
- `.claude-plugin/plugin.json` now lists `sdd-review-test-cases` and `sdd-jev-check`.
|
|
26
|
+
- JEV score answers are zero-based only: an integer from 0 to the index of the last level. Any other value is `invalid-response`. Sidecars no longer record a score base. The question-set version is now 3, so JEV ignores sidecars saved by earlier versions.
|
|
27
|
+
- `sdd-review` and `sdd-security-check` pass the PR or branch base as `baseRef` when they run the JEV code checks.
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- `sdd-status`, `sdd-context-load`, and other reads of a missing feature no longer create an empty `.spec/specs/<feature>/` folder. They report `Feature metadata not found` as before.
|
|
31
|
+
- `sdd-init` now accepts an empty feature folder left behind by earlier versions. It still rejects a folder that contains files with `Feature already exists`.
|
|
32
|
+
|
|
33
|
+
- `sdd-jev-check` no longer reports `unavailable (invalid-response)` against the real TypeSafe Jev API (model `jev-1.13.0`). The response validator now accepts the real answer shape: `type`, `confidence`, `legend`, `probabilities`, and unknown extra fields. A `type` that differs from the question type, a `legend` with a different number of levels, a `choice` outside the question labels, and a `noul` outside 0 to 1 are still `invalid-response`.
|
|
34
|
+
- A score level is now the highest-probability entry of `probabilities` (ties go to the lowest index) when that object is valid, and `round(score)` otherwise. The level must stay within 0 to the last level index. The raw fractional score is kept, and sidecars accept it. The question-set version stays 3 and the sidecar schema stays 1, because the questions and the stored fields do not change.
|
|
35
|
+
|
|
36
|
+
### Documentation
|
|
37
|
+
- Add the Optional JEV advisory section to `docs/WORKFLOW.md`. Update the tool count in the README and `ARCHITECTURE.md`.
|
|
38
|
+
|
|
10
39
|
## [5.4.0] - 2026-10-04
|
|
11
40
|
|
|
12
41
|
### Added
|
package/README.md
CHANGED
|
@@ -125,12 +125,12 @@ Use this path when the repository has never had sdd-mcp-generated guidance. The
|
|
|
125
125
|
|
|
126
126
|
```bash
|
|
127
127
|
# Recommended explicit lean installation
|
|
128
|
-
npx sdd-mcp-server@5.
|
|
129
|
-
npx sdd-mcp-server@5.
|
|
130
|
-
npx sdd-mcp-server@5.
|
|
128
|
+
npx sdd-mcp-server@5.5.0 install --profile lean --target claude-code
|
|
129
|
+
npx sdd-mcp-server@5.5.0 install --profile lean --target codex
|
|
130
|
+
npx sdd-mcp-server@5.5.0 install --profile lean --target omp
|
|
131
131
|
|
|
132
132
|
# Interactive full installation: choose Claude Code, Codex, or OMP
|
|
133
|
-
npx sdd-mcp-server@5.
|
|
133
|
+
npx sdd-mcp-server@5.5.0 install --profile full
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
Use the local entrypoint only when this checkout itself is the intended project install. It does not repair personal runtime connection. Build once, then install explicitly:
|
|
@@ -214,7 +214,7 @@ Use this path when the project already contains generated sdd-mcp files from an
|
|
|
214
214
|
|
|
215
215
|
```bash
|
|
216
216
|
# Replace <target> with claude-code, codex, or omp
|
|
217
|
-
npx sdd-mcp-server@5.
|
|
217
|
+
npx sdd-mcp-server@5.5.0 install \
|
|
218
218
|
--profile full \
|
|
219
219
|
--target <target> \
|
|
220
220
|
--refresh-generated
|
|
@@ -227,7 +227,7 @@ For an OMP migration, Codex TOML agents remain preserved but are not executable
|
|
|
227
227
|
After this one-time migration, use a normal install without `--refresh-generated` for subsequent v5 updates. Review conflicts, then reload/restart the host and accept project trust before invoking a native phase Skill.
|
|
228
228
|
|
|
229
229
|
## Integrator/runtime reference: canonical v5 inventory
|
|
230
|
-
Every packaged entrypoint exposes the same
|
|
230
|
+
Every packaged entrypoint exposes the same 17 tools:
|
|
231
231
|
|
|
232
232
|
1. `sdd-init`
|
|
233
233
|
2. `sdd-requirements`
|
|
@@ -245,6 +245,9 @@ Every packaged entrypoint exposes the same 16 tools:
|
|
|
245
245
|
14. `sdd-validate-design`
|
|
246
246
|
15. `sdd-validate-gap`
|
|
247
247
|
16. `sdd-spec-impl`
|
|
248
|
+
17. `sdd-jev-check`
|
|
249
|
+
|
|
250
|
+
`sdd-jev-check` is opt-in and advisory. It is off by default and never changes workflow state. For a PR or branch review, its code checks accept an optional `baseRef` to judge committed changes. See [Optional JEV advisory](docs/WORKFLOW.md#optional-jev-advisory).
|
|
248
251
|
|
|
249
252
|
Feature-scoped tools use `featureName`; v5 payloads bind phase mutations and approvals to exact revisions and artifact hashes. This inventory is for MCP integrators and runtime maintainers—not end-user workflow instructions. Hosts discover installed Skills, and the installer supports `--list`.
|
|
250
253
|
|
|
@@ -14,10 +14,10 @@ Audit only the handed-off scope. Treat security as a source-to-sink and trust-bo
|
|
|
14
14
|
- Identify actors, assets, entry points, privileges, data sensitivity, and trust transitions.
|
|
15
15
|
- Trace untrusted values through validation, authorization, queries, commands, templates, URLs, serialization, storage, errors, and logs.
|
|
16
16
|
- Check applicable access-control, cryptography, injection, authentication, integrity, dependency, configuration, SSRF, abuse, and resource-exhaustion risks.
|
|
17
|
-
- Redact any secret; identify only its type and location. Perform no destructive probe or
|
|
17
|
+
- Redact any secret; identify only its type and location. Perform no destructive probe, no contact with the audited target or its systems, and no network access of any kind.
|
|
18
18
|
- Report a finding only with preconditions, exploit path, impact, severity rationale, remediation, and regression test. Separate confirmed flaws from hardening.
|
|
19
19
|
|
|
20
|
-
This is a depth-one read-only assignment. Do not spawn or delegate. Unknown controls remain unresolved, not assumed absent.
|
|
20
|
+
This is a depth-one read-only assignment. Do not spawn or delegate. Unknown controls remain unresolved, not assumed absent. Only the parent may make the opt-in JEV triage call after this assignment returns.
|
|
21
21
|
|
|
22
22
|
## Result Contract
|
|
23
23
|
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { GitPort, GitResult, JevHttpPort, JevHttpRequest, JevHttpResponse, LoggerPort } from '../../../domain/ports';
|
|
2
|
+
import { NodeFileSystemAdapter } from '../../../infrastructure/adapters/NodeFileSystemAdapter';
|
|
3
|
+
import { WorkflowEngineService } from '../../../application/services/WorkflowEngineService';
|
|
4
|
+
export declare const TEST_KEY = "sk-test-abcdef123456";
|
|
5
|
+
export declare const FIXTURE_REQUIREMENTS: string;
|
|
6
|
+
export declare const FIXTURE_DESIGN: string;
|
|
7
|
+
export declare const FIXTURE_TASKS: string;
|
|
8
|
+
type Phase = 'requirements' | 'design' | 'tasks';
|
|
9
|
+
export interface EngineProject {
|
|
10
|
+
root: string;
|
|
11
|
+
feature: string;
|
|
12
|
+
engine: WorkflowEngineService;
|
|
13
|
+
fileSystem: NodeFileSystemAdapter;
|
|
14
|
+
submit(phase: Phase, content: string, revision?: number, hash?: string | null): ReturnType<WorkflowEngineService['submitPhaseArtifact']>;
|
|
15
|
+
approve(phase: Phase, result: {
|
|
16
|
+
revision: number;
|
|
17
|
+
artifact: {
|
|
18
|
+
sha256: string;
|
|
19
|
+
};
|
|
20
|
+
}): ReturnType<WorkflowEngineService['approve']>;
|
|
21
|
+
cleanup(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
/** A real engine over a temporary project; the feature is initialized and ready for submissions. */
|
|
24
|
+
export declare function createEngineProject(feature?: string): Promise<EngineProject>;
|
|
25
|
+
type Answer = {
|
|
26
|
+
choice: string;
|
|
27
|
+
} | {
|
|
28
|
+
score: number;
|
|
29
|
+
} | {
|
|
30
|
+
noul: number;
|
|
31
|
+
};
|
|
32
|
+
/** A valid, unflagged answer for every posted question, with per-id overrides. */
|
|
33
|
+
export declare function benignAnswers(requestBody: string, overrides?: Record<string, Answer>): string;
|
|
34
|
+
export declare class FakeJevHttpPort implements JevHttpPort {
|
|
35
|
+
readonly calls: JevHttpRequest[];
|
|
36
|
+
respond: (request: JevHttpRequest) => Promise<JevHttpResponse>;
|
|
37
|
+
post(request: JevHttpRequest): Promise<JevHttpResponse>;
|
|
38
|
+
}
|
|
39
|
+
export declare class FakeGitPort implements GitPort {
|
|
40
|
+
readonly calls: string[][];
|
|
41
|
+
handler: (args: readonly string[]) => GitResult;
|
|
42
|
+
run(args: readonly string[]): Promise<GitResult>;
|
|
43
|
+
}
|
|
44
|
+
/** Real filesystem that records every call so tests can prove what was (not) touched. */
|
|
45
|
+
export declare class SpyFileSystem extends NodeFileSystemAdapter {
|
|
46
|
+
readonly calls: Array<{
|
|
47
|
+
method: string;
|
|
48
|
+
path: string;
|
|
49
|
+
}>;
|
|
50
|
+
throwOn?: {
|
|
51
|
+
method: string;
|
|
52
|
+
match: RegExp;
|
|
53
|
+
};
|
|
54
|
+
private record;
|
|
55
|
+
readFile(target: string): Promise<string>;
|
|
56
|
+
writeFile(target: string, content: string): Promise<void>;
|
|
57
|
+
writeFileAtomic(target: string, content: string): Promise<void>;
|
|
58
|
+
exists(target: string): Promise<boolean>;
|
|
59
|
+
mkdir(target: string): Promise<void>;
|
|
60
|
+
readdir(target: string): Promise<string[]>;
|
|
61
|
+
stat(target: string): Promise<{
|
|
62
|
+
isFile(): boolean;
|
|
63
|
+
isDirectory(): boolean;
|
|
64
|
+
}>;
|
|
65
|
+
unlink(target: string): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
export declare const silentLogger: () => LoggerPort & {
|
|
68
|
+
all(): unknown[];
|
|
69
|
+
};
|
|
70
|
+
/** Sorted `path|dir` and `path|file|sha256` lines for the whole tree. */
|
|
71
|
+
export declare function snapshotTree(root: string): Promise<string[]>;
|
|
72
|
+
export declare function readAllFiles(root: string): Promise<string>;
|
|
73
|
+
export interface TempProject {
|
|
74
|
+
root: string;
|
|
75
|
+
cleanup(): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
/** A project root with `.spec/specs/<feature>/spec.json` and a source file. */
|
|
78
|
+
export declare function createTempProject(feature?: string): Promise<TempProject>;
|
|
79
|
+
/** Scripts a FakeGitPort so the review manifest sees one modified file, `src/a.ts`. */
|
|
80
|
+
export declare function scriptOneChangedFile(git: FakeGitPort, options?: {
|
|
81
|
+
blob?: string;
|
|
82
|
+
head?: string | null;
|
|
83
|
+
}): void;
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { mkdir, mkdtemp, readdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { NodeFileSystemAdapter } from '../../../infrastructure/adapters/NodeFileSystemAdapter';
|
|
6
|
+
import { ContextCompactionService } from '../../../application/services/ContextCompactionService';
|
|
7
|
+
import { WorkflowEngineService } from '../../../application/services/WorkflowEngineService';
|
|
8
|
+
export const TEST_KEY = 'sk-test-abcdef123456';
|
|
9
|
+
export const FIXTURE_REQUIREMENTS = [
|
|
10
|
+
'# Requirements',
|
|
11
|
+
'### FR-1: Checkout',
|
|
12
|
+
'**Objective:** Complete checkout',
|
|
13
|
+
'**EARS Specification:** WHEN a cart is valid, THE system SHALL create an order.',
|
|
14
|
+
'**Acceptance Criteria:** 1. A persisted order is returned.',
|
|
15
|
+
'### NFR-1: Latency',
|
|
16
|
+
'**Objective:** Respond quickly',
|
|
17
|
+
'**EARS Specification:** THE system SHALL respond within two seconds.',
|
|
18
|
+
'**Acceptance Criteria:** 1. The response is at most two seconds.',
|
|
19
|
+
].join('\n');
|
|
20
|
+
export const FIXTURE_DESIGN = [
|
|
21
|
+
'# Design',
|
|
22
|
+
'## Requirements Traceability', 'FR-1, NFR-1',
|
|
23
|
+
'## Architecture and Data Flow', 'Request to service to store.',
|
|
24
|
+
'## Components and Interfaces', 'Checkout service and order store.',
|
|
25
|
+
'## Failure Handling', 'Failures do not leave partial writes.',
|
|
26
|
+
'## Verification', 'Focused unit and integration checks.',
|
|
27
|
+
'### D-1: Atomic order creation',
|
|
28
|
+
'**Covers:** FR-1, NFR-1',
|
|
29
|
+
'**Decision:** Commit the order atomically.',
|
|
30
|
+
'**Failure behavior:** Roll back the transaction.',
|
|
31
|
+
'**Verification:** Exercise successful and failed commits.',
|
|
32
|
+
].join('\n');
|
|
33
|
+
export const FIXTURE_TASKS = [
|
|
34
|
+
'# Tasks',
|
|
35
|
+
'### 1.1 Create order transaction',
|
|
36
|
+
'**Covers:** FR-1, D-1',
|
|
37
|
+
'**Dependencies:** none',
|
|
38
|
+
'**TDD:** required',
|
|
39
|
+
'**Affected artifacts:** src/order.ts, src/order.test.ts',
|
|
40
|
+
'**Acceptance criteria:** 1. The transaction is atomic.',
|
|
41
|
+
'**Verification:** Run the focused order test.',
|
|
42
|
+
'### 1.2 Verify latency',
|
|
43
|
+
'**Covers:** NFR-1',
|
|
44
|
+
'**Dependencies:** 1.1',
|
|
45
|
+
'**TDD:** not-applicable — measurement-only task',
|
|
46
|
+
'**Affected artifacts:** none',
|
|
47
|
+
'**Acceptance criteria:** 1. Latency is recorded.',
|
|
48
|
+
'**Verification:** Run the benchmark.',
|
|
49
|
+
].join('\n');
|
|
50
|
+
/** A real engine over a temporary project; the feature is initialized and ready for submissions. */
|
|
51
|
+
export async function createEngineProject(feature = 'payments') {
|
|
52
|
+
const root = await mkdtemp(path.join(os.tmpdir(), 'jev-engine-'));
|
|
53
|
+
const fileSystem = new NodeFileSystemAdapter();
|
|
54
|
+
const logger = silentLogger();
|
|
55
|
+
const repository = { save: async () => undefined, findById: async () => null, findByPath: async () => null, list: async () => [], delete: async () => undefined };
|
|
56
|
+
const engine = new WorkflowEngineService(repository, new ContextCompactionService(fileSystem, logger), logger, fileSystem);
|
|
57
|
+
await engine.initializeFeature({ projectRoot: root, featureName: feature, description: 'Govern checkout', language: 'en' });
|
|
58
|
+
return {
|
|
59
|
+
root, feature, engine, fileSystem,
|
|
60
|
+
submit: (phase, content, revision = 0, hash = null) => engine.submitPhaseArtifact({
|
|
61
|
+
projectRoot: root, featureName: feature, phase, content, expectedRevision: revision, expectedArtifactSha256: hash,
|
|
62
|
+
reviewTestCases: phase === 'tasks' ? false : undefined,
|
|
63
|
+
}),
|
|
64
|
+
approve: (phase, result) => engine.approve({ projectRoot: root, featureName: feature, phase, expectedRevision: result.revision, expectedArtifactSha256: result.artifact.sha256 }),
|
|
65
|
+
cleanup: () => rm(root, { recursive: true, force: true }),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** A valid, unflagged answer for every posted question, with per-id overrides. */
|
|
69
|
+
export function benignAnswers(requestBody, overrides = {}) {
|
|
70
|
+
const { questions } = JSON.parse(requestBody);
|
|
71
|
+
const answers = {};
|
|
72
|
+
const benignChoice = {
|
|
73
|
+
ambiguity: 'bounded', scope: 'all', fidelity: 'fully', mechanism: 'concrete', missing: 'none-missing',
|
|
74
|
+
proportion: 'proportionate', observability: 'public-interface', tddReason: 'justified', cause: 'missing-behavior',
|
|
75
|
+
classification: 'confirmed', remediation: 'yes',
|
|
76
|
+
};
|
|
77
|
+
for (const [id, question] of Object.entries(questions)) {
|
|
78
|
+
const template = id.slice(id.lastIndexOf('.') + 1);
|
|
79
|
+
if (question.type === 'choice') {
|
|
80
|
+
answers[id] = { choice: benignChoice[template] ?? 'followed' };
|
|
81
|
+
}
|
|
82
|
+
else if (question.type === 'score') {
|
|
83
|
+
answers[id] = { score: question.criteria.length - 2 };
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
answers[id] = { noul: 0.1 };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return JSON.stringify({ answers: { ...answers, ...overrides }, model: 'test-model' });
|
|
90
|
+
}
|
|
91
|
+
export class FakeJevHttpPort {
|
|
92
|
+
calls = [];
|
|
93
|
+
respond = async () => ({ status: 200, body: '{}' });
|
|
94
|
+
async post(request) {
|
|
95
|
+
this.calls.push(request);
|
|
96
|
+
return this.respond(request);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export class FakeGitPort {
|
|
100
|
+
calls = [];
|
|
101
|
+
handler = () => ({ ok: false });
|
|
102
|
+
async run(args) {
|
|
103
|
+
this.calls.push([...args]);
|
|
104
|
+
return this.handler(args);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** Real filesystem that records every call so tests can prove what was (not) touched. */
|
|
108
|
+
export class SpyFileSystem extends NodeFileSystemAdapter {
|
|
109
|
+
calls = [];
|
|
110
|
+
throwOn;
|
|
111
|
+
record(method, target) {
|
|
112
|
+
this.calls.push({ method, path: target });
|
|
113
|
+
if (this.throwOn?.method === method && this.throwOn.match.test(target))
|
|
114
|
+
throw new Error('spy failure');
|
|
115
|
+
}
|
|
116
|
+
async readFile(target) { this.record('readFile', target); return super.readFile(target); }
|
|
117
|
+
async writeFile(target, content) { this.record('writeFile', target); return super.writeFile(target, content); }
|
|
118
|
+
async writeFileAtomic(target, content) { this.record('writeFileAtomic', target); return super.writeFileAtomic(target, content); }
|
|
119
|
+
async exists(target) { this.record('exists', target); return super.exists(target); }
|
|
120
|
+
async mkdir(target) { this.record('mkdir', target); return super.mkdir(target); }
|
|
121
|
+
async readdir(target) { this.record('readdir', target); return super.readdir(target); }
|
|
122
|
+
async stat(target) { this.record('stat', target); return super.stat(target); }
|
|
123
|
+
async unlink(target) { this.record('unlink', target); return super.unlink(target); }
|
|
124
|
+
}
|
|
125
|
+
export const silentLogger = () => {
|
|
126
|
+
const calls = [];
|
|
127
|
+
const log = (...args) => { calls.push(args); };
|
|
128
|
+
return { info: log, warn: log, error: log, debug: log, all: () => calls };
|
|
129
|
+
};
|
|
130
|
+
/** Sorted `path|dir` and `path|file|sha256` lines for the whole tree. */
|
|
131
|
+
export async function snapshotTree(root) {
|
|
132
|
+
const lines = [];
|
|
133
|
+
const walk = async (dir) => {
|
|
134
|
+
for (const entry of await readdir(dir, { withFileTypes: true })) {
|
|
135
|
+
const full = path.join(dir, entry.name);
|
|
136
|
+
const relative = path.relative(root, full);
|
|
137
|
+
if (entry.isDirectory()) {
|
|
138
|
+
lines.push(`${relative}|dir`);
|
|
139
|
+
await walk(full);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const digest = createHash('sha256').update(await readFile(full)).digest('hex');
|
|
143
|
+
lines.push(`${relative}|file|${digest}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
await walk(root);
|
|
148
|
+
return lines.sort();
|
|
149
|
+
}
|
|
150
|
+
export async function readAllFiles(root) {
|
|
151
|
+
const parts = [];
|
|
152
|
+
const walk = async (dir) => {
|
|
153
|
+
for (const entry of await readdir(dir, { withFileTypes: true })) {
|
|
154
|
+
const full = path.join(dir, entry.name);
|
|
155
|
+
if (entry.isDirectory())
|
|
156
|
+
await walk(full);
|
|
157
|
+
else if ((await stat(full)).size < 2_000_000)
|
|
158
|
+
parts.push(await readFile(full, 'utf8'));
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
await walk(root);
|
|
162
|
+
return parts.join('\n');
|
|
163
|
+
}
|
|
164
|
+
/** A project root with `.spec/specs/<feature>/spec.json` and a source file. */
|
|
165
|
+
export async function createTempProject(feature = 'demo') {
|
|
166
|
+
const root = await mkdtemp(path.join(os.tmpdir(), 'jev-service-'));
|
|
167
|
+
await mkdir(path.join(root, '.spec', 'specs', feature), { recursive: true });
|
|
168
|
+
await writeFile(path.join(root, '.spec', 'specs', feature, 'spec.json'), '{"schema_version":5}\n', 'utf8');
|
|
169
|
+
await mkdir(path.join(root, 'src'), { recursive: true });
|
|
170
|
+
await writeFile(path.join(root, 'src', 'a.ts'), 'export const a = 1;\n', 'utf8');
|
|
171
|
+
return { root, cleanup: () => rm(root, { recursive: true, force: true }) };
|
|
172
|
+
}
|
|
173
|
+
/** Scripts a FakeGitPort so the review manifest sees one modified file, `src/a.ts`. */
|
|
174
|
+
export function scriptOneChangedFile(git, options = {}) {
|
|
175
|
+
const blob = options.blob ?? 'a'.repeat(40);
|
|
176
|
+
const head = options.head === undefined ? 'c'.repeat(40) : options.head;
|
|
177
|
+
git.handler = (args) => {
|
|
178
|
+
const joined = args.join(' ');
|
|
179
|
+
if (joined.includes('status'))
|
|
180
|
+
return { ok: true, stdout: Buffer.from(' M src/a.ts\0') };
|
|
181
|
+
if (joined.includes('hash-object'))
|
|
182
|
+
return { ok: true, stdout: Buffer.from(`${blob}\n`) };
|
|
183
|
+
if (joined.includes('rev-parse'))
|
|
184
|
+
return head === null ? { ok: false } : { ok: true, stdout: Buffer.from(`${head}\n`) };
|
|
185
|
+
return { ok: false };
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/jev/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { SteeringDocumentService } from "../../application/services/SteeringDocu
|
|
|
5
5
|
import { CodebaseAnalysisService } from "../../application/services/CodebaseAnalysisService.js";
|
|
6
6
|
import { RequirementsClarificationService } from "../../application/services/RequirementsClarificationService.js";
|
|
7
7
|
import { WorkflowEngineService } from "../../application/services/WorkflowEngineService.js";
|
|
8
|
+
import type { JevAdvisoryService } from "../../application/services/JevAdvisoryService.js";
|
|
8
9
|
import { LoggerPort } from "../../domain/ports.js";
|
|
9
10
|
import { SDD_TOOL_NAMES } from "../../infrastructure/mcp/sddToolDefinitions.js";
|
|
10
11
|
export { SDD_TOOL_NAMES };
|
|
@@ -21,7 +22,8 @@ export declare class SDDToolAdapter {
|
|
|
21
22
|
private readonly clarificationService;
|
|
22
23
|
private readonly workflowEngineService;
|
|
23
24
|
private readonly logger;
|
|
24
|
-
|
|
25
|
+
private readonly jevService;
|
|
26
|
+
constructor(templateService: TemplateService, qualityService: QualityService, steeringService: SteeringDocumentService, codebaseAnalysisService: CodebaseAnalysisService, clarificationService: RequirementsClarificationService, workflowEngineService: WorkflowEngineService, logger: LoggerPort, jevService: JevAdvisoryService);
|
|
25
27
|
private resolveWorkspaceRoot;
|
|
26
28
|
getSDDTools(): SDDToolHandler[];
|
|
27
29
|
private handleProjectInit;
|
|
@@ -41,6 +43,8 @@ export declare class SDDToolAdapter {
|
|
|
41
43
|
private handleValidateDesign;
|
|
42
44
|
private handleValidateGap;
|
|
43
45
|
private handleSpecImplementation;
|
|
46
|
+
/** Advisory only: the service never throws and never touches workflow state. */
|
|
47
|
+
private handleJevCheck;
|
|
44
48
|
private handleSteering;
|
|
45
49
|
private handleSteeringCustom;
|
|
46
50
|
private generateProductSteering;
|
|
@@ -32,7 +32,8 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
32
32
|
clarificationService;
|
|
33
33
|
workflowEngineService;
|
|
34
34
|
logger;
|
|
35
|
-
|
|
35
|
+
jevService;
|
|
36
|
+
constructor(templateService, qualityService, steeringService, codebaseAnalysisService, clarificationService, workflowEngineService, logger, jevService) {
|
|
36
37
|
this.templateService = templateService;
|
|
37
38
|
this.qualityService = qualityService;
|
|
38
39
|
this.steeringService = steeringService;
|
|
@@ -40,6 +41,7 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
40
41
|
this.clarificationService = clarificationService;
|
|
41
42
|
this.workflowEngineService = workflowEngineService;
|
|
42
43
|
this.logger = logger;
|
|
44
|
+
this.jevService = jevService;
|
|
43
45
|
}
|
|
44
46
|
resolveWorkspaceRoot() {
|
|
45
47
|
return path.resolve(process.env.CLAUDE_PROJECT_DIR || process.cwd());
|
|
@@ -62,6 +64,7 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
62
64
|
"sdd-validate-design": this.handleValidateDesign.bind(this),
|
|
63
65
|
"sdd-validate-gap": this.handleValidateGap.bind(this),
|
|
64
66
|
"sdd-spec-impl": this.handleSpecImplementation.bind(this),
|
|
67
|
+
"sdd-jev-check": this.handleJevCheck.bind(this),
|
|
65
68
|
};
|
|
66
69
|
return SDD_TOOL_DEFINITIONS.map((tool) => ({
|
|
67
70
|
name: tool.name,
|
|
@@ -262,6 +265,21 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
262
265
|
blocker: args.blocker,
|
|
263
266
|
});
|
|
264
267
|
}
|
|
268
|
+
/** Advisory only: the service never throws and never touches workflow state. */
|
|
269
|
+
async handleJevCheck(args) {
|
|
270
|
+
return this.jevService.check({
|
|
271
|
+
check: args.check,
|
|
272
|
+
projectRoot: this.resolveWorkspaceRoot(),
|
|
273
|
+
featureName: args.featureName,
|
|
274
|
+
cases: args.cases,
|
|
275
|
+
taskNumber: args.taskNumber,
|
|
276
|
+
testName: args.testName,
|
|
277
|
+
evidence: args.evidence,
|
|
278
|
+
findings: args.findings,
|
|
279
|
+
units: args.units,
|
|
280
|
+
baseRef: args.baseRef,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
265
283
|
async handleSteering(args) {
|
|
266
284
|
const { updateMode = "update" } = args;
|
|
267
285
|
const projectPath = this.resolveWorkspaceRoot();
|
|
@@ -663,12 +681,13 @@ SDDToolAdapter = __decorate([
|
|
|
663
681
|
__param(4, inject(TYPES.RequirementsClarificationService)),
|
|
664
682
|
__param(5, inject(TYPES.WorkflowEngineService)),
|
|
665
683
|
__param(6, inject(TYPES.LoggerPort)),
|
|
684
|
+
__param(7, inject(TYPES.JevAdvisoryService)),
|
|
666
685
|
__metadata("design:paramtypes", [TemplateService,
|
|
667
686
|
QualityService,
|
|
668
687
|
SteeringDocumentService,
|
|
669
688
|
CodebaseAnalysisService,
|
|
670
689
|
RequirementsClarificationService,
|
|
671
|
-
WorkflowEngineService, Object])
|
|
690
|
+
WorkflowEngineService, Object, Function])
|
|
672
691
|
], SDDToolAdapter);
|
|
673
692
|
export { SDDToolAdapter };
|
|
674
693
|
//# sourceMappingURL=SDDToolAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SDDToolAdapter.js","sourceRoot":"","sources":["../../../src/adapters/cli/SDDToolAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SDDToolAdapter.js","sourceRoot":"","sources":["../../../src/adapters/cli/SDDToolAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { FileSystemPort, GitPort, JevHttpPort, LoggerPort } from '../../domain/ports.js';
|
|
2
|
+
import type { JevCheckRequest, JevCheckResult } from './JevCheckTypes.js';
|
|
3
|
+
import type { AdvisorySnapshot } from './WorkflowEngineService.js';
|
|
4
|
+
/** The only slice of the workflow engine JEV may use: a read-only snapshot. */
|
|
5
|
+
export interface AdvisoryEngine {
|
|
6
|
+
readAdvisorySnapshot(request: {
|
|
7
|
+
projectRoot: string;
|
|
8
|
+
featureName: string;
|
|
9
|
+
phase: 'requirements' | 'design' | 'tasks';
|
|
10
|
+
}): Promise<AdvisorySnapshot>;
|
|
11
|
+
}
|
|
12
|
+
export type JevEnvironment = Readonly<Record<string, string | undefined>>;
|
|
13
|
+
export declare class JevAdvisoryService {
|
|
14
|
+
private readonly http;
|
|
15
|
+
private readonly git;
|
|
16
|
+
private readonly engine;
|
|
17
|
+
private readonly fileSystem;
|
|
18
|
+
private readonly logger;
|
|
19
|
+
private readonly env;
|
|
20
|
+
private readonly store;
|
|
21
|
+
private readonly exchange;
|
|
22
|
+
private readonly review;
|
|
23
|
+
private readonly commit;
|
|
24
|
+
constructor(http: JevHttpPort, git: GitPort, engine: AdvisoryEngine, fileSystem: FileSystemPort, logger: LoggerPort, env: JevEnvironment);
|
|
25
|
+
/** Never rejects: every failure becomes a result value. */
|
|
26
|
+
check(request: JevCheckRequest): Promise<JevCheckResult>;
|
|
27
|
+
private run;
|
|
28
|
+
private dispatch;
|
|
29
|
+
/** The commit lookup matches staged diffs only, so a base ref has no meaning there. */
|
|
30
|
+
private commitLookup;
|
|
31
|
+
/** No base ref is always fine; one is meaningful only for the code reviews, and only when well formed. */
|
|
32
|
+
private baseRefAcceptable;
|
|
33
|
+
/** A snapshot of a phase that passed validation and still matches what was recorded; else undefined. */
|
|
34
|
+
private readySnapshot;
|
|
35
|
+
/** A2: classify RED evidence locally; only ambiguous evidence is sent. Never affects record-red. */
|
|
36
|
+
private redCheck;
|
|
37
|
+
/** A decisive local result costs nothing: no key use, no request. */
|
|
38
|
+
private localRed;
|
|
39
|
+
/**
|
|
40
|
+
* A1: judge the planned test cases. The skill first calls without cases to learn whether JEV is active.
|
|
41
|
+
* With no TDD-required task, only the not-applicable reasons are judged, so no cases are needed.
|
|
42
|
+
*/
|
|
43
|
+
private testcasesCheck;
|
|
44
|
+
/** Requirements and design: one advisory check on a passed, unchanged artifact. */
|
|
45
|
+
private specCheck;
|
|
46
|
+
private resolveSettings;
|
|
47
|
+
/** Read-only existence check; never creates the feature directory (unlike the lock helper). */
|
|
48
|
+
private featureInScope;
|
|
49
|
+
/** The change set to judge: the working tree alone, or the working tree against merge-base(baseRef, HEAD). */
|
|
50
|
+
private manifestFor;
|
|
51
|
+
/** Reported whatever the working tree holds (FR-14); a sidecar needs a manifest to bind to. */
|
|
52
|
+
private codeDisabled;
|
|
53
|
+
}
|