@tacuchi/agent-workflow-cli 12.7.1 → 12.8.0

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 (37) hide show
  1. package/dist/application/self/mcp-config.d.ts +1 -0
  2. package/dist/application/self/mcp-config.d.ts.map +1 -1
  3. package/dist/application/self/mcp-config.js +1 -1
  4. package/dist/application/self/mcp-config.js.map +1 -1
  5. package/dist/application/templates/session.d.ts +10 -6
  6. package/dist/application/templates/session.d.ts.map +1 -1
  7. package/dist/application/templates/session.js +19 -17
  8. package/dist/application/templates/session.js.map +1 -1
  9. package/dist/application/workspace-init-service.d.ts.map +1 -1
  10. package/dist/application/workspace-init-service.js +62 -35
  11. package/dist/application/workspace-init-service.js.map +1 -1
  12. package/dist/cli/commands/workspace-init.js +3 -3
  13. package/dist/cli/commands/workspace-init.js.map +1 -1
  14. package/dist/cli/parsers/fuentes.d.ts.map +1 -1
  15. package/dist/cli/parsers/fuentes.js +48 -35
  16. package/dist/cli/parsers/fuentes.js.map +1 -1
  17. package/dist/cli/tui/data/workflow-content.js +3 -3
  18. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  19. package/dist/cli/tui/tabs/mcp-tab-helpers.d.ts +21 -0
  20. package/dist/cli/tui/tabs/mcp-tab-helpers.d.ts.map +1 -0
  21. package/dist/cli/tui/tabs/mcp-tab-helpers.js +43 -0
  22. package/dist/cli/tui/tabs/mcp-tab-helpers.js.map +1 -0
  23. package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
  24. package/dist/cli/tui/tabs/mcp-tab.js +152 -33
  25. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  26. package/dist/cli/tui/tabs/workflow-tab.d.ts.map +1 -1
  27. package/dist/cli/tui/tabs/workflow-tab.js +1 -1
  28. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
  29. package/package.json +1 -1
  30. package/skills/w/SKILL.md +7 -6
  31. package/skills/w/artifacts/README.md +1 -1
  32. package/skills/w/artifacts/artifacts-core/SESSION.md +7 -3
  33. package/skills/w/loops/README.md +6 -5
  34. package/skills/w/loops/plan-exec-loop/SKILL.md +2 -2
  35. package/skills/w/loops/plan-new-loop/SKILL.md +2 -2
  36. package/skills/w/loops/quick-loop/SKILL.md +21 -18
  37. package/skills/w/loops/spec-refine-loop/SKILL.md +36 -2
@@ -1,5 +1,5 @@
1
1
  // Datos del Workflow tab — hardcoded para evitar I/O en render.
2
- // Sincronizado con el modelo rediseñado (stages + loops + artifacts):
2
+ // Sincronizado con el modelo rediseñado (stages + loops + artifacts; loops = objetivos persistentes + verification-first):
3
3
  // - skills/w/commands/ (/w: slash commands — 1 por archivo .md)
4
4
  // - skills/w/README.md (3 layers + 3 flows: SPEC / PLAN / QUICK)
5
5
  // - src/cli/help-groups.ts (familias del CLI real, post-cleanup)
@@ -9,7 +9,7 @@
9
9
  // renombran familias en help-groups.ts, actualizar este archivo. Los totales se
10
10
  // derivan con `.length` en runtime — NO hardcodear cantidades en strings.
11
11
  export const WORKFLOW_CONTENT = {
12
- overview: "Stages + loops + artifacts — 3 flows (SPEC · PLAN · QUICK) drive convergent loops over session artifacts; export-* promotes to docs/. Transversal skills (/w:status · /w:fix-git) sit outside the flows.",
12
+ overview: "Stages + loops + artifacts — 3 flows (SPEC · PLAN · QUICK) drive convergent loops; each loop is a persistent goal that runs until its Success criteria are green (verification-first). export-* promotes to docs/; transversal skills (/w:status · /w:fix-git) sit outside the flows.",
13
13
  // Las 3 FLOWS del modelo + bootstrap (workspace-init) + familia export-*.
14
14
  // Reusa PhaseCardData genérico (id/n/title/desc/commands/slash/hook).
15
15
  phases: [
@@ -44,7 +44,7 @@ export const WORKFLOW_CONTENT = {
44
44
  id: "quick",
45
45
  n: 4,
46
46
  title: "QUICK — the shortcut",
47
- desc: "Lightweight one-command loop for small tasks. Owns no docs/ folder.",
47
+ desc: "Lightweight one-command loop for small tasks — code or a scoped analysis/design. Proportional verification-first; owns no docs/ folder.",
48
48
  commands: ["quick"],
49
49
  slash: "/w:quick",
50
50
  hook: "SessionEnd",
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-content.js","sourceRoot":"","sources":["../../../../src/cli/tui/data/workflow-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-content.js","sourceRoot":"","sources":["../../../../src/cli/tui/data/workflow-content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { MetaTone } from "../components/list-row.js";
2
+ /** Whether a connection is present in the workspace `.mcp.json` for the current
3
+ * host. Mirror of the (unexported) `InstallStatus` in `self/mcp-config.ts`. */
4
+ export type WorkspaceInstallStatus = "si" | "no" | "drift";
5
+ /**
6
+ * Suggest a DSN env var name from a connection alias, mirroring the CLI's
7
+ * `defaultDsnVar`: `cert` → `DB_CERT_DSN`, `my-db` → `DB_MY_DB_DSN`. Returns ""
8
+ * for an empty alias (no suggestion to prefill).
9
+ */
10
+ export declare function suggestDsnVar(alias: string): string;
11
+ /**
12
+ * Row state pill reflecting whether the connection is installed in the
13
+ * workspace `.mcp.json` (vs. merely registered in profile.json).
14
+ */
15
+ export declare function installStatusPill(status: WorkspaceInstallStatus): {
16
+ label: string;
17
+ tone: MetaTone;
18
+ };
19
+ /** Detail-panel install action label, adapting to the current install status. */
20
+ export declare function installActionLabel(status: WorkspaceInstallStatus): string;
21
+ //# sourceMappingURL=mcp-tab-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tab-helpers.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/mcp-tab-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D;gFACgF;AAChF,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,GAAG;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;CAChB,CASA;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CASzE"}
@@ -0,0 +1,43 @@
1
+ // Pure helpers for the MCP tab — extracted so the rendering/UX logic is unit-
2
+ // testable without mounting the Ink component. The async command wiring
3
+ // (selfMcpConfig / testMcpConnection) stays in mcp-tab.tsx, thin over these.
4
+ /**
5
+ * Suggest a DSN env var name from a connection alias, mirroring the CLI's
6
+ * `defaultDsnVar`: `cert` → `DB_CERT_DSN`, `my-db` → `DB_MY_DB_DSN`. Returns ""
7
+ * for an empty alias (no suggestion to prefill).
8
+ */
9
+ export function suggestDsnVar(alias) {
10
+ const normalized = alias
11
+ .trim()
12
+ .toUpperCase()
13
+ .replace(/[\s-]+/g, "_");
14
+ if (normalized.length === 0)
15
+ return "";
16
+ return `DB_${normalized}_DSN`;
17
+ }
18
+ /**
19
+ * Row state pill reflecting whether the connection is installed in the
20
+ * workspace `.mcp.json` (vs. merely registered in profile.json).
21
+ */
22
+ export function installStatusPill(status) {
23
+ switch (status) {
24
+ case "si":
25
+ return { label: "installed", tone: "ok" };
26
+ case "drift":
27
+ return { label: "drift", tone: "warn" };
28
+ case "no":
29
+ return { label: "registered", tone: "dim" };
30
+ }
31
+ }
32
+ /** Detail-panel install action label, adapting to the current install status. */
33
+ export function installActionLabel(status) {
34
+ switch (status) {
35
+ case "no":
36
+ return "Install to workspace";
37
+ case "drift":
38
+ return "Update .mcp.json";
39
+ case "si":
40
+ return "Reinstall to workspace";
41
+ }
42
+ }
43
+ //# sourceMappingURL=mcp-tab-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tab-helpers.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/mcp-tab-helpers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wEAAwE;AACxE,6EAA6E;AAQ7E;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,UAAU,GAAG,KAAK;SACrB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,MAAM,UAAU,MAAM,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA8B;IAI9D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,IAAI;YACP,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1C,KAAK,IAAI;YACP,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,kBAAkB,CAAC,MAA8B;IAC/D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,IAAI;YACP,OAAO,sBAAsB,CAAC;QAChC,KAAK,OAAO;YACV,OAAO,kBAAkB,CAAC;QAC5B,KAAK,IAAI;YACP,OAAO,wBAAwB,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/mcp-tab.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,gCAAgC,CAAC;AAsBlF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvF,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;CAChC;AAYD,wBAAgB,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,WAAW,2CAmb3E"}
1
+ {"version":3,"file":"mcp-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/mcp-tab.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,gCAAgC,CAAC;AA+BlF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvF,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;CAChC;AAsBD,wBAAgB,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,WAAW,2CAqmB3E"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { Box, Text, useInput, useStdout } from "ink";
3
3
  import { useCallback, useEffect, useRef, useState } from "react";
4
4
  import { testMcpConnection } from "../../../application/mcp-test-connection-service.js";
5
- import { selfMcpConfig, } from "../../../application/self/mcp-config.js";
5
+ import { isDsnVisible, selfMcpConfig, } from "../../../application/self/mcp-config.js";
6
6
  import { ActivityFeed } from "../components/activity-feed.js";
7
7
  import { ConfirmBanner } from "../components/confirm-banner.js";
8
8
  import { DetailPanel } from "../components/detail-panel.js";
@@ -14,6 +14,7 @@ import { SectionHead } from "../components/section-head.js";
14
14
  import { useInputLock } from "../input-lock.js";
15
15
  import { rowWidth } from "../row-width.js";
16
16
  import { colors, icons } from "../theme.js";
17
+ import { installActionLabel, installStatusPill, suggestDsnVar } from "./mcp-tab-helpers.js";
17
18
  function buildArgs(action, values = {}) {
18
19
  return {
19
20
  rest: ["mcp", action],
@@ -23,6 +24,16 @@ function buildArgs(action, values = {}) {
23
24
  valuesMulti: new Map(),
24
25
  };
25
26
  }
27
+ // Crash-safe DSN visibility check (env + bootstrap dsn file) for the review
28
+ // step's badge. Defensive: a malformed ctx reads as "not visible", never throws.
29
+ function safeDsnVisible(ctx, dsnVar) {
30
+ try {
31
+ return isDsnVisible(ctx, dsnVar);
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
26
37
  export function McpTab({ ctx, isActive, onToast, recentEvents }) {
27
38
  const [connections, setConnections] = useState([]);
28
39
  const [cursor, setCursor] = useState(0);
@@ -108,10 +119,31 @@ export function McpTab({ ctx, isActive, onToast, recentEvents }) {
108
119
  await refresh();
109
120
  setMode({ kind: "list" });
110
121
  }, [ctx, onToast, refresh]);
122
+ // Install the connection into the workspace `.mcp.json` (root) via the
123
+ // existing `install-claude` action (runMcpSetup, scope=workspace).
124
+ const runInstall = useCallback(async (name) => {
125
+ setMode({ kind: "busy", label: `installing ${name} → .mcp.json…` });
126
+ try {
127
+ const result = await selfMcpConfig(buildArgs("install-claude", { name }), ctx);
128
+ onToast?.({
129
+ tone: result.ok ? "ok" : "err",
130
+ title: result.ok ? `Installed · ${name}` : `Install failed · ${name}`,
131
+ body: result.data?.summary ?? result.error?.message ?? "",
132
+ });
133
+ }
134
+ catch (err) {
135
+ onToast?.({ tone: "err", title: "Install failed", body: err.message });
136
+ }
137
+ await refresh();
138
+ setMode({ kind: "list" });
139
+ }, [ctx, onToast, refresh]);
111
140
  const triggerAction = useCallback((id) => {
112
141
  if (!current)
113
142
  return;
114
143
  switch (id) {
144
+ case "install":
145
+ void runInstall(current.nombre);
146
+ return;
115
147
  case "test":
116
148
  void runTestConnection(current.nombre, current.dsn_var);
117
149
  return;
@@ -126,12 +158,18 @@ export function McpTab({ ctx, isActive, onToast, recentEvents }) {
126
158
  setMode({ kind: "confirm-delete", name: current.nombre });
127
159
  return;
128
160
  }
129
- }, [current, runTestConnection]);
130
- // Detail panel actions (Test/Edit/Remove).
161
+ }, [current, runTestConnection, runInstall]);
162
+ // Detail panel actions (Install/Test/Edit/Remove). `Install` adapts its label
163
+ // to the workspace status: install · update (on drift) · reinstall.
164
+ const detailActionIds = ["install", "test", "edit", "remove"];
131
165
  const detailActions = current
132
166
  ? [
167
+ {
168
+ name: installActionLabel(current.instalado.claude_code),
169
+ description: "Write the dbhub entry to .mcp.json at the workspace root.",
170
+ },
133
171
  { name: "Test connection", description: "Run dbhub with DSN (SELECT 1 smoke test)." },
134
- { name: "Edit connection", description: "Alias / host / DSN." },
172
+ { name: "Edit connection", description: "Alias / DSN env var." },
135
173
  {
136
174
  name: "Remove connection",
137
175
  description: "Delete entry + DSN export.",
@@ -177,18 +215,9 @@ export function McpTab({ ctx, isActive, onToast, recentEvents }) {
177
215
  return;
178
216
  }
179
217
  if (key.return) {
180
- const action = detailActions[actionCursor];
181
- if (!action)
182
- return;
183
- if (action.danger) {
184
- triggerAction("remove");
185
- }
186
- else if (action.name.startsWith("Edit")) {
187
- triggerAction("edit");
188
- }
189
- else {
190
- triggerAction("test");
191
- }
218
+ const id = detailActionIds[actionCursor];
219
+ if (id)
220
+ triggerAction(id);
192
221
  }
193
222
  }, { isActive });
194
223
  // input — confirm-delete (y confirma · n/esc vuelve al detail)
@@ -216,14 +245,39 @@ export function McpTab({ ctx, isActive, onToast, recentEvents }) {
216
245
  setMode({ kind: "list" });
217
246
  }
218
247
  }, { isActive });
219
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: "MCP", count: { label: `${connections.length} databases · profile.json`, tone: "accent" }, action: _jsx(Text, { color: colors.mute, children: "aliases match mcp_databases[] \u00B7 consumed by skills" }) }), _jsxs(Box, { flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 2, children: [_jsx(SectionHead, { label: "Connections", count: connections.length, ...(mode.kind === "wizard-name" || mode.kind === "wizard-dsn"
248
+ // input wizard-review (t test · save+install · s save only · esc cancel)
249
+ useInput((input, key) => {
250
+ if (!isActive || mode.kind !== "wizard-review")
251
+ return;
252
+ if (key.escape) {
253
+ setMode({ kind: "list" });
254
+ return;
255
+ }
256
+ if (input === "t" || input === "T") {
257
+ void runWizardTest(mode);
258
+ return;
259
+ }
260
+ if (input === "s" || input === "S") {
261
+ void saveOnly(mode.name, mode.dsnVar);
262
+ return;
263
+ }
264
+ if (key.return) {
265
+ void saveAndInstall(mode.name, mode.dsnVar);
266
+ }
267
+ }, { isActive });
268
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: "MCP", count: { label: `${connections.length} databases · profile.json`, tone: "accent" }, action: _jsx(Text, { color: colors.mute, children: "aliases match mcp_databases[] \u00B7 consumed by skills" }) }), _jsxs(Box, { flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 2, children: [_jsx(SectionHead, { label: "Connections", count: connections.length, ...(mode.kind === "wizard-name" ||
269
+ mode.kind === "wizard-dsn" ||
270
+ mode.kind === "wizard-review"
220
271
  ? { rightAction: "esc cancel" }
221
272
  : mode.kind === "detail" || mode.kind === "confirm-delete"
222
273
  ? { rightAction: "esc to close detail" }
223
- : {}) }), connections.length === 0 && mode.kind === "list" ? (_jsxs(Box, { marginLeft: 2, marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.dim, children: "No MCP connections yet." }), _jsxs(Text, { color: colors.dim, children: ["Register a DSN to let skills query your DB. Press", " ", _jsx(Text, { color: colors.accent, bold: true, children: "a" }), " ", "to start."] })] })) : (_jsx(Box, { marginTop: 0, flexDirection: "column", children: connections.map((c, i) => (_jsx(ListRow, { icon: icons.diamond, iconActive: true, title: c.nombre, subtitle: `${c.dsn_var} · ${c.server_name}`, state: { label: "registered", tone: "ok" }, chevron: true, active: i === cursor, dimmed: mode.kind === "wizard-name" || mode.kind === "wizard-dsn", widthHint: rowWidth(stdout?.columns, mode.kind === "detail" ||
274
+ : {}) }), connections.length === 0 && mode.kind === "list" ? (_jsxs(Box, { marginLeft: 2, marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.dim, children: "No MCP connections yet." }), _jsxs(Text, { color: colors.dim, children: ["Register a DSN to let skills query your DB. Press", " ", _jsx(Text, { color: colors.accent, bold: true, children: "a" }), " ", "to start."] })] })) : (_jsx(Box, { marginTop: 0, flexDirection: "column", children: connections.map((c, i) => (_jsx(ListRow, { icon: icons.diamond, iconActive: true, title: c.nombre, subtitle: `${c.dsn_var} · ${c.server_name}`, state: installStatusPill(c.instalado.claude_code), chevron: true, active: i === cursor, dimmed: mode.kind === "wizard-name" ||
275
+ mode.kind === "wizard-dsn" ||
276
+ mode.kind === "wizard-review", widthHint: rowWidth(stdout?.columns, mode.kind === "detail" ||
224
277
  mode.kind === "confirm-delete" ||
225
278
  mode.kind === "wizard-name" ||
226
- mode.kind === "wizard-dsn") }, c.nombre))) })), mode.kind === "wizard-name" ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(SectionHead, { label: mode.editingName
279
+ mode.kind === "wizard-dsn" ||
280
+ mode.kind === "wizard-review") }, c.nombre))) })), mode.kind === "wizard-name" ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(SectionHead, { label: mode.editingName
227
281
  ? `Edit connection · ${mode.editingName}`
228
282
  : "Register new connection", hint: "Step 1 of 2 \u00B7 Alias", rightAction: "\u23CE next \u00B7 esc cancel" }), _jsx(Box, { marginLeft: 2, marginTop: 0, children: _jsx(InputPrompt, { message: "alias (slug-kebab):", onSubmit: (value) => {
229
283
  const trimmed = value.trim() || mode.editingName || "";
@@ -236,29 +290,71 @@ export function McpTab({ ctx, isActive, onToast, recentEvents }) {
236
290
  kind: "wizard-dsn",
237
291
  name: trimmed,
238
292
  ...(mode.editingName ? { editingExisting: mode.editingName } : {}),
293
+ ...(mode.prefillDsn ? { prefillDsn: mode.prefillDsn } : {}),
239
294
  });
240
- }, isActive: isActive }) })] })) : null, mode.kind === "wizard-dsn" ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(SectionHead, { label: `Register new connection · ${mode.name}`, hint: "Step 2 of 2 \u00B7 DSN env var", rightAction: "\u23CE register \u00B7 esc cancel" }), _jsx(Box, { marginLeft: 2, marginTop: 0, children: _jsx(InputPrompt, { message: "DSN env var (UPPER_SNAKE_CASE):", onSubmit: (value) => {
241
- const dsnVar = value.trim();
295
+ }, isActive: isActive }) })] })) : null, mode.kind === "wizard-dsn" ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(SectionHead, { label: `Register new connection · ${mode.name}`, hint: "Step 2 of 2 \u00B7 DSN env var", rightAction: "\u23CE register \u00B7 esc cancel" }), _jsx(Box, { marginLeft: 2, marginTop: 0, children: _jsx(InputPrompt, { message: "DSN env var (UPPER_SNAKE_CASE):", defaultValue: mode.prefillDsn ?? suggestDsnVar(mode.name), onSubmit: (value) => {
296
+ const dsnVar = value.trim().toUpperCase();
242
297
  if (!dsnVar) {
243
298
  onToast?.({ tone: "err", title: "Empty DSN var" });
244
299
  setMode({ kind: "list" });
245
300
  return;
246
301
  }
247
- void registerConnection(mode.name, dsnVar);
248
- }, isActive: isActive }) })] })) : null, mode.kind === "list" ? (_jsxs(_Fragment, { children: [_jsx(SectionHead, { label: "Recent", count: recentEvents?.length ?? 0, marginTop: 1 }), _jsx(Box, { marginLeft: 2, children: _jsx(ActivityFeed, { events: recentEvents ?? [], cap: 4, emptyHint: " (no recent MCP calls yet)" }) })] })) : null, mode.kind === "busy" ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.warn, children: [icons.spinner, " ", mode.label] }) })) : null] }), current && (mode.kind === "detail" || mode.kind === "confirm-delete") ? (_jsx(DetailPanel, { bordered: true, header: {
302
+ setMode({
303
+ kind: "wizard-review",
304
+ name: mode.name,
305
+ dsnVar,
306
+ visible: safeDsnVisible(ctx, dsnVar),
307
+ ...(mode.editingExisting ? { editingExisting: mode.editingExisting } : {}),
308
+ });
309
+ }, isActive: isActive }) })] })) : null, mode.kind === "wizard-review" ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(SectionHead, { label: `${mode.editingExisting ? "Edit" : "Register"} connection · ${mode.name}`, hint: "Step 3 of 3 \u00B7 Review \u00B7 test \u00B7 install", rightAction: "\u23CE save+install \u00B7 esc cancel" }), _jsxs(Box, { marginLeft: 2, marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: colors.dim, children: "alias " }), _jsx(Text, { color: colors.bright, bold: true, children: mode.name })] }), _jsxs(Box, { children: [_jsx(Text, { color: colors.dim, children: "DSN " }), _jsx(Text, { color: colors.bright, bold: true, children: mode.dsnVar }), _jsx(Text, { children: " " }), mode.visible ? (_jsxs(Text, { color: colors.ok, children: [icons.check, " visible"] })) : (_jsxs(Text, { color: colors.warn, children: [icons.cross, " not in env \u2014 export it first"] }))] }), mode.test ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: mode.test.ok ? colors.ok : colors.err, children: [mode.test.ok ? icons.check : icons.cross, " ", mode.test.msg] }) })) : null, _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.borderFaint, children: "─".repeat(40) }), _jsx(Text, { color: colors.faint, children: "[\u23CE] save + install \u00B7 [s] save only \u00B7 [t] test \u00B7 esc cancel" })] })] })] })) : null, mode.kind === "list" ? (_jsxs(_Fragment, { children: [_jsx(SectionHead, { label: "Recent", count: recentEvents?.length ?? 0, marginTop: 1 }), _jsx(Box, { marginLeft: 2, children: _jsx(ActivityFeed, { events: recentEvents ?? [], cap: 4, emptyHint: " (no recent MCP calls yet)" }) })] })) : null, mode.kind === "busy" ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.warn, children: [icons.spinner, " ", mode.label] }) })) : null] }), current && (mode.kind === "detail" || mode.kind === "confirm-delete") ? (_jsx(DetailPanel, { bordered: true, header: {
249
310
  name: current.nombre,
250
311
  meta: `${current.server_name} · ${current.dsn_var}\nlast test: —`,
251
- }, statePill: { label: "registered", tone: "ok" }, actions: detailActions, focusedAction: actionCursor, banner: mode.kind === "confirm-delete" ? (_jsx(ConfirmBanner, { title: `× Remove ${mode.name}?`, body: `This deletes the entry from profile.json and unexports ${current.dsn_var}. Not reversible.` })) : null })) : mode.kind === "wizard-name" || mode.kind === "wizard-dsn" ? (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.borderFaint, children: "│" }), _jsxs(Box, { flexDirection: "column", width: 38, paddingLeft: 1, children: [_jsx(Box, { children: _jsx(Text, { color: colors.accent, bold: true, children: "+ New connection" }) }), _jsx(Text, { color: colors.dim, wrap: "truncate-end", children: "2-step wizard \u00B7 profile.json" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.mute, children: "STEPS" }), _jsx(WizardStep, { index: 1, label: "Alias", active: mode.kind === "wizard-name", completed: mode.kind === "wizard-dsn", value: mode.kind === "wizard-dsn" ? mode.name : undefined }), _jsx(WizardStep, { index: 2, label: "DSN env var", active: mode.kind === "wizard-dsn", completed: false })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.borderFaint, children: "─".repeat(36) }), _jsx(Text, { color: colors.faint, children: "\u23CE next \u00B7 esc cancel" })] })] })] })) : null] }), _jsx(Box, { marginTop: 1, children: _jsx(QuickActions, { actions: [{ key: "a", label: "add connection" }] }) })] }));
252
- async function registerConnection(name, dsnVar) {
253
- setMode({ kind: "busy", label: `registering ${name}…` });
312
+ }, statePill: { label: "registered", tone: "ok" }, actions: detailActions, focusedAction: actionCursor, banner: mode.kind === "confirm-delete" ? (_jsx(ConfirmBanner, { title: `× Remove ${mode.name}?`, body: `This deletes the entry from profile.json and unexports ${current.dsn_var}. Not reversible.` })) : null })) : mode.kind === "wizard-name" ||
313
+ mode.kind === "wizard-dsn" ||
314
+ mode.kind === "wizard-review" ? (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.borderFaint, children: "│" }), _jsxs(Box, { flexDirection: "column", width: 38, paddingLeft: 1, children: [_jsx(Box, { children: _jsx(Text, { color: colors.accent, bold: true, children: mode.kind === "wizard-review" && mode.editingExisting
315
+ ? "✎ Edit connection"
316
+ : "+ New connection" }) }), _jsx(Text, { color: colors.dim, wrap: "truncate-end", children: "guided \u00B7 test \u00B7 install" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.mute, children: "STEPS" }), _jsx(WizardStep, { index: 1, label: "Alias", active: mode.kind === "wizard-name", completed: mode.kind === "wizard-dsn" || mode.kind === "wizard-review", value: mode.kind === "wizard-dsn" || mode.kind === "wizard-review"
317
+ ? mode.name
318
+ : undefined }), _jsx(WizardStep, { index: 2, label: "DSN env var", active: mode.kind === "wizard-dsn", completed: mode.kind === "wizard-review", value: mode.kind === "wizard-review" ? mode.dsnVar : undefined }), _jsx(WizardStep, { index: 3, label: "Test (optional)", active: mode.kind === "wizard-review", completed: mode.kind === "wizard-review" && mode.test?.ok === true }), _jsx(WizardStep, { index: 4, label: "Install \u2192 .mcp.json", active: false, completed: false })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.borderFaint, children: "─".repeat(36) }), _jsx(Text, { color: colors.faint, children: mode.kind === "wizard-review"
319
+ ? "⏎ save+install · s save · t test"
320
+ : "⏎ next · esc cancel" })] })] })] })) : null] }), _jsx(Box, { marginTop: 1, children: _jsx(QuickActions, { actions: [{ key: "a", label: "add connection" }] }) })] }));
321
+ // Register the connection in profile.json (use-env). Returns ok so callers can
322
+ // chain the workspace install. On a not-visible DSN, use-env surfaces env_help.
323
+ async function saveConnection(name, dsnVar) {
324
+ const result = await selfMcpConfig(buildArgs("use-env", { name, "dsn-var": dsnVar }), ctx);
325
+ onToast?.({
326
+ tone: result.ok ? "ok" : "err",
327
+ title: result.ok ? `Registered · ${name}` : "Save failed",
328
+ body: result.data?.summary ?? result.error?.message ?? "",
329
+ });
330
+ return result.ok;
331
+ }
332
+ async function saveOnly(name, dsnVar) {
333
+ setMode({ kind: "busy", label: `saving ${name}…` });
254
334
  try {
255
- const result = await selfMcpConfig(buildArgs("use-env", { name, "dsn-var": dsnVar }), ctx);
256
- const summary = result.data?.summary ?? result.error?.message ?? "";
257
- onToast?.({
258
- tone: result.ok ? "ok" : "err",
259
- title: result.ok ? "Connection registered" : "Failed",
260
- body: summary,
261
- });
335
+ await saveConnection(name, dsnVar);
336
+ await refresh();
337
+ }
338
+ catch (err) {
339
+ onToast?.({ tone: "err", title: "Error", body: err.message });
340
+ }
341
+ finally {
342
+ setMode({ kind: "list" });
343
+ }
344
+ }
345
+ async function saveAndInstall(name, dsnVar) {
346
+ setMode({ kind: "busy", label: `saving ${name}…` });
347
+ try {
348
+ const saved = await saveConnection(name, dsnVar);
349
+ if (saved) {
350
+ setMode({ kind: "busy", label: `installing ${name} → .mcp.json…` });
351
+ const install = await selfMcpConfig(buildArgs("install-claude", { name }), ctx);
352
+ onToast?.({
353
+ tone: install.ok ? "ok" : "err",
354
+ title: install.ok ? `Installed · ${name}` : `Install failed · ${name}`,
355
+ body: install.data?.summary ?? install.error?.message ?? "",
356
+ });
357
+ }
262
358
  await refresh();
263
359
  }
264
360
  catch (err) {
@@ -268,6 +364,29 @@ export function McpTab({ ctx, isActive, onToast, recentEvents }) {
268
364
  setMode({ kind: "list" });
269
365
  }
270
366
  }
367
+ async function runWizardTest(review) {
368
+ setMode({ kind: "busy", label: `testing ${review.dsnVar} → dbhub…` });
369
+ try {
370
+ const result = await testMcpConnection({
371
+ dsnVar: review.dsnVar,
372
+ env: process.env,
373
+ paths: ctx.paths,
374
+ platform: process.platform,
375
+ });
376
+ setMode({
377
+ ...review,
378
+ test: {
379
+ ok: result.ok,
380
+ msg: result.ok
381
+ ? `dbhub connected (${result.source ?? "env"})`
382
+ : (result.error ?? "dbhub could not connect"),
383
+ },
384
+ });
385
+ }
386
+ catch (err) {
387
+ setMode({ ...review, test: { ok: false, msg: err.message } });
388
+ }
389
+ }
271
390
  }
272
391
  function WizardStep({ index, label, active, completed, value, hint, }) {
273
392
  const glyph = completed ? icons.check : active ? "→" : " ";
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/mcp-tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/mcp-tab.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/workflow-tab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQjD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CA6FzD"}
1
+ {"version":3,"file":"workflow-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/workflow-tab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQjD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAmGzD"}
@@ -31,6 +31,6 @@ export function WorkflowTab({ isActive }) {
31
31
  return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: "Workflow", count: {
32
32
  label: `${w.slashCommands.length} commands · ${w.commandFamilies.length} families · ${w.hooks.length} hooks`,
33
33
  tone: "accent",
34
- }, action: _jsx(Text, { color: colors.mute, children: "stages + loops + artifacts harness" }) }), _jsxs(Box, { flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 2, children: [_jsx(SectionHead, { label: "Flows", rightAction: "spec \u00B7 plan \u00B7 quick" }), _jsx(Box, { marginTop: 0, flexDirection: "column", children: w.phases.map((p) => (_jsx(PhaseCard, { phase: p }, p.id))) })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingLeft: 1, children: [_jsx(SectionHead, { label: "Command families", count: w.commandFamilies.length, rightAction: "\u21B5 to expand" }), _jsxs(Box, { marginTop: 0, flexDirection: "column", children: [w.commandFamilies.map((f, i) => (_jsx(FamilyCard, { family: f, active: i === cursor, expanded: expandedId === f.id }, f.id))), w.commandFamilies.length > 8 ? (_jsxs(Text, { color: colors.faint, children: ["\u2026+", w.commandFamilies.length - 8, " more families"] })) : null] }), _jsx(SectionHead, { label: "Slash \u00B7 Hooks", rightAction: "claude \u00B7 codex", marginTop: 1 }), _jsxs(Box, { marginLeft: 2, marginTop: 0, flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: colors.bright, bold: true, children: w.slashCommands.length }), _jsx(Text, { color: colors.dim, children: " slash commands \u00B7 " }), _jsx(Text, { color: colors.accent, children: "/w:<name>" })] }), _jsxs(Box, { flexWrap: "wrap", children: [_jsx(Text, { color: colors.bright, bold: true, children: w.hooks.length }), _jsx(Text, { color: colors.dim, children: " hooks \u00B7 " }), w.hooks.map((h, i) => (_jsxs(Box, { children: [i > 0 ? _jsx(Text, { color: colors.dim, children: ", " }) : null, _jsx(Text, { color: colors.ok, children: h.name })] }, h.name)))] })] })] })] })] }));
34
+ }, action: _jsx(Text, { color: colors.mute, children: "stages + loops + artifacts harness" }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.dim, wrap: "wrap", children: w.overview }) }), _jsxs(Box, { flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 2, children: [_jsx(SectionHead, { label: "Flows", rightAction: "spec \u00B7 plan \u00B7 quick" }), _jsx(Box, { marginTop: 0, flexDirection: "column", children: w.phases.map((p) => (_jsx(PhaseCard, { phase: p }, p.id))) })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingLeft: 1, children: [_jsx(SectionHead, { label: "Command families", count: w.commandFamilies.length, rightAction: "\u21B5 to expand" }), _jsxs(Box, { marginTop: 0, flexDirection: "column", children: [w.commandFamilies.map((f, i) => (_jsx(FamilyCard, { family: f, active: i === cursor, expanded: expandedId === f.id }, f.id))), w.commandFamilies.length > 8 ? (_jsxs(Text, { color: colors.faint, children: ["\u2026+", w.commandFamilies.length - 8, " more families"] })) : null] }), _jsx(SectionHead, { label: "Slash \u00B7 Hooks", rightAction: "claude \u00B7 codex", marginTop: 1 }), _jsxs(Box, { marginLeft: 2, marginTop: 0, flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: colors.bright, bold: true, children: w.slashCommands.length }), _jsx(Text, { color: colors.dim, children: " slash commands \u00B7 " }), _jsx(Text, { color: colors.accent, children: "/w:<name>" })] }), _jsxs(Box, { flexWrap: "wrap", children: [_jsx(Text, { color: colors.bright, bold: true, children: w.hooks.length }), _jsx(Text, { color: colors.dim, children: " hooks \u00B7 " }), w.hooks.map((h, i) => (_jsxs(Box, { children: [i > 0 ? _jsx(Text, { color: colors.dim, children: ", " }) : null, _jsx(Text, { color: colors.ok, children: h.name })] }, h.name)))] })] })] })] })] }));
35
35
  }
