@harness-forge/cli 1.2.2 → 1.2.4
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/.agents/skills/hforge-analyze/SKILL.md +35 -0
- package/.agents/skills/hforge-decide/SKILL.md +29 -0
- package/.agents/skills/hforge-init/SKILL.md +34 -0
- package/.agents/skills/hforge-refresh/SKILL.md +28 -0
- package/.agents/skills/hforge-review/SKILL.md +29 -0
- package/.agents/skills/token-budget-optimizer/SKILL.md +26 -0
- package/AGENTS.md +6 -3
- package/README.md +9 -5
- package/commands/hforge-cartograph.md +35 -0
- package/commands/hforge-commands.md +34 -0
- package/commands/hforge-decide.md +35 -0
- package/commands/hforge-init.md +37 -0
- package/commands/hforge-recommend.md +34 -0
- package/commands/hforge-recursive.md +34 -0
- package/commands/hforge-refresh.md +35 -0
- package/commands/hforge-review.md +36 -0
- package/commands/hforge-status.md +34 -0
- package/commands/hforge-task.md +35 -0
- package/commands/hforge-update.md +34 -0
- package/dist/application/install/agent-manifest.d.ts +8 -0
- package/dist/application/install/agent-manifest.d.ts.map +1 -1
- package/dist/application/install/agent-manifest.js +7 -0
- package/dist/application/install/agent-manifest.js.map +1 -1
- package/dist/application/recommendations/recommend-bundles.d.ts.map +1 -1
- package/dist/application/recommendations/recommend-bundles.js +41 -2
- package/dist/application/recommendations/recommend-bundles.js.map +1 -1
- package/dist/application/runtime/command-catalog.d.ts +7 -0
- package/dist/application/runtime/command-catalog.d.ts.map +1 -1
- package/dist/application/runtime/command-catalog.js +101 -0
- package/dist/application/runtime/command-catalog.js.map +1 -1
- package/dist/cli/commands/commands.d.ts.map +1 -1
- package/dist/cli/commands/commands.js +5 -1
- package/dist/cli/commands/commands.js.map +1 -1
- package/dist/domain/intelligence/repo-intelligence.js +1 -1
- package/dist/domain/intelligence/repo-intelligence.js.map +1 -1
- package/docs/agent-usage-playbook.md +34 -4
- package/docs/agents.md +5 -0
- package/docs/authoring/token-budget-optimizer-port.md +78 -0
- package/docs/commands.md +12 -1
- package/manifests/bundles/core.json +11 -0
- package/manifests/catalog/compatibility-matrix.json +205 -1
- package/manifests/catalog/index.json +1 -0
- package/manifests/catalog/package-surface.json +57 -0
- package/manifests/catalog/token-budget-optimizer-import-inventory.json +146 -0
- package/package.json +1 -1
- package/scripts/intelligence/shared.mjs +187 -51
- package/skills/README.md +6 -0
- package/skills/hforge-analyze/SKILL.md +40 -0
- package/skills/hforge-analyze/references/analysis-order.md +15 -0
- package/skills/hforge-analyze/references/decision-promotion.md +9 -0
- package/skills/hforge-analyze/references/output-contract.md +7 -0
- package/skills/hforge-decide/SKILL.md +58 -0
- package/skills/hforge-decide/references/decision-rubric.md +18 -0
- package/skills/hforge-decide/references/output-contract.md +7 -0
- package/skills/hforge-init/SKILL.md +58 -0
- package/skills/hforge-init/references/bootstrap-order.md +7 -0
- package/skills/hforge-init/references/output-contract.md +7 -0
- package/skills/hforge-refresh/SKILL.md +52 -0
- package/skills/hforge-refresh/references/output-contract.md +7 -0
- package/skills/hforge-refresh/references/refresh-order.md +5 -0
- package/skills/hforge-review/SKILL.md +57 -0
- package/skills/hforge-review/references/output-contract.md +7 -0
- package/skills/hforge-review/references/review-order.md +7 -0
- package/skills/token-budget-optimizer/SKILL.md +56 -0
- package/skills/token-budget-optimizer/references/audit-dimensions.md +37 -0
- package/skills/token-budget-optimizer/references/promotion-ladder.md +44 -0
- package/skills/token-budget-optimizer/references/report-template.md +25 -0
- package/skills/token-budget-optimizer/references/scoring-model.md +43 -0
- package/skills/token-budget-optimizer/scripts/inspect_token_surfaces.py +68 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: command-hforge-update
|
|
3
|
+
kind: command
|
|
4
|
+
title: Harness Update Command
|
|
5
|
+
summary: Use when an agent should preview or apply a non-destructive Harness Forge package refresh while preserving gathered runtime state.
|
|
6
|
+
status: stable
|
|
7
|
+
owner: core
|
|
8
|
+
applies_to:
|
|
9
|
+
- codex
|
|
10
|
+
- claude-code
|
|
11
|
+
- cursor
|
|
12
|
+
- opencode
|
|
13
|
+
languages:
|
|
14
|
+
- all
|
|
15
|
+
generated: false
|
|
16
|
+
---
|
|
17
|
+
# Harness Update Command
|
|
18
|
+
|
|
19
|
+
## Syntax
|
|
20
|
+
|
|
21
|
+
Invoke this command in runtimes that support markdown-backed command entrypoints,
|
|
22
|
+
for example `/hforge-update` followed by optional version or safety notes.
|
|
23
|
+
|
|
24
|
+
## Expected workflow
|
|
25
|
+
|
|
26
|
+
1. resolve command execution through `.hforge/generated/bin/hforge(.cmd|.ps1)` first, bare `hforge` second, and `npx @harness-forge/cli` last
|
|
27
|
+
2. run `hforge update --root . --dry-run --yes` first when the user wants a preview
|
|
28
|
+
3. run `hforge update --root . --yes` or `hforge upgrade --root . --yes` only when the operator wants to apply the refresh
|
|
29
|
+
4. summarize preserved runtime state, backup location, and the best post-update validation commands such as `review`, `doctor`, or `audit`
|
|
30
|
+
|
|
31
|
+
## Failure behavior
|
|
32
|
+
|
|
33
|
+
- if the workspace is not initialized, recommend `/hforge-init` instead of forcing an update
|
|
34
|
+
- do not claim gathered runtime state will be preserved unless the managed update flow is actually used
|
|
@@ -18,6 +18,7 @@ export interface AgentManifest {
|
|
|
18
18
|
machineReadableManifest: string;
|
|
19
19
|
sharedRuntimeIndex: string;
|
|
20
20
|
commandCatalog: string;
|
|
21
|
+
markdownCommandRoot: string;
|
|
21
22
|
installState: string;
|
|
22
23
|
};
|
|
23
24
|
resolutionOrder: string[];
|
|
@@ -33,6 +34,13 @@ export interface AgentManifest {
|
|
|
33
34
|
localLaunchers: string[];
|
|
34
35
|
commandExecution: {
|
|
35
36
|
preferredOrder: string[];
|
|
37
|
+
markdownCommands: Array<{
|
|
38
|
+
id: string;
|
|
39
|
+
trigger: string;
|
|
40
|
+
docPath: string;
|
|
41
|
+
description: string;
|
|
42
|
+
relatedCliCommandIds: string[];
|
|
43
|
+
}>;
|
|
36
44
|
modes: Array<{
|
|
37
45
|
id: string;
|
|
38
46
|
platform: "any" | "windows" | "posix";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manifest.d.ts","sourceRoot":"","sources":["../../../src/application/install/agent-manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-manifest.d.ts","sourceRoot":"","sources":["../../../src/application/install/agent-manifest.ts"],"names":[],"mappings":"AAmCA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EACJ,YAAY,GACZ,WAAW,GACX,qBAAqB,GACrB,eAAe,GACf,OAAO,GACP,WAAW,GACX,UAAU,GACV,gBAAgB,CAAC;IACrB,UAAU,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAChE,kBAAkB,EAAE,KAAK,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE;QACX,wBAAwB,EAAE,MAAM,CAAC;QACjC,uBAAuB,EAAE,MAAM,CAAC;QAChC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,KAAK,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE;QAChB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,gBAAgB,EAAE,KAAK,CAAC;YACtB,EAAE,EAAE,MAAM,CAAC;YACX,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,MAAM,CAAC;YACpB,oBAAoB,EAAE,MAAM,EAAE,CAAC;SAChC,CAAC,CAAC;QACH,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;YACtC,aAAa,EAAE,MAAM,CAAC;YACtB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IACF,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAmID,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,WAAW,SAAe,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC,CAuHpD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { AGENT_MANIFEST_FILE, AI_LAYER_ROOT_DIR, AI_LAYER_VISIBLE_MODE, GENERATED_DIR, PACKAGE_ROOT, readJsonFile, RUNTIME_DIR, RUNTIME_INDEX_FILE, STATE_DIR, exists, writeJsonFile } from "../../shared/index.js";
|
|
3
|
+
import { loadAgentCommandCatalog } from "../runtime/command-catalog.js";
|
|
3
4
|
async function tryReadJson(filePath) {
|
|
4
5
|
if (!(await exists(filePath))) {
|
|
5
6
|
return null;
|
|
@@ -39,6 +40,7 @@ function buildSurfaceIndex(runtime, launchers) {
|
|
|
39
40
|
];
|
|
40
41
|
surfaces.set("AGENTS.md", createSurface("AGENTS.md", "entrypoint", "visible-bridge", "Canonical human-readable instruction entrypoint for compatible agents."));
|
|
41
42
|
surfaces.set(".agents/skills", createSurface(".agents/skills", "discovery", "visible-bridge", "Discovery wrappers that route agents into the hidden canonical skill library."));
|
|
43
|
+
surfaces.set("commands", createSurface("commands", "discovery", "visible-bridge", "Packaged markdown command entrypoints for runtimes that support slash-style or markdown-backed agent commands."));
|
|
42
44
|
surfaces.set(".specify", createSurface(".specify", "discovery", "visible-bridge", "Structured feature flow helpers for spec, plan, tasks, and implementation."));
|
|
43
45
|
for (const bridgePath of visibleBridges) {
|
|
44
46
|
if (bridgePath === "AGENTS.md" || bridgePath === ".agents/skills" || bridgePath === ".specify") {
|
|
@@ -79,6 +81,7 @@ export async function writeAgentManifest(workspaceRoot, packageRoot = PACKAGE_RO
|
|
|
79
81
|
tryReadJson(path.join(workspaceRoot, RUNTIME_DIR, RUNTIME_INDEX_FILE)),
|
|
80
82
|
tryReadJson(path.join(workspaceRoot, STATE_DIR, "install-state.json"))
|
|
81
83
|
]);
|
|
84
|
+
const commandCatalog = await loadAgentCommandCatalog(packageRoot);
|
|
82
85
|
const launcherPaths = getLocalLauncherPaths();
|
|
83
86
|
const manifestPath = path.join(workspaceRoot, AGENT_MANIFEST_FILE);
|
|
84
87
|
const installedTargets = runtimeIndex?.targets?.map((target) => ({
|
|
@@ -108,6 +111,7 @@ export async function writeAgentManifest(workspaceRoot, packageRoot = PACKAGE_RO
|
|
|
108
111
|
machineReadableManifest: AGENT_MANIFEST_FILE,
|
|
109
112
|
sharedRuntimeIndex: `${RUNTIME_DIR}/${RUNTIME_INDEX_FILE}`,
|
|
110
113
|
commandCatalog: `${GENERATED_DIR}/agent-command-catalog.json`,
|
|
114
|
+
markdownCommandRoot: "commands",
|
|
111
115
|
installState: `${STATE_DIR}/install-state.json`
|
|
112
116
|
},
|
|
113
117
|
resolutionOrder: [
|
|
@@ -115,6 +119,7 @@ export async function writeAgentManifest(workspaceRoot, packageRoot = PACKAGE_RO
|
|
|
115
119
|
".hforge/agent-manifest.json",
|
|
116
120
|
".hforge/runtime/index.json",
|
|
117
121
|
".hforge/generated/agent-command-catalog.json",
|
|
122
|
+
"commands/<command>.md",
|
|
118
123
|
".agents/skills/<skill>/SKILL.md",
|
|
119
124
|
".hforge/library/skills/<skill>/SKILL.md"
|
|
120
125
|
],
|
|
@@ -134,6 +139,7 @@ export async function writeAgentManifest(workspaceRoot, packageRoot = PACKAGE_RO
|
|
|
134
139
|
localLaunchers: launcherPaths,
|
|
135
140
|
commandExecution: {
|
|
136
141
|
preferredOrder: ["workspace-launcher-windows", "workspace-launcher-powershell", "workspace-launcher-posix", "bare-hforge", "npx-package"],
|
|
142
|
+
markdownCommands: commandCatalog.markdownCommands,
|
|
137
143
|
modes: [
|
|
138
144
|
{
|
|
139
145
|
id: "workspace-launcher-windows",
|
|
@@ -173,6 +179,7 @@ export async function writeAgentManifest(workspaceRoot, packageRoot = PACKAGE_RO
|
|
|
173
179
|
"Use .agents/skills/ for discovery and .hforge/library/skills/ for canonical execution contracts.",
|
|
174
180
|
"Treat .hforge/library/, .hforge/templates/, .hforge/runtime/, .hforge/state/, and .hforge/generated/ as AI-layer surfaces rather than product code.",
|
|
175
181
|
"Use .hforge/generated/agent-command-catalog.json to discover safe CLI commands before inventing your own execution path.",
|
|
182
|
+
"Use the markdownCommands section in .hforge/generated/agent-command-catalog.json to discover slash-style or markdown-backed agent command entrypoints.",
|
|
176
183
|
"Resolve command execution in this order: workspace launcher, bare hforge on PATH, then npx @harness-forge/cli.",
|
|
177
184
|
"Use .hforge/runtime/recursive/language-capabilities.json to discover recursive structured-analysis support before attempting repository-wide recursive analysis.",
|
|
178
185
|
"Use hforge recursive capabilities --root . --json, hforge recursive run <sessionId> --file <snippet> --json, hforge recursive run <sessionId> --stdin --json, hforge recursive runs <sessionId> --json, and hforge recursive inspect-run <sessionId> <runId> --json as the promoted recursive structured-analysis command family.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manifest.js","sourceRoot":"","sources":["../../../src/application/install/agent-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,MAAM,EACN,aAAa,EACd,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-manifest.js","sourceRoot":"","sources":["../../../src/application/install/agent-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommend-bundles.d.ts","sourceRoot":"","sources":["../../../src/application/recommendations/recommend-bundles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recommend-bundles.d.ts","sourceRoot":"","sources":["../../../src/application/recommendations/recommend-bundles.ts"],"names":[],"mappings":"AA8DA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmEtE"}
|
|
@@ -12,11 +12,26 @@ const IGNORED_DIRS = new Set([
|
|
|
12
12
|
"node_modules",
|
|
13
13
|
"tmp",
|
|
14
14
|
"temp",
|
|
15
|
+
".tmp",
|
|
15
16
|
".next",
|
|
16
17
|
".nuxt",
|
|
17
18
|
".idea",
|
|
18
19
|
".vscode"
|
|
19
20
|
]);
|
|
21
|
+
const LOW_SIGNAL_SEGMENTS = new Set([
|
|
22
|
+
".tmp",
|
|
23
|
+
"tmp",
|
|
24
|
+
"temp",
|
|
25
|
+
"fixtures",
|
|
26
|
+
"__fixtures__",
|
|
27
|
+
"__snapshots__",
|
|
28
|
+
"snapshots",
|
|
29
|
+
"archive",
|
|
30
|
+
"archives"
|
|
31
|
+
]);
|
|
32
|
+
function hasLowSignalSegment(relativePath) {
|
|
33
|
+
return relativePath.split("/").some((segment) => LOW_SIGNAL_SEGMENTS.has(segment));
|
|
34
|
+
}
|
|
20
35
|
async function walk(dir, visit, base = dir) {
|
|
21
36
|
let entries = [];
|
|
22
37
|
try {
|
|
@@ -40,11 +55,24 @@ async function walk(dir, visit, base = dir) {
|
|
|
40
55
|
}
|
|
41
56
|
export async function recommendBundles(root) {
|
|
42
57
|
const recommendations = new Set();
|
|
58
|
+
let sawTypeScriptSource = false;
|
|
59
|
+
let sawTypeScriptMarker = false;
|
|
60
|
+
let sawCppSource = false;
|
|
61
|
+
let sawCppHeader = false;
|
|
43
62
|
await walk(root, (relativePath) => {
|
|
63
|
+
if (hasLowSignalSegment(relativePath)) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
44
66
|
const file = relativePath;
|
|
45
67
|
const base = path.basename(file);
|
|
46
|
-
if (file.endsWith(".ts") || file.endsWith(".tsx")
|
|
68
|
+
if (file.endsWith(".ts") || file.endsWith(".tsx")) {
|
|
69
|
+
sawTypeScriptSource = true;
|
|
70
|
+
recommendations.add("lang:typescript");
|
|
71
|
+
}
|
|
72
|
+
if (base === "tsconfig.json") {
|
|
73
|
+
sawTypeScriptMarker = true;
|
|
47
74
|
recommendations.add("lang:typescript");
|
|
75
|
+
}
|
|
48
76
|
if (file.endsWith(".java"))
|
|
49
77
|
recommendations.add("lang:java");
|
|
50
78
|
if (file.endsWith(".cs") || file.endsWith(".csproj") || file.endsWith(".sln"))
|
|
@@ -61,8 +89,13 @@ export async function recommendBundles(root) {
|
|
|
61
89
|
recommendations.add("lang:kotlin");
|
|
62
90
|
if (file.endsWith(".rs"))
|
|
63
91
|
recommendations.add("lang:rust");
|
|
64
|
-
if (file.endsWith(".cpp") || file.endsWith(".cxx") || file.endsWith(".cc") || file.endsWith(".hpp") || file.endsWith(".hh")
|
|
92
|
+
if (file.endsWith(".cpp") || file.endsWith(".cxx") || file.endsWith(".cc") || file.endsWith(".hpp") || file.endsWith(".hh")) {
|
|
93
|
+
sawCppSource = true;
|
|
65
94
|
recommendations.add("lang:cpp");
|
|
95
|
+
}
|
|
96
|
+
if (file.endsWith(".h")) {
|
|
97
|
+
sawCppHeader = true;
|
|
98
|
+
}
|
|
66
99
|
if (file.endsWith(".php"))
|
|
67
100
|
recommendations.add("lang:php");
|
|
68
101
|
if (file.endsWith(".pl") || file.endsWith(".pm"))
|
|
@@ -84,6 +117,12 @@ export async function recommendBundles(root) {
|
|
|
84
117
|
recommendations.add("capability:workflow-quality");
|
|
85
118
|
}
|
|
86
119
|
});
|
|
120
|
+
if (!sawTypeScriptSource && !sawTypeScriptMarker) {
|
|
121
|
+
recommendations.delete("lang:typescript");
|
|
122
|
+
}
|
|
123
|
+
if (!sawCppSource && sawCppHeader) {
|
|
124
|
+
recommendations.delete("lang:cpp");
|
|
125
|
+
}
|
|
87
126
|
return [...recommendations].sort();
|
|
88
127
|
}
|
|
89
128
|
//# sourceMappingURL=recommend-bundles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommend-bundles.js","sourceRoot":"","sources":["../../../src/application/recommendations/recommend-bundles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,UAAU;IACV,MAAM;IACN,OAAO;IACP,QAAQ;IACR,cAAc;IACd,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;CACV,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,KAA2D,EAAE,IAAI,GAAG,GAAG;IACtG,IAAI,OAAO,GAAoC,EAAE,CAAC;IAClD,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE7E,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACtC,SAAS;QACX,CAAC;QAED,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"recommend-bundles.js","sourceRoot":"","sources":["../../../src/application/recommendations/recommend-bundles.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,13 @@ export interface AgentCommandCatalog {
|
|
|
2
2
|
generatedAt: string;
|
|
3
3
|
packageName: string;
|
|
4
4
|
packageVersion: string;
|
|
5
|
+
markdownCommands: Array<{
|
|
6
|
+
id: string;
|
|
7
|
+
trigger: string;
|
|
8
|
+
docPath: string;
|
|
9
|
+
description: string;
|
|
10
|
+
relatedCliCommandIds: string[];
|
|
11
|
+
}>;
|
|
5
12
|
executionModes: Array<{
|
|
6
13
|
id: string;
|
|
7
14
|
platform: "any" | "windows" | "posix";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../../src/application/runtime/command-catalog.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,KAAK,CAAC;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;QACtC,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,WAAW,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,oBAAoB,EAAE,KAAK,CAAC;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,KAAK,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,wBAAwB,EAAE,MAAM,EAAE,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"command-catalog.d.ts","sourceRoot":"","sources":["../../../src/application/runtime/command-catalog.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,KAAK,CAAC;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAChC,CAAC,CAAC;IACH,cAAc,EAAE,KAAK,CAAC;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;QACtC,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,WAAW,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,oBAAoB,EAAE,KAAK,CAAC;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,KAAK,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,wBAAwB,EAAE,MAAM,EAAE,CAAC;CACpC;AA6PD,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAsC/F;AAED,wBAAsB,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAClG,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAyCD"}
|
|
@@ -123,6 +123,102 @@ function buildCliCommands() {
|
|
|
123
123
|
{ id: "template-validate", command: "hforge template validate --json", description: "Validate the shipped task and workflow templates." }
|
|
124
124
|
];
|
|
125
125
|
}
|
|
126
|
+
function buildMarkdownCommands() {
|
|
127
|
+
return [
|
|
128
|
+
{
|
|
129
|
+
id: "hforge-init",
|
|
130
|
+
trigger: "/hforge-init",
|
|
131
|
+
docPath: "commands/hforge-init.md",
|
|
132
|
+
description: "Bootstrap or initialize Harness Forge in the current repository before deeper work.",
|
|
133
|
+
relatedCliCommandIds: ["init-basic", "bootstrap", "refresh"]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: "hforge-analyze",
|
|
137
|
+
trigger: "/hforge-analyze",
|
|
138
|
+
docPath: "commands/hforge-analyze.md",
|
|
139
|
+
description: "Inspect the installed runtime, repo intelligence, and next actions before coding.",
|
|
140
|
+
relatedCliCommandIds: ["status", "commands", "recommend", "review"]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
id: "hforge-review",
|
|
144
|
+
trigger: "/hforge-review",
|
|
145
|
+
docPath: "commands/hforge-review.md",
|
|
146
|
+
description: "Review runtime health, drift, stale task artifacts, and decision coverage.",
|
|
147
|
+
relatedCliCommandIds: ["review", "doctor", "audit"]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
id: "hforge-refresh",
|
|
151
|
+
trigger: "/hforge-refresh",
|
|
152
|
+
docPath: "commands/hforge-refresh.md",
|
|
153
|
+
description: "Regenerate runtime summaries and helper outputs after install or repo changes.",
|
|
154
|
+
relatedCliCommandIds: ["refresh", "status"]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
id: "hforge-decide",
|
|
158
|
+
trigger: "/hforge-decide",
|
|
159
|
+
docPath: "commands/hforge-decide.md",
|
|
160
|
+
description: "Capture an architecture-significant choice as a durable ASR or ADR.",
|
|
161
|
+
relatedCliCommandIds: ["task-inspect", "review"]
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
id: "hforge-status",
|
|
165
|
+
trigger: "/hforge-status",
|
|
166
|
+
docPath: "commands/hforge-status.md",
|
|
167
|
+
description: "Inspect current workspace state and the most relevant runtime surfaces.",
|
|
168
|
+
relatedCliCommandIds: ["status", "commands"]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: "hforge-commands",
|
|
172
|
+
trigger: "/hforge-commands",
|
|
173
|
+
docPath: "commands/hforge-commands.md",
|
|
174
|
+
description: "Inspect the shipped command catalog before inventing execution paths.",
|
|
175
|
+
relatedCliCommandIds: ["commands", "shell-status"]
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
id: "hforge-recommend",
|
|
179
|
+
trigger: "/hforge-recommend",
|
|
180
|
+
docPath: "commands/hforge-recommend.md",
|
|
181
|
+
description: "Run repo-intelligence and recommendation flows before setup or architecture work.",
|
|
182
|
+
relatedCliCommandIds: ["recommend", "cartograph", "classify-boundaries", "synthesize-instructions"]
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
id: "hforge-cartograph",
|
|
186
|
+
trigger: "/hforge-cartograph",
|
|
187
|
+
docPath: "commands/hforge-cartograph.md",
|
|
188
|
+
description: "Build and inspect repo maps, service boundaries, hotspots, and validation gaps.",
|
|
189
|
+
relatedCliCommandIds: ["cartograph", "classify-boundaries", "recommend"]
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
id: "hforge-task",
|
|
193
|
+
trigger: "/hforge-task",
|
|
194
|
+
docPath: "commands/hforge-task.md",
|
|
195
|
+
description: "Inspect task-runtime folders, packs, and linked task artifacts.",
|
|
196
|
+
relatedCliCommandIds: ["task-list", "task-inspect", "pack-inspect"]
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
id: "hforge-recursive",
|
|
200
|
+
trigger: "/hforge-recursive",
|
|
201
|
+
docPath: "commands/hforge-recursive.md",
|
|
202
|
+
description: "Escalate difficult work into recursive structured-analysis with durable session and run artifacts.",
|
|
203
|
+
relatedCliCommandIds: [
|
|
204
|
+
"recursive-plan",
|
|
205
|
+
"recursive-capabilities",
|
|
206
|
+
"recursive-run-file",
|
|
207
|
+
"recursive-run-stdin",
|
|
208
|
+
"recursive-runs",
|
|
209
|
+
"recursive-inspect-run",
|
|
210
|
+
"recursive-inspect"
|
|
211
|
+
]
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
id: "hforge-update",
|
|
215
|
+
trigger: "/hforge-update",
|
|
216
|
+
docPath: "commands/hforge-update.md",
|
|
217
|
+
description: "Preview or apply a non-destructive Harness Forge package refresh.",
|
|
218
|
+
relatedCliCommandIds: ["update", "upgrade", "review", "export"]
|
|
219
|
+
}
|
|
220
|
+
];
|
|
221
|
+
}
|
|
126
222
|
function buildAgentSafeCliCommands(commands) {
|
|
127
223
|
const executionModes = buildExecutionModes();
|
|
128
224
|
return commands.map((entry) => {
|
|
@@ -140,11 +236,13 @@ function buildAgentSafeCliCommands(commands) {
|
|
|
140
236
|
export async function loadAgentCommandCatalog(packageRoot) {
|
|
141
237
|
const packageJson = await readJsonFile(path.join(packageRoot, "package.json"));
|
|
142
238
|
const cliCommands = buildCliCommands();
|
|
239
|
+
const markdownCommands = buildMarkdownCommands();
|
|
143
240
|
const executionModes = buildExecutionModes();
|
|
144
241
|
return {
|
|
145
242
|
generatedAt: new Date().toISOString(),
|
|
146
243
|
packageName: packageJson.name,
|
|
147
244
|
packageVersion: packageJson.version,
|
|
245
|
+
markdownCommands,
|
|
148
246
|
executionModes,
|
|
149
247
|
preferredExecutionOrder: ["workspace-launcher-windows", "workspace-launcher-powershell", "workspace-launcher-posix", "bare-hforge", "npx-package"],
|
|
150
248
|
cliCommands,
|
|
@@ -185,6 +283,9 @@ export async function writeAgentCommandCatalog(workspaceRoot, packageRoot) {
|
|
|
185
283
|
return `- \`${mode.commandPrefix}\` - ${mode.whenToUse}`;
|
|
186
284
|
}),
|
|
187
285
|
"",
|
|
286
|
+
"## Markdown command entrypoints",
|
|
287
|
+
...catalog.markdownCommands.map((entry) => `- \`${entry.trigger}\` -> \`${entry.docPath}\` - ${entry.description}`),
|
|
288
|
+
"",
|
|
188
289
|
"## CLI commands",
|
|
189
290
|
...catalog.cliCommands.map((entry) => `- \`${entry.command}\` - ${entry.description}`),
|
|
190
291
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-catalog.js","sourceRoot":"","sources":["../../../src/application/runtime/command-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-catalog.js","sourceRoot":"","sources":["../../../src/application/runtime/command-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC9D"}
|
|
@@ -17,8 +17,12 @@ export function registerCommandsCatalog(program) {
|
|
|
17
17
|
const lines = [
|
|
18
18
|
`Package: ${catalog.packageName}@${catalog.packageVersion}`,
|
|
19
19
|
"",
|
|
20
|
-
"
|
|
20
|
+
"Markdown commands:"
|
|
21
21
|
];
|
|
22
|
+
for (const entry of catalog.markdownCommands) {
|
|
23
|
+
lines.push(`- ${entry.trigger}: ${entry.description} (${entry.docPath})`);
|
|
24
|
+
}
|
|
25
|
+
lines.push("", "CLI commands:");
|
|
22
26
|
for (const entry of catalog.cliCommands) {
|
|
23
27
|
lines.push(`- ${entry.command}: ${entry.description}`);
|
|
24
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AAEtE,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,YAAY,CAAC;SAC7D,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAE3D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,YAAY,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE;YAC3D,EAAE;YACF,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AAEtE,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,YAAY,CAAC;SAC7D,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAE3D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,YAAY,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE;YAC3D,EAAE;YACF,oBAAoB;SACrB,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAC5E,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -12,7 +12,7 @@ const generatedArtifactSchema = z.object({
|
|
|
12
12
|
source: z.string().min(1)
|
|
13
13
|
});
|
|
14
14
|
const languageSignalSchema = evidenceSignalSchema.extend({
|
|
15
|
-
count: z.number().
|
|
15
|
+
count: z.number().nonnegative()
|
|
16
16
|
});
|
|
17
17
|
const recommendationSchema = z.object({
|
|
18
18
|
id: z.string().min(1),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-intelligence.js","sourceRoot":"","sources":["../../../src/domain/intelligence/repo-intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"repo-intelligence.js","sourceRoot":"","sources":["../../../src/domain/intelligence/repo-intelligence.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,10 +23,18 @@ reliably through the workspace-local launcher.
|
|
|
23
23
|
## Slash-style command trigger
|
|
24
24
|
|
|
25
25
|
In runtimes that support markdown command entrypoints, Harness Forge can also
|
|
26
|
-
be promoted through `/hforge-analyze
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
be promoted through `/hforge-init`, `/hforge-analyze`, `/hforge-review`,
|
|
27
|
+
`/hforge-refresh`, `/hforge-decide`, `/hforge-status`, `/hforge-commands`,
|
|
28
|
+
`/hforge-recommend`, `/hforge-cartograph`, `/hforge-task`,
|
|
29
|
+
`/hforge-recursive`, and `/hforge-update`.
|
|
30
|
+
|
|
31
|
+
Those commands are backed by `commands/hforge-init.md`,
|
|
32
|
+
`commands/hforge-analyze.md`, `commands/hforge-review.md`,
|
|
33
|
+
`commands/hforge-refresh.md`, `commands/hforge-decide.md`,
|
|
34
|
+
`commands/hforge-status.md`, `commands/hforge-commands.md`,
|
|
35
|
+
`commands/hforge-recommend.md`, `commands/hforge-cartograph.md`,
|
|
36
|
+
`commands/hforge-task.md`, `commands/hforge-recursive.md`, and
|
|
37
|
+
`commands/hforge-update.md`, and are intended to make the agent:
|
|
30
38
|
|
|
31
39
|
- inspect the installed Harness Forge runtime first
|
|
32
40
|
- choose a safe command execution path
|
|
@@ -42,6 +50,8 @@ following:
|
|
|
42
50
|
- uses `status`, `commands`, `recommend`, `review`, `task`, or `recursive` instead of inventing unsupported commands
|
|
43
51
|
- reads `.hforge/runtime/repo/repo-map.json` or `.hforge/runtime/repo/recommendations.json` before making support claims
|
|
44
52
|
- writes durable artifacts only when the workflow actually calls for them
|
|
53
|
+
- compacts context by reusing runtime summaries, task artifacts, and decision
|
|
54
|
+
records instead of rereading wide repo surfaces
|
|
45
55
|
|
|
46
56
|
## Important limitation
|
|
47
57
|
|
|
@@ -84,6 +94,15 @@ hforge recursive plan "investigate the issue" --task-id TASK-001 --root . --json
|
|
|
84
94
|
hforge recursive capabilities --root . --json
|
|
85
95
|
```
|
|
86
96
|
|
|
97
|
+
If the task is large or the prompt is getting expensive:
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
Load .agents/skills/token-budget-optimizer/SKILL.md and use the installed
|
|
101
|
+
token-budget-optimizer skill before broad repo scanning. Reuse existing
|
|
102
|
+
runtime summaries, task artifacts, and decision records first, then tell me
|
|
103
|
+
which surfaces you will keep loaded and which ones you can compact away.
|
|
104
|
+
```
|
|
105
|
+
|
|
87
106
|
## Prompt patterns
|
|
88
107
|
|
|
89
108
|
### 1. Prove that the agent is using Harness Forge
|
|
@@ -157,6 +176,17 @@ output, before claiming that Claude Code, Codex, Cursor, or OpenCode supports a
|
|
|
157
176
|
behavior.
|
|
158
177
|
```
|
|
159
178
|
|
|
179
|
+
### 8. Force context compaction and reuse
|
|
180
|
+
|
|
181
|
+
Use this when the task is long-running or the agent is repeating repo scans:
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
Use the installed Harness Forge token-budget-optimizer skill before you expand
|
|
185
|
+
context further. Reuse existing runtime summaries, task artifacts, and decision
|
|
186
|
+
records first. Tell me what you will keep loaded, what you will compact, and
|
|
187
|
+
what new evidence still requires a focused read.
|
|
188
|
+
```
|
|
189
|
+
|
|
160
190
|
## Claude-specific examples
|
|
161
191
|
|
|
162
192
|
```text
|
package/docs/agents.md
CHANGED
|
@@ -20,6 +20,7 @@ AI content into the hidden `.hforge/` layer.
|
|
|
20
20
|
- `docs/agent-usage-playbook.md` for copy-ready prompts and examples that make
|
|
21
21
|
agents use the installed Harness Forge runtime more explicitly
|
|
22
22
|
- `docs/authoring/enhanced-skill-import.md` for curated research and validation provenance behind imported skill upgrades
|
|
23
|
+
- `docs/authoring/token-budget-optimizer-port.md` for maintainer-facing provenance behind the promoted context-compaction skill
|
|
23
24
|
- `RESEARCH-SOURCES.md` and `VALIDATION.md` for optional pack-level provenance detail
|
|
24
25
|
|
|
25
26
|
## When agents should use Harness Forge
|
|
@@ -36,6 +37,8 @@ AI content into the hidden `.hforge/` layer.
|
|
|
36
37
|
an explicit recursive session instead of growing the prompt
|
|
37
38
|
- when a recursive session needs one bounded structured analysis step with a
|
|
38
39
|
durable run record instead of chat-only reasoning
|
|
40
|
+
- when prompt history is growing and the next safe answer may already exist in
|
|
41
|
+
`.hforge/runtime/`, task artifacts, or decision records
|
|
39
42
|
|
|
40
43
|
## Discovery rule
|
|
41
44
|
|
|
@@ -58,3 +61,5 @@ AI content into the hidden `.hforge/` layer.
|
|
|
58
61
|
`.hforge/agent-manifest.json` first and treat every surface it marks
|
|
59
62
|
`treatAsProductCode: false` as AI-layer content rather than application code
|
|
60
63
|
- use `docs/authoring/enhanced-skill-import.md`, `RESEARCH-SOURCES.md`, and `VALIDATION.md` only when provenance or import rationale matters
|
|
64
|
+
- use `.agents/skills/token-budget-optimizer/SKILL.md` when the next safe step
|
|
65
|
+
depends on compacting context and reusing authoritative runtime surfaces
|