pumuki 6.3.58 → 6.3.60

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.
Files changed (130) hide show
  1. package/VERSION +1 -1
  2. package/bin/_run-ts-entry.js +4 -1
  3. package/core/facts/detectors/text/ios.test.ts +10 -0
  4. package/core/rules/presets/iosEnterpriseRuleSet.test.ts +49 -1
  5. package/core/rules/presets/iosEnterpriseRuleSet.ts +4 -11
  6. package/docs/README.md +5 -10
  7. package/docs/operations/RELEASE_NOTES.md +28 -17
  8. package/docs/product/API_REFERENCE.md +35 -16
  9. package/docs/product/CONFIGURATION.md +8 -1
  10. package/docs/product/HOW_IT_WORKS.md +9 -9
  11. package/docs/product/TESTING.md +28 -0
  12. package/docs/product/USAGE.md +60 -18
  13. package/docs/validation/README.md +31 -7
  14. package/integrations/config/compileSkillsLock.ts +1 -1
  15. package/integrations/config/coreSkillsLock.ts +20 -10
  16. package/integrations/evidence/repoState.ts +8 -20
  17. package/integrations/gate/evaluateAiGate.ts +114 -1
  18. package/integrations/gate/stagePolicies.ts +50 -550
  19. package/integrations/git/runPlatformGate.ts +65 -19
  20. package/integrations/lifecycle/cli.ts +293 -21
  21. package/integrations/lifecycle/doctor.ts +51 -10
  22. package/integrations/lifecycle/experimentalFeaturesSnapshot.ts +61 -0
  23. package/integrations/lifecycle/packageInfo.ts +22 -5
  24. package/integrations/lifecycle/policyValidationSnapshot.ts +6 -0
  25. package/integrations/lifecycle/saasIngestionContract.ts +1 -1
  26. package/integrations/lifecycle/status.ts +6 -0
  27. package/integrations/mcp/aiGateCheck.ts +7 -3
  28. package/integrations/mcp/autoExecuteAiStart.ts +7 -3
  29. package/integrations/mcp/enterpriseServer.ts +49 -2
  30. package/integrations/mcp/preFlightCheck.ts +7 -3
  31. package/integrations/policy/experimentalFeatures.ts +189 -0
  32. package/integrations/policy/heuristicsEnforcement.ts +65 -0
  33. package/integrations/policy/policyAsCode.ts +250 -0
  34. package/integrations/policy/policyProfiles.ts +410 -0
  35. package/integrations/policy/preWriteEnforcement.ts +19 -31
  36. package/integrations/policy/sddCompletenessEnforcement.ts +57 -0
  37. package/integrations/policy/skillsEnforcement.ts +1 -10
  38. package/integrations/policy/tddBddEnforcement.ts +103 -0
  39. package/integrations/sdd/policy.ts +125 -39
  40. package/integrations/sdd/types.ts +2 -0
  41. package/integrations/tdd/types.ts +1 -1
  42. package/integrations/telemetry/gateTelemetry.ts +4 -0
  43. package/package.json +37 -3
  44. package/scripts/adapter-readiness-markdown-next-actions-lib.ts +1 -1
  45. package/scripts/adapter-real-session-analysis-evaluation-lib.ts +4 -0
  46. package/scripts/adapter-real-session-analysis-messages-lib.ts +13 -0
  47. package/scripts/adapter-real-session-contract.ts +3 -0
  48. package/scripts/adapter-real-session-markdown-sections-context-lib.ts +8 -2
  49. package/scripts/adapter-real-session-status-parser-lib.ts +29 -1
  50. package/scripts/adapter-session-status-capabilities-lib.ts +77 -0
  51. package/scripts/adapter-session-status-command-lib.ts +18 -6
  52. package/scripts/adapter-session-status-contract.ts +20 -5
  53. package/scripts/adapter-session-status-markdown-lib.ts +30 -7
  54. package/scripts/adapter-session-status-verdict-lib.ts +15 -4
  55. package/scripts/build-adapter-session-status.ts +5 -3
  56. package/scripts/build-consumer-menu-matrix-baseline.ts +5 -0
  57. package/scripts/build-consumer-startup-triage-runner-lib.ts +2 -4
  58. package/scripts/check-tracking-single-active.sh +12 -12
  59. package/scripts/compile-skills-lock.ts +9 -2
  60. package/scripts/consumer-menu-matrix-baseline-builder-lib.ts +114 -0
  61. package/scripts/consumer-menu-matrix-baseline-cli-lib.ts +117 -0
  62. package/scripts/consumer-menu-matrix-baseline-report-lib.ts +263 -0
  63. package/scripts/consumer-startup-triage-command-builders-core-required-lib.ts +9 -2
  64. package/scripts/consumer-startup-triage-command-builders-support-bundle-lib.ts +5 -1
  65. package/scripts/consumer-startup-triage-command-builders-support-followup-lib.ts +9 -2
  66. package/scripts/consumer-startup-triage-command-builders-workflow-lint-lib.ts +9 -6
  67. package/scripts/consumer-startup-triage-contract.ts +2 -1
  68. package/scripts/consumer-startup-triage-markdown-lib.ts +1 -1
  69. package/scripts/consumer-startup-triage-script-paths-lib.ts +17 -0
  70. package/scripts/consumer-support-bundle-markdown-sections-support-payload-lib.ts +57 -3
  71. package/scripts/consumer-support-ticket-draft-lib.ts +2 -1
  72. package/scripts/consumer-support-ticket-draft-primary-sections-lib.ts +49 -4
  73. package/scripts/consumer-workflow-lint-markdown-lib.ts +8 -1
  74. package/scripts/enterprise-contract-suite-contract.ts +2 -2
  75. package/scripts/framework-menu-actions-diagnostics-adapter-lib.ts +17 -3
  76. package/scripts/framework-menu-actions-diagnostics-maintenance-lib.ts +1 -1
  77. package/scripts/framework-menu-actions-diagnostics-support-core-lib.ts +3 -3
  78. package/scripts/framework-menu-actions-diagnostics-support-triage-lib.ts +2 -2
  79. package/scripts/framework-menu-actions-gates-stage-lib.ts +3 -3
  80. package/scripts/framework-menu-actions-phase5-exec-lib.ts +2 -2
  81. package/scripts/framework-menu-actions-phase5-reports-lib.ts +4 -4
  82. package/scripts/framework-menu-advanced-view-help.ts +15 -15
  83. package/scripts/framework-menu-builders-maintenance.ts +10 -4
  84. package/scripts/framework-menu-consumer-actions-lib.ts +9 -9
  85. package/scripts/framework-menu-consumer-runtime-actions.ts +27 -7
  86. package/scripts/framework-menu-consumer-runtime-audit.ts +163 -17
  87. package/scripts/framework-menu-consumer-runtime-lib.ts +10 -0
  88. package/scripts/framework-menu-consumer-runtime-menu.ts +17 -8
  89. package/scripts/framework-menu-consumer-runtime-types.ts +20 -6
  90. package/scripts/framework-menu-evidence-summary-normalize.ts +7 -0
  91. package/scripts/framework-menu-evidence-summary-read.ts +28 -0
  92. package/scripts/framework-menu-evidence-summary-severity.ts +129 -0
  93. package/scripts/framework-menu-evidence-summary-types.ts +16 -0
  94. package/scripts/framework-menu-gate-lib.ts +44 -7
  95. package/scripts/framework-menu-layout-data.ts +15 -10
  96. package/scripts/framework-menu-legacy-audit-markdown-document.ts +6 -2
  97. package/scripts/framework-menu-legacy-audit-render-panel.ts +3 -2
  98. package/scripts/framework-menu-legacy-audit-render-report.ts +20 -58
  99. package/scripts/framework-menu-legacy-audit-render-sections.ts +5 -7
  100. package/scripts/framework-menu-runner-constants.ts +2 -1
  101. package/scripts/framework-menu-runners-adapter-real-session-lib.ts +35 -12
  102. package/scripts/framework-menu-runners-adapter-session-lib.ts +35 -12
  103. package/scripts/framework-menu-runners-validation-custom-rules-lib.ts +10 -2
  104. package/scripts/framework-menu-runners-validation-skills-lib.ts +10 -2
  105. package/scripts/framework-menu-skills-lib.ts +8 -1
  106. package/scripts/framework-menu-system-notifications-gate.ts +12 -0
  107. package/scripts/framework-menu-system-notifications-lib.ts +1 -0
  108. package/scripts/framework-menu.ts +23 -14
  109. package/scripts/lint-consumer-workflows.ts +21 -12
  110. package/scripts/package-install-smoke-consumer-npm-lib.ts +41 -5
  111. package/scripts/package-install-smoke-workspace-factory-lib.ts +1 -1
  112. package/scripts/package-manifest-lib.ts +2 -0
  113. package/scripts/phase5-blockers-markdown-next-actions-blocked-lib.ts +3 -3
  114. package/scripts/phase5-blockers-markdown-next-actions-ready-lib.ts +1 -1
  115. package/scripts/phase5-execution-closure-plan-consumer-triage-lib.ts +4 -5
  116. package/scripts/phase5-execution-closure-status-markdown-next-actions-lib.ts +1 -1
  117. package/scripts/phase5-external-handoff-markdown-next-actions-lib.ts +1 -1
  118. package/scripts/prepare-phase5-escalation-submission.sh +1 -1
  119. package/scripts/refresh-phase5-latest-escalation.sh +1 -1
  120. package/scripts/run-phase5-post-support-refresh.sh +1 -1
  121. package/scripts/run-phase8-after-billing-reactivation.sh +2 -2
  122. package/scripts/run-phase8-autopilot.sh +3 -3
  123. package/scripts/run-phase8-close-ready.sh +2 -4
  124. package/scripts/run-phase8-doctor.sh +3 -3
  125. package/scripts/run-phase8-next-step.sh +3 -3
  126. package/scripts/run-phase8-status-pack.sh +3 -3
  127. package/scripts/run-phase8-tick.sh +5 -5
  128. package/scripts/build-phase8-ready-handoff-summary.sh +0 -66
  129. package/scripts/check-refactor-progress-single-active.sh +0 -25
  130. package/scripts/close-phase5-escalation-submission.sh +0 -81
