Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions .github/workflows/warden-sweep.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ on:
workflow_dispatch:
schedule:
# 06:00 UTC every Monday
- cron: "0 6 * * 1"
- cron: '0 6 * * 1'

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false

# contents: write required for sweep to open draft fix PRs
# issues: write required for the sweep tracking issue
Expand All @@ -17,12 +21,13 @@ permissions:
jobs:
sweep:
runs-on: ubuntu-latest
timeout-minutes: 120
env:
WARDEN_MODEL: ${{ secrets.WARDEN_MODEL }}
WARDEN_SENTRY_DSN: ${{ secrets.WARDEN_SENTRY_DSN }}
steps:
- uses: actions/checkout@v4
- uses: getsentry/warden@v0
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: getsentry/warden@2130c979dec0163048d954d9599504e2d9fa2b07
with:
anthropic-api-key: ${{ secrets.WARDEN_ANTHROPIC_API_KEY }}

Expand Down Expand Up @@ -79,7 +84,7 @@ jobs:

- name: Upload Warden findings
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: warden-findings
path: ${{ runner.temp }}/warden-findings.json
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/warden.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
pull_request:
types: [opened, synchronize, reopened]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

# contents: write required for resolving review threads via GraphQL
# See: https://github.com/orgs/community/discussions/44650
permissions:
Expand All @@ -14,11 +18,12 @@ permissions:
jobs:
review:
runs-on: ubuntu-latest
timeout-minutes: 20
env:
WARDEN_MODEL: ${{ secrets.WARDEN_MODEL }}
WARDEN_SENTRY_DSN: ${{ secrets.WARDEN_SENTRY_DSN }}
steps:
- uses: actions/checkout@v4
- uses: getsentry/warden@v0
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: getsentry/warden@2130c979dec0163048d954d9599504e2d9fa2b07
with:
anthropic-api-key: ${{ secrets.WARDEN_ANTHROPIC_API_KEY }}
111 changes: 90 additions & 21 deletions warden.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ version = 1
failOn = "high"
# reportOn: minimum severity that creates PR annotations
reportOn = "medium"
# Avoid noisy no-op PR reporting.
reportOnSuccess = false

# warden-sweep is a full-repo sweep. PR-trigger is intentionally omitted so
# it does not run on every PR. It runs:
Expand All @@ -41,6 +43,8 @@ fixBranchPrefix = "warden-sweep"

