@tacuchi/agent-workflow-cli 12.2.1 → 12.4.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.
@@ -12,6 +12,8 @@ export interface SessionCreateInput {
12
12
  export interface SessionCreateRecordOutput {
13
13
  type: SessionType;
14
14
  name: string;
15
+ /** Global sequential number assigned by the CLI (zero-padded, e.g. "003"). */
16
+ number: string;
15
17
  folder: string;
16
18
  path: string;
17
19
  session_path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"session-create-service.d.ts","sourceRoot":"","sources":["../../src/application/session-create-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,CA+BvD"}
1
+ {"version":3,"file":"session-create-service.d.ts","sourceRoot":"","sources":["../../src/application/session-create-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,CAgCvD"}
@@ -22,6 +22,7 @@ export async function runSessionCreate(fs, _env, paths, input) {
22
22
  const record = {
23
23
  type,
24
24
  name,
25
+ number: folderInfo.number,
25
26
  folder: folderInfo.folder,
26
27
  path: sessionPath,
27
28
  session_path: sessionFilePath,
@@ -55,13 +56,35 @@ function validateInput(input) {
55
56
  async function prepareSessionFolder(fs, paths, name) {
56
57
  const sessionsDir = paths.cwdSessionsDir();
57
58
  await fs.mkdirp(sessionsDir);
58
- // Folder is the --name verbatim (locked decision): no numeric NNN, no type suffix.
59
- const folder = name;
59
+ // The CLI owns the session number: a single global, sequential counter across
60
+ // ALL sessions in `.workflow/sessions/` (any type), so numbering never resets
61
+ // per type nor collides. Callers pass only the descriptor via `--name`; the
62
+ // `NNN-` prefix is assigned here. A descriptor that already carries a leading
63
+ // `NNN-` is normalized away first so the prefix can't double up.
64
+ const descriptor = name.replace(/^\d{3}-/, "");
65
+ const number = await nextSessionNumber(fs, sessionsDir);
66
+ const folder = `${number}-${descriptor}`;
60
67
  const sessionPath = join(sessionsDir, folder);
61
68
  if (await fs.exists(sessionPath)) {
62
69
  return { error: `Ya existe ${sessionPath}` };
63
70
  }
64
71
  await fs.mkdirp(sessionPath);
65
- return { folder, sessionPath, sessionsDir };
72
+ return { folder, number, sessionPath, sessionsDir };
73
+ }
74
+ /**
75
+ * Next global session number: scan `.workflow/sessions/` for any entry whose name
76
+ * starts with a 3-digit code and return max+1, zero-padded. Type-agnostic — one
77
+ * sequence for every session regardless of kind. Legacy `sessionNNN-…` folders
78
+ * (no leading digit) don't match and are ignored, so the new sequence starts fresh.
79
+ */
80
+ async function nextSessionNumber(fs, sessionsDir) {
81
+ const entries = await fs.list(sessionsDir);
82
+ let max = 0;
83
+ for (const entry of entries) {
84
+ const m = entry.name.match(/^(\d{3})/);
85
+ if (m?.[1])
86
+ max = Math.max(max, Number.parseInt(m[1], 10));
87
+ }
88
+ return String(max + 1).padStart(3, "0");
66
89
  }
67
90
  //# sourceMappingURL=session-create-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-create-service.js","sourceRoot":"","sources":["../../src/application/session-create-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-create-service.js","sourceRoot":"","sources":["../../src/application/session-create-service.ts"],"names":[],"mappings":"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"}
package/dist/cli/main.js CHANGED
File without changes
@@ -1,3 +1,4 @@
1
+ import { type GitFlowAction, type GitFlowResult } from "../../../application/git-flow-service.js";
1
2
  import type { CliContext } from "../../types.js";
2
3
  /**
3
4
  * Per-source git-flow actions affordance for the Project tab.
@@ -19,4 +20,8 @@ export interface GitFlowActionsProps {
19
20
  onClose: () => void;
20
21
  }
21
22
  export declare function GitFlowActions({ ctx, aliases, isActive, onClose }: GitFlowActionsProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function FlowResultView({ action, result, }: {
24
+ action: GitFlowAction;
25
+ result: GitFlowResult;
26
+ }): import("react/jsx-runtime").JSX.Element;
22
27
  //# sourceMappingURL=git-flow-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-flow-actions.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/git-flow-actions.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,UAAU,CAAC;IAChB,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA4BD,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAe,EAAE,OAAO,EAAE,EAAE,mBAAmB,2CAmH7F"}
1
+ {"version":3,"file":"git-flow-actions.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/git-flow-actions.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,aAAa,EAGnB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,UAAU,CAAC;IAChB,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA4BD,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAe,EAAE,OAAO,EAAE,EAAE,mBAAmB,2CAmH7F;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;CACvB,2CAmCA"}
@@ -1 +1 @@
1
- {"version":3,"file":"git-flow-actions.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/git-flow-actions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-flow-actions.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/git-flow-actions.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/project-tab.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAUjD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACvE;AAED,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,eAAe,2CAgHzE"}
1
+ {"version":3,"file":"project-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/project-tab.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgBjD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACvE;AAED,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,eAAe,2CAkFzE"}
@@ -1,9 +1,12 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { basename } from "node:path";
3
- import { Box, Text, useInput } from "ink";
4
- import { useCallback, useEffect, useState } from "react";
3
+ import { Box, Text, useInput, useStdout } from "ink";
4
+ import { useCallback, useEffect, useMemo, useState } from "react";
5
+ import { runGitFlow, } from "../../../application/git-flow-service.js";
5
6
  import { buildProjectTabData, } from "../../../application/project-tab-data.js";
6
- import { GitFlowActions } from "../components/git-flow-actions.js";
7
+ import { DetailPanel, } from "../components/detail-panel.js";
8
+ import { FlowResultView } from "../components/git-flow-actions.js";
9
+ import { ListRow } from "../components/list-row.js";
7
10
  import { PageHead } from "../components/page-head.js";
8
11
  import { QuickActions } from "../components/quick-actions.js";
9
12
  import { SectionHead } from "../components/section-head.js";
@@ -15,7 +18,6 @@ export function ProjectTab({ ctx, isActive, onRunAction }) {
15
18
  const [data, setData] = useState(null);
16
19
  const [loading, setLoading] = useState(true);
17
20
  const [initForm, setInitForm] = useState(false);
18
- const [gitFlow, setGitFlow] = useState(false);
19
21
  const { lock, unlock } = useInputLock();
20
22
  const loadData = useCallback(async () => {
21
23
  try {
@@ -35,48 +37,27 @@ export function ProjectTab({ ctx, isActive, onRunAction }) {
35
37
  useEffect(() => {
36
38
  void loadData();
37
39
  }, [loadData]);
38
- // Mientras un overlay (workspace-init / git-flow) está abierto, bloquea las
39
- // teclas globales para que sus inputs no naveguen entre tabs.
40
+ // Mientras el wizard de init está abierto, bloquea las teclas globales para que
41
+ // sus inputs no naveguen entre tabs. La vista inicializada (Initialized) maneja
42
+ // su propio lock para el detail panel / flujo en curso.
40
43
  useEffect(() => {
41
- if (initForm || gitFlow)
44
+ if (initForm)
42
45
  lock();
43
46
  else
44
47
  unlock();
45
- }, [initForm, gitFlow, lock, unlock]);
48
+ }, [initForm, lock, unlock]);
46
49
  useEffect(() => () => unlock(), [unlock]);
47
- const handleInitKey = useCallback((input, key) => {
50
+ // Teclas de la landing "no inicializado" ( abre el wizard · g git status).
51
+ useInput((input, key) => {
48
52
  if (!data || data.initialized)
49
- return false;
53
+ return;
50
54
  if (key.return) {
51
55
  setInitForm(true);
52
- return true;
53
- }
54
- if (input === "g") {
55
- onRunAction?.("git:status");
56
- return true;
56
+ return;
57
57
  }
58
- return false;
59
- }, [data, onRunAction]);
60
- const handleReadyKey = useCallback((input, d) => {
61
58
  if (input === "g")
62
59
  onRunAction?.("git:status");
63
- else if (input === "c" && d.branches.length > 1) {
64
- const candidate = d.branches.find((b) => !b.current);
65
- if (candidate)
66
- onRunAction?.("git:checkout", { name: candidate.name });
67
- }
68
- else if (input === "s")
69
- onRunAction?.("session:start");
70
- else if (input === "f" && d.sources.length > 0)
71
- setGitFlow(true);
72
- }, [onRunAction]);
73
- useInput((input, key) => {
74
- if (!data)
75
- return;
76
- if (handleInitKey(input, key))
77
- return;
78
- handleReadyKey(input, data);
79
- }, { isActive: isActive && !!data && !initForm && !gitFlow });
60
+ }, { isActive: isActive && !!data && !data.initialized && !initForm });
80
61
  if (loading || !data) {
81
62
  return (_jsx(Box, { children: _jsxs(Text, { color: colors.dim, children: [icons.spinner, " loading\u2026"] }) }));
82
63
  }
@@ -90,13 +71,7 @@ export function ProjectTab({ ctx, isActive, onRunAction }) {
90
71
  }
91
72
  return _jsx(NotInitialized, { data: data });
92
73
  }
93
- if (gitFlow) {
94
- return (_jsx(GitFlowActions, { ctx: ctx, aliases: data.sources.map((s) => s.alias), isActive: isActive, onClose: () => {
95
- setGitFlow(false);
96
- void loadData();
97
- } }));
98
- }
99
- return _jsx(Initialized, { ctx: ctx, data: data });
74
+ return (_jsx(Initialized, { ctx: ctx, data: data, isActive: isActive, onRunAction: onRunAction, onReload: loadData }));
100
75
  }
101
76
  // ===== Helpers de presentación =====
102
77
  /**
@@ -136,7 +111,32 @@ function NotInitialized({ data }) {
136
111
  return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: "Workspace", count: { label: "not initialized", tone: "warn" }, action: _jsx(Text, { color: colors.mute, children: "WORKSPACE block not found in CLAUDE.md / AGENTS.md" }) }), _jsx(SectionHead, { label: "Initialize workspace", marginTop: 0 }), _jsxs(Box, { marginLeft: 2, marginTop: 0, flexDirection: "column", children: [_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.bright, bold: true, children: "Initialize this directory as a workspace" }), _jsxs(Box, { marginLeft: 2, flexDirection: "column", children: [_jsx(Text, { color: colors.dim, children: "Collect 1+ sources (alias \u00B7 path \u00B7 main branch) and optional working branches." }), _jsx(Text, { color: colors.info, children: "/w:workspace-init" })] })] }), _jsx(Text, { color: colors.dim, children: "\u23CE start wizard" })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { color: colors.faint, children: [icons.pin, " ", data.workspacePath] }), data.git ? (_jsxs(Box, { children: [_jsxs(Text, { color: colors.faint, children: [icons.branch, " ", data.git.branch, " (base ", data.git.base, ")"] }), data.git.dirty > 0 ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { color: colors.warn, children: [data.git.dirty, " uncommitted"] })] })) : null] })) : (_jsx(Text, { color: colors.faint, children: "(not a git repo)" }))] })] }));
137
112
  }
138
113
  // ===== Inicializado — vista WORKSPACE =====
139
- function Initialized({ ctx, data }) {
114
+ /** Centinela de target = "todas las fuentes". Alias imposible (no colisiona). */
115
+ const ALL_SOURCES = " all-sources";
116
+ /**
117
+ * Las tres acciones git-flow por-fuente, en el orden que pidió el usuario.
118
+ * Mapean 1:1 a {@link GitFlowAction}:
119
+ * - `sync` → "Alinear con PROD" (merge prod→work: trae PROD a la rama de trabajo)
120
+ * - `to-qa` → "Enviar a QA"
121
+ * - `to-prod` → "Enviar a PROD"
122
+ */
123
+ const FLOW_ACTIONS = [
124
+ { id: "sync", name: "Alinear con PROD", description: "merge prod→work" },
125
+ { id: "to-qa", name: "Enviar a QA", description: "sync + prod/work→qa + push" },
126
+ { id: "to-prod", name: "Enviar a PROD", description: "sync + work→prod + push" },
127
+ ];
128
+ /**
129
+ * Ancho disponible para un row de la lista de sources, según si el detail panel
130
+ * está abierto. Mismo cálculo que el tab MCP (overhead de frame + padding +
131
+ * panel lateral de 39 cells).
132
+ */
133
+ function computeRowWidth(termCols, detailOpen) {
134
+ const cols = termCols ?? 100;
135
+ const baseOverhead = 14; // ScreenFrame (6) + tab content (6) + list paddingRight (2)
136
+ const detailOverhead = detailOpen ? 39 : 0;
137
+ return Math.max(16, cols - baseOverhead - detailOverhead);
138
+ }
139
+ function Initialized({ ctx, data, isActive, onRunAction, onReload }) {
140
140
  const dirty = data.git?.dirty ?? 0;
141
141
  const totalSources = data.sources.length;
142
142
  const dirtySources = data.sources.filter((s) => s.dirty).length;
@@ -146,16 +146,140 @@ function Initialized({ ctx, data }) {
146
146
  const shortName = deriveShortName(data.workspaceName, basename(data.workspacePath));
147
147
  const description = deriveDescription(data.workspaceName);
148
148
  const wsPath = tildePath(data.workspacePath, home);
149
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: `Workspace · ${shortName}`, action: _jsx(Text, { color: colors.faint, children: wsPath }) }), description ? (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.dim, wrap: "truncate-end", children: description }) })) : null, _jsxs(Box, { flexDirection: "row", marginBottom: 1, children: [_jsx(StatTile, { label: "git", value: data.git?.branch ?? "—", sub: statGitSub(data), accent: true }), _jsx(StatTile, { label: "working tree", value: `${dirty} dirty`, sub: `${data.git?.staged ?? 0} staged · ${data.git?.untracked ?? 0} untracked`, tone: dirty > 0 ? "warn" : "dim" }), _jsx(StatTile, { label: "sources", value: `${totalSources}`, sub: `${dirtySources} dirty`, tone: totalSources > 0 ? "accent" : "dim" }), _jsx(StatTile, { label: "working branches", value: `${workingEntries.length}`, sub: workingEntries.length > 0 ? "declared" : "none", tone: workingEntries.length > 0 ? "accent" : "dim" })] }), totalSources > 0 ? (_jsxs(_Fragment, { children: [_jsx(SectionHead, { label: "Sources", count: totalSources, marginTop: 1 }), _jsx(Box, { marginLeft: 2, flexDirection: "column", children: data.sources.map((s) => (_jsx(SourceRow, { source: s }, s.alias))) })] })) : null, _jsx(SectionHead, { label: "Ramas de trabajo actuales", count: workingEntries.length, marginTop: 1 }), _jsx(Box, { marginLeft: 2, flexDirection: "column", children: workingEntries.length > 0 ? (workingEntries.map(([alias, branch]) => (_jsxs(Box, { children: [_jsxs(Text, { color: colors.accent, children: [icons.diamond, " "] }), _jsx(Text, { color: colors.bright, bold: true, children: alias }), _jsx(Box, { flexGrow: 1 }), _jsxs(Text, { color: colors.dim, children: [icons.branch, " ", branch] })] }, alias)))) : (_jsx(Text, { color: colors.faint, children: "(no working branches declared)" })) }), qaEntries.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(SectionHead, { label: "Ramas QA actuales", count: qaEntries.length, marginTop: 1 }), _jsx(Box, { marginLeft: 2, flexDirection: "column", children: qaEntries.map(([alias, branch]) => (_jsxs(Box, { children: [_jsxs(Text, { color: colors.accent, children: [icons.diamond, " "] }), _jsx(Text, { color: colors.bright, bold: true, children: alias }), _jsx(Box, { flexGrow: 1 }), _jsxs(Text, { color: colors.dim, children: [icons.branch, " ", branch] })] }, alias))) })] })) : null, _jsx(Box, { marginTop: 1, children: _jsx(QuickActions, { actions: [
150
- { key: "s", label: "start session" },
151
- ...(totalSources > 0 ? [{ key: "f", label: "git flow" }] : []),
152
- ] }) })] }));
149
+ const { stdout } = useStdout();
150
+ const { lock, unlock } = useInputLock();
151
+ // Targets navegables: cada fuente + la fila centinela "all sources" al final.
152
+ const targets = useMemo(() => [...data.sources.map((s) => s.alias), ALL_SOURCES], [data.sources]);
153
+ const hasSources = totalSources > 0;
154
+ const [cursor, setCursor] = useState(0);
155
+ const [actionCursor, setActionCursor] = useState(0);
156
+ const [mode, setMode] = useState({ kind: "list" });
157
+ // El detail panel (y el flujo en curso) bloquean las teclas globales; la lista
158
+ // base las deja pasar.
159
+ useEffect(() => {
160
+ if (mode.kind === "list")
161
+ unlock();
162
+ else
163
+ lock();
164
+ }, [mode, lock, unlock]);
165
+ useEffect(() => () => unlock(), [unlock]);
166
+ const detailOpen = mode.kind === "detail";
167
+ const currentTarget = targets[cursor] ?? ALL_SOURCES;
168
+ const isAllTarget = currentTarget === ALL_SOURCES;
169
+ const currentSource = isAllTarget
170
+ ? null
171
+ : (data.sources.find((s) => s.alias === currentTarget) ?? null);
172
+ const runFlow = useCallback(async (action) => {
173
+ const target = targets[cursor] ?? ALL_SOURCES;
174
+ const isAll = target === ALL_SOURCES;
175
+ const actionName = FLOW_ACTIONS.find((a) => a.id === action)?.name ?? action;
176
+ setMode({ kind: "running", label: `${actionName} · ${isAll ? "all sources" : target}` });
177
+ const input = isAll ? { action, all: true } : { action, source: target };
178
+ try {
179
+ const result = await runGitFlow(ctx.fs, ctx.git, ctx.paths, input);
180
+ setMode({ kind: "result", action, result });
181
+ }
182
+ catch (err) {
183
+ setMode({
184
+ kind: "result",
185
+ action,
186
+ result: {
187
+ action,
188
+ dry_run: false,
189
+ status: "error",
190
+ results: [],
191
+ error: err.message,
192
+ },
193
+ });
194
+ }
195
+ }, [cursor, ctx, targets]);
196
+ // Atajos de la lista de sources (↑↓ navega · ⏎ abre panel · s/g/c acciones).
197
+ const handleListKey = useCallback((input, key) => {
198
+ if (input === "s")
199
+ return void onRunAction?.("session:start");
200
+ if (input === "g")
201
+ return void onRunAction?.("git:status");
202
+ if (input === "c" && data.branches.length > 1) {
203
+ const candidate = data.branches.find((b) => !b.current);
204
+ if (candidate)
205
+ onRunAction?.("git:checkout", { name: candidate.name });
206
+ return;
207
+ }
208
+ if (!hasSources)
209
+ return;
210
+ if (key.upArrow)
211
+ return setCursor((c) => Math.max(0, c - 1));
212
+ if (key.downArrow)
213
+ return setCursor((c) => Math.min(targets.length - 1, c + 1));
214
+ if (key.return) {
215
+ setActionCursor(0);
216
+ setMode({ kind: "detail" });
217
+ }
218
+ }, [data.branches, hasSources, onRunAction, targets.length]);
219
+ // Acciones del panel lateral (↑↓ navega · ⏎ ejecuta · esc cierra).
220
+ const handleDetailKey = useCallback((key) => {
221
+ if (key.upArrow)
222
+ return setActionCursor((c) => Math.max(0, c - 1));
223
+ if (key.downArrow)
224
+ return setActionCursor((c) => Math.min(FLOW_ACTIONS.length - 1, c + 1));
225
+ if (key.escape)
226
+ return setMode({ kind: "list" });
227
+ if (key.return) {
228
+ const action = FLOW_ACTIONS[actionCursor];
229
+ if (action)
230
+ void runFlow(action.id);
231
+ }
232
+ }, [actionCursor, runFlow]);
233
+ // input — delega a cada handler según el modo activo.
234
+ useInput((input, key) => {
235
+ if (!isActive)
236
+ return;
237
+ if (mode.kind === "list")
238
+ handleListKey(input, key);
239
+ else if (mode.kind === "detail")
240
+ handleDetailKey(key);
241
+ else if (mode.kind === "result") {
242
+ // ⏎/r re-ejecuta (= resume on conflict) · esc vuelve a la lista.
243
+ if (key.escape) {
244
+ setMode({ kind: "list" });
245
+ void onReload?.();
246
+ }
247
+ else if (key.return || input === "r")
248
+ void runFlow(mode.action);
249
+ }
250
+ }, { isActive });
251
+ if (mode.kind === "running") {
252
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHead, { label: "Git flow", hint: mode.label }), _jsx(Box, { marginLeft: 2, marginTop: 1, children: _jsxs(Text, { color: colors.warn, children: [icons.spinner, " ejecutando\u2026"] }) })] }));
253
+ }
254
+ if (mode.kind === "result") {
255
+ return _jsx(FlowResultView, { action: mode.action, result: mode.result });
256
+ }
257
+ const detailActions = FLOW_ACTIONS.map((a) => ({
258
+ name: a.name,
259
+ description: a.description,
260
+ }));
261
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: `Workspace · ${shortName}`, action: _jsx(Text, { color: colors.faint, children: wsPath }) }), description ? (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.dim, wrap: "truncate-end", children: description }) })) : null, _jsxs(Box, { flexDirection: "row", marginBottom: 1, children: [_jsx(StatTile, { label: "git", value: data.git?.branch ?? "—", sub: statGitSub(data), accent: true }), _jsx(StatTile, { label: "working tree", value: `${dirty} dirty`, sub: `${data.git?.staged ?? 0} staged · ${data.git?.untracked ?? 0} untracked`, tone: dirty > 0 ? "warn" : "dim" }), _jsx(StatTile, { label: "sources", value: `${totalSources}`, sub: `${dirtySources} dirty`, tone: totalSources > 0 ? "accent" : "dim" }), _jsx(StatTile, { label: "working branches", value: `${workingEntries.length}`, sub: workingEntries.length > 0 ? "declared" : "none", tone: workingEntries.length > 0 ? "accent" : "dim" })] }), _jsxs(Box, { flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 2, children: [hasSources ? (_jsxs(_Fragment, { children: [_jsx(SectionHead, { label: "Sources", count: totalSources, marginTop: 0, rightAction: detailOpen ? "esc to close detail" : "↑↓ select · ⏎ actions" }), _jsxs(Box, { marginLeft: 2, flexDirection: "column", children: [data.sources.map((s, i) => (_jsx(SourceRow, { source: s, active: i === cursor, widthHint: computeRowWidth(stdout?.columns, detailOpen) }, s.alias))), _jsx(ListRow, { icon: icons.diamond, title: "all sources", subtitle: `aplica a las ${totalSources} fuentes`, chevron: true, active: cursor === targets.length - 1, widthHint: computeRowWidth(stdout?.columns, detailOpen) })] })] })) : null, _jsx(BranchList, { label: "Ramas de trabajo actuales", entries: workingEntries, emptyHint: "(no working branches declared)" }), qaEntries.length > 0 ? (_jsx(BranchList, { label: "Ramas QA actuales", entries: qaEntries })) : null] }), detailOpen ? (_jsx(SourceActionsPanel, { isAll: isAllTarget, name: isAllTarget ? "all sources" : currentTarget, source: currentSource, totalSources: totalSources, actions: detailActions, focusedAction: actionCursor })) : null] }), _jsx(Box, { marginTop: 1, children: _jsx(QuickActions, { actions: [{ key: "s", label: "start session" }] }) })] }));
153
262
  }
154
- function SourceRow({ source }) {
263
+ function SourceRow({ source, active, widthHint, }) {
155
264
  const status = source.dirty ? `${source.changedFiles} dirty` : "in sync";
156
- const statusColor = source.dirty ? colors.warn : colors.ok;
157
265
  const branch = source.branch ?? source.mainBranch;
158
- return (_jsxs(Box, { children: [_jsxs(Text, { color: colors.accent, children: [icons.diamond, " "] }), _jsx(Text, { color: colors.bright, bold: true, children: source.alias }), _jsxs(Text, { color: colors.faint, children: [" \u00B7 main ", source.mainBranch] }), _jsx(Box, { flexGrow: 1 }), _jsx(Text, { color: statusColor, children: status }), _jsx(Text, { color: colors.faint, children: " \u00B7 " }), _jsxs(Text, { color: colors.dim, children: [icons.branch, " ", branch] })] }));
266
+ return (_jsx(ListRow, { icon: icons.diamond, iconActive: true, title: source.alias, subtitle: `main ${source.mainBranch}`, meta: [{ label: status, tone: source.dirty ? "warn" : "ok" }], state: { label: `${icons.branch} ${branch}`, tone: "dim" }, chevron: true, active: active, widthHint: widthHint }));
267
+ }
268
+ /** Sección "Ramas …" — una fila `◆ alias ⎇ branch` por entrada del bloque WORKSPACE. */
269
+ function BranchList({ label, entries, emptyHint, }) {
270
+ return (_jsxs(_Fragment, { children: [_jsx(SectionHead, { label: label, count: entries.length, marginTop: 1 }), _jsx(Box, { marginLeft: 2, flexDirection: "column", children: entries.length > 0 ? (entries.map(([alias, branch]) => (_jsxs(Box, { children: [_jsxs(Text, { color: colors.accent, children: [icons.diamond, " "] }), _jsx(Text, { color: colors.bright, bold: true, children: alias }), _jsx(Box, { flexGrow: 1 }), _jsxs(Text, { color: colors.dim, children: [icons.branch, " ", branch] })] }, alias)))) : emptyHint ? (_jsx(Text, { color: colors.faint, children: emptyHint })) : null })] }));
271
+ }
272
+ /** Panel lateral de acciones git-flow para la fuente (o "all sources") seleccionada. */
273
+ function SourceActionsPanel({ isAll, name, source, totalSources, actions, focusedAction, }) {
274
+ const meta = isAll
275
+ ? `git flow · ${totalSources} fuentes`
276
+ : `main ${source?.mainBranch ?? "?"}\n${icons.branch} ${source?.branch ?? source?.mainBranch ?? "?"}`;
277
+ const statePill = isAll
278
+ ? { label: `${totalSources} sources`, tone: "accent" }
279
+ : source?.dirty
280
+ ? { label: `${source.changedFiles} dirty`, tone: "warn" }
281
+ : { label: "in sync", tone: "ok" };
282
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.borderFaint, children: "│" }), _jsx(DetailPanel, { header: { name, meta }, statePill: statePill, actions: actions, focusedAction: focusedAction })] }));
159
283
  }
160
284
  function statGitSub(data) {
161
285
  if (!data.git)
@@ -1 +1 @@
1
- {"version":3,"file":"project-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/project-tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/project-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.2.1",
3
+ "version": "12.4.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": {
@@ -6,18 +6,14 @@ allowed-tools:
6
6
  "Bash",
7
7
  "Read",
8
8
  "Write",
9
- "Skill",
10
9
  ]
11
10
  ---
12
11
 
13
12
  # export-diagrams — exportar diagramas
14
13
 
15
- Lee el código de las fuentes del workspace + el plan-doc (secciones `AS-IS`/`TO-BE`) y genera diagramas C4 / mermaid en `docs/diagrams/`. Single-pass, read-only sobre sesiones. Invoca el skill `export-diagrams`.
14
+ Lee el código de las fuentes del workspace + el plan-doc (secciones `AS-IS`/`TO-BE`) y genera diagramas C4 / mermaid en `docs/diagrams/`. Single-pass, read-only sobre sesiones.
16
15
 
17
- ```
18
- Skill: export-diagrams
19
- args: $ARGUMENTS
20
- ```
16
+ Para ejecutar: **leé** `../exports/export-diagrams/SKILL.md` y **seguí** sus instrucciones con `$ARGUMENTS` como input. No intentes `Skill: export-diagrams` (no está registrada por nombre); el SKILL.md hermano es el cuerpo de este export.
21
17
 
22
18
  ## Qué produce
23
19
 
@@ -6,18 +6,14 @@ allowed-tools:
6
6
  "Bash",
7
7
  "Read",
8
8
  "Write",
9
- "Skill",
10
9
  ]
11
10
  ---
12
11
 
13
12
  # export-manuals — exportar manuales
14
13
 
15
- Consolida sesiones + artefactos `DECISION` + plan-doc (`Final behavior`) + código fuente y genera documentación de usuario/operación en `docs/manuals/`. Single-pass, read-only sobre sesiones. Invoca el skill `export-manuals`.
14
+ Consolida sesiones + artefactos `DECISION` + plan-doc (`Final behavior`) + código fuente y genera documentación de usuario/operación en `docs/manuals/`. Single-pass, read-only sobre sesiones.
16
15
 
17
- ```
18
- Skill: export-manuals
19
- args: $ARGUMENTS
20
- ```
16
+ Para ejecutar: **leé** `../exports/export-manuals/SKILL.md` y **seguí** sus instrucciones con `$ARGUMENTS` como input. No intentes `Skill: export-manuals` (no está registrada por nombre); el SKILL.md hermano es el cuerpo de este export.
21
17
 
22
18
  ## Qué produce
23
19
 
@@ -6,18 +6,14 @@ allowed-tools:
6
6
  "Bash",
7
7
  "Read",
8
8
  "Write",
9
- "Skill",
10
9
  ]
