pumuki 6.3.39 → 6.3.40
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/README.md +21 -12
- package/VERSION +1 -1
- package/core/gate/evaluateRules.test.ts +40 -0
- package/core/gate/evaluateRules.ts +7 -1
- package/core/rules/Consequence.ts +1 -0
- package/docs/CONFIGURATION.md +50 -0
- package/docs/INSTALLATION.md +38 -11
- package/docs/MCP_SERVERS.md +1 -1
- package/docs/README.md +1 -0
- package/docs/RELEASE_NOTES.md +44 -0
- package/docs/USAGE.md +191 -9
- package/docs/registro-maestro-de-seguimiento.md +2 -2
- package/docs/seguimiento-activo-pumuki-saas-supermercados.md +1592 -1
- package/docs/validation/README.md +2 -1
- package/docs/validation/ast-intelligence-roadmap.md +96 -0
- package/integrations/config/skillsCustomRules.ts +14 -0
- package/integrations/config/skillsDetectorRegistry.ts +11 -1
- package/integrations/config/skillsLock.ts +30 -0
- package/integrations/config/skillsMarkdownRules.ts +14 -3
- package/integrations/config/skillsRuleSet.ts +25 -3
- package/integrations/evidence/readEvidence.test.ts +3 -2
- package/integrations/evidence/readEvidence.ts +14 -4
- package/integrations/evidence/repoState.ts +10 -2
- package/integrations/evidence/schema.test.ts +3 -2
- package/integrations/evidence/schema.ts +3 -0
- package/integrations/evidence/writeEvidence.test.ts +3 -2
- package/integrations/gate/evaluateAiGate.ts +511 -2
- package/integrations/git/GitService.ts +5 -1
- package/integrations/git/astIntelligenceDualValidation.ts +275 -0
- package/integrations/git/gitAtomicity.ts +42 -9
- package/integrations/git/resolveGitRefs.ts +37 -0
- package/integrations/git/runPlatformGate.ts +228 -1
- package/integrations/git/runPlatformGateEvaluation.ts +4 -0
- package/integrations/git/stageRunners.ts +116 -2
- package/integrations/lifecycle/cli.ts +759 -22
- package/integrations/lifecycle/doctor.ts +62 -0
- package/integrations/lifecycle/index.ts +1 -0
- package/integrations/lifecycle/packageInfo.ts +25 -3
- package/integrations/lifecycle/policyReconcile.ts +304 -0
- package/integrations/lifecycle/preWriteAutomation.ts +42 -2
- package/integrations/lifecycle/watch.ts +365 -0
- package/integrations/mcp/aiGateCheck.ts +59 -2
- package/integrations/mcp/autoExecuteAiStart.ts +25 -1
- package/integrations/mcp/preFlightCheck.ts +13 -0
- package/integrations/sdd/evidenceScaffold.ts +223 -0
- package/integrations/sdd/index.ts +2 -0
- package/integrations/sdd/stateSync.ts +400 -0
- package/integrations/sdd/syncDocs.ts +97 -2
- package/package.json +4 -1
- package/scripts/backlog-action-reasons-lib.ts +38 -0
- package/scripts/backlog-id-issue-map-lib.ts +69 -0
- package/scripts/backlog-json-contract-lib.ts +3 -0
- package/scripts/framework-menu-consumer-preflight-lib.ts +6 -0
- package/scripts/package-install-smoke-command-resolution-lib.ts +64 -0
- package/scripts/package-install-smoke-consumer-npm-lib.ts +43 -0
- package/scripts/package-install-smoke-consumer-repo-setup-lib.ts +2 -0
- package/scripts/package-install-smoke-execution-steps-lib.ts +27 -9
- package/scripts/package-install-smoke-lifecycle-lib.ts +15 -4
- package/scripts/package-install-smoke-workspace-factory-lib.ts +4 -1
- package/scripts/reconcile-consumer-backlog-issues-lib.ts +651 -0
- package/scripts/reconcile-consumer-backlog-issues.ts +348 -0
- package/scripts/watch-consumer-backlog-lib.ts +465 -0
- package/scripts/watch-consumer-backlog.ts +326 -0
package/docs/USAGE.md
CHANGED
|
@@ -70,8 +70,8 @@ Pumuki enforces OpenSpec policy/session before allowing normal gate execution.
|
|
|
70
70
|
Minimal daily flow:
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
# bootstrap lifecycle + OpenSpec
|
|
74
|
-
npx --yes pumuki
|
|
73
|
+
# bootstrap lifecycle + OpenSpec + MCP wiring + doctor deep
|
|
74
|
+
npx --yes pumuki bootstrap --enterprise --agent=codex
|
|
75
75
|
|
|
76
76
|
# inspect current SDD status
|
|
77
77
|
npx --yes pumuki sdd status
|
|
@@ -110,7 +110,7 @@ npm run framework:menu
|
|
|
110
110
|
Consumer repository:
|
|
111
111
|
|
|
112
112
|
```bash
|
|
113
|
-
npx --yes pumuki-framework
|
|
113
|
+
npx --yes --package pumuki@latest pumuki-framework
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
Menu starts in `Consumer` mode by default (focused operational options).
|
|
@@ -211,16 +211,16 @@ Menu-driven audits apply SDD guardrails with the same strict semantics as stage
|
|
|
211
211
|
|
|
212
212
|
```bash
|
|
213
213
|
# PRE_COMMIT
|
|
214
|
-
npx --yes pumuki-pre-commit
|
|
214
|
+
npx --yes --package pumuki@latest pumuki-pre-commit
|
|
215
215
|
|
|
216
216
|
# PRE_PUSH
|
|
217
|
-
npx --yes pumuki-pre-push
|
|
217
|
+
npx --yes --package pumuki@latest pumuki-pre-push
|
|
218
218
|
|
|
219
219
|
# CI
|
|
220
|
-
npx --yes pumuki-ci
|
|
220
|
+
npx --yes --package pumuki@latest pumuki-ci
|
|
221
221
|
|
|
222
222
|
# PRE_WRITE (SDD + AI Gate pre-write policy check)
|
|
223
|
-
npx --yes pumuki-pre-write
|
|
223
|
+
npx --yes --package pumuki@latest pumuki-pre-write
|
|
224
224
|
```
|
|
225
225
|
|
|
226
226
|
### 2.1) Lifecycle + SDD + Loop CLI (install / uninstall / remove / update / doctor / status / sdd / loop)
|
|
@@ -236,15 +236,26 @@ npm uninstall pumuki
|
|
|
236
236
|
`npm upgrade pumuki` is valid where npm maps `upgrade` to `update`.
|
|
237
237
|
|
|
238
238
|
```bash
|
|
239
|
-
#
|
|
240
|
-
npx --yes pumuki
|
|
239
|
+
# recommended: one-shot enterprise bootstrap
|
|
240
|
+
npx --yes pumuki bootstrap --enterprise --agent=codex
|
|
241
|
+
|
|
242
|
+
# fallback: separated flow
|
|
243
|
+
npx --yes pumuki install --with-mcp --agent=codex
|
|
241
244
|
|
|
242
245
|
# inspect enterprise baseline safety checks
|
|
243
246
|
npx --yes pumuki doctor
|
|
247
|
+
# include deterministic adapter/mcp wiring health checks
|
|
248
|
+
npx --yes pumuki doctor --deep --json
|
|
244
249
|
|
|
245
250
|
# show lifecycle status
|
|
246
251
|
npx --yes pumuki status
|
|
247
252
|
|
|
253
|
+
# proactive local watch (worktree + anti-spam notifications)
|
|
254
|
+
npx --yes pumuki watch --stage=PRE_COMMIT --scope=workingTree --severity=high --interval-ms=3000 --notify-cooldown-ms=30000
|
|
255
|
+
|
|
256
|
+
# one-shot watch tick (scripts/diagnostics)
|
|
257
|
+
npx --yes pumuki watch --once --json
|
|
258
|
+
|
|
248
259
|
# show SDD/OpenSpec status snapshot
|
|
249
260
|
npx --yes pumuki sdd status
|
|
250
261
|
|
|
@@ -256,6 +267,15 @@ npx --yes pumuki sdd session --open --change=<change-id>
|
|
|
256
267
|
npx --yes pumuki sdd session --refresh
|
|
257
268
|
npx --yes pumuki sdd session --close
|
|
258
269
|
|
|
270
|
+
# reconcile AGENTS/skills.lock/policy-as-code contract
|
|
271
|
+
npx --yes pumuki policy reconcile --json
|
|
272
|
+
|
|
273
|
+
# scaffold deterministic scenario evidence from real test metadata
|
|
274
|
+
npx --yes pumuki sdd evidence --scenario-id=<scenario-id> --test-command='npm run test -- --grep <scenario-id>' --test-status=passed --dry-run --json
|
|
275
|
+
|
|
276
|
+
# sync scenario state into board artifact (dry-run/apply + conflict-safe)
|
|
277
|
+
npx --yes pumuki sdd state-sync --scenario-id=<scenario-id> --status=in_progress --dry-run --json
|
|
278
|
+
|
|
259
279
|
# local hotspots analytics and SaaS publication diagnostics
|
|
260
280
|
npx --yes pumuki analytics hotspots report --top=10 --since-days=90 --json
|
|
261
281
|
npx --yes pumuki analytics hotspots diagnose --json
|
|
@@ -299,8 +319,134 @@ Loop runtime behavior:
|
|
|
299
319
|
- Gate policy is strict fail-fast: a blocked attempt returns exit code `1` and status `blocked`.
|
|
300
320
|
- Per-attempt evidence is persisted as `.pumuki/loop-sessions/<session-id>.attempt-<n>.json`.
|
|
301
321
|
|
|
322
|
+
Watch runtime behavior:
|
|
323
|
+
- `pumuki watch` evaluates gate policy on local changes and emits terminal summaries on each evaluation tick.
|
|
324
|
+
- `--severity` defines notification threshold (`critical|high|medium|low`) without changing gate block policy.
|
|
325
|
+
- `--notify-cooldown-ms` enables anti-spam throttling for repeated alerts with equal signature.
|
|
326
|
+
- `--no-notify` keeps watch output without OS notifications.
|
|
327
|
+
- `--once` or `--iterations=<n>` is recommended for CI/scripts to avoid long-running sessions.
|
|
328
|
+
|
|
329
|
+
<a id="backlog-tooling"></a>
|
|
330
|
+
Backlog tooling behavior (`watch` + `reconcile` scripts):
|
|
331
|
+
- mapping precedence is deterministic: inline `#issue` -> `--id-issue-map-from` -> `--id-issue-map` -> `--resolve-missing-via-gh`.
|
|
332
|
+
- `watch-consumer-backlog` is non-destructive and reports action-required drift.
|
|
333
|
+
- `watch-consumer-backlog` reports heading drift (`heading_drift`) when section headers `### ✅/🚧/⏳/⛔ <ID>` diverge from effective table status.
|
|
334
|
+
- `watch-consumer-backlog --json` exposes `heading_drift_count` for low-friction alerting parsers.
|
|
335
|
+
- `watch-consumer-backlog --json` exposes `classification_counts` (`needs_issue`, `drift_closed_issue`, `active_issue`, `heading_drift`).
|
|
336
|
+
- `watch-consumer-backlog --json` exposes `action_required_reasons` when findings are active.
|
|
337
|
+
- `watch-consumer-backlog --json` exposes `next_command` when action is required (safe reconcile sequence).
|
|
338
|
+
- `watch-consumer-backlog --json` exposes `next_command_reason` when `next_command` is present.
|
|
339
|
+
- `watch-consumer-backlog --json` exposes `next_commands[]` (ordered dry-run/apply steps) when action is required.
|
|
340
|
+
- `watch-consumer-backlog --json` includes `next_commands[].id` (1-based stable order).
|
|
341
|
+
- `watch-consumer-backlog --json` includes `next_commands[].safety` (`read_only` | `mutating`) for orchestration safety.
|
|
342
|
+
- `watch-consumer-backlog --json` includes `next_commands[].idempotent` for retry-safe orchestration.
|
|
343
|
+
- `watch-consumer-backlog --json` includes `next_commands[].max_retries` (`2` for `dry_run`, `0` for `apply`) for bounded retries.
|
|
344
|
+
- `watch-consumer-backlog --json` includes `next_commands[].retry_strategy` (`immediate` for `dry_run`, `manual` for `apply`) for retry policy semantics.
|
|
345
|
+
- `watch-consumer-backlog --json` includes `next_commands[].estimated_duration_ms` for timeout/scheduling hints.
|
|
346
|
+
- `watch-consumer-backlog --json` includes `next_commands[].requires_confirmation` for safe mutating-step execution.
|
|
347
|
+
- `watch-consumer-backlog --json` includes `next_commands[].depends_on` for step sequencing (`null` for dry-run, `dry_run` for apply).
|
|
348
|
+
- `watch-consumer-backlog --json` includes `next_commands[].execution_group_id` to correlate all suggested steps in the same run.
|
|
349
|
+
- `watch-consumer-backlog --json` includes `next_commands[].origin_tool` (`backlog-watch`) for multi-tool aggregation.
|
|
350
|
+
- `watch-consumer-backlog --json` includes `next_commands[].origin_schema_version` to bind each step to the emitting schema contract.
|
|
351
|
+
- `watch-consumer-backlog --json` includes `next_commands[].origin_contract_id` to bind each step to compatibility contract id.
|
|
352
|
+
- `watch-consumer-backlog --json` includes `next_commands[].recommendation_type` (`reconcile_loop`) for recommendation classification.
|
|
353
|
+
- `watch-consumer-backlog --json` includes `next_commands[].priority` (`high` for `dry_run`, `medium` for `apply`) for scheduling.
|
|
354
|
+
- `watch-consumer-backlog --json` includes `next_commands[].description` for human-readable step guidance.
|
|
355
|
+
- `watch-consumer-backlog --json` includes `next_commands[].expected_outcome` with success signal per step.
|
|
356
|
+
- `watch-consumer-backlog --json` includes `next_commands[].success_criteria` with stable machine-readable success checks.
|
|
357
|
+
- `watch-consumer-backlog --json` includes `next_commands[].success_probe` with deterministic post-execution verification hints.
|
|
358
|
+
- `watch-consumer-backlog --json` includes `next_commands[].probe_kind` (`json_contract` | `state_recheck`) to type post-execution probes.
|
|
359
|
+
- `watch-consumer-backlog --json` includes `next_commands[].probe_timeout_ms` with recommended timeout for `success_probe`.
|
|
360
|
+
- `watch-consumer-backlog --json` includes `next_commands[].failure_hint` with compact remediation guidance per step.
|
|
361
|
+
- `watch-consumer-backlog` (modo humano) imprime `action_required_reasons=<...|none>`.
|
|
362
|
+
- `watch-consumer-backlog` (modo humano) añade hint `--no-fail` cuando hay acción requerida.
|
|
363
|
+
- `reconcile-consumer-backlog-issues` supports dry-run/apply and now reports mapping source (`none|json|markdown|merged`).
|
|
364
|
+
- `reconcile-consumer-backlog-issues --json` includes heading sync metadata (`headingUpdated`, `headingChanges`) for section headings `### ✅/🚧/⏳/⛔ <ID>`.
|
|
365
|
+
- `reconcile-consumer-backlog-issues --json` exposes `heading_changes_count` for lightweight consumers.
|
|
366
|
+
- `reconcile-consumer-backlog-issues --json` exposes `classification_counts` (changes + summary counters) for dashboards.
|
|
367
|
+
- `reconcile-consumer-backlog-issues --json` exposes `action_required_reasons` for pending deltas in dry-run/apply flows.
|
|
368
|
+
- `reconcile-consumer-backlog-issues --json` exposes `next_command` when there are actionable deltas (`--json` + `--apply` sequence).
|
|
369
|
+
- `reconcile-consumer-backlog-issues --json` exposes `next_command_reason` when `next_command` is present.
|
|
370
|
+
- `reconcile-consumer-backlog-issues --json` exposes `next_commands[]` (ordered dry-run/apply steps) when action is required.
|
|
371
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].id` (1-based stable order).
|
|
372
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].safety` (`read_only` | `mutating`) for orchestration safety.
|
|
373
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].idempotent` for retry-safe orchestration.
|
|
374
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].max_retries` (`2` for `dry_run`, `0` for `apply`) for bounded retries.
|
|
375
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].retry_strategy` (`immediate` for `dry_run`, `manual` for `apply`) for retry policy semantics.
|
|
376
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].estimated_duration_ms` for timeout/scheduling hints.
|
|
377
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].requires_confirmation` for safe mutating-step execution.
|
|
378
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].depends_on` for step sequencing (`null` for dry-run, `dry_run` for apply).
|
|
379
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].execution_group_id` to correlate all suggested steps in the same run.
|
|
380
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].origin_tool` (`backlog-reconcile`) for multi-tool aggregation.
|
|
381
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].origin_schema_version` to bind each step to the emitting schema contract.
|
|
382
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].origin_contract_id` to bind each step to compatibility contract id.
|
|
383
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].recommendation_type` (`reconcile_loop`) for recommendation classification.
|
|
384
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].priority` (`high` for `dry_run`, `medium` for `apply`) for scheduling.
|
|
385
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].description` for human-readable step guidance.
|
|
386
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].expected_outcome` with success signal per step.
|
|
387
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].success_criteria` with stable machine-readable success checks.
|
|
388
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].success_probe` with deterministic post-execution verification hints.
|
|
389
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].probe_kind` (`json_contract` | `state_recheck`) to type post-execution probes.
|
|
390
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].probe_timeout_ms` with recommended timeout for `success_probe`.
|
|
391
|
+
- `reconcile-consumer-backlog-issues --json` includes `next_commands[].failure_hint` with compact remediation guidance per step.
|
|
392
|
+
- `reconcile-consumer-backlog-issues` (modo humano) muestra `heading_changes=<n>` y lista las líneas afectadas cuando hay drift en encabezados.
|
|
393
|
+
- `reconcile-consumer-backlog-issues` (modo humano) imprime `action_required_reasons=<...|none>`.
|
|
394
|
+
- `reconcile-consumer-backlog-issues` (modo humano) añade hint de flujo seguro cuando hay deltas: `--json` (dry-run) y luego `--apply`.
|
|
395
|
+
<a id="backlog-reasons"></a>
|
|
396
|
+
- Both commands build reasons through shared logic in `scripts/backlog-action-reasons-lib.ts` to keep JSON/human parity.
|
|
397
|
+
|
|
398
|
+
Backlog tooling quick reference:
|
|
399
|
+
|
|
400
|
+
| Command | Objective |
|
|
401
|
+
|---|---|
|
|
402
|
+
| `npm run -s test:backlog-tooling` | Ejecutar suite focal de regresión del tooling de backlog. |
|
|
403
|
+
| `scripts/watch-consumer-backlog.ts --json` | Detectar drift accionable sin mutar archivos. |
|
|
404
|
+
| `scripts/reconcile-consumer-backlog-issues.ts --json` | Simular reconciliación (dry-run) y revisar cambios planeados. |
|
|
405
|
+
| `scripts/reconcile-consumer-backlog-issues.ts --apply` | Aplicar reconciliación sobre el backlog consumidor. |
|
|
406
|
+
|
|
407
|
+
Backlog tooling quick nav (terminal):
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
rg -n "backlog-tooling|backlog-reasons" docs/USAGE.md README.md
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
Backlog tooling quick examples:
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
# focused local regression pack for backlog tooling
|
|
417
|
+
npm run -s test:backlog-tooling
|
|
418
|
+
|
|
419
|
+
# watch: canonical markdown source + explicit override + optional gh lookup
|
|
420
|
+
npx --yes tsx@4.21.0 scripts/watch-consumer-backlog.ts \
|
|
421
|
+
--file=/abs/path/consumer/PUMUKI_BUGS_MEJORAS.md \
|
|
422
|
+
--repo=SwiftEnProfundidad/ast-intelligence-hooks \
|
|
423
|
+
--id-issue-map-from=/abs/path/canonical/pumuki-integration-feedback.md \
|
|
424
|
+
--id-issue-map=/abs/path/override.json \
|
|
425
|
+
--resolve-missing-via-gh \
|
|
426
|
+
--json
|
|
427
|
+
|
|
428
|
+
# reconcile dry-run: same source chain
|
|
429
|
+
npx --yes tsx@4.21.0 scripts/reconcile-consumer-backlog-issues.ts \
|
|
430
|
+
--file=/abs/path/consumer/PUMUKI_BUGS_MEJORAS.md \
|
|
431
|
+
--repo=SwiftEnProfundidad/ast-intelligence-hooks \
|
|
432
|
+
--id-issue-map-from=/abs/path/canonical/pumuki-integration-feedback.md \
|
|
433
|
+
--id-issue-map=/abs/path/override.json \
|
|
434
|
+
--resolve-missing-via-gh \
|
|
435
|
+
--json
|
|
436
|
+
|
|
437
|
+
# reconcile apply: mutate backlog in-place once dry-run is clean
|
|
438
|
+
npx --yes tsx@4.21.0 scripts/reconcile-consumer-backlog-issues.ts \
|
|
439
|
+
--file=/abs/path/consumer/PUMUKI_BUGS_MEJORAS.md \
|
|
440
|
+
--repo=SwiftEnProfundidad/ast-intelligence-hooks \
|
|
441
|
+
--id-issue-map-from=/abs/path/canonical/pumuki-integration-feedback.md \
|
|
442
|
+
--resolve-missing-via-gh \
|
|
443
|
+
--apply
|
|
444
|
+
```
|
|
445
|
+
|
|
302
446
|
OpenSpec integration behavior:
|
|
447
|
+
- `pumuki bootstrap --enterprise --agent=<name>` orquesta `install + adapter wiring + doctor --deep` en un solo paso.
|
|
303
448
|
- `pumuki install` auto-bootstraps OpenSpec (`@fission-ai/openspec`) when missing/incompatible and scaffolds `openspec/` project baseline when absent.
|
|
449
|
+
- `pumuki install --with-mcp` adds adapter/MCP wiring bootstrap and prints MCP health summary on completion.
|
|
304
450
|
- `pumuki update --latest` migrates legacy `openspec` package to `@fission-ai/openspec` before hook reinstall.
|
|
305
451
|
|
|
306
452
|
Safety rule:
|
|
@@ -426,9 +572,14 @@ npm run validation:clean-artifacts -- --dry-run
|
|
|
426
572
|
- Runs SDD pre-write guardrail and then AI Gate validation before continuing editing flow.
|
|
427
573
|
- Requires OpenSpec installed, compatible, initialized, and valid active session.
|
|
428
574
|
- AI Gate blocks on missing/invalid/stale evidence, blocked evidence gate status, or protected branch usage.
|
|
575
|
+
- AI Gate applies early worktree hygiene for atomicity:
|
|
576
|
+
- warning code: `EVIDENCE_PREWRITE_WORKTREE_WARN`
|
|
577
|
+
- blocking code: `EVIDENCE_PREWRITE_WORKTREE_OVER_LIMIT`
|
|
578
|
+
- configurable via `PUMUKI_PREWRITE_WORKTREE_HYGIENE_ENABLED`, `PUMUKI_PREWRITE_WORKTREE_WARN_THRESHOLD`, `PUMUKI_PREWRITE_WORKTREE_BLOCK_THRESHOLD`
|
|
429
579
|
- `pumuki sdd validate --stage=PRE_WRITE --json` returns an envelope with:
|
|
430
580
|
- `sdd` (SDD decision payload)
|
|
431
581
|
- `ai_gate` (AI Gate evaluation payload)
|
|
582
|
+
- `ai_gate.skills_contract` (mapping `scope -> required skills/rules -> coverage active/evaluated`)
|
|
432
583
|
- `telemetry.chain = "pumuki->ai_gate->ai_evidence"`
|
|
433
584
|
|
|
434
585
|
Resolver source: `integrations/git/resolveGitRefs.ts`.
|
|
@@ -481,6 +632,20 @@ PUMUKI_ENABLE_AST_HEURISTICS=true npx tsx integrations/git/prePushIOS.cli.ts
|
|
|
481
632
|
|
|
482
633
|
Details: `docs/rule-packs/heuristics.md`.
|
|
483
634
|
|
|
635
|
+
## AST Intelligence dual mode (comparación legacy vs AST)
|
|
636
|
+
|
|
637
|
+
Activar modo dual:
|
|
638
|
+
|
|
639
|
+
```bash
|
|
640
|
+
PUMUKI_AST_INTELLIGENCE_DUAL_MODE=shadow npx --yes --package pumuki@latest pumuki-pre-commit
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
Modos soportados:
|
|
644
|
+
|
|
645
|
+
- `off` (default): no ejecuta comparación dual.
|
|
646
|
+
- `shadow`: añade señal informativa de divergencias sin bloquear.
|
|
647
|
+
- `strict`: bloquea cuando hay divergencias entre legacy y AST por nodos.
|
|
648
|
+
|
|
484
649
|
## CI workflows
|
|
485
650
|
|
|
486
651
|
- `.github/workflows/pumuki-gate-template.yml`
|
|
@@ -526,6 +691,23 @@ Set upstream once:
|
|
|
526
691
|
git push --set-upstream origin <branch>
|
|
527
692
|
```
|
|
528
693
|
|
|
694
|
+
### Fragile hook/adapter command resolution
|
|
695
|
+
|
|
696
|
+
Use deep diagnostics to detect weak command wiring:
|
|
697
|
+
|
|
698
|
+
```bash
|
|
699
|
+
npx --yes pumuki doctor --deep --json
|
|
700
|
+
```
|
|
701
|
+
|
|
702
|
+
If `adapter-wiring` reports fragile resolution, regenerate adapter commands:
|
|
703
|
+
|
|
704
|
+
```bash
|
|
705
|
+
npx --yes pumuki adapter install --agent=codex
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
For repos whose absolute path includes `:`, avoid inline `PATH="...:$PATH"` wrappers in hooks/adapters.
|
|
709
|
+
Use generated commands from `pumuki adapter install` to keep resolution deterministic.
|
|
710
|
+
|
|
529
711
|
### Empty evidence or PASS with no findings
|
|
530
712
|
|
|
531
713
|
Confirm changed files match supported extensions and platform paths expected by detectors.
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
## Estado actual
|
|
8
8
|
- Plan activo: `docs/seguimiento-activo-pumuki-saas-supermercados.md`
|
|
9
9
|
- Estado del plan: EJECUCION
|
|
10
|
-
- Última task cerrada (`✅`): PUMUKI-
|
|
11
|
-
- Task activa (`🚧`): PUMUKI-
|
|
10
|
+
- Última task cerrada (`✅`): PUMUKI-131 (issue `#716`, `next_commands[].probe_timeout_ms`).
|
|
11
|
+
- Task activa (`🚧`): PUMUKI-132 (issue `#717`, `next_commands[].probe_kind`).
|
|
12
12
|
- Nuevos pendientes añadidos (`⏳`): ninguno en este bloque inmediato.
|
|
13
13
|
|
|
14
14
|
## Historial resumido
|