pumuki 6.3.155 → 6.3.157

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.
@@ -503,6 +503,9 @@ const buildPrePushCommitPathLimitViolations = (params: {
503
503
  repoRoot: params.repoRoot,
504
504
  commitHash: commitRecord.hash,
505
505
  }).filter((path) => !isManagedEvidencePath(path));
506
+ if (isSkillsEnforcementRemediationDiff(changedPaths)) {
507
+ continue;
508
+ }
506
509
  violations.push(
507
510
  ...buildPathLimitViolations({
508
511
  changedPaths,
@@ -445,6 +445,11 @@ const isSkillsEnforcementImplementationPath = (path: string): boolean => {
445
445
  normalized.startsWith('integrations/config/') ||
446
446
  normalized === 'integrations/git/runplatformgate.ts' ||
447
447
  normalized === 'integrations/git/__tests__/runplatformgate.test.ts' ||
448
+ normalized === 'integrations/git/gitatomicity.ts' ||
449
+ normalized === 'integrations/git/__tests__/gitatomicity.test.ts' ||
450
+ normalized === 'pumuki-reset-master-plan.md' ||
451
+ normalized === 'package.json' ||
452
+ normalized === 'package-lock.json' ||
448
453
  isSkillsContractCarrierPath(normalized)
449
454
  );
450
455
  };
@@ -462,7 +467,9 @@ const isSkillsEnforcementRemediationDiff = (
462
467
  path.startsWith('core/rules/presets/heuristics/') ||
463
468
  path.startsWith('integrations/config/') ||
464
469
  path === 'integrations/git/runplatformgate.ts' ||
465
- path === 'integrations/git/__tests__/runplatformgate.test.ts'
470
+ path === 'integrations/git/__tests__/runplatformgate.test.ts' ||
471
+ path === 'integrations/git/gitatomicity.ts' ||
472
+ path === 'integrations/git/__tests__/gitatomicity.test.ts'
466
473
  );
467
474
  const touchesLockOrScenario = normalizedPaths.some((path) =>
468
475
  path === 'skills.lock.json' || path.endsWith('.feature')
@@ -485,6 +492,37 @@ const collectStagedPaths = (git: IGitService, repoRoot: string): ReadonlyArray<s
485
492
  }
486
493
  };
487
494
 
495
+ const BASELINE_BRANCH_REFS = [
496
+ 'origin/develop',
497
+ 'origin/main',
498
+ 'upstream/develop',
499
+ 'upstream/main',
500
+ 'develop',
501
+ 'main',
502
+ ];
503
+
504
+ const collectPrePushChangedPaths = (
505
+ git: IGitService,
506
+ repoRoot: string
507
+ ): ReadonlyArray<string> => {
508
+ for (const baselineRef of BASELINE_BRANCH_REFS) {
509
+ try {
510
+ git.runGit(['rev-parse', '--verify', baselineRef], repoRoot);
511
+ const mergeBase = git.runGit(['merge-base', baselineRef, 'HEAD'], repoRoot).trim();
512
+ if (mergeBase.length === 0) {
513
+ continue;
514
+ }
515
+ return git.runGit(['diff', '--name-only', `${mergeBase}..HEAD`], repoRoot)
516
+ .split('\n')
517
+ .map((line) => toNormalizedPath(line).toLowerCase())
518
+ .filter((line) => line.length > 0);
519
+ } catch {
520
+ continue;
521
+ }
522
+ }
523
+ return [];
524
+ };
525
+
488
526
  const toBlockingFindingsForPaths = (
489
527
  findings: ReadonlyArray<Finding>,
490
528
  paths: ReadonlySet<string>
@@ -1471,7 +1509,13 @@ export async function runPlatformGate(params: {
1471
1509
  ].sort(),
1472
1510
  })
1473
1511
  : undefined;
1474
- const skillsEnforcementRemediationDiff = isSkillsEnforcementRemediationDiff(stagedPaths);
1512
+ const skillsEnforcementRemediationDiff = isSkillsEnforcementRemediationDiff(
1513
+ stagedPaths.length > 0
1514
+ ? stagedPaths
1515
+ : params.policy.stage === 'PRE_PUSH'
1516
+ ? collectPrePushChangedPaths(git, repoRoot)
1517
+ : []
1518
+ );
1475
1519
  const remediationProgressAllowsGlobalGap =
1476
1520
  remediationProgressFinding !== undefined ||
1477
1521
  (skillsEnforcementRemediationDiff &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pumuki",
3
- "version": "6.3.155",
3
+ "version": "6.3.157",
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": {