11
10
  ---
12
11
 
13
12
  # export-reports — exportar informes
14
13
 
15
- Consolida el corpus completo de sesiones (`CONCLUSIONS`, `DECISION`, spec) + plan-doc (estado) + `docs/` y genera un informe ejecutivo o funcional en `docs/reports/`. Single-pass, read-only sobre sesiones. Invoca el skill `export-reports`.
14
+ Consolida el corpus completo de sesiones (`CONCLUSIONS`, `DECISION`, spec) + plan-doc (estado) + `docs/` y genera un informe ejecutivo o funcional en `docs/reports/`. Single-pass, read-only sobre sesiones.
16
15
 
17
- ```
18
- Skill: export-reports
19
- args: $ARGUMENTS
20
- ```
16
+ Para ejecutar: **leé** `../exports/export-reports/SKILL.md` y **seguí** sus instrucciones con `$ARGUMENTS` como input. No intentes `Skill: export-reports` (no está registrada por nombre); el SKILL.md hermano es el cuerpo de este export.
21
17
 
22
18
  ## Qué produce
23
19
 
@@ -6,18 +6,14 @@ allowed-tools:
6
6
  "Bash",
7
7
  "Read",
8
8
  "Write",
9
- "Skill",
10
9
  ]
11
10
  ---
12
11
 
13
12
  # export-scripts — exportar scripts de BD
14
13
 
15
- Promueve los artefactos `SCRIPTS.sql` (tipo B — migraciones) de N sesiones de `.workflow/sessions/` a `docs/scripts/`. Single-pass, read-only sobre sesiones. Invoca el skill `export-scripts`.
14
+ Promueve los artefactos `SCRIPTS.sql` (tipo B — migraciones) de N sesiones de `.workflow/sessions/` a `docs/scripts/`. Single-pass, read-only sobre sesiones.
16
15
 
17
- ```
18
- Skill: export-scripts
19
- args: $ARGUMENTS
20
- ```
16
+ Para ejecutar: **leé** `../exports/export-scripts/SKILL.md` y **seguí** sus instrucciones con `$ARGUMENTS` como input. No intentes `Skill: export-scripts` (no está registrada por nombre); el SKILL.md hermano es el cuerpo de este export.
21
17
 
22
18
  ## Qué produce
23
19
 
@@ -7,7 +7,6 @@ allowed-tools:
7
7
  "Read",
8
8
  "Write",
9
9
  "Edit",
10
- "Skill",
11
10
  ]
12
11
  ---
13
12
 
@@ -15,12 +14,14 @@ allowed-tools:
15
14
 
16
15
  Arranca o retoma `plan-exec-loop` (Layer 2), que ejecuta el trabajo real fase por fase. El plan (`docs/plans/PPP-plan.md`) es un documento vivo que el loop mantiene actualizado (estado de fases y tareas).
17
16
 
18
- Invocar el skill:
17
+ ## Ejecutar el loop
19
18
 
20
- ```
21
- Skill: plan-exec-loop
22
- args: $ARGUMENTS
23
- ```
19
+ `plan-exec-loop` **no** es una skill invocable por nombre — es el manual de operación de este comando (un doc hermano del bundle). **Cargalo y ejecutalo de punta a punta**:
20
+
21
+ 1. **Leé** `../loops/plan-exec-loop/SKILL.md` (ruta relativa a este archivo).
22
+ 2. **Seguí** sus instrucciones tomando `$ARGUMENTS` como input: detecta CHECKPOINT/resume, ejecuta fase por fase (git-safe, BD solo-scripts), mantiene el plan vivo y reporta.
23
+
24
+ > No intentes `Skill: plan-exec-loop` — no está registrada como skill. El comando **es** la entrada; el loop es su cuerpo.
24
25
 
