pumuki 6.3.25 → 6.3.26

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.
@@ -19,6 +19,7 @@
19
19
  - Baseline limpio + reinstall desde cero: ✅ (sin hooks previos, sin artefactos previos, install nuevo)
20
20
  - Matriz mock E2E: ✅ `clean=0/0/0`, `violations=1/1/1`, `mixed=1/1/1`
21
21
  - Lifecycle remove (managed OpenSpec): ✅ fix aplicado + test dedicado en verde (`integrations/lifecycle/__tests__/remove.test.ts`)
22
+ - Lifecycle remove (legacy bootstrap state): ✅ fix aplicado para registrar `openSpecManagedArtifacts` incluso cuando `openspec/` ya existía antes de `install` (`integrations/lifecycle/openSpecBootstrap.ts`)
22
23
  - Evidencia principal: `/Users/juancarlosmerlosalbarracin/Developer/Projects/pumuki-mock-consumer/artifacts/pumuki-matrix-summary.json`
23
24
  - Nota: `P6.T8` sigue en construcción hasta completar repo real externo + relleno completo checklist.
24
25
 
@@ -322,7 +322,9 @@ Fuente unica de seguimiento operativo. No se abren nuevos MDs temporales de trac
322
322
  - `mixed`: `pre-commit=1`, `pre-push=1`, `ci=1` (bloqueo esperado)
323
323
  - fix lifecycle aplicado:
324
324
  - `pumuki remove` ahora desinstala `@fission-ai/openspec` cuando fue bootstrap gestionado por Pumuki.
325
+ - `runOpenSpecBootstrap` ahora vuelve a registrar artefactos OpenSpec gestionados en estado incluso en repos legacy con `openspec/` preexistente.
325
326
  - tests en verde: `npx --yes tsx@4.21.0 --test integrations/lifecycle/__tests__/consumerPackage.test.ts integrations/lifecycle/__tests__/remove.test.ts`
327
+ - tests en verde (regresión legacy): `npx --yes tsx@4.21.0 --test integrations/lifecycle/__tests__/openSpecBootstrap.test.ts integrations/lifecycle/__tests__/install.test.ts integrations/lifecycle/__tests__/remove.test.ts`
326
328
  - typecheck en verde: `npm run -s typecheck`
327
329
  - evidencia: `/Users/juancarlosmerlosalbarracin/Developer/Projects/pumuki-mock-consumer/artifacts/pumuki-matrix-summary.json`
328
330
  - pendiente para cerrar `P6.T8`:
@@ -52,6 +52,14 @@ const OPENSPEC_LEGACY_NPM_PACKAGE_NAME = 'openspec';
52
52
  const OPENSPEC_PROJECT_MD = 'openspec/project.md';
53
53
  const OPENSPEC_ARCHIVE_GITKEEP = 'openspec/changes/archive/.gitkeep';
54
54
  const OPENSPEC_SPECS_GITKEEP = 'openspec/specs/.gitkeep';
55
+ const OPENSPEC_MANAGED_ARTIFACTS = [
56
+ OPENSPEC_PROJECT_MD,
57
+ OPENSPEC_ARCHIVE_GITKEEP,
58
+ OPENSPEC_SPECS_GITKEEP,
59
+ ] as const;
60
+
61
+ const resolvePresentManagedArtifacts = (repoRoot: string): ReadonlyArray<string> =>
62
+ OPENSPEC_MANAGED_ARTIFACTS.filter((relativePath) => existsSync(join(repoRoot, relativePath)));
55
63
 
56
64
  export type OpenSpecCompatibilityMigrationResult = {
57
65
  repoRoot: string;
@@ -172,10 +180,11 @@ export const runOpenSpecBootstrap = (params: {
172
180
  }
173
181
 
174
182
  const projectInitializedBefore = isOpenSpecProjectInitialized(params.repoRoot);
175
- const managedArtifacts = !projectInitializedBefore
176
- ? scaffoldOpenSpecProject(params.repoRoot)
177
- : [];
178
- if (managedArtifacts.length > 0) {
183
+ if (!projectInitializedBefore) {
184
+ scaffoldOpenSpecProject(params.repoRoot);
185
+ }
186
+ const managedArtifacts = resolvePresentManagedArtifacts(params.repoRoot);
187
+ if (!projectInitializedBefore && managedArtifacts.length > 0) {
179
188
  actions.push('scaffold:openspec-project');
180
189
  }
181
190
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pumuki",
3
- "version": "6.3.25",
3
+ "version": "6.3.26",
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": {