pumuki 6.3.282 → 6.3.283

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [6.3.283] - 2026-05-19
4
+
5
+ - `PUMUKI-INC-150`: brownfield XCTest specs that satisfy `makeSUT()` and `trackForMemoryLeaks()` are also exempt from Swift Testing migration assertion findings (`skills.ios.no-xctassert` / `skills.ios.no-xctunwrap`). These rules remain active for modern Swift Testing suites and XCTest specs without an explicit brownfield quality contract.
6
+
3
7
  ## [6.3.282] - 2026-05-19
4
8
 
5
9
  - `PUMUKI-INC-150`: PRE_WRITE evidence coverage now materializes `skills.ios.critical-test-quality` as active and evaluated for XCTest test scopes that satisfy `makeSUT()` and `trackForMemoryLeaks()`. This removes the false `EVIDENCE_PLATFORM_CRITICAL_SKILLS_RULES_MISSING` block after the brownfield XCTest spec has no quality findings.
package/VERSION CHANGED
@@ -1 +1 @@
1
- v6.3.282
1
+ v6.3.283
@@ -2030,6 +2030,8 @@ final class BuyerOnboardingStringsTests: XCTestCase {
2030
2030
  func testTitle() {
2031
2031
  let sut = makeSUT()
2032
2032
  XCTAssertEqual(sut.title, "Comprar cerca")
2033
+ let required = try XCTUnwrap(sut.title)
2034
+ XCTAssertFalse(required.isEmpty)
2033
2035
  }
2034
2036
 
2035
2037
  private func makeSUT() -> BuyerOnboardingStrings {
@@ -2041,7 +2043,11 @@ final class BuyerOnboardingStringsTests: XCTestCase {
2041
2043
  `;
2042
2044
 
2043
2045
  assert.equal(hasSwiftModernizableXCTestSuiteUsage(brownfieldSpec), false);
2046
+ assert.equal(hasSwiftXCTestAssertionUsage(brownfieldSpec), false);
2047
+ assert.equal(hasSwiftXCTUnwrapUsage(brownfieldSpec), false);
2044
2048
  assert.deepEqual(collectSwiftModernizableXCTestSuiteLines(brownfieldSpec), []);
2049
+ assert.deepEqual(collectSwiftXCTestAssertionLines(brownfieldSpec), []);
2050
+ assert.deepEqual(collectSwiftXCTUnwrapLines(brownfieldSpec), []);
2045
2051
  });
2046
2052
 
2047
2053
  test('hasSwiftMixedTestingFrameworksUsage detecta mezcla XCTestCase y Testing/@Test', () => {
@@ -1697,6 +1697,10 @@ export const collectSwiftQuickNimbleLines = (source: string): readonly number[]
1697
1697
  };
1698
1698
 
1699
1699
  export const hasSwiftXCTestAssertionUsage = (source: string): boolean => {
1700
+ if (hasSwiftBrownfieldXCTestQualityPattern(source)) {
1701
+ return false;
1702
+ }
1703
+
1700
1704
  return (
1701
1705
  collectSwiftRegexLines(source, /\bXCTAssert[A-Za-z0-9_]*\s*\(/).length > 0 ||
1702
1706
  collectSwiftRegexLines(source, /\bXCTFail\s*\(/).length > 0
@@ -1715,10 +1719,18 @@ export const collectSwiftXCTestAssertionLines = (source: string): readonly numbe
1715
1719
  };
1716
1720
 
1717
1721
  export const hasSwiftXCTUnwrapUsage = (source: string): boolean => {
1722
+ if (hasSwiftBrownfieldXCTestQualityPattern(source)) {
1723
+ return false;
1724
+ }
1725
+
1718
1726
  return collectSwiftRegexLines(source, /\bXCTUnwrap\s*\(/).length > 0;
1719
1727
  };
1720
1728
 
1721
1729
  export const collectSwiftXCTUnwrapLines = (source: string): readonly number[] => {
1730
+ if (!hasSwiftXCTUnwrapUsage(source)) {
1731
+ return [];
1732
+ }
1733
+
1722
1734
  return sortedUniqueLines(collectSwiftRegexLines(source, /\bXCTUnwrap\s*\(/));
1723
1735
  };
1724
1736
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pumuki",
3
- "version": "6.3.282",
3
+ "version": "6.3.283",
4
4
  "description": "Enterprise-grade AST Intelligence System with multi-platform support (iOS, Android, Backend, Frontend) and Feature-First + DDD + Clean Architecture enforcement. Includes dynamic violations API for intelligent querying.",
5
5
  "main": "index.js",
6
6
  "bin": {