@ironbee-ai/cli 0.3.0 → 0.4.1
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/CHANGELOG.md +19 -8
- package/README.md +163 -3
- package/dist/analysis/code-changes.d.ts +22 -0
- package/dist/analysis/code-changes.d.ts.map +1 -0
- package/dist/analysis/code-changes.js +141 -0
- package/dist/analysis/code-changes.js.map +1 -0
- package/dist/analysis/cross-session.d.ts +34 -0
- package/dist/analysis/cross-session.d.ts.map +1 -0
- package/dist/analysis/cross-session.js +230 -0
- package/dist/analysis/cross-session.js.map +1 -0
- package/dist/analysis/fix-effectiveness.d.ts +16 -0
- package/dist/analysis/fix-effectiveness.d.ts.map +1 -0
- package/dist/analysis/fix-effectiveness.js +99 -0
- package/dist/analysis/fix-effectiveness.js.map +1 -0
- package/dist/analysis/scoring.d.ts +15 -0
- package/dist/analysis/scoring.d.ts.map +1 -0
- package/dist/analysis/scoring.js +57 -0
- package/dist/analysis/scoring.js.map +1 -0
- package/dist/analysis/time-analysis.d.ts +22 -0
- package/dist/analysis/time-analysis.d.ts.map +1 -0
- package/dist/analysis/time-analysis.js +174 -0
- package/dist/analysis/time-analysis.js.map +1 -0
- package/dist/analysis/verdict-details.d.ts +23 -0
- package/dist/analysis/verdict-details.d.ts.map +1 -0
- package/dist/analysis/verdict-details.js +59 -0
- package/dist/analysis/verdict-details.js.map +1 -0
- package/dist/analysis/verification-quality.d.ts +19 -0
- package/dist/analysis/verification-quality.d.ts.map +1 -0
- package/dist/analysis/verification-quality.js +182 -0
- package/dist/analysis/verification-quality.js.map +1 -0
- package/dist/clients/base.d.ts +2 -0
- package/dist/clients/base.d.ts.map +1 -1
- package/dist/clients/claude/commands/ironbee-analyze.md +42 -0
- package/dist/clients/claude/commands/ironbee-verify.md +127 -0
- package/dist/clients/claude/hooks/clear-verdict.js +1 -1
- package/dist/clients/claude/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/claude/hooks/require-verification.d.ts +15 -0
- package/dist/clients/claude/hooks/require-verification.d.ts.map +1 -0
- package/dist/clients/claude/hooks/require-verification.js +63 -0
- package/dist/clients/claude/hooks/require-verification.js.map +1 -0
- package/dist/clients/claude/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-start.js +7 -0
- package/dist/clients/claude/hooks/session-start.js.map +1 -1
- package/dist/clients/claude/hooks/track-action.d.ts +1 -1
- package/dist/clients/claude/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/claude/hooks/track-action.js +58 -13
- package/dist/clients/claude/hooks/track-action.js.map +1 -1
- package/dist/clients/claude/hooks/verify-gate.js +1 -1
- package/dist/clients/claude/hooks/verify-gate.js.map +1 -1
- package/dist/clients/claude/index.d.ts +2 -0
- package/dist/clients/claude/index.d.ts.map +1 -1
- package/dist/clients/claude/index.js +51 -19
- package/dist/clients/claude/index.js.map +1 -1
- package/dist/clients/claude/rule.md +10 -7
- package/dist/clients/claude/skill.md +13 -8
- package/dist/clients/claude/skills/ironbee-analyze.md +39 -0
- package/dist/clients/cursor/commands/ironbee-analyze/SKILL.md +48 -0
- package/dist/clients/cursor/commands/ironbee-verify/SKILL.md +133 -0
- package/dist/clients/cursor/hooks/clear-verdict.js +1 -1
- package/dist/clients/cursor/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/cursor/hooks/require-verification.d.ts +15 -0
- package/dist/clients/cursor/hooks/require-verification.d.ts.map +1 -0
- package/dist/clients/cursor/hooks/require-verification.js +65 -0
- package/dist/clients/cursor/hooks/require-verification.js.map +1 -0
- package/dist/clients/cursor/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/session-start.js +3 -0
- package/dist/clients/cursor/hooks/session-start.js.map +1 -1
- package/dist/clients/cursor/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/track-action.js +62 -12
- package/dist/clients/cursor/hooks/track-action.js.map +1 -1
- package/dist/clients/cursor/hooks/verify-gate.js +1 -1
- package/dist/clients/cursor/hooks/verify-gate.js.map +1 -1
- package/dist/clients/cursor/index.d.ts +2 -0
- package/dist/clients/cursor/index.d.ts.map +1 -1
- package/dist/clients/cursor/index.js +41 -16
- package/dist/clients/cursor/index.js.map +1 -1
- package/dist/clients/cursor/rule.md +10 -7
- package/dist/clients/cursor/skill.md +13 -8
- package/dist/commands/analyze.d.ts +3 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +298 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/hook.d.ts.map +1 -1
- package/dist/commands/hook.js +79 -0
- package/dist/commands/hook.js.map +1 -1
- package/dist/hooks/core/actions.d.ts +19 -0
- package/dist/hooks/core/actions.d.ts.map +1 -1
- package/dist/hooks/core/actions.js +5 -0
- package/dist/hooks/core/actions.js.map +1 -1
- package/dist/hooks/core/clear-verdict.d.ts +1 -1
- package/dist/hooks/core/clear-verdict.d.ts.map +1 -1
- package/dist/hooks/core/clear-verdict.js +13 -9
- package/dist/hooks/core/clear-verdict.js.map +1 -1
- package/dist/hooks/core/session-state.d.ts +47 -0
- package/dist/hooks/core/session-state.d.ts.map +1 -0
- package/dist/hooks/core/session-state.js +192 -0
- package/dist/hooks/core/session-state.js.map +1 -0
- package/dist/hooks/core/submit-verdict.d.ts +1 -0
- package/dist/hooks/core/submit-verdict.d.ts.map +1 -1
- package/dist/hooks/core/submit-verdict.js +35 -27
- package/dist/hooks/core/submit-verdict.js.map +1 -1
- package/dist/hooks/core/verification-lifecycle.d.ts +30 -0
- package/dist/hooks/core/verification-lifecycle.d.ts.map +1 -0
- package/dist/hooks/core/verification-lifecycle.js +75 -0
- package/dist/hooks/core/verification-lifecycle.js.map +1 -0
- package/dist/hooks/core/verify-gate.d.ts +1 -1
- package/dist/hooks/core/verify-gate.d.ts.map +1 -1
- package/dist/hooks/core/verify-gate.js +13 -20
- package/dist/hooks/core/verify-gate.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +18 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +59 -0
- package/dist/lib/config.js.map +1 -1
- package/package.json +4 -3
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.run = run;
|
|
12
12
|
const actions_1 = require("../../../hooks/core/actions");
|
|
13
|
+
const session_state_1 = require("../../../hooks/core/session-state");
|
|
13
14
|
const logger_1 = require("../../../lib/logger");
|
|
14
15
|
const stdin_1 = require("../../../lib/stdin");
|
|
15
16
|
const telemetry_1 = require("../../../lib/telemetry");
|
|
@@ -31,7 +32,13 @@ async function run(projectDir) {
|
|
|
31
32
|
session_id: sessionId,
|
|
32
33
|
source: input.source,
|
|
33
34
|
};
|
|
35
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
34
36
|
(0, actions_1.appendAction)(actionsFile, entry);
|
|
37
|
+
// reconcile state on startup/resume/clear — but NOT on compact
|
|
38
|
+
// (compact just compresses context, session continues mid-flow)
|
|
39
|
+
if (input.source !== "compact") {
|
|
40
|
+
(0, session_state_1.reconcileSessionState)(sessionDir, actionsFile, actions_1.appendAction);
|
|
41
|
+
}
|
|
35
42
|
await (0, telemetry_1.trackSessionStart)("claude", sessionId);
|
|
36
43
|
logger_1.logger.debug(`session-start: ${sessionId} (${input.source ?? "unknown"})`);
|
|
37
44
|
const verdictPass = JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAaH,kBA0EC;AArFD,yDAA+E;AAC/E,qEAA0E;AAC1E,gDAAyD;AACzD,8CAA+C;AAC/C,sDAA2D;AAOpD,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAA8B,CAAC;IACnC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAA4B,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACxD,MAAM,WAAW,GAAW,GAAG,UAAU,sBAAsB,SAAS,gBAAgB,CAAC;IACzF,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAuB;QAC9B,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,KAAK,CAAC,MAAM;KACvB,CAAC;IAEF,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,IAAA,sBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEjC,+DAA+D;IAC/D,gEAAgE;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAA,qCAAqB,EAAC,UAAU,EAAE,WAAW,EAAE,sBAAY,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,IAAA,6BAAiB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,eAAM,CAAC,KAAK,CAAC,kBAAkB,SAAS,KAAK,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;IAE3E,MAAM,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC;QACvC,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,CAAC,qCAAqC,CAAC;QACrD,MAAM,EAAE,CAAC,2BAA2B,EAAE,0BAA0B,CAAC;QACjE,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,MAAM,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC;QACvC,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,CAAC,qCAAqC,CAAC;QACrD,MAAM,EAAE,CAAC,cAAc,EAAE,4BAA4B,CAAC;QACtD,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,iCAAiC,EAAE,sBAAsB,CAAC;KACtE,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;;;;cAIX,SAAS;;;;;;;;UAQb,WAAW;;;UAGX,WAAW;;;;;;CAMpB,CAAC,CAAC;IAEC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Appends tool_call entries to actions.jsonl for the session.
|
|
6
6
|
*
|
|
7
7
|
* Handles both direct tool calls and nested callTool() invocations
|
|
8
|
-
* inside the execute tool (mcp__browser-
|
|
8
|
+
* inside the execute tool (mcp__browser-devtools__bdt_execute).
|
|
9
9
|
*/
|
|
10
10
|
export declare function run(projectDir: string): void;
|
|
11
11
|
//# sourceMappingURL=track-action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-action.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"track-action.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqFH,wBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CA2C5C"}
|
|
@@ -6,30 +6,74 @@
|
|
|
6
6
|
* Appends tool_call entries to actions.jsonl for the session.
|
|
7
7
|
*
|
|
8
8
|
* Handles both direct tool calls and nested callTool() invocations
|
|
9
|
-
* inside the execute tool (mcp__browser-
|
|
9
|
+
* inside the execute tool (mcp__browser-devtools__bdt_execute).
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.run = run;
|
|
13
13
|
const actions_1 = require("../../../hooks/core/actions");
|
|
14
14
|
const logger_1 = require("../../../lib/logger");
|
|
15
15
|
const stdin_1 = require("../../../lib/stdin");
|
|
16
|
-
const
|
|
16
|
+
const CALL_TOOL_NAME_PATTERN = /callTool\(\s*['"]([^'"]+)['"]/g;
|
|
17
17
|
const MCP_PREFIX = "mcp__browser-devtools__";
|
|
18
|
-
const
|
|
18
|
+
const TOOL_NAME_PREFIX = "bdt_";
|
|
19
|
+
const EXECUTE_TOOL = `${MCP_PREFIX}${TOOL_NAME_PREFIX}execute`;
|
|
19
20
|
function toFullName(shortName) {
|
|
20
21
|
return shortName.startsWith(MCP_PREFIX) ? shortName : `${MCP_PREFIX}${shortName}`;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
/** Extract balanced braces starting at position after opening brace. */
|
|
24
|
+
function extractBalancedBraces(str, startIndex) {
|
|
25
|
+
if (str[startIndex] !== "{") {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
let depth = 0;
|
|
29
|
+
for (let i = startIndex; i < str.length; i++) {
|
|
30
|
+
if (str[i] === "{") {
|
|
31
|
+
depth++;
|
|
32
|
+
}
|
|
33
|
+
else if (str[i] === "}") {
|
|
34
|
+
depth--;
|
|
35
|
+
if (depth === 0) {
|
|
36
|
+
return str.slice(startIndex, i + 1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
function extractNestedToolCalls(toolInput) {
|
|
23
43
|
const inputStr = typeof toolInput === "string"
|
|
24
44
|
? toolInput
|
|
25
45
|
: JSON.stringify(toolInput ?? "");
|
|
26
|
-
const
|
|
27
|
-
|
|
46
|
+
const results = [];
|
|
47
|
+
const seen = new Set();
|
|
48
|
+
let match = CALL_TOOL_NAME_PATTERN.exec(inputStr);
|
|
28
49
|
while (match !== null) {
|
|
29
|
-
|
|
30
|
-
|
|
50
|
+
const toolName = toFullName(match[1]);
|
|
51
|
+
if (!seen.has(toolName)) {
|
|
52
|
+
seen.add(toolName);
|
|
53
|
+
// try to extract args: look for comma + { after the tool name
|
|
54
|
+
let args = undefined;
|
|
55
|
+
const afterName = match.index + match[0].length;
|
|
56
|
+
const rest = inputStr.slice(afterName).trimStart();
|
|
57
|
+
if (rest.startsWith(",")) {
|
|
58
|
+
const afterComma = rest.slice(1).trimStart();
|
|
59
|
+
if (afterComma.startsWith("{")) {
|
|
60
|
+
const braceStr = extractBalancedBraces(afterComma, 0);
|
|
61
|
+
if (braceStr) {
|
|
62
|
+
try {
|
|
63
|
+
args = JSON.parse(braceStr);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// JS object literal, not valid JSON — store as string
|
|
67
|
+
args = braceStr;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
results.push({ name: toolName, args });
|
|
73
|
+
}
|
|
74
|
+
match = CALL_TOOL_NAME_PATTERN.exec(inputStr);
|
|
31
75
|
}
|
|
32
|
-
return
|
|
76
|
+
return results;
|
|
33
77
|
}
|
|
34
78
|
function run(projectDir) {
|
|
35
79
|
let input;
|
|
@@ -57,15 +101,16 @@ function run(projectDir) {
|
|
|
57
101
|
logger_1.logger.debug(`track-action: ${toolName}`);
|
|
58
102
|
// for execute tool, extract and record nested callTool() invocations
|
|
59
103
|
if (toolName === EXECUTE_TOOL) {
|
|
60
|
-
const nested =
|
|
61
|
-
for (const
|
|
104
|
+
const nested = extractNestedToolCalls(input.tool_input);
|
|
105
|
+
for (const call of nested) {
|
|
62
106
|
const nestedEntry = {
|
|
63
107
|
type: "tool_call",
|
|
64
108
|
timestamp,
|
|
65
|
-
tool_name: name,
|
|
109
|
+
tool_name: call.name,
|
|
110
|
+
tool_input: call.args,
|
|
66
111
|
};
|
|
67
112
|
(0, actions_1.appendAction)(actionsFile, nestedEntry);
|
|
68
|
-
logger_1.logger.debug(`track-action (nested): ${name}`);
|
|
113
|
+
logger_1.logger.debug(`track-action (nested): ${call.name}`);
|
|
69
114
|
}
|
|
70
115
|
}
|
|
71
116
|
process.exit(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-action.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"track-action.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,9 +28,9 @@ async function run(projectDir) {
|
|
|
28
28
|
const config = (0, config_1.loadConfig)(projectDir);
|
|
29
29
|
const result = await (0, verify_gate_1.runVerifyGate)({
|
|
30
30
|
sessionId,
|
|
31
|
+
sessionDir: `${projectDir}/.ironbee/sessions/${sessionId}`,
|
|
31
32
|
actionsFile: `${projectDir}/.ironbee/sessions/${sessionId}/actions.jsonl`,
|
|
32
33
|
verdictFile: `${projectDir}/.ironbee/sessions/${sessionId}/verdict.json`,
|
|
33
|
-
retryFile: `${projectDir}/.ironbee/sessions/${sessionId}/retries`,
|
|
34
34
|
maxRetries: (0, config_1.getMaxRetries)(config),
|
|
35
35
|
});
|
|
36
36
|
if (result.action === "allow") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-gate.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/verify-gate.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAWH,kBAkCC;AA3CD,iEAAkF;AAClF,gDAA+E;AAC/E,gDAAyD;AACzD,8CAA+C;AAMxC,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAA0B,CAAC;IAC/B,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAAwB,CAAC;IAC3D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACxD,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAkB,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;IAErD,MAAM,MAAM,GAAqB,MAAM,IAAA,2BAAa,EAAC;QACjD,SAAS;QACT,
|
|
1
|
+
{"version":3,"file":"verify-gate.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/verify-gate.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAWH,kBAkCC;AA3CD,iEAAkF;AAClF,gDAA+E;AAC/E,gDAAyD;AACzD,8CAA+C;AAMxC,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAA0B,CAAC;IAC/B,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAAwB,CAAC;IAC3D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACxD,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAkB,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;IAErD,MAAM,MAAM,GAAqB,MAAM,IAAA,2BAAa,EAAC;QACjD,SAAS;QACT,UAAU,EAAE,GAAG,UAAU,sBAAsB,SAAS,EAAE;QAC1D,WAAW,EAAE,GAAG,UAAU,sBAAsB,SAAS,gBAAgB;QACzE,WAAW,EAAE,GAAG,UAAU,sBAAsB,SAAS,eAAe;QACxE,UAAU,EAAE,IAAA,sBAAa,EAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,+CAA+C;IAC/C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -5,11 +5,13 @@ export declare class ClaudeClient implements IClient {
|
|
|
5
5
|
resolveProjectDir(): string;
|
|
6
6
|
install(projectDir: string): void;
|
|
7
7
|
uninstall(projectDir: string): void;
|
|
8
|
+
private cleanupArtifacts;
|
|
8
9
|
runVerifyGate(projectDir: string): void;
|
|
9
10
|
runClearVerdict(projectDir: string): void;
|
|
10
11
|
runTrackAction(projectDir: string): void;
|
|
11
12
|
runSessionStart(projectDir: string): void;
|
|
12
13
|
runRequireVerdict(projectDir: string): void;
|
|
14
|
+
runRequireVerification(projectDir: string): void;
|
|
13
15
|
private isIronBeeHook;
|
|
14
16
|
private mergeHooksConfig;
|
|
15
17
|
private removeIronBeeHooks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/claude/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/claude/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AA6ClC,qBAAa,YAAa,YAAW,OAAO;IACxC,SAAgB,IAAI,EAAE,MAAM,CAAY;IAEjC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAInC,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA+CjC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK1C,OAAO,CAAC,gBAAgB;IAyBjB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIzC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIxC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIzC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvD,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAsGxB,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,gBAAgB;CAgC3B;AAuBD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAG1D"}
|
|
@@ -11,8 +11,9 @@ const clear_verdict_1 = require("./hooks/clear-verdict");
|
|
|
11
11
|
const track_action_1 = require("./hooks/track-action");
|
|
12
12
|
const session_start_1 = require("./hooks/session-start");
|
|
13
13
|
const require_verdict_1 = require("./hooks/require-verdict");
|
|
14
|
+
const require_verification_1 = require("./hooks/require-verification");
|
|
15
|
+
const config_1 = require("../../lib/config");
|
|
14
16
|
const MCP_SERVER_NAME = "browser-devtools";
|
|
15
|
-
const MCP_SERVER_PACKAGE = "browser-devtools-mcp";
|
|
16
17
|
const IRONBEE_HOOK_MARKER = "ironbee";
|
|
17
18
|
class ClaudeClient {
|
|
18
19
|
constructor() {
|
|
@@ -25,34 +26,58 @@ class ClaudeClient {
|
|
|
25
26
|
return process.env.CLAUDE_PROJECT_DIR ?? process.cwd();
|
|
26
27
|
}
|
|
27
28
|
install(projectDir) {
|
|
29
|
+
// Clean up old artifacts first (safe for re-install / upgrade)
|
|
30
|
+
this.cleanupArtifacts(projectDir);
|
|
28
31
|
const claudeDir = (0, path_1.join)(projectDir, ".claude");
|
|
29
32
|
const skillsDir = (0, path_1.join)(claudeDir, "skills");
|
|
30
33
|
const rulesDir = (0, path_1.join)(claudeDir, "rules");
|
|
34
|
+
const commandsDir = (0, path_1.join)(claudeDir, "commands");
|
|
31
35
|
(0, fs_1.mkdirSync)(skillsDir, { recursive: true });
|
|
32
36
|
(0, fs_1.mkdirSync)(rulesDir, { recursive: true });
|
|
37
|
+
(0, fs_1.mkdirSync)(commandsDir, { recursive: true });
|
|
33
38
|
const settingsPath = (0, path_1.join)(claudeDir, "settings.json");
|
|
34
39
|
this.mergeHooksConfig(settingsPath);
|
|
35
40
|
this.writePermissions(settingsPath);
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
(0, fs_1.writeFileSync)(
|
|
41
|
+
const verifySkillPath = (0, path_1.join)(skillsDir, "ironbee-verification.md");
|
|
42
|
+
const verifySkillContent = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "skill.md"), "utf-8");
|
|
43
|
+
(0, fs_1.writeFileSync)(verifySkillPath, verifySkillContent);
|
|
44
|
+
const analyzeSkillPath = (0, path_1.join)(skillsDir, "ironbee-analyze.md");
|
|
45
|
+
const analyzeSkillContent = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "skills", "ironbee-analyze.md"), "utf-8");
|
|
46
|
+
(0, fs_1.writeFileSync)(analyzeSkillPath, analyzeSkillContent);
|
|
39
47
|
const rulePath = (0, path_1.join)(rulesDir, "ironbee-verification.md");
|
|
40
48
|
const ruleContent = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "rule.md"), "utf-8");
|
|
41
49
|
(0, fs_1.writeFileSync)(rulePath, ruleContent);
|
|
50
|
+
const analyzeCommandPath = (0, path_1.join)(commandsDir, "ironbee-analyze.md");
|
|
51
|
+
const analyzeCommandContent = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "commands", "ironbee-analyze.md"), "utf-8");
|
|
52
|
+
(0, fs_1.writeFileSync)(analyzeCommandPath, analyzeCommandContent);
|
|
53
|
+
const verifyCommandPath = (0, path_1.join)(commandsDir, "ironbee-verify.md");
|
|
54
|
+
const verifyCommandContent = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "commands", "ironbee-verify.md"), "utf-8");
|
|
55
|
+
(0, fs_1.writeFileSync)(verifyCommandPath, verifyCommandContent);
|
|
42
56
|
const mcpPath = (0, path_1.join)(projectDir, ".mcp.json");
|
|
43
|
-
this.writeMcpConfig(mcpPath);
|
|
57
|
+
this.writeMcpConfig(mcpPath, projectDir);
|
|
44
58
|
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} settings ${output_1.pc.dim("→")} ${output_1.pc.dim(settingsPath)}`);
|
|
45
|
-
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")}
|
|
59
|
+
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} skills ${output_1.pc.dim("→")} ${output_1.pc.dim(skillsDir)}`);
|
|
46
60
|
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} rule ${output_1.pc.dim("→")} ${output_1.pc.dim(rulePath)}`);
|
|
61
|
+
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} commands ${output_1.pc.dim("→")} ${output_1.pc.dim(commandsDir)}`);
|
|
47
62
|
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} mcp ${output_1.pc.dim("→")} ${output_1.pc.dim(mcpPath)}`);
|
|
48
63
|
}
|
|
49
64
|
uninstall(projectDir) {
|
|
65
|
+
this.cleanupArtifacts(projectDir);
|
|
66
|
+
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} removed hooks, skill, rule, command, MCP, and permissions`);
|
|
67
|
+
}
|
|
68
|
+
cleanupArtifacts(projectDir) {
|
|
50
69
|
const claudeDir = (0, path_1.join)(projectDir, ".claude");
|
|
51
|
-
// remove skill and
|
|
52
|
-
const
|
|
70
|
+
// remove skill, rule, and command files
|
|
71
|
+
const verifySkillPath = (0, path_1.join)(claudeDir, "skills", "ironbee-verification.md");
|
|
72
|
+
const analyzeSkillPath = (0, path_1.join)(claudeDir, "skills", "ironbee-analyze.md");
|
|
53
73
|
const rulePath = (0, path_1.join)(claudeDir, "rules", "ironbee-verification.md");
|
|
54
|
-
|
|
74
|
+
const analyzeCommandPath = (0, path_1.join)(claudeDir, "commands", "ironbee-analyze.md");
|
|
75
|
+
const verifyCommandPath = (0, path_1.join)(claudeDir, "commands", "ironbee-verify.md");
|
|
76
|
+
this.removeFile(verifySkillPath);
|
|
77
|
+
this.removeFile(analyzeSkillPath);
|
|
55
78
|
this.removeFile(rulePath);
|
|
79
|
+
this.removeFile(analyzeCommandPath);
|
|
80
|
+
this.removeFile(verifyCommandPath);
|
|
56
81
|
// remove ironbee hooks and permission from settings.json
|
|
57
82
|
const settingsPath = (0, path_1.join)(claudeDir, "settings.json");
|
|
58
83
|
this.removeIronBeeHooks(settingsPath);
|
|
@@ -60,7 +85,6 @@ class ClaudeClient {
|
|
|
60
85
|
// remove browser-devtools from .mcp.json
|
|
61
86
|
const mcpPath = (0, path_1.join)(projectDir, ".mcp.json");
|
|
62
87
|
this.removeMcpServer(mcpPath);
|
|
63
|
-
console.log(` ${output_1.pc.dim("→")} ${(0, output_1.orange)("[claude]")} removed hooks, skill, rule, MCP, and permissions`);
|
|
64
88
|
}
|
|
65
89
|
runVerifyGate(projectDir) {
|
|
66
90
|
(0, verify_gate_1.run)(projectDir);
|
|
@@ -77,6 +101,9 @@ class ClaudeClient {
|
|
|
77
101
|
runRequireVerdict(projectDir) {
|
|
78
102
|
(0, require_verdict_1.run)(projectDir);
|
|
79
103
|
}
|
|
104
|
+
runRequireVerification(projectDir) {
|
|
105
|
+
(0, require_verification_1.run)(projectDir);
|
|
106
|
+
}
|
|
80
107
|
isIronBeeHook(entry) {
|
|
81
108
|
return entry.hooks.some((h) => h.command.includes(IRONBEE_HOOK_MARKER));
|
|
82
109
|
}
|
|
@@ -111,10 +138,20 @@ class ClaudeClient {
|
|
|
111
138
|
},
|
|
112
139
|
],
|
|
113
140
|
});
|
|
114
|
-
// ── PreToolUse — block
|
|
141
|
+
// ── PreToolUse — block browser tools if no active verification ──
|
|
115
142
|
if (!settings.hooks.PreToolUse) {
|
|
116
143
|
settings.hooks.PreToolUse = [];
|
|
117
144
|
}
|
|
145
|
+
settings.hooks.PreToolUse.push({
|
|
146
|
+
matcher: "mcp__browser-devtools__.*",
|
|
147
|
+
hooks: [
|
|
148
|
+
{
|
|
149
|
+
type: "command",
|
|
150
|
+
command: `ironbee hook require-verification --client claude`,
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
});
|
|
154
|
+
// ── PreToolUse — block edits if browser tools used without verdict ──
|
|
118
155
|
settings.hooks.PreToolUse.push({
|
|
119
156
|
matcher: "Write|Edit|MultiEdit",
|
|
120
157
|
hooks: [
|
|
@@ -216,7 +253,7 @@ class ClaudeClient {
|
|
|
216
253
|
(0, fs_1.unlinkSync)(filePath);
|
|
217
254
|
}
|
|
218
255
|
}
|
|
219
|
-
writeMcpConfig(mcpPath) {
|
|
256
|
+
writeMcpConfig(mcpPath, projectDir) {
|
|
220
257
|
let config = { mcpServers: {} };
|
|
221
258
|
if ((0, fs_1.existsSync)(mcpPath)) {
|
|
222
259
|
try {
|
|
@@ -230,13 +267,8 @@ class ClaudeClient {
|
|
|
230
267
|
config = { mcpServers: {} };
|
|
231
268
|
}
|
|
232
269
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
args: ["-y", MCP_SERVER_PACKAGE],
|
|
236
|
-
env: {
|
|
237
|
-
BROWSER_DEVTOOLS_INSTALL_CHROMIUM: "true",
|
|
238
|
-
},
|
|
239
|
-
};
|
|
270
|
+
const mcpEntry = (0, config_1.getMcpServerEntry)(projectDir);
|
|
271
|
+
config.mcpServers[MCP_SERVER_NAME] = mcpEntry;
|
|
240
272
|
(0, fs_1.writeFileSync)(mcpPath, JSON.stringify(config, null, 2));
|
|
241
273
|
}
|
|
242
274
|
writePermissions(settingsPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/claude/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/claude/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,18 +7,21 @@ You are responsible for the full application lifecycle during verification:
|
|
|
7
7
|
- **Start** the dev server before navigating to any page (e.g. `npm run dev`, `docker compose up -d`)
|
|
8
8
|
- **Stop** the dev server after verification is complete (e.g. `Ctrl+C`, `docker compose down`)
|
|
9
9
|
If the application is already running, skip the start step. If the build fails, fix it before proceeding.
|
|
10
|
+
**Do NOT guess ports.** After starting, check the actual port (e.g. `docker compose ps`, process output, config files) before navigating.
|
|
10
11
|
|
|
11
12
|
Required verification steps:
|
|
12
13
|
1. Build and start the application if not already running
|
|
13
|
-
2.
|
|
14
|
-
3.
|
|
15
|
-
4.
|
|
16
|
-
5.
|
|
17
|
-
6. Check
|
|
18
|
-
7.
|
|
19
|
-
8.
|
|
14
|
+
2. **Start verification**: `echo '{"session_id":"<your-session-id>"}' | ironbee hook verification-start` — REQUIRED before browser tools
|
|
15
|
+
3. Navigate to affected page(s) with `mcp__browser-devtools__bdt_navigation_go-to`
|
|
16
|
+
4. **Functionally test** the changes — click, type, submit, navigate, interact with the UI to exercise the code paths you modified
|
|
17
|
+
5. Take a screenshot with `mcp__browser-devtools__bdt_content_take-screenshot` to capture the final state
|
|
18
|
+
6. Check accessibility with `mcp__browser-devtools__bdt_a11y_take-aria-snapshot`
|
|
19
|
+
7. Check console for errors with `mcp__browser-devtools__bdt_o11y_get-console-messages`
|
|
20
|
+
8. Stop the dev server when done
|
|
21
|
+
9. **IMMEDIATELY submit your verdict** — do NOT edit any code before submitting: `echo '<verdict-json>' | ironbee hook submit-verdict`
|
|
20
22
|
- Pass → submit pass verdict
|
|
21
23
|
- Fail → submit fail verdict with issues, THEN fix the code and re-verify
|
|
24
|
+
- Submitting a verdict automatically ends the verification cycle
|
|
22
25
|
|
|
23
26
|
Steps 2, 4, 5, and 6 are enforced by the Stop hook. Step 3 is expected — do not just take a screenshot and call it done.
|
|
24
27
|
|
|
@@ -25,22 +25,27 @@ You are responsible for managing the application during verification:
|
|
|
25
25
|
|
|
26
26
|
If the application is already running, skip the start step. If the build fails, fix the build error before proceeding with verification.
|
|
27
27
|
|
|
28
|
+
**Do NOT guess ports.** After starting the application, check the actual port (e.g. `docker compose ps`, process output, or config files) before navigating. Never assume a default port.
|
|
29
|
+
|
|
28
30
|
## Flow
|
|
29
31
|
1. Implement your changes (write/edit code)
|
|
30
32
|
2. **Build and start** the application if not already running
|
|
31
|
-
3. **
|
|
32
|
-
-
|
|
33
|
+
3. **Start verification**: `echo '{"session_id":"<your-session-id>"}' | ironbee hook verification-start`
|
|
34
|
+
- This is REQUIRED before using any browser-devtools tools. Browser tools are blocked without it.
|
|
35
|
+
4. **Functionally test** your changes through the browser:
|
|
36
|
+
- **Navigate**: `mcp__browser-devtools__bdt_navigation_go-to` — go to the affected page(s)
|
|
33
37
|
- **Interact**: Use the browser agent to **actually test** what you changed — click buttons, fill forms, submit data, trigger workflows, navigate between pages. Do not just look at the page.
|
|
34
|
-
- **Screenshot**: `mcp__browser-
|
|
35
|
-
- **Accessibility**: `mcp__browser-
|
|
36
|
-
- **Console**: `mcp__browser-
|
|
38
|
+
- **Screenshot**: `mcp__browser-devtools__bdt_content_take-screenshot` — capture the final visual state
|
|
39
|
+
- **Accessibility**: `mcp__browser-devtools__bdt_a11y_take-aria-snapshot` — verify page structure
|
|
40
|
+
- **Console**: `mcp__browser-devtools__bdt_o11y_get-console-messages` — check for errors
|
|
37
41
|
Navigate, Screenshot, Accessibility, and Console tools are MANDATORY (the Stop hook checks the transcript for each one). Functional interaction is expected for every verification.
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
5. **Stop** the dev server when verification is complete
|
|
43
|
+
6. **IMMEDIATELY submit your verdict** — do NOT edit any code before submitting: `echo '<verdict-json>' | ironbee hook submit-verdict`
|
|
40
44
|
- If everything works → submit pass verdict
|
|
41
45
|
- If something is broken → submit fail verdict with issues describing what failed
|
|
42
46
|
- **Never skip this step.** Every verification attempt must be recorded, pass or fail.
|
|
43
|
-
|
|
47
|
+
- Submitting a verdict automatically ends the verification cycle.
|
|
48
|
+
7. If you submitted a fail verdict → fix the code → rebuild → go back to step 2 → submit again → repeat until pass
|
|
44
49
|
|
|
45
50
|
## What good verification looks like
|
|
46
51
|
- Changed a form handler? → Start the app, fill the form, submit it, verify the response
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ironbee-analyze
|
|
3
|
+
description: >
|
|
4
|
+
Session analysis after verification is complete. Activates ONLY when: the user explicitly asks
|
|
5
|
+
for analysis, or after a verification session with multiple cycles (2+ verifications or 1+ fixes).
|
|
6
|
+
Do NOT activate on simple single-pass verifications or unrelated tasks.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# IronBee Session Analysis
|
|
10
|
+
|
|
11
|
+
Run `ironbee analyze --json --detailed` via Bash to get raw session metrics, then provide a semantic analysis.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
- After completing a verification session with fixes (fail → fix → pass cycles)
|
|
15
|
+
- When the user asks for analysis or insights about the session
|
|
16
|
+
- Do NOT run automatically on simple single-pass verifications
|
|
17
|
+
|
|
18
|
+
## Steps
|
|
19
|
+
|
|
20
|
+
1. Run `ironbee analyze --json --detailed` via Bash to get metrics for the current project
|
|
21
|
+
2. Parse the JSON output
|
|
22
|
+
3. Provide a brief analysis:
|
|
23
|
+
|
|
24
|
+
### Key Findings
|
|
25
|
+
- Is the coding:verification:fix ratio healthy?
|
|
26
|
+
- Which files are problematic and why?
|
|
27
|
+
- Are fixes effective (re-fail rate)?
|
|
28
|
+
|
|
29
|
+
### Semantic Analysis
|
|
30
|
+
- Group similar issues from verdict data into categories
|
|
31
|
+
- Identify recurring patterns
|
|
32
|
+
- Suggest root causes for frequently failing files
|
|
33
|
+
|
|
34
|
+
### Recommendations
|
|
35
|
+
- Actionable next steps to improve code quality
|
|
36
|
+
- Files or patterns to watch in future tasks
|
|
37
|
+
|
|
38
|
+
## Output
|
|
39
|
+
Keep it concise — 3-5 bullet points for findings, 2-3 recommendations. Don't dump raw numbers.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ironbee-analyze
|
|
3
|
+
description: Run IronBee session analysis with semantic interpretation of verification metrics, issues, and fixes
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# IronBee Session Analysis
|
|
8
|
+
|
|
9
|
+
Run `ironbee analyze --json --detailed` via terminal to get raw session metrics, then provide a semantic analysis.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. Run `ironbee analyze --json --detailed` (all sessions) or `ironbee analyze <session-id> --json` (specific session) via terminal
|
|
14
|
+
2. Parse the JSON output
|
|
15
|
+
3. Analyze and interpret the results:
|
|
16
|
+
|
|
17
|
+
### Time Analysis
|
|
18
|
+
- Is the coding:verification:fix ratio healthy? (High fix% = inefficient coding)
|
|
19
|
+
- Is time to first verification reasonable? (Too long = agent coding without testing)
|
|
20
|
+
|
|
21
|
+
### Verification Quality
|
|
22
|
+
- What is the first-pass success rate? Why might it be low?
|
|
23
|
+
- Are enough pages and checks being tested? (Low numbers = superficial testing)
|
|
24
|
+
|
|
25
|
+
### Code Changes
|
|
26
|
+
- Which files are hot files? Are they expected to change frequently?
|
|
27
|
+
- Which files are problematic? What might be causing repeated fixes?
|
|
28
|
+
- Is there edit churn? (Same file in multiple fix cycles = root cause not resolved)
|
|
29
|
+
|
|
30
|
+
### Fix Effectiveness
|
|
31
|
+
- Are fixes working? (Low fix success rate = agent not understanding the problem)
|
|
32
|
+
- Is re-fail rate high? What patterns do you see in the issues?
|
|
33
|
+
|
|
34
|
+
### Semantic Analysis (LLM-powered)
|
|
35
|
+
- Group similar issues from verdict data into categories (e.g., "contrast issues", "event handler bugs", "API errors")
|
|
36
|
+
- Identify recurring patterns across sessions
|
|
37
|
+
- Suggest root causes for frequently failing files
|
|
38
|
+
|
|
39
|
+
### Scoring
|
|
40
|
+
- Interpret the efficiency, quality, and confidence scores
|
|
41
|
+
- Compare with project averages if cross-session data is available
|
|
42
|
+
|
|
43
|
+
## Output Format
|
|
44
|
+
Provide a structured report with:
|
|
45
|
+
- Executive summary (1-2 sentences)
|
|
46
|
+
- Key findings (bullet points)
|
|
47
|
+
- Recommendations (actionable next steps)
|
|
48
|
+
- Risk areas (files/patterns to watch)
|