trace-to-skill 0.1.52 → 0.1.53

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 CHANGED
@@ -24,6 +24,7 @@ npx trace-to-skill scorecard .
24
24
  npx trace-to-skill oss-brief .
25
25
  npx trace-to-skill scorecard-comment . --dry-run
26
26
  npx trace-to-skill guard-github-event "$GITHUB_EVENT_PATH"
27
+ npx trace-to-skill guard-patch ./change.patch --root .
27
28
  npx trace-to-skill comment ./runs --dry-run
28
29
  npx trace-to-skill compare --before ./runs/before --after ./runs/after
29
30
  ```
@@ -47,6 +48,7 @@ Use it when you need to:
47
48
  - **Prepare OpenAI OSS evidence:** run `trace-to-skill oss-brief .` to generate application-ready proof, 500-character summary fields, readiness score, benchmark status, license, and next steps.
48
49
  - **Harden agent instructions:** run `trace-to-skill lint-agents .` to catch missing `AGENTS.md`, conflicting tool instructions, missing includes, nested instruction drift, encoding issues, and risky MCP config.
49
50
  - **Protect agent context:** run `trace-to-skill guard-github-event "$GITHUB_EVENT_PATH"` before feeding issue, PR, comment, discussion, check-run, or commit text into an agent.
51
+ - **Prevent unsafe patch overwrites:** run `trace-to-skill guard-patch ./change.patch --root .` before applying generated patches so `*** Add File` cannot silently replace an existing file or symlink target.
50
52
  - **Share failed traces safely:** run `trace-to-skill redact ./runs --output redacted-runs` before publishing anonymized failure fixtures.
51
53
  - **Catch sensitive file access:** run `trace-to-skill analyze ./runs` when an agent trace includes `.env`, private keys, `.npmrc`, cloud credentials, local databases, or production secret manifests.
52
54
  - **Report remote compact failures:** run `trace-to-skill codex-report ./runs` when `/compact` or auto-compaction fails with `responses/compact` timeouts, stream disconnects, provider timeout workarounds, or long-thread recovery loss.
@@ -65,7 +67,7 @@ Use it when you need to:
65
67
  - **Attribute token burn:** run `trace-to-skill analyze ./runs` when Codex drains usage unexpectedly because of background polling, idle app activity, compaction loops, retry spirals, fast-mode drift, or cached-token-heavy turns.
66
68
  - **Report usage reset drift:** run `trace-to-skill analyze ./runs` when weekly or 5-hour reset times move unexpectedly, saved usage is lost, or `/status` and the dashboard disagree about the reset anchor.
67
69
  - **Report resource leaks:** run `trace-to-skill analyze ./runs` when Codex Desktop, VS Code extension, app-server, renderer, GPU, or orphaned helper processes keep burning CPU/GPU/memory after the work should be idle.
68
- - **Catch tool-call integrity failures:** run `trace-to-skill analyze ./runs` when `apply_patch`, rollback/undo, subagent shutdown, or `tool_call_id` protocol failures threaten file safety or strand a session.
70
+ - **Catch tool-call integrity failures:** run `trace-to-skill analyze ./runs` when `apply_patch`, `*** Add File` overwrite behavior, rollback/undo, subagent shutdown, or `tool_call_id` protocol failures threaten file safety or strand a session.
69
71
  - **File better OpenAI/Codex issues:** run `trace-to-skill codex-report ./runs` to turn a failed trace into a redaction-aware, copy-paste-ready issue body with evidence and diagnostics.
70
72
  - **Package quota bugs cleanly:** run `trace-to-skill analyze ./runs` on Codex traces where `/status` or the usage page shows remaining quota but the client returns `You've hit your usage limit`.
71
73
 
@@ -87,6 +89,8 @@ Open-source maintainers do not need more AI-generated noise. They need agents th
87
89
  - Did a long Codex session fail during context compaction?
88
90
  - Did `/compact` or auto-compaction fail against the remote `responses/compact` endpoint, forcing a new thread or provider-timeout workaround?
89
91
  - Did Codex Desktop on Windows expose `rg`, `node_repl`, Browser, Chrome, or Computer Use helper paths that were discoverable but not executable?
92
+ - Did an `apply_patch` create operation actually overwrite an existing file or symlink target?
93
+ - Can a generated patch be guarded before it touches the workspace?
90
94
  - Did Codex sandbox setup or workspace permissions block every tool call?
91
95
  - Did quota accounting, account switching, or reset timing contradict the runtime usage-limit error?
92
96
  - Did an MCP tool appear in `tools/list` but fail at Codex runtime because approval, namespace routing, or stdio lifecycle broke?
@@ -208,6 +212,8 @@ Try a packaged public demo before collecting private traces:
208
212
  trace-to-skill demo
209
213
  trace-to-skill demo --list
210
214
  trace-to-skill demo latency-regression
215
+ trace-to-skill demo patch-overwrite
216
+ trace-to-skill guard-patch ./change.patch --root .
211
217
  trace-to-skill demo --format json
212
218
  ```
213
219
 
@@ -369,6 +375,7 @@ Stable machine-readable contracts are published with the npm package and release
369
375
  - [`schemas/redact-result.schema.json`](schemas/redact-result.schema.json) describes `trace-to-skill redact --format json`.
370
376
  - [`schemas/scorecard-result.schema.json`](schemas/scorecard-result.schema.json) describes `trace-to-skill scorecard --format json`.
371
377
  - [`schemas/oss-brief-result.schema.json`](schemas/oss-brief-result.schema.json) describes `trace-to-skill oss-brief --format json`.
378
+ - [`schemas/patch-guard-result.schema.json`](schemas/patch-guard-result.schema.json) describes `trace-to-skill guard-patch --format json`.
372
379
 
373
380
  These schemas let downstream Codex workflows, dashboards, and CI bots consume reports without scraping Markdown.
374
381
 
@@ -400,7 +407,7 @@ jobs:
400
407
  issues: write
401
408
  steps:
402
409
  - uses: actions/checkout@v5
403
- - uses: grnbtqdbyx-create/trace-to-skill@v0.1.52
410
+ - uses: grnbtqdbyx-create/trace-to-skill@v0.1.53
404
411
  with:
405
412
  mode: all
406
413
  doctor-threshold: "85"
@@ -449,7 +456,7 @@ Composite action usage:
449
456
 
450
457
  ```yaml
451
458
  - id: trace-to-skill
452
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.52
459
+ uses: grnbtqdbyx-create/trace-to-skill@v0.1.53
453
460
  with:
454
461
  mode: all
455
462
  doctor-threshold: "85"
@@ -491,7 +498,7 @@ Action outputs:
491
498
 
492
499
  By default, generated reports are also appended to the GitHub Actions Job Summary. Set `job-summary: "false"` to disable that UI output.
493
500
 
494
- Tagged Action releases build and run the CLI from `$GITHUB_ACTION_PATH`, so a workflow pinned to a release tag such as `@v0.1.52` executes that release's checked-out source instead of pulling the default branch at runtime.
501
+ Tagged Action releases build and run the CLI from `$GITHUB_ACTION_PATH`, so a workflow pinned to a release tag such as `@v0.1.53` executes that release's checked-out source instead of pulling the default branch at runtime.
495
502
 
496
503
  ## Codex Skill
497
504
 
@@ -138,6 +138,12 @@ const BENCHMARK_CASES = [
138
138
  fixture: "fixtures/codex-tool-call-integrity.md",
139
139
  expectedKinds: ["codex_tool_call_integrity", "weak_evidence"]
140
140
  },
141
+ {
142
+ id: "codex-apply-patch-overwrite",
143
+ title: "Codex apply_patch Add File overwrite safety",
144
+ fixture: "fixtures/codex-apply-patch-overwrite.md",
145
+ expectedKinds: ["codex_tool_call_integrity", "weak_evidence"]
146
+ },
141
147
  {
142
148
  id: "codex-usage-reset-drift",
143
149
  title: "Codex usage reset schedule drift",
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/benchmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/benchmark.ts"],"names":[],"mappings":"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"}
package/dist/src/cli.js CHANGED
@@ -10,6 +10,7 @@ import { analyzeGithubEventContext } from "./githubContext.js";
10
10
  import { postPullRequestComment } from "./github.js";
11
11
  import { initProject } from "./init.js";
12
12
  import { renderOssBriefMarkdown, runOssBrief } from "./ossBrief.js";
13
+ import { guardPatchFile, renderPatchGuardMarkdown } from "./patchGuard.js";
13
14
  import { redactTargets } from "./redact.js";
14
15
  import { renderAgentsRules, renderCodexIssueReport, renderComparison, renderDoctorMarkdown, renderDoctorPrComment, renderMarkdown, renderPrComment, renderSarif, renderSkill } from "./report.js";
15
16
  import { renderScorecardMarkdown, renderScorecardPrComment, runScorecard } from "./scorecard.js";
@@ -141,6 +142,18 @@ async function main() {
141
142
  process.exitCode = evalResult.passed ? 0 : 1;
142
143
  return;
143
144
  }
145
+ if (parsed.command === "guard-patch") {
146
+ const patchPath = parsed.targets[0];
147
+ if (!patchPath) {
148
+ throw new Error("guard-patch requires a patch file path.");
149
+ }
150
+ const result = await guardPatchFile(patchPath, stringFlag(parsed.flags.root) ?? process.cwd());
151
+ const format = String(parsed.flags.format ?? "markdown");
152
+ const output = format === "json" ? `${JSON.stringify(result, null, 2)}\n` : renderPatchGuardMarkdown(result);
153
+ await writeOutput(output, parsed.flags.output);
154
+ process.exitCode = result.status === "pass" ? 0 : 1;
155
+ return;
156
+ }
144
157
  if (parsed.command === "comment") {
145
158
  const result = await analyzeTargets(parsed.targets);
146
159
  const body = renderPrComment(result);
@@ -300,6 +313,7 @@ Usage:
300
313
  trace-to-skill scorecard-comment [repo-dir] [--threshold 85] [--dry-run] [--token $GITHUB_TOKEN]
301
314
  trace-to-skill oss-brief [repo-dir] [--threshold 85] [--format markdown|json] [--output docs/OPENAI_OSS_BRIEF.md]
302
315
  trace-to-skill guard-github-event [event.json] [--threshold 80] [--format markdown|json] [--output report.md]
316
+ trace-to-skill guard-patch <patch-file> [--root repo-dir] [--format markdown|json] [--output report.md]
303
317
  trace-to-skill comment <trace-file-or-dir> [--dry-run] [--token $GITHUB_TOKEN]
304
318
  trace-to-skill compare --before <old-run> --after <new-run> [--format markdown|json]
305
319
  trace-to-skill doctor [repo-dir] [--threshold 85] [--format markdown|json|comment] [--output report.md]
@@ -320,6 +334,7 @@ Examples:
320
334
  trace-to-skill scorecard-comment . --threshold 85
321
335
  trace-to-skill oss-brief . --output docs/OPENAI_OSS_BRIEF.md
322
336
  trace-to-skill guard-github-event "$GITHUB_EVENT_PATH"
337
+ trace-to-skill guard-patch ./change.patch --root .
323
338
  trace-to-skill comment ./runs
324
339
  trace-to-skill compare --before ./runs/before --after ./runs/after
325
340
  trace-to-skill doctor . --threshold 85
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/src/demo.js CHANGED
@@ -33,6 +33,12 @@ const DEMO_SCENARIOS = [
33
33
  fixture: "fixtures/codex-token-burn.md",
34
34
  description: "Usage drains from background polling, idle activity, compaction loops, retries, or cached-heavy turns."
35
35
  },
36
+ {
37
+ id: "patch-overwrite",
38
+ title: "Codex apply_patch overwrite safety",
39
+ fixture: "fixtures/codex-apply-patch-overwrite.md",
40
+ description: "`apply_patch` accepts `*** Add File` for an existing path, turning a create operation into a silent overwrite."
41
+ },
36
42
  {
37
43
  id: "sensitive-files",
38
44
  title: "Sensitive file access",
@@ -101,6 +107,7 @@ export function renderDemoMarkdown(result) {
101
107
  "trace-to-skill demo --list",
102
108
  "trace-to-skill demo remote-compact",
103
109
  "trace-to-skill demo windows-helper-path",
110
+ "trace-to-skill demo patch-overwrite",
104
111
  "trace-to-skill demo file-tree-ui",
105
112
  "trace-to-skill demo usage-reset-drift",
106
113
  "```",
@@ -121,6 +128,7 @@ export function renderDemoScenarioList(scenarios = listDemoScenarios()) {
121
128
  "trace-to-skill demo",
122
129
  "trace-to-skill demo remote-compact",
123
130
  "trace-to-skill demo windows-helper-path",
131
+ "trace-to-skill demo patch-overwrite",
124
132
  "trace-to-skill demo latency-regression",
125
133
  "trace-to-skill demo --list",
126
134
  "```",
@@ -1 +1 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/demo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/demo.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export { analyzeGithubEventContext, extractGithubContextInputs } from "./githubC
8
8
  export { postPullRequestComment } from "./github.js";
9
9
  export { initProject } from "./init.js";
10
10
  export { renderOssBriefMarkdown, runOssBrief } from "./ossBrief.js";
11
+ export { guardPatchContent, guardPatchFile, renderPatchGuardMarkdown } from "./patchGuard.js";
12
+ export type { PatchGuardFinding, PatchGuardOperation, PatchGuardResult, PatchGuardSeverity } from "./patchGuard.js";
11
13
  export { redactTargets, redactText } from "./redact.js";
12
14
  export { renderAgentsRules, renderCodexIssueReport, renderComparison, renderDoctorMarkdown, renderDoctorPrComment, renderMarkdown, renderPrComment, renderSarif, renderSkill } from "./report.js";
13
15
  export { renderScorecardMarkdown, renderScorecardPrComment, runScorecard } from "./scorecard.js";
package/dist/src/index.js CHANGED
@@ -8,6 +8,7 @@ export { analyzeGithubEventContext, extractGithubContextInputs } from "./githubC
8
8
  export { postPullRequestComment } from "./github.js";
9
9
  export { initProject } from "./init.js";
10
10
  export { renderOssBriefMarkdown, runOssBrief } from "./ossBrief.js";
11
+ export { guardPatchContent, guardPatchFile, renderPatchGuardMarkdown } from "./patchGuard.js";
11
12
  export { redactTargets, redactText } from "./redact.js";
12
13
  export { renderAgentsRules, renderCodexIssueReport, renderComparison, renderDoctorMarkdown, renderDoctorPrComment, renderMarkdown, renderPrComment, renderSarif, renderSkill } from "./report.js";
13
14
  export { renderScorecardMarkdown, renderScorecardPrComment, runScorecard } from "./scorecard.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClM,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClM,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ export type PatchGuardOperation = "add" | "update" | "delete" | "move-to";
2
+ export type PatchGuardSeverity = "warning" | "error";
3
+ export interface PatchGuardFinding {
4
+ operation: PatchGuardOperation;
5
+ severity: PatchGuardSeverity;
6
+ line: number;
7
+ target: string;
8
+ message: string;
9
+ }
10
+ export interface PatchGuardResult {
11
+ generatedAt: string;
12
+ patch: string;
13
+ root: string;
14
+ status: "pass" | "fail";
15
+ findings: PatchGuardFinding[];
16
+ }
17
+ export declare function guardPatchFile(patchPath: string, root?: string): Promise<PatchGuardResult>;
18
+ export declare function guardPatchContent(content: string, options?: {
19
+ patch?: string;
20
+ root?: string;
21
+ }): Promise<PatchGuardResult>;
22
+ export declare function renderPatchGuardMarkdown(result: PatchGuardResult): string;
@@ -0,0 +1,120 @@
1
+ import { lstat, readFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ export async function guardPatchFile(patchPath, root = process.cwd()) {
4
+ const absolutePatch = path.resolve(patchPath);
5
+ const content = await readFile(absolutePatch, "utf8");
6
+ return guardPatchContent(content, {
7
+ patch: path.relative(process.cwd(), absolutePatch) || absolutePatch,
8
+ root
9
+ });
10
+ }
11
+ export async function guardPatchContent(content, options = {}) {
12
+ const root = path.resolve(options.root ?? process.cwd());
13
+ const operations = parsePatchOperations(content);
14
+ const findings = [];
15
+ for (const operation of operations) {
16
+ const absoluteTarget = resolveTarget(root, operation.target);
17
+ const state = await pathState(absoluteTarget);
18
+ if (operation.operation === "add" && state.exists) {
19
+ findings.push({
20
+ operation: operation.operation,
21
+ severity: "error",
22
+ line: operation.line,
23
+ target: operation.target,
24
+ message: state.isSymlink ?
25
+ "Add File target already exists and is a symlink; creating it would overwrite the linked target." :
26
+ "Add File target already exists; use Update File or remove the file first."
27
+ });
28
+ continue;
29
+ }
30
+ if ((operation.operation === "update" || operation.operation === "delete") && !state.exists) {
31
+ findings.push({
32
+ operation: operation.operation,
33
+ severity: "error",
34
+ line: operation.line,
35
+ target: operation.target,
36
+ message: `${operation.operation === "update" ? "Update" : "Delete"} File target does not exist.`
37
+ });
38
+ continue;
39
+ }
40
+ if (operation.operation === "move-to" && state.exists) {
41
+ findings.push({
42
+ operation: operation.operation,
43
+ severity: "error",
44
+ line: operation.line,
45
+ target: operation.target,
46
+ message: "Move target already exists; require an explicit overwrite step."
47
+ });
48
+ }
49
+ }
50
+ return {
51
+ generatedAt: new Date().toISOString(),
52
+ patch: options.patch ?? "<inline>",
53
+ root,
54
+ status: findings.some((finding) => finding.severity === "error") ? "fail" : "pass",
55
+ findings
56
+ };
57
+ }
58
+ export function renderPatchGuardMarkdown(result) {
59
+ const lines = [
60
+ "# trace-to-skill Patch Guard",
61
+ "",
62
+ `Status: **${result.status}**`,
63
+ "",
64
+ `Patch: \`${result.patch}\``,
65
+ `Root: \`${result.root}\``,
66
+ ""
67
+ ];
68
+ if (result.findings.length === 0) {
69
+ lines.push("No unsafe patch file operations detected.", "");
70
+ }
71
+ else {
72
+ lines.push("## Findings", "");
73
+ for (const finding of result.findings) {
74
+ lines.push(`- Line ${finding.line}: \`${finding.operation}\` \`${finding.target}\` - ${finding.message}`);
75
+ }
76
+ lines.push("");
77
+ }
78
+ lines.push("Guarded invariants:", "", "- `*** Add File` fails when the target already exists.", "- `*** Update File` and `*** Delete File` fail when the target is missing.", "- `*** Move to` fails when the destination already exists.", "");
79
+ return lines.join("\n");
80
+ }
81
+ function parsePatchOperations(content) {
82
+ const operations = [];
83
+ const lines = content.split(/\r?\n/);
84
+ lines.forEach((line, index) => {
85
+ const fileMatch = line.match(/^\*\*\* (Add|Update|Delete) File: (.+)$/);
86
+ if (fileMatch) {
87
+ operations.push({
88
+ operation: fileMatch[1].toLowerCase(),
89
+ line: index + 1,
90
+ target: fileMatch[2].trim()
91
+ });
92
+ return;
93
+ }
94
+ const moveMatch = line.match(/^\*\*\* Move to: (.+)$/);
95
+ if (moveMatch) {
96
+ operations.push({
97
+ operation: "move-to",
98
+ line: index + 1,
99
+ target: moveMatch[1].trim()
100
+ });
101
+ }
102
+ });
103
+ return operations;
104
+ }
105
+ function resolveTarget(root, target) {
106
+ return path.isAbsolute(target) ? path.normalize(target) : path.resolve(root, target);
107
+ }
108
+ async function pathState(target) {
109
+ try {
110
+ const stat = await lstat(target);
111
+ return { exists: true, isSymlink: stat.isSymbolicLink() };
112
+ }
113
+ catch (error) {
114
+ if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") {
115
+ return { exists: false, isSymlink: false };
116
+ }
117
+ throw error;
118
+ }
119
+ }
120
+ //# sourceMappingURL=patchGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patchGuard.js","sourceRoot":"","sources":["../../src/patchGuard.ts"],"names":[],"mappings":"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"}
package/docs/BENCHMARK.md CHANGED
@@ -28,6 +28,7 @@ This benchmark runs the public fixture pack that ships with the repository and p
28
28
  | Codex token burn and usage-drain loop | `fixtures/codex-token-burn.md` | 59 | 3 | 0 | `codex_resource_leak`, `codex_token_burn`, `weak_evidence` | pass |
29
29
  | Codex resource leak and runaway process | `fixtures/codex-resource-leak.md` | 75 | 2 | 0 | `codex_resource_leak`, `weak_evidence` | pass |
30
30
  | Codex tool-call integrity and rollback failure | `fixtures/codex-tool-call-integrity.md` | 59 | 3 | 0 | `codex_resource_leak`, `codex_tool_call_integrity`, `weak_evidence` | pass |
31
+ | Codex apply_patch Add File overwrite safety | `fixtures/codex-apply-patch-overwrite.md` | 75 | 2 | 0 | `codex_tool_call_integrity`, `weak_evidence` | pass |
31
32
  | Codex usage reset schedule drift | `fixtures/codex-usage-reset-drift.md` | 75 | 2 | 0 | `codex_usage_reset_drift`, `weak_evidence` | pass |
32
33
  | Untrusted PR comment prompt injection | `fixtures/prompt-injection.md` | 50 | 3 | 1 | `premature_completion`, `prompt_injection`, `weak_evidence` | pass |
33
34
  | Conflicting agent instruction files | `fixtures/instruction-drift` | 84 | 1 | 0 | `ignored_instruction` | pass |
@@ -21,7 +21,7 @@ npx trace-to-skill codex-report redacted-runs --output openai-codex-issue.md
21
21
  | Remote compact task failures | `/compact` or auto-compact fails, `responses/compact` stream disconnects, `timeout waiting for child process to exit`, `tcp_user_timeout` or `stream_idle_timeout_ms` workarounds, provider-id timeout drift | `codex_remote_compact` | `trace-to-skill codex-report ./runs` |
22
22
  | Windows helper and bundled tool path failures | bundled `rg.exe`, `node_repl.exe`, `codex-command-runner.exe`, Browser, Chrome, or Computer Use helpers resolve through `WindowsApps`, missing `%LOCALAPPDATA%\OpenAI\Codex\bin`, broken LocalCache helper bins, `CodexSandboxUsers` ACL gaps, EFS/copyfile failures | `codex_windows_helper_path` | `trace-to-skill codex-report ./runs` |
23
23
  | Resource leaks and runaway processes | high CPU/GPU/RAM, `Code Helper`, `Codex Helper Renderer`, orphaned `shell-snapshot`, `syspolicyd`, log floods, thinking animation GPU loops | `codex_resource_leak` | `trace-to-skill codex-report ./runs` |
24
- | Tool-call integrity and rollback failures | `apply_patch` overwrites an existing `Add File` target, unmatched `tool_call_id`, `close_agent` hangs, failed revert/undo, unsafe diff application | `codex_tool_call_integrity` | `trace-to-skill codex-report ./runs` |
24
+ | Tool-call integrity and rollback failures | `apply_patch` overwrites an existing `Add File` target, unmatched `tool_call_id`, `close_agent` hangs, failed revert/undo, unsafe diff application | `codex_tool_call_integrity` | `trace-to-skill codex-report ./runs` or `trace-to-skill guard-patch ./change.patch --root .` |
25
25
  | Latency regressions | GPT-5.5 Fast feels like Standard, simple tasks take 10-20+ minutes, pre-first-token or thinking stalls, slow search/read/compaction, hours for small code changes | `codex_latency_regression` | `trace-to-skill codex-report ./runs` |
26
26
  | Approval persistence and MCP approval friction | `Approve for this session` is not remembered, command approval cache misses, repeated file-change approvals, `approval_policy = "never"` still prompts for MCP tools, per-tool approval configs explode | `codex_approval_friction` | `trace-to-skill codex-report ./runs` |
27
27
  | Quota mismatch | `/status` or usage page shows quota left, but runtime says `You've hit your usage limit`; account/workspace reset or cache confusion | `quota_mismatch` | `trace-to-skill codex-report ./runs` |
@@ -48,7 +48,7 @@ npx trace-to-skill codex-report redacted-runs --output openai-codex-issue.md
48
48
  - Include exact `/compact` or auto-compact error, `responses/compact` endpoint shape, timeout/provider config without secrets, context/token level before compact, speed/reasoning changes tried, and thread/feedback ids for remote compact failures.
49
49
  - Include `Get-Command rg -All`, `where.exe rg`, exact WindowsApps/LocalCache helper paths, `%LOCALAPPDATA%\OpenAI\Codex\bin` listing, `icacls`/`CodexSandboxUsers` RX state, file attributes, node_repl/plugin diagnostics, and sandbox mode for Windows helper path failures.
50
50
  - Include process names/PIDs, CPU/GPU/RSS samples, log-loop signatures, and whether killing exact PIDs or closing the app clears resource leaks.
51
- - Include exact tool input/output, `tool_call_id` order, affected path state, and rollback evidence for tool-call integrity failures.
51
+ - Include exact tool input/output, `tool_call_id` order, affected path state, rollback evidence, and `guard-patch` output for tool-call integrity failures.
52
52
  - Include pre-first-token, thinking, tool, search, read, and compaction timings plus model/speed settings for latency regressions.
53
53
  - Include selected approval scope, displayed vs executed command, MCP server/tool names, visible args, repeated prompt count, and config snippets for approval-friction reports.
54
54
  - Include plugin name/version, cache path, helper path, native pipe env vars, settings/plugin-list errors, and restart behavior for plugin runtime failures.
package/docs/DEMO.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # trace-to-skill Demo
2
2
 
3
- Scenario: **Codex Windows helper path failure**
3
+ Scenario: **Codex apply_patch overwrite safety**
4
4
 
5
- Windows Desktop exposes bundled rg/node/plugin helpers from WindowsApps or missing LocalCache paths that cannot execute.
5
+ `apply_patch` accepts `*** Add File` for an existing path, turning a create operation into a silent overwrite.
6
6
 
7
- Fixture: `fixtures/codex-windows-helper-path.md`
7
+ Fixture: `fixtures/codex-apply-patch-overwrite.md`
8
8
 
9
9
  This is a packaged public fixture, so you can try the project without collecting a private trace first.
10
10
 
@@ -12,9 +12,9 @@ This is a packaged public fixture, so you can try the project without collecting
12
12
 
13
13
  # OpenAI Codex Issue Triage Report
14
14
 
15
- Score: **43/100**
15
+ Score: **75/100**
16
16
 
17
- Likely failure class: **Codex Windows helper or bundled tool path failure (codex_windows_helper_path, high)**
17
+ Likely failure class: **Codex tool-call integrity or rollback failure (codex_tool_call_integrity, high)**
18
18
 
19
19
  Agent workflow needs clearer verification, instruction, or security hardening before broad reuse.
20
20
 
@@ -23,34 +23,20 @@ Agent workflow needs clearer verification, instruction, or security hardening be
23
23
  ```md
24
24
  ### What happened?
25
25
 
26
- trace-to-skill detected Codex Windows helper or bundled tool path failure (codex_windows_helper_path). Windows Codex Desktop can expose bundled tools or plugin helpers from MSIX/WindowsApps paths that are discoverable but not executable, breaking search, node_repl, Browser, Chrome, Computer Use, and sandbox startup.
26
+ trace-to-skill detected Codex tool-call integrity or rollback failure (codex_tool_call_integrity). Patch, rollback, subagent, and protocol-level tool-call failures can silently overwrite files, strand threads, or make recovery actions fail unless reports preserve exact tool inputs, tool results, durable state, and recovery evidence.
27
27
 
28
28
  ### Detected failure class
29
29
 
30
- - codex_windows_helper_path: Codex Windows helper or bundled tool path failure (high)
30
+ - codex_tool_call_integrity: Codex tool-call integrity or rollback failure (high)
31
31
 
32
32
  ### Evidence
33
33
 
34
- #### Codex Windows helper or bundled tool path failure
35
- - fixtures/codex-windows-helper-path.md:32 - Program 'rg.exe' failed to run: An error occurred trying to start process 'C:\Program Files\WindowsApps\OpenAI.Codex_26.527.3686.0_x64__2p2nqsd0c76g0\app\resources\rg.exe' with working directory 'D:\repo'. Access is denied.
36
- - fixtures/codex-windows-helper-path.md:56 - The expected MSIX LocalCache helper bin was either missing or not used:
37
- - fixtures/codex-windows-helper-path.md:73 - One workaround created a junction from `%LOCALAPPDATA%\OpenAI\Codex\bin` to the MSIX LocalCache bin directory. Another workaround installed external ripgrep earlier in PATH and restarted Codex.
38
- - fixtures/codex-windows-helper-path.md:83 - showed that `CodexSandboxUsers` was missing read/execute permissions. Granting:
39
- - fixtures/codex-windows-helper-path.md:86 - icacls "$env:LOCALAPPDATA\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\OpenAI" /grant 'CodexSandboxUsers:(OI)(CI)(RX)' /T
40
- - fixtures/codex-windows-helper-path.md:94 - node_repl kernel exited unexpectedly
41
-
42
- #### Codex sandbox or permission failure
43
- - fixtures/codex-windows-helper-path.md:75 - ## Symptom C: sandbox ACL and plugin helper startup failures
44
- - fixtures/codex-windows-helper-path.md:95 - node_repl diagnostics: {"kernel_status":"running","kernel_stderr_tail":"windows sandbox failed: spawn setup refresh","reason":"stdout_eof","stream_error":null}
45
-
46
- #### Codex plugin runtime or bundled capability failure
47
- - fixtures/codex-windows-helper-path.md:108 - Windows Computer Use helper paths are unavailable
34
+ #### Codex tool-call integrity or rollback failure
35
+ - fixtures/codex-apply-patch-overwrite.md:13 - apply_patch accepted `*** Add File` for an existing file and silently caused a destructive overwrite instead of failing.
48
36
 
49
37
  ### Diagnostics to attach
50
38
 
51
- - When reporting Codex Windows helper path failures, capture Codex Desktop version, Windows build, install source, terminal/tool-runner context, `Get-Command rg -All`, `where.exe rg`, exact failing helper path, `%LOCALAPPDATA%\OpenAI\Codex\bin` and MSIX LocalCache bin contents, ACL/`icacls` output for CodexSandboxUsers, file attributes such as EFS/Application Protected, node_repl/plugin diagnostics, sandbox mode, and whether installing an external rg, recreating the local bin junction, rerunning sandbox setup, changing elevated/unelevated mode, or restarting Codex changes behavior.
52
- - When Codex sandbox or permission setup fails, capture the OS, Codex version, sandbox_mode, approval_policy, exact stderr, workspace ownership/ACL evidence, and whether a clean directory can run a simple command plus apply_patch.
53
- - When reporting Codex plugin runtime failures, capture app version, OS, plugin name and version, plugin cache path, helper binary/client path, native pipe or helper env vars, plugin/list or settings error text, connector install return flow, cache reconciliation/file-lock logs, whether the UI still lists the plugin, whether restarting resets or downgrades it, and whether a clean profile reproduces the failure.
39
+ - When reporting Codex tool-call integrity failures, capture the exact tool input and output, app/CLI/extension version, OS/IDE, workspace git state, affected file path and whether it already existed or was a symlink, diff before/after, tool_call_id sequence, durable thread state for subagents, rollback/revert attempts, and whether a clean repo reproduction fails the same way.
54
40
 
55
41
  ### Privacy
56
42
 
@@ -59,52 +45,18 @@ trace-to-skill detected Codex Windows helper or bundled tool path failure (codex
59
45
 
60
46
  ## Findings
61
47
 
62
- ### 1. Codex Windows helper or bundled tool path failure
63
-
64
- Severity: **high**
65
-
66
- Windows Codex Desktop can expose bundled tools or plugin helpers from MSIX/WindowsApps paths that are discoverable but not executable, breaking search, node_repl, Browser, Chrome, Computer Use, and sandbox startup.
67
-
68
- Evidence:
69
- - `fixtures/codex-windows-helper-path.md:32` Program 'rg.exe' failed to run: An error occurred trying to start process 'C:\Program Files\WindowsApps\OpenAI.Codex_26.527.3686.0_x64__2p2nqsd0c76g0\app\resources\rg.exe' with working directory 'D:\repo'. Access is denied.
70
- - `fixtures/codex-windows-helper-path.md:56` The expected MSIX LocalCache helper bin was either missing or not used:
71
- - `fixtures/codex-windows-helper-path.md:73` One workaround created a junction from `%LOCALAPPDATA%\OpenAI\Codex\bin` to the MSIX LocalCache bin directory. Another workaround installed external ripgrep earlier in PATH and restarted Codex.
72
- - `fixtures/codex-windows-helper-path.md:83` showed that `CodexSandboxUsers` was missing read/execute permissions. Granting:
73
- - `fixtures/codex-windows-helper-path.md:86` icacls "$env:LOCALAPPDATA\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\OpenAI" /grant 'CodexSandboxUsers:(OI)(CI)(RX)' /T
74
- - `fixtures/codex-windows-helper-path.md:94` node_repl kernel exited unexpectedly
75
- - `fixtures/codex-windows-helper-path.md:95` node_repl diagnostics: {"kernel_status":"running","kernel_stderr_tail":"windows sandbox failed: spawn setup refresh","reason":"stdout_eof","stream_error":null}
76
- - `fixtures/codex-windows-helper-path.md:102` errorMessage="UNKNOWN: unknown error, copyfile 'C:\Program Files\WindowsApps\OpenAI.Codex_26.527.3686.0_x64__2p2nqsd0c76g0\app\resources\plugins\openai-bundled\plugins\computer-use.codex-plugin\plugin.json' -> 'C:\Users\user\.codex\.tmp\bun
77
-
78
- Suggested rule:
79
-
80
- > When reporting Codex Windows helper path failures, capture Codex Desktop version, Windows build, install source, terminal/tool-runner context, `Get-Command rg -All`, `where.exe rg`, exact failing helper path, `%LOCALAPPDATA%\OpenAI\Codex\bin` and MSIX LocalCache bin contents, ACL/`icacls` output for CodexSandboxUsers, file attributes such as EFS/Application Protected, node_repl/plugin diagnostics, sandbox mode, and whether installing an external rg, recreating the local bin junction, rerunning sandbox setup, changing elevated/unelevated mode, or restarting Codex changes behavior.
81
-
82
- ### 2. Codex sandbox or permission failure
83
-
84
- Severity: **high**
85
-
86
- Sandbox setup, approval-mode, and workspace permission failures can block every tool call or leave the worktree in a broken ownership state.
87
-
88
- Evidence:
89
- - `fixtures/codex-windows-helper-path.md:75` ## Symptom C: sandbox ACL and plugin helper startup failures
90
- - `fixtures/codex-windows-helper-path.md:95` node_repl diagnostics: {"kernel_status":"running","kernel_stderr_tail":"windows sandbox failed: spawn setup refresh","reason":"stdout_eof","stream_error":null}
91
-
92
- Suggested rule:
93
-
94
- > When Codex sandbox or permission setup fails, capture the OS, Codex version, sandbox_mode, approval_policy, exact stderr, workspace ownership/ACL evidence, and whether a clean directory can run a simple command plus apply_patch.
95
-
96
- ### 3. Codex plugin runtime or bundled capability failure
48
+ ### 1. Codex tool-call integrity or rollback failure
97
49
 
98
50
  Severity: **high**
99
51
 
100
- Codex Desktop can advertise Browser, Computer Use, skills, or connectors while the shared plugin runtime is missing helper paths, stale cache state, or marketplace variants, leaving users without the capability they were told is available.
52
+ Patch, rollback, subagent, and protocol-level tool-call failures can silently overwrite files, strand threads, or make recovery actions fail unless reports preserve exact tool inputs, tool results, durable state, and recovery evidence.
101
53
 
102
54
  Evidence:
103
- - `fixtures/codex-windows-helper-path.md:108` Windows Computer Use helper paths are unavailable
55
+ - `fixtures/codex-apply-patch-overwrite.md:13` apply_patch accepted `*** Add File` for an existing file and silently caused a destructive overwrite instead of failing.
104
56
 
105
57
  Suggested rule:
106
58
 
107
- > When reporting Codex plugin runtime failures, capture app version, OS, plugin name and version, plugin cache path, helper binary/client path, native pipe or helper env vars, plugin/list or settings error text, connector install return flow, cache reconciliation/file-lock logs, whether the UI still lists the plugin, whether restarting resets or downgrades it, and whether a clean profile reproduces the failure.
59
+ > When reporting Codex tool-call integrity failures, capture the exact tool input and output, app/CLI/extension version, OS/IDE, workspace git state, affected file path and whether it already existed or was a symlink, diff before/after, tool_call_id sequence, durable thread state for subagents, rollback/revert attempts, and whether a clean repo reproduction fails the same way.
108
60
 
109
61
 
110
62
  ## Reporter Notes
@@ -118,6 +70,7 @@ Suggested rule:
118
70
  ## Other Demo Scenarios
119
71
 
120
72
  - `remote-compact`: Long sessions break when `/compact` or auto-compaction times out, disconnects, or fails at `responses/compact`.
73
+ - `windows-helper-path`: Windows Desktop exposes bundled rg/node/plugin helpers from WindowsApps or missing LocalCache paths that cannot execute.
121
74
  - `approval-friction`: Repeated approval prompts, Approve for this session misses, and noisy trusted MCP tool approvals.
122
75
  - `latency-regression`: Fast mode feels like Standard, with long thinking, search, read, or compaction stalls.
123
76
  - `token-burn`: Usage drains from background polling, idle activity, compaction loops, retries, or cached-heavy turns.
@@ -130,6 +83,7 @@ Suggested rule:
130
83
  trace-to-skill demo --list
131
84
  trace-to-skill demo remote-compact
132
85
  trace-to-skill demo windows-helper-path
86
+ trace-to-skill demo patch-overwrite
133
87
  trace-to-skill demo file-tree-ui
134
88
  trace-to-skill demo usage-reset-drift
135
89
  ```
package/docs/DISCOVERY.md CHANGED
@@ -89,10 +89,11 @@ npx trace-to-skill suggest ./runs --target agents-md
89
89
  - `schemas/redact-result.schema.json`
90
90
  - `schemas/scorecard-result.schema.json`
91
91
  - `schemas/oss-brief-result.schema.json`
92
+ - `schemas/patch-guard-result.schema.json`
92
93
 
93
94
  ## Related Keywords
94
95
 
95
- Codex, OpenAI Codex, Codex issue report, OpenAI triage, Codex CLI, Codex sandbox, Windows sandbox, Codex Windows helper path, Codex WindowsApps, Codex rg Access Denied, Codex ripgrep, CodexSandboxUsers, LocalCache Local OpenAI Codex bin, node_repl spawn setup refresh, Codex approval friction, Approve for this session, Allow for this session, approval_policy never, MCP approval prompts, default_tools_approval_mode, Playwright MCP approvals, Chrome DevTools MCP approvals, Codex auth, token_exchange_failed, Codex connectivity, stream disconnected, Codex remote compact, responses/compact, /compact timeout, tcp_user_timeout, stream_idle_timeout_ms, Codex remote control, Codex mobile, Waiting for desktop, Directory Unavailable, stale listener, Codex MCP runtime, MCP unsupported call, mcp__node_repl__js, MCP namespace serverName, MCP Transport closed, StdioServerTransport, Codex plugin runtime, Computer Use native pipe path unavailable, SKY_CUA_NATIVE_PIPE_DIRECTORY, Plugin loading failed, plugin/list unknown variant vertical, Codex Browser plugin, Codex Computer Use, Codex Chrome plugin, stale plugin cache, codex plugin add, Codex file tree, Toggle File Tree, missing folder icon, floating file panel stale, file preview fails, workspace navigation, Codex latest-turn drift, Codex replies to earlier messages, stale prompt response, ignoring latest message, previous prompt, auto compaction forgets edits, raw tool payload leak, write_stdin session_id, Codex latency regression, GPT-5.5 Fast slow, Codex too slow, thinking stalls, pre-first-token latency, search/read latency, runtime scheduling latency, Codex resume, Codex session state, rollout JSONL, thread_goals, state_5.sqlite, goals_1.sqlite, archived chats, Codex token burn, Codex usage drain, Codex usage reset, Codex weekly reset drift, reset_at changed, deterministic reset, rate limit reset, write_stdin polling, cached input tokens, compaction tax, background process polling, Codex resource leak, Codex performance, high CPU, high GPU, shell-snapshot, Code Helper Renderer, Codex tool-call integrity, apply_patch, tool_call_id, close_agent, failed revert changes, patch safety, Codex quota, usage limit, rate limits, sensitive files, Codex privacy, .env, private keys, credential files, AGENTS.md, SKILL.md, Claude Code, Cursor, Copilot coding agent, Gemini CLI, MCP, Model Context Protocol, prompt injection, agent evals, AI code review, open-source maintainers, trace redaction, SARIF, GitHub Actions.
96
+ Codex, OpenAI Codex, Codex issue report, OpenAI triage, Codex CLI, Codex sandbox, Windows sandbox, Codex Windows helper path, Codex WindowsApps, Codex rg Access Denied, Codex ripgrep, CodexSandboxUsers, LocalCache Local OpenAI Codex bin, node_repl spawn setup refresh, Codex approval friction, Approve for this session, Allow for this session, approval_policy never, MCP approval prompts, default_tools_approval_mode, Playwright MCP approvals, Chrome DevTools MCP approvals, Codex auth, token_exchange_failed, Codex connectivity, stream disconnected, Codex remote compact, responses/compact, /compact timeout, tcp_user_timeout, stream_idle_timeout_ms, Codex remote control, Codex mobile, Waiting for desktop, Directory Unavailable, stale listener, Codex MCP runtime, MCP unsupported call, mcp__node_repl__js, MCP namespace serverName, MCP Transport closed, StdioServerTransport, Codex plugin runtime, Computer Use native pipe path unavailable, SKY_CUA_NATIVE_PIPE_DIRECTORY, Plugin loading failed, plugin/list unknown variant vertical, Codex Browser plugin, Codex Computer Use, Codex Chrome plugin, stale plugin cache, codex plugin add, Codex file tree, Toggle File Tree, missing folder icon, floating file panel stale, file preview fails, workspace navigation, Codex latest-turn drift, Codex replies to earlier messages, stale prompt response, ignoring latest message, previous prompt, auto compaction forgets edits, raw tool payload leak, write_stdin session_id, Codex latency regression, GPT-5.5 Fast slow, Codex too slow, thinking stalls, pre-first-token latency, search/read latency, runtime scheduling latency, Codex resume, Codex session state, rollout JSONL, thread_goals, state_5.sqlite, goals_1.sqlite, archived chats, Codex token burn, Codex usage drain, Codex usage reset, Codex weekly reset drift, reset_at changed, deterministic reset, rate limit reset, write_stdin polling, cached input tokens, compaction tax, background process polling, Codex resource leak, Codex performance, high CPU, high GPU, shell-snapshot, Code Helper Renderer, Codex tool-call integrity, apply_patch, apply_patch Add File overwrite, patch guard, guard-patch, Add File symlink, tool_call_id, close_agent, failed revert changes, patch safety, Codex quota, usage limit, rate limits, sensitive files, Codex privacy, .env, private keys, credential files, AGENTS.md, SKILL.md, Claude Code, Cursor, Copilot coding agent, Gemini CLI, MCP, Model Context Protocol, prompt injection, agent evals, AI code review, open-source maintainers, trace redaction, SARIF, GitHub Actions.
96
97
 
97
98
  ## Non-Goals
98
99
 
@@ -3,18 +3,18 @@
3
3
  | Field | Value |
4
4
  | --- | --- |
5
5
  | Repository | https://github.com/grnbtqdbyx-create/trace-to-skill |
6
- | Package | trace-to-skill@0.1.52 |
6
+ | Package | trace-to-skill@0.1.53 |
7
7
  | License | Apache-2.0 |
8
8
  | Codex readiness | ready (100/100) |
9
- | Benchmark | pass, 25 cases |
9
+ | Benchmark | pass, 26 cases |
10
10
 
11
11
  ## Why This Repository Qualifies
12
12
 
13
- trace-to-skill helps open-source maintainers adopt Codex safely by turning failed coding-agent runs into evidence-backed rules, reusable workflows, and CI gates. It supports real maintenance work: PR review, issue triage, release quality, MCP risk, prompt-injection defense, privacy-preserving trace sharing, and repeat failure reduction. The repository is ready, scores 100/100 on the local Codex readiness doctor, and ships a deterministic benchmark with 25 public fixture cases.
13
+ trace-to-skill helps open-source maintainers adopt Codex safely by turning failed coding-agent runs into evidence-backed rules, reusable workflows, and CI gates. It supports real maintenance work: PR review, issue triage, release quality, MCP risk, prompt-injection defense, privacy-preserving trace sharing, and repeat failure reduction. The repository is ready, scores 100/100 on the local Codex readiness doctor, and ships a deterministic benchmark with 26 public fixture cases.
14
14
 
15
15
  ### 500-Character Version
16
16
 
17
- > trace-to-skill helps open-source maintainers adopt Codex safely by turning failed coding-agent runs into evidence-backed rules, reusable workflows, and CI gates. It supports real maintenance work: PR review, issue triage, release quality, MCP risk, prompt-injection defense, privacy-preserving trace sharing, and repeat failure reduction. The repository is ready, scores 100/100 on the local Codex readiness doctor, and ships a deterministic benchmark with 25 public fixture cases.
17
+ > trace-to-skill helps open-source maintainers adopt Codex safely by turning failed coding-agent runs into evidence-backed rules, reusable workflows, and CI gates. It supports real maintenance work: PR review, issue triage, release quality, MCP risk, prompt-injection defense, privacy-preserving trace sharing, and repeat failure reduction. The repository is ready, scores 100/100 on the local Codex readiness doctor, and ships a deterministic benchmark with 26 public fixture cases.
18
18
 
19
19
  ## How API Credits Would Be Used
20
20
 
@@ -27,10 +27,10 @@ API credits would power optional maintainer workflows on top of the local determ
27
27
  ## Evidence
28
28
 
29
29
  - Public repository: https://github.com/grnbtqdbyx-create/trace-to-skill
30
- - One-command package: npx trace-to-skill@0.1.52
30
+ - One-command package: npx trace-to-skill@0.1.53
31
31
  - Open-source license: Apache-2.0
32
32
  - Codex readiness doctor: ready, 100/100, 0 failed checks.
33
- - Public fixture benchmark: pass, 25 cases.
33
+ - Public fixture benchmark: pass, 26 cases.
34
34
  - Maintainer control: generated rules are suggestions, evidence is line-linked, and secrets can be redacted before sharing.
35
35
 
36
36
  ## Next Steps Before Submitting
package/docs/SCORECARD.md CHANGED
@@ -9,7 +9,7 @@ Status: **pass**
9
9
  | Failed doctor checks | 0 |
10
10
  | Critical findings | 0 |
11
11
  | Built-in benchmark | pass |
12
- | Benchmark cases | 25 |
12
+ | Benchmark cases | 26 |
13
13
 
14
14
  ## Doctor Summary
15
15
 
@@ -45,6 +45,7 @@ This benchmark runs the public fixture pack that ships with the repository and p
45
45
  | Codex token burn and usage-drain loop | `fixtures/codex-token-burn.md` | 59 | 3 | 0 | `codex_resource_leak`, `codex_token_burn`, `weak_evidence` | pass |
46
46
  | Codex resource leak and runaway process | `fixtures/codex-resource-leak.md` | 75 | 2 | 0 | `codex_resource_leak`, `weak_evidence` | pass |
47
47
  | Codex tool-call integrity and rollback failure | `fixtures/codex-tool-call-integrity.md` | 59 | 3 | 0 | `codex_resource_leak`, `codex_tool_call_integrity`, `weak_evidence` | pass |
48
+ | Codex apply_patch Add File overwrite safety | `fixtures/codex-apply-patch-overwrite.md` | 75 | 2 | 0 | `codex_tool_call_integrity`, `weak_evidence` | pass |
48
49
  | Codex usage reset schedule drift | `fixtures/codex-usage-reset-drift.md` | 75 | 2 | 0 | `codex_usage_reset_drift`, `weak_evidence` | pass |
49
50
  | Untrusted PR comment prompt injection | `fixtures/prompt-injection.md` | 50 | 3 | 1 | `premature_completion`, `prompt_injection`, `weak_evidence` | pass |
50
51
  | Conflicting agent instruction files | `fixtures/instruction-drift` | 84 | 1 | 0 | `ignored_instruction` | pass |
package/docs/USE_CASES.md CHANGED
@@ -11,6 +11,7 @@ npx trace-to-skill demo
11
11
  npx trace-to-skill demo --list
12
12
  npx trace-to-skill demo remote-compact
13
13
  npx trace-to-skill demo windows-helper-path
14
+ npx trace-to-skill demo patch-overwrite
14
15
  npx trace-to-skill demo latency-regression
15
16
  ```
16
17
 
@@ -18,7 +19,7 @@ What it proves:
18
19
 
19
20
  - packaged fixtures can produce a real Codex issue report immediately
20
21
  - maintainers can inspect the output shape before sharing any private log
21
- - demos cover remote compact failures, Windows helper path failures, approval friction, latency, token burn, sensitive files, and prompt injection
22
+ - demos cover remote compact failures, Windows helper path failures, patch overwrite safety, approval friction, latency, token burn, sensitive files, and prompt injection
22
23
 
23
24
  See the generated demo output in [docs/DEMO.md](DEMO.md).
24
25
 
@@ -41,7 +42,7 @@ What it proves:
41
42
  Recommended CI surface:
42
43
 
43
44
  ```yaml
44
- - uses: grnbtqdbyx-create/trace-to-skill@v0.1.52
45
+ - uses: grnbtqdbyx-create/trace-to-skill@v0.1.53
45
46
  with:
46
47
  mode: all
47
48
  doctor-threshold: "85"
@@ -197,7 +198,24 @@ This catches signals such as high `Code Helper (Renderer)` or `Code Helper (Plug
197
198
 
198
199
  Include process names/PIDs, CPU/GPU/RSS samples over time, log-loop snippets, workspace Git-root state, animation/reduce-motion state, and whether closing the panel/app, killing exact PIDs, `git init`, rollback, or restart clears the leak.
199
200
 
200
- ## 16. OpenAI Codex Issue Report
201
+ ## 16. Patch Overwrite Guard
202
+
203
+ Use this before applying a generated patch when you want create/update/delete semantics checked against the actual workspace.
204
+
205
+ ```bash
206
+ npx trace-to-skill guard-patch ./change.patch --root .
207
+ npx trace-to-skill guard-patch ./change.patch --root . --format json
208
+ ```
209
+
210
+ This fails closed when `*** Add File` targets an existing file or symlink, `*** Update File` or `*** Delete File` targets a missing file, or `*** Move to` would overwrite an existing destination. It directly addresses Codex `apply_patch` reports where an add/create operation silently replaced existing contents.
211
+
212
+ For a public demo report:
213
+
214
+ ```bash
215
+ npx trace-to-skill demo patch-overwrite
216
+ ```
217
+
218
+ ## 17. OpenAI Codex Issue Report
201
219
 
202
220
  Use this when you want to file or update an OpenAI/Codex issue with a concise, evidence-backed report instead of pasting a full transcript.
203
221
 
@@ -210,7 +228,7 @@ The report includes the likely Codex failure class, line-linked evidence, diagno
210
228
 
211
229
  For a cluster-to-command map of current Codex issue patterns, see [CODEX_ISSUE_MAP.md](CODEX_ISSUE_MAP.md).
212
230
 
213
- ## 17. Sensitive File Access Evidence
231
+ ## 18. Sensitive File Access Evidence
214
232
 
215
233
  Use this when a trace suggests an agent read, attached, uploaded, diffed, or indexed credential-bearing files.
216
234
 
@@ -223,7 +241,7 @@ This catches signals such as `.env`, `.env.production`, `.npmrc`, `.pypirc`, `.n
223
241
 
224
242
  Before publishing evidence, run `trace-to-skill redact` and attach only redacted excerpts plus the file path/class.
225
243
 
226
- ## 18. GitHub Context Guard
244
+ ## 19. GitHub Context Guard
227
245
 
228
246
  Use this before an agent reads untrusted GitHub text.
229
247
 
@@ -240,7 +258,7 @@ Use it when:
240
258
  - a bot asks Codex to triage untrusted user reports
241
259
  - logs or comments might contain instructions like "ignore previous instructions" or "print secrets"
242
260
 
243
- ## 19. Failed Agent Run To Reviewable Rule
261
+ ## 20. Failed Agent Run To Reviewable Rule
244
262
 
245
263
  Use this when a coding agent made a repeated workflow mistake.
246
264
 
@@ -258,7 +276,7 @@ Recommended maintainer loop:
258
276
  4. Copy only evidence-backed rules into the real policy file.
259
277
  5. Run `eval` or `scorecard` in CI so the same failure does not silently return.
260
278
 
261
- ## 20. Privacy-Preserving Adoption
279
+ ## 21. Privacy-Preserving Adoption
262
280
 
263
281
  Use this when you want public evidence without leaking private traces.
264
282
 
@@ -0,0 +1,68 @@
1
+ # Codex patch overwrite fixture
2
+
3
+ Public source signals:
4
+
5
+ - https://github.com/openai/codex/issues/25399
6
+ - https://github.com/openai/codex/issues/10037
7
+
8
+ ## Symptom
9
+
10
+ Codex CLI `0.135.0` on Linux accepted an `apply_patch` operation using `*** Add File`
11
+ against a path that already existed.
12
+
13
+ apply_patch accepted `*** Add File` for an existing file and silently caused a destructive overwrite instead of failing.
14
+
15
+ The patch body looked like:
16
+
17
+ ```text
18
+ *** Begin Patch
19
+ *** Add File: /tmp/repro/existing.txt
20
+ +new content
21
+ *** End Patch
22
+ ```
23
+
24
+ Observed tool output:
25
+
26
+ ```text
27
+ Success. Updated the following files:
28
+ A /tmp/repro/existing.txt
29
+ ```
30
+
31
+ The existing file previously contained:
32
+
33
+ ```text
34
+ original line 1
35
+ original line 2
36
+ ```
37
+
38
+ After the `Add File` operation, the file contained only:
39
+
40
+ ```text
41
+ new content
42
+ ```
43
+
44
+ ## Why this is high risk
45
+
46
+ The operation is presented as a create/add operation, but the actual behavior is a destructive overwrite.
47
+ In the related `.env` symlink report, the existing workspace path was a symlink and the linked target contents
48
+ were replaced. That makes the audit trail misleading because `A path` reads like creation while the real
49
+ effect can be data loss.
50
+
51
+ ## Minimum triage evidence to capture
52
+
53
+ - Codex CLI/app version and platform.
54
+ - Exact patch text, especially the `*** Add File:` target.
55
+ - Whether the target path existed before the patch.
56
+ - Whether the target path was a symlink and where it pointed.
57
+ - `git diff --stat` or `git diff -- <path>` before and after.
58
+ - Tool output summary showing `A <path>` or any overwrite warning.
59
+ - Whether `Update File` against a missing file and `Delete File` against a missing file behave strictly.
60
+ - Whether a clean temp directory reproduction fails the same way.
61
+
62
+ ## Local guard
63
+
64
+ `trace-to-skill guard-patch` should fail a patch like this before it reaches an apply step:
65
+
66
+ ```bash
67
+ trace-to-skill guard-patch ./change.patch --root .
68
+ ```
@@ -0,0 +1,4 @@
1
+ *** Begin Patch
2
+ *** Add File: README.md
3
+ +this would replace the README if Add File is treated as overwrite
4
+ *** End Patch
package/llms.txt CHANGED
@@ -17,6 +17,7 @@ Runtime: Node.js 20+
17
17
  - Codex remote compact task failures such as `/compact` or auto-compaction hitting `responses/compact` stream disconnects, child-process timeout messages, provider timeout workarounds, and long-thread recovery loss
18
18
  - Codex context compaction failures such as remote compact stream disconnects, `context_length_exceeded`, stuck automatic compaction, and `unknown variant auto`
19
19
  - Codex Windows helper path failures such as bundled `rg.exe`, `node_repl.exe`, Browser, Chrome, or Computer Use helpers resolving through blocked WindowsApps/MSIX package paths, missing `%LOCALAPPDATA%\OpenAI\Codex\bin`, broken LocalCache helper bins, `CodexSandboxUsers` ACL gaps, EFS/copyfile failures, and `missing-helper-path`
20
+ - Codex patch safety failures such as `apply_patch` accepting `*** Add File` for an existing path, misleading `A <path>` summaries, symlink target replacement, and missing preflight checks before generated patches touch the workspace
20
21
  - Codex sandbox and permission failures such as setup refresh errors, `os error 740`, `CodexSandboxOffline` ownership drift, ACL denial, and approval-mode downgrades
21
22
  - Codex auth and connectivity failures such as `token_exchange_failed`, `auth.openai.com/oauth/token`, missing `ca-certificates`, proxy or MITM TLS behavior, IPv6 fallback problems, Cloudflare challenge responses, and ChatGPT stream disconnects
22
23
  - Codex mobile and remote-control route health failures such as `Waiting for desktop`, `Directory Unavailable`, stale listeners on `127.0.0.1:14567`, stale `server_name` enrollment, empty backend environments, and incomplete helper bundles
@@ -63,6 +64,7 @@ npx trace-to-skill doctor .
63
64
  npx trace-to-skill demo
64
65
  npx trace-to-skill lint-agents .
65
66
  npx trace-to-skill guard-github-event "$GITHUB_EVENT_PATH"
67
+ npx trace-to-skill guard-patch ./change.patch --root .
66
68
  npx trace-to-skill redact ./runs --output redacted-runs
67
69
  npx trace-to-skill analyze ./runs
68
70
  npx trace-to-skill codex-report ./runs --output openai-codex-issue.md
@@ -76,7 +78,7 @@ npx trace-to-skill init --comment --sarif
76
78
  ## GitHub Action
77
79
 
78
80
  ```yaml
79
- - uses: grnbtqdbyx-create/trace-to-skill@v0.1.52
81
+ - uses: grnbtqdbyx-create/trace-to-skill@v0.1.53
80
82
  with:
81
83
  mode: all
82
84
  doctor-threshold: "85"
@@ -93,6 +95,7 @@ npx trace-to-skill init --comment --sarif
93
95
  - Doctor JSON schema: https://github.com/grnbtqdbyx-create/trace-to-skill/blob/main/schemas/doctor-result.schema.json
94
96
  - Redaction JSON schema: https://github.com/grnbtqdbyx-create/trace-to-skill/blob/main/schemas/redact-result.schema.json
95
97
  - Scorecard JSON schema: https://github.com/grnbtqdbyx-create/trace-to-skill/blob/main/schemas/scorecard-result.schema.json
98
+ - Patch guard JSON schema: https://github.com/grnbtqdbyx-create/trace-to-skill/blob/main/schemas/patch-guard-result.schema.json
96
99
 
97
100
  ## Search phrases this project should answer
98
101
 
@@ -116,6 +119,9 @@ npx trace-to-skill init --comment --sarif
116
119
  - Codex Get-Command rg WindowsApps app resources
117
120
  - Codex node_repl windows sandbox failed spawn setup refresh
118
121
  - Codex Computer Use helper paths unavailable missing-helper-path
122
+ - Codex apply_patch Add File overwrites existing file
123
+ - Codex patch guard for generated patches
124
+ - trace-to-skill guard-patch Add File symlink
119
125
  - Codex ca-certificates update-ca-certificates Dev Container
120
126
  - Codex remote-control stale listener 127.0.0.1:14567
121
127
  - Codex mobile Waiting for desktop Directory Unavailable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trace-to-skill",
3
- "version": "0.1.52",
3
+ "version": "0.1.53",
4
4
  "description": "Turn failed AI coding-agent runs into reusable AGENTS.md rules, SKILL.md files, and eval evidence.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -105,6 +105,8 @@
105
105
  "codex-resource-leak",
106
106
  "codex-performance",
107
107
  "codex-tool-calls",
108
+ "apply-patch",
109
+ "patch-guard",
108
110
  "patch-safety",
109
111
  "quota-mismatch",
110
112
  "codex-rate-limits",
@@ -0,0 +1,57 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/grnbtqdbyx-create/trace-to-skill/schemas/patch-guard-result.schema.json",
4
+ "title": "trace-to-skill patch guard result",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["generatedAt", "patch", "root", "status", "findings"],
8
+ "properties": {
9
+ "generatedAt": {
10
+ "type": "string",
11
+ "format": "date-time"
12
+ },
13
+ "patch": {
14
+ "type": "string"
15
+ },
16
+ "root": {
17
+ "type": "string"
18
+ },
19
+ "status": {
20
+ "type": "string",
21
+ "enum": ["pass", "fail"]
22
+ },
23
+ "findings": {
24
+ "type": "array",
25
+ "items": {
26
+ "$ref": "#/$defs/finding"
27
+ }
28
+ }
29
+ },
30
+ "$defs": {
31
+ "finding": {
32
+ "type": "object",
33
+ "additionalProperties": false,
34
+ "required": ["operation", "severity", "line", "target", "message"],
35
+ "properties": {
36
+ "operation": {
37
+ "type": "string",
38
+ "enum": ["add", "update", "delete", "move-to"]
39
+ },
40
+ "severity": {
41
+ "type": "string",
42
+ "enum": ["warning", "error"]
43
+ },
44
+ "line": {
45
+ "type": "integer",
46
+ "minimum": 1
47
+ },
48
+ "target": {
49
+ "type": "string"
50
+ },
51
+ "message": {
52
+ "type": "string"
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }