@ngocsangairvds/vsaf 4.1.29 → 4.1.31

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngocsangairvds/vsaf",
3
- "version": "4.1.29",
3
+ "version": "4.1.31",
4
4
  "description": "logging step",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
@@ -160,6 +160,34 @@ If unexpected impact detected → evaluate:
160
160
  [HOTFIX-IMPL] [6/6] Impact verification... ✅
161
161
  ```
162
162
 
163
+ ## Verification Gate
164
+
165
+ ⛔ **NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
166
+
167
+ Before printing Phase Exit, you MUST pass ALL checks below. For each check: **run the command → read the full output → verify the claim matches the output.** Do NOT trust memory, do NOT trust previous runs, do NOT say "should pass."
168
+
169
+ | # | Check | Command to Run | Evidence Required | ❌ NOT Acceptable |
170
+ |---|-------|---------------|-------------------|-------------------|
171
+ | 1 | Build compiles | `mvn compile` / `npm run build` / equivalent | `BUILD SUCCESS` or `0 errors` in output | "It compiled earlier" |
172
+ | 2 | All tests pass | `npm test` / `mvn test` / equivalent | `X passed, 0 failed` in output | "Tests should still pass" |
173
+ | 3 | Regression test passes | Run specific test by name | Test name + PASS in output | "I wrote the test so it passes" |
174
+ | 4 | No new SonarQube issues | Check output from Step 4 | 0 blockers, 0 critical, 0 vulns | "Code looks clean" |
175
+ | 5 | GitNexus impact clean | Check output from Step 6 | Blast radius matches analysis | "Fix is minimal so it's fine" |
176
+ | 6 | Scope boundary held | `git diff --stat` | Changed files ⊆ files listed in analysis | "I only changed what was needed" |
177
+
178
+ **Red flags — if you catch yourself thinking any of these, STOP and run the command:**
179
+ - "It should work" → Run it and prove it
180
+ - "I'm confident" → Confidence ≠ evidence
181
+ - "I already checked" → Check again with fresh output
182
+ - "It's a small change so it's safe" → Small changes break big systems
183
+ - "The test passed during TDD" → TDD was minutes ago; verify NOW
184
+
185
+ **Procedure:**
186
+ 1. Run checks 1-6 sequentially
187
+ 2. For each: paste the **actual command output** (or key lines) into `03-impl-log.md` under a `## Verification Evidence` section
188
+ 3. If ANY check fails → fix → re-run ALL checks (not just the failed one)
189
+ 4. Only after ALL 6 checks show fresh passing evidence → proceed to Phase Exit
190
+
163
191
  ## Output
164
192
 
165
193
  Write file: `.vsaf/docs/hotfixes/{bug-id}/03-impl-log.md`
@@ -198,6 +226,17 @@ Write file: `.vsaf/docs/hotfixes/{bug-id}/03-impl-log.md`
198
226
  ## Build
199
227
  - Compile: PASS
200
228
  - Full test suite: PASS
229
+
230
+ ## Verification Evidence
231
+
232
+ | # | Check | Result | Evidence |
233
+ |---|-------|--------|----------|
234
+ | 1 | Build compiles | ✅ PASS | `{actual build output line}` |
235
+ | 2 | All tests pass | ✅ PASS | `{X} passed, 0 failed` |
236
+ | 3 | Regression test | ✅ PASS | `{test name} — PASSED` |
237
+ | 4 | SonarQube clean | ✅ PASS | 0 blocker, 0 critical, 0 vuln |
238
+ | 5 | Impact clean | ✅ PASS | Blast radius = {files}, matches analysis |
239
+ | 6 | Scope held | ✅ PASS | `git diff --stat`: {n} files changed, all within scope |
201
240
  ```
202
241
 
203
242
  ## Phase Exit Protocol
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  #!/usr/bin/env python3
2
4
  """Generate PlantUML diagrams for all VDS project services.
3
5
 
@@ -4,6 +4,8 @@ Based on MCP Python SDK v1.0.0+
4
4
  Context7: /modelcontextprotocol/python-sdk
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from collections.abc import Callable
8
10
  from typing import TYPE_CHECKING, Any
9
11
 
@@ -4,6 +4,8 @@ Based on MCP Python SDK v1.0.0+
4
4
  Context7: /modelcontextprotocol/python-sdk
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from collections.abc import Callable
8
10
  from typing import TYPE_CHECKING, Any
9
11
 
@@ -4,6 +4,8 @@ Based on MCP Python SDK v1.0.0+
4
4
  Context7: /modelcontextprotocol/python-sdk
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from collections.abc import Callable
8
10
  from typing import TYPE_CHECKING, Any
9
11
 
@@ -4,6 +4,8 @@ Based on MCP Python SDK v1.0.0+
4
4
  Context7: /modelcontextprotocol/python-sdk
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from collections.abc import Callable
8
10
  from typing import TYPE_CHECKING, Any
9
11
 
@@ -1,5 +1,7 @@
1
1
  """Pytest configuration and fixtures for MCP server tests."""
2
2
 
3
+ from __future__ import annotations
4
+
3
5
  from collections.abc import AsyncGenerator
4
6
  from typing import TYPE_CHECKING
5
7
  from unittest.mock import Mock
@@ -4,6 +4,8 @@ Based on pytest v8.3.3+ API
4
4
  Context7: /pytest-dev/pytest
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from typing import TYPE_CHECKING
8
10
 
9
11
  import pytest
@@ -4,6 +4,8 @@ Based on pytest v8.3.3+ API
4
4
  Context7: /pytest-dev/pytest
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from typing import TYPE_CHECKING
8
10
 
9
11
  import pytest
@@ -4,6 +4,8 @@ Based on pytest v8.3.3+ API
4
4
  Context7: /pytest-dev/pytest
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from typing import TYPE_CHECKING
8
10
 
9
11
  import pytest
@@ -4,6 +4,8 @@ Based on pytest v8.3.3+ API
4
4
  Context7: /pytest-dev/pytest
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from typing import TYPE_CHECKING
8
10
 
9
11
  import pytest
@@ -5,6 +5,8 @@ Context7: /pytest-dev/pytest
5
5
  Key Features: @pytest.mark.skipif, real API calls via MCP
6
6
  """
7
7
 
8
+ from __future__ import annotations
9
+
8
10
  import os
9
11
  from typing import TYPE_CHECKING
10
12
 
@@ -5,6 +5,8 @@ Context7: /pytest-dev/pytest
5
5
  Key Features: @pytest.mark.skipif, real API calls via MCP
6
6
  """
7
7
 
8
+ from __future__ import annotations
9
+
8
10
  import os
9
11
  from typing import TYPE_CHECKING
10
12
 
@@ -4,6 +4,8 @@ Based on pytest v8.3.3+ API
4
4
  Context7: /pytest-dev/pytest
5
5
  """
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  from typing import TYPE_CHECKING
8
10
 
9
11
  import pytest
@@ -1,5 +1,7 @@
1
1
  """Auth middleware: inject CredentialResolver into HTTPClient headers."""
2
2
 
3
+ from __future__ import annotations
4
+
3
5
  from typing import TYPE_CHECKING, Any
4
6
 
5
7
  if TYPE_CHECKING: