pumuki 6.3.372 → 6.3.374

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": "pumuki",
3
- "version": "6.3.372",
3
+ "version": "6.3.374",
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": {
@@ -13,10 +13,10 @@ type LegacySkillCause = {
13
13
  const FIELD_NAMES = ['severity', 'file', 'line', 'lines', 'message', 'remediation'] as const;
14
14
 
15
15
  const RULE_LABELS: Readonly<Record<string, string>> = {
16
- 'skills.ios.prefer-swift-testing': 'Swift Testing',
17
- 'skills.ios.no-wait-for-expectations': 'Swift Testing async',
18
- 'skills.ios.no-xctassert': 'Swift Testing',
19
- 'skills.ios.no-xctunwrap': 'Swift Testing',
16
+ 'skills.ios.prefer-swift-testing': 'Test XCTest legacy',
17
+ 'skills.ios.no-wait-for-expectations': 'waitForExpectations legacy',
18
+ 'skills.ios.no-xctassert': 'Assertions XCTest en Swift Testing',
19
+ 'skills.ios.no-xctunwrap': 'XCTUnwrap en Swift Testing',
20
20
  'skills.backend.no-empty-catch': 'Backend: no empty catch',
21
21
  };
22
22
 
@@ -154,11 +154,15 @@ const formatLocation = (cause: NonNullable<Extract<PumukiCriticalNotificationEve
154
154
  };
155
155
 
156
156
  const humanizeRuleId = (ruleId: string): string => {
157
+ if (ruleId === 'governance.skills.ios-test-quality.incomplete') {
158
+ return 'Calidad de tests iOS incompleta';
159
+ }
157
160
  const knownRules: Record<string, string> = {
158
161
  'no-empty-catch': 'catch vacío',
159
- 'prefer-swift-testing': 'Swift Testing',
160
- 'no-xctassert': 'XCTest assertions',
161
- 'no-wait-for-expectations': 'waitForExpectations en XCTest',
162
+ 'prefer-swift-testing': 'Test XCTest legacy',
163
+ 'no-xctassert': 'Assertions XCTest en Swift Testing',
164
+ 'no-xctunwrap': 'XCTUnwrap en Swift Testing',
165
+ 'no-wait-for-expectations': 'waitForExpectations legacy',
162
166
  'ios-test-quality': 'calidad de tests iOS',
163
167
  'action-handlers-should-reference-methods-not-contain-inline-logic': 'handlers SwiftUI sin lógica inline',
164
168
  'ensure-constant-number-of-views-per-foreach-element': 'estructura estable en ForEach',
@@ -239,7 +243,9 @@ const isSkillCause = (
239
243
  cause: NonNullable<Extract<PumukiCriticalNotificationEvent, { kind: 'gate.blocked' }>['blockingCauses']>[number]
240
244
  ): boolean =>
241
245
  (cause.ruleId ?? '').startsWith('skills.') ||
242
- cause.code.startsWith('SKILLS_');
246
+ (cause.ruleId ?? '').startsWith('governance.skills.') ||
247
+ cause.code.startsWith('SKILLS_') ||
248
+ cause.code.startsWith('GOVERNANCE_SKILLS_');
243
249
 
244
250
  const isSkillsContractCause = (
245
251
  cause: NonNullable<Extract<PumukiCriticalNotificationEvent, { kind: 'gate.blocked' }>['blockingCauses']>[number]
@@ -139,10 +139,14 @@ const formatCauseLocation = (cause: BlockedCause): string => {
139
139
  const formatCauseRule = (cause: BlockedCause): string => cause.ruleId ?? cause.code;
140
140
 
141
141
  const humanizeRuleId = (ruleId: string): string => {
142
+ if (ruleId === 'governance.skills.ios-test-quality.incomplete') {
143
+ return 'Calidad de tests iOS incompleta';
144
+ }
142
145
  const knownRules: Record<string, string> = {
143
- 'prefer-swift-testing': 'Swift Testing',
144
- 'no-xctassert': 'XCTest assertions',
145
- 'no-wait-for-expectations': 'waitForExpectations en XCTest',
146
+ 'prefer-swift-testing': 'Test XCTest legacy',
147
+ 'no-xctassert': 'Assertions XCTest en Swift Testing',
148
+ 'no-xctunwrap': 'XCTUnwrap en Swift Testing',
149
+ 'no-wait-for-expectations': 'waitForExpectations legacy',
146
150
  'ios-test-quality': 'calidad de tests iOS',
147
151
  'dynamic-type-font-scaling-automatico': 'Dynamic Type',
148
152
  'dynamic-type-font-scaling-automa-tico': 'Dynamic Type',