@dougefresh/ci 0.1.15 → 0.1.16
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/dist/defaults.d.ts +13 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +95 -0
- package/dist/defaults.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +119 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +79 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +6 -1
- package/.checkov.yml +0 -7
- package/.env.example +0 -61
- package/.gitattributes +0 -3
- package/.github/actions/install-yq/action.yaml +0 -80
- package/.github/actions/install-yq/scripts/unixish.sh +0 -112
- package/.github/actions/install-yq/scripts/windowsish.ps1 +0 -99
- package/.github/actions/jobtaker/action.yml +0 -29
- package/.github/actions/rust-config/action.yml +0 -34
- package/.github/actions/rust-init/action.yml +0 -75
- package/.github/additional-prompt.md +0 -62
- package/.github/ci-configs/dummy.yml +0 -24
- package/.github/ci-configs/rust/ai.yml +0 -65
- package/.github/ci-configs/rust-default.yml +0 -115
- package/.github/ci-configs/test/01.yml +0 -9
- package/.github/dependabot.yml +0 -26
- package/.github/prompts/create-release-notes.prompt.md +0 -29
- package/.github/prompts/unit-test.prompt.md +0 -77
- package/.github/rust-ci.ts +0 -5
- package/.github/workflows/action-ci.yml +0 -39
- package/.github/workflows/action-review.yml +0 -57
- package/.github/workflows/dummy-release.yml +0 -32
- package/.github/workflows/dummy-test.yml +0 -16
- package/.github/workflows/pages.yml +0 -59
- package/.github/workflows/pr-review.yml +0 -59
- package/.github/workflows/release.yml +0 -36
- package/.github/workflows/rust-release.yml +0 -133
- package/.github/workflows/rust.yml +0 -247
- package/.node-version +0 -1
- package/AGENTS.md +0 -28
- package/Cargo.toml +0 -6
- package/action.yml +0 -50
- package/biome.json +0 -108
- package/bun.lock +0 -39
- package/docs/SUMMARY.md +0 -3
- package/docs/book.toml +0 -49
- package/docs/index.md +0 -32
- package/pre-commit +0 -2
- package/prompt-template.md +0 -180
- package/scripts/bump-version.ts +0 -16
- package/scripts/generate-rust.ts +0 -9
package/AGENTS.md
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
## Key Design Principles
|
|
2
|
-
- TypeScript-based CI config generation (not traditional YAML)
|
|
3
|
-
- Config flows: User TS → JSON generation → Workflow consumption
|
|
4
|
-
- Focus on logical errors and unintended consequences, not design critique, unless your critique reduces maintenance cost or greater flexibility
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Note, this is a personal action / tool. It isn't meant for widespread use.
|
|
8
|
-
It isn't perfect, nor will this ever be perfect.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Review README.md for design flow
|
|
12
|
-
|
|
13
|
-
## GitHub Workflow
|
|
14
|
-
|
|
15
|
-
**Note**: This section only applies when running in GitHub Actions context (when `CI` environment variable is set). Ignore otherwise.
|
|
16
|
-
|
|
17
|
-
### Validation Prompt Detection
|
|
18
|
-
|
|
19
|
-
Before performing code review, verify that `.github/additional-prompt.md` was successfully injected into your prompt context:
|
|
20
|
-
|
|
21
|
-
1. **Self-check**: Check if `.github/additional-prompt.md` is present in your context/prompt
|
|
22
|
-
2. **Report status**:
|
|
23
|
-
- ✅ If found: Proceed with validation tasks defined in that file
|
|
24
|
-
- ❌ If not found: Report "Validation prompt not loaded - skipping QA checks" and continue with standard code review only
|
|
25
|
-
|
|
26
|
-
This ensures the action's prompt generation step (`action.yml` → `prompt` step) executed correctly.
|
|
27
|
-
|
|
28
|
-
|
package/Cargo.toml
DELETED
package/action.yml
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
name: ci-config
|
|
2
|
-
description: config ci config
|
|
3
|
-
author: dougEfresh
|
|
4
|
-
branding:
|
|
5
|
-
icon: scissors
|
|
6
|
-
color: black
|
|
7
|
-
outputs:
|
|
8
|
-
config:
|
|
9
|
-
description: JSON string of the config
|
|
10
|
-
value: ${{ steps.generate.outputs.config }}
|
|
11
|
-
runs:
|
|
12
|
-
using: composite
|
|
13
|
-
steps:
|
|
14
|
-
- name: setup bun
|
|
15
|
-
uses: oven-sh/setup-bun@v2
|
|
16
|
-
- name: install
|
|
17
|
-
shell: bash
|
|
18
|
-
run: |
|
|
19
|
-
cd ${{ github.action_path }}
|
|
20
|
-
bun install
|
|
21
|
-
- name: build
|
|
22
|
-
shell: bash
|
|
23
|
-
run: |
|
|
24
|
-
cd ${{ github.action_path }}
|
|
25
|
-
bun run build
|
|
26
|
-
- id: prompt
|
|
27
|
-
shell: bash
|
|
28
|
-
run: |
|
|
29
|
-
sed -e 's/%REPO%/{{ github.repository }}/g' -e 's/%PR%/{{ github.event.pull_request.number }}/g' \
|
|
30
|
-
${{ github.action_path }}/prompt-template.md > claude-prompt.md
|
|
31
|
-
if [ -f .github/additional-prompt.md ] ; then
|
|
32
|
-
cat .github/additional-prompt.md >> claude-prompt.md
|
|
33
|
-
fi
|
|
34
|
-
- id: generate
|
|
35
|
-
name: generate
|
|
36
|
-
shell: bash
|
|
37
|
-
run: |
|
|
38
|
-
if [ ! -f .github/rust-ci.ts ]; then
|
|
39
|
-
echo "::error::Missing .github/rust-ci.ts config file"
|
|
40
|
-
exit 1
|
|
41
|
-
fi
|
|
42
|
-
if [ .github/rust-ci.ts -ef ${{ github.action_path }}/.github/rust-ci.ts ]; then
|
|
43
|
-
echo "Running in action repo, skipping copy"
|
|
44
|
-
else
|
|
45
|
-
cp -v .github/rust-ci.ts ${{ github.action_path }}/.github/
|
|
46
|
-
fi
|
|
47
|
-
cat ${{ github.action_path }}/.github/rust-ci.ts
|
|
48
|
-
cd ${{ github.action_path }}
|
|
49
|
-
CONFIG="$(bun run ./scripts/generate-rust.ts | jq . --compact-output )"
|
|
50
|
-
echo "config=$CONFIG" >> $GITHUB_OUTPUT
|
package/biome.json
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://biomejs.dev/schemas/2.3.13/schema.json",
|
|
3
|
-
"json": {
|
|
4
|
-
"formatter": {
|
|
5
|
-
"enabled": true,
|
|
6
|
-
"indentStyle": "space",
|
|
7
|
-
"indentWidth": 2
|
|
8
|
-
}
|
|
9
|
-
},
|
|
10
|
-
"vcs": {
|
|
11
|
-
"enabled": false,
|
|
12
|
-
"clientKind": "git",
|
|
13
|
-
"useIgnoreFile": false
|
|
14
|
-
},
|
|
15
|
-
"files": {
|
|
16
|
-
"ignoreUnknown": false,
|
|
17
|
-
"includes": ["**", "!dist/*", "!coverage/"]
|
|
18
|
-
},
|
|
19
|
-
"formatter": {
|
|
20
|
-
"enabled": true,
|
|
21
|
-
"indentStyle": "space",
|
|
22
|
-
"formatWithErrors": true,
|
|
23
|
-
"indentWidth": 2
|
|
24
|
-
},
|
|
25
|
-
"assist": {
|
|
26
|
-
"actions": {
|
|
27
|
-
"source": {
|
|
28
|
-
"organizeImports": "on"
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"linter": {
|
|
33
|
-
"enabled": true,
|
|
34
|
-
"rules": {
|
|
35
|
-
"recommended": true,
|
|
36
|
-
"correctness": {
|
|
37
|
-
"noConstantMathMinMaxClamp": "error",
|
|
38
|
-
"noUndeclaredVariables": "error",
|
|
39
|
-
"noUnusedImports": "error",
|
|
40
|
-
"noUnusedFunctionParameters": "error",
|
|
41
|
-
"noUnusedPrivateClassMembers": "error",
|
|
42
|
-
"useExhaustiveDependencies": {
|
|
43
|
-
"level": "error",
|
|
44
|
-
"options": {
|
|
45
|
-
"reportUnnecessaryDependencies": false
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"noUnusedVariables": "error"
|
|
49
|
-
},
|
|
50
|
-
"style": {
|
|
51
|
-
"noParameterProperties": "error",
|
|
52
|
-
"noYodaExpression": "error",
|
|
53
|
-
"useConsistentBuiltinInstantiation": "error",
|
|
54
|
-
"useFragmentSyntax": "error",
|
|
55
|
-
"useShorthandAssign": "error",
|
|
56
|
-
"noNonNullAssertion": "off",
|
|
57
|
-
"noParameterAssign": "error",
|
|
58
|
-
"useAsConstAssertion": "error",
|
|
59
|
-
"useDefaultParameterLast": "error",
|
|
60
|
-
"useEnumInitializers": "error",
|
|
61
|
-
"useSelfClosingElements": "error",
|
|
62
|
-
"useSingleVarDeclarator": "error",
|
|
63
|
-
"noUnusedTemplateLiteral": "error",
|
|
64
|
-
"useNumberNamespace": "error",
|
|
65
|
-
"noInferrableTypes": "error",
|
|
66
|
-
"noUselessElse": "error",
|
|
67
|
-
"useArrayLiterals": "error"
|
|
68
|
-
},
|
|
69
|
-
"suspicious": {
|
|
70
|
-
"useAwait": "off",
|
|
71
|
-
"noEvolvingTypes": "off",
|
|
72
|
-
"noExplicitAny": "off"
|
|
73
|
-
},
|
|
74
|
-
"complexity": {
|
|
75
|
-
"noUselessStringConcat": "error",
|
|
76
|
-
"noUselessUndefinedInitialization": "error",
|
|
77
|
-
"noVoid": "error",
|
|
78
|
-
"useDateNow": "error",
|
|
79
|
-
"noBannedTypes": "off",
|
|
80
|
-
"noForEach": "off",
|
|
81
|
-
"useOptionalChain": "off",
|
|
82
|
-
"useLiteralKeys": "off"
|
|
83
|
-
},
|
|
84
|
-
"performance": {
|
|
85
|
-
"noAccumulatingSpread": "off"
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
"javascript": {
|
|
90
|
-
"globals": ["Bun", "structuredClone"],
|
|
91
|
-
"formatter": {
|
|
92
|
-
"arrowParentheses": "always",
|
|
93
|
-
"quoteStyle": "single",
|
|
94
|
-
"bracketSameLine": false,
|
|
95
|
-
"semicolons": "always",
|
|
96
|
-
"bracketSpacing": true,
|
|
97
|
-
"trailingCommas": "all",
|
|
98
|
-
"quoteProperties": "asNeeded",
|
|
99
|
-
"enabled": true,
|
|
100
|
-
"attributePosition": "auto",
|
|
101
|
-
"indentWidth": 2,
|
|
102
|
-
"indentStyle": "space",
|
|
103
|
-
"jsxQuoteStyle": "double",
|
|
104
|
-
"lineEnding": "lf",
|
|
105
|
-
"lineWidth": 120
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
package/bun.lock
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"lockfileVersion": 1,
|
|
3
|
-
"configVersion": 0,
|
|
4
|
-
"workspaces": {
|
|
5
|
-
"": {
|
|
6
|
-
"name": "@carteramesh/ci",
|
|
7
|
-
"devDependencies": {
|
|
8
|
-
"@types/bun": "^1.3.6",
|
|
9
|
-
"@types/node": "^24.10.1",
|
|
10
|
-
"@typescript/native-preview": "latest",
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
"packages": {
|
|
15
|
-
"@types/bun": ["@types/bun@1.3.6", "", { "dependencies": { "bun-types": "1.3.6" } }, "sha512-uWCv6FO/8LcpREhenN1d1b6fcspAB+cefwD7uti8C8VffIv0Um08TKMn98FynpTiU38+y2dUO55T11NgDt8VAA=="],
|
|
16
|
-
|
|
17
|
-
"@types/node": ["@types/node@24.10.4", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg=="],
|
|
18
|
-
|
|
19
|
-
"@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260130.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260130.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260130.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260130.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260130.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260130.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260130.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260130.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-lvt9sECmBkrABxl3rMNRAX2unzhYcoNhlTyR7rOvbyM//QTXKUctVD7ByWBvk02et2caUUwIWq2vnygaeW8Mew=="],
|
|
20
|
-
|
|
21
|
-
"@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260130.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Jo5kVoxaewKPn/3bKWyUB/gPR+Tjhj6isLc8VshV4OyFX4n6pkvVyk3ANivl7Kwmiv3WGKGUotbZ71DKCZATwA=="],
|
|
22
|
-
|
|
23
|
-
"@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260130.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-dR0fjdcLykfiDOIKjZMGqPBHVl9Dd/C+jFU43Wr3dcPFPFf1oVYsaWAZBSkTXnN9QP8i0/ZV+ZUr1gDjoi3x0Q=="],
|
|
24
|
-
|
|
25
|
-
"@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260130.1", "", { "os": "linux", "cpu": "arm" }, "sha512-wnx4bY/1u006U67fEkPtPVZ65VYMLgkFqOadGyrUxhtveR5WbbgFUuUBES0mPxvzS4ToZzn94jhcnAvN8VOTcA=="],
|
|
26
|
-
|
|
27
|
-
"@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260130.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-P/1YTpIiFd2pPtHt4sKEmUTaKf1xvuuiV0TvhQ7n2gDYskNjZ66iWCC9w7okjgsmWE9JLh/IRrNcb9FKVk3SHw=="],
|
|
28
|
-
|
|
29
|
-
"@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260130.1", "", { "os": "linux", "cpu": "x64" }, "sha512-OgHVjivuOS22WIZvIm+Pnm7yqFLwonkIrBOxRdew/pPwVGLQVSo+bQ+RocQDj2VFYxXcHs2yXwCk3PDmwLIYYg=="],
|
|
30
|
-
|
|
31
|
-
"@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260130.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-f/DUxQtIWkZq0eUjZHFmaSxterO/ccu1NxFk0L/Oqj7AfjWVDCqrLVgZJKjvwcG5TEb5AVt7GMUpGEAYZQiUvg=="],
|
|
32
|
-
|
|
33
|
-
"@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260130.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Isr051Cq8RbXOUMYYmwLYw8yBGaEG/Zp0sp7HNeYhVVkc3/3KeveEqCk29q1QRwiBr7HnApdzJP7f+lSZk8gmg=="],
|
|
34
|
-
|
|
35
|
-
"bun-types": ["bun-types@1.3.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ=="],
|
|
36
|
-
|
|
37
|
-
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
|
38
|
-
}
|
|
39
|
-
}
|
package/docs/SUMMARY.md
DELETED
package/docs/book.toml
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
[book]
|
|
2
|
-
title = "Kiro Agent Generator"
|
|
3
|
-
authors = ["Doug Chimento"]
|
|
4
|
-
language = "en"
|
|
5
|
-
src = "src"
|
|
6
|
-
|
|
7
|
-
[build]
|
|
8
|
-
build-dir = "book"
|
|
9
|
-
create-missing = false
|
|
10
|
-
use-default-preprocessors = true
|
|
11
|
-
|
|
12
|
-
[output.html]
|
|
13
|
-
default-theme = "Rust"
|
|
14
|
-
preferred-dark-theme = "Ayu"
|
|
15
|
-
smart-punctuation = true
|
|
16
|
-
mathjax-support = true
|
|
17
|
-
#copy-fonts = true
|
|
18
|
-
no-section-label = false
|
|
19
|
-
git-repository-url = "https://github.com/carteraMesh/kiro-generator"
|
|
20
|
-
edit-url-template = "https://github.com/carteraMesh/kiro-generator/edit/main/docs/{path}"
|
|
21
|
-
|
|
22
|
-
[output.html.print]
|
|
23
|
-
enable = true
|
|
24
|
-
|
|
25
|
-
[output.html.fold]
|
|
26
|
-
enable = true
|
|
27
|
-
level = 1
|
|
28
|
-
|
|
29
|
-
[output.html.search]
|
|
30
|
-
enable = true
|
|
31
|
-
limit-results = 30
|
|
32
|
-
teaser-word-count = 30
|
|
33
|
-
use-boolean-and = true
|
|
34
|
-
boost-title = 2
|
|
35
|
-
boost-hierarchy = 1
|
|
36
|
-
boost-paragraph = 1
|
|
37
|
-
expand = true
|
|
38
|
-
heading-split-level = 3
|
|
39
|
-
copy-js = true
|
|
40
|
-
|
|
41
|
-
[preprocessor]
|
|
42
|
-
# [preprocessor.embedify]
|
|
43
|
-
# scroll-to-top.enable = true
|
|
44
|
-
# footer.enable = true
|
|
45
|
-
# footer.message = "Copyright © 2025 • Created with SOL by [dougEfresh](https://github.com/dougeEfresh)"
|
|
46
|
-
|
|
47
|
-
# announcement-banner.enable = false
|
|
48
|
-
# announcement-banner.id = "3.0.11"
|
|
49
|
-
# announcement-banner.message = "*New version [3.0.11](https://github.com/carteraMesh/kiro-generator/releases/tag/3.0.11)*"
|
package/docs/index.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
## About
|
|
2
|
-
|
|
3
|
-
`kiro-generator` (kg) is a CLI tool for managing and generating [Kiro](https://kiro.dev/docs/) agent files.
|
|
4
|
-
|
|
5
|
-
## Why?
|
|
6
|
-
|
|
7
|
-
Because managing config files via `JSON` is the second worse format. Obviously `YAML` files takes 1st prize
|
|
8
|
-
|
|
9
|
-
## Prerequisites
|
|
10
|
-
|
|
11
|
-
- [kiro-cli](https://kiro.dev/cli/)
|
|
12
|
-
- A distaste for `JSON` config files
|
|
13
|
-
|
|
14
|
-
## Features
|
|
15
|
-
|
|
16
|
-
### Config Hierarchy
|
|
17
|
-
|
|
18
|
-
KG provides a hierarchical configuration system that allows you to define and override settings at different levels. The
|
|
19
|
-
schemas is mostly the same as `kiro-cli` JSON's format but defined as TOML, with a few added fields explained in
|
|
20
|
-
[usage](./usage.md)
|
|
21
|
-
|
|
22
|
-
### Agent Declaration
|
|
23
|
-
|
|
24
|
-
By default Agents can be declared globally `~/.kiro/generators/kg.toml` or locally `.kiro/generators/kg.toml`. If both
|
|
25
|
-
are present, the local configuration takes precedence, however both configurations are merged together. You can use
|
|
26
|
-
`--local` argument to ignore global configuration.
|
|
27
|
-
|
|
28
|
-
### Force Permissions
|
|
29
|
-
|
|
30
|
-
You can override toolsettings permissions. For example, you can have your `default` agent deny executing `git push`, but
|
|
31
|
-
override this for special use cases, see [inheritance](config/inheritance.md) and [usage](./usage.md) for more
|
|
32
|
-
information.
|
package/pre-commit
DELETED
package/prompt-template.md
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
REPO: %REPO%
|
|
2
|
-
PR NUMBER: %PR%
|
|
3
|
-
|
|
4
|
-
Perform a comprehensive code review with the following focus areas:
|
|
5
|
-
Provide detailed feedback using inline comments for ONLY issues, no praise inline comments.
|
|
6
|
-
Use top-level comments for general observations or praise
|
|
7
|
-
Do not be shy, I am a big boy and can handle criticism gracefully. I welcome feedback and suggestions.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Rust tooling
|
|
11
|
-
|
|
12
|
-
You should have access to cargo cli. You can use this to verify the build yourself, or use it to run tests (or a specific test)
|
|
13
|
-
If you encounter an error running cargo, please comment on this PR. If you desire more rust tools, such as rust-analyzer, or any cargo plugin to help review then please notify on pull request
|
|
14
|
-
|
|
15
|
-
## Bun tooling
|
|
16
|
-
|
|
17
|
-
You have access to bun cli. Apply the same principles and safety guidelines for bun commands as outlined for cargo commands.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
## Permissions
|
|
21
|
-
|
|
22
|
-
If you are denied access to a tool, shell command, or github API resource (via gh cli) then notify the pull request author that you would like access to that tool.
|
|
23
|
-
As an example, we use CodeCov to our test coverage, if you like to have access to historical data, we can provide you with the CodeCov CLI tool and access.
|
|
24
|
-
In general, if you need something, just ask.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Review this PR against our team checklist:
|
|
28
|
-
|
|
29
|
-
## Code Quality
|
|
30
|
-
- [ ] Code follows our style guide
|
|
31
|
-
- [ ] No commented-out code
|
|
32
|
-
- [ ] Meaningful variable names
|
|
33
|
-
- [ ] DRY principle followed
|
|
34
|
-
|
|
35
|
-
## Testing
|
|
36
|
-
- [ ] Unit tests for new functions
|
|
37
|
-
- [ ] Integration tests for new endpoints
|
|
38
|
-
- [ ] Edge cases covered
|
|
39
|
-
- [ ] Test coverage > 80%
|
|
40
|
-
|
|
41
|
-
## Documentation
|
|
42
|
-
- [ ] README updated if needed
|
|
43
|
-
- [ ] API docs updated
|
|
44
|
-
- [ ] Inline comments for complex logic
|
|
45
|
-
- [ ] CHANGELOG.md updated
|
|
46
|
-
|
|
47
|
-
## Security
|
|
48
|
-
- [ ] No hardcoded credentials
|
|
49
|
-
- [ ] Input validation implemented
|
|
50
|
-
- [ ] Proper error handling
|
|
51
|
-
- [ ] No sensitive data in logs
|
|
52
|
-
|
|
53
|
-
For each item, check if it is satisfied and comment on any that need attention.
|
|
54
|
-
Post a summary comment with checklist results.
|
|
55
|
-
# Claude Code GitHub Action - Safety Instructions
|
|
56
|
-
|
|
57
|
-
## Core Principles
|
|
58
|
-
|
|
59
|
-
- **READ-ONLY BY DEFAULT**: Treat the repository as read-only unless explicitly performing approved review actions
|
|
60
|
-
- **THINK BEFORE EXECUTING**: Carefully consider the implications of every command before running it
|
|
61
|
-
- **SCOPE LIMITATION**: Operate only within the context of the specific pull request being reviewed
|
|
62
|
-
|
|
63
|
-
## Strict Prohibitions
|
|
64
|
-
|
|
65
|
-
### Repository Modifications
|
|
66
|
-
- **NEVER** commit code changes, even if requested
|
|
67
|
-
- **NEVER** push to any branch
|
|
68
|
-
- **NEVER** merge pull requests
|
|
69
|
-
- **NEVER** modify git history (rebase, reset, force push, etc.)
|
|
70
|
-
- **NEVER** create, delete, or modify branches
|
|
71
|
-
- **NEVER** create or modify tags
|
|
72
|
-
|
|
73
|
-
### Workflow & Automation
|
|
74
|
-
- **NEVER** trigger, run, or execute other GitHub workflows
|
|
75
|
-
- **NEVER** modify GitHub Actions workflow files
|
|
76
|
-
- **NEVER** create or modify repository secrets
|
|
77
|
-
- **NEVER** change repository settings or permissions
|
|
78
|
-
|
|
79
|
-
### External Modifications
|
|
80
|
-
- **NEVER** make write/modify API calls to external services
|
|
81
|
-
- **NEVER** publish packages (cargo publish, npm publish, etc.)
|
|
82
|
-
- **NEVER** deploy applications or infrastructure
|
|
83
|
-
- **NEVER** modify external databases or services
|
|
84
|
-
|
|
85
|
-
## Cargo Command Safety
|
|
86
|
-
|
|
87
|
-
### Prohibited Cargo Commands
|
|
88
|
-
- **NEVER** run `cargo publish` or `cargo publish --dry-run` (could leak information)
|
|
89
|
-
- **NEVER** run `cargo install` (modifies global system state)
|
|
90
|
-
- **NEVER** run `cargo uninstall`
|
|
91
|
-
- **NEVER** run `cargo login`
|
|
92
|
-
- **NEVER** run `cargo yank` or `cargo owner`
|
|
93
|
-
- **NEVER** run any cargo subcommands that modify registry state
|
|
94
|
-
|
|
95
|
-
### Allowed Cargo Commands (Read-Only Analysis)
|
|
96
|
-
- ✅ `cargo check` - Type checking and validation
|
|
97
|
-
- ✅ `cargo clippy` - Linting and suggestions
|
|
98
|
-
- ✅ `cargo test` - Running tests (without `--release` for safety)
|
|
99
|
-
- ✅ `cargo build` - Building (prefer `--debug` over `--release`)
|
|
100
|
-
- ✅ `cargo tree` - Dependency analysis
|
|
101
|
-
- ✅ `cargo audit` - Security vulnerability scanning
|
|
102
|
-
- ✅ `cargo fmt --check` - Format checking (never with `--all` or without `--check`)
|
|
103
|
-
- ✅ `cargo doc --no-deps` - Documentation generation (local only)
|
|
104
|
-
- ✅ `cargo metadata` - Project metadata extraction
|
|
105
|
-
|
|
106
|
-
### Cargo Command Safeguards
|
|
107
|
-
- **ALWAYS** run cargo commands with `--locked` when possible to prevent dependency modifications
|
|
108
|
-
- **PREFER** `cargo check` over `cargo build` for faster validation
|
|
109
|
-
- **AVOID** `cargo build --release` unless necessary for performance-critical analysis
|
|
110
|
-
- **NEVER** modify `Cargo.toml` or `Cargo.lock` files
|
|
111
|
-
- **VERIFY** that test runs are isolated and won't affect external systems
|
|
112
|
-
|
|
113
|
-
## Approved GitHub PR Review Actions
|
|
114
|
-
|
|
115
|
-
### Comments & Reviews
|
|
116
|
-
- ✅ Create review comments on specific lines of code
|
|
117
|
-
- ✅ Create general PR comments
|
|
118
|
-
- ✅ Delete or edit your own previous comments
|
|
119
|
-
- ✅ Resolve comment threads you created
|
|
120
|
-
- ✅ Submit reviews (APPROVE, COMMENT, REQUEST_CHANGES)
|
|
121
|
-
|
|
122
|
-
### PR Analysis
|
|
123
|
-
- ✅ Read PR description, files changed, and existing comments
|
|
124
|
-
- ✅ Analyze code quality, security issues, and best practices
|
|
125
|
-
- ✅ Check for breaking changes
|
|
126
|
-
- ✅ Review dependency updates
|
|
127
|
-
|
|
128
|
-
### Limitations
|
|
129
|
-
- ❌ Do NOT resolve other users' comment threads
|
|
130
|
-
- ❌ Do NOT edit other users' comments
|
|
131
|
-
- ❌ Do NOT approve PRs without thorough analysis
|
|
132
|
-
- ❌ Do NOT request changes without clear justification
|
|
133
|
-
|
|
134
|
-
## Risk Assessment Protocol
|
|
135
|
-
|
|
136
|
-
Before running ANY command that could have side effects:
|
|
137
|
-
|
|
138
|
-
1. **ASK**: What is the purpose of this command?
|
|
139
|
-
2. **VERIFY**: Is this command in the allowed list?
|
|
140
|
-
3. **CHECK**: Does this command have any write/modify operations?
|
|
141
|
-
4. **CONFIRM**: Is this command scoped to the current PR only?
|
|
142
|
-
5. **VALIDATE**: Could this command affect external systems or state?
|
|
143
|
-
|
|
144
|
-
If ANY answer raises concern, DO NOT EXECUTE the command.
|
|
145
|
-
|
|
146
|
-
## File System Safety
|
|
147
|
-
|
|
148
|
-
- **READ**: You may read any files in the repository
|
|
149
|
-
- **TEMPORARY**: You may create temporary files for analysis (in `/tmp` or similar)
|
|
150
|
-
- **CLEANUP**: Clean up any temporary files after use
|
|
151
|
-
- **NO MODIFICATION**: Never modify tracked repository files
|
|
152
|
-
|
|
153
|
-
## Network & API Safety
|
|
154
|
-
|
|
155
|
-
- **READ-ONLY APIs**: Only call APIs for reading information (PR details, issue data, etc.)
|
|
156
|
-
- **NO WEBHOOKS**: Never trigger external webhooks or notifications
|
|
157
|
-
- **NO SECRETS**: Never log, expose, or transmit repository secrets
|
|
158
|
-
- **RATE LIMITS**: Be mindful of GitHub API rate limits
|
|
159
|
-
|
|
160
|
-
## Trust & Responsibility
|
|
161
|
-
|
|
162
|
-
You are trusted to perform thorough, helpful PR reviews while respecting these boundaries. These restrictions exist to:
|
|
163
|
-
|
|
164
|
-
- Protect the repository from accidental damage
|
|
165
|
-
- Ensure human oversight for critical decisions (merging, deploying)
|
|
166
|
-
- Prevent unintended external side effects
|
|
167
|
-
- Maintain audit trails and accountability
|
|
168
|
-
|
|
169
|
-
## When In Doubt
|
|
170
|
-
|
|
171
|
-
If you're unsure whether an action is safe or allowed:
|
|
172
|
-
|
|
173
|
-
1. **DON'T DO IT**
|
|
174
|
-
2. Explain what you wanted to do and why
|
|
175
|
-
3. Ask for explicit permission or clarification
|
|
176
|
-
4. Suggest a safer alternative if available
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
**Remember**: Your role is to ANALYZE and ADVISE, not to MODIFY and DEPLOY.
|
package/scripts/bump-version.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bun
|
|
2
|
-
import { readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
-
|
|
4
|
-
const type = process.argv[2] || 'patch';
|
|
5
|
-
const pkg = JSON.parse(readFileSync('package.json', 'utf-8'));
|
|
6
|
-
const [major, minor, patch] = pkg.version.split('.').map(Number);
|
|
7
|
-
|
|
8
|
-
pkg.version =
|
|
9
|
-
type === 'major'
|
|
10
|
-
? `${major + 1}.0.0`
|
|
11
|
-
: type === 'minor'
|
|
12
|
-
? `${major}.${minor + 1}.0`
|
|
13
|
-
: `${major}.${minor}.${patch + 1}`;
|
|
14
|
-
|
|
15
|
-
writeFileSync('package.json', `${JSON.stringify(pkg, null, 2)}\n`);
|
|
16
|
-
console.log(`Bumped to ${pkg.version}`);
|
package/scripts/generate-rust.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bun
|
|
2
|
-
import { resolve } from 'node:path';
|
|
3
|
-
import { pathToFileURL } from 'node:url';
|
|
4
|
-
|
|
5
|
-
const configPath = resolve(process.cwd(), '.github/rust-ci.ts');
|
|
6
|
-
const userConfig = await import(pathToFileURL(configPath).href);
|
|
7
|
-
const config = userConfig.default();
|
|
8
|
-
|
|
9
|
-
console.log(JSON.stringify(config, null, 2));
|