@kryptosai/mcp-observatory 0.21.0 → 0.22.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/README.md CHANGED
@@ -25,7 +25,7 @@ MCP Observatory gives MCP servers the production safety rails every dependency e
25
25
  Add MCP CI in one command:
26
26
 
27
27
  ```bash
28
- npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server" --badge
28
+ npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
29
29
  ```
30
30
 
31
31
  Or test a server immediately:
@@ -48,7 +48,7 @@ MCP servers are becoming production dependencies. If agents rely on them, teams
48
48
 
49
49
  Observatory gives maintainers and teams:
50
50
 
51
- - **One-command CI setup** with `init-ci`
51
+ - **One-command CI setup** with `init-ci --all`
52
52
  - **GitHub PR comments** for compatibility, drift, and security findings
53
53
  - **Health score badges** for public trust signals
54
54
  - **Record/replay/verify** workflows for regression testing
@@ -201,7 +201,7 @@ When you run `scan`, it looks for MCP configs in:
201
201
  Add Observatory to your MCP server's CI pipeline:
202
202
 
203
203
  ```bash
204
- npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server" --badge
204
+ npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
205
205
  ```
206
206
 
207
207
  Or create the workflow manually:
@@ -5,13 +5,27 @@ export interface InitCiOptions {
5
5
  workflow?: string;
6
6
  badgeFile?: string;
7
7
  badge?: boolean;
8
+ targetConfig?: string | boolean;
9
+ prBody?: string | boolean;
10
+ issueBody?: string | boolean;
11
+ scoreBadge?: string | boolean;
12
+ all?: boolean;
8
13
  force?: boolean;
9
14
  }
10
- export declare function initCi(options: InitCiOptions): Promise<{
15
+ export interface InitCiResult {
11
16
  workflowStatus: string;
12
17
  badgeStatus?: string;
18
+ targetConfigStatus?: string;
19
+ prBodyStatus?: string;
20
+ issueBodyStatus?: string;
21
+ scoreBadgeStatus?: string;
13
22
  workflowPath: string;
14
23
  badgePath?: string;
15
- }>;
24
+ targetConfigPath?: string;
25
+ prBodyPath?: string;
26
+ issueBodyPath?: string;
27
+ scoreBadgePath?: string;
28
+ }
29
+ export declare function initCi(options: InitCiOptions): Promise<InitCiResult>;
16
30
  export declare function registerInitCiCommands(program: Command): void;
17
31
  export declare function readGeneratedWorkflow(filePath: string): Promise<string>;
@@ -3,6 +3,10 @@ import path from "node:path";
3
3
  import { buildEvent, recordEvent } from "../telemetry.js";
4
4
  const DEFAULT_WORKFLOW_PATH = ".github/workflows/mcp-observatory.yml";
5
5
  const DEFAULT_BADGE_PATH = "docs/mcp-observatory-badge.md";
6
+ const DEFAULT_TARGET_CONFIG_PATH = "mcp-observatory.target.json";
7
+ const DEFAULT_PR_BODY_PATH = "docs/mcp-observatory-pr-body.md";
8
+ const DEFAULT_ISSUE_BODY_PATH = "docs/mcp-observatory-issue.md";
9
+ const DEFAULT_SCORE_BADGE_PATH = "docs/mcp-observatory-score-badge.md";
6
10
  async function exists(filePath) {
7
11
  try {
8
12
  await access(filePath);
@@ -34,6 +38,9 @@ function workflowYaml(options) {
34
38
  if (target) {
35
39
  lines.push(` target: ${target}`);
36
40
  }
41
+ else if (shouldWrite(options.targetConfig, options.all)) {
42
+ lines.push(` target: ${optionPath(options.targetConfig, DEFAULT_TARGET_CONFIG_PATH)}`);
43
+ }
37
44
  else {
38
45
  lines.push(` command: ${command ?? "npx -y <server-package>"}`);
39
46
  }
@@ -48,6 +55,91 @@ function badgeMarkdown() {
48
55
  "",
49
56
  ].join("\n");
50
57
  }
58
+ function splitCommand(command) {
59
+ return command.match(/"[^"]*"|'[^']*'|\S+/g)?.map((part) => part.replace(/^["']|["']$/g, "")) ?? [];
60
+ }
61
+ function targetConfigJson(options) {
62
+ const command = options.command?.trim() || "npx -y <server-package>";
63
+ const [bin = "npx", ...args] = splitCommand(command);
64
+ return JSON.stringify({
65
+ targetId: "mcp-server",
66
+ adapter: "local-process",
67
+ command: bin,
68
+ args,
69
+ timeoutMs: 15000,
70
+ metadata: {
71
+ observatory: "generated-by-init-ci",
72
+ },
73
+ }, null, 2) + "\n";
74
+ }
75
+ function prBodyMarkdown(options) {
76
+ const command = options.command?.trim();
77
+ const target = options.target?.trim() ?? (shouldWrite(options.targetConfig, options.all) ? optionPath(options.targetConfig, DEFAULT_TARGET_CONFIG_PATH) : undefined);
78
+ const setupLine = target
79
+ ? `This PR adds an MCP Observatory GitHub Action that checks \`${target}\` on pull requests and pushes.`
80
+ : `This PR adds an MCP Observatory GitHub Action that checks \`${command ?? "the MCP server"}\` on pull requests and pushes.`;
81
+ return [
82
+ "## Add MCP Observatory CI",
83
+ "",
84
+ setupLine,
85
+ "",
86
+ "Why this helps:",
87
+ "- catches MCP compatibility regressions before release",
88
+ "- surfaces schema drift and common security issues",
89
+ "- publishes a small PR report for maintainers",
90
+ "- adds an optional README trust badge",
91
+ "",
92
+ "This does not require an MCP Observatory account. If the check is too strict at first, the workflow can be adjusted while keeping the report visible.",
93
+ "",
94
+ "Generated by:",
95
+ "",
96
+ "```bash",
97
+ "npx @kryptosai/mcp-observatory init-ci --all --command \"npx -y <server-package>\"",
98
+ "```",
99
+ "",
100
+ ].join("\n");
101
+ }
102
+ function issueBodyMarkdown(options) {
103
+ const command = options.command?.trim() ?? "npx -y <server-package>";
104
+ return [
105
+ "## Add MCP Observatory compatibility/security checks",
106
+ "",
107
+ "This project appears to expose an MCP server. MCP Observatory can add a lightweight GitHub Action that checks MCP compatibility, schema drift, and common security issues before agents depend on a release.",
108
+ "",
109
+ "Suggested setup:",
110
+ "",
111
+ "```bash",
112
+ `npx @kryptosai/mcp-observatory init-ci --all --command "${command.replaceAll("\"", "\\\"")}"`,
113
+ "```",
114
+ "",
115
+ "The generated workflow runs on pull requests and pushes, comments a concise report, and can include a README badge if maintainers want a public trust signal.",
116
+ "",
117
+ ].join("\n");
118
+ }
119
+ function scoreBadgeMarkdown() {
120
+ return [
121
+ "# MCP Observatory Score Badge",
122
+ "",
123
+ "Generate a score badge after a successful local check:",
124
+ "",
125
+ "```bash",
126
+ "npx @kryptosai/mcp-observatory badge npx -y <server-package> --output docs/mcp-health.svg",
127
+ "```",
128
+ "",
129
+ "Then add this to your README:",
130
+ "",
131
+ "```markdown",
132
+ "[![MCP Health](docs/mcp-health.svg)](https://github.com/KryptosAI/mcp-observatory)",
133
+ "```",
134
+ "",
135
+ ].join("\n");
136
+ }
137
+ function shouldWrite(value, all) {
138
+ return all === true || value !== undefined && value !== false;
139
+ }
140
+ function optionPath(value, fallback) {
141
+ return typeof value === "string" && value.length > 0 ? value : fallback;
142
+ }
51
143
  async function writeFileOnce(filePath, content, force) {
52
144
  const alreadyExists = await exists(filePath);
53
145
  if (alreadyExists && !force)
@@ -60,6 +152,9 @@ export async function initCi(options) {
60
152
  if (options.command && options.target) {
61
153
  throw new Error("Use either --command or --target, not both.");
62
154
  }
155
+ if (options.target && shouldWrite(options.targetConfig, options.all)) {
156
+ throw new Error("Use either --target or --target-config, not both.");
157
+ }
63
158
  const workflowPath = options.workflow ?? DEFAULT_WORKFLOW_PATH;
64
159
  const badgePath = options.badgeFile ?? DEFAULT_BADGE_PATH;
65
160
  const workflowStatus = await writeFileOnce(workflowPath, workflowYaml(options), options.force === true);
@@ -67,10 +162,30 @@ export async function initCi(options) {
67
162
  workflowStatus,
68
163
  workflowPath,
69
164
  };
70
- if (options.badge) {
165
+ if (options.badge || options.all) {
71
166
  result.badgeStatus = await writeFileOnce(badgePath, badgeMarkdown(), options.force === true);
72
167
  result.badgePath = badgePath;
73
168
  }
169
+ if (shouldWrite(options.targetConfig, options.all)) {
170
+ const targetConfigPath = optionPath(options.targetConfig, DEFAULT_TARGET_CONFIG_PATH);
171
+ result.targetConfigStatus = await writeFileOnce(targetConfigPath, targetConfigJson(options), options.force === true);
172
+ result.targetConfigPath = targetConfigPath;
173
+ }
174
+ if (shouldWrite(options.prBody, options.all)) {
175
+ const prBodyPath = optionPath(options.prBody, DEFAULT_PR_BODY_PATH);
176
+ result.prBodyStatus = await writeFileOnce(prBodyPath, prBodyMarkdown(options), options.force === true);
177
+ result.prBodyPath = prBodyPath;
178
+ }
179
+ if (shouldWrite(options.issueBody, options.all)) {
180
+ const issueBodyPath = optionPath(options.issueBody, DEFAULT_ISSUE_BODY_PATH);
181
+ result.issueBodyStatus = await writeFileOnce(issueBodyPath, issueBodyMarkdown(options), options.force === true);
182
+ result.issueBodyPath = issueBodyPath;
183
+ }
184
+ if (shouldWrite(options.scoreBadge, options.all)) {
185
+ const scoreBadgePath = optionPath(options.scoreBadge, DEFAULT_SCORE_BADGE_PATH);
186
+ result.scoreBadgeStatus = await writeFileOnce(scoreBadgePath, scoreBadgeMarkdown(), options.force === true);
187
+ result.scoreBadgePath = scoreBadgePath;
188
+ }
74
189
  return result;
75
190
  }
76
191
  export function registerInitCiCommands(program) {
@@ -82,6 +197,11 @@ export function registerInitCiCommands(program) {
82
197
  .option("--workflow <file>", "Workflow output path.", DEFAULT_WORKFLOW_PATH)
83
198
  .option("--badge", "Also write a README badge snippet.", false)
84
199
  .option("--badge-file <file>", "Badge snippet output path.", DEFAULT_BADGE_PATH)
200
+ .option("--target-config [file]", "Also write an example target config and point the workflow at it.")
201
+ .option("--pr-body [file]", "Also write a maintainer PR body.")
202
+ .option("--issue-body [file]", "Also write an issue-only fallback body.")
203
+ .option("--score-badge [file]", "Also write score badge generation instructions.")
204
+ .option("--all", "Write the full adoption kit: workflow, badge, target config, PR body, issue body, and score badge instructions.", false)
85
205
  .option("--force", "Overwrite existing files.", false)
86
206
  .action(async (options) => {
87
207
  const result = await initCi(options);
@@ -90,10 +210,22 @@ export function registerInitCiCommands(program) {
90
210
  if (result.badgePath && result.badgeStatus) {
91
211
  process.stdout.write(`${result.badgeStatus}: ${result.badgePath}\n`);
92
212
  }
213
+ if (result.targetConfigPath && result.targetConfigStatus) {
214
+ process.stdout.write(`${result.targetConfigStatus}: ${result.targetConfigPath}\n`);
215
+ }
216
+ if (result.prBodyPath && result.prBodyStatus) {
217
+ process.stdout.write(`${result.prBodyStatus}: ${result.prBodyPath}\n`);
218
+ }
219
+ if (result.issueBodyPath && result.issueBodyStatus) {
220
+ process.stdout.write(`${result.issueBodyStatus}: ${result.issueBodyPath}\n`);
221
+ }
222
+ if (result.scoreBadgePath && result.scoreBadgeStatus) {
223
+ process.stdout.write(`${result.scoreBadgeStatus}: ${result.scoreBadgePath}\n`);
224
+ }
93
225
  if (skipped) {
94
226
  process.stdout.write("Use --force to overwrite existing files.\n");
95
227
  }
96
- process.stdout.write("Next: commit the workflow, open a PR, and add the badge snippet to the README if desired.\n");
228
+ process.stdout.write("Next: commit the workflow, open a PR, and paste the generated PR body if present.\n");
97
229
  recordEvent(buildEvent("command_complete", "init-ci", "cli", {
98
230
  ciProvider: "github-actions",
99
231
  commitStatusSet: !skipped,
@@ -1 +1 @@
1
- {"version":3,"file":"init-ci.js","sourceRoot":"","sources":["../../../src/commands/init-ci.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-ci.js","sourceRoot":"","sources":["../../../src/commands/init-ci.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,20 @@ export declare function findChecksByStatus(checks: CheckResult[], status: CheckS
4
4
  export declare function describeCheckList(checks: CheckResult[]): string;
5
5
  export declare function focusLabel(status: CheckStatus): string;
6
6
  export declare function previewList(values: string[] | undefined, limit?: number): string;
7
+ export type SafetyVerdict = "Ready" | "Needs review" | "Blocked";
8
+ export interface SafetySummary {
9
+ verdict: SafetyVerdict;
10
+ reason: string;
11
+ topRisks: string[];
12
+ regressionSummary: string;
13
+ nextActions: string[];
14
+ ciCta: string;
15
+ }
7
16
  export declare function recommendRunNextStep(artifact: RunArtifact): string;
17
+ export declare function summarizeRunSafety(artifact: RunArtifact): SafetySummary;
18
+ export declare function summarizeDiffSafety(artifact: {
19
+ gate: string;
20
+ regressions: unknown[];
21
+ schemaDrift?: unknown[];
22
+ responseChanges?: unknown[];
23
+ }): SafetySummary;
@@ -60,4 +60,80 @@ export function recommendRunNextStep(artifact) {
60
60
  }
61
61
  return "Save this run artifact and diff it against the next meaningful server or package change.";
62
62
  }
63
+ function checkRiskLabel(check) {
64
+ return `${check.id}: ${check.message}`;
65
+ }
66
+ function riskList(artifact) {
67
+ const risks = [];
68
+ if (artifact.fatalError) {
69
+ risks.push("startup: server failed to start");
70
+ }
71
+ for (const check of sortChecksByActionability(artifact.checks)) {
72
+ if (check.status === "fail" || check.status === "partial" || check.status === "flaky") {
73
+ risks.push(checkRiskLabel(check));
74
+ }
75
+ }
76
+ return risks.slice(0, 3);
77
+ }
78
+ export function summarizeRunSafety(artifact) {
79
+ const failingChecks = findChecksByStatus(artifact.checks, "fail");
80
+ const partialChecks = [
81
+ ...findChecksByStatus(artifact.checks, "partial"),
82
+ ...findChecksByStatus(artifact.checks, "flaky"),
83
+ ];
84
+ const unsupportedChecks = findChecksByStatus(artifact.checks, "unsupported");
85
+ const score = artifact.healthScore?.overall;
86
+ const verdict = artifact.fatalError || artifact.gate === "fail" || failingChecks.length > 0 || (typeof score === "number" && score < 60)
87
+ ? "Blocked"
88
+ : partialChecks.length > 0 || unsupportedChecks.length > 0 || (typeof score === "number" && score < 80)
89
+ ? "Needs review"
90
+ : "Ready";
91
+ const reason = verdict === "Ready"
92
+ ? "No blocking MCP compatibility or security issues were detected."
93
+ : verdict === "Blocked"
94
+ ? "One or more checks can break agent dependence and should be fixed before production use."
95
+ : "The server is usable, but caveated checks should be reviewed before agents depend on it.";
96
+ const topRisks = riskList(artifact);
97
+ return {
98
+ verdict,
99
+ reason,
100
+ topRisks: topRisks.length > 0 ? topRisks : ["No high-priority risks detected."],
101
+ regressionSummary: "Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.",
102
+ nextActions: [
103
+ recommendRunNextStep(artifact),
104
+ "Add MCP Observatory to CI so every server change gets the same check.",
105
+ ],
106
+ ciCta: "Add CI: npx @kryptosai/mcp-observatory init-ci --all --command \"npx -y <server-package>\"",
107
+ };
108
+ }
109
+ export function summarizeDiffSafety(artifact) {
110
+ const driftCount = artifact.schemaDrift?.length ?? 0;
111
+ const responseChangeCount = artifact.responseChanges?.length ?? 0;
112
+ const regressionCount = artifact.regressions.length;
113
+ const verdict = artifact.gate === "fail" || regressionCount > 0
114
+ ? "Blocked"
115
+ : driftCount > 0 || responseChangeCount > 0
116
+ ? "Needs review"
117
+ : "Ready";
118
+ const topRisks = [
119
+ regressionCount > 0 ? `${regressionCount} regression${regressionCount === 1 ? "" : "s"} detected` : undefined,
120
+ driftCount > 0 ? `${driftCount} schema drift item${driftCount === 1 ? "" : "s"} detected` : undefined,
121
+ responseChangeCount > 0 ? `${responseChangeCount} response change${responseChangeCount === 1 ? "" : "s"} detected` : undefined,
122
+ ].filter((entry) => Boolean(entry));
123
+ return {
124
+ verdict,
125
+ reason: verdict === "Ready"
126
+ ? "No regressions, schema drift, or response changes were detected."
127
+ : verdict === "Blocked"
128
+ ? "Regressions can break dependent agents and should be fixed or intentionally accepted."
129
+ : "Schema or response changes were detected and should be reviewed before release.",
130
+ topRisks: topRisks.length > 0 ? topRisks.slice(0, 3) : ["No high-priority risks detected."],
131
+ regressionSummary: `Regressions: ${regressionCount}; schema drift: ${driftCount}; response changes: ${responseChangeCount}.`,
132
+ nextActions: [
133
+ regressionCount > 0 ? "Fix or explicitly accept the listed regressions before release." : "Save this diff as release evidence.",
134
+ "Keep this comparison running in CI for future MCP server changes.",
135
+ ],
136
+ ciCta: "Add CI: npx @kryptosai/mcp-observatory init-ci --all --command \"npx -y <server-package>\"",
137
+ };
138
+ }
63
139
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/reporters/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/reporters/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,eAAe,GAAgC,MAAM,CAAC,WAAW,CACrE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CACtC,CAAC;AAEjC,MAAM,UAAU,yBAAyB,CAAC,MAAqB;IAC7D,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClF,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,MAAmB;IAEnB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,iBAAiB,CAAC;QAC3B,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC;QAC1B,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAA4B,EAAE,KAAK,GAAG,CAAC;IACjE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,MAAM,GAAG,KAAK,QAAQ,CAAC;AACjF,CAAC;AAaD,MAAM,UAAU,oBAAoB,CAAC,QAAqB;IACxD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,kIAAkI,CAAC;IAC5I,CAAC;IAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,kCAAkC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC;IAC/E,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QACjD,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KAChD,CAAC;IACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,oCAAoC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC;IACjF,CAAC;IAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,0EAA0E,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,CAAC;IAC3H,CAAC;IAED,OAAO,0FAA0F,CAAC;AACpG,CAAC;AAED,SAAS,cAAc,CAAC,KAAkB;IACxC,OAAO,GAAG,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,QAAQ,CAAC,QAAqB;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACtF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAqB;IACtD,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG;QACpB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QACjD,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KAChD,CAAC;IACF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC5C,MAAM,OAAO,GAAkB,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC;QACrJ,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC;YACrG,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,OAAO,CAAC;IACd,MAAM,MAAM,GAAG,OAAO,KAAK,OAAO;QAChC,CAAC,CAAC,iEAAiE;QACnE,CAAC,CAAC,OAAO,KAAK,SAAS;YACrB,CAAC,CAAC,0FAA0F;YAC5F,CAAC,CAAC,0FAA0F,CAAC;IACjG,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO;QACL,OAAO;QACP,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC;QAC/E,iBAAiB,EAAE,6GAA6G;QAChI,WAAW,EAAE;YACX,oBAAoB,CAAC,QAAQ,CAAC;YAC9B,uEAAuE;SACxE;QACD,KAAK,EAAE,4FAA4F;KACpG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAwG;IAC1I,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;IACrD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IACpD,MAAM,OAAO,GAAkB,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,eAAe,GAAG,CAAC;QAC5E,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC;YACzC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,OAAO,CAAC;IACd,MAAM,QAAQ,GAAG;QACf,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,cAAc,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS;QAC7G,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,qBAAqB,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS;QACrG,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,mBAAmB,mBAAmB,mBAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS;KAC/H,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,OAAO;QACL,OAAO;QACP,MAAM,EAAE,OAAO,KAAK,OAAO;YACzB,CAAC,CAAC,kEAAkE;YACpE,CAAC,CAAC,OAAO,KAAK,SAAS;gBACrB,CAAC,CAAC,uFAAuF;gBACzF,CAAC,CAAC,iFAAiF;QACvF,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC;QAC3F,iBAAiB,EAAE,gBAAgB,eAAe,mBAAmB,UAAU,uBAAuB,mBAAmB,GAAG;QAC5H,WAAW,EAAE;YACX,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,qCAAqC;YAC/H,mEAAmE;SACpE;QACD,KAAK,EAAE,4FAA4F;KACpG,CAAC;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { summarizeDiffSafety, summarizeRunSafety } from "./common.js";
1
2
  function esc(text) {
2
3
  return text
3
4
  .replace(/&/g, "&amp;")
@@ -21,6 +22,10 @@ function gateBadge(gate) {
21
22
  const bg = gate === "pass" ? "#22c55e" : "#ef4444";
22
23
  return `<span style="display:inline-block;padding:4px 12px;border-radius:6px;background:${bg};color:#fff;font-size:14px;font-weight:700">${esc(gate).toUpperCase()}</span>`;
23
24
  }
25
+ function verdictBadge(verdict) {
26
+ const bg = verdict === "Ready" ? "#22c55e" : verdict === "Needs review" ? "#eab308" : "#ef4444";
27
+ return `<span style="display:inline-block;padding:4px 12px;border-radius:6px;background:${bg};color:#fff;font-size:14px;font-weight:700">${esc(verdict)}</span>`;
28
+ }
24
29
  function checksTable(checks) {
25
30
  const rows = checks.map((c) => `
26
31
  <tr>
@@ -115,6 +120,7 @@ function schemaDriftSection(drift) {
115
120
  }
116
121
  function renderRunHtml(artifact) {
117
122
  const serverLabel = [artifact.target.serverName, artifact.target.serverVersion].filter(Boolean).join(" ") || "unknown";
123
+ const safety = summarizeRunSafety(artifact);
118
124
  return `<!DOCTYPE html>
119
125
  <html lang="en">
120
126
  <head>
@@ -143,6 +149,13 @@ function renderRunHtml(artifact) {
143
149
  <div class="card">
144
150
  <div style="display:flex;align-items:center;gap:16px;margin-bottom:12px">
145
151
  <div style="font-size:16px;font-weight:600">Gate: ${gateBadge(artifact.gate)}</div>
152
+ <div style="font-size:16px;font-weight:600">Safety: ${verdictBadge(safety.verdict)}</div>
153
+ </div>
154
+ <p style="margin:0 0 12px;color:#374151">${esc(safety.reason)}</p>
155
+ <div style="font-size:13px;margin-bottom:12px">
156
+ <strong>Top risks:</strong> ${esc(safety.topRisks.join("; "))}<br>
157
+ <strong>Next action:</strong> ${esc(safety.nextActions[0] ?? "")}<br>
158
+ <strong>CI:</strong> <code>${esc(safety.ciCta)}</code>
146
159
  </div>
147
160
  <div style="font-size:13px;color:#6b7280">
148
161
  <div><strong>Target:</strong> ${esc(artifact.target.targetId)} (${esc(artifact.target.adapter)})</div>
@@ -167,6 +180,7 @@ function renderRunHtml(artifact) {
167
180
  </html>`;
168
181
  }
169
182
  function renderDiffHtml(artifact) {
183
+ const safety = summarizeDiffSafety(artifact);
170
184
  return `<!DOCTYPE html>
171
185
  <html lang="en">
172
186
  <head>
@@ -197,6 +211,12 @@ function renderDiffHtml(artifact) {
197
211
  <div class="card">
198
212
  <div style="display:flex;align-items:center;gap:16px;margin-bottom:16px">
199
213
  <div style="font-size:16px;font-weight:600">Gate: ${gateBadge(artifact.gate)}</div>
214
+ <div style="font-size:16px;font-weight:600">Safety: ${verdictBadge(safety.verdict)}</div>
215
+ </div>
216
+ <p style="margin:0 0 12px;color:#374151">${esc(safety.reason)}</p>
217
+ <div style="font-size:13px;margin-bottom:16px">
218
+ <strong>Top risks:</strong> ${esc(safety.topRisks.join("; "))}<br>
219
+ <strong>Next action:</strong> ${esc(safety.nextActions[0] ?? "")}
200
220
  </div>
201
221
  <div>
202
222
  <div class="stat"><div class="stat-num" style="color:#ef4444">${artifact.summary.regressions}</div><div class="stat-label">Regressions</div></div>
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/reporters/html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/reporters/html.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { describeCheckList, findChecksByStatus, focusLabel, previewList, recommendRunNextStep, sortChecksByActionability } from "./common.js";
1
+ import { describeCheckList, findChecksByStatus, focusLabel, previewList, recommendRunNextStep, summarizeDiffSafety, summarizeRunSafety, sortChecksByActionability } from "./common.js";
2
2
  function table(entries) {
3
3
  if (entries.length === 0) {
4
4
  return "_None._";
@@ -27,6 +27,7 @@ function renderEvidence(evidence) {
27
27
  .join("\n");
28
28
  }
29
29
  function renderRunAtAGlance(artifact) {
30
+ const safety = summarizeRunSafety(artifact);
30
31
  const failingChecks = findChecksByStatus(artifact.checks, "fail");
31
32
  const partialChecks = [
32
33
  ...findChecksByStatus(artifact.checks, "partial"),
@@ -37,11 +38,15 @@ function renderRunAtAGlance(artifact) {
37
38
  return [
38
39
  `## At a Glance`,
39
40
  ``,
41
+ `- Safety verdict: **${safety.verdict}** — ${safety.reason}`,
42
+ `- Top risks: ${safety.topRisks.join("; ")}`,
43
+ `- Regression/schema drift: ${safety.regressionSummary}`,
40
44
  `- Failing checks: ${describeCheckList(failingChecks)}`,
41
45
  `- Partial or flaky checks: ${describeCheckList(partialChecks)}`,
42
46
  `- Skipped checks: ${describeCheckList(skippedChecks)}`,
43
47
  `- Unsupported checks: ${describeCheckList(unsupportedChecks)}`,
44
- `- Suggested next step: ${recommendRunNextStep(artifact)}`
48
+ `- Suggested next step: ${recommendRunNextStep(artifact)}`,
49
+ `- CI next step: \`${safety.ciCta}\``
45
50
  ].join("\n");
46
51
  }
47
52
  function renderFailureDiagnosis(artifact) {
@@ -147,6 +152,7 @@ function renderRunMarkdown(artifact) {
147
152
  ].join("\n");
148
153
  }
149
154
  function renderDiffMarkdown(artifact) {
155
+ const safety = summarizeDiffSafety(artifact);
150
156
  const regressionList = artifact.regressions.length > 0
151
157
  ? artifact.regressions.map((entry) => `- ${entry.id}: ${entry.message}`).join("\n")
152
158
  : "_None._";
@@ -170,6 +176,10 @@ function renderDiffMarkdown(artifact) {
170
176
  ``,
171
177
  `## Executive Summary`,
172
178
  ``,
179
+ `**Safety verdict: ${safety.verdict}.** ${safety.reason}`,
180
+ ``,
181
+ `Top risks: ${safety.topRisks.join("; ")}`,
182
+ ``,
173
183
  table([
174
184
  ["Gate", "Regressions", "Recoveries", "Unchanged", "Added", "Removed"],
175
185
  [
@@ -184,9 +194,11 @@ function renderDiffMarkdown(artifact) {
184
194
  ``,
185
195
  `## At a Glance`,
186
196
  ``,
197
+ `- Regression/schema drift: ${safety.regressionSummary}`,
187
198
  `- Regressions: ${artifact.regressions.map((entry) => entry.id).join(", ") || "none"}`,
188
199
  `- Recoveries: ${artifact.recoveries.map((entry) => entry.id).join(", ") || "none"}`,
189
200
  `- Suggested next step: ${suggestedNextStep}`,
201
+ `- CI next step: \`${safety.ciCta}\``,
190
202
  ``,
191
203
  `## Regressions`,
192
204
  ``,
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/reporters/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/reporters/markdown.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAErB,SAAS,KAAK,CAAC,OAAmB;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,cAAc,CAAC,QAA2B;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,OAAO;YACL,iBAAiB,KAAK,CAAC,QAAQ,IAAI;YACnC,qBAAqB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI;YACjD,oBAAoB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;YAC/C,gCAAgC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI;YACrE,qBAAqB,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI;YAC7C,oBAAoB,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YACpD,oBAAoB,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;SACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAqB;IAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG;QACpB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QACjD,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KAChD,CAAC;IACF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAErE,OAAO;QACL,gBAAgB;QAChB,EAAE;QACF,uBAAuB,MAAM,CAAC,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE;QAC5D,gBAAgB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5C,8BAA8B,MAAM,CAAC,iBAAiB,EAAE;QACxD,qBAAqB,iBAAiB,CAAC,aAAa,CAAC,EAAE;QACvD,8BAA8B,iBAAiB,CAAC,aAAa,CAAC,EAAE;QAChE,qBAAqB,iBAAiB,CAAC,aAAa,CAAC,EAAE;QACvD,yBAAyB,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;QAC/D,0BAA0B,oBAAoB,CAAC,QAAQ,CAAC,EAAE;QAC1D,qBAAqB,MAAM,CAAC,KAAK,IAAI;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAqB;IACnD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,sBAAsB;QACtB,EAAE;QACF,SAAS;QACT,QAAQ,CAAC,UAAU;QACnB,KAAK;QACL,EAAE;KACH,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAkB;IAC5C,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE;QACnC,EAAE;QACF,YAAY,KAAK,CAAC,OAAO,EAAE;QAC3B,EAAE;QACF,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9B,EAAE;KACH,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAqB;IAC9C,MAAM,aAAa,GAAG,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,OAAO;QACL,8BAA8B;QAC9B,EAAE;QACF,gBAAgB,QAAQ,CAAC,SAAS,EAAE;QACpC,EAAE;QACF,oCAAoC;QACpC,EAAE;QACF,eAAe,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI;QAC3C,gBAAgB,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI;QAC3C,gBAAgB,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;QAC7E,eAAe,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,IAAI;QACjG,iBAAiB,QAAQ,CAAC,WAAW,CAAC,QAAQ,IAAI;QAClD,aAAa,QAAQ,CAAC,WAAW,CAAC,WAAW,IAAI;QACjD,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YACzB,mBAAmB,QAAQ,CAAC,WAAW,CAAC,OAAO,SAAS,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK;YACvF,EAAE;YACF,KAAK,CAAC;gBACJ,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC;gBAChC,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;aAC1G,CAAC;YACF,EAAE;SACH,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,CAAC;YACJ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC;YAC/E;gBACE,QAAQ,CAAC,IAAI;gBACb,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;aACjC;SACF,CAAC;QACF,EAAE;QACF,kBAAkB,CAAC,QAAQ,CAAC;QAC5B,EAAE;QACF,+BAA+B;QAC/B,EAAE;QACF,2GAA2G;QAC3G,EAAE;QACF,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QACnC,iCAAiC;QACjC,EAAE;QACF,KAAK,CAAC;YACJ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,CAAC;YACxD,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC9B,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxB,KAAK,CAAC,EAAE;gBACR,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,KAAK,CAAC,OAAO;aACd,CAAC;SACH,CAAC;QACF,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,GAAG,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC5C,0BAA0B;QAC1B,EAAE;QACF,SAAS;QACT,0DAA0D;QAC1D,2EAA2E;QAC3E,KAAK;QACL,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,sBAAsB,QAAQ,CAAC,YAAY,IAAI;QAC/C,uBAAuB,QAAQ,CAAC,aAAa,IAAI;QACjD,eAAe,QAAQ,CAAC,KAAK,IAAI;QACjC,aAAa,QAAQ,CAAC,IAAI,IAAI;KAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAsB;IAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,cAAc,GAClB,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACnF,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,YAAY,GAChB,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClF,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,iBAAiB,GACrB,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC7B,CAAC,CAAC,+BAA+B,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC5F,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,sHAAsH;YACxH,CAAC,CAAC,8GAA8G,CAAC;IACvH,OAAO;QACL,+BAA+B;QAC/B,EAAE;QACF,gBAAgB,QAAQ,CAAC,SAAS,EAAE;QACpC,EAAE;QACF,oCAAoC;QACpC,EAAE;QACF,iBAAiB,QAAQ,CAAC,SAAS,IAAI;QACvC,iBAAiB,QAAQ,CAAC,SAAS,IAAI;QACvC,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,qBAAqB,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,MAAM,EAAE;QACzD,EAAE;QACF,cAAc,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC1C,EAAE;QACF,KAAK,CAAC;YACJ,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC;YACtE;gBACE,QAAQ,CAAC,IAAI;gBACb,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;aACjC;SACF,CAAC;QACF,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,8BAA8B,MAAM,CAAC,iBAAiB,EAAE;QACxD,kBAAkB,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;QACtF,iBAAiB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;QACpF,0BAA0B,iBAAiB,EAAE;QAC7C,qBAAqB,MAAM,CAAC,KAAK,IAAI;QACrC,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,cAAc;QACd,EAAE;QACF,eAAe;QACf,EAAE;QACF,YAAY;QACZ,EAAE;QACF,iCAAiC;QACjC,EAAE;QACF,KAAK,CAAC;YACJ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC;YAC5C,GAAG;gBACD,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,CAAU,CAAC;gBACtE,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,CAAU,CAAC;gBACnE,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,CAAU,CAAC;gBACnE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,CAAU,CAAC;gBAC3D,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,CAAU,CAAC;aAChE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBACzB,MAAM;gBACN,KAAK,CAAC,EAAE;gBACR,KAAK,CAAC,UAAU,IAAI,KAAK;gBACzB,KAAK,CAAC,QAAQ,IAAI,KAAK;gBACvB,KAAK,CAAC,OAAO;aACd,CAAC;SACH,CAAC;QACF,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,0GAA0G;QAC1G,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,SAAS;QACT,qGAAqG;QACrG,KAAK;QACL,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,sBAAsB,QAAQ,CAAC,YAAY,IAAI;QAC/C,uBAAuB,QAAQ,CAAC,aAAa,IAAI;QACjD,aAAa,QAAQ,CAAC,IAAI,IAAI;KAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoC;IACjE,OAAO,QAAQ,CAAC,YAAY,KAAK,KAAK;QACpC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAC7B,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { findChecksByStatus } from "./common.js";
1
+ import { findChecksByStatus, summarizeDiffSafety, summarizeRunSafety } from "./common.js";
2
2
  // ── Constants ───────────────────────────────────────────────────────────────
3
3
  const MAX_ITEMS_PER_SECTION = 5;
4
4
  const REPO_URL = "https://github.com/KryptosAI/mcp-observatory";
@@ -66,6 +66,7 @@ export function prCommentFooter() {
66
66
  // ── Run artifact rendering ──────────────────────────────────────────────────
67
67
  function renderRunComment(artifact, trend) {
68
68
  const sections = [];
69
+ const safety = summarizeRunSafety(artifact);
69
70
  const security = extractSecurityFindings(artifact.checks);
70
71
  const quality = extractQualityFindings(artifact.checks);
71
72
  const failingChecks = findChecksByStatus(artifact.checks, "fail")
@@ -129,14 +130,23 @@ function renderRunComment(artifact, trend) {
129
130
  `${caps.resources} resources`,
130
131
  ].join(" · ");
131
132
  sections.push("");
133
+ sections.push(`### Safety verdict`);
134
+ sections.push(`> **${safety.verdict}** — ${safety.reason}`);
135
+ sections.push(`> Top risks: ${safety.topRisks.join("; ")}`);
136
+ sections.push("");
132
137
  sections.push(`### 📊 Summary`);
133
138
  sections.push(`> ${statsLine}`);
139
+ sections.push("");
140
+ sections.push(`### Next action`);
141
+ sections.push(`> ${safety.nextActions[0]}`);
142
+ sections.push(`> ${safety.ciCta}`);
134
143
  sections.push(prCommentFooter());
135
144
  return sections.join("\n");
136
145
  }
137
146
  // ── Diff artifact rendering ─────────────────────────────────────────────────
138
147
  function renderDiffComment(artifact) {
139
148
  const sections = [];
149
+ const safety = summarizeDiffSafety(artifact);
140
150
  const { regressions, recoveries, schemaDrift } = artifact;
141
151
  const driftCount = schemaDrift?.length ?? 0;
142
152
  const totalIssues = regressions.length + driftCount;
@@ -188,8 +198,15 @@ function renderDiffComment(artifact) {
188
198
  `Unchanged: ${summary.unchanged}`,
189
199
  ].join(" · ");
190
200
  sections.push("");
201
+ sections.push(`### Safety verdict`);
202
+ sections.push(`> **${safety.verdict}** — ${safety.reason}`);
203
+ sections.push(`> ${safety.regressionSummary}`);
204
+ sections.push("");
191
205
  sections.push(`### 📊 Summary`);
192
206
  sections.push(`> ${statsLine}`);
207
+ sections.push("");
208
+ sections.push(`### Next action`);
209
+ sections.push(`> ${safety.nextActions[0]}`);
193
210
  sections.push(prCommentFooter());
194
211
  return sections.join("\n");
195
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pr-comment.js","sourceRoot":"","sources":["../../../src/reporters/pr-comment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr-comment.js","sourceRoot":"","sources":["../../../src/reporters/pr-comment.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { describeCheckList, findChecksByStatus, recommendRunNextStep, sortChecksByActionability } from "./common.js";
1
+ import { describeCheckList, findChecksByStatus, recommendRunNextStep, summarizeDiffSafety, summarizeRunSafety, sortChecksByActionability } from "./common.js";
2
2
  // ── Watch-specific compact renderers ────────────────────────────────────────
3
3
  function watchStatusIcon(status) {
4
4
  switch (status) {
@@ -135,6 +135,7 @@ function formatEntry(entry) {
135
135
  }
136
136
  function renderRunTerminal(artifact) {
137
137
  const orderedChecks = sortChecksByActionability(artifact.checks);
138
+ const safety = summarizeRunSafety(artifact);
138
139
  const failingChecks = findChecksByStatus(artifact.checks, "fail");
139
140
  const partialChecks = [
140
141
  ...findChecksByStatus(artifact.checks, "partial"),
@@ -144,6 +145,7 @@ function renderRunTerminal(artifact) {
144
145
  const skippedChecks = findChecksByStatus(artifact.checks, "skipped");
145
146
  const lines = [
146
147
  co(ANSI.bold, `MCP Observatory Run`),
148
+ `Safety Verdict: ${co(safety.verdict === "Ready" ? ANSI.green : safety.verdict === "Needs review" ? ANSI.yellow : ANSI.red, safety.verdict)} — ${safety.reason}`,
147
149
  `Run ID: ${artifact.runId}`,
148
150
  `Gate: ${co(ANSI.bold, colorGate(artifact.gate))}`,
149
151
  `Target: ${artifact.target.targetId} (${artifact.target.adapter})`,
@@ -151,11 +153,13 @@ function renderRunTerminal(artifact) {
151
153
  `Counts: pass=${artifact.summary.pass}, fail=${artifact.summary.fail}, partial=${artifact.summary.partial}, unsupported=${artifact.summary.unsupported}, flaky=${artifact.summary.flaky}, skipped=${artifact.summary.skipped}`
152
154
  ];
153
155
  lines.push(`Actionable now:`);
156
+ lines.push(`- top risks: ${safety.topRisks.join("; ")}`);
154
157
  lines.push(`- failing checks: ${describeCheckList(failingChecks)}`);
155
158
  lines.push(`- partial checks: ${describeCheckList(partialChecks)}`);
156
159
  lines.push(`- skipped checks: ${describeCheckList(skippedChecks)}`);
157
160
  lines.push(`- unsupported checks: ${describeCheckList(unsupportedChecks)}`);
158
161
  lines.push(`Next step: ${recommendRunNextStep(artifact)}`);
162
+ lines.push(`CI: ${safety.ciCta}`);
159
163
  if (artifact.fatalError !== undefined) {
160
164
  lines.push("Failure diagnosis:");
161
165
  lines.push(...artifact.fatalError.split("\n"));
@@ -189,13 +193,17 @@ function renderRunTerminal(artifact) {
189
193
  return lines.join("\n");
190
194
  }
191
195
  function renderDiffTerminal(artifact) {
196
+ const safety = summarizeDiffSafety(artifact);
192
197
  const lines = [
193
198
  co(ANSI.bold, `MCP Observatory Diff`),
199
+ `Safety Verdict: ${co(safety.verdict === "Ready" ? ANSI.green : safety.verdict === "Needs review" ? ANSI.yellow : ANSI.red, safety.verdict)} — ${safety.reason}`,
194
200
  `Base: ${artifact.baseRunId}`,
195
201
  `Head: ${artifact.headRunId}`,
196
202
  `Gate: ${co(ANSI.bold, colorGate(artifact.gate))}`,
197
203
  `Counts: regressions=${artifact.summary.regressions}, recoveries=${artifact.summary.recoveries}, unchanged=${artifact.summary.unchanged}, added=${artifact.summary.added}, removed=${artifact.summary.removed}`
198
204
  ];
205
+ lines.push(`Top risks: ${safety.topRisks.join("; ")}`);
206
+ lines.push(`Next step: ${safety.nextActions[0]}`);
199
207
  if (artifact.regressions.length > 0) {
200
208
  lines.push(co(ANSI.red, "Regressions:"));
201
209
  lines.push(...artifact.regressions.map((e) => co(ANSI.red, formatEntry(e))));
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/reporters/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/reporters/terminal.ts"],"names":[],"mappings":"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"}
@@ -35,31 +35,31 @@ Skip:
35
35
 
36
36
  | Priority | Repo | Package/Command | Category | Stars/Downloads/Listing Signal | Activity Signal | Risk Notes | Status | PR URL | Accepted/Badge/Proof |
37
37
  | ---: | --- | --- | --- | --- | --- | --- | --- | --- | --- |
38
- | 1 | `owner/repo` | `npx -y package` | Security | | | | researched | | |
39
- | 2 | `owner/repo` | `npx -y package` | Developer Tools | | | | researched | | |
40
- | 3 | `owner/repo` | `uvx package` | Browser Automation | | | | researched | | |
41
- | 4 | `owner/repo` | `docker run image` | Database | | | | researched | | |
42
- | 5 | `owner/repo` | `npx -y package` | Cloud | | | | researched | | |
43
- | 6 | `owner/repo` | `npx -y package` | SaaS | | | | researched | | |
44
- | 7 | `owner/repo` | `uvx package` | Finance | | | | researched | | |
45
- | 8 | `owner/repo` | `npx -y package` | Developer Tools | | | | researched | | |
46
- | 9 | `owner/repo` | `npx -y package` | Security | | | | researched | | |
47
- | 10 | `owner/repo` | `docker run image` | Infrastructure | | | | researched | | |
48
- | 11 | `owner/repo` | `npx -y package` | Developer Tools | | | | researched | | |
49
- | 12 | `owner/repo` | `uvx package` | Data | | | | researched | | |
50
- | 13 | `owner/repo` | `npx -y package` | Search | | | | researched | | |
51
- | 14 | `owner/repo` | `npx -y package` | Filesystem | | | | researched | | |
52
- | 15 | `owner/repo` | `docker run image` | Browser Automation | | | | researched | | |
53
- | 16 | `owner/repo` | `npx -y package` | API | | | | researched | | |
54
- | 17 | `owner/repo` | `uvx package` | Security | | | | researched | | |
55
- | 18 | `owner/repo` | `npx -y package` | Database | | | | researched | | |
56
- | 19 | `owner/repo` | `npx -y package` | Developer Tools | | | | researched | | |
57
- | 20 | `owner/repo` | `docker run image` | Cloud | | | | researched | | |
58
- | 21 | `owner/repo` | `npx -y package` | SaaS | | | | researched | | |
59
- | 22 | `owner/repo` | `uvx package` | Data | | | | researched | | |
60
- | 23 | `owner/repo` | `npx -y package` | Security | | | | researched | | |
61
- | 24 | `owner/repo` | `npx -y package` | Developer Tools | | | | researched | | |
62
- | 25 | `owner/repo` | `docker run image` | Infrastructure | | | | researched | | |
38
+ | 1 | `modelcontextprotocol/servers` | `npx -y @modelcontextprotocol/server-everything` | Reference | Official/reference signal | verify active package path | Safe reference target; PR may need package-specific scope | researched | | |
39
+ | 2 | `modelcontextprotocol/servers` | `npx -y @modelcontextprotocol/server-filesystem .` | Filesystem | Official/reference signal | verify package location | Needs harmless temp directory target | researched | | |
40
+ | 3 | `upstash/context7` | `npx -y @upstash/context7-mcp` | Developer Tools | Directory/listing signal | verify current package name | Network behavior should be reviewed before fail gate | researched | | |
41
+ | 4 | `executeautomation/mcp-playwright` | `npx -y @executeautomation/playwright-mcp-server` | Browser Automation | High-interest browser MCP category | verify current package name | Browser install may be slow; start workflow-only | researched | | |
42
+ | 5 | `browserbase/mcp-server-browserbase` | `npx -y @browserbasehq/mcp-server-browserbase` | Browser Automation | Hosted browser MCP category | verify auth-free startup | May require API key; issue-only if startup requires credentials | researched | | |
43
+ | 6 | `smithery-ai/server-sequential-thinking` | `npx -y @smithery-ai/server-sequential-thinking` | Developer Tools | MCP directory ecosystem | verify package/repo naming | Good low-risk simple server if public package starts cleanly | researched | | |
44
+ | 7 | `kazuph/mcp-taskmanager` | `npx -y mcp-taskmanager` | Developer Tools | Task/project MCP category | verify package | Confirm no destructive default actions | researched | | |
45
+ | 8 | `cyanheads/filesystem-mcp-server` | `npx -y filesystem-mcp-server .` | Filesystem | Popular category | verify command | Needs harmless temp directory target | researched | | |
46
+ | 9 | `redis/mcp-redis` | `uvx mcp-redis` | Database | Enterprise database category | verify auth-free startup | Database target may require service; issue-only if credentials needed | researched | | |
47
+ | 10 | `mongodb-js/mongodb-mcp-server` | `npx -y mongodb-mcp-server` | Database | Enterprise database category | verify auth-free startup | Likely needs connection string; issue-only first | researched | | |
48
+ | 11 | `supabase-community/supabase-mcp` | `npx -y supabase-mcp` | Database | Enterprise/SaaS category | verify current package | Likely requires token; issue-only first | researched | | |
49
+ | 12 | `cloudflare/mcp-server-cloudflare` | `npx -y @cloudflare/mcp-server-cloudflare` | Cloud | Enterprise cloud category | verify package | Likely requires auth; issue-only first | researched | | |
50
+ | 13 | `stripe/agent-toolkit` | `npx -y @stripe/agent-toolkit` | Payments | Enterprise payments category | verify MCP mode | Likely requires API key; issue-only first | researched | | |
51
+ | 14 | `github/github-mcp-server` | `docker run ghcr.io/github/github-mcp-server` | Developer Tools | Major platform category | verify image/startup | Auth required for useful checks; issue-only first | researched | | |
52
+ | 15 | `microsoft/playwright-mcp` | `npx -y @playwright/mcp` | Browser Automation | Major platform category | verify package | Browser dependencies may be slow; workflow-only first | researched | | |
53
+ | 16 | `jetbrains/mcpProxy` | `npx -y @jetbrains/mcp-proxy` | Developer Tools | IDE platform category | verify package | May depend on IDE process; issue-only first | researched | | |
54
+ | 17 | `pydantic/pydantic-ai` | `uvx pydantic-ai-mcp` | AI Framework | Framework ecosystem | verify MCP server package | May be docs/example rather than standalone server | researched | | |
55
+ | 18 | `langchain-ai/langchain-mcp-adapters` | `npx -y <example-server>` | AI Framework | Framework ecosystem | choose example server | Adapter repo may not expose standalone server | researched | | |
56
+ | 19 | `apify/actors-mcp-server` | `npx -y @apify/actors-mcp-server` | SaaS/API | Automation platform category | verify auth-free startup | Likely requires token; issue-only first | researched | | |
57
+ | 20 | `notionhq/notion-mcp-server` | `npx -y @notionhq/notion-mcp-server` | SaaS/API | Major SaaS category | verify package | Likely requires token; issue-only first | researched | | |
58
+ | 21 | `linear/linear-mcp` | `npx -y @linear/mcp-server` | SaaS/API | Developer SaaS category | verify package | Likely requires token; issue-only first | researched | | |
59
+ | 22 | `sentry/sentry-mcp` | `npx -y @sentry/mcp-server` | Observability | Developer SaaS category | verify package | Likely requires token; issue-only first | researched | | |
60
+ | 23 | `elastic/mcp-server-elasticsearch` | `npx -y @elastic/mcp-server-elasticsearch` | Search | Enterprise search category | verify package | Likely requires service; issue-only first | researched | | |
61
+ | 24 | `qdrant/mcp-server-qdrant` | `uvx mcp-server-qdrant` | Vector Database | AI infra category | verify package | May require service URL; issue-only first | researched | | |
62
+ | 25 | `weaviate/mcp-server-weaviate` | `uvx mcp-server-weaviate` | Vector Database | AI infra category | verify package | May require service URL; issue-only first | researched | | |
63
63
  | 26 | `owner/repo` | `npx -y package` | Browser Automation | | | | researched | | |
64
64
  | 27 | `owner/repo` | `uvx package` | API | | | | researched | | |
65
65
  | 28 | `owner/repo` | `npx -y package` | Database | | | | researched | | |
@@ -99,12 +99,16 @@ Statuses:
99
99
 
100
100
  ## PR Checklist
101
101
 
102
+ - Generate the local kit first:
103
+ `npx @kryptosai/mcp-observatory init-ci --all --command "<safe startup command>"`
102
104
  - Add `.github/workflows/mcp-observatory.yml`
105
+ - Add `mcp-observatory.target.json` when the startup command needs args, cwd, or env placeholders
103
106
  - Use `deep: true` and `security: true`
104
107
  - Keep `fail-on-regression: true` unless the repo is noisy
105
108
  - Add README badge only when it fits the repo style
106
- - Include the maintainer PR body from `certification-distribution.md`
109
+ - Include the generated maintainer PR body from `docs/mcp-observatory-pr-body.md`
107
110
  - Do not include raw telemetry, private evidence, or sales pricing
111
+ - Prefer issue-only fallback when the server requires credentials, paid services, destructive tools, or unclear startup
108
112
 
109
113
  ## PR Templates
110
114
 
@@ -133,7 +137,7 @@ The workflow runs on PRs and pushes to `main`. The badge links back to MCP Obser
133
137
 
134
138
  ### Issue-Only Fallback
135
139
 
136
- ```md
140
+ ~~~md
137
141
  I tried preparing a small MCP Observatory CI check for this server, but did not want to open a PR without confirming the safest startup command.
138
142
 
139
143
  Would you accept a workflow that runs:
@@ -143,8 +147,18 @@ npx @kryptosai/mcp-observatory test <server command> --security --deep
143
147
  ```
144
148
 
145
149
  The goal is to give users a visible compatibility/security signal and catch schema drift before releases.
150
+ ~~~
151
+
152
+ ## Generated PR Body Printer
153
+
154
+ After running `init-ci --all`, print the generated maintainer copy with:
155
+
156
+ ```bash
157
+ npm run certification:pr-body -- docs/mcp-observatory-pr-body.md
146
158
  ```
147
159
 
160
+ For a repo-specific body, run the command from the target branch after generating the local adoption kit.
161
+
148
162
  ## Proof Capture
149
163
 
150
164
  For accepted PRs, record:
@@ -35,13 +35,17 @@ npx @kryptosai/mcp-observatory badge npx -y <server-package> --output docs/mcp-h
35
35
  Fast path:
36
36
 
37
37
  ```bash
38
- npx @kryptosai/mcp-observatory init-ci --command "npx -y <server-package>" --badge
38
+ npx @kryptosai/mcp-observatory init-ci --all --command "npx -y <server-package>"
39
39
  ```
40
40
 
41
41
  That creates:
42
42
 
43
43
  - `.github/workflows/mcp-observatory.yml`
44
44
  - `docs/mcp-observatory-badge.md`
45
+ - `mcp-observatory.target.json`
46
+ - `docs/mcp-observatory-pr-body.md`
47
+ - `docs/mcp-observatory-issue.md`
48
+ - `docs/mcp-observatory-score-badge.md`
45
49
 
46
50
  Manual template:
47
51
 
@@ -43,7 +43,7 @@ These servers use standard stdio transport and should work with MCP Observatory.
43
43
  | HubSpot | [`@hubspot/mcp-server`](https://www.npmjs.com/package/@hubspot/mcp-server) | API key | `npx -y @hubspot/mcp-server` |
44
44
  | LaunchDarkly | [`@launchdarkly/mcp-server`](https://www.npmjs.com/package/@launchdarkly/mcp-server) | API key | `npx -y @launchdarkly/mcp-server` |
45
45
  | Notion | [`@notionhq/notion-mcp-server`](https://www.npmjs.com/package/@notionhq/notion-mcp-server) | `OPENAPI_MCP_HEADERS` | `npx -y @notionhq/notion-mcp-server` |
46
- | Stripe | [`@stripe/mcp`](https://www.npmjs.com/package/@stripe/mcp) | `--api-key` arg | `npx -y @stripe/mcp --api-key sk-...` |
46
+ | Stripe | [`@stripe/mcp`](https://www.npmjs.com/package/@stripe/mcp) | `--api-key` arg | `npx -y @stripe/mcp --api-key ${STRIPE_API_KEY}` |
47
47
 
48
48
  Target config example with env vars:
49
49
 
@@ -116,7 +116,7 @@ Many MCP servers ship Docker images. These work with the `local-process` adapter
116
116
  "adapter": "local-process",
117
117
  "command": "docker",
118
118
  "args": ["run", "-i", "--rm",
119
- "-e", "GITHUB_PERSONAL_ACCESS_TOKEN=ghp_...",
119
+ "-e", "GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN}",
120
120
  "ghcr.io/github/github-mcp-server"],
121
121
  "timeoutMs": 30000
122
122
  }
@@ -23,7 +23,7 @@ Free for local OSS use. Paid pilots are available for hosted reporting, private
23
23
  Add MCP CI in one command:
24
24
 
25
25
  ```bash
26
- npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server" --badge
26
+ npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
27
27
  ```
28
28
 
29
29
  ## Tags
@@ -54,7 +54,7 @@ From public sample artifacts and Observatory check categories, the most importan
54
54
  ## How Maintainers Add The Check
55
55
 
56
56
  ```bash
57
- npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server" --badge
57
+ npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
58
58
  ```
59
59
 
60
60
  That creates a GitHub Action and a README badge snippet. The action can comment on PRs and fail when MCP compatibility or security checks regress.
@@ -79,7 +79,7 @@ MCP servers are becoming production dependencies.
79
79
  I built MCP Observatory so MCP maintainers can add CI, security checks, schema drift detection, PR reports, and trust badges in one command:
80
80
 
81
81
  ```bash
82
- npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server" --badge
82
+ npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
83
83
  ```
84
84
 
85
85
  Free for local OSS use. Paid pilots are available for hosted reporting, private repo CI, certification, support, and fleet visibility.
@@ -23,6 +23,10 @@ Confirm:
23
23
  - Security findings appear in artifact evidence as structured `findings`.
24
24
  - Hosted upload is available through `mcp-observatory cloud upload <artifact>` when `MCP_OBSERVATORY_CLOUD_TOKEN` is set.
25
25
 
26
+ Known audit note:
27
+
28
+ - `npm audit` may report `undici <=6.26.0` through the `npm@11.17.0` package bundled under `@semantic-release/npm`. `npm audit fix` updates the fixable `@actions/http-client` path, but the remaining `undici` copy is bundled inside npm release tooling and is not part of MCP Observatory runtime dependencies or the packed npm artifact. Recheck after npm publishes a newer package.
29
+
26
30
  ## Public Distribution
27
31
 
28
32
  - Merge the health/commercialization PR.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kryptosai/mcp-observatory",
3
- "version": "0.21.0",
3
+ "version": "0.22.0",
4
4
  "description": "Test, secure, and monitor MCP servers before agents depend on them.",
5
5
  "mcpName": "io.github.KryptosAI/mcp-observatory",
6
6
  "license": "MIT",
@@ -47,13 +47,15 @@
47
47
  "prepack": "npm run build",
48
48
  "proof:refresh": "tsx scripts/refresh-proof-artifacts.ts",
49
49
  "release:prep": "node scripts/release.mjs",
50
+ "certification:pr-body": "tsx scripts/print-certification-pr-body.ts",
50
51
  "typecheck": "tsc --noEmit -p tsconfig.json",
51
52
  "test": "vitest run",
52
53
  "validate:artifacts": "tsx scripts/validate-artifacts.ts",
53
54
  "verify:packed-install": "node scripts/verify-packed-install.mjs",
54
55
  "smoke": "npm run cli -- run --target tests/fixtures/sample-target-config.json && npm run cli -- diff tests/fixtures/sample-run-a.json tests/fixtures/sample-run-b.json",
55
56
  "telemetry:export": "tsx scripts/export-telemetry-d1.ts",
56
- "telemetry:intelligence": "tsx scripts/telemetry-company-intelligence.ts --input telemetry-exports/events-flat-full.json --out-dir reports"
57
+ "telemetry:intelligence": "tsx scripts/telemetry-company-intelligence.ts --input telemetry-exports/events-flat-full.json --out-dir reports",
58
+ "telemetry:external": "tsx scripts/telemetry-company-intelligence.ts --input telemetry-exports/events-flat-full.json --out-dir reports"
57
59
  },
58
60
  "keywords": [
59
61
  "mcp",