pumuki 6.3.241 → 6.3.243

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.243] - 2026-05-14
10
+
11
+ ### Added
12
+
13
+ - **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.
14
+
15
+ ## [6.3.242] - 2026-05-14
16
+
17
+ ### Added
18
+
19
+ - **SwiftUI Observable shared-state parity:** `skills.ios.guideline.ios-swiftui-expert.use-observable-for-shared-state-with-mainactor-if-not-using-default-ac` now maps to the existing AUTO `ObservableObject` heuristic, converting the shared-state migration guideline into runtime evidence without introducing actor-isolation false positives.
20
+
9
21
  ## [6.3.241] - 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']
@@ -201,6 +205,8 @@ const registryByRuleId: Record<string, SkillsDetectorBinding> = {
201
205
  'skills.ios.no-observable-object': heuristicDetector('ios.observable-object', [
202
206
  'heuristics.ios.observable-object.ast',
203
207
  ]),
208
+ 'skills.ios.guideline.ios-swiftui-expert.use-observable-for-shared-state-with-mainactor-if-not-using-default-ac':
209
+ heuristicDetector('ios.observable-object', ['heuristics.ios.observable-object.ast']),
204
210
  'skills.ios.no-legacy-swiftui-observable-wrapper': heuristicDetector(
205
211
  'ios.legacy-swiftui-observable-wrapper',
206
212
  ['heuristics.ios.legacy-swiftui-observable-wrapper.ast']
@@ -253,6 +253,13 @@ const normalizeKnownRuleTarget = (
253
253
  if (includes('observableobject') || includes('observable object')) {
254
254
  return 'skills.ios.no-observable-object';
255
255
  }
256
+ if (
257
+ (includes('@observable') || includes('observable')) &&
258
+ includes('shared state') &&
259
+ includes('mainactor')
260
+ ) {
261
+ return 'skills.ios.guideline.ios-swiftui-expert.use-observable-for-shared-state-with-mainactor-if-not-using-default-ac';
262
+ }
256
263
  if (
257
264
  includes('observedobject') ||
258
265
  (includes('legacy') && includes('stateobject')) ||
@@ -309,6 +316,14 @@ const normalizeKnownRuleTarget = (
309
316
  if (includes('string format') || includes('string(format')) {
310
317
  return 'skills.ios.no-string-format';
311
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
+ }
312
327
  if (
313
328
  (includes('foreach') && includes('indices')) ||
314
329
  includes('stable identity for foreach') ||
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pumuki",
3
- "version": "6.3.241",
3
+ "version": "6.3.243",
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-14T06:45:22.016Z",
4
+ "generatedAt": "2026-05-14T07:06:26.545Z",
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": "4ea50faf9594602eefa6711b818cf4badeb2014ca64eaf00cb2f98f3e11a55f0",
8623
+ "hash": "32ec48aa279031b02895c91667250123eedc5c3a4ff91672316862ea2fae57c7",
8624
8624
  "rules": [
8625
8625
  {
8626
8626
  "id": "skills.ios.guideline.ios-swiftui-expert.action-handlers-should-reference-methods-not-contain-inline-logic",
@@ -8895,7 +8895,7 @@
8895
8895
  "sourcePath": "vendor/skills/swiftui-expert-skill/SKILL.md",
8896
8896
  "confidence": "MEDIUM",
8897
8897
  "locked": true,
8898
- "evaluationMode": "DECLARATIVE",
8898
+ "evaluationMode": "AUTO",
8899
8899
  "origin": "core"
8900
8900
  },
8901
8901
  {
@@ -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
  {