@tacuchi/agent-workflow-cli 20.23.0 → 20.25.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/README.md +34 -11
- package/dist/application/context/budget-service.js +128 -0
- package/dist/application/context/budget-service.js.map +1 -0
- package/dist/application/context/bundle-root.js +41 -0
- package/dist/application/context/bundle-root.js.map +1 -0
- package/dist/application/context/manifest.js +150 -0
- package/dist/application/context/manifest.js.map +1 -0
- package/dist/application/context/measure.js +227 -0
- package/dist/application/context/measure.js.map +1 -0
- package/dist/application/context/plan-service.js +177 -0
- package/dist/application/context/plan-service.js.map +1 -0
- package/dist/application/dev-only-services.js +17 -14
- package/dist/application/dev-only-services.js.map +1 -1
- package/dist/application/mcp-host-reader.js +3 -1
- package/dist/application/mcp-host-reader.js.map +1 -1
- package/dist/application/mcp-host-writer.js +86 -41
- package/dist/application/mcp-host-writer.js.map +1 -1
- package/dist/application/plugin-doctor/hooks.js +7 -1
- package/dist/application/plugin-doctor/hooks.js.map +1 -1
- package/dist/application/self/bootstrap.js +30 -16
- package/dist/application/self/bootstrap.js.map +1 -1
- package/dist/application/self/clean-legacy.js +5 -0
- package/dist/application/self/clean-legacy.js.map +1 -1
- package/dist/application/self/detect-hosts.js +31 -45
- package/dist/application/self/detect-hosts.js.map +1 -1
- package/dist/application/self/doctor-self.js +7 -2
- package/dist/application/self/doctor-self.js.map +1 -1
- package/dist/application/self/hooks-toml.js +232 -0
- package/dist/application/self/hooks-toml.js.map +1 -0
- package/dist/application/self/host-states.js +290 -0
- package/dist/application/self/host-states.js.map +1 -0
- package/dist/application/self/install-hooks.js +98 -4
- package/dist/application/self/install-hooks.js.map +1 -1
- package/dist/application/self/install-skill.js +28 -16
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/install-targets.js +23 -0
- package/dist/application/self/install-targets.js.map +1 -1
- package/dist/application/self/mcp-config.js +13 -19
- package/dist/application/self/mcp-config.js.map +1 -1
- package/dist/application/self/skills-manager.js +9 -0
- package/dist/application/self/skills-manager.js.map +1 -1
- package/dist/application/self/uninstall.js +162 -26
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/cli/commands/context-budget.js +79 -0
- package/dist/cli/commands/context-budget.js.map +1 -0
- package/dist/cli/commands/context-plan.js +75 -0
- package/dist/cli/commands/context-plan.js.map +1 -0
- package/dist/cli/commands/dev-only.js +4 -1
- package/dist/cli/commands/dev-only.js.map +1 -1
- package/dist/cli/commands/index.js +4 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/mcp.js +16 -8
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/help-groups.js +4 -0
- package/dist/cli/help-groups.js.map +1 -1
- package/dist/cli/parser.js +4 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/tui/components/host-admin-section.js +69 -60
- package/dist/cli/tui/components/host-admin-section.js.map +1 -1
- package/dist/cli/tui/data/workflow-content.js +6 -0
- package/dist/cli/tui/data/workflow-content.js.map +1 -1
- package/dist/cli/tui/hosts.js +39 -17
- package/dist/cli/tui/hosts.js.map +1 -1
- package/dist/cli/tui/tabs/config-tab.js +3 -3
- package/dist/cli/tui/tabs/config-tab.js.map +1 -1
- package/dist/cli/tui/tabs/mcp-tab-helpers.js +7 -1
- package/dist/cli/tui/tabs/mcp-tab-helpers.js.map +1 -1
- package/dist/cli/tui/tabs/mcp-tab.js +32 -10
- package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.js +13 -4
- package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
- package/dist/cli/tui/tabs/status-tab.js +11 -17
- package/dist/cli/tui/tabs/status-tab.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +7 -3
- package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
- package/dist/cli/tui/tui-prefs.js +7 -1
- package/dist/cli/tui/tui-prefs.js.map +1 -1
- package/dist/domain/harnesses.js +129 -0
- package/dist/domain/harnesses.js.map +1 -1
- package/dist/domain/host-verification.js +20 -0
- package/dist/domain/host-verification.js.map +1 -0
- package/package.json +3 -2
- package/skills/w/SKILL.md +2 -2
- package/skills/w/commands/export-diagrams.md +10 -27
- package/skills/w/commands/export-manuals.md +13 -29
- package/skills/w/commands/export-reports.md +11 -27
- package/skills/w/commands/export-scripts.md +12 -29
- package/skills/w/commands/fix-git.md +21 -32
- package/skills/w/commands/generate-launch.md +13 -32
- package/skills/w/commands/persist.md +8 -29
- package/skills/w/commands/plan-exec.md +14 -30
- package/skills/w/commands/plan-new.md +11 -38
- package/skills/w/commands/plan-refine.md +13 -41
- package/skills/w/commands/quick.md +13 -20
- package/skills/w/commands/resume.md +17 -33
- package/skills/w/commands/spec-new.md +28 -69
- package/skills/w/commands/spec-refine.md +12 -37
- package/skills/w/commands/status.md +12 -19
- package/skills/w/commands/workspace-init.md +13 -20
- package/skills/w/context/MANIFEST.json +486 -0
- package/skills/w/harness/HARNESS.md +24 -17
- package/skills/w/loops/CHASSIS.md +53 -104
- package/skills/w/loops/CODE-POLICIES.md +4 -9
- package/skills/w/loops/plan-exec-loop/LOOP.md +5 -12
- package/skills/w/loops/plan-new-loop/LOOP.md +8 -32
- package/skills/w/loops/plan-refine-loop/LOOP.md +8 -36
- package/skills/w/loops/quick-loop/LOOP.md +4 -10
- package/skills/w/loops/spec-refine-loop/LOOP.md +7 -49
- package/skills/w/modules/ADOPTED-CONTEXT.md +10 -0
- package/skills/w/modules/COMPACTION.md +13 -0
- package/skills/w/modules/DB-RESEARCH-RULE.md +11 -0
- package/skills/w/modules/DB-SCRIPTS-ONLY.md +12 -0
- package/skills/w/modules/EXEC-DB-POLICY.md +7 -0
- package/skills/w/modules/EXEC-PROBE-TASKS.md +11 -0
- package/skills/w/modules/IDEATION-GATE.md +16 -0
- package/skills/w/modules/INCREMENTAL-STRATEGY.md +7 -0
- package/skills/w/modules/LAUNCH-DETECTION.md +26 -0
- package/skills/w/modules/PERSIST-ROUTING.md +16 -0
- package/skills/w/modules/PLAN-DESIGN-SPECS.md +12 -0
- package/skills/w/modules/PLAN-INPUT.md +26 -0
- package/skills/w/modules/PLAN-MODE.md +26 -0
- package/skills/w/modules/PLAN-PROBE-TASKS.md +10 -0
- package/skills/w/modules/PLAN-REFINE-DESIGN-SPECS.md +7 -0
- package/skills/w/modules/PLAN-REFINE-KEYS.md +9 -0
- package/skills/w/modules/PLAN-REFINE-SPLIT.md +12 -0
- package/skills/w/modules/PLAN-SPLIT-GATE.md +14 -0
- package/skills/w/modules/PROBE.md +12 -0
- package/skills/w/modules/PROMPT-CONTINUITY.md +13 -0
- package/skills/w/modules/RECONNAISSANCE.md +48 -0
- package/skills/w/modules/REPLANNING.md +12 -0
- package/skills/w/modules/SESSION-NUMBERING.md +19 -0
- package/skills/w/modules/SIMULATION-LIFECYCLE.md +11 -0
- package/skills/w/modules/SPEC-CHANGE-SHAPE.md +37 -0
- package/skills/w/modules/SPEC-REFINE-KEYS.md +14 -0
- package/skills/w/modules/SPLIT-GATE.md +42 -0
- package/skills/w/modules/WORKSPACE-SCAFFOLD.md +28 -0
- package/skills/w/roles/ui-spec/ROLE.md +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-prefs.js","sourceRoot":"","sources":["../../../src/cli/tui/tui-prefs.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,0DAA0D;AAE1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tui-prefs.js","sourceRoot":"","sources":["../../../src/cli/tui/tui-prefs.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/harnesses.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import { HOST_VERIFICATIONS } from "./host-verification.js";
|
|
1
2
|
export const HARNESSES = [
|
|
2
3
|
{
|
|
3
4
|
id: "claude-code",
|
|
5
|
+
label: "Claude Code",
|
|
6
|
+
glyph: "C",
|
|
7
|
+
support: { tier: "official" },
|
|
8
|
+
runtime: { bins: ["claude"], versionArgs: ["--version"] },
|
|
9
|
+
configDir: { kind: "dir", path: "~/.claude" },
|
|
10
|
+
hooks: { mechanism: "~/.claude/settings.json → hooks{}", managed: true },
|
|
4
11
|
envMarkers: ["CLAUDECODE", "CLAUDE_PLUGIN_ROOT", "CLAUDE_AGENT_ID"],
|
|
5
12
|
mcpHostId: "claude",
|
|
6
13
|
globalMcpPaths: {
|
|
@@ -16,6 +23,15 @@ export const HARNESSES = [
|
|
|
16
23
|
},
|
|
17
24
|
{
|
|
18
25
|
id: "codex",
|
|
26
|
+
label: "Codex",
|
|
27
|
+
glyph: "X",
|
|
28
|
+
support: { tier: "official" },
|
|
29
|
+
runtime: { bins: ["codex"], versionArgs: ["--version"] },
|
|
30
|
+
configDir: { kind: "dir", path: "~/.codex" },
|
|
31
|
+
// Codex HAS hooks, in a different format (TOML) with no settled user-level
|
|
32
|
+
// syntax — declared, not managed: the surfaces say "available, not armed"
|
|
33
|
+
// instead of pretending the host has none.
|
|
34
|
+
hooks: { mechanism: "~/.codex/config.toml (plugin hooks/hooks.json)", managed: false },
|
|
19
35
|
envMarkers: ["CODEX_HOME", "CODEX_CLI", "CODEX_RUNTIME"],
|
|
20
36
|
mcpHostId: "codex",
|
|
21
37
|
globalMcpPaths: {
|
|
@@ -40,6 +56,17 @@ export const HARNESSES = [
|
|
|
40
56
|
// Keep oz before warp in the array so first-match detection picks oz first
|
|
41
57
|
// when both OZ_RUN_ID and TERM_PROGRAM=WarpTerminal are set.
|
|
42
58
|
id: "oz",
|
|
59
|
+
label: "Oz",
|
|
60
|
+
glyph: "Z",
|
|
61
|
+
support: { tier: "best-effort", unstableSurface: true },
|
|
62
|
+
// Oz ships inside Warp.app (…/Contents/Resources/bin/oz) and Warp puts that
|
|
63
|
+
// dir on PATH — so the binary IS probe-able even though ~/.oz never exists.
|
|
64
|
+
runtime: { bins: ["oz"], versionArgs: ["--version"] },
|
|
65
|
+
configDir: {
|
|
66
|
+
kind: "none",
|
|
67
|
+
reason: "Oz runs inside Warp's environment and keeps no config dir of its own",
|
|
68
|
+
},
|
|
69
|
+
hooks: null, // DEC-W4: no hook system.
|
|
43
70
|
envMarkers: ["OZ_RUN_ID"],
|
|
44
71
|
mcpHostId: null, // Oz does not write a config file; emits JSON for --mcp flag
|
|
45
72
|
pluginManifest: null,
|
|
@@ -49,6 +76,14 @@ export const HARNESSES = [
|
|
|
49
76
|
},
|
|
50
77
|
{
|
|
51
78
|
id: "warp",
|
|
79
|
+
label: "Warp Terminal",
|
|
80
|
+
glyph: "W",
|
|
81
|
+
support: { tier: "official" },
|
|
82
|
+
// No `warp` CLI exists: it is a GUI terminal. Runtime availability is
|
|
83
|
+
// therefore not probe-able — the detection reports that, it does not guess.
|
|
84
|
+
runtime: { bins: [], versionArgs: [] },
|
|
85
|
+
configDir: { kind: "mcp-parent" },
|
|
86
|
+
hooks: null, // DEC-W4: no hook system.
|
|
52
87
|
envMarkers: ["WARP_IS_LOCAL_SHELL_SESSION"],
|
|
53
88
|
termProgramMatch: "WarpTerminal",
|
|
54
89
|
mcpHostId: "warp",
|
|
@@ -81,6 +116,14 @@ export const HARNESSES = [
|
|
|
81
116
|
// ANTIGRAVITY_* markers are the env vars agy exports to subprocesses.
|
|
82
117
|
// MCP in settings.json (mcpServers, Claude-compatible shape).
|
|
83
118
|
id: "gemini",
|
|
119
|
+
label: "Gemini CLI / Antigravity",
|
|
120
|
+
glyph: "G",
|
|
121
|
+
support: { tier: "official" },
|
|
122
|
+
// `agy` is the live binary; `gemini` is the deprecated CLI that shares
|
|
123
|
+
// ~/.gemini. Probed in that order so the successor wins.
|
|
124
|
+
runtime: { bins: ["agy", "gemini"], versionArgs: ["--version"] },
|
|
125
|
+
configDir: { kind: "dir", path: "~/.gemini" },
|
|
126
|
+
hooks: { mechanism: "extension-bundled (BeforeTool)", managed: false },
|
|
84
127
|
envMarkers: [
|
|
85
128
|
"GEMINI_CLI",
|
|
86
129
|
"GEMINI_SANDBOX",
|
|
@@ -106,6 +149,12 @@ export const HARNESSES = [
|
|
|
106
149
|
// (type "local", command as array, `environment`). Reads .claude/skills and
|
|
107
150
|
// .agents/skills directly. Enforcement via JS plugins (tool.execute.before) — Phase 2.
|
|
108
151
|
id: "opencode",
|
|
152
|
+
label: "OpenCode",
|
|
153
|
+
glyph: "O",
|
|
154
|
+
support: { tier: "best-effort" },
|
|
155
|
+
runtime: { bins: ["opencode"], versionArgs: ["--version"] },
|
|
156
|
+
configDir: { kind: "mcp-parent" },
|
|
157
|
+
hooks: { mechanism: "JS/TS plugins (tool.execute.before)", managed: false },
|
|
109
158
|
envMarkers: ["OPENCODE", "OPENCODE_BIN", "OPENCODE_CONFIG"],
|
|
110
159
|
mcpHostId: "opencode",
|
|
111
160
|
globalMcpPaths: {
|
|
@@ -126,6 +175,12 @@ export const HARNESSES = [
|
|
|
126
175
|
// Global config verified 2026-07 (README charmbracelet/crush): Unix XDG,
|
|
127
176
|
// Windows %LOCALAPPDATA%\crush\crush.json (override CRUSH_GLOBAL_CONFIG).
|
|
128
177
|
id: "crush",
|
|
178
|
+
label: "Crush",
|
|
179
|
+
glyph: "R",
|
|
180
|
+
support: { tier: "best-effort", unstableSurface: true },
|
|
181
|
+
runtime: { bins: ["crush"], versionArgs: ["--version"] },
|
|
182
|
+
configDir: { kind: "mcp-parent" },
|
|
183
|
+
hooks: { mechanism: "preliminary; enforcement via allowed_tools allowlist", managed: false },
|
|
129
184
|
envMarkers: ["CRUSH", "CRUSH_CONFIG"],
|
|
130
185
|
mcpHostId: "crush",
|
|
131
186
|
globalMcpPaths: {
|
|
@@ -148,7 +203,81 @@ export const HARNESSES = [
|
|
|
148
203
|
],
|
|
149
204
|
installTarget: "crush",
|
|
150
205
|
},
|
|
206
|
+
{
|
|
207
|
+
// Kimi Code (MoonshotAI) — successor of the Python `kimi-cli`, shipped as a
|
|
208
|
+
// single Node SEA binary. Everything below was verified 2026-07-29 against
|
|
209
|
+
// the shipped v0.29.2 binary (its JS is readable) plus live probes:
|
|
210
|
+
// · skills, 4 tiers: user `<KIMI_CODE_HOME>/skills` + `~/.agents/skills`,
|
|
211
|
+
// project `.kimi-code/skills` + `.agents/skills`. Probe: a skill dropped
|
|
212
|
+
// in ~/.agents/skills was listed AND invoked as `/skill:<name>`.
|
|
213
|
+
// · hooks in `[[hooks]]` of the USER-GLOBAL config.toml only — there is no
|
|
214
|
+
// project-level config.toml (probe: a project hook never fired). Schema
|
|
215
|
+
// is event/matcher/command/timeout, strict — NOT Claude's shape.
|
|
216
|
+
// · MCP `mcp.json` with the Claude-compatible `mcpServers` wrapper: global
|
|
217
|
+
// `~/.kimi-code/mcp.json`, project `<cwd>/.kimi-code/mcp.json`.
|
|
218
|
+
// · NO env markers reach subprocesses (probe: `env | grep ^KIMI` is empty
|
|
219
|
+
// inside its own shell tool), hence the empty envMarkers and the binary
|
|
220
|
+
// probe below — the installer lives in ~/.kimi-code/bin, a dir only
|
|
221
|
+
// interactive shells put on PATH.
|
|
222
|
+
id: "kimi",
|
|
223
|
+
label: "Kimi Code",
|
|
224
|
+
glyph: "K",
|
|
225
|
+
support: { tier: "official", unstableSurface: true },
|
|
226
|
+
runtime: {
|
|
227
|
+
bins: ["kimi"],
|
|
228
|
+
fallbackBinPaths: ["~/.kimi-code/bin/kimi"],
|
|
229
|
+
versionArgs: ["--version"],
|
|
230
|
+
},
|
|
231
|
+
configDir: { kind: "dir", path: "~/.kimi-code" },
|
|
232
|
+
hooks: { mechanism: "~/.kimi-code/config.toml → [[hooks]]", managed: true },
|
|
233
|
+
envMarkers: [],
|
|
234
|
+
mcpHostId: "kimi",
|
|
235
|
+
globalMcpPaths: {
|
|
236
|
+
darwin: "~/.kimi-code/mcp.json",
|
|
237
|
+
linux: "~/.kimi-code/mcp.json",
|
|
238
|
+
win32: "~/.kimi-code/mcp.json",
|
|
239
|
+
},
|
|
240
|
+
projectMcpPath: ".kimi-code/mcp.json",
|
|
241
|
+
pluginManifest: null, // Kimi has plugins, but no manifest convention we ship.
|
|
242
|
+
pluginHooksDir: null, // Its hooks live in config.toml, not in a plugin dir.
|
|
243
|
+
skillsDirs: [".kimi-code/skills", ".agents/skills"],
|
|
244
|
+
installTarget: "kimi",
|
|
245
|
+
},
|
|
246
|
+
];
|
|
247
|
+
/** Hosts that auto-discover skills from the open-standard `~/.agents/skills`. */
|
|
248
|
+
function hostsReading(dir) {
|
|
249
|
+
return HARNESSES.filter((h) => h.skillsDirs.includes(dir)).map((h) => h.id);
|
|
250
|
+
}
|
|
251
|
+
export const SHARED_SKILL_DESTINATIONS = [
|
|
252
|
+
{
|
|
253
|
+
id: "agents",
|
|
254
|
+
label: "Agents (shared skills dir)",
|
|
255
|
+
glyph: "A",
|
|
256
|
+
dir: "~/.agents/skills",
|
|
257
|
+
readBy: hostsReading(".agents/skills"),
|
|
258
|
+
},
|
|
151
259
|
];
|
|
260
|
+
/** One install target per host, in catalog order. THE host set. */
|
|
261
|
+
export const HOST_INSTALL_TARGETS = HARNESSES.map((h) => h.installTarget);
|
|
262
|
+
/**
|
|
263
|
+
* Hosts that write an MCP config FILE. Oz is out on purpose: it takes servers
|
|
264
|
+
* through a `--mcp` launch flag, so there is nothing to write for it.
|
|
265
|
+
*/
|
|
266
|
+
export const MCP_FILE_HOSTS = HARNESSES.filter((h) => h.mcpHostId !== null).map((h) => h.mcpHostId);
|
|
267
|
+
/** Install targets that are shared destinations, not hosts. */
|
|
268
|
+
export const SHARED_INSTALL_TARGETS = SHARED_SKILL_DESTINATIONS.map((d) => d.id);
|
|
269
|
+
/** The HarnessSpec owning an install target, or null for a shared destination. */
|
|
270
|
+
export function harnessByInstallTarget(target) {
|
|
271
|
+
return HARNESSES.find((h) => h.installTarget === target) ?? null;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* What a verification RUN proved about this host, or null when no run ever
|
|
275
|
+
* covered it. Read it instead of asserting support from the tier alone: the
|
|
276
|
+
* tier is what we promise, this is what was actually checked.
|
|
277
|
+
*/
|
|
278
|
+
export function verificationFor(id) {
|
|
279
|
+
return HOST_VERIFICATIONS[id] ?? null;
|
|
280
|
+
}
|
|
152
281
|
/**
|
|
153
282
|
* Resolves the global MCP config path template for a harness spec. Does NOT
|
|
154
283
|
* expand `~` nor %LOCALAPPDATA% — expansion is the caller's job (see
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harnesses.js","sourceRoot":"","sources":["../../src/domain/harnesses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"harnesses.js","sourceRoot":"","sources":["../../src/domain/harnesses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// VERIFICATION LEDGER — written by `npm run smoke:hosts`, never by hand.
|
|
2
|
+
//
|
|
3
|
+
// It is deliberately a separate module from the catalog: `harnesses.ts` is
|
|
4
|
+
// hand-authored (ids, dirs, tiers — what we DECIDE), this file records what a
|
|
5
|
+
// run actually PROVED. Keeping the two apart is what lets every projection say
|
|
6
|
+
// "verified against X on date Y" without a surface ever claiming a verification
|
|
7
|
+
// that no run backs (spec 010, criterion 10).
|
|
8
|
+
//
|
|
9
|
+
// A host absent from this record has simply never been verified by a run.
|
|
10
|
+
export const HOST_VERIFICATIONS = {
|
|
11
|
+
"claude-code": { version: "2.1.220", at: "2026-07-29", depth: "install" },
|
|
12
|
+
codex: { version: "0.145.0", at: "2026-07-29", depth: "install" },
|
|
13
|
+
oz: { version: "0.2026.07.22.09.01.stable_01", at: "2026-07-29", depth: "invocation" },
|
|
14
|
+
warp: { version: null, at: "2026-07-29", depth: "install" },
|
|
15
|
+
gemini: { version: "1.0.16", at: "2026-07-29", depth: "install" },
|
|
16
|
+
opencode: { version: "1.18.0", at: "2026-07-29", depth: "invocation" },
|
|
17
|
+
crush: { version: "0.87.0", at: "2026-07-29", depth: "invocation" },
|
|
18
|
+
kimi: { version: "0.29.2", at: "2026-07-29", depth: "install" },
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=host-verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-verification.js","sourceRoot":"","sources":["../../src/domain/host-verification.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,8CAA8C;AAC9C,EAAE;AACF,0EAA0E;AAiB1E,MAAM,CAAC,MAAM,kBAAkB,GAAoD;IACjF,aAAa,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE;IACzE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE;IACjE,EAAE,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IACtF,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3D,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE;IACjE,QAAQ,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IACtE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IACnE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE;CAChE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tacuchi/agent-workflow-cli",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.25.0",
|
|
4
4
|
"description": "Runtime CLI for Workline — the stages + loops + artifacts system for agent work. Bundles the universal `w` skill set under `skills/w/` (slash commands `/w:*`: spec-new/spec-refine, plan-new/plan-exec, quick, persist, 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": {
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"lint:fix": "biome check --write .",
|
|
19
19
|
"format": "biome format --write .",
|
|
20
20
|
"typecheck": "tsc --noEmit",
|
|
21
|
-
"prepublishOnly": "npm run lint && npm run typecheck && npm run test && npm run build"
|
|
21
|
+
"prepublishOnly": "npm run lint && npm run typecheck && npm run test && npm run build",
|
|
22
|
+
"smoke:hosts": "npm run build && node scripts/smoke-hosts.mjs"
|
|
22
23
|
},
|
|
23
24
|
"keywords": [
|
|
24
25
|
"cli",
|
package/skills/w/SKILL.md
CHANGED
|
@@ -99,7 +99,7 @@ It is the **inter-turn** face of the *persistent objective* (same `CHECKPOINT`+r
|
|
|
99
99
|
|
|
100
100
|
### Host as producer — adopted context
|
|
101
101
|
|
|
102
|
-
The flows are **composable with host-native work, never exclusive**. The host is not only the executor of the loops: it is a legitimate **producer** of input. Work products born in the host conversation — an analysis reached with a host feature, a plan built in the host's plan mode, settled conclusions — are first-class flow input via **adoption**: transcribe with provenance (`## Origin` = adopted from the host conversation), verify like any other input (gate integrity), and never re-derive or re-ask what is already settled. Entry points: any loop start (adopted context — `
|
|
102
|
+
The flows are **composable with host-native work, never exclusive**. The host is not only the executor of the loops: it is a legitimate **producer** of input. Work products born in the host conversation — an analysis reached with a host feature, a plan built in the host's plan mode, settled conclusions — are first-class flow input via **adoption**: transcribe with provenance (`## Origin` = adopted from the host conversation), verify like any other input (gate integrity), and never re-derive or re-ask what is already settled. Entry points: any loop start (adopted context — `modules/ADOPTED-CONTEXT.md`, loaded under the `adopted` signal), `plan-new` input mode 4 (adopt an external plan), and `/w:persist` (classify + persist finished work into `docs/`).
|
|
103
103
|
|
|
104
104
|
### The commands (`/w:` namespace)
|
|
105
105
|
|
|
@@ -126,7 +126,7 @@ The flows are **composable with host-native work, never exclusive**. The host is
|
|
|
126
126
|
|
|
127
127
|
A loop is a skill that teaches the AI **how to iterate** to a deliverable: detect gaps, resolve them (human via structured-choice, inline research, a small probe/PoC or a composed capability), integrate and repeat until convergence. The 5 loops run the same **common engine** — persistent objective + verification-first, gap-driven convergent, single session per run, structured-choice + `flow` control (`Compactar`/`Cerrar`), compact/resume, artifacts as a live log, convergence gate — whose canon lives in [`loops/CHASSIS.md`](loops/CHASSIS.md); each loop is an **heir** adding only its deltas.
|
|
128
128
|
|
|
129
|
-
The **code-editing** loops (`plan-exec-loop`, `quick-loop`) additionally apply the *code-editing loop policies*: safe git, DB scripts-only and the pre-commit **closing review gate** (nothing reaches a proposed commit unreviewed) — see [`loops/CODE-POLICIES.md`](loops/CODE-POLICIES.md) (the chassis' sibling doc; document loops do not load it).
|
|
129
|
+
The **code-editing** loops (`plan-exec-loop`, `quick-loop`) additionally apply the *code-editing loop policies*: safe git, DB scripts-only (`modules/DB-SCRIPTS-ONLY.md`, under the `db` signal) and the pre-commit **closing review gate** (nothing reaches a proposed commit unreviewed) — see [`loops/CODE-POLICIES.md`](loops/CODE-POLICIES.md) (the chassis' sibling doc; document loops do not load it).
|
|
130
130
|
|
|
131
131
|
`spec-new` has no loop (single-pass): **6 commands / 5 loops**.
|
|
132
132
|
|
|
@@ -1,40 +1,23 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Use to promote diagram material from N sessions into a numbered dossier under docs/diagrams/. Read-only over sessions; `aw export-diagrams` owns the corpus, the numbering and the write. Never automatic.
|
|
3
3
|
argument-hint: "[--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
4
|
-
allowed-tools:
|
|
5
|
-
[
|
|
6
|
-
"Bash",
|
|
7
|
-
"Read",
|
|
8
|
-
]
|
|
4
|
+
allowed-tools: ["Bash", "Read"]
|
|
9
5
|
---
|
|
10
6
|
|
|
11
|
-
# export-diagrams — export diagrams
|
|
12
|
-
|
|
13
|
-
Promotes diagram material from `.workflow/sessions/` into a numbered dossier under `docs/diagrams/`. Single-pass, read-only over sessions. **Transversal**: no flow, no loop, **never creates a session**.
|
|
14
|
-
|
|
15
7
|
## Run
|
|
16
8
|
|
|
17
|
-
1. `aw export-diagrams prepare --format human
|
|
18
|
-
2.
|
|
19
|
-
3. `echo '<json>' | aw export-diagrams validate --format human` → preview + `approval_digest
|
|
20
|
-
4.
|
|
21
|
-
5. `echo '<json>' | aw export-diagrams apply --approval <digest> --format human`.
|
|
22
|
-
|
|
23
|
-
Every rejection names its cause and one valid next action; nothing was written. Fix the answer and repeat from step 3.
|
|
24
|
-
|
|
25
|
-
> **The CLI owns everything but the synthesis**: corpus selection and filters, numbering, the shape check, the write authorization and the atomic publication. Never write into `docs/` with a file tool — `Write` is deliberately not in `allowed-tools`. A dossier lands whole or not at all.
|
|
9
|
+
1. `aw export-diagrams prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
|
|
11
|
+
3. `echo '<json>' | aw export-diagrams validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
|
|
12
|
+
4. `echo '<json>' | aw export-diagrams apply --approval <digest>`. On rejection nothing was written: fix and repeat step 3.
|
|
26
13
|
|
|
27
14
|
## What it produces
|
|
28
15
|
|
|
29
16
|
- `docs/diagrams/NNN-export-diagrams-YYYY-MM-DD/`: `README.md` (required) + the diagrams in Markdown, plus their DSL (`.dsl`/`.puml`/`.mmd`) when it helps.
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
## Plan mode
|
|
17
|
+
- Never write into `docs/` with a file tool: one pass, all or nothing, no session or loop created/touched.
|
|
33
18
|
|
|
34
|
-
|
|
19
|
+
## More context
|
|
35
20
|
|
|
36
|
-
|
|
21
|
+
`aw context-plan --command export-diagrams --signal <s>` returns the extra documents a case needs; read exactly what it lists:
|
|
37
22
|
|
|
38
|
-
-
|
|
39
|
-
- Diagram authoring reference: `../exports/export-diagrams/EXPORT.md` (engine `--engine`, notation) — no longer loaded on the normal path
|
|
40
|
-
- Design reference: `docs/referencias/workflow-exports/README.md`
|
|
23
|
+
- `authoring` — the notation or the `--engine` choice is not obvious from the material → [`../exports/export-diagrams/EXPORT.md`](../exports/export-diagrams/EXPORT.md), no longer loaded on the normal path
|
|
@@ -1,41 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Use to promote user and operator manuals from N sessions into a numbered dossier under docs/manuals/. Read-only over sessions; `aw export-manuals` owns numbering, INDEX.md and the write. Never automatic.
|
|
3
3
|
argument-hint: "[--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
4
|
-
allowed-tools:
|
|
5
|
-
[
|
|
6
|
-
"Bash",
|
|
7
|
-
"Read",
|
|
8
|
-
]
|
|
4
|
+
allowed-tools: ["Bash", "Read"]
|
|
9
5
|
---
|
|
10
6
|
|
|
11
|
-
# export-manuals — export manuals
|
|
12
|
-
|
|
13
|
-
Promotes manual material from `.workflow/sessions/` into a numbered dossier under `docs/manuals/`. Single-pass, read-only over sessions. **Transversal**: no flow, no loop, **never creates a session**.
|
|
14
|
-
|
|
15
7
|
## Run
|
|
16
8
|
|
|
17
|
-
1. `aw export-manuals prepare --format human
|
|
18
|
-
2.
|
|
19
|
-
3. `echo '<json>' | aw export-manuals validate --format human` → preview + `approval_digest
|
|
20
|
-
4.
|
|
21
|
-
5. `echo '<json>' | aw export-manuals apply --approval <digest> --format human [--overwrite]`.
|
|
22
|
-
|
|
23
|
-
Every rejection names its cause and one valid next action; nothing was written. Fix the answer and repeat from step 3.
|
|
24
|
-
|
|
25
|
-
> **The CLI owns everything but the synthesis**: corpus selection and filters, numbering, the shape check, the write authorization and the atomic publication. Never write into `docs/` with a file tool — `Write` is deliberately not in `allowed-tools`. A dossier lands whole or not at all.
|
|
9
|
+
1. `aw export-manuals prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
|
|
11
|
+
3. `echo '<json>' | aw export-manuals validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
|
|
12
|
+
4. `echo '<json>' | aw export-manuals apply --approval <digest> [--overwrite]`. On rejection nothing was written: fix and repeat step 3.
|
|
26
13
|
|
|
27
14
|
## What it produces
|
|
28
15
|
|
|
29
|
-
- `docs/manuals/NNN-export-manuals-YYYY-MM-DD/`: `README.md` (required) + the manuals in Markdown.
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
## Plan mode
|
|
16
|
+
- `docs/manuals/NNN-export-manuals-YYYY-MM-DD/`: `README.md` (required) + the manuals, in Markdown.
|
|
17
|
+
- `docs/manuals/INDEX.md`: optional; the **only** file an export may replace, with approved `--overwrite`.
|
|
18
|
+
- Never write into `docs/` with a file tool: one pass, all or nothing, no session or loop created/touched.
|
|
19
|
+
- Authoring ref: no longer loaded on the normal path.
|
|
34
20
|
|
|
35
|
-
|
|
21
|
+
## More context
|
|
36
22
|
|
|
37
|
-
|
|
23
|
+
`aw context-plan --command export-manuals --signal <s>` returns the extra documents a case needs; read exactly what it lists:
|
|
38
24
|
|
|
39
|
-
-
|
|
40
|
-
- Manual authoring reference: `../exports/export-manuals/EXPORT.md` — no longer loaded on the normal path
|
|
41
|
-
- Design reference: `docs/referencias/workflow-exports/README.md`
|
|
25
|
+
- `authoring` — the manual's structure or audience is not obvious from the material → [`../exports/export-manuals/EXPORT.md`](../exports/export-manuals/EXPORT.md), no longer loaded on the normal path
|
|
@@ -1,40 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Use to promote findings from N sessions into ONE numbered Markdown report under docs/reports/. Read-only over sessions; `aw export-reports` owns the corpus, the numbering and the write. Never automatic.
|
|
3
3
|
argument-hint: "[--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
4
|
-
allowed-tools:
|
|
5
|
-
[
|
|
6
|
-
"Bash",
|
|
7
|
-
"Read",
|
|
8
|
-
]
|
|
4
|
+
allowed-tools: ["Bash", "Read"]
|
|
9
5
|
---
|
|
10
6
|
|
|
11
|
-
# export-reports — export a report
|
|
12
|
-
|
|
13
|
-
Promotes session findings into one numbered report under `docs/reports/`. Single-pass, read-only over sessions. **Transversal**: no flow, no loop, **never creates a session**.
|
|
14
|
-
|
|
15
7
|
## Run
|
|
16
8
|
|
|
17
|
-
1. `aw export-reports prepare --format human
|
|
18
|
-
2.
|
|
19
|
-
3. `echo '<json>' | aw export-reports validate --format human` → preview + `approval_digest
|
|
20
|
-
4.
|
|
21
|
-
5. `echo '<json>' | aw export-reports apply --approval <digest> --format human`.
|
|
22
|
-
|
|
23
|
-
Every rejection names its cause and one valid next action; nothing was written. Fix the answer and repeat from step 3.
|
|
24
|
-
|
|
25
|
-
> **The CLI owns everything but the synthesis**: corpus selection and filters, numbering, the shape check, the write authorization and the atomic publication. Never write into `docs/` with a file tool — `Write` is deliberately not in `allowed-tools`. A dossier lands whole or not at all.
|
|
9
|
+
1. `aw export-reports prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
|
|
11
|
+
3. `echo '<json>' | aw export-reports validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
|
|
12
|
+
4. `echo '<json>' | aw export-reports apply --approval <digest>`. On rejection nothing was written: fix and repeat step 3.
|
|
26
13
|
|
|
27
14
|
## What it produces
|
|
28
15
|
|
|
29
16
|
- `docs/reports/NNN-<slug>-YYYY-MM-DD.md`: ONE document that declares its audience and its scope in the opening lines.
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
## Plan mode
|
|
17
|
+
- Never write into `docs/` with a file tool: one pass, all or nothing, no session or loop created/touched.
|
|
18
|
+
- Authoring ref: no longer loaded on the normal path.
|
|
33
19
|
|
|
34
|
-
|
|
20
|
+
## More context
|
|
35
21
|
|
|
36
|
-
|
|
22
|
+
`aw context-plan --command export-reports --signal <s>` returns the extra documents a case needs; read exactly what it lists:
|
|
37
23
|
|
|
38
|
-
-
|
|
39
|
-
- Report authoring reference: `../exports/export-reports/EXPORT.md` — no longer loaded on the normal path
|
|
40
|
-
- Design reference: `docs/referencias/workflow-exports/README.md`
|
|
24
|
+
- `authoring` — the report's structure or audience is not obvious from the material → [`../exports/export-reports/EXPORT.md`](../exports/export-reports/EXPORT.md), no longer loaded on the normal path
|
|
@@ -1,41 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Use to promote the type-B `SCRIPTS.sql` artifacts of N sessions into a docs/scripts/ bundle — continuous forwards plus rollback. `aw export-scripts` checks the bundle shape and NEVER executes SQL. Never automatic.
|
|
3
3
|
argument-hint: "[--sessions <ids>] [--since <YYYY-MM-DD>] [--source <alias>]"
|
|
4
|
-
allowed-tools:
|
|
5
|
-
[
|
|
6
|
-
"Bash",
|
|
7
|
-
"Read",
|
|
8
|
-
]
|
|
4
|
+
allowed-tools: ["Bash", "Read"]
|
|
9
5
|
---
|
|
10
6
|
|
|
11
|
-
# export-scripts — export DB scripts
|
|
12
|
-
|
|
13
|
-
Promotes the `SCRIPTS.sql` artifacts (type B — migrations) of N sessions from `.workflow/sessions/` into a bundle under `docs/scripts/`. Single-pass, read-only over sessions. **Transversal**: no flow, no loop, **never creates a session**.
|
|
14
|
-
|
|
15
7
|
## Run
|
|
16
8
|
|
|
17
|
-
1. `aw export-scripts prepare --format human
|
|
18
|
-
2.
|
|
19
|
-
3. `echo '<json>' | aw export-scripts validate --format human` → preview + `approval_digest
|
|
20
|
-
4.
|
|
21
|
-
5. `echo '<json>' | aw export-scripts apply --approval <digest> --format human`.
|
|
22
|
-
|
|
23
|
-
Every rejection names its cause and one valid next action; nothing was written. Fix the answer and repeat from step 3.
|
|
24
|
-
|
|
25
|
-
> **The CLI owns everything but the synthesis**: corpus selection and filters, numbering, the shape check, the write authorization and the atomic publication. Never write into `docs/` with a file tool — `Write` is deliberately not in `allowed-tools`. A dossier lands whole or not at all.
|
|
9
|
+
1. `aw export-scripts prepare --format human` (+ `--sessions`/`--since`/`--source`) → corpus, destination, shape, `input_digest`.
|
|
10
|
+
2. Answer with one JSON: `version`/`operation`/`input_digest` **verbatim**, `state: "proposed"`, `artifacts` = `{ path, content }` per file, all inside the destination; `NNN` is advisory: `apply` renumbers.
|
|
11
|
+
3. `echo '<json>' | aw export-scripts validate --format human` → preview + `approval_digest`; confirm scope and destination with the user.
|
|
12
|
+
4. `echo '<json>' | aw export-scripts apply --approval <digest>`. On rejection nothing was written: fix and repeat step 3.
|
|
26
13
|
|
|
27
14
|
## What it produces
|
|
28
15
|
|
|
29
|
-
- `docs/scripts/NNN-export-scripts-YYYY-MM-DD/`: `00-ROLLBACK.sql` and `README.md
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
## Plan mode
|
|
16
|
+
- `docs/scripts/NNN-export-scripts-YYYY-MM-DD/`: `00-ROLLBACK.sql` and `README.md`, both required, + forwards `NN-<nombre>.sql` numbered **continuously from 01**; the CLI rejects a gap.
|
|
17
|
+
- Neither the AI nor the CLI executes the SQL: the bundle is for a human or DBA to apply.
|
|
18
|
+
- Never write into `docs/` with a file tool: one pass, all or nothing, no session or loop created/touched.
|
|
34
19
|
|
|
35
|
-
|
|
20
|
+
## More context
|
|
36
21
|
|
|
37
|
-
|
|
22
|
+
`aw context-plan --command export-scripts --signal <s>` returns the extra documents a case needs; read exactly what it lists:
|
|
38
23
|
|
|
39
|
-
-
|
|
40
|
-
- SQL bundle reference: `../exports/export-scripts/EXPORT.md` (rollback derivation, ordering) — no longer loaded on the normal path
|
|
41
|
-
- Design reference: `docs/referencias/workflow-exports/README.md`
|
|
24
|
+
- `authoring` — the rollback derivation or the ordering is not obvious from the material → [`../exports/export-scripts/EXPORT.md`](../exports/export-scripts/EXPORT.md), no longer loaded on the normal path
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Use when a merge left conflicts to resolve.
|
|
2
|
+
description: Use when a merge left conflicts to resolve. `aw fix-git` hands you the three versions of each conflict, validates your resolution and owns edit, stage and commit. Git-safe, transversal, never touches docs/.
|
|
3
3
|
argument-hint: "[--source <alias> | --path <ruta>]"
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -8,45 +8,34 @@ allowed-tools:
|
|
|
8
8
|
]
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
# fix-git — merge
|
|
11
|
+
# fix-git — merge conflicts
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
No loop, no session, never writes `docs/`. Any git repo, workspace or not. Output in the **user's language**.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
>
|
|
17
|
-
> 1. **You supply content; the CLI owns the effects.** Never edit a conflicted file, never `git add`, never `git commit` by hand — `Edit` is deliberately not in `allowed-tools`.
|
|
18
|
-
> 2. **Only unambiguous resolutions.** Anything you cannot resolve on evidence is `state: "ambiguous"`, which the CLI turns into a question. Never guess a side.
|
|
19
|
-
> 3. **The commit is a separate action**, always confirmed, and the message is proposed to the user first. Never `--no-verify`, `--amend` or push.
|
|
20
|
-
> 4. **Never `git merge --abort` on your own** — propose it; the user decides.
|
|
15
|
+
**Hard floor:**
|
|
21
16
|
|
|
22
|
-
|
|
17
|
+
1. **You supply content; the CLI owns the effects.** Never edit a conflicted file, never `git add` or `git commit` by hand.
|
|
18
|
+
2. **Only unambiguous resolutions** — what evidence cannot settle is `state: "ambiguous"`; never guess a side.
|
|
19
|
+
3. **The commit is separate**, always confirmed, message proposed first. Never `--no-verify`, `--amend` or push.
|
|
20
|
+
4. **Never `git merge --abort` yourself** — propose it; the user decides.
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
2. **Resolve each conflict from the three versions the request carries** — `base` (common ancestor), `ours` (HEAD) and `theirs` (the incoming branch). Read both sides' *intent*, not just their text: `ours`, `theirs`, a combination, or a rewrite that preserves both intents.
|
|
26
|
-
3. Compose one JSON answer: `version`, `operation` and `input_digest` copied verbatim; `state: "proposed"`; `artifacts` with **one `{ path, content }` per conflicted file**, `content` being the complete resolved file with **no conflict markers**.
|
|
27
|
-
- Any file you cannot settle on evidence → `state: "ambiguous"` with `reason`. Nothing is written; present the choice to the user.
|
|
28
|
-
- A binary conflict is rejected by the CLI: propose `git checkout --ours|--theirs` to the user instead.
|
|
29
|
-
4. `echo '<json>' | aw fix-git apply --format human [--source …]`. The invocation authorizes the write **because** the set is unambiguous and still current — a conflict another process resolved meanwhile fails as stale.
|
|
30
|
-
5. **Propose the merge commit** to the user (canonical one-line format). On approval:
|
|
31
|
-
`aw fix-git commit --message "<mensaje>" --confirm [--source …]`.
|
|
22
|
+
## Run
|
|
32
23
|
|
|
33
|
-
|
|
24
|
+
1. `aw fix-git prepare --format human [--source <alias> | --path <ruta>]` — merge direction (`theirs → ours`), conflicted paths, their three stages and blob hashes; inspector `aw merge-state`.
|
|
25
|
+
2. Resolve each conflict from `base` (ancestor), `ours` (HEAD) and `theirs` (incoming) by *intent*, not text: one side, a combination, or a rewrite of both.
|
|
26
|
+
3. One JSON answer: `version`, `operation`, `input_digest` verbatim, `state: "proposed"`, `artifacts` = one complete `{ path, content }` per conflicted file.
|
|
27
|
+
- Cannot settle it → `state: "ambiguous"` with `reason`, nothing written. Binary conflict → rejected; propose `git checkout --ours|--theirs`.
|
|
28
|
+
4. `echo '<json>' | aw fix-git apply --format human [--source …]` — authorized while the set is unambiguous and current. A rejection names its cause and next action; nothing was written — fix and repeat.
|
|
29
|
+
5. Propose the merge commit; on approval `aw fix-git commit --message "<mensaje>" --confirm`.
|
|
34
30
|
|
|
35
|
-
> **No merge in progress?**
|
|
31
|
+
> **No merge in progress?** User asked to merge a branch → run `git -C <path> merge <branch>` and continue; otherwise say nothing is left to resolve.
|
|
36
32
|
|
|
37
33
|
## What the CLI decides (do not re-derive)
|
|
38
34
|
|
|
39
|
-
- **
|
|
40
|
-
- **
|
|
41
|
-
- **
|
|
42
|
-
- **Whether the merge can close**: `commit` refuses while any file stays unmerged.
|
|
43
|
-
|
|
44
|
-
## Plan mode
|
|
45
|
-
|
|
46
|
-
Run `aw fix-git prepare` (read-only), report **origin ↔ destination** and the per-file conflicts, and describe the resolution you would propose — without applying or committing.
|
|
35
|
+
- **Writable paths**: only files still unmerged — anything else is rejected, and blob hashes seal the set: a moved conflict fails stale.
|
|
36
|
+
- **Resolved**: leftover `<<<<<<<` / `=======` / `>>>>>>>` is a rejection.
|
|
37
|
+
- **Can close**: `commit` refuses while a file stays unmerged.
|
|
47
38
|
|
|
48
|
-
##
|
|
39
|
+
## More context
|
|
49
40
|
|
|
50
|
-
-
|
|
51
|
-
- Reference: `../roles/git/ROLE.md` § *Merge-conflict resolution* — the reasoning about intent; the mechanics now live in the CLI
|
|
52
|
-
- Design reference: `docs/referencias/workflow-skills/fix-git.md`
|
|
41
|
+
`aw context-plan --command fix-git --signal <s>` returns the extra documents a case needs; read exactly what it lists.
|