-
-
Notifications
You must be signed in to change notification settings - Fork 468
Expand file tree
/
Copy pathwarden.toml
More file actions
101 lines (88 loc) · 2.34 KB
/
warden.toml
File metadata and controls
101 lines (88 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
version = 1
[defaults]
model = "anthropic/claude-sonnet-4-6"
# Warden's schema does not support per-skill verification config; this is the only
# placement available. Disabled for attribution policy checks: a second verifier
# pass often rejects valid header/NOTICES mismatches (e.g. "NOTICES still documents it").
[defaults.verification]
enabled = false
# Warden's schema does not support per-skill chunking config; these patterns apply
# globally but are tuned for check-code-attribution. Attribution checks need the full
# file header and a NOTICES cross-check — not isolated diff hunks.
[[defaults.chunking.filePatterns]]
pattern = "**/*.api"
mode = "skip"
[[defaults.chunking.filePatterns]]
pattern = "**/gradlew"
mode = "skip"
[[defaults.chunking.filePatterns]]
pattern = "**/gradlew.bat"
mode = "skip"
[[defaults.chunking.filePatterns]]
pattern = "**/*.java"
mode = "whole-file"
[[defaults.chunking.filePatterns]]
pattern = "**/*.kt"
mode = "whole-file"
[[defaults.chunking.filePatterns]]
pattern = "**/*.kts"
mode = "whole-file"
[[defaults.chunking.filePatterns]]
pattern = "THIRD_PARTY_NOTICES.md"
mode = "whole-file"
# Coalesce hunks aggressively for any remaining per-hunk files
[defaults.chunking.coalesce]
enabled = true
maxGapLines = 100
maxChunkSize = 16000
[[skills]]
name = "check-code-attribution"
maxTurns = 30
# Phase 1: report only — Warden comments on PRs but does not block merges.
# Tighten to failOn = "medium" / requestChanges = true once the false-positive baseline is established.
failOn = "off"
reportOn = "medium"
ignorePaths = [
# Infrastructure directories
".agents/**",
".claude/**",
".cursor/**",
".github/**",
".gradle/**",
".idea/**",
".mvn/**",
"gradle/**",
# Generated files
"**/*.aidl",
"**/*.api",
"**/*.g.kt",
"**/*.interp",
"**/*.pb.java",
"**/*.tokens",
"**/build/**",
"**/databinding/*Binding.java",
"**/generated/**",
"**/gradlew",
"**/gradlew.bat",
"**/grpc/*Grpc.java",
"**/ksp/**",
"**/mvnw",
"**/mvnw.cmd",
# Binary files
"**/*.jar",
# Repo docs (attribution examples in prose, not vendored code)
"AGENTS.md",
"CHANGELOG.md",
"CLAUDE.md",
"**/README.md",
# Warden infrastructure
".warden/**",
"warden.toml",
]
[[skills.triggers]]
type = "pull_request"
actions = ["opened", "synchronize"]
requestChanges = false
failCheck = false
[[skills.triggers]]
type = "local"