[[skills]]
name = "xcodebuildmcp-docs-release-review"
maxTurns = 10
maxFindings = 5
paths = [
"README.md",
"CHANGELOG.md",
Expand All @@ -57,6 +61,8 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "xcodebuildmcp-docs-command-review"
maxTurns = 8
maxFindings = 5
paths = [
"CHANGELOG.md",
]
Expand All @@ -67,6 +73,8 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "xcodebuildmcp-packaging-resource-review"
maxTurns = 10
maxFindings = 5
paths = [
"package.json",
"scripts/copy-build-assets.js",
Expand All @@ -84,6 +92,8 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "xcodebuildmcp-rendering-streaming-review"
maxTurns = 10
maxFindings = 5
paths = [
"src/rendering/**",
"src/types/domain-fragments.ts",
Expand All @@ -101,6 +111,8 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "xcodebuildmcp-runtime-boundary-review"
maxTurns = 8
maxFindings = 5
paths = [
"src/runtime/tool-catalog.ts",
"src/runtime/tool-invoker.ts",
Expand All @@ -119,12 +131,15 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "xcodebuildmcp-snapshot-fixture-review"
maxTurns = 10
maxFindings = 5
paths = [
"src/snapshot-tests/contracts.ts",
"src/snapshot-tests/fixture-io.ts",
"src/snapshot-tests/__tests__/fixture-io.test.ts",
"src/snapshot-tests/__tests__/json-normalize.test.ts",
"src/snapshot-tests/__tests__/json-fixture-schema.test.ts",
"src/snapshot-tests/__fixtures__/**",
"xcodebuildmcp.com/app/docs/_content/testing.mdx",
]

Expand All @@ -134,6 +149,8 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "xcodebuildmcp-structured-output-review"
maxTurns = 8
maxFindings = 5
paths = [
"schemas/structured-output/**",
"src/core/structured-output-schema.ts",
Expand All @@ -150,6 +167,8 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "xcodebuildmcp-test-boundary-review"
maxTurns = 15
maxFindings = 10
paths = [
"src/**/__tests__/**",
"src/test-utils/**",
Expand All @@ -168,6 +187,8 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "xcodebuildmcp-tool-contract-review"
maxTurns = 8
maxFindings = 5
paths = [
"src/mcp/tools/**",
"src/core/manifest/schema.ts",
Expand All @@ -187,19 +208,33 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "wrdn-pii"
remote = "getsentry/warden-skills"
paths = ["**/*"]
remote = "getsentry/warden-skills@6f720b5c4894e374f7a09707bae0de60d8b825df"
paths = [
"src/**/*.ts",
"scripts/**/*.{js,mjs,sh,ts}",
".github/workflows/*.yml",
".github/workflows/*.yaml",
"README.md",
"CHANGELOG.md",
"xcodebuildmcp.com/app/docs/_content/**",
]
ignorePaths = [
"**/*.test.ts",
"**/__tests__/**",
"**/__fixtures__/**",
"**/__snapshots__/**",
"src/snapshot-tests/__fixtures__/**",
]

# Temporarily local-only until the Pi model selector failure seen in PR checks is resolved.
[[skills.triggers]]
type = "pull_request"
actions = ["opened", "synchronize", "reopened"]
type = "local"

[[skills]]
name = "wrdn-authz"
remote = "getsentry/warden-skills"
remote = "getsentry/warden-skills@6f720b5c4894e374f7a09707bae0de60d8b825df"
maxTurns = 15
maxFindings = 5
paths = ["src/**/*.ts"]
ignorePaths = [
"**/*.test.ts",
Expand All @@ -209,13 +244,27 @@ ignorePaths = [
]

[[skills.triggers]]
type = "pull_request"
actions = ["opened", "synchronize", "reopened"]
type = "schedule"

[[skills]]
name = "wrdn-code-execution"
remote = "getsentry/warden-skills"
paths = ["src/**/*.ts", "scripts/**/*.{js,mjs,sh,ts}"]
remote = "getsentry/warden-skills@6f720b5c4894e374f7a09707bae0de60d8b825df"
maxTurns = 10
maxFindings = 5
paths = [
"src/cli.ts",
"src/cli/**",
"src/daemon.ts",
"src/daemon/**",
"src/doctor-cli.ts",
"src/integrations/**",
"src/mcp/resources/**",
"src/mcp/tools/**",
"src/runtime/tool-invoker.ts",
"src/utils/execution/**",
"src/utils/xcodemake/**",
"scripts/**/*.{js,mjs,sh,ts}",
]
ignorePaths = [
"**/*.test.ts",
"**/__tests__/**",
Expand All @@ -229,7 +278,9 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "wrdn-data-exfil"
remote = "getsentry/warden-skills"
remote = "getsentry/warden-skills@6f720b5c4894e374f7a09707bae0de60d8b825df"
maxTurns = 15
maxFindings = 5
paths = ["src/**/*.ts", "scripts/**/*.{js,mjs,sh,ts}"]
ignorePaths = [
"**/*.test.ts",
Expand All @@ -239,12 +290,13 @@ ignorePaths = [
]

[[skills.triggers]]
type = "pull_request"
actions = ["opened", "synchronize", "reopened"]
type = "schedule"

[[skills]]
name = "wrdn-gha-workflows"
remote = "getsentry/warden-skills"
remote = "getsentry/warden-skills@6f720b5c4894e374f7a09707bae0de60d8b825df"
maxTurns = 8
maxFindings = 5
paths = [
".github/workflows/*.yml",
".github/workflows/*.yaml",
Expand All @@ -262,8 +314,23 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "find-bugs"
remote = "getsentry/skills"
paths = ["src/**/*.ts", "scripts/**/*.{js,mjs,ts}"]
remote = "getsentry/skills@b10e2db21d3165de1904bdf3fa64285016765fe5"
maxTurns = 10
maxFindings = 5
paths = [
"src/cli.ts",
"src/cli/**",
"src/daemon.ts",
"src/daemon/**",
"src/doctor-cli.ts",
"src/integrations/**",
"src/mcp/resources/**",
"src/mcp/tools/**",
"src/runtime/**",
"src/server/**",
"src/utils/execution/**",
"scripts/**/*.{js,mjs,ts}",
]
Comment thread
cursor[bot] marked this conversation as resolved.
ignorePaths = [
"**/*.test.ts",
"**/__tests__/**",
Expand All @@ -277,7 +344,9 @@ actions = ["opened", "synchronize", "reopened"]

[[skills]]
name = "code-review"
remote = "getsentry/skills"
remote = "getsentry/skills@b10e2db21d3165de1904bdf3fa64285016765fe5"
maxTurns = 15
maxFindings = 5
paths = ["src/**/*.ts"]
ignorePaths = [
"**/*.test.ts",
Expand All @@ -287,12 +356,13 @@ ignorePaths = [
]

[[skills.triggers]]
type = "pull_request"
actions = ["opened", "synchronize", "reopened"]
type = "schedule"

[[skills]]
name = "code-simplifier"
remote = "getsentry/skills"
remote = "getsentry/skills@b10e2db21d3165de1904bdf3fa64285016765fe5"
maxTurns = 10
maxFindings = 5
paths = ["src/**/*.ts"]
ignorePaths = [
"**/*.test.ts",
Expand All @@ -302,5 +372,4 @@ ignorePaths = [
]

[[skills.triggers]]
type = "pull_request"
actions = ["opened", "synchronize", "reopened"]
type = "local"
Loading