secufusion-mcp 1.0.42 → 1.0.44
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 +47 -30
- package/index.js +8 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -393,36 +393,40 @@ These rules are enforced automatically — the AI will never violate them:
|
|
|
393
393
|
|
|
394
394
|
```
|
|
395
395
|
┌──────────────┬──────────────────────────────────────────────────────────────┐
|
|
396
|
-
│ Phase 00 │ manage_project_spec (action=read)
|
|
397
|
-
│
|
|
398
|
-
│
|
|
396
|
+
│ Phase 00 │ manage_project_spec (action=read + get_golden_rules) │
|
|
397
|
+
│ Project DNA │ → FIRST step — runs before ANY problem statement is read │
|
|
398
|
+
│ (Session │ → AI loaded with ALL services, ports, coding patterns, │
|
|
399
|
+
│ Start) │ Kafka topics, golden rules, and tenant isolation config │
|
|
399
400
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
400
|
-
│ Phase 0
|
|
401
|
-
│
|
|
402
|
-
|
|
403
|
-
│
|
|
404
|
-
│
|
|
405
|
-
│
|
|
406
|
-
│ │
|
|
407
|
-
│ │
|
|
408
|
-
│ │
|
|
401
|
+
│ Phase 0.5 │ Ultimate Reasoning (ReAct) → classify_task │
|
|
402
|
+
│ Task │ Step 1: AI outputs ### Ultimate Reasoning block │
|
|
403
|
+
│ Classification Deconstruction / Observation / Root Cause / Hypothesis │
|
|
404
|
+
│ │ Step 2: classify_task → 5-pass deep analysis engine │
|
|
405
|
+
│ │ Pass 1: Weighted signal scoring (Tier 1-4) │
|
|
406
|
+
│ │ Pass 2: Negation detection per sentence │
|
|
407
|
+
│ │ Pass 3: Root-cause phrase extraction │
|
|
408
|
+
│ │ Pass 4: Bug disambiguation matrix │
|
|
409
|
+
│ │ Pass 5: Confidence gate (≥ 1.8× + Tier 1/2 required) │
|
|
409
410
|
│ │ → allowed_next_action: PROCEED / CONFIRM / STOP │
|
|
410
411
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
412
|
+
│ Phase 0.6.6 │ manage_task (action=read_summary) OR search_tasks │
|
|
413
|
+
│ Resume │ → Token-efficient status view → resume next_step instantly │
|
|
414
|
+
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
411
415
|
│ Phase 0.7 │ Present full plan (scope, files, ACs, perf, rollback) │
|
|
412
416
|
│ Plan Gate │ → STOP and wait for "proceed" / "adjust" / "cancel" │
|
|
413
417
|
│ │ → manage_task (action=initialize) only after proceed │
|
|
414
418
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
415
|
-
│ Phase 1 │ search_tasks → get_task_history → manage_task initialize
|
|
416
|
-
│ Planning │ → Creates
|
|
419
|
+
│ Phase 1 │ search_tasks → get_task_history → manage_task initialize │
|
|
420
|
+
│ Planning │ → Creates .secufusion/tasks/{id}-{slug}/ with all 5 files │
|
|
417
421
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
418
422
|
│ Phase 2 │ manage_task: update_spec / log_file_touched / │
|
|
419
423
|
│ Execution │ log_decision / add_scenario │
|
|
420
424
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
421
425
|
│ Phase 3 │ log_rejected_pattern │
|
|
422
|
-
│ Correction │ → Record mistakes to avoid repeat
|
|
426
|
+
│ Correction │ → Record mistakes permanently to avoid repeat │
|
|
423
427
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
424
428
|
│ Phase 4 │ manage_task (action=complete) → pr-summary.md generated │
|
|
425
|
-
│ PR Handoff │ generate_ado_comments →
|
|
429
|
+
│ PR Handoff │ generate_ado_comments → Layman + Technical Deep-Dive for ADO │
|
|
426
430
|
└──────────────┴──────────────────────────────────────────────────────────────┘
|
|
427
431
|
```
|
|
428
432
|
|
|
@@ -468,9 +472,11 @@ Add this to your MCP client config and restart. That's it.
|
|
|
468
472
|
|
|
469
473
|
---
|
|
470
474
|
|
|
471
|
-
### Step 2 — Start a new task (
|
|
475
|
+
### Step 2 — Start a new task (Classification phase)
|
|
476
|
+
|
|
477
|
+
Just paste your Azure DevOps work item ID and description directly into the chat. No special syntax needed.
|
|
472
478
|
|
|
473
|
-
|
|
479
|
+
Before analyzing the problem statement, the AI has already loaded the Project DNA from Phase 00. It now outputs an **Ultimate Reasoning block** — a structured, spec-grounded analysis of the problem — then calls `classify_task`.
|
|
474
480
|
|
|
475
481
|
**You type:**
|
|
476
482
|
```
|
|
@@ -488,7 +494,16 @@ So that sensitive dashboard actions are protected against compromised credential
|
|
|
488
494
|
4. If MFA fails 3 times, the account should be temporarily locked for 15 minutes.
|
|
489
495
|
```
|
|
490
496
|
|
|
491
|
-
**The AI
|
|
497
|
+
**The AI outputs:**
|
|
498
|
+
```
|
|
499
|
+
### Ultimate Reasoning
|
|
500
|
+
- **Deconstruction:** TOTP enforcement is an auth-layer concern. sfn-iam-api owns the login flow.
|
|
501
|
+
- **Observation:** AuthService.java contains the password verification step (line 112). No MFA interceptor exists yet. sfn-iam-api runs on port 9001 per project spec.
|
|
502
|
+
- **Root Cause:** No MFA gate exists between password verification and JWT issuance.
|
|
503
|
+
- **Hypothesis:** Add a MfaVerificationService that validates TOTP after password passes, blocks JWT issuance on failure, and records attempts for lockout logic.
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
**Then classifies and upon approval initializes:**
|
|
492
507
|
```json
|
|
493
508
|
{
|
|
494
509
|
"action": "initialize",
|
|
@@ -601,25 +616,27 @@ The SecuFusion MCP operates across three complementary layers to prevent AI amne
|
|
|
601
616
|
### How it all wires together
|
|
602
617
|
|
|
603
618
|
```
|
|
604
|
-
mcp_config.json → starts the server (
|
|
619
|
+
mcp_config.json → starts the server (tools available)
|
|
605
620
|
+
|
|
606
621
|
.agents/AGENTS.md → tells AI when to invoke each tool
|
|
607
622
|
↓
|
|
608
623
|
★ SESSION STARTS
|
|
609
624
|
↓
|
|
610
|
-
Phase 00: manage_project_spec
|
|
611
|
-
|
|
612
|
-
|
|
625
|
+
Phase 00: manage_project_spec (read + get_golden_rules)
|
|
626
|
+
→ AI's brain loaded with full Project DNA BEFORE any task is read
|
|
627
|
+
→ knows all ports, services, patterns, tenant rules from spec
|
|
613
628
|
↓
|
|
614
629
|
You say: "WI-1042: Add audit log export"
|
|
615
630
|
↓
|
|
616
|
-
Phase 0.5:
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
631
|
+
Phase 0.5: ### Ultimate Reasoning (spec-grounded ReAct)
|
|
632
|
+
→ Deconstruction / Observation / Root Cause / Hypothesis (written to chat)
|
|
633
|
+
→ classify_task: 5-pass deep analysis
|
|
634
|
+
weighted scores + root-cause phrases + negation + bug heuristics
|
|
635
|
+
allowed_next_action: PROCEED (backend) / CONFIRM (mixed) / STOP (frontend)
|
|
636
|
+
+ performance risk scan (GREEN/AMBER/RED)
|
|
637
|
+
+ breaking change scan (endpoints/entities/Kafka/extension)
|
|
621
638
|
↓
|
|
622
|
-
Phase 0.7: plan presented → developer approves ("proceed")
|
|
639
|
+
Phase 0.7: full plan presented → developer approves ("proceed")
|
|
623
640
|
↓
|
|
624
641
|
Phase 1: search_tasks (always) → get_task_history → manage_task initialize
|
|
625
642
|
→ .secufusion/tasks/1042-add-audit-log-export/ created
|
|
@@ -627,7 +644,7 @@ Phase 1: search_tasks (always) → get_task_history → manage_task initialize
|
|
|
627
644
|
Phase 2: code + log_file_touched + log_decision + add_scenario (ALL mandatory)
|
|
628
645
|
↓
|
|
629
646
|
Phase 4: manage_task complete → pr-summary.md generated
|
|
630
|
-
|
|
647
|
+
→ generate_ado_comments → Layman + Technical Deep-Dive for ADO board
|
|
631
648
|
```
|
|
632
649
|
|
|
633
650
|
### Reusing across projects (Global Bundling)
|
package/index.js
CHANGED
|
@@ -1688,8 +1688,14 @@ server.tool("classify_task", "MANDATORY FIRST STEP for every task without except
|
|
|
1688
1688
|
finalDeveloperMessage += "\n────────────────────────────────────────\n";
|
|
1689
1689
|
}
|
|
1690
1690
|
else if (validationVerdict === "NEEDS_CLARIFICATION") {
|
|
1691
|
-
finalDeveloperMessage += `❓ NEEDS CLARIFICATION — ${work_item_id}\n\nI cannot implement this correctly without
|
|
1692
|
-
|
|
1691
|
+
finalDeveloperMessage += `❓ NEEDS CLARIFICATION — ${work_item_id}\n\nI cannot implement this correctly without clarification on the following:\n`;
|
|
1692
|
+
if (scopeQuestions.length > 0)
|
|
1693
|
+
finalDeveloperMessage += scopeQuestions.join("\n") + "\n";
|
|
1694
|
+
if (completenessIssues.length > 0)
|
|
1695
|
+
finalDeveloperMessage += completenessIssues.map(i => `• ${i}`).join("\n") + "\n";
|
|
1696
|
+
if (secufusionFlags.length > 0)
|
|
1697
|
+
finalDeveloperMessage += secufusionFlags.map(f => `• ${f}`).join("\n") + "\n";
|
|
1698
|
+
finalDeveloperMessage += "\nPlease clarify before I proceed.\n";
|
|
1693
1699
|
finalDeveloperMessage += "\n────────────────────────────────────────\n";
|
|
1694
1700
|
}
|
|
1695
1701
|
else if (validationVerdict === "MISLEADING") {
|