@skeletiq/mcp 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +14 -4
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import { serveStdio } from "@modelcontextprotocol/server/stdio";
5
5
 
6
6
  // src/config.ts
7
7
  var SERVER_NAME = "skeletiq";
8
- var SERVER_VERSION = "0.6.0";
8
+ var SERVER_VERSION = "0.7.0";
9
9
  var AGENT_SCHEMA_VERSION = 2;
10
10
  function schemaNote(serverVersion) {
11
11
  if (serverVersion === void 0 || serverVersion <= AGENT_SCHEMA_VERSION) return null;
@@ -625,6 +625,11 @@ var CritiqueFindingSchema = z.looseObject({
625
625
  remediation: z.string().optional(),
626
626
  /** Reported in full and never charged against the score — advice, not a problem to fix. */
627
627
  advisory_only: z.boolean().optional(),
628
+ /**
629
+ * Whether this finding can hold a design back from Ready. Absent or null means not stated, and
630
+ * the standing Ready rule applies to it.
631
+ */
632
+ holds_ready: z.boolean().nullable().optional(),
628
633
  /**
629
634
  * The problem this finding is about. Stable across rewording, and shared with the advisor
630
635
  * suggestion and decision record raised by the same problem — the key a dismissal is recorded
@@ -1173,6 +1178,8 @@ var output = z3.object({
1173
1178
  partial: refs,
1174
1179
  elsewhere: refs,
1175
1180
  unknown_ids: z3.array(z3.object({ id: z3.string(), suggestions: refs })),
1181
+ extra_components: z3.array(z3.looseObject({ name: z3.string() })),
1182
+ extra_connections: z3.array(z3.looseObject({ source: z3.string(), target: z3.string() })),
1176
1183
  counts: z3.record(z3.string(), z3.number()),
1177
1184
  evidence_checked: z3.boolean(),
1178
1185
  unverified: refs,
@@ -1236,6 +1243,8 @@ function registerCheckDrift(server, client, resolver) {
1236
1243
  id: entry.id,
1237
1244
  suggestions: entry.suggestions ?? []
1238
1245
  })),
1246
+ extra_components: report.extra_components,
1247
+ extra_connections: report.extra_connections,
1239
1248
  counts: report.counts,
1240
1249
  evidence_checked: report.evidence_checked === true,
1241
1250
  unverified: report.unverified ?? [],
@@ -1451,6 +1460,7 @@ var input3 = z5.object({
1451
1460
  });
1452
1461
  var SCORE_BASIS_FINDINGS_ONLY = "findings_only";
1453
1462
  var SCORE_BASIS_NOTE = "This score is findings only. It is not held to a traceability ceiling, because this tool is given a design and no requirement set to trace it against. The app can show a lower number for the same stored design for exactly that reason.";
1463
+ var COMPLIANCE_INDICATIVE_NOTE = "Indicative automated check based on architecture structure \u2014 not a certified compliance audit or legal advice.";
1454
1464
  var output3 = z5.object({
1455
1465
  architecture_score: z5.number(),
1456
1466
  score_basis: z5.literal(SCORE_BASIS_FINDINGS_ONLY).describe(SCORE_BASIS_NOTE),
@@ -1533,7 +1543,7 @@ function registerCritique(server, client) {
1533
1543
  // An agent that reads only the text has to see this too. Without it, "the app
1534
1544
  // said 59 and the tool said 74" is an unexplained contradiction it will either
1535
1545
  // resolve wrongly or report as a bug.
1536
- complianceAssessed ? `Compliance checked against ${(critique.frameworks_checked ?? []).join(", ")} \u2014 the frameworks systems in this domain are usually held to, inferred from the domain you sent rather than from a regime anyone named. Confirm them.` : critique.compliance_note ?? "Compliance was not assessed.",
1546
+ complianceAssessed ? `Compliance checked against ${(critique.frameworks_checked ?? []).join(", ")} \u2014 the frameworks systems in this domain are usually held to, inferred from the domain you sent rather than from a regime anyone named. Confirm them. ` + COMPLIANCE_INDICATIVE_NOTE : `${critique.compliance_note ?? "Compliance was not assessed."} ${COMPLIANCE_INDICATIVE_NOTE}`,
1537
1547
  // Only when the exposure used is not the one the agent chose. When a
1538
1548
  // non-public exposure *was* applied the server returns an
1539
1549
  // `exposure_scoped_checks` finding naming exactly which checks it took off
@@ -1656,13 +1666,13 @@ function frameDetail(frame) {
1656
1666
  var constraintsInput = z6.strictObject({
1657
1667
  budget: z6.enum(["low", "medium", "high", "unlimited"]).optional(),
1658
1668
  max_latency_ms: z6.number().int().positive().optional(),
1659
- // Free strings, not an enum, and the description has to say why. SkeletIQ assesses five
1669
+ // Free strings, not an enum, and the description has to say why. SkeletIQ assesses six
1660
1670
  // frameworks; naming anything else is still worth doing, because an unassessed regime is
1661
1671
  // recorded and reaches the design brief as a requirement the agent still has to satisfy.
1662
1672
  // The old text read 'e.g. HIPAA, SOC2, PCI-DSS, GDPR' — it omitted SOX, which is the one
1663
1673
  // an agent is least likely to guess, and said nothing about what happens to the rest.
1664
1674
  compliance: z6.array(z6.string()).optional().describe(
1665
- "Regimes the design must satisfy. SOC2, HIPAA, PCI-DSS, GDPR and SOX are checked against requirement catalogues; any other regime is recorded and carried into the design brief as a requirement to satisfy, rather than checked."
1675
+ "Regimes the design must satisfy. SOC2, HIPAA, PCI-DSS, GDPR, SOX and DPDP (India) are checked against requirement catalogues; any other regime is recorded and carried into the design brief as a requirement to satisfy, rather than checked."
1666
1676
  ),
1667
1677
  preferred_cloud: z6.enum(["aws", "gcp", "azure", "any"]).optional(),
1668
1678
  preferred_technologies: z6.array(z6.string()).optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skeletiq/mcp",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Design in SkeletIQ, build with your coding agent. MCP server for the SkeletIQ architecture platform.",
5
5
  "license": "MIT",
6
6
  "author": "Sabhahith Works Private Limited",