36
36
  //# sourceMappingURL=workflow-tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/workflow-tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/workflow-tab.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tacuchi/agent-workflow-cli",
3
- "version": "12.7.1",
3
+ "version": "12.8.0",
4
4
  "description": "Agnostic runtime CLI for AI development workflows — a stages + loops + artifacts harness. Bundles the universal `w` skill set under `skills/w/` (slash commands `/w:*`: spec-new/spec-refine, plan-new/plan-exec, quick, workspace-init, export-*); `self install --target <host>` copies SKILL + commands + hooks into the host. Pluggable capability skills via `.workflow/skills.toml`. Multi-empresa parametrization via `profile.json` cascade. Namespace auto-detected from any `.<ns>/sessions/` dir in CWD; default `workflow`.",
5
5
  "type": "module",
6
6
  "bin": {
package/skills/w/SKILL.md CHANGED
@@ -86,16 +86,17 @@ Skills **invocables independientes de flujo**: se disparan con `/w:` igual que u
86
86
 
87
87
  Un loop es una skill que enseña a la IA **cómo iterar** hasta un entregable. Propiedades comunes (el chasis, en `spec-refine-loop`, lo heredan los demás):
88
88
 
89
- 1. **Gap-driven convergente** — cada ciclo: detecta huecos resuelve (pregunta al humano o investiga) integra repite hasta converger.
90
- 2. **Una sola session por run + research inline** — el loop crea **una** session (la dueña del run) y maneja sus artefactos en `.workflow/sessions/`. La **investigación es inline**: una actividad dentro de esa misma session (escribe `ANALYSIS-FILE`/`CONCLUSIONS` + `SCRIPTS.sql` read-only si consulta BD), no una session aparte. El usuario nunca crea sessions. Los artefactos son el **registro vivo** del run, **ciclo artifact-first** (sembrar `Pending`/`Next` antes de ejecutar, llevar a `Completed` después); la base guía es el spec/plan.
91
- 3. **Structured-choice con dos tipos de pregunta** — *structured-choice* (capacidad del arnés ver `harness/SKILL.md`). En **Claude Code** es `AskUserQuestion` (máx 4 preguntas/llamada **≤3 preguntas de contenido + 1 control `flow`**); en un arnés sin elección estructurada, degrada a **markdown numerado**.
89
+ 1. **Objetivo persistente + verification-first** — el loop persigue su `SESSION.Objective` y solo finaliza cuando sus `SESSION.Success criteria` (sembrados al inicio, *verification-first* / TDD generalizado: tests para código, rúbrica falsable para análisis/diseño) están **en verde**. Modelado en el `/goal` de Claude Code pero **agnóstico** (no depende de ningún host) y con registro durable.
90
+ 2. **Gap-driven convergente** — el *cómo*: cada ciclo detecta huecos resuelve (pregunta al humano o investiga) integra repite hasta converger.
91
+ 3. **Una sola session por run + research inline** — el loop crea **una** session (la dueña del run) y maneja sus artefactos en `.workflow/sessions/`. La **investigación es inline**: una actividad dentro de esa misma session (escribe `ANALYSIS-FILE`/`CONCLUSIONS` + `SCRIPTS.sql` read-only si consulta BD), no una session aparte. El usuario nunca crea sessions. Los artefactos son el **registro vivo** del run, **ciclo artifact-first** (sembrar `Pending`/`Next` antes de ejecutar, llevar a `Completed` después); la base guía es el spec/plan.
92
+ 4. **Structured-choice con dos tipos de pregunta** — *structured-choice* (capacidad del arnés — ver `harness/SKILL.md`). En **Claude Code** es `AskUserQuestion` (máx 4 preguntas/llamada → **≤3 preguntas de contenido + 1 control `flow`**); en un arnés sin elección estructurada, degrada a **markdown numerado**.
92
93
  - **pregunta(s) de contenido** — la pregunta real del momento.
93
94
  - **control `flow`** — control de ciclo de vida, **siempre presente**: `Compactar` / `Cerrar`. Responder la pregunta de contenido sin tocar `flow` = seguir iterando.
94
- 4. **Escribe solo en su carpeta `docs/`** — y nunca exporta el resto (eso es de `export-*`).
95
+ 5. **Escribe solo en su carpeta `docs/`** — y nunca exporta el resto (eso es de `export-*`).
95
96
 
96
97
  `flow → Compactar` = checkpoint + la **compactación** del arnés (en Claude Code: `/compact`; ver `harness/SKILL.md`) y reanuda. `flow → Cerrar` = persiste `CHECKPOINT` (siempre) + `BACKLOG` (solo si difiere), cierra la session, termina.
97
98
 
98
- Cada loop tiene un **convergence gate** read-only antes de ofrecer `Guardar`/`done`: chequea invariantes propios del entregable y lo que falle vuelve como gap (en `spec-refine-loop` es el *analyze gate*; en `plan-new-loop`, la coherencia del plan; en `plan-exec-loop`, la validación final; en `quick-loop`, una validación puntual lightweight). El detalle vive en cada loop.
99
+ Cada loop tiene un **convergence gate** read-only antes de ofrecer `Guardar`/`done`, que es operacionalmente **"todos los `SESSION.Success criteria` en verde"** (*verification-first*): chequea invariantes propios del entregable y lo que falle vuelve como gap (en `spec-refine-loop` es el *analyze gate*; en `plan-new-loop`, la coherencia del plan; en `plan-exec-loop`, la validación final; en `quick-loop`, una validación puntual proporcional). El detalle vive en cada loop.
99
100
 
100
101
  `spec-new` no tiene loop (single-pass): **5 comandos / 4 loops**.
101
102
 
@@ -163,7 +164,7 @@ Las únicas `must` para el ciclo de un loop son **structured-choice** y **compac
163
164
  3. **El spec y el plan son documentos** (`docs/`), no artefactos de sesión.
164
165
  4. **BD solo-scripts** — la IA nunca ejecuta DML/DDL; las migraciones quedan en `SCRIPTS.sql` y las aplica el usuario. Solo lecturas read-only vía MCP.
165
166
  5. **Git seguro** — rama esperada verificada antes de editar; commits propuestos por fuente; nunca `push`/`--amend`/`--no-verify`.
166
- 6. **Chasis de loops** — gap-driven convergente · una sola session por run (research inline) · **structured-choice** con ≤3 preguntas de contenido + 1 control `flow` (`Compactar`/`Cerrar`) siempre · compactación/resume · convergence gate read-only antes de cerrar · artefactos como log vivo **artifact-first** (sembrar `Pending`/`Next` antes, `Completed` después; `CHECKPOINT` siempre; `BACKLOG` solo si difiere).
167
+ 6. **Chasis de loops** — **objetivo persistente + verification-first** (persigue `SESSION.Objective` hasta que sus `SESSION.Success criteria` —sembrados al inicio, TDD generalizado— están en verde) · gap-driven convergente · una sola session por run (research inline) · **structured-choice** con ≤3 preguntas de contenido + 1 control `flow` (`Compactar`/`Cerrar`) siempre · compactación/resume · artefactos como log vivo **artifact-first** (sembrar `Pending`/`Next` antes, `Completed` después; `CHECKPOINT` siempre; `BACKLOG` solo si difiere).
167
168
 
168
169
  ## Output
169
170
 
@@ -39,7 +39,7 @@ Sessions are created by the loops as needed — **one session per run**. The ses
39
39
 
40
40
  ## Common artifacts (any session)
41
41
 
42
- `SESSION` (descriptor: Objective / Origin / Type; + research-only Success criteria) · `CHECKPOINT` (resume) · `SCRIPTS.sql` (read-only queries **executable** + DDL/DML migrations **deliverable**, not executed) · `TASKS` · `BACKLOG` (only when there's something to defer).
42
+ `SESSION` (descriptor: Objective / Origin / Type / **Success criteria** = verification-first done-condition, formerly research-only) · `CHECKPOINT` (resume) · `SCRIPTS.sql` (read-only queries **executable** + DDL/DML migrations **deliverable**, not executed) · `TASKS` · `BACKLOG` (only when there's something to defer).
43
43
 
44
44
  ---
45
45