specatlas 0.1.5 → 0.1.6

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 (2) hide show
  1. package/dist/bin.js +13 -4
  2. package/package.json +2 -2
package/dist/bin.js CHANGED
@@ -9914,7 +9914,7 @@ function deriveState(input) {
9914
9914
  blockedBy.push(`evidencia ${scenariosEvidenced}/${deltaScenarios.length}`);
9915
9915
  return { state: "built", blockedBy, nextAction: next(`satlas verify ${change.slug}`, "Registrar evidencia por escenario"), progress };
9916
9916
  }
9917
- if (lane === "full" && cfg.gates.review.mode === "blocking" && !change.verify) {
9917
+ if (lane === "full" && cfg.gates.review.mode === "blocking" && !change.reviewPath) {
9918
9918
  blockedBy.push("review pendiente");
9919
9919
  return { state: "verified", blockedBy, nextAction: next(`/satlas.review ${change.slug}`, "Revisi\xF3n de c\xF3digo", true), progress };
9920
9920
  }
@@ -10102,8 +10102,8 @@ async function loadSpecs(sddDir) {
10102
10102
  }
10103
10103
  return out;
10104
10104
  }
10105
- async function loadChange(root, slug) {
10106
- const dir = path4.join(root, SDD_DIR, "changes", slug);
10105
+ async function loadChange(root, slug, relDir) {
10106
+ const dir = path4.join(root, SDD_DIR, "changes", relDir ?? slug);
10107
10107
  const diagnostics = [];
10108
10108
  const change = { slug, dir, diagnostics };
10109
10109
  const metaFile = path4.join(dir, "meta.yaml");
@@ -10125,6 +10125,8 @@ async function loadChange(root, slug) {
10125
10125
  }
10126
10126
  const planFile = path4.join(dir, "plan.md");
10127
10127
  if (await exists(planFile)) change.planPath = planFile;
10128
+ const reviewFile = path4.join(dir, "review.md");
10129
+ if (await exists(reviewFile)) change.reviewPath = reviewFile;
10128
10130
  const tasksFile = path4.join(dir, "tasks.md");
10129
10131
  const tasksRaw = await readTextIfExists(tasksFile);
10130
10132
  if (tasksRaw !== void 0) {
@@ -10165,7 +10167,14 @@ async function loadWorkspace(root) {
10165
10167
  changes.push(change);
10166
10168
  diagnostics.push(...change.diagnostics);
10167
10169
  }
10168
- return { workspace: { root, sddDir, specs, changes, diagnostics }, config };
10170
+ const archived = [];
10171
+ const archivedDir = path4.join(sddDir, "changes", "archive");
10172
+ if (await isDirectory(archivedDir)) {
10173
+ for (const entry of await listDirs(archivedDir)) {
10174
+ archived.push(await loadChange(root, entry.replace(/^\d{4}-\d{2}-/, ""), path4.join("archive", entry)));
10175
+ }
10176
+ }
10177
+ return { workspace: { root, sddDir, specs, changes, archived, diagnostics }, config };
10169
10178
  }
10170
10179
  async function ensureSddDirs(sddDir) {
10171
10180
  const created = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specatlas",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "SpecAtlas: kernel determinista de Spec-Driven Development (CLI)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "devDependencies": {
42
42
  "@specatlas/adapters": "0.1.1",
43
- "@specatlas/core": "0.1.2"
43
+ "@specatlas/core": "0.1.4"
44
44
  },
45
45
  "scripts": {
46
46
  "typecheck": "tsc --noEmit",