package/VERSION CHANGED
@@ -1 +1 @@
1
- v6.3.58
1
+ v6.3.57
@@ -22,7 +22,10 @@ function runTsEntry(relativeEntry, forwardedArgs = []) {
22
22
  [tsxCli, entryFile, ...forwardedArgs],
23
23
  {
24
24
  stdio: 'inherit',
25
- env: process.env,
25
+ env: {
26
+ ...process.env,
27
+ PUMUKI_RUNTIME_EXECUTION_SOURCE: 'source-bin',
28
+ },
26
29
  }
27
30
  );
28
31
 
@@ -111,6 +111,16 @@ test('hasSwiftCallbackStyleSignature ignora usos fuera de firmas callback', () =
111
111
  assert.equal(hasSwiftCallbackStyleSignature(source), false);
112
112
  });
113
113
 
114
+ test('hasSwiftCallbackStyleSignature ignora closures async modernos con @Sendable', () => {
115
+ const source = `
116
+ public init(publish: @escaping @Sendable ([AppRoute]) async -> Void) {
117
+ self.publish = publish
118
+ }
119
+ `;
120
+
121
+ assert.equal(hasSwiftCallbackStyleSignature(source), false);
122
+ });
123
+
114
124
  test('detecta primitivas GCD y OperationQueue en codigo ejecutable', () => {
115
125
  const source = `
116
126
  DispatchQueue.main.async { }
@@ -35,7 +35,7 @@ test('iosEnterpriseRuleSet define reglas locked para plataforma ios', () => {
35
35
  assert.equal(byId.get('ios.solid.srp.presentation-mixed-responsibilities')?.when.kind, 'Heuristic');
36
36
  assert.equal(byId.get('ios.canary-001.presentation-mixed-responsibilities')?.when.kind, 'Heuristic');
37
37
  assert.equal(byId.get('ios.tdd.domain-changes-require-tests')?.when.kind, 'All');
38
- assert.equal(byId.get('ios.no-completion-handlers-outside-bridges')?.when.kind, 'Any');
38
+ assert.equal(byId.get('ios.no-completion-handlers-outside-bridges')?.when.kind, 'Heuristic');
39
39
  assert.equal(byId.get('ios.no-force-unwrap')?.when.kind, 'All');
40
40
  assert.equal(byId.get('ios.no-force-unwrap')?.when.conditions[0]?.kind, 'Heuristic');
41
41
 
@@ -90,6 +90,54 @@ test('ios.no-force-unwrap bloquea cuando la heuristica detecta force unwrap real
90
90
  assert.equal(findings[0]?.code, 'IOS_NO_FORCE_UNWRAP');
91
91
  });
92
92
 
93
+ test('ios.no-completion-handlers-outside-bridges ignora closures async modernos', () => {
94
+ const rule = iosEnterpriseRuleSet.find(
95
+ (candidate) => candidate.id === 'ios.no-completion-handlers-outside-bridges'
96
+ );
97
+ assert.ok(rule);
98
+
99
+ const findings = evaluateRules([rule], [
100
+ {
101
+ kind: 'FileContent',
102
+ path: 'Sources/AppComposition/Presentation/ProtectedPathCommandChannel.swift',
103
+ content:
104
+ 'public init(publish: @escaping @Sendable ([AppRoute]) async -> Void) { self.publish = publish }',
105
+ source: 'unit-test',
106
+ },
107
+ ]);
108
+
109
+ assert.deepEqual(findings, []);
110
+ });
111
+
112
+ test('ios.no-completion-handlers-outside-bridges bloquea callback-style signatures detectadas por AST', () => {
113
+ const rule = iosEnterpriseRuleSet.find(
114
+ (candidate) => candidate.id === 'ios.no-completion-handlers-outside-bridges'
115
+ );
116
+ assert.ok(rule);
117
+
118
+ const findings = evaluateRules([rule], [
119
+ {
120
+ kind: 'FileContent',
121
+ path: 'Sources/Features/Flights/Application/LegacyAdapter.swift',
122
+ content: 'func fetch(completion: @escaping (Result<Void, Error>) -> Void) {}',
123
+ source: 'unit-test',
124
+ },
125
+ {
126
+ kind: 'Heuristic',
127
+ ruleId: 'heuristics.ios.callback-style.ast',
128
+ severity: 'CRITICAL',
129
+ code: 'HEURISTICS_IOS_CALLBACK_STYLE_AST',
130
+ message: 'AST heuristic detected callback-style API signature outside bridge layers.',
131
+ filePath: 'Sources/Features/Flights/Application/LegacyAdapter.swift',
132
+ source: 'heuristics:ast',
133
+ },
134
+ ]);
135
+
136
+ assert.equal(findings.length, 1);
137
+ assert.equal(findings[0]?.ruleId, 'ios.no-completion-handlers-outside-bridges');
138
+ assert.equal(findings[0]?.code, 'IOS_NO_COMPLETION_HANDLERS');
139
+ });
140
+
93
141
  test('ios.canary-001.presentation-mixed-responsibilities emite finding bloqueante con metadata semantica', () => {
94
142
  const rule = iosEnterpriseRuleSet.find(
95
143
  (candidate) => candidate.id === 'ios.canary-001.presentation-mixed-responsibilities'
@@ -341,17 +341,10 @@ export const iosEnterpriseRuleSet: RuleSet = [
341
341
  exclude: ['**/Bridges/**', '**/*Tests*/**'],
342
342
  },
343
343
  when: {
344
- kind: 'Any',
345
- conditions: [
346
- {
347
- kind: 'FileContent',
348
- contains: ['@escaping'],
349
- },
350
- {
351
- kind: 'FileContent',
352
- contains: ['completion:'],
353
- },
354
- ],
344
+ kind: 'Heuristic',
345
+ where: {
346
+ ruleId: 'heuristics.ios.callback-style.ast',
347
+ },
355
348
  },
356
349
  then: {
357
350
  kind: 'Finding',
package/docs/README.md CHANGED
@@ -33,8 +33,7 @@ Mapa corto y humano de la documentación oficial de Pumuki.
33
33
  - `docs/validation/README.md`
34
34
 
35
35
  - Quiero saber en qué estamos ahora:
36
- - `docs/tracking/estado-ejecutivo.md`
37
- - `docs/tracking/plan-activo-de-trabajo.md`
36
+ - `PUMUKI-RESET-MASTER-PLAN.md`
38
37
 
39
38
  ## Estructura oficial
40
39
 
@@ -60,14 +59,9 @@ Mapa corto y humano de la documentación oficial de Pumuki.
60
59
  - `docs/codex-skills/`
61
60
  - Skills vendorizadas que el repo usa como contrato local.
62
61
 
63
- - `docs/tracking/`
64
- - Seguimiento permitido y solo el imprescindible.
65
- - Maestro: `docs/tracking/estado-ejecutivo.md`
66
- - Plan activo: `docs/tracking/plan-activo-de-trabajo.md`
67
- - Históricos técnicos permitidos:
68
- - `docs/tracking/historico-validacion-ruralgo-03-03-2026.md`
69
- - `docs/tracking/historico-contrato-aceptacion-c022.md`
70
- - Regla hard: solo puede existir una tarea `🚧` en el plan activo.
62
+ - Seguimiento operativo:
63
+ - Fuente viva única: `PUMUKI-RESET-MASTER-PLAN.md`
64
+ - Regla hard: no mantener MDs legacy de seguimiento dentro del repo.
71
65
 
72
66
  ## Fuera de `docs/`
73
67
 
@@ -76,6 +70,7 @@ Mapa corto y humano de la documentación oficial de Pumuki.
76
70
  - `CHANGELOG.md`
77
71
  - `AGENTS.md`
78
72
  - `PUMUKI.md`
73
+ - `PUMUKI-RESET-MASTER-PLAN.md`
79
74
 
80
75
  ## Lo que no se conserva
81
76
 
@@ -6,24 +6,35 @@ This file keeps only the operational highlights and rollout notes that matter wh
6
6
 
7
7
  ## 2026-03 (enterprise hardening updates)
8
8
 
9
- ### 2026-03-14 (v6.3.58)
10
-
11
- - PRE_WRITE no-op stability for consumer slices:
12
- - clean slices with `pending_changes=0` no longer fail by undetected multi-platform skills contract noise,
13
- - the resulting contract is now `NOT_APPLICABLE` when there is no materialized active platform scope.
14
- - PRE_WRITE freshness autocure:
15
- - stale `ai_evidence` and stale MCP receipts are refreshed even if the SDD session itself is invalid,
16
- - operational noise is removed before the final decision is reported.
17
- - Deep doctor de-escalation:
18
- - missing/stale evidence is now treated as operational drift (`warning`) instead of a hard diagnostic block.
9
+ ### 2026-03-14 (unreleased)
10
+
11
+ - Support surface removed from product baseline:
12
+ - consumer support bundle, startup triage, adapter readiness and phase5 closure helpers are now presented as auxiliary support toolkit,
13
+ - product docs and menu labels no longer describe that surface as baseline framework behavior.
14
+ - Canonical support namespace:
15
+ - new primary npm commands: `toolkit:*`,
16
+ - legacy `validation:*` commands remain only as compatibility aliases for existing automations.
17
+ - Legacy escalation/handoff surface frozen:
18
+ - `phase5-latest`, `phase5-escalation`, `phase8` and final external handoff/reporting now live under `toolkit:legacy:*`,
19
+ - shell chains and next-command hints already point to `toolkit:legacy:*` instead of treating `validation:*` as the primary contract.
19
20
  - Operational impact:
20
- - `SAAS · PUMUKI-021` is left with only release/adoption work; the core no longer has a technical residual for that bug.
21
- - Validation evidence:
22
- - `npm run -s typecheck` (`PASS`)
23
- - `node --import tsx --test integrations/gate/__tests__/evaluateAiGate.test.ts` (`40 pass / 0 fail`)
24
- - `node --import tsx --test --test-name-pattern "autocura evidence y receipt stale aunque la sesión SDD esté inválida|blocks AI gate violations in strict enforcement mode|blocks missing OpenSpec in strict enforcement mode|expone next_action de reconcile cuando active_rule_ids está vacío para código|expone next_action con slice atómico" integrations/lifecycle/__tests__/cli.test.ts` (`4 pass / 0 fail`)
25
- - `npm run -s validation:package-manifest` (`PASS`)
26
- - `npm pack --json --dry-run` (`PASS`)
21
+ - the product baseline stays focused on install/status/doctor/gate,
22
+ - support and rollout helpers remain available without contaminating the core surface,
23
+ - frozen escalation chains stay callable for legacy workflows but leave the official product API.
24
+ - Legacy export/reporting downgraded to read-only snapshots:
25
+ - legacy markdown export and consumer runtime export now declare themselves as `legacy read-only evidence snapshots`,
26
+ - they no longer publish prescriptive `next_action` / `blocked` copy or act as a parallel gate summary outside canonical `status` / `doctor`.
27
+ - Consumer menu shell parity tightened:
28
+ - consumer mode now groups `1/2/3/4` as canonical read-only gate flows, `8` as the matching read-only markdown export, and `5/6/7/9` as `Legacy Read-Only Diagnostics`,
29
+ - fixture validation on `ios-architecture-showcase` confirms parity between gate execution, menu summary, and exported markdown snapshot.
30
+ - Fixture acceptance baseline added:
31
+ - `validation:consumer-matrix-baseline` now runs repeated consumer matrix rounds against a real fixture repo,
32
+ - the command emits `report.json` + `summary.md` under `.audit-reports/fixture-matrix/<fixture>/consumer-menu-matrix-baseline/`, adds `doctor_blocking` plus `layerSummary`, and fails fast on drift,
33
+ - real baselines on `2026-03-14` are already stable for `ios-architecture-showcase`, `SAAS:APP_SUPERMERCADOS`, and `R_GO`, which makes per-layer acceptance visible before any promotion to blocking.
34
+ - Release readiness frozen for the reset:
35
+ - release decision now depends on an explicit checklist (`typecheck`, enterprise contract suite, package manifest, both package smokes, and the three fixture baselines),
36
+ - publication is allowed only from `release/<semver>` cut from `develop`,
37
+ - rollback is defined as previous stable semver + consumer repin + revalidation of `status` / `doctor` / fixture baseline.
27
38
 
28
39
  ### 2026-03-11 (v6.3.57)
29
40
 
@@ -301,7 +301,7 @@ Consumption: `docs/mcp/agent-context-consumption.md`.
301
301
  npm run framework:menu
302
302
  npm run adapter:install -- --agent=codex --dry-run
303
303
  npx --yes pumuki adapter install --agent=cursor
304
- npm run validation:adapter-readiness
304
+ npm run toolkit:adapter-readiness
305
305
  npm run typecheck
306
306
  npm run test:deterministic
307
307
  ```
@@ -318,11 +318,19 @@ Consumer menu pre-flight:
318
318
  - options `1/2/3/4` execute pre-flight before gate evaluation
319
319
  - pre-flight checks `repo_state`, stale/missing evidence, git-flow protected branches, and AI gate chain consistency
320
320
  - stage mapping is deterministic: `1/3 -> PRE_COMMIT`, `2/4 -> PRE_PUSH`
321
+ - consumer mode is a read-only shell: `1/2/3/4` are gate flows, `8` is the matching markdown export, and `5/6/7/9` are `Legacy Read-Only Diagnostics`
321
322
  - in modern UI mode (`PUMUKI_MENU_UI_V2=1`) options are grouped by domains while preserving IDs and execution wiring
322
323
  - advanced maintenance option `33` imports custom rules from `AGENTS.md/SKILLS.md` to `/.pumuki/custom-rules.json`
323
324
  - menu audits no longer bypass SDD; `sdd.policy.blocked` can be emitted in menu-driven runs
325
+ - advanced options `28/29/30/32` are legacy read-only audits: they help inspect evidence snapshots, but they do not redefine the canonical gate verdict
326
+ - acceptance baseline helper: `npm run validation:consumer-matrix-baseline -- --repo-root /absolute/path/to/<fixture> --fixture <name> --rounds 3 --json`
327
+ - baseline outputs are written under `.audit-reports/fixture-matrix/<fixture>/consumer-menu-matrix-baseline/{report.json,summary.md}` and return exit `1` on drift
328
+ - baseline `report.json` also carries `status.policyValidation`, `status.experimentalFeatures`, `doctor.blocking`, and `doctor.layerSummary`
329
+ - validated acceptance snapshots on `2026-03-14`: `ios-architecture-showcase=stable YES`, `SAAS:APP_SUPERMERCADOS=stable YES`, `R_GO=stable YES`
324
330
 
325
- ## Optional diagnostics adapters
331
+ ## Optional support toolkit
332
+
333
+ Primary namespace is `toolkit:*`. Legacy `validation:*` aliases remain only for compatibility.
326
334
 
327
335
  Files:
328
336
 
@@ -340,16 +348,15 @@ Files:
340
348
 
341
349
  Commands:
342
350
 
343
- - `npm run validation:adapter-readiness`
344
- - `npm run validation:adapter-session-status`
345
- - `npm run validation:adapter-real-session-report`
346
- - `npm run validation:phase5-blockers-readiness`
347
- - `npm run validation:phase5-execution-closure-status`
348
- - `npm run validation:phase5-execution-closure`
349
- - `npm run validation:phase5-external-handoff`
350
- - `npm run validation:clean-artifacts`
351
+ - `npm run toolkit:adapter-readiness`
352
+ - `npm run toolkit:adapter-session-status`
353
+ - `npm run toolkit:adapter-real-session-report`
354
+ - `npm run toolkit:phase5-blockers-readiness`
355
+ - `npm run toolkit:phase5-execution-closure-status`
356
+ - `npm run toolkit:phase5-execution-closure`
357
+ - `npm run toolkit:clean-artifacts`
351
358
 
352
- `validation:phase5-execution-closure` notes:
359
+ `toolkit:phase5-execution-closure` notes:
353
360
 
354
361
  - defaults to output directory `.audit-reports/phase5`
355
362
  - runs auth preflight and fails fast on auth/scope blockers
@@ -357,11 +364,23 @@ Commands:
357
364
 
358
365
  Framework menu action:
359
366
 
360
- - `Build adapter readiness report`
361
- - `Build phase5 execution closure status report`
362
- - `Run phase5 execution closure (one-shot orchestration)`
363
- - `Build phase5 external handoff report`
364
- - `Clean local validation artifacts`
367
+ - `Toolkit: build adapter readiness report`
368
+ - `Toolkit: build phase5 execution closure status report`
369
+ - `Toolkit: run phase5 execution closure`
370
+ - `Toolkit: clean local validation artifacts`
371
+
372
+ Frozen legacy support namespace:
373
+
374
+ - `npm run toolkit:legacy:phase5-external-handoff`
375
+ - `npm run toolkit:legacy:phase5-latest:refresh`
376
+ - `npm run toolkit:legacy:phase5-latest:ready-check`
377
+ - `npm run toolkit:legacy:phase5-escalation:prepare`
378
+ - `npm run toolkit:legacy:phase8:doctor`
379
+ - `npm run toolkit:legacy:phase8:close-ready`
380
+
381
+ Legacy advanced menu action:
382
+
383
+ - `Toolkit legacy: build phase5 external handoff report`
365
384
 
366
385
  Deterministic argument builders exported from menu module:
367
386
 
@@ -74,13 +74,20 @@ Ownership model:
74
74
  - CI and team members must evaluate the same committed contract files.
75
75
  - User-home skill sources (`~/.codex/**`) are not runtime inputs for CI gate decisions.
76
76
 
77
- Compile/check commands:
77
+ Compile/check commands in the Pumuki source workspace:
78
78
 
79
79
  ```bash
80
80
  npm run skills:compile
81
81
  npm run skills:lock:check
82
82
  ```
83
83
 
84
+ If you are validating an installed consumer package rather than the Pumuki source repo, invoke the packaged tool directly instead of assuming consumer-local `npm run skills:*` scripts:
85
+
86
+ ```bash
87
+ npx --yes tsx@4.21.0 ./node_modules/pumuki/scripts/compile-skills-lock.ts
88
+ npx --yes tsx@4.21.0 ./node_modules/pumuki/scripts/compile-skills-lock.ts --check
89
+ ```
90
+
84
91
  CI guardrail:
85
92
 
86
93
  - `.github/workflows/ci.yml` includes `Skills Lock Freshness` and fails when committed lock is stale.
@@ -109,39 +109,39 @@ npx tsx integrations/git/prePushBackend.cli.ts
109
109
  npx tsx integrations/git/ciFrontend.cli.ts
110
110
  ```
111
111
 
112
- ## Operational adapters (optional)
112
+ ## Support toolkit (optional)
113
113
 
114
- Adapter diagnostics are intentionally outside the deterministic gate runtime.
114
+ Adapter diagnostics and rollout helpers are intentionally outside the deterministic gate runtime and outside the product baseline.
115
115
 
116
116
  - They live under `scripts/*` and `docs/validation/*`.
117
117
  - They do not change PRE_COMMIT/PRE_PUSH/CI outcomes.
118
- - They support rollout diagnostics and incident triage.
118
+ - They support rollout diagnostics and incident triage as auxiliary toolkit.
119
119
 
120
120
  Typical commands:
121
121
 
122
122
  ```bash
123
- npm run validation:adapter-readiness -- \
123
+ npm run toolkit:adapter-readiness -- \
124
124
  --adapter-report .audit-reports/adapter/adapter-real-session-report.md \
125
125
  --out .audit-reports/adapter/adapter-readiness.md
126
126
 
127
- npm run validation:adapter-session-status -- \
127
+ npm run toolkit:adapter-session-status -- \
128
128
  --out .audit-reports/adapter/adapter-session-status.md
129
129
 
130
- npm run validation:adapter-real-session-report -- \
130
+ npm run toolkit:adapter-real-session-report -- \
131
131
  --status-report .audit-reports/adapter/adapter-session-status.md \
132
132
  --out .audit-reports/adapter/adapter-real-session-report.md
133
133
 
134
- npm run validation:phase5-blockers-readiness -- \
134
+ npm run toolkit:phase5-blockers-readiness -- \
135
135
  --consumer-triage-report .audit-reports/consumer-triage/consumer-startup-triage-report.md \
136
136
  --out .audit-reports/phase5/phase5-blockers-readiness.md
137
137
 
138
- npm run validation:phase5-execution-closure-status -- \
138
+ npm run toolkit:phase5-execution-closure-status -- \
139
139
  --phase5-blockers-report .audit-reports/phase5/phase5-blockers-readiness.md \
140
140
  --consumer-unblock-report .audit-reports/consumer-triage/consumer-startup-unblock-status.md \
141
141
  --out .audit-reports/phase5/phase5-execution-closure-status.md
142
142
  ```
143
143
 
144
- Note: current adapter readiness command uses `--adapter-report` as the adapter input file flag.
144
+ Primary namespace is `toolkit:*`; legacy `validation:*` aliases remain only for compatibility. Current adapter readiness command still uses `--adapter-report` as the adapter input file flag.
145
145
 
146
146
  ### CI workflows
147
147
 
@@ -80,6 +80,34 @@ npm run test:saas-ingestion
80
80
  npm run test:deterministic
81
81
  ```
82
82
 
83
+ ## Release readiness del reset
84
+
85
+ Before deciding whether the reset is publishable, freeze this exact sequence:
86
+
87
+ ```bash
88
+ npm run -s typecheck
89
+ npm run -s validation:contract-suite:enterprise
90
+ npm run -s validation:package-manifest
91
+ npm run -s validation:package-smoke
92
+ npm run -s validation:package-smoke:minimal
93
+ npm run -s validation:consumer-matrix-baseline -- --repo-root /Users/juancarlosmerlosalbarracin/Developer/Projects/ios-architecture-showcase --fixture ios-architecture-showcase --rounds 3 --json
94
+ npm run -s validation:consumer-matrix-baseline -- --repo-root "/Users/juancarlosmerlosalbarracin/Developer/Projects/SAAS:APP_SUPERMERCADOS" --fixture saas-app-supermercados --rounds 3 --json
95
+ npm run -s validation:consumer-matrix-baseline -- --repo-root /Users/juancarlosmerlosalbarracin/Developer/Projects/R_GO --fixture r_go --rounds 3 --json
96
+ git diff --check
97
+ ```
98
+
99
+ Publication rule:
100
+
101
+ - only publish from `release/<semver>` cut from `develop`
102
+ - do not publish while a framework-owned fixture failure or known false-positive blocking signal remains
103
+ - consumer-owned debt may remain only when it is explicitly classified and does not change the canonical framework verdict
104
+
105
+ Minimum rollback:
106
+
107
+ - revert to the previous stable `pumuki` semver
108
+ - repin affected consumers to that exact version
109
+ - rerun `status`, `doctor`, and the fixture baseline on the impacted consumer before declaring rollback complete
110
+
83
111
  ## CI alignment
84
112
 
85
113
  Workflows rely on the same deterministic model and should remain consistent with local commands:
@@ -121,6 +121,12 @@ npx --yes --package pumuki@latest pumuki-framework
121
121
  Menu starts in `Consumer` mode by default (focused operational options).
122
122
  Use `A` to switch to `Advanced` mode (full options), and `C` to return to `Consumer`.
123
123
  Advanced mode options include short inline contextual help.
124
+ Consumer mode is now a minimal read-only shell:
125
+
126
+ - `1/2/3/4` are the canonical read-only gate flows
127
+ - `8` exports the same evidence snapshot in markdown form
128
+ - `5/6/7/9` remain available only as `Legacy Read-Only Diagnostics`
129
+
124
130
  If needed, you can start directly in advanced mode:
125
131
 
126
132
  ```bash
@@ -145,14 +151,16 @@ To avoid host-specific defaults for consumer diagnostics prompts, set:
145
151
  export PUMUKI_CONSUMER_REPO_PATH=/absolute/path/to/consumer-repo
146
152
  ```
147
153
 
148
- Optional diagnostics adapters (runtime diagnostics and consumer startup triage) are also exposed from the menu, but they are not required for PRE_COMMIT/PRE_PUSH/CI gate outcomes.
154
+ Advanced menu still exposes an auxiliary support toolkit (runtime diagnostics, consumer startup triage and phase5 closure helpers), but that toolkit is outside the product baseline and never required for PRE_COMMIT/PRE_PUSH/CI gate outcomes.
155
+
156
+ Advanced menu options `28/29/30/32` are legacy read-only audits. They remain available for diagnosis, but they are not part of the baseline gate shell and must not be interpreted as the canonical gate result.
149
157
 
150
- Adapter readiness diagnostics are available from the interactive menu as:
158
+ Support toolkit actions are available from the interactive menu as:
151
159
 
152
- - `Build adapter readiness report`
153
- - `Build phase5 execution closure status report`
154
- - `Run phase5 execution closure (one-shot orchestration)`
155
- - `Clean local validation artifacts`
160
+ - `Toolkit: build adapter readiness report`
161
+ - `Toolkit: build phase5 execution closure status report`
162
+ - `Toolkit: run phase5 execution closure`
163
+ - `Toolkit: clean local validation artifacts`
156
164
 
157
165
  ### 1.1) Non-interactive consumer matrix (1/2/3/4/9)
158
166
 
@@ -183,6 +191,31 @@ Diagnosis semantics:
183
191
  - `violations-detected`: one or more findings were produced.
184
192
  - `unknown`: evidence is missing/invalid or report normalization could not resolve status.
185
193
 
194
+ Repeated baseline for a real fixture:
195
+
196
+ ```bash
197
+ npm run validation:consumer-matrix-baseline -- \
198
+ --repo-root /absolute/path/to/ios-architecture-showcase \
199
+ --fixture ios-architecture-showcase \
200
+ --rounds 3 \
201
+ --json
202
+ ```
203
+
204
+ This command writes `report.json` and `summary.md` under `.audit-reports/fixture-matrix/<fixture>/consumer-menu-matrix-baseline/`.
205
+ Exit code is `0` when the repeated matrix stays stable and `1` when drift is detected across rounds.
206
+ The JSON snapshot also includes:
207
+
208
+ - `status.policyValidation`
209
+ - `status.experimentalFeatures`
210
+ - `doctor.blocking`
211
+ - `doctor.layerSummary` for `core`, `operational`, `integration`, `policy-pack`, and `experimental`
212
+
213
+ Real baselines validated on `2026-03-14`:
214
+
215
+ - `ios-architecture-showcase`: `stable=YES`, with deterministic matrix output across `3` rounds
216
+ - `SAAS:APP_SUPERMERCADOS`: `stable=YES`, `layerSummary={core:FAIL, operational:WARN, integration:FAIL, policy-pack:WARN, experimental:PASS}`
217
+ - `R_GO`: `stable=YES`, `layerSummary={core:PASS, operational:WARN, integration:PASS, policy-pack:WARN, experimental:PASS}`
218
+
186
219
  Optional canary execution (controlled temporary violation + cleanup):
187
220
 
188
221
  ```bash
@@ -311,13 +344,20 @@ npx --yes pumuki adapter install --agent=codex --dry-run
311
344
  npx --yes pumuki adapter install --agent=cursor
312
345
  npm run adapter:install -- --agent=claude
313
346
 
314
- # skills engine helpers
347
+ # skills engine helpers (inside the Pumuki source repo)
315
348
  npm run skills:compile
316
349
  npm run skills:lock:check
317
350
  npm run skills:import:custom
318
351
  npm run skills:import:custom -- --source /abs/path/to/SKILL.md --source ./skills/backend/SKILL.md
319
352
  ```
320
353
 
354
+ If you are operating from a consumer repository with the published package installed, do not assume `npm run skills:*` exists in the consumer. Use the packaged script directly instead:
355
+
356
+ ```bash
357
+ npx --yes tsx@4.21.0 ./node_modules/pumuki/scripts/compile-skills-lock.ts
358
+ npx --yes tsx@4.21.0 ./node_modules/pumuki/scripts/compile-skills-lock.ts --check
359
+ ```
360
+
321
361
  `pumuki remove` is the enterprise-safe removal path because it performs lifecycle cleanup before package uninstall.
322
362
  When no modules remain, it also prunes orphan `node_modules/.package-lock.json` residue.
323
363
  Plain `npm uninstall pumuki` removes only the dependency; it does not remove managed hooks or lifecycle state.
@@ -570,56 +610,58 @@ Verificación post-rollback:
570
610
  - `npx --yes pumuki analytics hotspots diagnose --json` puede quedar en `degraded` por artefactos ausentes.
571
611
  - El flujo local de gate (`pre-write/pre-commit/pre-push/ci`) sigue operativo y no depende de publicación SaaS.
572
612
 
573
- ### 3) Diagnostics reports (optional adapters)
613
+ ### 3) Support toolkit reports (advanced-only, optional)
614
+
615
+ These commands are support tooling, not gate baseline. Primary namespace is `toolkit:*`; legacy `validation:*` aliases remain only for compatibility.
574
616
 
575
617
  ```bash
576
618
  # Adapter-only readiness
577
619
  # (current adapter implementation consumes --adapter-report as input path)
578
- npm run validation:adapter-readiness -- \
620
+ npm run toolkit:adapter-readiness -- \
579
621
  --adapter-report .audit-reports/adapter/adapter-real-session-report.md \
580
622
  --out .audit-reports/adapter/adapter-readiness.md
581
623
 
582
624
  # Adapter runtime status/report aliases (provider-agnostic command naming)
583
- npm run validation:adapter-session-status -- \
625
+ npm run toolkit:adapter-session-status -- \
584
626
  --out .audit-reports/adapter/adapter-session-status.md
585
627
 
586
- npm run validation:adapter-real-session-report -- \
628
+ npm run toolkit:adapter-real-session-report -- \
587
629
  --status-report .audit-reports/adapter/adapter-session-status.md \
588
630
  --out .audit-reports/adapter/adapter-real-session-report.md
589
631
 
590
632
  # Phase 5 consolidated readiness (consumer triage required, adapter report optional by default)
591
- npm run validation:phase5-blockers-readiness -- \
633
+ npm run toolkit:phase5-blockers-readiness -- \
592
634
  --consumer-triage-report .audit-reports/consumer-triage/consumer-startup-triage-report.md \
593
635
  --out .audit-reports/phase5/phase5-blockers-readiness.md
594
636
 
595
637
  # Phase 5 execution-closure status snapshot
596
- npm run validation:phase5-execution-closure-status -- \
638
+ npm run toolkit:phase5-execution-closure-status -- \
597
639
  --phase5-blockers-report .audit-reports/phase5/phase5-blockers-readiness.md \
598
640
  --consumer-unblock-report .audit-reports/consumer-triage/consumer-startup-unblock-status.md \
599
641
  --out .audit-reports/phase5/phase5-execution-closure-status.md
600
642
 
601
643
  # One-shot: run full Phase 5 execution-closure orchestration
602
- npm run validation:phase5-execution-closure -- \
644
+ npm run toolkit:phase5-execution-closure -- \
603
645
  --repo <owner>/<repo> \
604
646
  --out-dir .audit-reports/phase5 \
605
647
  --skip-workflow-lint
606
648
 
607
649
  # Local mock-consumer closure (no external GH dependency)
608
- npm run validation:phase5-execution-closure -- \
650
+ npm run toolkit:phase5-execution-closure -- \
609
651
  --repo <owner>/<repo> \
610
652
  --out-dir .audit-reports/phase5 \
611
653
  --mock-consumer
612
654
 
613
655
  # Optional: disable auth preflight fail-fast
614
- npm run validation:phase5-execution-closure -- \
656
+ npm run toolkit:phase5-execution-closure -- \
615
657
  --repo <owner>/<repo> \
616
658
  --out-dir .audit-reports/phase5 \
617
659
  --skip-workflow-lint \
618
660
  --skip-auth-preflight
619
661
 
620
662
  # Optional: clean local generated validation artifacts
621
- npm run validation:clean-artifacts
622
- npm run validation:clean-artifacts -- --dry-run
663
+ npm run toolkit:clean-artifacts
664
+ npm run toolkit:clean-artifacts -- --dry-run
623
665
  ```
624
666
 
625
667
  ## Scope behavior
@@ -13,13 +13,8 @@ Este directorio contiene solo documentación estable de validación y runbooks o
13
13
 
14
14
  ## Estado de seguimiento
15
15
 
16
- - Maestro: `docs/tracking/estado-ejecutivo.md`
17
- - Plan activo: `docs/tracking/plan-activo-de-trabajo.md`
18
- - Histórico permitido: `docs/tracking/historico-validacion-ruralgo-03-03-2026.md`
19
-
20
- ## Histórico técnico conservado
21
-
22
- - `docs/tracking/historico-contrato-aceptacion-c022.md`
16
+ - Fuente viva única: `PUMUKI-RESET-MASTER-PLAN.md`
17
+ - No se conservan MDs legacy de seguimiento en `docs/tracking/`.
23
18
 
24
19
  ## Política de higiene
25
20
 
@@ -34,4 +29,33 @@ Este directorio contiene solo documentación estable de validación y runbooks o
34
29
 
35
30
  - Higiene hard del worktree propio: `npm run -s validation:self-worktree-hygiene`
36
31
  - Suite contractual enterprise: `npm run -s validation:contract-suite:enterprise`
32
+ - Baseline repetible de fixture consumer: `npm run -s validation:consumer-matrix-baseline -- --repo-root /absolute/path/to/<fixture> --fixture <name> --rounds 3 --json`
33
+ - emite `report.json` + `summary.md` con `doctor_blocking` y `layerSummary`
34
+ - validado en `ios-architecture-showcase`, `SAAS:APP_SUPERMERCADOS` y `R_GO`
37
35
  - Verificación de plan activo único + higiene hard del worktree propio: `npm run -s validation:tracking-single-active`
36
+
37
+ ## Release readiness del reset
38
+
39
+ Secuencia mínima congelada antes de decidir una publicación útil:
40
+
41
+ - `npm run -s typecheck`
42
+ - `npm run -s validation:contract-suite:enterprise`
43
+ - `npm run -s validation:package-manifest`
44
+ - `npm run -s validation:package-smoke`
45
+ - `npm run -s validation:package-smoke:minimal`
46
+ - `npm run -s validation:consumer-matrix-baseline -- --repo-root /Users/juancarlosmerlosalbarracin/Developer/Projects/ios-architecture-showcase --fixture ios-architecture-showcase --rounds 3 --json`
47
+ - `npm run -s validation:consumer-matrix-baseline -- --repo-root "/Users/juancarlosmerlosalbarracin/Developer/Projects/SAAS:APP_SUPERMERCADOS" --fixture saas-app-supermercados --rounds 3 --json`
48
+ - `npm run -s validation:consumer-matrix-baseline -- --repo-root /Users/juancarlosmerlosalbarracin/Developer/Projects/R_GO --fixture r_go --rounds 3 --json`
49
+ - `git diff --check`
50
+
51
+ Regla de publicación:
52
+
53
+ - publicar solo desde `release/<semver>` cortada desde `develop`
54
+ - exigir checklist verde o hallazgos remanentes ya clasificados como deuda del consumer, nunca como bug del framework
55
+ - no publicar si reaparece un falso positivo blocking conocido o si un fixture necesita bypass manual
56
+
57
+ Rollback mínimo:
58
+
59
+ - volver al semver estable previo de `pumuki`
60
+ - repinear consumers afectados a esa versión exacta
61
+ - revalidar `status`, `doctor` y la baseline del consumer impactado antes de cerrar el incidente
@@ -208,7 +208,7 @@ export const checkSkillsLockStatus = (
208
208
  if (!existsSync(lockPath)) {
209
209
  return {
210
210
  status: 'missing',
211
- details: `${lockFile} is missing. Run skills lock compilation.`,
211
+ details: `${lockFile} is missing. Generate it with the installed Pumuki skills lock tool.`,
212
212
  };
213
213
  }
214
214