agent-roast 0.2.0 → 0.2.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/README.md +2 -2
- package/dist/{chunk-FHRPVXCI.js → chunk-XUNF5YCA.js} +17 -3
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
</div>
|
|
20
20
|
|
|
21
|
-
`agent-roast` scans recorded git diffs for shortcuts taken by AI coding assistants (Claude Code, Cursor, Aider). It checks for skipped tests, compiler type escapes (`as any`), swallowed errors, and panic revert loops, then outputs a discipline score and line proofs. 100% offline, zero API keys, zero telemetry.
|
|
21
|
+
`agent-roast` scans recorded git diffs for shortcuts taken by AI coding assistants (Claude Code, Cursor, Codex, Antigravity, Aider). It checks for skipped tests, compiler type escapes (`as any`), swallowed errors, and panic revert loops, then outputs a discipline score and line proofs. 100% offline, zero API keys, zero telemetry.
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
# Audit repository history
|
|
@@ -96,7 +96,7 @@ jobs:
|
|
|
96
96
|
Only **added lines** (`+`) in source code files are scanned — deleted lines, file moves, and comments never trigger false alarms.
|
|
97
97
|
|
|
98
98
|
- **Skipped tests (`test-skip`):** `it.skip`, `describe.skip`, `xit`, `pytest.skip`, `test.todo` added to silence failing tests. (Default blocking gate).
|
|
99
|
-
- **Type escapes (`type-escape`):** `as any`, `// @ts-ignore`, `// @ts-expect-error`, `# type: ignore`, `eslint-disable`.
|
|
99
|
+
- **Type escapes (`type-escape`):** `as any`, `as unknown as`, `as never`, `// @ts-ignore`, `// @ts-nocheck`, `// @ts-expect-error`, `# type: ignore`, `# noqa`, `eslint-disable`.
|
|
100
100
|
- **Swallowed errors (`swallowed-error`):** Empty `catch {}` or `except: pass` blocks hiding runtime failures.
|
|
101
101
|
- **Panic fix loops (`panic-loop`):** Heuristic chain analysis of rapid-fire fix/revert commits by the same author within 15 minutes touching overlapping files. *(Observational metric for repository audits; not a PR blocker)*.
|
|
102
102
|
|
|
@@ -16,14 +16,21 @@ var TRAILER_AI_PATTERNS = [
|
|
|
16
16
|
{ regex: /Co-Authored-By:.*(?:Aider|aider)/i, name: "trailer:aider" },
|
|
17
17
|
{ regex: /Co-Authored-By:.*(?:Devin|cognition)/i, name: "trailer:devin" },
|
|
18
18
|
{ regex: /Co-Authored-By:.*(?:Windsurf|Codeium)/i, name: "trailer:windsurf" },
|
|
19
|
-
{ regex: /Co-Authored-By:.*(?:ChatGPT|OpenAI|GPT)/i, name: "trailer:gpt" }
|
|
19
|
+
{ regex: /Co-Authored-By:.*(?:ChatGPT|OpenAI|GPT)/i, name: "trailer:gpt" },
|
|
20
|
+
{ regex: /Co-Authored-By:.*(?:Antigravity|Deepmind|Google)/i, name: "trailer:antigravity" },
|
|
21
|
+
{ regex: /Co-Authored-By:.*(?:Codex)/i, name: "trailer:codex" },
|
|
22
|
+
{ regex: /Co-Authored-By:.*(?:Gemini)/i, name: "trailer:gemini" },
|
|
23
|
+
{ regex: /Co-Authored-By:.*(?:OpenClaw|Claw)/i, name: "trailer:openclaw" }
|
|
20
24
|
];
|
|
21
25
|
var MESSAGE_AI_PATTERNS = [
|
|
22
26
|
{ regex: /(?:Generated|Assisted|Created|Written) by Cursor/i, name: "message:cursor" },
|
|
23
27
|
{ regex: /(?:Generated|Assisted|Created|Written) by Claude/i, name: "message:claude" },
|
|
24
28
|
{ regex: /(?:Generated|Assisted|Created|Written) by Aider/i, name: "message:aider" },
|
|
25
29
|
{ regex: /(?:Generated|Assisted|Created|Written) by Copilot/i, name: "message:copilot" },
|
|
26
|
-
{ regex: /(?:Generated|Assisted|Created|Written) by Devin/i, name: "message:devin" }
|
|
30
|
+
{ regex: /(?:Generated|Assisted|Created|Written) by Devin/i, name: "message:devin" },
|
|
31
|
+
{ regex: /(?:Generated|Assisted|Created|Written) by (?:Antigravity|AGY)/i, name: "message:antigravity" },
|
|
32
|
+
{ regex: /(?:Generated|Assisted|Created|Written) by Codex/i, name: "message:codex" },
|
|
33
|
+
{ regex: /(?:Generated|Assisted|Created|Written) by Gemini/i, name: "message:gemini" }
|
|
27
34
|
];
|
|
28
35
|
var AUTHOR_AI_PATTERNS = [
|
|
29
36
|
{ regex: /(?:claude|anthropic)/i, name: "author:claude" },
|
|
@@ -31,6 +38,9 @@ var AUTHOR_AI_PATTERNS = [
|
|
|
31
38
|
{ regex: /(?:copilot)/i, name: "author:copilot" },
|
|
32
39
|
{ regex: /(?:aider)/i, name: "author:aider" },
|
|
33
40
|
{ regex: /(?:devin)/i, name: "author:devin" },
|
|
41
|
+
{ regex: /(?:antigravity|deepmind)/i, name: "author:antigravity" },
|
|
42
|
+
{ regex: /(?:codex)/i, name: "author:codex" },
|
|
43
|
+
{ regex: /(?:gemini)/i, name: "author:gemini" },
|
|
34
44
|
{ regex: /(?:\[bot\]|bot@|automation)/i, name: "author:bot" }
|
|
35
45
|
];
|
|
36
46
|
function detectAiAttribution(authorName, authorEmail, message) {
|
|
@@ -543,11 +553,15 @@ var TEST_SKIP_PATTERNS = [
|
|
|
543
553
|
var COMMENT_DIRECTIVE_PATTERNS = [
|
|
544
554
|
{ regex: /^\s*\/\/\s*@ts-ignore\b/, name: "compiler ignore (@ts-ignore)" },
|
|
545
555
|
{ regex: /^\s*\/\/\s*@ts-expect-error\b/, name: "compiler suppression (@ts-expect-error)" },
|
|
556
|
+
{ regex: /^\s*\/\/\s*@ts-nocheck\b/, name: "compiler check disable (@ts-nocheck)" },
|
|
546
557
|
{ regex: /(?:^\s*#\s*type:\s*ignore\b|#\s*type:\s*ignore\s*$)/, name: "python type ignore" },
|
|
558
|
+
{ regex: /(?:^\s*#\s*noqa\b|#\s*noqa\s*$)/, name: "python linter suppression (# noqa)" },
|
|
547
559
|
{ regex: /^\s*\/\/\s*eslint-disable(?:-next-line)?\b/, name: "linter suppression (eslint-disable)" }
|
|
548
560
|
];
|
|
549
561
|
var CODE_TYPE_ESCAPE_PATTERNS = [
|
|
550
|
-
{ regex: /\bas\s+any\b/, name: "type bypass (as any)" }
|
|
562
|
+
{ regex: /\bas\s+any\b/, name: "type bypass (as any)" },
|
|
563
|
+
{ regex: /\bas\s+unknown\s+as\b/, name: "double assertion bypass (as unknown as)" },
|
|
564
|
+
{ regex: /\bas\s+never\b/, name: "type escape (as never)" }
|
|
551
565
|
];
|
|
552
566
|
var SWALLOWED_ERROR_PATTERNS = [
|
|
553
567
|
{ regex: /catch\s*(?:\([^)]*\))?\s*\{\s*\}/, name: "empty catch block (catch {})" },
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED