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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-target.js","sourceRoot":"","sources":["../../src/cli/install-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAgF7B,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW;IACX,YAAY;CACJ,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAqB,CAAC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC;IAClE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC;IACnE,kBAAkB,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC;IAC7E,WAAW,EAAE,KAAK,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,CAAC;IACxF,WAAW,EAAE,KAAK,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,CAAC;CAChF,CAAC;AAEX,SAAS,KAAK,CACZ,SAAiD,EACjD,KAA4C,EAC5C,eAAmC,EACnC,WAAoD;IAEpD,OAAO;QACL,SAAS;QACT,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;QACjC,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;QACvF,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,KAAK,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE;KAC/D,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAwC;IACrE,kBAAkB,EAAE,SAAS;IAC7B,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,SAAS;IACzB,qBAAqB,EAAE,SAAS;IAChC,YAAY,EAAE,WAAW;IACzB,eAAe,EAAE,aAAa;IAC9B,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,WAAW;IAC3B,YAAY,EAAE,UAAU;IACxB,oBAAoB,EAAE,kBAAkB;CACzC,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAE9F,MAAM,eAAe,GAAkD;IACrE,aAAa,EAAE;QACb,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE;YACZ,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,WAAW;YACzB,aAAa,EAAE,WAAW;YAC1B,uBAAuB,EAAE,uBAAuB;SACjD;QACD,aAAa,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"install-target.js","sourceRoot":"","sources":["../../src/cli/install-target.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/ports.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface FileSystemPort {
|
|
|
17
17
|
stat(path: string): Promise<{
|
|
18
18
|
isFile(): boolean;
|
|
19
19
|
isDirectory(): boolean;
|
|
20
|
+
size?: number;
|
|
20
21
|
}>;
|
|
21
22
|
realpath?(path: string): Promise<string>;
|
|
22
23
|
unlink?(path: string): Promise<void>;
|
|
@@ -50,6 +51,39 @@ export interface QualityAnalyzer {
|
|
|
50
51
|
checkComplexity(code: string): Promise<number>;
|
|
51
52
|
detectSpecialCases(code: string): Promise<string[]>;
|
|
52
53
|
}
|
|
54
|
+
/** The only JEV endpoint. No setting, env var, or argument may change it. */
|
|
55
|
+
export declare const JEV_DECIDE_URL = "https://jevtypesafeai.com/api/v1/decide";
|
|
56
|
+
export interface JevHttpRequest {
|
|
57
|
+
url: string;
|
|
58
|
+
body: string;
|
|
59
|
+
headers: Readonly<Record<string, string>>;
|
|
60
|
+
timeoutMs: number;
|
|
61
|
+
maxResponseBytes: number;
|
|
62
|
+
}
|
|
63
|
+
export interface JevHttpResponse {
|
|
64
|
+
status: number;
|
|
65
|
+
body: string;
|
|
66
|
+
}
|
|
67
|
+
export type JevTransportErrorKind = 'network' | 'timeout' | 'too-large';
|
|
68
|
+
/** Carries only a kind; never the underlying message, which could echo request headers. */
|
|
69
|
+
export declare class JevTransportError extends Error {
|
|
70
|
+
readonly kind: JevTransportErrorKind;
|
|
71
|
+
constructor(kind: JevTransportErrorKind);
|
|
72
|
+
}
|
|
73
|
+
export interface JevHttpPort {
|
|
74
|
+
/** One POST, no retry, no redirect following. Rejects only with JevTransportError. */
|
|
75
|
+
post(request: JevHttpRequest): Promise<JevHttpResponse>;
|
|
76
|
+
}
|
|
77
|
+
export type GitResult = {
|
|
78
|
+
ok: true;
|
|
79
|
+
stdout: Buffer;
|
|
80
|
+
} | {
|
|
81
|
+
ok: false;
|
|
82
|
+
};
|
|
83
|
+
export interface GitPort {
|
|
84
|
+
/** Runs one read-only git command without a shell, with optional stdin. Never rejects. */
|
|
85
|
+
run(args: readonly string[], cwd: string, input?: Buffer): Promise<GitResult>;
|
|
86
|
+
}
|
|
53
87
|
export interface TaskTracker {
|
|
54
88
|
getTasks(projectId: string): Promise<Task[]>;
|
|
55
89
|
updateTask(projectId: string, taskId: string, completed: boolean): Promise<void>;
|
package/dist/domain/ports.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
// Port interfaces for Clean Architecture
|
|
2
|
-
|
|
2
|
+
/** The only JEV endpoint. No setting, env var, or argument may change it. */
|
|
3
|
+
export const JEV_DECIDE_URL = 'https://jevtypesafeai.com/api/v1/decide';
|
|
4
|
+
/** Carries only a kind; never the underlying message, which could echo request headers. */
|
|
5
|
+
export class JevTransportError extends Error {
|
|
6
|
+
kind;
|
|
7
|
+
constructor(kind) {
|
|
8
|
+
super(`JEV transport failure: ${kind}`);
|
|
9
|
+
this.kind = kind;
|
|
10
|
+
this.name = 'JevTransportError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
3
13
|
//# sourceMappingURL=ports.js.map
|
package/dist/domain/ports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/domain/ports.ts"],"names":[],"mappings":"AAAA,yCAAyC"}
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/domain/ports.ts"],"names":[],"mappings":"AAAA,yCAAyC;AA4DzC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,yCAAyC,CAAC;AAiBxE,2FAA2F;AAC3F,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACrB;IAArB,YAAqB,IAA2B;QAC9C,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QADrB,SAAI,GAAJ,IAAI,CAAuB;QAE9C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { injectable } from 'inversify';
|
|
8
|
+
import { JevTransportError } from '../../domain/ports.js';
|
|
9
|
+
const LOOPBACK_HOSTS = new Set(['127.0.0.1', 'localhost', '[::1]']);
|
|
10
|
+
/** Only https is allowed, except plain http to loopback so tests can use a local server. */
|
|
11
|
+
function isAllowedUrl(raw) {
|
|
12
|
+
try {
|
|
13
|
+
const url = new URL(raw);
|
|
14
|
+
return url.protocol === 'https:' || (url.protocol === 'http:' && LOOPBACK_HOSTS.has(url.hostname));
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function readCapped(response, maxBytes) {
|
|
21
|
+
const reader = response.body?.getReader();
|
|
22
|
+
if (!reader)
|
|
23
|
+
return '';
|
|
24
|
+
const chunks = [];
|
|
25
|
+
let total = 0;
|
|
26
|
+
for (;;) {
|
|
27
|
+
const { done, value } = await reader.read();
|
|
28
|
+
if (done)
|
|
29
|
+
break;
|
|
30
|
+
total += value.byteLength;
|
|
31
|
+
if (total > maxBytes) {
|
|
32
|
+
await reader.cancel().catch(() => undefined);
|
|
33
|
+
throw new JevTransportError('too-large');
|
|
34
|
+
}
|
|
35
|
+
chunks.push(value);
|
|
36
|
+
}
|
|
37
|
+
return Buffer.concat(chunks).toString('utf8');
|
|
38
|
+
}
|
|
39
|
+
let FetchJevHttpAdapter = class FetchJevHttpAdapter {
|
|
40
|
+
async post(request) {
|
|
41
|
+
if (!isAllowedUrl(request.url))
|
|
42
|
+
throw new JevTransportError('network');
|
|
43
|
+
const controller = new AbortController();
|
|
44
|
+
const timer = setTimeout(() => controller.abort(), request.timeoutMs);
|
|
45
|
+
try {
|
|
46
|
+
const response = await fetch(request.url, {
|
|
47
|
+
method: 'POST',
|
|
48
|
+
headers: { ...request.headers },
|
|
49
|
+
body: request.body,
|
|
50
|
+
redirect: 'manual',
|
|
51
|
+
signal: controller.signal,
|
|
52
|
+
});
|
|
53
|
+
if (response.status < 200 || response.status > 299) {
|
|
54
|
+
await response.body?.cancel().catch(() => undefined);
|
|
55
|
+
return { status: response.status, body: '' };
|
|
56
|
+
}
|
|
57
|
+
return { status: response.status, body: await readCapped(response, request.maxResponseBytes) };
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
if (error instanceof JevTransportError)
|
|
61
|
+
throw error;
|
|
62
|
+
throw new JevTransportError(controller.signal.aborted ? 'timeout' : 'network');
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
clearTimeout(timer);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
FetchJevHttpAdapter = __decorate([
|
|
70
|
+
injectable()
|
|
71
|
+
], FetchJevHttpAdapter);
|
|
72
|
+
export { FetchJevHttpAdapter };
|
|
73
|
+
//# sourceMappingURL=FetchJevHttpAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FetchJevHttpAdapter.js","sourceRoot":"","sources":["../../../src/infrastructure/adapters/FetchJevHttpAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GitPort, GitResult } from '../../domain/ports.js';
|
|
2
|
+
/** Runs read-only git commands without a shell; any failure becomes `{ ok: false }`. */
|
|
3
|
+
export declare class NodeGitAdapter implements GitPort {
|
|
4
|
+
run(args: readonly string[], cwd: string, input?: Buffer): Promise<GitResult>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { execFile } from 'node:child_process';
|
|
8
|
+
import { injectable } from 'inversify';
|
|
9
|
+
const GIT_TIMEOUT_MS = 3000;
|
|
10
|
+
const GIT_MAX_BUFFER = 4 * 1024 * 1024;
|
|
11
|
+
/** Runs read-only git commands without a shell; any failure becomes `{ ok: false }`. */
|
|
12
|
+
let NodeGitAdapter = class NodeGitAdapter {
|
|
13
|
+
run(args, cwd, input) {
|
|
14
|
+
return new Promise((resolve) => {
|
|
15
|
+
try {
|
|
16
|
+
const child = execFile('git', ['--no-optional-locks', '-c', 'core.quotepath=off', ...args], { cwd, timeout: GIT_TIMEOUT_MS, maxBuffer: GIT_MAX_BUFFER, encoding: 'buffer', windowsHide: true }, (error, stdout) => resolve(error ? { ok: false } : { ok: true, stdout }));
|
|
17
|
+
// Always close stdin so a command never waits on it; a broken pipe surfaces as a failed exit.
|
|
18
|
+
child.stdin?.on('error', () => undefined);
|
|
19
|
+
child.stdin?.end(input);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
resolve({ ok: false });
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
NodeGitAdapter = __decorate([
|
|
28
|
+
injectable()
|
|
29
|
+
], NodeGitAdapter);
|
|
30
|
+
export { NodeGitAdapter };
|
|
31
|
+
//# sourceMappingURL=NodeGitAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeGitAdapter.js","sourceRoot":"","sources":["../../../src/infrastructure/adapters/NodeGitAdapter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvC,wFAAwF;AAEjF,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,GAAG,CAAC,IAAuB,EAAE,GAAW,EAAE,KAAc;QACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,QAAQ,CACpB,KAAK,EACL,CAAC,qBAAqB,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,EAC5D,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,EAClG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CACzE,CAAC;gBACF,8FAA8F;gBAC9F,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC1C,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAlBY,cAAc;IAD1B,UAAU,EAAE;GACA,cAAc,CAkB1B"}
|
|
@@ -11,6 +11,8 @@ import { ConsoleLoggerAdapter } from "../adapters/ConsoleLoggerAdapter.js";
|
|
|
11
11
|
import { AjvValidationAdapter } from "../adapters/AjvValidationAdapter.js";
|
|
12
12
|
import { LinusQualityAnalyzer } from "../adapters/LinusQualityAnalyzer.js";
|
|
13
13
|
import { FileBasedTaskTracker } from "../adapters/FileBasedTaskTracker.js";
|
|
14
|
+
import { FetchJevHttpAdapter } from "../adapters/FetchJevHttpAdapter.js";
|
|
15
|
+
import { NodeGitAdapter } from "../adapters/NodeGitAdapter.js";
|
|
14
16
|
// Template infrastructure
|
|
15
17
|
import { HandlebarsRenderer } from "../templates/HandlebarsRenderer.js";
|
|
16
18
|
import { TemplateManager } from "../templates/TemplateManager.js";
|
|
@@ -48,6 +50,7 @@ import { TemplateService } from "../../application/services/TemplateService.js";
|
|
|
48
50
|
import { QualityService } from "../../application/services/QualityService.js";
|
|
49
51
|
import { QualityGateService } from "../../application/services/QualityGateService.js";
|
|
50
52
|
import { WorkflowEngineService } from "../../application/services/WorkflowEngineService.js";
|
|
53
|
+
import { JevAdvisoryService } from "../../application/services/JevAdvisoryService.js";
|
|
51
54
|
import { ProjectInitializationService } from "../../application/services/ProjectInitializationService.js";
|
|
52
55
|
import { WorkflowValidationService } from "../../application/services/WorkflowValidationService.js";
|
|
53
56
|
import { CodebaseAnalysisService } from "../../application/services/CodebaseAnalysisService.js";
|
|
@@ -82,6 +85,10 @@ export function createContainer() {
|
|
|
82
85
|
.bind(TYPES.QualityAnalyzer)
|
|
83
86
|
.to(LinusQualityAnalyzer);
|
|
84
87
|
container.bind(TYPES.TaskTracker).to(FileBasedTaskTracker);
|
|
88
|
+
// JEV advisory checks: HTTPS and git are ports so tests can replace them.
|
|
89
|
+
container.bind(TYPES.JevHttpPort).to(FetchJevHttpAdapter);
|
|
90
|
+
container.bind(TYPES.GitPort).to(NodeGitAdapter);
|
|
91
|
+
container.bind(TYPES.JevEnvironment).toConstantValue(process.env);
|
|
85
92
|
// Bind template ports
|
|
86
93
|
container
|
|
87
94
|
.bind(TYPES.TemplateRendererPort)
|
|
@@ -147,6 +154,9 @@ export function createContainer() {
|
|
|
147
154
|
container
|
|
148
155
|
.bind(TYPES.WorkflowEngineService)
|
|
149
156
|
.to(WorkflowEngineService);
|
|
157
|
+
container
|
|
158
|
+
.bind(TYPES.JevAdvisoryService)
|
|
159
|
+
.to(JevAdvisoryService);
|
|
150
160
|
container
|
|
151
161
|
.bind(TYPES.ProjectInitializationService)
|
|
152
162
|
.to(ProjectInitializationService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/infrastructure/di/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,16 @@ export declare const TYPES: {
|
|
|
14
14
|
readonly I18nService: symbol;
|
|
15
15
|
readonly I18nManagerPort: symbol;
|
|
16
16
|
readonly PlatformAdapter: symbol;
|
|
17
|
+
readonly JevHttpPort: symbol;
|
|
18
|
+
readonly GitPort: symbol;
|
|
19
|
+
readonly JevEnvironment: symbol;
|
|
17
20
|
readonly ProjectService: symbol;
|
|
18
21
|
readonly WorkflowService: symbol;
|
|
19
22
|
readonly TemplateService: symbol;
|
|
20
23
|
readonly QualityService: symbol;
|
|
21
24
|
readonly QualityGateService: symbol;
|
|
22
25
|
readonly WorkflowEngineService: symbol;
|
|
26
|
+
readonly JevAdvisoryService: symbol;
|
|
23
27
|
readonly ProjectInitializationService: symbol;
|
|
24
28
|
readonly WorkflowValidationService: symbol;
|
|
25
29
|
readonly CodebaseAnalysisService: symbol;
|
|
@@ -16,6 +16,9 @@ export const TYPES = {
|
|
|
16
16
|
I18nService: Symbol.for("I18nService"),
|
|
17
17
|
I18nManagerPort: Symbol.for("I18nManagerPort"),
|
|
18
18
|
PlatformAdapter: Symbol.for("PlatformAdapter"),
|
|
19
|
+
JevHttpPort: Symbol.for("JevHttpPort"),
|
|
20
|
+
GitPort: Symbol.for("GitPort"),
|
|
21
|
+
JevEnvironment: Symbol.for("JevEnvironment"),
|
|
19
22
|
// Application services
|
|
20
23
|
ProjectService: Symbol.for("ProjectService"),
|
|
21
24
|
WorkflowService: Symbol.for("WorkflowService"),
|
|
@@ -23,6 +26,7 @@ export const TYPES = {
|
|
|
23
26
|
QualityService: Symbol.for("QualityService"),
|
|
24
27
|
QualityGateService: Symbol.for("QualityGateService"),
|
|
25
28
|
WorkflowEngineService: Symbol.for("WorkflowEngineService"),
|
|
29
|
+
JevAdvisoryService: Symbol.for("JevAdvisoryService"),
|
|
26
30
|
ProjectInitializationService: Symbol.for("ProjectInitializationService"),
|
|
27
31
|
WorkflowValidationService: Symbol.for("WorkflowValidationService"),
|
|
28
32
|
CodebaseAnalysisService: Symbol.for("CodebaseAnalysisService"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/infrastructure/di/types.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,eAAe;IACf,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9C,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;IACtC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACxD,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACtD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,uBAAuB,EAAE,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAC9D,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/infrastructure/di/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
export declare const SDD_TOOL_NAMES: readonly ["sdd-init", "sdd-requirements", "sdd-design", "sdd-tasks", "sdd-implement", "sdd-status", "sdd-approve", "sdd-review-test-cases", "sdd-quality-check", "sdd-context-load", "sdd-template-render", "sdd-steering", "sdd-steering-custom", "sdd-validate-design", "sdd-validate-gap", "sdd-spec-impl"];
|
|
2
|
+
export declare const SDD_TOOL_NAMES: readonly ["sdd-init", "sdd-requirements", "sdd-design", "sdd-tasks", "sdd-implement", "sdd-status", "sdd-approve", "sdd-review-test-cases", "sdd-quality-check", "sdd-context-load", "sdd-template-render", "sdd-steering", "sdd-steering-custom", "sdd-validate-design", "sdd-validate-gap", "sdd-spec-impl", "sdd-jev-check"];
|
|
3
3
|
export type SDDToolName = (typeof SDD_TOOL_NAMES)[number];
|
|
4
4
|
export declare const SDD_TOOL_DEFINITIONS: ReadonlyArray<Tool & {
|
|
5
5
|
name: SDDToolName;
|
|
@@ -2,7 +2,7 @@ export const SDD_TOOL_NAMES = [
|
|
|
2
2
|
'sdd-init', 'sdd-requirements', 'sdd-design', 'sdd-tasks', 'sdd-implement', 'sdd-status',
|
|
3
3
|
'sdd-approve', 'sdd-review-test-cases', 'sdd-quality-check', 'sdd-context-load',
|
|
4
4
|
'sdd-template-render', 'sdd-steering', 'sdd-steering-custom', 'sdd-validate-design',
|
|
5
|
-
'sdd-validate-gap', 'sdd-spec-impl',
|
|
5
|
+
'sdd-validate-gap', 'sdd-spec-impl', 'sdd-jev-check',
|
|
6
6
|
];
|
|
7
7
|
const featureName = {
|
|
8
8
|
type: 'string',
|
|
@@ -36,6 +36,53 @@ const affectedArtifacts = {
|
|
|
36
36
|
type: 'array', maxItems: 100, uniqueItems: true,
|
|
37
37
|
items: { type: 'string', minLength: 1, maxLength: 500, pattern: '^(?![/\\\\])(?![A-Za-z]:)(?!.*(?:^|[/\\\\])\\.\\.(?:[/\\\\]|$))(?!.*\\u0000).+$' },
|
|
38
38
|
};
|
|
39
|
+
const projectRelativePath = {
|
|
40
|
+
type: 'string', minLength: 1, maxLength: 500,
|
|
41
|
+
pattern: affectedArtifacts.items.pattern,
|
|
42
|
+
};
|
|
43
|
+
const jevCase = {
|
|
44
|
+
type: 'object',
|
|
45
|
+
properties: {
|
|
46
|
+
taskId: { type: 'string', maxLength: 50, pattern: '^\\d+(?:\\.\\d+)*$' },
|
|
47
|
+
kind: { type: 'string', enum: ['behavior', 'boundary', 'error', 'transition', 'security'] },
|
|
48
|
+
given: { type: 'string', minLength: 1, maxLength: 500 },
|
|
49
|
+
when: { type: 'string', minLength: 1, maxLength: 500 },
|
|
50
|
+
then: { type: 'string', minLength: 1, maxLength: 500 },
|
|
51
|
+
covers: { type: 'string', minLength: 1, maxLength: 200 },
|
|
52
|
+
},
|
|
53
|
+
required: ['taskId', 'kind', 'given', 'when', 'then', 'covers'],
|
|
54
|
+
additionalProperties: false,
|
|
55
|
+
};
|
|
56
|
+
const jevFinding = {
|
|
57
|
+
type: 'object',
|
|
58
|
+
properties: {
|
|
59
|
+
id: { type: 'string', pattern: '^[A-Za-z0-9._-]{1,40}$' },
|
|
60
|
+
path: projectRelativePath,
|
|
61
|
+
line: { type: 'integer', minimum: 1 },
|
|
62
|
+
title: { type: 'string', minLength: 1, maxLength: 300 },
|
|
63
|
+
severity: { type: 'string', enum: ['critical', 'high', 'medium', 'low', 'important', 'minor'] },
|
|
64
|
+
description: { type: 'string', maxLength: 2000 },
|
|
65
|
+
preconditions: { type: 'string', maxLength: 1000 },
|
|
66
|
+
remediation: { type: 'string', maxLength: 1000 },
|
|
67
|
+
},
|
|
68
|
+
required: ['id', 'path', 'line', 'title', 'severity'],
|
|
69
|
+
additionalProperties: false,
|
|
70
|
+
};
|
|
71
|
+
const jevUnit = {
|
|
72
|
+
type: 'object',
|
|
73
|
+
properties: {
|
|
74
|
+
id: { type: 'string', pattern: '^[A-Za-z0-9._-]{1,40}$' },
|
|
75
|
+
path: projectRelativePath,
|
|
76
|
+
line: { type: 'integer', minimum: 1 },
|
|
77
|
+
summary: { type: 'string', minLength: 1, maxLength: 500 },
|
|
78
|
+
},
|
|
79
|
+
required: ['id', 'path', 'line', 'summary'],
|
|
80
|
+
additionalProperties: false,
|
|
81
|
+
};
|
|
82
|
+
const requiredWhenCheck = (checks, required) => ({
|
|
83
|
+
if: { properties: { check: { enum: checks } }, required: ['check'] },
|
|
84
|
+
then: { required },
|
|
85
|
+
});
|
|
39
86
|
export const SDD_TOOL_DEFINITIONS = [
|
|
40
87
|
{
|
|
41
88
|
name: 'sdd-init', description: 'Initialize a governed SDD feature',
|
|
@@ -106,5 +153,29 @@ export const SDD_TOOL_DEFINITIONS = [
|
|
|
106
153
|
],
|
|
107
154
|
},
|
|
108
155
|
},
|
|
156
|
+
{
|
|
157
|
+
name: 'sdd-jev-check', description: 'Run an opt-in advisory JEV check',
|
|
158
|
+
inputSchema: {
|
|
159
|
+
type: 'object',
|
|
160
|
+
properties: {
|
|
161
|
+
check: { type: 'string', enum: ['requirements', 'design', 'testcases', 'red', 'security', 'principles', 'commit'] },
|
|
162
|
+
featureName,
|
|
163
|
+
cases: { type: 'array', maxItems: 300, items: jevCase },
|
|
164
|
+
taskNumber: { type: 'string', minLength: 1, maxLength: 50, pattern: '^\\d+(?:\\.\\d+)*$' },
|
|
165
|
+
testName: { type: 'string', minLength: 1, maxLength: 300 },
|
|
166
|
+
evidence,
|
|
167
|
+
findings: { type: 'array', maxItems: 50, items: jevFinding },
|
|
168
|
+
units: { type: 'array', maxItems: 30, items: jevUnit },
|
|
169
|
+
baseRef: { type: 'string', minLength: 1, maxLength: 256 },
|
|
170
|
+
},
|
|
171
|
+
required: ['check'], additionalProperties: false,
|
|
172
|
+
allOf: [
|
|
173
|
+
requiredWhenCheck(['requirements', 'design', 'testcases', 'red'], ['featureName']),
|
|
174
|
+
requiredWhenCheck(['red'], ['taskNumber', 'testName', 'evidence']),
|
|
175
|
+
requiredWhenCheck(['security'], ['findings']),
|
|
176
|
+
requiredWhenCheck(['principles'], ['units']),
|
|
177
|
+
],
|
|
178
|
+
},
|
|
179
|
+
},
|
|
109
180
|
];
|
|
110
181
|
//# sourceMappingURL=sddToolDefinitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sddToolDefinitions.js","sourceRoot":"","sources":["../../../src/infrastructure/mcp/sddToolDefinitions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY;IACxF,aAAa,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,kBAAkB;IAC/E,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB;IACnF,kBAAkB,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"sddToolDefinitions.js","sourceRoot":"","sources":["../../../src/infrastructure/mcp/sddToolDefinitions.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/version.d.ts
CHANGED
package/dist/shared/version.js
CHANGED
package/package.json
CHANGED
|
@@ -13,10 +13,11 @@ Run this skill locally in the current turn. Do not delegate commit, branch, or p
|
|
|
13
13
|
1. Inspect repository status and the exact changes to include; preserve unrelated work.
|
|
14
14
|
2. Confirm the focused tests or checks relevant to those changes passed. Never claim unobserved verification.
|
|
15
15
|
3. Review the staged diff before committing. Never stage secrets, credentials, generated backups, or unrelated files.
|
|
16
|
-
4.
|
|
16
|
+
4. Internally run the JEV `commit` lookup (local, read-only; it never calls JEV) and show its warning line if one is returned. It never blocks, skips hooks, or asks a question.
|
|
17
|
+
5. Use the repository's established commit style. Otherwise use an imperative Conventional Commit subject:
|
|
17
18
|
`<type>(<scope>): <subject>`.
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
6. Explain why in the body when the subject cannot; record breaking behavior explicitly.
|
|
20
|
+
7. For a pull request, summarize intent, affected behavior, focused test evidence, migration or security impact, and unresolved blockers.
|
|
20
21
|
|
|
21
22
|
Never add `Co-Authored-By:` trailers or "Generated with Claude Code" lines to commit messages or pull request descriptions, even when default attribution guidance asks for them.
|
|
22
23
|
|
|
@@ -29,7 +29,7 @@ Internally submit the complete Markdown with the exact revision and artifact ide
|
|
|
29
29
|
|
|
30
30
|
## Human Gate
|
|
31
31
|
|
|
32
|
-
When validation passes, ask one explicit question: **“Approve this design?”** Only an unambiguous affirmative answer in this Skill flow permits internal approval of the exact reviewed revision and artifact. Never self-approve. Reread status after approval and report the persisted outcome.
|
|
32
|
+
When validation passes, internally run the JEV `design` check and show its line, if any; it never affects approval. Then ask one explicit question: **“Approve this design?”** Only an unambiguous affirmative answer in this Skill flow permits internal approval of the exact reviewed revision and artifact. Never self-approve. Reread status after approval and report the persisted outcome.
|
|
33
33
|
|
|
34
34
|
## Specialist Delegation
|
|
35
35
|
|
|
@@ -16,7 +16,7 @@ Never create a serial specialist or split work to justify agents. Only when proj
|
|
|
16
16
|
|
|
17
17
|
1. Internally resolve status and load compact implementation context. Requirements, design, tasks, and any required test-case review must be approved.
|
|
18
18
|
2. If invoked too early or state is blocked, present the persisted blocker and make no workflow or source change.
|
|
19
|
-
3. Internally begin implementation when status requests it. Otherwise follow the
|
|
19
|
+
3. Internally begin implementation when status requests it. Otherwise follow the next action: continue the active task, ask the user to select among resumable candidates, or select only a dependency-ready pending task.
|
|
20
20
|
4. Read the approved task, acceptance criteria, design interfaces, and relevant steering before editing. Never infer progress from chat or Markdown checkboxes.
|
|
21
21
|
|
|
22
22
|
If the runtime is unavailable because of host permission, report an actionable reload/trust or policy blocker; never substitute manual backend instructions.
|
|
@@ -25,12 +25,12 @@ If the runtime is unavailable because of host permission, report an actionable r
|
|
|
25
25
|
|
|
26
26
|
For each selected task, internally record `start` with the exact implementation revision. Then:
|
|
27
27
|
|
|
28
|
-
1. **RED:** for TDD-required work, write a focused observable test and run it to prove the expected failure. Record the observed command, non-zero exit code, and
|
|
28
|
+
1. **RED:** for TDD-required work, write a focused observable test and run it to prove the expected failure. Before recording, internally run the JEV `red` check and show its line; fix the test first if it reports a setup failure. It never blocks recording. Record the observed command, non-zero exit code, and summary before production changes.
|
|
29
29
|
2. **GREEN:** implement only enough to pass and run the focused test. Record the observed command, zero exit code, and summary.
|
|
30
30
|
3. **REFACTOR:** simplify without changing behavior; rerun focused verification.
|
|
31
31
|
4. **COMPLETE:** run final verification. Only after a zero exit code and all acceptance/security checks, record completion with the observed affected project-relative artifacts.
|
|
32
32
|
|
|
33
|
-
For `not-applicable` TDD tasks, start, implement, verify, then complete with zero-exit verification evidence. If work cannot continue after start, internally record the blocker and reason; do not fabricate evidence. On resume, continue from persisted
|
|
33
|
+
For `not-applicable` TDD tasks, start, implement, verify, then complete with zero-exit verification evidence. If work cannot continue after start, internally record the blocker and reason; do not fabricate evidence. On resume, continue from the persisted state without replaying completed transitions. Reread status after every progress record.
|
|
34
34
|
|
|
35
35
|
## Mandatory Checks
|
|
36
36
|
|
|
@@ -46,4 +46,4 @@ Report persisted task numbers/states, observed affected artifacts, RED/GREEN/fin
|
|
|
46
46
|
|
|
47
47
|
## Optional Reference
|
|
48
48
|
|
|
49
|
-
Read [REFERENCE.md](REFERENCE.md) only
|
|
49
|
+
Read [REFERENCE.md](REFERENCE.md) only for progress examples, SOLID, OWASP, anti-pattern, or completion checklists.
|
|
@@ -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
|
|