25
26
  ## Qué hace el loop (resumen)
26
27
 
@@ -7,7 +7,6 @@ allowed-tools:
7
7
  "Read",
8
8
  "Write",
9
9
  "Edit",
10
- "Skill",
11
10
  ]
12
11
  ---
13
12
 
@@ -23,12 +22,14 @@ El skill evalúa `$ARGUMENTS`:
23
22
  2. **`docs/specs/NNN-spec.md`** (borrador sin refinar) → propone correr `/w:spec-refine` primero; planificar sobre un spec sólido produce mejores planes.
24
23
  3. **prompt** (sin spec referenciado) → propone usar el flujo SPEC; **por default lanza `/w:spec-new`** con ese prompt para crear el borrador, y desde ahí continúa el flujo natural.
25
24
 
26
- Invocar el skill:
25
+ ## Ejecutar el loop
27
26
 
28
- ```
29
- Skill: plan-new-loop
30
- args: $ARGUMENTS
31
- ```
27
+ `plan-new-loop` **no** es una skill invocable por nombre — es el manual de operación de este comando (un doc hermano del bundle). **Cargalo y ejecutalo de punta a punta**:
28
+
29
+ 1. **Leé** `../loops/plan-new-loop/SKILL.md` (ruta relativa a este archivo).
30
+ 2. **Seguí** sus instrucciones tomando `$ARGUMENTS` como input (resuelto según las 3 reglas de arriba): detecta estado/resume, corre el motor gap-driven, crea y maneja sessions, converge y reporta.
31
+
32
+ > No intentes `Skill: plan-new-loop` — no está registrada como skill. El comando **es** la entrada; el loop es su cuerpo.
32
33
 
33
34
  ## Notas de numeración
34
35
 
@@ -7,7 +7,6 @@ allowed-tools:
7
7
  "Read",
8
8
  "Write",
9
9
  "Edit",
10
- "Skill",
11
10
  ]
12
11
  ---
13
12
 
@@ -15,12 +14,14 @@ allowed-tools:
15
14
 
16
15
  Para tareas acotadas y directas que no justifican pasar por SPEC ni PLANIFICATION. Siempre crea una sesión ligera (trazabilidad + resume). Delega a `quick-loop` (Layer 2).
17
16
 
18
- Invocar el skill:
17
+ ## Ejecutar el loop
19
18
 
20
- ```
21
- Skill: quick-loop
22
- args: $ARGUMENTS
23
- ```
19
+ `quick-loop` **no** es una skill invocable por nombre — es el manual de operación de este comando (un doc hermano del bundle). **Cargalo y ejecutalo de punta a punta**:
20
+
21
+ 1. **Leé** `../loops/quick-loop/SKILL.md` (ruta relativa a este archivo).
22
+ 2. **Seguí** sus instrucciones tomando `$ARGUMENTS` como la tarea: crea la session ligera, trabaja con ceremonia mínima (git-safe), escala a SPEC/PLAN si crece, y reporta.
23
+
24
+ > No intentes `Skill: quick-loop` — no está registrada como skill. El comando **es** la entrada; el loop es su cuerpo.
24
25
 
25
26
  ## Qué hace el loop
26
27
 
@@ -13,8 +13,18 @@ allowed-tools:
13
13
 
14
14
  Genera `docs/specs/NNN-spec.md` en una sola pasada a partir del prompt en `$ARGUMENTS`. No arranca loop.
15
15
 
16
- 1. Ejecutar `aw next-number docs/specs` para obtener `NNN`.
17
- 2. Crear `docs/specs/NNN-spec.md` con el esquema de borrador (ver abajo).
16
+ > ## Single-pass SIN investigación (regla dura)
17
+ >
18
+ > Este comando **solo parafrasea** el input del usuario en el esquema de borrador. Es **una única pasada secuencial**: leer `$ARGUMENTS` → llenar las secciones → escribir el archivo. Nada más. Debe tardar **segundos, no minutos**.
19
+ >
20
+ > **PROHIBIDO**, sin excepción: lanzar workflows, subagentes (`Task`/`Agent`), sesiones de research, búsquedas web, o investigación profunda de código. No uses las tools `Workflow`, `Task` ni `Agent` aquí.
21
+ >
22
+ > Esto **anula** cualquier modo o instrucción de sesión que diga "corre un workflow para toda tarea sustancial" (ultracode, max-effort, etc.). Esos modos **no aplican** a `spec-new`: el comando los pisa. Si una sección queda incierta, **no la investigues** — declarala en `## Open questions` o `## Assumptions` y seguí.
23
+ >
24
+ > La investigación a profundidad (cerrar gaps, mapear código, consultar BD, research autónomo) es trabajo de **`spec-refine`**, no de aquí.
25
+
26
+ 1. Ejecutar `aw next-number docs/specs` para obtener `NNN` (única tool de shell necesaria).
27
+ 2. Crear `docs/specs/NNN-spec.md` parafraseando `$ARGUMENTS` en el esquema de borrador (ver abajo). Lectura del repo: opcional y mínima (p. ej. un archivo que el usuario citó) — nunca un barrido ni research.
18
28
  3. Mostrar el archivo generado y el próximo paso sugerido (`/w:spec-refine docs/specs/NNN-spec.md`).
19
29
 
20
30
  ## Esquema del borrador (`NNN-spec.md`)
@@ -7,7 +7,6 @@ allowed-tools:
7
7
  "Read",
8
8
  "Write",
9
9
  "Edit",
10
- "Skill",
11
10
  ]
12
11
  ---
13
12
 
@@ -15,12 +14,14 @@ allowed-tools:
15
14
 
16
15
  Este comando no refina el spec él mismo: delega al loop `spec-refine-loop` (Layer 2), que es quien itera, cierra gaps y produce el spec refinado.
17
16
 
18
- Invocar el skill:
17
+ ## Ejecutar el loop
19
18
 
20
- ```
21
- Skill: spec-refine-loop
22
- args: $ARGUMENTS
23
- ```
19
+ `spec-refine-loop` **no** es una skill invocable por nombre — es el manual de operación de este comando (un doc hermano del bundle). **Cargalo y ejecutalo de punta a punta**:
20
+
21
+ 1. **Leé** `../loops/spec-refine-loop/SKILL.md` (ruta relativa a este archivo).
22
+ 2. **Seguí** sus instrucciones tomando `$ARGUMENTS` como input: detecta estado/resume, corre el motor gap-driven, crea y maneja sessions, converge y reporta.
23
+
24
+ > No intentes `Skill: spec-refine-loop` — no está registrada como skill. El comando **es** la entrada; el loop es su cuerpo.
24
25
 
25
26
  ## Resolución de estado (resumable)
26
27
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## What a loop is
10
10
 
11
- Un loop es una **skill** que le enseña a la IA *cómo iterar* hasta producir un entregable. Se invoca por su `name:` con el tool `Skill`. La IA lo ejecuta de punta a punta: detecta huecos, los resuelve (preguntando al humano o investigando), integra y repite hasta converger.
11
+ Un loop es una **skill** que le enseña a la IA *cómo iterar* hasta producir un entregable. **No es invocable por nombre** con el tool `Skill` (no se registra como skill suelta): es el cuerpo de su comando `/w:…`, que lo **carga leyendo `<loop>/SKILL.md`** y lo ejecuta inline. La IA lo corre de punta a punta: detecta huecos, los resuelve (preguntando al humano o investigando), integra y repite hasta converger.
12
12
 
13
13
  Propiedades comunes a **los 4 loops**:
14
14
 
@@ -59,14 +59,16 @@ Del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md), sin cambios:
59
59
 
60
60
  ## Internal sessions (managed)
61
61
 
62
- - **control session** `<plan>-plan-exec`: dueña del run (`SESSION` + `CHECKPOINT` + `BACKLOG` al cerrar; Type = `control`).
63
- - **exec session por fase** `<plan>-exec-phase-<N>`: `SESSION` · `DECISION` · `SCRIPTS.sql` · `CHECKPOINT` (Type = `exec`).
64
- - **research session** `<plan>-research-*`: on-demand (run-and-close), igual que el chasis.
62
+ - **control session** descriptor `plan-exec` → `NNN-plan-exec`: dueña del run (`SESSION` + `CHECKPOINT` + `BACKLOG` al cerrar; Type = `control`).
63
+ - **exec session por fase** descriptor `plan-exec-phase-<N>` → `NNN-plan-exec-phase-<N>`: `SESSION` · `DECISION` · `SCRIPTS.sql` · `CHECKPOINT` (Type = `exec`).
64
+ - **research session** descriptor `plan-exec-research-*` → `NNN-plan-exec-research-*`: on-demand (run-and-close), igual que el chasis.
65
+
66
+ > **Numeración**: el caller pasa solo el descriptor; el CLI antepone el `NNN` global y secuencial sobre `.workflow/sessions/` (ver chasis). No reinicia por tipo ni por fase.
65
67
 
66
68
  ## Delta 1 — **One exec session per phase** (+ resume intra-fase)
67
69
 
68
70
  - Recorre las `Phases` del plan en orden (respeta deps).
69
- - Por cada Phase no completada → `create_or_resume(<plan>-exec-phase-<N>)` (**reusa** la session si la fase quedó a medias; no crea una segunda).
71
+ - Por cada Phase no completada → `create_or_resume("plan-exec-phase-<N>")` (**reusa** la session si la fase quedó a medias; no crea una segunda; el CLI antepone el `NNN` global).
70
72
  - Ejecuta las `Tasks` de la fase; **salta** las ya marcadas `- [x]` en el plan (el plan-doc es la fuente de verdad por tarea). Marca `- [x]` + estado **en el plan** (living doc; no en un `TASKS` aparte).
71
73
  - Registra `DECISION` solo lo **no obvio**.
72
74
 
@@ -102,11 +104,11 @@ Distinción por **ejecución**, no por archivo (ver el esquema `SCRIPTS.sql`):
102
104
 
103
105
  ```
104
106
  plan-exec-loop(PPP-plan.md):
105
- control = create_or_resume(<plan>-plan-exec) # CHECKPOINT, resume
107
+ control = create_or_resume("plan-exec") # CLI antepone NNN global; CHECKPOINT, resume
106
108
  plan = read(PPP-plan.md)
107
109
  para cada Phase en plan (en orden, respeta deps):
108
110
  si Phase done: skip
109
- es = create_or_resume(<plan>-exec-phase-<N>) # reusa si quedó a medias
111
+ es = create_or_resume("plan-exec-phase-<N>") # reusa si quedó a medias
110
112
  para cada Task de la Phase:
111
113
  si Task - [x] en el plan: skip # resume intra-fase
112
114
  verificar rama esperada por fuente (branch-check)
@@ -39,11 +39,11 @@ PLANIFICATION
39
39
  Del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md), sin cambios:
40
40
 
41
41
  - Motor **gap-driven convergente** (`detect_gaps` → resolver → integrar → repetir; gaps agotados con límite `MAX` no se re-disparan).
42
- - **Sessions internas**: `control` (`<plan>-plan-new`: `SESSION` + `CHECKPOINT`, + `BACKLOG` al cerrar; Type = `refine`/`control`) + `research` on-demand (run-and-close, puede cerrar inconclusa).
42
+ - **Sessions internas**: `control` (descriptor `plan-new` → `NNN-plan-new`: `SESSION` + `CHECKPOINT`, + `BACKLOG` al cerrar; Type = `refine`/`control`) + `research` on-demand (run-and-close, puede cerrar inconclusa).
43
43
  - **AskUserQuestion**: ≤3 tabs de contenido + 1 tab `flow` (`Compactar`/`Cerrar`) siempre.
44
44
  - **Ask-vs-research rule** + **research autónomo** + **regla BD** (pregunta MCP si >1 sin default → queries a `SCRIPTS.sql` → ejecuta read-only, `sql-mutation-guard`) + manejo de research **inconclusa** (degrada a humano / difiere a `Open questions` + límite `MAX`).
45
45
  - **Compact / resume** (4 casos) y **`Cerrar` persiste** `CHECKPOINT` + `BACKLOG`.
46
- - **Naming** `<run>` para sessions hijas: `<plan>-plan-new` `<plan>-research-*`.
46
+ - **Naming + numeración global** del chasis: `<run>` = descriptor `plan-new`; hijas `--name plan-new-research-<gap>`. El CLI antepone el `NNN` global y secuencial (sin reiniciar por tipo); el caller pasa solo el descriptor.
47
47
 
48
48
  ## Delta 1 — Deliverable: PLAN RICO (`PPP-plan.md`)
49
49
 
@@ -39,7 +39,7 @@ QUICK
39
39
 
40
40
  ## Internal session
41
41
 
42
- - **SIEMPRE** crea una session ligera `<slug>-quick` (Type = `quick`, ≈ `exec`): `SESSION` · `DECISION` · `SCRIPTS.sql` · `CHECKPOINT` (+ `BACKLOG` al cerrar). Una sola session (no exec-por-fase).
42
+ - **SIEMPRE** crea una session ligera con descriptor `<slug>-quick` → `NNN-<slug>-quick` (Type = `quick`, ≈ `exec`): `SESSION` · `DECISION` · `SCRIPTS.sql` · `CHECKPOINT` (+ `BACKLOG` al cerrar). Una sola session (no exec-por-fase). El caller pasa solo el descriptor; el CLI antepone el `NNN` global y secuencial (ver chasis).
43
43
 
44
44
  ## Inherits
45
45
 
@@ -64,7 +64,7 @@ QUICK
64
64
 
65
65
  ```
66
66
  quick-loop(prompt):
67
- s = create_or_resume(<slug>-quick) # siempre session ligera
67
+ s = create_or_resume("<slug>-quick") # CLI antepone NNN global; siempre session ligera
68
68
  trabajar la tarea (loop mínimo):
69
69
  verificar rama esperada por fuente (branch-check); si no → pausar + resolver
70
70
  editar código (cambio mínimo)
@@ -82,7 +82,7 @@ finalize: CHECKPOINT + BACKLOG (si queda algo) + cerrar session + reportar
82
82
 
83
83
  ```mermaid
84
84
  flowchart TD
85
- S["create_or_resume session <slug>-quick"] --> G["branch-check por fuente"]
85
+ S["create_or_resume session NNN-&lt;slug&gt;-quick"] --> G["branch-check por fuente"]
86
86
  G -->|ok| DO["editar código · BD→SCRIPTS.sql · DECISION<br/>(duda→research/AskUserQuestion)"]
87
87
  G -->|rama ≠| PA["pausar + resolver"]
88
88
  PA --> G
@@ -44,16 +44,22 @@ El loop crea y maneja sus sessions en `.workflow/sessions/`. El usuario nunca la
44
44
 
45
45
  | Session | When | Artifacts | Role |
46
46
  |---|---|---|---|
47
- | **refine session** `<spec>-spec-refine/` | al arrancar el loop (o se reanuda) | `SESSION.md` · `CHECKPOINT.md` (· `BACKLOG.md` al cerrar) | Dueña del run. Guarda el avance al `Compactar` y al `Cerrar`; habilita el resume. Type = `refine`. |
48
- | **research session** `<run>-research-*/` | on-demand, por cada gap factual | `SESSION.md` · `ANALYSIS-FILE.md` → `CONCLUSIONS.md` (+ `SCRIPTS.sql` si consulta BD) | Investiga, concluye, **cierra y reporta**. Puede cerrar **inconclusa**. Type = `research`; on-demand, **no reanudable** (run-and-close, sin `CHECKPOINT`/`BACKLOG` propios). |
47
+ | **refine session** `NNN-spec-refine/` | al arrancar el loop (o se reanuda) | `SESSION.md` · `CHECKPOINT.md` (· `BACKLOG.md` al cerrar) | Dueña del run. Guarda el avance al `Compactar` y al `Cerrar`; habilita el resume. Type = `refine`. |
48
+ | **research session** `MMM-spec-refine-research-*/` | on-demand, por cada gap factual | `SESSION.md` · `ANALYSIS-FILE.md` → `CONCLUSIONS.md` (+ `SCRIPTS.sql` si consulta BD) | Investiga, concluye, **cierra y reporta**. Puede cerrar **inconclusa**. Type = `research`; on-demand, **no reanudable** (run-and-close, sin `CHECKPOINT`/`BACKLOG` propios). |
49
49
 
50
50
  > El spec **nunca** entra en una session; vive en `docs/specs/`.
51
+
52
+ ### Numeración de sessions (regla dura, heredada por todos los loops)
53
+
54
+ El **CLI es dueño del número**: `aw session-create` antepone un `NNN` **global y secuencial** escaneando **todas** las sessions de `.workflow/sessions/` (cualquier tipo). El caller pasa **solo el descriptor** vía `--name` — **nunca** un número. Así la numeración no se reinicia por tipo ni colisiona (ej.: `001-spec-refine`, `002-spec-refine-research-x`, `003-plan-new`, …).
55
+
56
+ > `<run>` = el **descriptor** (sin número) de la control session que prefija sus sessions hijas: `spec-refine`, `plan-new`, `plan-exec`, `quick`. La research session pasa `--name <run>-research-<gap>` y el CLI le pone su propio `NNN`. **No** embebas el número del padre en el descriptor del hijo (lo agrega el CLI; embeberlo lo duplicaría).
51
57
  >
52
- > `<run>` = id de la session dueña del loop padre, que prefija sus sessions hijas: `<spec>-spec-refine`, `<plan>-plan-new`, `<plan>-plan-exec`, `<slug>-quick`. Así el patrón de naming es exacto en cualquier flujo que herede este chasis.
58
+ > **Resume**: localiza la session existente **escaneando** `.workflow/sessions/` por descriptor + `## Origin` (qué spec/plan), **no** reconstruyendo el número (que ahora es global, no derivable del artefacto). `aw session-resume --code <NNN | folder>` resuelve ambas formas.
53
59
 
54
- **CLI** (asunción de naming; los subcomandos se implementan en paralelo — no bloquear):
55
- - `aw session-create --type refine --name <spec>-spec-refine` / `aw session-resume --code <…>` (detecta `CHECKPOINT`).
56
- - `aw session-create --type research --name <run>-research-<gap>` para cada gap factual.
60
+ **CLI**:
61
+ - `aw session-create --type refine --name spec-refine` → crea `NNN-spec-refine` / `aw session-resume --code <…>` (detecta `CHECKPOINT`).
62
+ - `aw session-create --type research --name <run>-research-<gap>` por cada gap factual → crea `MMM-<run>-research-<gap>`.
57
63
  - `aw checkpoint-write` / `aw checkpoint-read` para el resume.
58
64
  - `aw session-close` al cerrar (con razón); `aw session-artifacts` para inspeccionar.
59
65
 
@@ -140,7 +146,7 @@ Para cada gap, una sola pregunta decide el resolutor:
140
146
  ```
141
147
  spec-refine-loop(spec):
142
148
  input = exists(NNN-spec-refined.md) ? NNN-spec-refined.md : NNN-spec.md # (#2 resume)
143
- refine_session = create_or_resume(<spec>-spec-refine) # detecta CHECKPOINT
149
+ refine_session = create_or_resume("spec-refine") # CLI antepone NNN global; resume localiza por descriptor/origin
144
150
  work = read(input) (+ aplicar avance del checkpoint si reanuda)
145
151
  attempts = {} # anti-relanzamiento por gap
146
152
  repeat: