trace-to-skill 0.1.109 → 0.1.111
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 +24 -6
- package/docs/CODEX_DUPLICATE_AUDIT.md +15 -0
- package/docs/OPENAI_OSS_BRIEF.md +2 -2
- package/docs/USE_CASES.md +4 -2
- package/fixtures/action-malicious-inputs.json +41 -0
- package/fixtures/duplicate-audit-action-outputs.json +70 -0
- package/llms.txt +3 -3
- package/package.json +1 -1
- package/schemas/duplicate-audit-action-outputs.schema.json +90 -0
package/README.md
CHANGED
|
@@ -527,6 +527,7 @@ Stable machine-readable contracts are published with the npm package and release
|
|
|
527
527
|
- [`schemas/usage-evidence-result.schema.json`](schemas/usage-evidence-result.schema.json) describes `trace-to-skill usage-evidence --format json`.
|
|
528
528
|
- [`schemas/process-audit-result.schema.json`](schemas/process-audit-result.schema.json) describes `trace-to-skill process-audit --format json`.
|
|
529
529
|
- [`schemas/issue-map-result.schema.json`](schemas/issue-map-result.schema.json) describes `trace-to-skill issue-map --format json`.
|
|
530
|
+
- [`schemas/duplicate-audit-action-outputs.schema.json`](schemas/duplicate-audit-action-outputs.schema.json) describes the duplicate-audit Action output mapping in `fixtures/duplicate-audit-action-outputs.json`.
|
|
530
531
|
- [`schemas/workspace-checkpoint-result.schema.json`](schemas/workspace-checkpoint-result.schema.json) describes `trace-to-skill checkpoint --format json`.
|
|
531
532
|
|
|
532
533
|
These schemas let downstream Codex workflows, dashboards, and CI bots consume reports without scraping Markdown.
|
|
@@ -559,7 +560,7 @@ jobs:
|
|
|
559
560
|
issues: write
|
|
560
561
|
steps:
|
|
561
562
|
- uses: actions/checkout@v5
|
|
562
|
-
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
563
|
+
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
563
564
|
with:
|
|
564
565
|
mode: all
|
|
565
566
|
doctor-threshold: "85"
|
|
@@ -608,7 +609,7 @@ Composite action usage:
|
|
|
608
609
|
|
|
609
610
|
```yaml
|
|
610
611
|
- id: trace-to-skill
|
|
611
|
-
uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
612
|
+
uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
612
613
|
with:
|
|
613
614
|
mode: all
|
|
614
615
|
doctor-threshold: "85"
|
|
@@ -626,7 +627,7 @@ Issue-map action usage for direct GitHub issue demand mining:
|
|
|
626
627
|
|
|
627
628
|
```yaml
|
|
628
629
|
- id: codex-issue-map
|
|
629
|
-
uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
630
|
+
uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
630
631
|
with:
|
|
631
632
|
mode: issue-map
|
|
632
633
|
issue-map-repo: openai/codex
|
|
@@ -643,7 +644,7 @@ Issue-heat action usage for recency-weighted GitHub issue movement:
|
|
|
643
644
|
|
|
644
645
|
```yaml
|
|
645
646
|
- id: codex-issue-heat
|
|
646
|
-
uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
647
|
+
uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
647
648
|
with:
|
|
648
649
|
mode: issue-heat
|
|
649
650
|
issue-heat-repo: openai/codex
|
|
@@ -661,7 +662,7 @@ Duplicate-audit action usage for checking Codex Action duplicate suggestions:
|
|
|
661
662
|
|
|
662
663
|
```yaml
|
|
663
664
|
- id: codex-duplicate-audit
|
|
664
|
-
uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
665
|
+
uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
665
666
|
with:
|
|
666
667
|
mode: duplicate-audit
|
|
667
668
|
duplicate-audit-repo: openai/codex
|
|
@@ -717,9 +718,26 @@ Action outputs:
|
|
|
717
718
|
| `duplicate-audit-report` | Markdown duplicate-audit report path |
|
|
718
719
|
| `duplicate-audit-json` | JSON duplicate-audit report path |
|
|
719
720
|
|
|
721
|
+
Duplicate-audit Action output mapping:
|
|
722
|
+
|
|
723
|
+
| Output | Step output | Source |
|
|
724
|
+
| --- | --- | --- |
|
|
725
|
+
| `duplicate-audit-candidates` | `candidates` | `summary.candidateCount` |
|
|
726
|
+
| `duplicate-audit-likely` | `likely` | `summary.likelyDuplicates` |
|
|
727
|
+
| `duplicate-audit-related` | `related` | `summary.relatedNotDuplicates` |
|
|
728
|
+
| `duplicate-audit-needs-review` | `needs-review` | `summary.needsHumanReview` |
|
|
729
|
+
| `duplicate-audit-weak` | `weak` | `summary.weakMatches` |
|
|
730
|
+
| `duplicate-audit-top-verdict` | `top-verdict` | `candidates[].verdict` |
|
|
731
|
+
| `duplicate-audit-report` | `report` | `trace-to-skill-duplicate-audit.md` |
|
|
732
|
+
| `duplicate-audit-json` | `json` | `trace-to-skill-duplicate-audit.json` |
|
|
733
|
+
|
|
734
|
+
The machine-readable mapping lives in [`fixtures/duplicate-audit-action-outputs.json`](fixtures/duplicate-audit-action-outputs.json) and is described by [`schemas/duplicate-audit-action-outputs.schema.json`](schemas/duplicate-audit-action-outputs.schema.json). The regression test checks that JSON-derived outputs point at fields in [`schemas/duplicate-audit-result.schema.json`](schemas/duplicate-audit-result.schema.json).
|
|
735
|
+
|
|
720
736
|
By default, generated reports are also appended to the GitHub Actions Job Summary. Set `job-summary: "false"` to disable that UI output.
|
|
721
737
|
|
|
722
|
-
Tagged Action releases build and run the CLI from `$GITHUB_ACTION_PATH`, so a workflow pinned to a release tag such as `@v0.1.
|
|
738
|
+
Tagged Action releases build and run the CLI from `$GITHUB_ACTION_PATH`, so a workflow pinned to a release tag such as `@v0.1.111` executes that release's checked-out source instead of pulling the default branch at runtime.
|
|
739
|
+
|
|
740
|
+
Action inputs are passed into bash steps through environment variables before the CLI receives them. The regression fixture at `fixtures/action-malicious-inputs.json` keeps quote, newline, command-substitution, and shell-separator examples out of `run:` scripts so workflow inputs are treated as data.
|
|
723
741
|
|
|
724
742
|
## Codex Skill
|
|
725
743
|
|
|
@@ -12,6 +12,21 @@ trace-to-skill duplicate-audit --repo openai/codex --issue 25507 --format markdo
|
|
|
12
12
|
trace-to-skill duplicate-audit duplicate-audit.json --format json
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
## Action Output Mapping
|
|
16
|
+
|
|
17
|
+
| Output | Step output | Source |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| `duplicate-audit-candidates` | `candidates` | `summary.candidateCount` |
|
|
20
|
+
| `duplicate-audit-likely` | `likely` | `summary.likelyDuplicates` |
|
|
21
|
+
| `duplicate-audit-related` | `related` | `summary.relatedNotDuplicates` |
|
|
22
|
+
| `duplicate-audit-needs-review` | `needs-review` | `summary.needsHumanReview` |
|
|
23
|
+
| `duplicate-audit-weak` | `weak` | `summary.weakMatches` |
|
|
24
|
+
| `duplicate-audit-top-verdict` | `top-verdict` | `candidates[].verdict` |
|
|
25
|
+
| `duplicate-audit-report` | `report` | `trace-to-skill-duplicate-audit.md` |
|
|
26
|
+
| `duplicate-audit-json` | `json` | `trace-to-skill-duplicate-audit.json` |
|
|
27
|
+
|
|
28
|
+
The machine-readable mapping lives in `fixtures/duplicate-audit-action-outputs.json`; `schemas/duplicate-audit-action-outputs.schema.json` describes that fixture, and JSON-derived outputs must point at fields in `schemas/duplicate-audit-result.schema.json`.
|
|
29
|
+
|
|
15
30
|
## Summary
|
|
16
31
|
|
|
17
32
|
- Candidates: 2
|
package/docs/OPENAI_OSS_BRIEF.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
| Field | Value |
|
|
4
4
|
| --- | --- |
|
|
5
5
|
| Repository | https://github.com/grnbtqdbyx-create/trace-to-skill |
|
|
6
|
-
| Package | trace-to-skill@0.1.
|
|
6
|
+
| Package | trace-to-skill@0.1.111 |
|
|
7
7
|
| License | Apache-2.0 |
|
|
8
8
|
| Codex readiness | ready (100/100) |
|
|
9
9
|
| Benchmark | pass, 46 cases |
|
|
@@ -27,7 +27,7 @@ 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.
|
|
30
|
+
- One-command package: npx trace-to-skill@0.1.111
|
|
31
31
|
- Open-source license: Apache-2.0
|
|
32
32
|
- Codex readiness doctor: ready, 100/100, 0 failed checks.
|
|
33
33
|
- Public fixture benchmark: pass, 46 cases.
|
package/docs/USE_CASES.md
CHANGED
|
@@ -61,7 +61,7 @@ What it proves:
|
|
|
61
61
|
Recommended CI surface:
|
|
62
62
|
|
|
63
63
|
```yaml
|
|
64
|
-
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
64
|
+
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
65
65
|
with:
|
|
66
66
|
mode: all
|
|
67
67
|
doctor-threshold: "85"
|
|
@@ -74,7 +74,7 @@ Recommended CI surface:
|
|
|
74
74
|
Duplicate-audit Action mode can also run from CI when you want a stable job summary for Codex Action duplicate suggestions:
|
|
75
75
|
|
|
76
76
|
```yaml
|
|
77
|
-
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
77
|
+
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
78
78
|
with:
|
|
79
79
|
mode: duplicate-audit
|
|
80
80
|
duplicate-audit-repo: openai/codex
|
|
@@ -83,6 +83,8 @@ Duplicate-audit Action mode can also run from CI when you want a stable job summ
|
|
|
83
83
|
github-token: ${{ github.token }}
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
+
The published Action keeps user-controlled inputs out of shell scripts by passing them through step environment variables before invoking the CLI. `fixtures/action-malicious-inputs.json` covers quote, newline, command-substitution, and shell-separator cases so that future Action edits keep those values as data.
|
|
87
|
+
|
|
86
88
|
## 3. GitHub Issue Demand Mining
|
|
87
89
|
|
|
88
90
|
Use this when you want to see what Codex users are actually complaining about on GitHub before choosing the next fixture, report template, or diagnostic helper.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"purpose": "Regression fixture for composite Action inputs that must be treated as data, not shell syntax.",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"name": "semicolon command separator in traces path",
|
|
6
|
+
"input": "traces",
|
|
7
|
+
"env": "INPUT_TRACES",
|
|
8
|
+
"value": "runs; echo PWNED"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "command substitution in doctor path",
|
|
12
|
+
"input": "doctor-path",
|
|
13
|
+
"env": "INPUT_DOCTOR_PATH",
|
|
14
|
+
"value": "$(touch /tmp/trace-to-skill-pwned)"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "newline injection in issue-map repository",
|
|
18
|
+
"input": "issue-map-repo",
|
|
19
|
+
"env": "INPUT_ISSUE_MAP_REPO",
|
|
20
|
+
"value": "openai/codex\nmalicious=true"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "double quote in duplicate candidates",
|
|
24
|
+
"input": "duplicate-audit-candidates",
|
|
25
|
+
"env": "INPUT_DUPLICATE_AUDIT_CANDIDATES",
|
|
26
|
+
"value": "25391,\"25488\""
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "single quote in comment repository",
|
|
30
|
+
"input": "issue-heat-comment-repository",
|
|
31
|
+
"env": "INPUT_ISSUE_HEAT_COMMENT_REPOSITORY",
|
|
32
|
+
"value": "owner/repo' --token leaked"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "environment file redirection text in token",
|
|
36
|
+
"input": "github-token",
|
|
37
|
+
"env": "INPUT_GITHUB_TOKEN",
|
|
38
|
+
"value": "ghs_token >> $GITHUB_ENV"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schemas/duplicate-audit-action-outputs.schema.json",
|
|
3
|
+
"action": "duplicate-audit",
|
|
4
|
+
"outputs": [
|
|
5
|
+
{
|
|
6
|
+
"actionOutput": "duplicate-audit-candidates",
|
|
7
|
+
"stepOutput": "candidates",
|
|
8
|
+
"kind": "json-field",
|
|
9
|
+
"jsonPath": "summary.candidateCount",
|
|
10
|
+
"type": "integer",
|
|
11
|
+
"description": "Number of duplicate candidates checked."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"actionOutput": "duplicate-audit-likely",
|
|
15
|
+
"stepOutput": "likely",
|
|
16
|
+
"kind": "json-field",
|
|
17
|
+
"jsonPath": "summary.likelyDuplicates",
|
|
18
|
+
"type": "integer",
|
|
19
|
+
"description": "Number of candidates scored as likely duplicates."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"actionOutput": "duplicate-audit-related",
|
|
23
|
+
"stepOutput": "related",
|
|
24
|
+
"kind": "json-field",
|
|
25
|
+
"jsonPath": "summary.relatedNotDuplicates",
|
|
26
|
+
"type": "integer",
|
|
27
|
+
"description": "Number of candidates that are related but not exact duplicates."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"actionOutput": "duplicate-audit-needs-review",
|
|
31
|
+
"stepOutput": "needs-review",
|
|
32
|
+
"kind": "json-field",
|
|
33
|
+
"jsonPath": "summary.needsHumanReview",
|
|
34
|
+
"type": "integer",
|
|
35
|
+
"description": "Number of candidates that need maintainer review."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"actionOutput": "duplicate-audit-weak",
|
|
39
|
+
"stepOutput": "weak",
|
|
40
|
+
"kind": "json-field",
|
|
41
|
+
"jsonPath": "summary.weakMatches",
|
|
42
|
+
"type": "integer",
|
|
43
|
+
"description": "Number of weak duplicate matches."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"actionOutput": "duplicate-audit-top-verdict",
|
|
47
|
+
"stepOutput": "top-verdict",
|
|
48
|
+
"kind": "json-field",
|
|
49
|
+
"jsonPath": "candidates[].verdict",
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "Highest-confidence duplicate verdict, or an empty string when there are no candidates."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"actionOutput": "duplicate-audit-report",
|
|
55
|
+
"stepOutput": "report",
|
|
56
|
+
"kind": "artifact-path",
|
|
57
|
+
"path": "trace-to-skill-duplicate-audit.md",
|
|
58
|
+
"type": "path",
|
|
59
|
+
"description": "Markdown duplicate-audit report path generated by the Action."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"actionOutput": "duplicate-audit-json",
|
|
63
|
+
"stepOutput": "json",
|
|
64
|
+
"kind": "artifact-path",
|
|
65
|
+
"path": "trace-to-skill-duplicate-audit.json",
|
|
66
|
+
"type": "path",
|
|
67
|
+
"description": "JSON duplicate-audit report path conforming to schemas/duplicate-audit-result.schema.json."
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
package/llms.txt
CHANGED
|
@@ -146,7 +146,7 @@ gh issue list --repo openai/codex --state all --limit 100 --json number,title,bo
|
|
|
146
146
|
## GitHub Action
|
|
147
147
|
|
|
148
148
|
```yaml
|
|
149
|
-
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
149
|
+
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
150
150
|
with:
|
|
151
151
|
mode: all
|
|
152
152
|
doctor-threshold: "85"
|
|
@@ -159,7 +159,7 @@ gh issue list --repo openai/codex --state all --limit 100 --json number,title,bo
|
|
|
159
159
|
## Weekly Codex Issue Radar
|
|
160
160
|
|
|
161
161
|
```yaml
|
|
162
|
-
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
162
|
+
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
163
163
|
with:
|
|
164
164
|
mode: issue-map
|
|
165
165
|
issue-map-repo: openai/codex
|
|
@@ -174,7 +174,7 @@ gh issue list --repo openai/codex --state all --limit 100 --json number,title,bo
|
|
|
174
174
|
Duplicate audit Action mode:
|
|
175
175
|
|
|
176
176
|
```yaml
|
|
177
|
-
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.
|
|
177
|
+
- uses: grnbtqdbyx-create/trace-to-skill@v0.1.111
|
|
178
178
|
with:
|
|
179
179
|
mode: duplicate-audit
|
|
180
180
|
duplicate-audit-repo: openai/codex
|
package/package.json
CHANGED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/grnbtqdbyx-create/trace-to-skill/main/schemas/duplicate-audit-action-outputs.schema.json",
|
|
4
|
+
"title": "trace-to-skill duplicate-audit Action output mapping",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["action", "outputs"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"action": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"const": "duplicate-audit"
|
|
12
|
+
},
|
|
13
|
+
"outputs": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"minItems": 1,
|
|
16
|
+
"items": {
|
|
17
|
+
"$ref": "#/$defs/outputMapping"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"$defs": {
|
|
22
|
+
"outputMapping": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["actionOutput", "stepOutput", "kind", "description"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"actionOutput": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"pattern": "^duplicate-audit-[a-z0-9-]+$"
|
|
30
|
+
},
|
|
31
|
+
"stepOutput": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"pattern": "^[a-z0-9-]+$"
|
|
34
|
+
},
|
|
35
|
+
"kind": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"enum": ["json-field", "artifact-path"]
|
|
38
|
+
},
|
|
39
|
+
"jsonPath": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"pattern": "^[A-Za-z0-9_.\\[\\]-]+$"
|
|
42
|
+
},
|
|
43
|
+
"path": {
|
|
44
|
+
"type": "string"
|
|
45
|
+
},
|
|
46
|
+
"type": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"enum": ["integer", "string", "path"]
|
|
49
|
+
},
|
|
50
|
+
"description": {
|
|
51
|
+
"type": "string"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"allOf": [
|
|
55
|
+
{
|
|
56
|
+
"if": {
|
|
57
|
+
"properties": {
|
|
58
|
+
"kind": {
|
|
59
|
+
"const": "json-field"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"required": ["kind"]
|
|
63
|
+
},
|
|
64
|
+
"then": {
|
|
65
|
+
"required": ["jsonPath", "type"],
|
|
66
|
+
"not": {
|
|
67
|
+
"required": ["path"]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"if": {
|
|
73
|
+
"properties": {
|
|
74
|
+
"kind": {
|
|
75
|
+
"const": "artifact-path"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"required": ["kind"]
|
|
79
|
+
},
|
|
80
|
+
"then": {
|
|
81
|
+
"required": ["path", "type"],
|
|
82
|
+
"not": {
|
|
83
|
+
"required": ["jsonPath"]
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|