@tacuchi/agent-workflow-cli 9.1.0 → 9.3.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.
- package/dist/application/mcp-test-connection-service.d.ts +19 -0
- package/dist/application/mcp-test-connection-service.d.ts.map +1 -0
- package/dist/application/mcp-test-connection-service.js +71 -0
- package/dist/application/mcp-test-connection-service.js.map +1 -0
- package/dist/cli/tui/app.d.ts.map +1 -1
- package/dist/cli/tui/app.js +130 -165
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/components/activity-feed.d.ts.map +1 -1
- package/dist/cli/tui/components/activity-feed.js +2 -2
- package/dist/cli/tui/components/activity-feed.js.map +1 -1
- package/dist/cli/tui/components/command-palette.d.ts.map +1 -1
- package/dist/cli/tui/components/command-palette.js +2 -2
- package/dist/cli/tui/components/command-palette.js.map +1 -1
- package/dist/cli/tui/components/home-footer.d.ts +3 -3
- package/dist/cli/tui/components/home-footer.d.ts.map +1 -1
- package/dist/cli/tui/components/home-footer.js +6 -13
- package/dist/cli/tui/components/home-footer.js.map +1 -1
- package/dist/cli/tui/components/home-header.d.ts.map +1 -1
- package/dist/cli/tui/components/home-header.js +25 -2
- package/dist/cli/tui/components/home-header.js.map +1 -1
- package/dist/cli/tui/components/list-row.d.ts.map +1 -1
- package/dist/cli/tui/components/list-row.js +3 -3
- package/dist/cli/tui/components/list-row.js.map +1 -1
- package/dist/cli/tui/components/notification-banner.d.ts +17 -0
- package/dist/cli/tui/components/notification-banner.d.ts.map +1 -0
- package/dist/cli/tui/components/notification-banner.js +38 -0
- package/dist/cli/tui/components/notification-banner.js.map +1 -0
- package/dist/cli/tui/components/notification-stack.d.ts +17 -0
- package/dist/cli/tui/components/notification-stack.d.ts.map +1 -0
- package/dist/cli/tui/components/notification-stack.js +21 -0
- package/dist/cli/tui/components/notification-stack.js.map +1 -0
- package/dist/cli/tui/components/screen-frame.js +1 -1
- package/dist/cli/tui/components/screen-frame.js.map +1 -1
- package/dist/cli/tui/components/tab-bar.d.ts +17 -0
- package/dist/cli/tui/components/tab-bar.d.ts.map +1 -0
- package/dist/cli/tui/components/tab-bar.js +20 -0
- package/dist/cli/tui/components/tab-bar.js.map +1 -0
- package/dist/cli/tui/components/tabs-config.d.ts +2 -1
- package/dist/cli/tui/components/tabs-config.d.ts.map +1 -1
- package/dist/cli/tui/components/tabs-config.js +8 -1
- package/dist/cli/tui/components/tabs-config.js.map +1 -1
- package/dist/cli/tui/notification-center.d.ts +61 -0
- package/dist/cli/tui/notification-center.d.ts.map +1 -0
- package/dist/cli/tui/notification-center.js +102 -0
- package/dist/cli/tui/notification-center.js.map +1 -0
- package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/mcp-tab.js +43 -29
- package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
- package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/project-tab.js +67 -10
- package/dist/cli/tui/tabs/project-tab.js.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.js +4 -6
- package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
- package/dist/cli/tui/tabs/status-tab.d.ts +1 -4
- package/dist/cli/tui/tabs/status-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/status-tab.js +6 -94
- package/dist/cli/tui/tabs/status-tab.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +1 -5
- package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
- package/package.json +1 -1
- package/skills/agent-workflow/commands/rules.md +3 -2
- package/skills/agent-workflow/doctrine/migrate/SKILL.md +6 -6
- package/skills/agent-workflow/doctrine/rules/SKILL.md +29 -3
- package/skills/agent-workflow/doctrine/session/SKILL.md +40 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M13-closure-cleanup.md +61 -0
- package/skills/agent-workflow/doctrine/session/references/prompts-catalog.md +5 -2
|
@@ -1,29 +1,24 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text, useInput } from "ink";
|
|
3
|
-
import {
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { selfDoctor } from "../../../application/self/doctor-self.js";
|
|
5
5
|
import { selfMcpConfig } from "../../../application/self/mcp-config.js";
|
|
6
6
|
import { ActivityFeed } from "../components/activity-feed.js";
|
|
7
7
|
import { PageHead } from "../components/page-head.js";
|
|
8
|
-
import { QuickActions } from "../components/quick-actions.js";
|
|
9
8
|
import { SectionHead } from "../components/section-head.js";
|
|
10
9
|
import { StatTile } from "../components/stat-tile.js";
|
|
11
10
|
import { HOSTS } from "../hosts.js";
|
|
12
11
|
import { colors, icons } from "../theme.js";
|
|
13
12
|
const TILE_IDS = ["cli", "hosts", "hooks", "mcp"];
|
|
14
|
-
export function StatusTab({ ctx, version, isActive, onActivateTab,
|
|
13
|
+
export function StatusTab({ ctx, version, isActive, onActivateTab, recentEvents }) {
|
|
15
14
|
const [data, setData] = useState({
|
|
16
15
|
doctor: null,
|
|
17
16
|
mcp: [],
|
|
18
17
|
hooksArmed: false,
|
|
19
18
|
loading: true,
|
|
20
19
|
});
|
|
21
|
-
const [update, setUpdate] = useState({ status: "idle" });
|
|
22
20
|
const [tileCursor, setTileCursor] = useState("cli");
|
|
23
21
|
const dataStartedRef = useRef(false);
|
|
24
|
-
const updateStartedRef = useRef(false);
|
|
25
|
-
const lastCheckedAtRef = useRef(null);
|
|
26
|
-
const [lastCheckedAt, setLastCheckedAt] = useState(null);
|
|
27
22
|
useEffect(() => {
|
|
28
23
|
if (dataStartedRef.current)
|
|
29
24
|
return;
|
|
@@ -41,73 +36,11 @@ export function StatusTab({ ctx, version, isActive, onActivateTab, onRequestUpda
|
|
|
41
36
|
});
|
|
42
37
|
})();
|
|
43
38
|
}, [ctx]);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const result = await ctx.process.run("npm", ["view", ctx.runtime.packageName, "version"], {});
|
|
48
|
-
if (result.code !== 0) {
|
|
49
|
-
const msg = `npm view failed: ${result.stderr.trim() || "no detail"}`;
|
|
50
|
-
setUpdate({ status: "error", message: msg });
|
|
51
|
-
onToast?.({ tone: "err", title: "Update check failed", body: msg });
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
const latest = result.stdout.trim();
|
|
55
|
-
if (!latest) {
|
|
56
|
-
setUpdate({ status: "error", message: "npm view returned empty output." });
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
lastCheckedAtRef.current = Date.now();
|
|
60
|
-
setLastCheckedAt(Date.now());
|
|
61
|
-
if (latest === version) {
|
|
62
|
-
setUpdate({ status: "uptodate", latest });
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
setUpdate({ status: "outdated", latest });
|
|
66
|
-
onToast?.({
|
|
67
|
-
tone: "info",
|
|
68
|
-
title: "Update available",
|
|
69
|
-
body: `v${version} → v${latest}`,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
74
|
-
setUpdate({ status: "error", message: err.message });
|
|
75
|
-
}
|
|
76
|
-
}, [ctx, version, onToast]);
|
|
77
|
-
useEffect(() => {
|
|
78
|
-
if (updateStartedRef.current)
|
|
79
|
-
return;
|
|
80
|
-
updateStartedRef.current = true;
|
|
81
|
-
void runUpdateCheck();
|
|
82
|
-
}, [runUpdateCheck]);
|
|
83
|
-
useEffect(() => {
|
|
84
|
-
onAlertChange?.(update.status === "outdated");
|
|
85
|
-
}, [update.status, onAlertChange]);
|
|
86
|
-
useInput((input, key) => {
|
|
39
|
+
// El update-check + banner ahora viven en el AppShell vía NotificationCenter.
|
|
40
|
+
// Esta tab sólo navega tiles y delega `⏎` en hosts/mcp para cambiar de tab.
|
|
41
|
+
useInput((_input, key) => {
|
|
87
42
|
if (!isActive)
|
|
88
43
|
return;
|
|
89
|
-
if (update.status === "checking" || update.status === "applying") {
|
|
90
|
-
// Solo bloquear teclas del update banner; navegación sigue.
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
if (input === "r" || input === "R") {
|
|
94
|
-
void runUpdateCheck();
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
if ((input === "i" || input === "I") && update.status === "outdated") {
|
|
98
|
-
setUpdate({ ...update, status: "applying" });
|
|
99
|
-
onRequestUpdate?.();
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
if (input === "o" || input === "O") {
|
|
103
|
-
onToast?.({
|
|
104
|
-
tone: "info",
|
|
105
|
-
title: "Release notes",
|
|
106
|
-
body: `https://www.npmjs.com/package/${ctx.runtime.packageName}`,
|
|
107
|
-
});
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
44
|
if (key.upArrow || key.leftArrow) {
|
|
112
45
|
setTileCursor((c) => {
|
|
113
46
|
const idx = TILE_IDS.indexOf(c);
|
|
@@ -143,20 +76,11 @@ export function StatusTab({ ctx, version, isActive, onActivateTab, onRequestUpda
|
|
|
143
76
|
const backedHosts = HOSTS.filter((h) => h.backed).length;
|
|
144
77
|
const pendingHosts = supportedHosts - backedHosts;
|
|
145
78
|
const pct = supportedHosts > 0 ? Math.round((installedHosts / supportedHosts) * 100) : 0;
|
|
146
|
-
const checkedAgo = lastCheckedAt ? humanizeAgo(lastCheckedAt) : "—";
|
|
147
|
-
const showUpdateStrip = update.status === "outdated";
|
|
148
79
|
const events = recentEvents ?? [];
|
|
149
80
|
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: "Status", count: {
|
|
150
81
|
label: `${installedHosts}/${supportedHosts} hosts covered`,
|
|
151
82
|
tone: installedHosts > 0 ? "accent" : "warn",
|
|
152
|
-
}
|
|
153
|
-
...(showUpdateStrip ? [{ key: "i", label: `apply v${update.latest ?? ""}` }] : []),
|
|
154
|
-
{ key: "r", label: "recheck" },
|
|
155
|
-
{ key: "^K", label: "palette" },
|
|
156
|
-
] }) })] }));
|
|
157
|
-
}
|
|
158
|
-
function UpdateStrip({ update, packageName, }) {
|
|
159
|
-
return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsxs(Box, { children: [_jsx(Text, { color: colors.warn, children: icons.focusBar }), _jsx(Text, { children: " " }), _jsx(Text, { color: colors.warn, children: "\u21BB " }), _jsxs(Text, { color: colors.bright, bold: true, children: ["v", packageName.split("/").pop()] }), _jsx(Text, { color: colors.dim, children: " \u2192 " }), _jsxs(Text, { color: colors.bright, bold: true, children: ["v", update.latest ?? "?"] }), _jsx(Text, { color: colors.dim, children: " available" }), _jsx(Box, { flexGrow: 1 }), _jsx(Text, { color: colors.accent, bold: true, inverse: true, children: " i · apply " }), _jsx(Text, { children: " " }), _jsx(Text, { color: colors.mute, children: "r recheck \u00B7 o notes \u00B7 x dismiss" })] }) }));
|
|
83
|
+
} }), _jsxs(Box, { flexDirection: "row", marginBottom: 1, children: [_jsx(StatTile, { label: "cli", value: `v${data.doctor?.cli_version ?? version}`, sub: "@tacuchi", accent: true, active: tileCursor === "cli" }), _jsx(StatTile, { label: "hosts", value: `${installedHosts}/${supportedHosts}`, sub: `${pct}% coverage`, tone: installedHosts > 0 ? "accent" : "warn", clickable: true, active: tileCursor === "hosts" }), _jsx(StatTile, { label: "hooks", value: data.hooksArmed ? "armed" : "off", sub: "claude only", tone: data.hooksArmed ? "ok" : "dim", active: tileCursor === "hooks" }), _jsx(StatTile, { label: "mcp", value: `${data.mcp.length} db`, sub: "profile.json", tone: data.mcp.length > 0 ? "accent" : "dim", clickable: true, active: tileCursor === "mcp" })] }), _jsx(Text, { color: colors.borderFaint, children: "─".repeat(60) }), _jsx(SectionHead, { label: "Skill coverage", count: `${installedHosts}/${supportedHosts}`, hint: `${backedHosts} backed · ${pendingHosts} pending`, marginTop: 1 }), _jsxs(Box, { marginLeft: 2, marginTop: 0, flexDirection: "row", children: [_jsx(ProgressLine, { ratio: supportedHosts > 0 ? installedHosts / supportedHosts : 0 }), _jsx(Text, { children: " " }), _jsxs(Text, { color: colors.accent, bold: true, children: [pct, "%"] })] }), _jsx(Box, { marginLeft: 2, marginTop: 0, flexDirection: "row", flexWrap: "wrap", children: hostsInstalled.map(({ host, installed }) => (_jsx(HostChip, { name: host.name, installed: installed, backed: host.backed }, host.id))) }), _jsx(SectionHead, { label: "Recent", count: events.length, marginTop: 1 }), _jsx(Box, { marginLeft: 2, children: _jsx(ActivityFeed, { events: events, cap: 4, emptyHint: " (no recent activity yet)" }) })] }));
|
|
160
84
|
}
|
|
161
85
|
function HostChip({ name, installed, backed, }) {
|
|
162
86
|
let color = colors.dim;
|
|
@@ -183,18 +107,6 @@ async function detectHooksArmed(ctx) {
|
|
|
183
107
|
return false;
|
|
184
108
|
}
|
|
185
109
|
}
|
|
186
|
-
function humanizeAgo(t) {
|
|
187
|
-
const diffSec = Math.max(1, Math.floor((Date.now() - t) / 1000));
|
|
188
|
-
if (diffSec < 60)
|
|
189
|
-
return `${diffSec}s ago`;
|
|
190
|
-
const m = Math.floor(diffSec / 60);
|
|
191
|
-
if (m < 60)
|
|
192
|
-
return `${m}m ago`;
|
|
193
|
-
const h = Math.floor(m / 60);
|
|
194
|
-
if (h < 24)
|
|
195
|
-
return `${h}h ago`;
|
|
196
|
-
return `${Math.floor(h / 24)}d ago`;
|
|
197
|
-
}
|
|
198
110
|
function ProgressLine({ ratio }) {
|
|
199
111
|
const width = 18;
|
|
200
112
|
const filled = Math.round(Math.max(0, Math.min(1, ratio)) * width);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/status-tab.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/status-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;
|
|
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;IAClB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,WAAe,EAAE,EAAE,gBAAgB,2CA6F1E"}
|
|
@@ -4,7 +4,6 @@ import { useState } from "react";
|
|
|
4
4
|
import { FamilyCard } from "../components/family-card.js";
|
|
5
5
|
import { PageHead } from "../components/page-head.js";
|
|
6
6
|
import { PhaseCard } from "../components/phase-card.js";
|
|
7
|
-
import { QuickActions } from "../components/quick-actions.js";
|
|
8
7
|
import { SectionHead } from "../components/section-head.js";
|
|
9
8
|
import { WORKFLOW_CONTENT } from "../data/workflow-content.js";
|
|
10
9
|
import { colors } from "../theme.js";
|
|
@@ -32,9 +31,6 @@ export function WorkflowTab({ isActive, activePhase = 0 }) {
|
|
|
32
31
|
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: "Workflow", count: {
|
|
33
32
|
label: `${w.slashCommands.length} commands · ${w.commandFamilies.length} families · ${w.hooks.length} hooks`,
|
|
34
33
|
tone: "accent",
|
|
35
|
-
}, action: _jsx(Text, { color: colors.mute, children: "universal session-lifecycle harness" }) }), _jsxs(Box, { flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 2, children: [_jsx(SectionHead, { label: "Session lifecycle", rightAction: "day-to-day flow" }), _jsx(Box, { marginTop: 0, flexDirection: "column", children: w.phases.map((p) => (_jsx(PhaseCard, { phase: p, active: activePhase === p.n }, 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: "/agent-workflow:<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)))] })] })] })] })
|
|
36
|
-
{ key: "⏎", label: "expand" },
|
|
37
|
-
{ key: "^K", label: "palette" },
|
|
38
|
-
] }) })] }));
|
|
34
|
+
}, action: _jsx(Text, { color: colors.mute, children: "universal session-lifecycle harness" }) }), _jsxs(Box, { flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 2, children: [_jsx(SectionHead, { label: "Session lifecycle", rightAction: "day-to-day flow" }), _jsx(Box, { marginTop: 0, flexDirection: "column", children: w.phases.map((p) => (_jsx(PhaseCard, { phase: p, active: activePhase === p.n }, 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: "/agent-workflow:<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)))] })] })] })] })] }));
|
|
39
35
|
}
|
|
40
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":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,
|
|
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": "9.
|
|
3
|
+
"version": "9.3.0",
|
|
4
4
|
"description": "Agnostic runtime CLI for session-lifecycle workflows. Auto-detects namespace from any `.<ns>/sessions/` dir in CWD; falls back to 'agent-workflow'. Bundles the universal `agent-workflow` skill (35 skills + 17 commands + 7 hooks template) in the tarball — `self install-skill --target <host>` (obligatory) copies it to the host's skill directory. Multi-empresa parametrization via `profile.json` cascade (flag → AW_PROFILE env → ~/.config/agent-workflow/profile.json → workspace → defaults). Hooks for Claude Code via `self install-hooks --target claude` (JSON merge into ~/.claude/settings.json with backup).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Bundle invokable de reglas transversales agent-workflow-* — carga los
|
|
2
|
+
description: Bundle invokable de reglas transversales agent-workflow-* — carga los 8 anchors canónicos (commits, sandbox plan-mode, MCP read-only, redacción, coding-standards, graduación, branch verification, closure cleanup) en un solo entry point. No requiere sesión activa.
|
|
3
3
|
argument-hint: (sin args)
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -21,7 +21,7 @@ Invoca el skill `rules` (canónico de agent-workflow).
|
|
|
21
21
|
|
|
22
22
|
## Qué carga
|
|
23
23
|
|
|
24
|
-
Los
|
|
24
|
+
Los 8 anchors canónicos del runtime agent-workflow-*:
|
|
25
25
|
|
|
26
26
|
1. `agent-workflow:commits-policy` — formato y prohibiciones de commits.
|
|
27
27
|
2. `agent-workflow:sandbox-readonly` — comportamiento en plan mode.
|
|
@@ -30,6 +30,7 @@ Los 7 anchors canónicos del runtime agent-workflow-*:
|
|
|
30
30
|
5. `agent-workflow:coding-standards` — estándares por stack + FE-BE R1-R6 + seguridad.
|
|
31
31
|
6. `agent-workflow:graduacion-routing` — 6 kinds graduables + routing hub vs project.
|
|
32
32
|
7. `agent-workflow:branch-verification` — gate de rama por fuente + hard gate cross-fuente.
|
|
33
|
+
8. `agent-workflow:closure-cleanup` — gate de calidad pre-commit en closure (5 categorías: comentarios, complejidad, antipatrones, smells, código muerto).
|
|
33
34
|
|
|
34
35
|
## Plan mode
|
|
35
36
|
|
|
@@ -32,7 +32,7 @@ Migrar artefactos del workspace desde rutas y formatos legacy hacia la topologí
|
|
|
32
32
|
5. **Actualización/rebuild de HISTORY.md**.
|
|
33
33
|
6. **Upgrade v3.x → v4.0 (lifecycle universal)**: mapea fases en AW-PROJECT (`requerimiento|plan|implementacion|validacion|cierre` → `planning|execution|validation|closure`) y escribe `CHECKPOINT.md` inicial para sesiones activas.
|
|
34
34
|
7. **Upgrade hub-mode (v3.0+)**: detecta workspaces con ≥2 fuentes sin marcador `Mode:` declarado y promueve a `Mode: hub`. Idempotente. Delega a `agent-workflow upgrade-hub-mode`.
|
|
35
|
-
8. **Upgrade transversal-rules block (post-session052)**: detecta workspaces sin la sección `## Reglas transversales qtc-*` en CLAUDE.md/AGENTS.md y propone agregarla (
|
|
35
|
+
8. **Upgrade transversal-rules block (post-session052, extendido post-session090)**: detecta workspaces sin la sección `## Reglas transversales qtc-*` en CLAUDE.md/AGENTS.md y propone agregarla (8 anchors canónicos + puntero a `Skill(agent-workflow:rules)`). Aplica a hub workspaces principalmente; también a project workspaces qtc-* que usen el lifecycle qtc-*.
|
|
36
36
|
9. **Upgrade per-fuente anchors (post-session053)**: detecta repos qtc-* fuente (declarados en AW-PROJECT.Fuentes) que no tienen `AGENTS.md` o `CLAUDE.md` en su raíz y propone crearlos con preludio repo-específico ≤2 líneas + bloque transversal.
|
|
37
37
|
10. **Upgrade hooks PreToolUse post-v5.18 (agent-workflow como workspace)**: aplica solo si el workspace ES el repo `agent-workflow` (workspace de desarrollo del plugin). Detecta `hooks/hooks.json` y `codex-hooks/hooks.json` sin matchers `mcp__.*__execute_sql` ni `Bash` en `PreToolUse[]` y propone agregarlos.
|
|
38
38
|
|
|
@@ -130,7 +130,7 @@ Migrar artefactos del workspace desde rutas y formatos legacy hacia la topologí
|
|
|
130
130
|
|
|
131
131
|
- `CLAUDE.md` y/o `AGENTS.md` del workspace tiene `<!-- WORKFLOW-PROJECT-START -->` pero NO tiene la sección `## Reglas transversales qtc-*` después del `<!-- WORKFLOW-PROJECT-END -->`.
|
|
132
132
|
- Detector específico (regex): el archivo NO contiene la string `## Reglas transversales qtc-*` después del marker de cierre.
|
|
133
|
-
- Si la sección existe pero con menos de
|
|
133
|
+
- Si la sección existe pero con menos de 8 anchors canónicos (lista esperada: `agent-workflow:commits-policy`, `agent-workflow:sandbox-readonly`, `agent-workflow:mcp-readonly`, `agent-workflow:redaccion-simple`, `agent-workflow:coding-standards`, `agent-workflow:graduacion-routing`, `agent-workflow:branch-verification`, `agent-workflow:closure-cleanup`), se considera incompleta y se ofrece actualización.
|
|
134
134
|
|
|
135
135
|
### Pre-session053 (repos qtc-* fuente sin anchors)
|
|
136
136
|
|
|
@@ -161,10 +161,10 @@ agent-workflow upgrade-hub-mode [--dry-run]
|
|
|
161
161
|
|
|
162
162
|
### Upgrade transversal-rules block (post-session052, manual guidado por AI)
|
|
163
163
|
|
|
164
|
-
1. Detector: leer `CLAUDE.md` y `AGENTS.md` del workspace; verificar ausencia de la sección `## Reglas transversales qtc-*` o presencia incompleta (menos de
|
|
165
|
-
2. Si falta o está incompleto, el AI propone al usuario agregar/completar el bloque con la plantilla canónica (
|
|
164
|
+
1. Detector: leer `CLAUDE.md` y `AGENTS.md` del workspace; verificar ausencia de la sección `## Reglas transversales qtc-*` o presencia incompleta (menos de 8 anchors canónicos).
|
|
165
|
+
2. Si falta o está incompleto, el AI propone al usuario agregar/completar el bloque con la plantilla canónica (8 anchors + puntero a `Skill(agent-workflow:rules)`).
|
|
166
166
|
3. Mutación: edit incremental en ambos archivos (`CLAUDE.md` y `AGENTS.md`) insertando el bloque después del `<!-- WORKFLOW-PROJECT-END -->`.
|
|
167
|
-
4. Idempotencia: si la sección ya existe completa (
|
|
167
|
+
4. Idempotencia: si la sección ya existe completa (8 anchors), skip silent. Si está incompleta, ofrece reemplazo con confirmación.
|
|
168
168
|
5. **Sin CLI delegation hoy** (TODO: futuro `agent-workflow upgrade-transversal-rules`).
|
|
169
169
|
|
|
170
170
|
### Upgrade per-fuente anchors (post-session053, manual guidado por AI)
|
|
@@ -276,6 +276,6 @@ NO ejecutar mutaciones. NO invocar `agent-workflow upgrade-hub-mode` sin `--dry-
|
|
|
276
276
|
- `../session/references/sandbox-readonly-rules.md` — canon plan mode.
|
|
277
277
|
- `../session/references/commits-policy.md` — política de commits del closure (aplicable también fuera de sesión vía bloque transversal).
|
|
278
278
|
- `../session/SKILL.md` §"Graduar artefactos (6 kinds — DEC-003)" — kinds + routing hub-vs-fuente.
|
|
279
|
-
- `../rules/SKILL.md` (skill agregadora `agent-workflow:rules`, post-session052) — bundle invokable de las
|
|
279
|
+
- `../rules/SKILL.md` (skill agregadora `agent-workflow:rules`, post-session052; 8º anchor agregado post-session090) — bundle invokable de las 8 reglas transversales.
|
|
280
280
|
- CLI runtime `@tacuchi/agent-workflow-cli` ≥5.18.0 — subcomandos relevantes: `upgrade-hub-mode`, `project-md-upsert`, `sources`, `hook git-commit-advisor`, `hook sql-mutation-guard`, `hook branch-check`.
|
|
281
281
|
- Histórico: session051 (analyze reglas transversales) → session052 (quick-wins) → session053 (anchors por fuente + Bash hook) → session054 (este migrate update).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rules
|
|
3
|
-
description: "Bundle invokable de reglas transversales agent-workflow — carga los
|
|
4
|
-
version: 0.
|
|
3
|
+
description: "Bundle invokable de reglas transversales agent-workflow — carga los 8 anchors canónicos (commits, sandbox plan-mode, MCP read-only, redacción, coding-standards, graduación, branch verification, closure cleanup) en un solo lugar. Invocar antes de un commit ad-hoc fuera de `/agent-workflow:session`, antes de editar código sin sesión activa, durante onboarding de usuario nuevo a agent-workflow, o cuando se quiera refrescar el contrato agent-workflow en una conversación larga. No requiere sesión activa. v0.3.0: agrega anchor #8 `agent-workflow:closure-cleanup` (gate de calidad pre-commit en closure)."
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
> **Profile parametrization**: lee `custom_anchors[]` de `profile.json` (resuelto vía cascade 5 capas). Ver [`references/profile-parametrization.md`](../../references/profile-parametrization.md) para el contrato completo y comportamiento por defecto cuando el profile está vacío.
|
|
@@ -177,6 +177,31 @@ Reglas operativas:
|
|
|
177
177
|
|
|
178
178
|
---
|
|
179
179
|
|
|
180
|
+
### 8. Closure cleanup — `agent-workflow:closure-cleanup`
|
|
181
|
+
|
|
182
|
+
**Canon**: `agent-workflow/skills/session/SKILL.md` §1.5 "Inspección y limpieza pre-commit (closure cleanup gate)".
|
|
183
|
+
|
|
184
|
+
Resumen:
|
|
185
|
+
- Gate de calidad pre-commit que corre en la fase closure entre paso 1 (graduate) y paso 2 (propose commits — M1).
|
|
186
|
+
- Inspecciona el diff working-tree vs `main_branch` por fuente dirty. 5 categorías: **comentarios redundantes**, **complejidad cognitiva**, **antipatrones**, **code smells**, **código muerto**.
|
|
187
|
+
- Compone `agent-workflow:coding-standards` (fuente de verdad de qué es "bien") y `agent-workflow:redaccion-simple` (formato del reporte breve).
|
|
188
|
+
- Default = propose-then-execute (M13). Auto-correct opt-in vía opción 1 del prompt. Cada edit es local y reversible.
|
|
189
|
+
- Skip silencioso si todas las fuentes tienen `dirty=false`, o si el sumario de hallazgos es 0.
|
|
190
|
+
|
|
191
|
+
Reglas operativas:
|
|
192
|
+
- M13 dispara N questions tab-por-fuente (alias). Header `<alias>`, 3 opciones (aprobar fixes / sólo reportar / saltar) + Other auto = nota custom o fix manual.
|
|
193
|
+
- "Sólo reportar" deja hallazgos en `CHECKPOINT.md` como "Hallazgos pendientes" sin modificar working tree.
|
|
194
|
+
- Refactors estructurales mayores (mover archivos, renombrar packages) NO entran al gate; aplazar a sesión `## Type: refactor` con Strangler Fig.
|
|
195
|
+
- NO ejecuta tests ni reemplaza linter/formatter del stack — el gate complementa (lista canónica de linters en `session/SKILL.md` §1.5).
|
|
196
|
+
- En plan mode: describir hallazgos en plan file por categoría + paths. NO ejecuta `Edit`/`Write`/`Bash` mutante; M13 no se dispara.
|
|
197
|
+
|
|
198
|
+
**Cómo aplicar fuera de sesión**:
|
|
199
|
+
- El gate canónico es per-session-closure. Sin sesión activa no se auto-dispara.
|
|
200
|
+
- El AI puede invocar las reglas manualmente (`agent-workflow:coding-standards` + diff con `agent-workflow sources` ad-hoc) si el usuario lo pide ("revisemos lo que tengo sin commitear"). Sigue las 5 categorías como guía.
|
|
201
|
+
- Workaround formal: crear sesión retroactiva con `## Type: chore` y cerrar para disparar el gate sobre los cambios working-tree. No documentado como flujo canónico.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
180
205
|
## Relación con AGENTS.md/CLAUDE.md por fuente
|
|
181
206
|
|
|
182
207
|
Esta skill es la capa **active (on-demand)** del modelo de aplicación de reglas. Coexiste con la capa **passive (system-prompt)**:
|
|
@@ -205,6 +230,7 @@ Tabla rápida para situaciones comunes sin sesión activa:
|
|
|
205
230
|
| Escribís prosa agent-workflow (PR description, README) | redaccion-simple | 6 reglas (frases cortas, listas, sin jerga). |
|
|
206
231
|
| Producís artefacto curable (decisión, manual) | graduacion-routing | Crear sesión retroactiva o documentar como fuera de scope graduable. |
|
|
207
232
|
| Host en plan mode | sandbox-readonly | Describir en plan file, no ejecutar mutaciones. |
|
|
233
|
+
| Revisás cambios pendientes ad-hoc fuera de closure | closure-cleanup | Aplicar las 5 categorías como guía (`coding-standards` + diff). Sin M13 auto-disparado: el AI sugiere, el usuario decide. |
|
|
208
234
|
|
|
209
235
|
## Sandbox read-only
|
|
210
236
|
|
|
@@ -220,5 +246,5 @@ Compatible con plan mode sin restricciones adicionales.
|
|
|
220
246
|
- **shared-contract** (`../../docs/shared-contract.md`) — contrato cross-plugin de la familia agent-workflow.
|
|
221
247
|
- **Recomendación de uso conjunto con AGENTS.md/CLAUDE.md**:
|
|
222
248
|
- El AGENTS.md/CLAUDE.md por fuente (o el bloque transversal en hub) lista 1 línea por anchor con su path canon. Sirve como "tabla de contenidos" siempre cargada.
|
|
223
|
-
- Esta skill `agent-workflow:rules` carga los
|
|
249
|
+
- Esta skill `agent-workflow:rules` carga los 8 anchors expandidos. Sirve cuando se necesita refrescar el contrato o cuando el AGENTS.md no está disponible.
|
|
224
250
|
- **Origen**: session051-analyze-reglas-transversales-fuera-sesion → CONCLUSIONS C7/R7/QW6. Graduado a `docs/conclusiones/006-reglas-transversales-fuera-sesion.md`.
|
|
@@ -290,6 +290,46 @@ Material de referencia del usuario (mockups, especificaciones, exports, glosario
|
|
|
290
290
|
|
|
291
291
|
**Histórico DEC-004**: v1 (sesiones previas): `.workflow/sessions/<folder>/referencias/` por sesión. v2 (session080-dev-referencias-globales): mover a `docs/referencias/` transversal y eliminar lectura legacy.
|
|
292
292
|
|
|
293
|
+
### 1.5. Inspección y limpieza pre-commit (closure cleanup gate)
|
|
294
|
+
|
|
295
|
+
Gate canónico de calidad. Corre entre paso 1 (graduate) y paso 2 (propose commits). Inspecciona el diff working-tree por fuente dirty, categoriza hallazgos y propone correcciones antes de M1. Aplicación del anchor universal `agent-workflow:closure-cleanup` (ver `doctrine/rules/SKILL.md`).
|
|
296
|
+
|
|
297
|
+
**Skip silencioso**:
|
|
298
|
+
- Si todas las fuentes tienen `dirty=false` (nada que limpiar).
|
|
299
|
+
- Si el sumario de hallazgos es 0 tras inspección (working tree ya limpio).
|
|
300
|
+
|
|
301
|
+
**Pasos**:
|
|
302
|
+
|
|
303
|
+
1. Ejecutar `agent-workflow sources --session <CODE>` para refrescar `dirty` por fuente.
|
|
304
|
+
2. Para cada fuente con `dirty=true`:
|
|
305
|
+
- Leer diff: `git -C <path> diff <main_branch>...HEAD` (limitar a archivos cambiados; usar `--stat` primero para tamaño).
|
|
306
|
+
- Componer `agent-workflow:coding-standards` (anchor #5 del bundle `/rules`) para reglas por stack del path.
|
|
307
|
+
- Categorizar hallazgos:
|
|
308
|
+
- **Comentarios redundantes** — qué obvio, código muerto comentado, TODO sin owner/fecha, headers decorativos.
|
|
309
|
+
- **Complejidad cognitiva** — métodos largos (>50 líneas), nesting profundo (>3), early-return ausente, condicionales anidados.
|
|
310
|
+
- **Antipatrones** — `catchError(() => of([]))`, magic numbers, side effects no declarados, god class/method, lógica replicada FE+BE.
|
|
311
|
+
- **Code smells** — DRY violado, naming oscuro, duplicación con `shared/`/`common/`, validación post-uso, mutación de parámetros.
|
|
312
|
+
- **Código muerto** — imports sin usar, branches inalcanzables, variables huérfanas, funciones no llamadas.
|
|
313
|
+
- Producir reporte breve: máximo 1 página por fuente, agrupado por categoría, cada hallazgo con `file:line` + 1 línea de fix sugerido.
|
|
314
|
+
3. Si la suma de hallazgos es 0 en todas las fuentes → skip silencioso al paso 2 (propose commits).
|
|
315
|
+
4. Disparar `AskUserQuestion` con spec de M13 (`references/prompts-catalog.md#M13`). N questions tab-por-fuente, header `<alias>`, opciones: "Aprobar fixes sugeridos (Recomendado)" / "Sólo reportar (no tocar)" / "Saltar esta fuente". Other = nota custom o fix manual del usuario. NO narrar la pregunta en texto plano.
|
|
316
|
+
5. Por cada fuente con opción 1 aprobada: aplicar edits acotados (`Edit`/`MultiEdit` por archivo, mostrar diff antes/después). Sin auto-rewrite masivo; cada edit local y reversible.
|
|
317
|
+
6. Por cada fuente con opción 2: dejar el reporte en `CHECKPOINT.md` como "Hallazgos pendientes" sin modificar working tree.
|
|
318
|
+
7. Re-ejecutar `agent-workflow sources --session <CODE>` para refrescar `dirty` tras edits aprobados.
|
|
319
|
+
|
|
320
|
+
**Sandbox plan-mode**: describir hallazgos por categoría en el plan file (paths + razones agrupadas). NO ejecuta `Edit`/`Write`/`Bash` mutante. M13 no se dispara.
|
|
321
|
+
|
|
322
|
+
**Composición** (SRP — el gate no duplica reglas):
|
|
323
|
+
- `agent-workflow:coding-standards` — fuente de verdad de qué es "bien".
|
|
324
|
+
- `agent-workflow:redaccion-simple` — formato del reporte (frases cortas, listas, sin jerga).
|
|
325
|
+
- `agent-workflow:branch-verification` — implícita; las fuentes ya vienen verificadas desde execution.
|
|
326
|
+
|
|
327
|
+
**No alcances**:
|
|
328
|
+
- NO reemplaza linter/formatter del stack (ESLint, Spotless, Prettier, Checkstyle, etc.) — el gate complementa.
|
|
329
|
+
- NO refactors estructurales mayores. Esos van a sesiones `## Type: refactor` con Strangler Fig.
|
|
330
|
+
- NO ejecuta tests — inspección estática del diff.
|
|
331
|
+
- NO modifica artefactos ya graduados en paso 1 (vivien en `docs/<categoria>/`, fuera del scope del gate).
|
|
332
|
+
|
|
293
333
|
### 2. Proponer commits por fuente afectada (propose-then-execute)
|
|
294
334
|
|
|
295
335
|
Aplicación canónica del patrón **universal** definido en `references/commits-policy.md` (Regla 3) — closure es uno de 3 disparadores del prompt M1 (los otros 2: solicitud explícita con/sin sesión activa). El flujo siguiente describe la variante auto-disparada por closure; el patrón completo (bypass por mensaje literal, fuera de sesión, etc.) vive en el canon.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# M13 — closure-cleanup (gate de calidad pre-commit en closure)
|
|
2
|
+
|
|
3
|
+
Spec literal del prompt M13. Index: [`../prompts-catalog.md#m13--closure-cleanup-gate-de-calidad-pre-commit-en-closure`](../prompts-catalog.md#m13--closure-cleanup-gate-de-calidad-pre-commit-en-closure).
|
|
4
|
+
|
|
5
|
+
- **Cuándo**: en `skills/session/SKILL.md` §1.5 "Inspección y limpieza pre-commit", tras graduate (paso 1) y antes de propose commits (M1 / paso 2). Auto-disparado por closure cuando se cumple **ambas** condiciones:
|
|
6
|
+
- ≥1 fuente declarada en la sesión tiene `dirty=true` (`agent-workflow sources --session <CODE>`).
|
|
7
|
+
- La inspección del diff produce ≥1 hallazgo en alguna de las 5 categorías canónicas.
|
|
8
|
+
- **Skip silencioso**:
|
|
9
|
+
- Todas las fuentes `dirty=false` (nada que limpiar).
|
|
10
|
+
- Inspección no encuentra hallazgos en ninguna fuente (working tree ya limpio).
|
|
11
|
+
- Plan mode activo (el gate describe hallazgos en el plan file sin disparar prompt).
|
|
12
|
+
- **Forma**: 1 invocación `AskUserQuestion` con **N questions tab-por-fuente** (max 4 simultáneas; tandas si N>4).
|
|
13
|
+
- Por cada fuente dirty con hallazgos:
|
|
14
|
+
- `header`: `<alias>` (ej. `core`, `dev`, `design`, `analyze`).
|
|
15
|
+
- `question`: "Cleanup en `<alias>` — `<N>` hallazgos (`<categorías>`). ¿Aplico?"
|
|
16
|
+
- `multiSelect`: false.
|
|
17
|
+
- `options`:
|
|
18
|
+
1. "Aprobar fixes sugeridos (Recomendado)" — "El AI aplica los edits acotados al working tree (`Edit`/`MultiEdit` por archivo, diff visible). Cada fix local y reversible."
|
|
19
|
+
2. "Sólo reportar (no tocar)" — "Deja los hallazgos en `CHECKPOINT.md` como 'Hallazgos pendientes' sin modificar working tree."
|
|
20
|
+
3. "Saltar esta fuente" — "Ignora los hallazgos para esta closure. No se registra."
|
|
21
|
+
- **Other auto** = nota custom del usuario (ej. "fixeo manual después", "ignorá X específico", "aplicá sólo categoría comentarios"). El AI interpreta y actúa en consecuencia.
|
|
22
|
+
- **Preview (opcional pero recomendado)**: cuando hallazgos > 5 por fuente, incluir preview ASCII con resumen:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Cleanup report — <alias>
|
|
26
|
+
────────────────────────
|
|
27
|
+
Comentarios redundantes: 3 hallazgos
|
|
28
|
+
Complejidad cognitiva: 1 hallazgo
|
|
29
|
+
Antipatrones: 2 hallazgos
|
|
30
|
+
Code smells: 0
|
|
31
|
+
Código muerto: 1 hallazgo
|
|
32
|
+
|
|
33
|
+
Top fixes sugeridos:
|
|
34
|
+
1. src/foo.ts:42 — quitar `// TODO obvio` huérfano
|
|
35
|
+
2. src/bar.ts:88 — extraer helper de método 80-líneas
|
|
36
|
+
3. src/baz.ts:15 — reemplazar magic number 86400 con const
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- **Aplicación de los fixes (opción 1)**:
|
|
40
|
+
- Por archivo: leer (`Read`), aplicar `Edit` o `MultiEdit` con cambios acotados. Mostrar diff antes/después al usuario.
|
|
41
|
+
- Refactor estructural mayor (mover archivos, renombrar packages, cambios cross-paquete): NO aplica aquí — aplazar a sesión `## Type: refactor` con Strangler Fig.
|
|
42
|
+
- Tras aplicar todos los fixes de una fuente: re-ejecutar `agent-workflow sources --session <CODE> --scope <alias>` para validar consistencia.
|
|
43
|
+
- **Sin auto-confirmación**: aunque opción 1 esté marcada `(Recomendado)`, requiere selección explícita del usuario por fuente. NO se asume auto-correct.
|
|
44
|
+
- **Sandbox plan-mode**:
|
|
45
|
+
- Describir hallazgos por categoría en el plan file (paths + razones).
|
|
46
|
+
- NO ejecuta `Edit`/`Write`/`Bash` mutante.
|
|
47
|
+
- M13 no se dispara; el reporte queda en plan file para que el usuario decida fuera de plan mode.
|
|
48
|
+
- **Categorías canónicas** (referencia, detalles en `session/SKILL.md` §1.5):
|
|
49
|
+
1. **Comentarios redundantes** — qué obvio, código muerto comentado, TODO sin owner/fecha, headers decorativos.
|
|
50
|
+
2. **Complejidad cognitiva** — métodos largos (>50 líneas), nesting profundo (>3), early-return ausente, condicionales anidados.
|
|
51
|
+
3. **Antipatrones** — `catchError(() => of([]))`, magic numbers, side effects no declarados, god class/method, lógica replicada FE+BE.
|
|
52
|
+
4. **Code smells** — DRY violado, naming oscuro, duplicación con `shared/`/`common/`, validación post-uso, mutación de parámetros.
|
|
53
|
+
5. **Código muerto** — imports sin usar, branches inalcanzables, variables huérfanas, funciones no llamadas.
|
|
54
|
+
- **Composición**:
|
|
55
|
+
- `agent-workflow:coding-standards` — fuente de verdad de qué es "bien" por stack (anchor #5 del bundle /rules).
|
|
56
|
+
- `agent-workflow:redaccion-simple` — formato del reporte breve (anchor #4 del bundle /rules).
|
|
57
|
+
- **Anti-narración**: NUNCA narrar la pregunta en texto plano ("¿quieres que aplique los fixes en agent-workflow?" en chat es un anti-patrón). Siempre vía `AskUserQuestion`.
|
|
58
|
+
- **Refs**:
|
|
59
|
+
- `skills/session/SKILL.md` §1.5 — pipeline canónica del gate.
|
|
60
|
+
- `skills/rules/SKILL.md` §8 (`agent-workflow:closure-cleanup`) — anchor en bundle /rules.
|
|
61
|
+
- `skills/coding-standards/SKILL.md` — reglas por stack que el gate consulta.
|
|
@@ -50,7 +50,7 @@ DEC-006 — mixta según contexto. Cada header debe ser inmediatamente legible e
|
|
|
50
50
|
|
|
51
51
|
## Catálogo
|
|
52
52
|
|
|
53
|
-
### Q-must (
|
|
53
|
+
### Q-must (12 puntos — M1..M11 + M13; M12 eliminado por DEC-002)
|
|
54
54
|
|
|
55
55
|
#### M1 — commit-prompt (universal — CASO ANCLA)
|
|
56
56
|
Spec: [`prompts/M1-closure-commit-prompt.md`](prompts/M1-closure-commit-prompt.md) (archivo no renombrado; preserva anchor `#m1`). Cuándo: **cualquier** solicitud o mención de commit como acción a ejecutar — closure auto-disparado, solicitud explícita en planning/execution con sesión activa, solicitud explícita sin sesión activa, hub o project. Forma: 1 invocación con N questions tab-por-fuente (max 4); en project mode N=1. Canon del alcance: `commits-policy.md` Regla 3 + Regla 5 (bypass por mensaje literal).
|
|
@@ -86,6 +86,9 @@ Spec: [`prompts/M11-context.md`](prompts/M11-context.md). Cuándo: AI estima car
|
|
|
86
86
|
|
|
87
87
|
> **M12 — graduacion-destino**: ELIMINADO (DEC-002). El destino de graduación se decide automáticamente por `workspace_mode` sin prompt por sesión. Hub mode → hub root; project mode → cwd. Ver `references/graduacion-routing.md`.
|
|
88
88
|
|
|
89
|
+
#### M13 — closure-cleanup (gate de calidad pre-commit en closure)
|
|
90
|
+
Spec: [`prompts/M13-closure-cleanup.md`](prompts/M13-closure-cleanup.md). Cuándo: en `skills/session/SKILL.md` §1.5 "Inspección y limpieza pre-commit", tras graduate (paso 1) y antes de propose commits (M1 / paso 2). Sólo dispara si ≥1 fuente tiene `dirty=true` Y la inspección produce ≥1 hallazgo. Forma: N questions tab-por-fuente (max 4), header `<alias>`, 3 opciones (aprobar fixes / sólo reportar / saltar) + Other auto. Aplicación del anchor `agent-workflow:closure-cleanup` (ver `doctrine/rules/SKILL.md` §8).
|
|
91
|
+
|
|
89
92
|
### Q-should (7 puntos — frecuencia media, ROI claro)
|
|
90
93
|
|
|
91
94
|
#### S1 — type-design (standalone o brief ambiguo)
|
|
@@ -184,7 +187,7 @@ Las 4 formas son **sinónimos sin diferencia funcional**. Mezclar formas en un m
|
|
|
184
187
|
|
|
185
188
|
Para extender este catálogo sin romper la convención:
|
|
186
189
|
|
|
187
|
-
1. **Numeración secuencial estricta** — siguiente Q-must = M`<N+1>` (último activo:
|
|
190
|
+
1. **Numeración secuencial estricta** — siguiente Q-must = M`<N+1>` (último activo: M13; M12 eliminado y no reusable, M13 agregado tras M11). Igual para Q-should (último: S8) y Q-could (último: C2). No saltar números, no reusar.
|
|
188
191
|
2. **Categoría según frecuencia**: M (must, alto tránsito), S (should, frecuencia media), C (could, parking opcional). Si dudás, empezá en C — promovés a S/M cuando se valida ROI.
|
|
189
192
|
3. **Header descriptivo** ≤12 chars (`next-step`, `context`, `scope`), salvo alias-puro inequívoco (M1 con `core`, `dev`, etc.).
|
|
190
193
|
4. **Recomendación dinámica**: si `(Recomendado)` depende del contexto (ej. M10 según `tasks_count`, S5 según `tasks_open`), documentarlo en sub-sección `**Recomendación dinámica**` debajo de `options`. No hardcodear la marca en una opción si el AI debe elegir en runtime.
|