pumuki 6.3.242 → 6.3.244

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
@@ -6,6 +6,18 @@ This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [6.3.244] - 2026-05-14
10
+
11
+ ### Added
12
+
13
+ - **SwiftUI body-purity parity:** `skills.ios.guideline.ios-swiftui-expert.keep-view-body-simple-and-pure-no-side-effects-or-complex-logic` now maps to the existing AUTO body object-creation heuristic, converting the body-purity guideline into scoped runtime evidence without banning legitimate small composition helpers.
14
+
15
+ ## [6.3.243] - 2026-05-14
16
+
17
+ ### Added
18
+
19
+ - **SwiftUI relative-layout parity:** `skills.ios.guideline.ios-swiftui-expert.use-relative-layout-over-hard-coded-constants` now maps to the existing AUTO layout magic-number heuristic, turning the relative-layout guideline into runtime evidence without broad numeric-literal enforcement.
20
+
9
21
  ## [6.3.242] - 2026-05-14
10
22
 
11
23
  ### Added
@@ -90,6 +90,10 @@ const registryByRuleId: Record<string, SkillsDetectorBinding> = {
90
90
  'ios.maintainability.magic-number-layout',
91
91
  ['heuristics.ios.maintainability.magic-number-layout.ast']
92
92
  ),
93
+ 'skills.ios.guideline.ios-swiftui-expert.use-relative-layout-over-hard-coded-constants':
94
+ heuristicDetector('ios.maintainability.magic-number-layout', [
95
+ 'heuristics.ios.maintainability.magic-number-layout.ast',
96
+ ]),
93
97
  'skills.ios.guideline.ios.prohibido-print-y-logs-ad-hoc': heuristicDetector(
94
98
  'ios.logging.adhoc-print',
95
99
  ['heuristics.ios.logging.adhoc-print.ast']
@@ -288,6 +292,10 @@ const registryByRuleId: Record<string, SkillsDetectorBinding> = {
288
292
  heuristicDetector('ios.swiftui.body-object-creation', [
289
293
  'heuristics.ios.swiftui.body-object-creation.ast',
290
294
  ]),
295
+ 'skills.ios.guideline.ios-swiftui-expert.keep-view-body-simple-and-pure-no-side-effects-or-complex-logic':
296
+ heuristicDetector('ios.swiftui.body-object-creation', [
297
+ 'heuristics.ios.swiftui.body-object-creation.ast',
298
+ ]),
291
299
  'skills.ios.guideline.ios-swiftui-expert.suggest-image-downsampling-when-uiimage-data-is-encountered':
292
300
  heuristicDetector('ios.swiftui.image-data-decoding', [
293
301
  'heuristics.ios.swiftui.image-data-decoding.ast',
@@ -316,6 +316,14 @@ const normalizeKnownRuleTarget = (
316
316
  if (includes('string format') || includes('string(format')) {
317
317
  return 'skills.ios.no-string-format';
318
318
  }
319
+ if (
320
+ includes('relative layout over hard-coded constants') ||
321
+ includes('relative layout over hard coded constants') ||
322
+ includes('hard-coded constants') ||
323
+ includes('hard coded constants')
324
+ ) {
325
+ return 'skills.ios.guideline.ios-swiftui-expert.use-relative-layout-over-hard-coded-constants';
326
+ }
319
327
  if (
320
328
  (includes('foreach') && includes('indices')) ||
321
329
  includes('stable identity for foreach') ||
@@ -402,9 +410,15 @@ const normalizeKnownRuleTarget = (
402
410
  if (
403
411
  includes('no object creation in body') ||
404
412
  (includes('object creation') && includes('body')) ||
405
- (includes('body kept simple') && includes('pure'))
413
+ (includes('body kept simple') && includes('pure')) ||
414
+ (includes('view body simple') && includes('pure')) ||
415
+ (includes('body simple') && includes('side effects')) ||
416
+ (includes('body') && includes('complex logic'))
406
417
  ) {
407
- return 'skills.ios.guideline.ios-swiftui-expert.no-object-creation-in-body';
418
+ if (includes('no object creation') || includes('object creation')) {
419
+ return 'skills.ios.guideline.ios-swiftui-expert.no-object-creation-in-body';
420
+ }
421
+ return 'skills.ios.guideline.ios-swiftui-expert.keep-view-body-simple-and-pure-no-side-effects-or-complex-logic';
408
422
  }
409
423
  if (
410
424
  includes('image downsampling') ||
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pumuki",
3
- "version": "6.3.242",
3
+ "version": "6.3.244",
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": {
package/skills.lock.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "1.0",
3
3
  "compilerVersion": "1.0.0",
4
- "generatedAt": "2026-05-14T07:00:57.248Z",
4
+ "generatedAt": "2026-05-14T07:29:57.101Z",
5
5
  "bundles": [
6
6
  {
7
7
  "name": "android-guidelines",
@@ -8620,7 +8620,7 @@
8620
8620
  "name": "ios-swiftui-expert-guidelines",
8621
8621
  "version": "1.0.0",
8622
8622
  "source": "file:vendor/skills/swiftui-expert-skill/SKILL.md",
8623
- "hash": "eec9633ddf388ee680cf4bd74c4e52f9112d1925bea59f50d482c47d1aba59f4",
8623
+ "hash": "95d13f770dcf3a0ecb957e4cabcfd09c9d9b39a15421c8599c6fe5470d1c3f95",
8624
8624
  "rules": [
8625
8625
  {
8626
8626
  "id": "skills.ios.guideline.ios-swiftui-expert.action-handlers-should-reference-methods-not-contain-inline-logic",
@@ -8703,7 +8703,7 @@
8703
8703
  "sourcePath": "vendor/skills/swiftui-expert-skill/SKILL.md",
8704
8704
  "confidence": "MEDIUM",
8705
8705
  "locked": true,
8706
- "evaluationMode": "DECLARATIVE",
8706
+ "evaluationMode": "AUTO",
8707
8707
  "origin": "core"
8708
8708
  },
8709
8709
  {
@@ -8907,7 +8907,7 @@
8907
8907
  "sourcePath": "vendor/skills/swiftui-expert-skill/SKILL.md",
8908
8908
  "confidence": "MEDIUM",
8909
8909
  "locked": true,
8910
- "evaluationMode": "DECLARATIVE",
8910
+ "evaluationMode": "AUTO",
8911
8911
  "origin": "core"
8912
8912
  },
8913
8913
  {