secufusion-mcp 2.2.9 → 2.3.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "secufusion-mcp",
3
3
  "description": "SecuFusion MSSP platform dev agent — project-level spec driven, tenant-isolation enforced, zero-trust guardrails. 5 Core Slash Commands: /sfn-init (dynamic DNA + architecture diagram + watcher), /sfn-plan (philosophy check + intent WHY + classify + plan), /sfn-code (spec-driven implementation), /sfn-review (zero-tolerance 3-tier PR gate), /sfn-explore (on-demand service graph or blast-radius analysis).",
4
- "version": "2.2.9",
4
+ "version": "2.3.0",
5
5
  "author": {
6
6
  "name": "Motivity Labs"
7
7
  },
@@ -2033,15 +2033,40 @@ server.tool("classify_task", "MANDATORY FIRST STEP for every task without except
2033
2033
  }
2034
2034
  // ── Step 4: Signal scoring ────────────────────────────────────────────
2035
2035
  const corpus = (title + " " + description).toLowerCase();
2036
- const BACKEND_SIGNALS = [
2037
- "api", "endpoint", "service", "repository", "database", "db", "query",
2036
+ // Structural backend terms — always a reliable signal of backend work regardless of task type
2037
+ const BACKEND_STRUCTURAL = [
2038
2038
  "migration", "kafka", "consumer", "producer", "topic",
2039
- "backend", "server", "rest", "json response", "payload",
2039
+ "database", "db", "repository", "backend",
2040
+ ];
2041
+ // Contextual backend terms — these appear naturally when *describing* a bug symptom
2042
+ // ("the events API returns X", "service returns wrong value") without implying
2043
+ // backend work is needed. Counted for non-bugs only, OR for bugs that also contain
2044
+ // explicit backend-change language (see BACKEND_CHANGE_PHRASES below).
2045
+ const BACKEND_CONTEXTUAL = [
2046
+ "api", "endpoint", "service", "server", "rest",
2047
+ "json response", "payload", "query", "schema",
2048
+ ];
2049
+ // Explicit backend-change phrases: these restore contextual terms even for bugs,
2050
+ // because they signal genuine backend scope rather than symptom description.
2051
+ const BACKEND_CHANGE_PHRASES = [
2052
+ "change the api", "update the api", "fix the api", "api contract",
2053
+ "update endpoint", "change endpoint", "fix endpoint", "new endpoint",
2054
+ "modify schema", "update schema", "alter table", "add column",
2055
+ "api change", "breaking change", "response contract", "request body",
2056
+ "fix the service", "update the service",
2057
+ ];
2058
+ const hasExplicitBackendChange = BACKEND_CHANGE_PHRASES.some(p => corpus.includes(p));
2059
+ const isBugOrHotfix = task_type === "bug" || task_type === "hotfix";
2060
+ const BACKEND_SIGNALS = [
2061
+ ...BACKEND_STRUCTURAL,
2062
+ // For bugs: contextual terms only re-admitted when description explicitly calls for backend change
2063
+ ...(isBugOrHotfix && !hasExplicitBackendChange ? [] : BACKEND_CONTEXTUAL),
2040
2064
  ...learnedSignals.backend, ...learnedSignals.phrase, ...learnedSignals.bug_category
2041
2065
  ];
2042
2066
  const FRONTEND_SIGNALS = [
2043
2067
  "ui", "frontend", "react", "component", "page", "screen", "button",
2044
2068
  "modal", "layout", "style", "css", "web ui", "browser ui", "render",
2069
+ "timestamp", "date format", "timezone", "display", "label", "icon", "text",
2045
2070
  ...learnedSignals.frontend
2046
2071
  ];
2047
2072
  const EXTENSION_SIGNALS = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "secufusion-mcp",
3
- "version": "2.2.9",
3
+ "version": "2.3.0",
4
4
  "type": "module",
5
5
  "description": "Project-level spec driven AI workflow tooling for SecuFusion, MCP server - developer workflow tooling with guardrails",
6
6
  "main": "mcp/dist/server.js",