Overview
File Change Frequency Overall
  • There are 66 files with 10,577 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 0 files changed 21-50 times (0 lines of code)
    • 20 files changed 6-20 times (6,210 lines of code)
    • 46 files changed 1-5 times (4,367 lines of code)
0% | 0% | 0% | 58% | 41%
Legend:
101+
51-100
21-50
6-20
1-5

explore: grouped by folders | grouped by update frequency | data
Contributors Count Frequency Overall
  • There are 66 files with 10,577 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 0 files changed by 11-25 contributors (0 lines of code)
    • 5 files changed by 6-10 contributors (1,454 lines of code)
    • 48 files changed by 2-5 contributors (6,615 lines of code)
    • 13 files changed by 1 contributor (2,508 lines of code)
0% | 0% | 13% | 62% | 23%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
py, md, yml, json, yaml, txt, svg, gitignore, sh, css, dockerignore, toml, ps1, jsonl
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
py0% | 0% | 0% | 59% | 40%
yaml0% | 0% | 0% | 0% | 100%
ps10% | 0% | 0% | 0% | 100%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
src0% | 0% | 0% | 75% | 24%
.agents0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
.github0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
prompt_injection_detection.py
in src/guardrails/checks/text
208 6 2025-10-02 2026-09-24 15 5 +1127 / -262 steven@sandboxr.org jbeckwith@openai.com
llm_base.py
in src/guardrails/checks/text
333 9 2025-10-02 2026-09-24 15 5 +1041 / -89 steven@sandboxr.org jbeckwith@openai.com
agents.py
in src/guardrails
413 14 2025-10-02 2026-09-24 12 5 +1847 / -370 steven@sandboxr.org jbeckwith@openai.com
urls.py
in src/guardrails/checks/text
1338 45 2025-10-02 2026-09-22 12 5 +2603 / -195 steven@sandboxr.org seratch@openai.com
hallucination_detection.py
in src/guardrails/checks/text
140 - 2025-10-02 2026-09-10 11 6 +705 / -74 steven@sandboxr.org jbeckwith@openai.com
_base_client.py
in src/guardrails
265 26 2025-10-02 2026-09-10 11 5 +1053 / -233 steven@sandboxr.org jbeckwith@openai.com
pii.py
in src/guardrails/checks/text
427 13 2025-10-02 2026-09-10 11 6 +1498 / -178 steven@sandboxr.org jbeckwith@openai.com
jailbreak.py
in src/guardrails/checks/text
27 - 2025-10-02 2026-09-10 10 5 +436 / -114 steven@sandboxr.org jbeckwith@openai.com
async_engine.py
in src/guardrails/evals/core
279 7 2025-10-02 2026-09-10 10 5 +819 / -100 steven@sandboxr.org jbeckwith@openai.com
client.py
in src/guardrails
551 27 2025-10-02 2026-09-10 10 5 +1956 / -275 steven@sandboxr.org jbeckwith@openai.com
secret_keys.py
in src/guardrails/checks/text
503 16 2025-10-02 2026-09-22 9 6 +1284 / -83 steven@sandboxr.org seratch@openai.com
guardrail_evals.py
in src/guardrails/evals
627 11 2025-10-02 2025-11-19 9 4 +1860 / -180 steven@sandboxr.org 158192461+steven10a@users.n...
types.py
in src/guardrails
140 7 2025-10-02 2026-09-10 8 5 +473 / -36 steven@sandboxr.org jbeckwith@openai.com
keywords.py
in src/guardrails/checks/text
72 3 2025-10-02 2026-08-18 7 5 +347 / -8 steven@sandboxr.org vuhoangminh97@gmail.com
moderation.py
in src/guardrails/checks/text
101 2 2025-10-02 2026-03-28 7 4 +523 / -50 steven@sandboxr.org seratch@openai.com
chat.py
in src/guardrails/resources/chat
119 7 2025-10-02 2026-09-10 7 6 +455 / -79 steven@sandboxr.org jbeckwith@openai.com
runtime.py
in src/guardrails
207 10 2025-10-02 2026-09-10 7 5 +1178 / -35 steven@sandboxr.org jbeckwith@openai.com
responses.py
in src/guardrails/resources/responses
265 5 2025-10-02 2026-09-10 7 6 +812 / -162 steven@sandboxr.org jbeckwith@openai.com
create_vector_store.py
in src/guardrails/utils
93 - 2025-10-02 2026-09-10 6 5 +328 / -30 steven@sandboxr.org jbeckwith@openai.com
_streaming.py
in src/guardrails
102 1 2025-10-02 2026-09-10 6 5 +296 / -42 steven@sandboxr.org jbeckwith@openai.com
off_topic_prompts.py
in src/guardrails/checks/text
20 - 2025-10-02 2025-12-13 5 4 +195 / -11 steven@sandboxr.org 158192461+steven10a@users.n...
user_defined_llm.py
in src/guardrails/checks/text
21 - 2025-10-02 2025-12-13 5 4 +185 / -10 steven@sandboxr.org 158192461+steven10a@users.n...
context.py
in src/guardrails
23 5 2025-10-02 2026-09-10 5 5 +158 / -11 steven@sandboxr.org jbeckwith@openai.com
types.py
in src/guardrails/evals/core
51 4 2025-10-02 2025-10-29 5 4 +253 / -7 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails
56 - 2025-10-02 2026-09-10 5 5 +163 / -12 steven@sandboxr.org jbeckwith@openai.com
benchmark_reporter.py
in src/guardrails/evals/core
154 9 2025-10-02 2025-12-13 5 4 +532 / -70 steven@sandboxr.org 158192461+steven10a@users.n...
visualizer.py
in src/guardrails/evals/core
212 10 2025-10-02 2025-11-19 5 4 +747 / -108 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails/evals
32 1 2025-10-02 2025-10-16 4 4 +76 / -2 steven@sandboxr.org 158192461+steven10a@users.n...
jsonl_loader.py
in src/guardrails/evals/core
34 1 2025-10-02 2025-10-09 4 4 +137 / -7 steven@sandboxr.org 158192461+steven10a@users.n...
calculator.py
in src/guardrails/evals/core
41 2 2025-10-02 2025-10-09 4 4 +193 / -30 steven@sandboxr.org 158192461+steven10a@users.n...
cli.py
in src/guardrails
53 2 2025-10-02 2025-10-09 4 4 +205 / -2 steven@sandboxr.org 158192461+steven10a@users.n...
latency_tester.py
in src/guardrails/evals/core
62 3 2025-10-02 2025-10-09 4 4 +255 / -26 steven@sandboxr.org 158192461+steven10a@users.n...
benchmark_calculator.py
in src/guardrails/evals/core
92 7 2025-10-02 2025-10-09 4 4 +387 / -51 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails/utils
1 - 2025-10-02 2025-10-20 3 3 +28 / -0 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails/resources/responses
5 - 2025-10-02 2025-10-04 3 3 +18 / -2 steven@sandboxr.org seratch@openai.com
__init__.py
in src/guardrails/resources/chat
7 - 2025-10-02 2025-10-04 3 3 +22 / -2 steven@sandboxr.org seratch@openai.com
nsfw.py
in src/guardrails/checks/text
17 - 2025-10-02 2025-12-13 3 3 +172 / -6 steven@sandboxr.org 158192461+steven10a@users.n...
safety_identifier.py
in src/guardrails/utils
24 1 2025-10-30 2026-09-10 3 2 +71 / -3 158192461+steven10a@users.n... jbeckwith@openai.com
__init__.py
in src/guardrails/checks
26 - 2025-10-02 2025-10-04 3 3 +72 / -8 steven@sandboxr.org seratch@openai.com
competitors.py
in src/guardrails/checks/text
29 - 2025-10-02 2025-10-04 3 3 +182 / -2 steven@sandboxr.org seratch@openai.com
context.py
in src/guardrails/utils
38 2 2025-10-02 2025-10-09 3 3 +152 / -8 steven@sandboxr.org 158192461+steven10a@users.n...
spec.py
in src/guardrails
40 2 2025-10-02 2025-11-17 3 3 +218 / -0 steven@sandboxr.org 158192461+steven10a@users.n...
anonymizer.py
in src/guardrails/utils
51 2 2025-11-10 2026-09-10 3 2 +178 / -39 158192461+steven10a@users.n... jbeckwith@openai.com
validate_dataset.py
in src/guardrails/evals/core
55 2 2025-10-02 2025-10-04 3 3 +186 / -4 steven@sandboxr.org seratch@openai.com
mkdocs.yml
in root
73 - 2025-10-02 2025-10-29 3 3 +186 / -1 steven@sandboxr.org 158192461+steven10a@users.n...
json_reporter.py
in src/guardrails/evals/core
87 4 2025-10-02 2025-10-04 3 3 +302 / -14 steven@sandboxr.org seratch@openai.com
registry.py
in src/guardrails
100 8 2025-10-02 2025-10-09 3 3 +533 / -4 steven@sandboxr.org 158192461+steven10a@users.n...
parsing.py
in src/guardrails/utils
147 9 2025-10-02 2026-09-10 3 3 +478 / -2 steven@sandboxr.org jbeckwith@openai.com
schema.py
in src/guardrails/utils
149 7 2025-10-02 2025-10-09 3 3 +563 / -11 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails/checks/text
1 - 2025-10-02 2025-10-03 2 2 +20 / -0 steven@sandboxr.org gabor@openai.com
Files With Most Churn (Top 50)
Based on the number of lines added and deleted across all commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
urls.py
in src/guardrails/checks/text
1338 45 2025-10-02 2026-09-22 12 5 +2603 / -195 steven@sandboxr.org seratch@openai.com
client.py
in src/guardrails
551 27 2025-10-02 2026-09-10 10 5 +1956 / -275 steven@sandboxr.org jbeckwith@openai.com
agents.py
in src/guardrails
413 14 2025-10-02 2026-09-24 12 5 +1847 / -370 steven@sandboxr.org jbeckwith@openai.com
guardrail_evals.py
in src/guardrails/evals
627 11 2025-10-02 2025-11-19 9 4 +1860 / -180 steven@sandboxr.org 158192461+steven10a@users.n...
pii.py
in src/guardrails/checks/text
427 13 2025-10-02 2026-09-10 11 6 +1498 / -178 steven@sandboxr.org jbeckwith@openai.com
prompt_injection_detection.py
in src/guardrails/checks/text
208 6 2025-10-02 2026-09-24 15 5 +1127 / -262 steven@sandboxr.org jbeckwith@openai.com
review_protocol.py
in .agents/skills/implementation-final-review/scripts
1289 28 2026-08-18 2026-08-18 1 1 +1375 / -0 seratch@openai.com seratch@openai.com
secret_keys.py
in src/guardrails/checks/text
503 16 2025-10-02 2026-09-22 9 6 +1284 / -83 steven@sandboxr.org seratch@openai.com
_base_client.py
in src/guardrails
265 26 2025-10-02 2026-09-10 11 5 +1053 / -233 steven@sandboxr.org jbeckwith@openai.com
runtime.py
in src/guardrails
207 10 2025-10-02 2026-09-10 7 5 +1178 / -35 steven@sandboxr.org jbeckwith@openai.com
llm_base.py
in src/guardrails/checks/text
333 9 2025-10-02 2026-09-24 15 5 +1041 / -89 steven@sandboxr.org jbeckwith@openai.com
responses.py
in src/guardrails/resources/responses
265 5 2025-10-02 2026-09-10 7 6 +812 / -162 steven@sandboxr.org jbeckwith@openai.com
async_engine.py
in src/guardrails/evals/core
279 7 2025-10-02 2026-09-10 10 5 +819 / -100 steven@sandboxr.org jbeckwith@openai.com
visualizer.py
in src/guardrails/evals/core
212 10 2025-10-02 2025-11-19 5 4 +747 / -108 steven@sandboxr.org 158192461+steven10a@users.n...
hallucination_detection.py
in src/guardrails/checks/text
140 - 2025-10-02 2026-09-10 11 6 +705 / -74 steven@sandboxr.org jbeckwith@openai.com
review_state.py
in .agents/skills/implementation-final-review/scripts
650 31 2026-08-18 2026-08-18 1 1 +725 / -0 seratch@openai.com seratch@openai.com
benchmark_reporter.py
in src/guardrails/evals/core
154 9 2025-10-02 2025-12-13 5 4 +532 / -70 steven@sandboxr.org 158192461+steven10a@users.n...
schema.py
in src/guardrails/utils
149 7 2025-10-02 2025-10-09 3 3 +563 / -11 steven@sandboxr.org 158192461+steven10a@users.n...
moderation.py
in src/guardrails/checks/text
101 2 2025-10-02 2026-03-28 7 4 +523 / -50 steven@sandboxr.org seratch@openai.com
jailbreak.py
in src/guardrails/checks/text
27 - 2025-10-02 2026-09-10 10 5 +436 / -114 steven@sandboxr.org jbeckwith@openai.com
registry.py
in src/guardrails
100 8 2025-10-02 2025-10-09 3 3 +533 / -4 steven@sandboxr.org 158192461+steven10a@users.n...
chat.py
in src/guardrails/resources/chat
119 7 2025-10-02 2026-09-10 7 6 +455 / -79 steven@sandboxr.org jbeckwith@openai.com
types.py
in src/guardrails
140 7 2025-10-02 2026-09-10 8 5 +473 / -36 steven@sandboxr.org jbeckwith@openai.com
parsing.py
in src/guardrails/utils
147 9 2025-10-02 2026-09-10 3 3 +478 / -2 steven@sandboxr.org jbeckwith@openai.com
benchmark_calculator.py
in src/guardrails/evals/core
92 7 2025-10-02 2025-10-09 4 4 +387 / -51 steven@sandboxr.org 158192461+steven10a@users.n...
create_vector_store.py
in src/guardrails/utils
93 - 2025-10-02 2026-09-10 6 5 +328 / -30 steven@sandboxr.org jbeckwith@openai.com
keywords.py
in src/guardrails/checks/text
72 3 2025-10-02 2026-08-18 7 5 +347 / -8 steven@sandboxr.org vuhoangminh97@gmail.com
_streaming.py
in src/guardrails
102 1 2025-10-02 2026-09-10 6 5 +296 / -42 steven@sandboxr.org jbeckwith@openai.com
output.py
in src/guardrails/utils
93 9 2025-10-02 2025-10-03 2 2 +328 / -0 steven@sandboxr.org gabor@openai.com
conversation.py
in src/guardrails/utils
219 13 2025-10-20 2025-10-20 1 1 +328 / -0 158192461+steven10a@users.n... 158192461+steven10a@users.n...
json_reporter.py
in src/guardrails/evals/core
87 4 2025-10-02 2025-10-04 3 3 +302 / -14 steven@sandboxr.org seratch@openai.com
validate_handoff.py
in .agents/skills/implementation-kickoff/scripts
252 9 2026-08-18 2026-08-18 1 1 +292 / -0 seratch@openai.com seratch@openai.com
latency_tester.py
in src/guardrails/evals/core
62 3 2025-10-02 2025-10-09 4 4 +255 / -26 steven@sandboxr.org 158192461+steven10a@users.n...
types.py
in src/guardrails/evals/core
51 4 2025-10-02 2025-10-29 5 4 +253 / -7 steven@sandboxr.org 158192461+steven10a@users.n...
calculator.py
in src/guardrails/evals/core
41 2 2025-10-02 2025-10-09 4 4 +193 / -30 steven@sandboxr.org 158192461+steven10a@users.n...
spec.py
in src/guardrails
40 2 2025-10-02 2025-11-17 3 3 +218 / -0 steven@sandboxr.org 158192461+steven10a@users.n...
anonymizer.py
in src/guardrails/utils
51 2 2025-11-10 2026-09-10 3 2 +178 / -39 158192461+steven10a@users.n... jbeckwith@openai.com
cli.py
in src/guardrails
53 2 2025-10-02 2025-10-09 4 4 +205 / -2 steven@sandboxr.org 158192461+steven10a@users.n...
off_topic_prompts.py
in src/guardrails/checks/text
20 - 2025-10-02 2025-12-13 5 4 +195 / -11 steven@sandboxr.org 158192461+steven10a@users.n...
user_defined_llm.py
in src/guardrails/checks/text
21 - 2025-10-02 2025-12-13 5 4 +185 / -10 steven@sandboxr.org 158192461+steven10a@users.n...
validate_dataset.py
in src/guardrails/evals/core
55 2 2025-10-02 2025-10-04 3 3 +186 / -4 steven@sandboxr.org seratch@openai.com
mkdocs.yml
in root
73 - 2025-10-02 2025-10-29 3 3 +186 / -1 steven@sandboxr.org 158192461+steven10a@users.n...
competitors.py
in src/guardrails/checks/text
29 - 2025-10-02 2025-10-04 3 3 +182 / -2 steven@sandboxr.org seratch@openai.com
nsfw.py
in src/guardrails/checks/text
17 - 2025-10-02 2025-12-13 3 3 +172 / -6 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails
56 - 2025-10-02 2026-09-10 5 5 +163 / -12 steven@sandboxr.org jbeckwith@openai.com
context.py
in src/guardrails
23 5 2025-10-02 2026-09-10 5 5 +158 / -11 steven@sandboxr.org jbeckwith@openai.com
context.py
in src/guardrails/utils
38 2 2025-10-02 2025-10-09 3 3 +152 / -8 steven@sandboxr.org 158192461+steven10a@users.n...
jsonl_loader.py
in src/guardrails/evals/core
34 1 2025-10-02 2025-10-09 4 4 +137 / -7 steven@sandboxr.org 158192461+steven10a@users.n...
exceptions.py
in src/guardrails
27 5 2025-10-02 2025-10-03 2 2 +122 / -0 steven@sandboxr.org gabor@openai.com
__init__.py
in src/guardrails/evals/core
38 - 2025-10-02 2025-10-03 2 2 +90 / -0 steven@sandboxr.org gabor@openai.com
Files With Most Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
hallucination_detection.py
in src/guardrails/checks/text
140 - 2025-10-02 2026-09-10 11 6 +705 / -74 steven@sandboxr.org jbeckwith@openai.com
pii.py
in src/guardrails/checks/text
427 13 2025-10-02 2026-09-10 11 6 +1498 / -178 steven@sandboxr.org jbeckwith@openai.com
secret_keys.py
in src/guardrails/checks/text
503 16 2025-10-02 2026-09-22 9 6 +1284 / -83 steven@sandboxr.org seratch@openai.com
chat.py
in src/guardrails/resources/chat
119 7 2025-10-02 2026-09-10 7 6 +455 / -79 steven@sandboxr.org jbeckwith@openai.com
responses.py
in src/guardrails/resources/responses
265 5 2025-10-02 2026-09-10 7 6 +812 / -162 steven@sandboxr.org jbeckwith@openai.com
llm_base.py
in src/guardrails/checks/text
333 9 2025-10-02 2026-09-24 15 5 +1041 / -89 steven@sandboxr.org jbeckwith@openai.com
prompt_injection_detection.py
in src/guardrails/checks/text
208 6 2025-10-02 2026-09-24 15 5 +1127 / -262 steven@sandboxr.org jbeckwith@openai.com
urls.py
in src/guardrails/checks/text
1338 45 2025-10-02 2026-09-22 12 5 +2603 / -195 steven@sandboxr.org seratch@openai.com
agents.py
in src/guardrails
413 14 2025-10-02 2026-09-24 12 5 +1847 / -370 steven@sandboxr.org jbeckwith@openai.com
_base_client.py
in src/guardrails
265 26 2025-10-02 2026-09-10 11 5 +1053 / -233 steven@sandboxr.org jbeckwith@openai.com
async_engine.py
in src/guardrails/evals/core
279 7 2025-10-02 2026-09-10 10 5 +819 / -100 steven@sandboxr.org jbeckwith@openai.com
jailbreak.py
in src/guardrails/checks/text
27 - 2025-10-02 2026-09-10 10 5 +436 / -114 steven@sandboxr.org jbeckwith@openai.com
client.py
in src/guardrails
551 27 2025-10-02 2026-09-10 10 5 +1956 / -275 steven@sandboxr.org jbeckwith@openai.com
types.py
in src/guardrails
140 7 2025-10-02 2026-09-10 8 5 +473 / -36 steven@sandboxr.org jbeckwith@openai.com
keywords.py
in src/guardrails/checks/text
72 3 2025-10-02 2026-08-18 7 5 +347 / -8 steven@sandboxr.org vuhoangminh97@gmail.com
runtime.py
in src/guardrails
207 10 2025-10-02 2026-09-10 7 5 +1178 / -35 steven@sandboxr.org jbeckwith@openai.com
create_vector_store.py
in src/guardrails/utils
93 - 2025-10-02 2026-09-10 6 5 +328 / -30 steven@sandboxr.org jbeckwith@openai.com
_streaming.py
in src/guardrails
102 1 2025-10-02 2026-09-10 6 5 +296 / -42 steven@sandboxr.org jbeckwith@openai.com
__init__.py
in src/guardrails
56 - 2025-10-02 2026-09-10 5 5 +163 / -12 steven@sandboxr.org jbeckwith@openai.com
context.py
in src/guardrails
23 5 2025-10-02 2026-09-10 5 5 +158 / -11 steven@sandboxr.org jbeckwith@openai.com
guardrail_evals.py
in src/guardrails/evals
627 11 2025-10-02 2025-11-19 9 4 +1860 / -180 steven@sandboxr.org 158192461+steven10a@users.n...
moderation.py
in src/guardrails/checks/text
101 2 2025-10-02 2026-03-28 7 4 +523 / -50 steven@sandboxr.org seratch@openai.com
types.py
in src/guardrails/evals/core
51 4 2025-10-02 2025-10-29 5 4 +253 / -7 steven@sandboxr.org 158192461+steven10a@users.n...
benchmark_reporter.py
in src/guardrails/evals/core
154 9 2025-10-02 2025-12-13 5 4 +532 / -70 steven@sandboxr.org 158192461+steven10a@users.n...
visualizer.py
in src/guardrails/evals/core
212 10 2025-10-02 2025-11-19 5 4 +747 / -108 steven@sandboxr.org 158192461+steven10a@users.n...
off_topic_prompts.py
in src/guardrails/checks/text
20 - 2025-10-02 2025-12-13 5 4 +195 / -11 steven@sandboxr.org 158192461+steven10a@users.n...
user_defined_llm.py
in src/guardrails/checks/text
21 - 2025-10-02 2025-12-13 5 4 +185 / -10 steven@sandboxr.org 158192461+steven10a@users.n...
benchmark_calculator.py
in src/guardrails/evals/core
92 7 2025-10-02 2025-10-09 4 4 +387 / -51 steven@sandboxr.org 158192461+steven10a@users.n...
jsonl_loader.py
in src/guardrails/evals/core
34 1 2025-10-02 2025-10-09 4 4 +137 / -7 steven@sandboxr.org 158192461+steven10a@users.n...
calculator.py
in src/guardrails/evals/core
41 2 2025-10-02 2025-10-09 4 4 +193 / -30 steven@sandboxr.org 158192461+steven10a@users.n...
latency_tester.py
in src/guardrails/evals/core
62 3 2025-10-02 2025-10-09 4 4 +255 / -26 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails/evals
32 1 2025-10-02 2025-10-16 4 4 +76 / -2 steven@sandboxr.org 158192461+steven10a@users.n...
cli.py
in src/guardrails
53 2 2025-10-02 2025-10-09 4 4 +205 / -2 steven@sandboxr.org 158192461+steven10a@users.n...
mkdocs.yml
in root
73 - 2025-10-02 2025-10-29 3 3 +186 / -1 steven@sandboxr.org 158192461+steven10a@users.n...
validate_dataset.py
in src/guardrails/evals/core
55 2 2025-10-02 2025-10-04 3 3 +186 / -4 steven@sandboxr.org seratch@openai.com
json_reporter.py
in src/guardrails/evals/core
87 4 2025-10-02 2025-10-04 3 3 +302 / -14 steven@sandboxr.org seratch@openai.com
registry.py
in src/guardrails
100 8 2025-10-02 2025-10-09 3 3 +533 / -4 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails/checks
26 - 2025-10-02 2025-10-04 3 3 +72 / -8 steven@sandboxr.org seratch@openai.com
nsfw.py
in src/guardrails/checks/text
17 - 2025-10-02 2025-12-13 3 3 +172 / -6 steven@sandboxr.org 158192461+steven10a@users.n...
competitors.py
in src/guardrails/checks/text
29 - 2025-10-02 2025-10-04 3 3 +182 / -2 steven@sandboxr.org seratch@openai.com
__init__.py
in src/guardrails/resources/chat
7 - 2025-10-02 2025-10-04 3 3 +22 / -2 steven@sandboxr.org seratch@openai.com
__init__.py
in src/guardrails/resources/responses
5 - 2025-10-02 2025-10-04 3 3 +18 / -2 steven@sandboxr.org seratch@openai.com
spec.py
in src/guardrails
40 2 2025-10-02 2025-11-17 3 3 +218 / -0 steven@sandboxr.org 158192461+steven10a@users.n...
parsing.py
in src/guardrails/utils
147 9 2025-10-02 2026-09-10 3 3 +478 / -2 steven@sandboxr.org jbeckwith@openai.com
__init__.py
in src/guardrails/utils
1 - 2025-10-02 2025-10-20 3 3 +28 / -0 steven@sandboxr.org 158192461+steven10a@users.n...
context.py
in src/guardrails/utils
38 2 2025-10-02 2025-10-09 3 3 +152 / -8 steven@sandboxr.org 158192461+steven10a@users.n...
schema.py
in src/guardrails/utils
149 7 2025-10-02 2025-10-09 3 3 +563 / -11 steven@sandboxr.org 158192461+steven10a@users.n...
anonymizer.py
in src/guardrails/utils
51 2 2025-11-10 2026-09-10 3 2 +178 / -39 158192461+steven10a@users.n... jbeckwith@openai.com
safety_identifier.py
in src/guardrails/utils
24 1 2025-10-30 2026-09-10 3 2 +71 / -3 158192461+steven10a@users.n... jbeckwith@openai.com
__init__.py
in src/guardrails/evals/core
38 - 2025-10-02 2025-10-03 2 2 +90 / -0 steven@sandboxr.org gabor@openai.com
Files With Least Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
review_protocol.py
in .agents/skills/implementation-final-review/scripts
1289 28 2026-08-18 2026-08-18 1 1 +1375 / -0 seratch@openai.com seratch@openai.com
review_state.py
in .agents/skills/implementation-final-review/scripts
650 31 2026-08-18 2026-08-18 1 1 +725 / -0 seratch@openai.com seratch@openai.com
validate_handoff.py
in .agents/skills/implementation-kickoff/scripts
252 9 2026-08-18 2026-08-18 1 1 +292 / -0 seratch@openai.com seratch@openai.com
conversation.py
in src/guardrails/utils
219 13 2025-10-20 2025-10-20 1 1 +328 / -0 158192461+steven10a@users.n... 158192461+steven10a@users.n...
run.ps1
in .agents/skills/code-change-verification/scripts
42 - 2026-08-18 2026-08-18 1 1 +52 / -0 seratch@openai.com seratch@openai.com
dependabot.yml
in .github
24 - 2026-09-10 2026-09-10 1 1 +27 / -0 jbeckwith@openai.com jbeckwith@openai.com
openai.yaml
in .agents/skills/implementation-kickoff/agents
6 - 2026-08-18 2026-08-18 1 1 +6 / -0 seratch@openai.com seratch@openai.com
openai.yaml
in .agents/skills/implementation-final-review/agents
6 - 2026-08-18 2026-08-18 1 1 +7 / -0 seratch@openai.com seratch@openai.com
openai.yaml
in .agents/skills/code-change-verification/agents
4 - 2026-08-18 2026-08-18 1 1 +4 / -0 seratch@openai.com seratch@openai.com
openai.yaml
in .agents/skills/final-release-review/agents
4 - 2026-08-21 2026-08-21 1 1 +4 / -0 seratch@openai.com seratch@openai.com
openai.yaml
in .agents/skills/implementation-strategy/agents
4 - 2026-08-18 2026-08-18 1 1 +4 / -0 seratch@openai.com seratch@openai.com
openai.yaml
in .agents/skills/pr-draft-summary/agents
4 - 2026-08-18 2026-08-18 1 1 +4 / -0 seratch@openai.com seratch@openai.com
openai.yaml
in .agents/skills/maintainer-review/agents
4 - 2026-08-18 2026-08-26 2 1 +8 / -4 seratch@openai.com seratch@openai.com
output.py
in src/guardrails/utils
93 9 2025-10-02 2025-10-03 2 2 +328 / -0 steven@sandboxr.org gabor@openai.com
anonymizer.py
in src/guardrails/utils
51 2 2025-11-10 2026-09-10 3 2 +178 / -39 158192461+steven10a@users.n... jbeckwith@openai.com
__init__.py
in src/guardrails/evals/core
38 - 2025-10-02 2025-10-03 2 2 +90 / -0 steven@sandboxr.org gabor@openai.com
exceptions.py
in src/guardrails
27 5 2025-10-02 2025-10-03 2 2 +122 / -0 steven@sandboxr.org gabor@openai.com
safety_identifier.py
in src/guardrails/utils
24 1 2025-10-30 2026-09-10 3 2 +71 / -3 158192461+steven10a@users.n... jbeckwith@openai.com
__init__.py
in src/guardrails/checks/text
1 - 2025-10-02 2025-10-03 2 2 +20 / -0 steven@sandboxr.org gabor@openai.com
schema.py
in src/guardrails/utils
149 7 2025-10-02 2025-10-09 3 3 +563 / -11 steven@sandboxr.org 158192461+steven10a@users.n...
parsing.py
in src/guardrails/utils
147 9 2025-10-02 2026-09-10 3 3 +478 / -2 steven@sandboxr.org jbeckwith@openai.com
registry.py
in src/guardrails
100 8 2025-10-02 2025-10-09 3 3 +533 / -4 steven@sandboxr.org 158192461+steven10a@users.n...
json_reporter.py
in src/guardrails/evals/core
87 4 2025-10-02 2025-10-04 3 3 +302 / -14 steven@sandboxr.org seratch@openai.com
mkdocs.yml
in root
73 - 2025-10-02 2025-10-29 3 3 +186 / -1 steven@sandboxr.org 158192461+steven10a@users.n...
validate_dataset.py
in src/guardrails/evals/core
55 2 2025-10-02 2025-10-04 3 3 +186 / -4 steven@sandboxr.org seratch@openai.com
spec.py
in src/guardrails
40 2 2025-10-02 2025-11-17 3 3 +218 / -0 steven@sandboxr.org 158192461+steven10a@users.n...
context.py
in src/guardrails/utils
38 2 2025-10-02 2025-10-09 3 3 +152 / -8 steven@sandboxr.org 158192461+steven10a@users.n...
competitors.py
in src/guardrails/checks/text
29 - 2025-10-02 2025-10-04 3 3 +182 / -2 steven@sandboxr.org seratch@openai.com
__init__.py
in src/guardrails/checks
26 - 2025-10-02 2025-10-04 3 3 +72 / -8 steven@sandboxr.org seratch@openai.com
nsfw.py
in src/guardrails/checks/text
17 - 2025-10-02 2025-12-13 3 3 +172 / -6 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails/resources/chat
7 - 2025-10-02 2025-10-04 3 3 +22 / -2 steven@sandboxr.org seratch@openai.com
__init__.py
in src/guardrails/resources/responses
5 - 2025-10-02 2025-10-04 3 3 +18 / -2 steven@sandboxr.org seratch@openai.com
__init__.py
in src/guardrails/utils
1 - 2025-10-02 2025-10-20 3 3 +28 / -0 steven@sandboxr.org 158192461+steven10a@users.n...
guardrail_evals.py
in src/guardrails/evals
627 11 2025-10-02 2025-11-19 9 4 +1860 / -180 steven@sandboxr.org 158192461+steven10a@users.n...
visualizer.py
in src/guardrails/evals/core
212 10 2025-10-02 2025-11-19 5 4 +747 / -108 steven@sandboxr.org 158192461+steven10a@users.n...
benchmark_reporter.py
in src/guardrails/evals/core
154 9 2025-10-02 2025-12-13 5 4 +532 / -70 steven@sandboxr.org 158192461+steven10a@users.n...
moderation.py
in src/guardrails/checks/text
101 2 2025-10-02 2026-03-28 7 4 +523 / -50 steven@sandboxr.org seratch@openai.com
benchmark_calculator.py
in src/guardrails/evals/core
92 7 2025-10-02 2025-10-09 4 4 +387 / -51 steven@sandboxr.org 158192461+steven10a@users.n...
latency_tester.py
in src/guardrails/evals/core
62 3 2025-10-02 2025-10-09 4 4 +255 / -26 steven@sandboxr.org 158192461+steven10a@users.n...
cli.py
in src/guardrails
53 2 2025-10-02 2025-10-09 4 4 +205 / -2 steven@sandboxr.org 158192461+steven10a@users.n...
types.py
in src/guardrails/evals/core
51 4 2025-10-02 2025-10-29 5 4 +253 / -7 steven@sandboxr.org 158192461+steven10a@users.n...
calculator.py
in src/guardrails/evals/core
41 2 2025-10-02 2025-10-09 4 4 +193 / -30 steven@sandboxr.org 158192461+steven10a@users.n...
jsonl_loader.py
in src/guardrails/evals/core
34 1 2025-10-02 2025-10-09 4 4 +137 / -7 steven@sandboxr.org 158192461+steven10a@users.n...
__init__.py
in src/guardrails/evals
32 1 2025-10-02 2025-10-16 4 4 +76 / -2 steven@sandboxr.org 158192461+steven10a@users.n...
user_defined_llm.py
in src/guardrails/checks/text
21 - 2025-10-02 2025-12-13 5 4 +185 / -10 steven@sandboxr.org 158192461+steven10a@users.n...
off_topic_prompts.py
in src/guardrails/checks/text
20 - 2025-10-02 2025-12-13 5 4 +195 / -11 steven@sandboxr.org 158192461+steven10a@users.n...
urls.py
in src/guardrails/checks/text
1338 45 2025-10-02 2026-09-22 12 5 +2603 / -195 steven@sandboxr.org seratch@openai.com
client.py
in src/guardrails
551 27 2025-10-02 2026-09-10 10 5 +1956 / -275 steven@sandboxr.org jbeckwith@openai.com
agents.py
in src/guardrails
413 14 2025-10-02 2026-09-24 12 5 +1847 / -370 steven@sandboxr.org jbeckwith@openai.com
llm_base.py
in src/guardrails/checks/text
333 9 2025-10-02 2026-09-24 15 5 +1041 / -89 steven@sandboxr.org jbeckwith@openai.com
Correlations

File Size vs. Number of Changes: 66 points

src/guardrails/checks/text/prompt_injection_detection.py x: 208 lines of code y: 15 # changes src/guardrails/agents.py x: 413 lines of code y: 12 # changes src/guardrails/checks/text/llm_base.py x: 333 lines of code y: 15 # changes src/guardrails/checks/text/secret_keys.py x: 503 lines of code y: 9 # changes src/guardrails/checks/text/urls.py x: 1338 lines of code y: 12 # changes src/guardrails/resources/chat/chat.py x: 119 lines of code y: 7 # changes src/guardrails/resources/responses/responses.py x: 265 lines of code y: 7 # changes src/guardrails/checks/text/pii.py x: 427 lines of code y: 11 # changes src/guardrails/utils/anonymizer.py x: 51 lines of code y: 3 # changes src/guardrails/_base_client.py x: 265 lines of code y: 11 # changes src/guardrails/utils/safety_identifier.py x: 24 lines of code y: 3 # changes src/guardrails/evals/core/async_engine.py x: 279 lines of code y: 10 # changes .github/dependabot.yml x: 24 lines of code y: 1 # changes src/guardrails/__init__.py x: 56 lines of code y: 5 # changes src/guardrails/_streaming.py x: 102 lines of code y: 6 # changes src/guardrails/checks/text/hallucination_detection.py x: 140 lines of code y: 11 # changes src/guardrails/checks/text/jailbreak.py x: 27 lines of code y: 10 # changes src/guardrails/client.py x: 551 lines of code y: 10 # changes src/guardrails/context.py x: 23 lines of code y: 5 # changes src/guardrails/runtime.py x: 207 lines of code y: 7 # changes src/guardrails/types.py x: 140 lines of code y: 8 # changes src/guardrails/utils/create_vector_store.py x: 93 lines of code y: 6 # changes src/guardrails/utils/parsing.py x: 147 lines of code y: 3 # changes .agents/skills/maintainer-review/agents/openai.yaml x: 4 lines of code y: 2 # changes .agents/skills/final-release-review/agents/openai.yaml x: 4 lines of code y: 1 # changes src/guardrails/checks/text/keywords.py x: 72 lines of code y: 7 # changes .agents/skills/code-change-verification/scripts/run.ps1 x: 42 lines of code y: 1 # changes .agents/skills/implementation-final-review/agents/openai.yaml x: 6 lines of code y: 1 # changes .agents/skills/implementation-final-review/scripts/review_protocol.py x: 1289 lines of code y: 1 # changes .agents/skills/implementation-final-review/scripts/review_state.py x: 650 lines of code y: 1 # changes .agents/skills/implementation-kickoff/scripts/validate_handoff.py x: 252 lines of code y: 1 # changes src/guardrails/checks/text/moderation.py x: 101 lines of code y: 7 # changes src/guardrails/checks/text/nsfw.py x: 17 lines of code y: 3 # changes src/guardrails/checks/text/off_topic_prompts.py x: 20 lines of code y: 5 # changes src/guardrails/evals/core/benchmark_reporter.py x: 154 lines of code y: 5 # changes src/guardrails/evals/core/visualizer.py x: 212 lines of code y: 5 # changes src/guardrails/evals/guardrail_evals.py x: 627 lines of code y: 9 # changes src/guardrails/spec.py x: 40 lines of code y: 3 # changes mkdocs.yml x: 73 lines of code y: 3 # changes src/guardrails/evals/core/types.py x: 51 lines of code y: 5 # changes src/guardrails/utils/__init__.py x: 1 lines of code y: 3 # changes src/guardrails/utils/conversation.py x: 219 lines of code y: 1 # changes src/guardrails/evals/__init__.py x: 32 lines of code y: 4 # changes src/guardrails/cli.py x: 53 lines of code y: 4 # changes src/guardrails/evals/core/benchmark_calculator.py x: 92 lines of code y: 4 # changes src/guardrails/evals/core/calculator.py x: 41 lines of code y: 4 # changes src/guardrails/evals/core/jsonl_loader.py x: 34 lines of code y: 4 # changes src/guardrails/evals/core/latency_tester.py x: 62 lines of code y: 4 # changes src/guardrails/registry.py x: 100 lines of code y: 3 # changes src/guardrails/utils/context.py x: 38 lines of code y: 3 # changes src/guardrails/utils/schema.py x: 149 lines of code y: 3 # changes src/guardrails/checks/__init__.py x: 26 lines of code y: 3 # changes src/guardrails/checks/text/competitors.py x: 29 lines of code y: 3 # changes src/guardrails/evals/core/json_reporter.py x: 87 lines of code y: 3 # changes src/guardrails/evals/core/validate_dataset.py x: 55 lines of code y: 3 # changes src/guardrails/resources/chat/__init__.py x: 7 lines of code y: 3 # changes src/guardrails/checks/text/__init__.py x: 1 lines of code y: 2 # changes src/guardrails/evals/core/__init__.py x: 38 lines of code y: 2 # changes src/guardrails/exceptions.py x: 27 lines of code y: 2 # changes src/guardrails/utils/output.py x: 93 lines of code y: 2 # changes
15.0
# changes
  min: 1.0
  average: 4.83
  25th percentile: 2.0
  median: 3.5
  75th percentile: 7.0
  max: 15.0
0 1338.0
lines of code
min: 1.0 | average: 160.26 | 25th percentile: 24.0 | median: 59.0 | 75th percentile: 207.25 | max: 1338.0

Number of Contributors vs. Number of Changes: 66 points

src/guardrails/checks/text/prompt_injection_detection.py x: 5 # contributors y: 15 # changes src/guardrails/agents.py x: 5 # contributors y: 12 # changes src/guardrails/checks/text/secret_keys.py x: 6 # contributors y: 9 # changes src/guardrails/resources/chat/chat.py x: 6 # contributors y: 7 # changes src/guardrails/checks/text/pii.py x: 6 # contributors y: 11 # changes src/guardrails/utils/anonymizer.py x: 2 # contributors y: 3 # changes src/guardrails/_base_client.py x: 5 # contributors y: 11 # changes src/guardrails/evals/core/async_engine.py x: 5 # contributors y: 10 # changes .github/dependabot.yml x: 1 # contributors y: 1 # changes src/guardrails/__init__.py x: 5 # contributors y: 5 # changes src/guardrails/_streaming.py x: 5 # contributors y: 6 # changes src/guardrails/runtime.py x: 5 # contributors y: 7 # changes src/guardrails/types.py x: 5 # contributors y: 8 # changes src/guardrails/utils/parsing.py x: 3 # contributors y: 3 # changes .agents/skills/maintainer-review/agents/openai.yaml x: 1 # contributors y: 2 # changes src/guardrails/checks/text/moderation.py x: 4 # contributors y: 7 # changes src/guardrails/checks/text/off_topic_prompts.py x: 4 # contributors y: 5 # changes src/guardrails/evals/guardrail_evals.py x: 4 # contributors y: 9 # changes src/guardrails/evals/__init__.py x: 4 # contributors y: 4 # changes src/guardrails/checks/text/__init__.py x: 2 # contributors y: 2 # changes
15.0
# changes
  min: 1.0
  average: 4.83
  25th percentile: 2.0
  median: 3.5
  75th percentile: 7.0
  max: 15.0
0 6.0
# contributors
min: 1.0 | average: 3.39 | 25th percentile: 2.0 | median: 3.5 | 75th percentile: 5.0 | max: 6.0

Number of Contributors vs. File Size: 66 points

src/guardrails/checks/text/prompt_injection_detection.py x: 5 # contributors y: 208 lines of code src/guardrails/agents.py x: 5 # contributors y: 413 lines of code src/guardrails/checks/text/llm_base.py x: 5 # contributors y: 333 lines of code src/guardrails/checks/text/secret_keys.py x: 6 # contributors y: 503 lines of code src/guardrails/checks/text/urls.py x: 5 # contributors y: 1338 lines of code src/guardrails/resources/chat/chat.py x: 6 # contributors y: 119 lines of code src/guardrails/resources/responses/responses.py x: 6 # contributors y: 265 lines of code src/guardrails/checks/text/pii.py x: 6 # contributors y: 427 lines of code src/guardrails/utils/anonymizer.py x: 2 # contributors y: 51 lines of code src/guardrails/_base_client.py x: 5 # contributors y: 265 lines of code src/guardrails/utils/safety_identifier.py x: 2 # contributors y: 24 lines of code src/guardrails/evals/core/async_engine.py x: 5 # contributors y: 279 lines of code .github/dependabot.yml x: 1 # contributors y: 24 lines of code src/guardrails/__init__.py x: 5 # contributors y: 56 lines of code src/guardrails/_streaming.py x: 5 # contributors y: 102 lines of code src/guardrails/checks/text/hallucination_detection.py x: 6 # contributors y: 140 lines of code src/guardrails/checks/text/jailbreak.py x: 5 # contributors y: 27 lines of code src/guardrails/client.py x: 5 # contributors y: 551 lines of code src/guardrails/context.py x: 5 # contributors y: 23 lines of code src/guardrails/types.py x: 5 # contributors y: 140 lines of code src/guardrails/utils/create_vector_store.py x: 5 # contributors y: 93 lines of code src/guardrails/utils/parsing.py x: 3 # contributors y: 147 lines of code .agents/skills/maintainer-review/agents/openai.yaml x: 1 # contributors y: 4 lines of code src/guardrails/checks/text/keywords.py x: 5 # contributors y: 72 lines of code .agents/skills/code-change-verification/scripts/run.ps1 x: 1 # contributors y: 42 lines of code .agents/skills/implementation-final-review/agents/openai.yaml x: 1 # contributors y: 6 lines of code .agents/skills/implementation-final-review/scripts/review_protocol.py x: 1 # contributors y: 1289 lines of code .agents/skills/implementation-final-review/scripts/review_state.py x: 1 # contributors y: 650 lines of code .agents/skills/implementation-kickoff/scripts/validate_handoff.py x: 1 # contributors y: 252 lines of code src/guardrails/checks/text/moderation.py x: 4 # contributors y: 101 lines of code src/guardrails/checks/text/nsfw.py x: 3 # contributors y: 17 lines of code src/guardrails/checks/text/off_topic_prompts.py x: 4 # contributors y: 20 lines of code src/guardrails/evals/core/benchmark_reporter.py x: 4 # contributors y: 154 lines of code src/guardrails/evals/core/visualizer.py x: 4 # contributors y: 212 lines of code src/guardrails/evals/guardrail_evals.py x: 4 # contributors y: 627 lines of code src/guardrails/spec.py x: 3 # contributors y: 40 lines of code mkdocs.yml x: 3 # contributors y: 73 lines of code src/guardrails/evals/core/types.py x: 4 # contributors y: 51 lines of code src/guardrails/utils/__init__.py x: 3 # contributors y: 1 lines of code src/guardrails/utils/conversation.py x: 1 # contributors y: 219 lines of code src/guardrails/evals/__init__.py x: 4 # contributors y: 32 lines of code src/guardrails/cli.py x: 4 # contributors y: 53 lines of code src/guardrails/evals/core/benchmark_calculator.py x: 4 # contributors y: 92 lines of code src/guardrails/evals/core/calculator.py x: 4 # contributors y: 41 lines of code src/guardrails/evals/core/latency_tester.py x: 4 # contributors y: 62 lines of code src/guardrails/registry.py x: 3 # contributors y: 100 lines of code src/guardrails/utils/schema.py x: 3 # contributors y: 149 lines of code src/guardrails/checks/__init__.py x: 3 # contributors y: 26 lines of code src/guardrails/checks/text/competitors.py x: 3 # contributors y: 29 lines of code src/guardrails/evals/core/json_reporter.py x: 3 # contributors y: 87 lines of code src/guardrails/evals/core/validate_dataset.py x: 3 # contributors y: 55 lines of code src/guardrails/resources/chat/__init__.py x: 3 # contributors y: 7 lines of code src/guardrails/checks/text/__init__.py x: 2 # contributors y: 1 lines of code src/guardrails/evals/core/__init__.py x: 2 # contributors y: 38 lines of code src/guardrails/exceptions.py x: 2 # contributors y: 27 lines of code src/guardrails/utils/output.py x: 2 # contributors y: 93 lines of code
1338.0
lines of code
  min: 1.0
  average: 160.26
  25th percentile: 24.0
  median: 59.0
  75th percentile: 207.25
  max: 1338.0
0 6.0
# contributors
min: 1.0 | average: 3.39 | 25th percentile: 2.0 | median: 3.5 | 75th percentile: 5.0 | max: 6.0

Number of Changes vs. Line Churn: 225 points

src/guardrails/checks/text/prompt_injection_detection.py x: 15 # changes y: 1389 line churn tests/integration/real_sdk/contract_cases.py x: 2 # changes y: 503 line churn tests/unit/checks/test_prompt_injection_detection.py x: 9 # changes y: 902 line churn src/guardrails/agents.py x: 12 # changes y: 2217 line churn src/guardrails/checks/text/llm_base.py x: 15 # changes y: 1130 line churn tests/integration/test_empty_classifier.py x: 1 # changes y: 68 line churn tests/unit/checks/test_llm_base.py x: 9 # changes y: 760 line churn CONTRIBUTING.md x: 2 # changes y: 131 line churn README.md x: 11 # changes y: 1170 line churn src/guardrails/checks/text/secret_keys.py x: 9 # changes y: 1367 line churn src/guardrails/checks/text/urls.py x: 12 # changes y: 2798 line churn tests/unit/checks/test_secret_keys.py x: 4 # changes y: 1322 line churn tests/unit/checks/test_urls.py x: 7 # changes y: 4061 line churn .github/RELEASING.md x: 2 # changes y: 176 line churn .github/tests/test_release_workflows.py x: 1 # changes y: 88 line churn .github/workflows/create-releases.yml x: 2 # changes y: 103 line churn Makefile x: 4 # changes y: 131 line churn .github/workflows/publish.yml x: 7 # changes y: 144 line churn .github/workflows/docs.yml x: 5 # changes y: 133 line churn .github/CODEOWNERS x: 1 # changes y: 9 line churn src/guardrails/resources/chat/chat.py x: 7 # changes y: 534 line churn src/guardrails/resources/responses/responses.py x: 7 # changes y: 974 line churn tests/unit/test_masked_output_history.py x: 1 # changes y: 118 line churn tests/unit/test_resources_responses.py x: 4 # changes y: 489 line churn src/guardrails/checks/text/pii.py x: 11 # changes y: 1676 line churn tests/unit/test_pii_decoding_limits.py x: 1 # changes y: 108 line churn src/guardrails/utils/anonymizer.py x: 3 # changes y: 217 line churn tests/unit/checks/test_anonymizer_overlaps.py x: 1 # changes y: 48 line churn tests/unit/test_structured_pii_masking.py x: 1 # changes y: 154 line churn CHANGELOG.md x: 1 # changes y: 33 line churn pyproject.toml x: 21 # changes y: 342 line churn tests/integration/test_real_sdk_contract.py x: 1 # changes y: 23 line churn src/guardrails/_base_client.py x: 11 # changes y: 1286 line churn src/guardrails/utils/safety_identifier.py x: 3 # changes y: 74 line churn tests/unit/test_safety_identifier.py x: 3 # changes y: 96 line churn tests/unit/test_agents.py x: 8 # changes y: 1630 line churn src/guardrails/evals/core/async_engine.py x: 10 # changes y: 919 line churn examples/basic/pii_mask_example.py x: 8 # changes y: 407 line churn .github/workflows/ci.yml x: 5 # changes y: 122 line churn .github/workflows/codeql.yml x: 2 # changes y: 53 line churn AGENTS.md x: 6 # changes y: 1239 line churn src/guardrails/__init__.py x: 5 # changes y: 175 line churn src/guardrails/_streaming.py x: 6 # changes y: 338 line churn src/guardrails/checks/text/hallucination_detection.py x: 11 # changes y: 779 line churn src/guardrails/checks/text/jailbreak.py x: 10 # changes y: 550 line churn src/guardrails/client.py x: 10 # changes y: 2231 line churn src/guardrails/runtime.py x: 7 # changes y: 1213 line churn src/guardrails/types.py x: 8 # changes y: 509 line churn src/guardrails/utils/create_vector_store.py x: 6 # changes y: 358 line churn src/guardrails/utils/parsing.py x: 3 # changes y: 480 line churn tests/conftest.py x: 3 # changes y: 178 line churn tests/integration/test_suite.py x: 6 # changes y: 1311 line churn tests/unit/checks/test_hallucination_detection.py x: 3 # changes y: 152 line churn tests/unit/checks/test_jailbreak.py x: 5 # changes y: 770 line churn tests/unit/checks/test_moderation.py x: 4 # changes y: 240 line churn tests/unit/evals/test_async_engine.py x: 6 # changes y: 287 line churn tests/unit/test_base_client.py x: 4 # changes y: 918 line churn tests/unit/test_client_async.py x: 4 # changes y: 511 line churn tests/unit/test_client_sync.py x: 4 # changes y: 750 line churn tests/unit/test_context.py x: 3 # changes y: 163 line churn tests/unit/test_resources_chat.py x: 3 # changes y: 313 line churn tests/unit/test_response_flattening.py x: 3 # changes y: 432 line churn tests/unit/test_runtime.py x: 6 # changes y: 766 line churn tests/unit/test_spec.py x: 4 # changes y: 198 line churn tests/unit/test_streaming.py x: 2 # changes y: 166 line churn tests/unit/test_types.py x: 6 # changes y: 538 line churn tests/unit/utils/test_create_vector_store.py x: 2 # changes y: 78 line churn .agents/skills/implementation-final-review/SKILL.md x: 2 # changes y: 216 line churn .agents/skills/implementation-final-review/references/reviewer-brief.md x: 2 # changes y: 159 line churn .agents/skills/implementation-final-review/scripts/test_skill_contract.py x: 2 # changes y: 610 line churn .agents/skills/maintainer-review/SKILL.md x: 2 # changes y: 698 line churn .agents/skills/maintainer-review/agents/openai.yaml x: 2 # changes y: 12 line churn .agents/skills/maintainer-review/references/evaluation-framework.md x: 2 # changes y: 1212 line churn docs/ref/checks/keywords.md x: 4 # changes y: 80 line churn docs/ref/checks/urls.md x: 4 # changes y: 174 line churn .agents/skills/final-release-review/SKILL.md x: 1 # changes y: 172 line churn src/guardrails/checks/text/keywords.py x: 7 # changes y: 355 line churn tests/unit/checks/test_keywords.py x: 4 # changes y: 212 line churn .agents/skills/code-change-verification/scripts/run.sh x: 1 # changes y: 399 line churn .agents/skills/implementation-final-review/scripts/review_protocol.py x: 1 # changes y: 1375 line churn .agents/skills/implementation-final-review/scripts/review_state.py x: 1 # changes y: 725 line churn .agents/skills/implementation-final-review/scripts/test_review_protocol.py x: 1 # changes y: 1834 line churn .agents/skills/implementation-final-review/scripts/test_review_state.py x: 1 # changes y: 834 line churn .agents/skills/implementation-kickoff/scripts/test_validate_handoff.py x: 1 # changes y: 300 line churn docs/quickstart.md x: 8 # changes y: 519 line churn docs/ref/checks/pii.md x: 4 # changes y: 187 line churn tests/unit/checks/test_pii.py x: 4 # changes y: 643 line churn src/guardrails/checks/text/moderation.py x: 7 # changes y: 573 line churn docs/ref/checks/jailbreak.md x: 9 # changes y: 346 line churn docs/ref/checks/llm_base.md x: 4 # changes y: 119 line churn docs/ref/checks/nsfw.md x: 8 # changes y: 216 line churn docs/ref/checks/prompt_injection_detection.md x: 8 # changes y: 353 line churn docs/ref/checks/hallucination_detection.md x: 7 # changes y: 580 line churn src/guardrails/checks/text/off_topic_prompts.py x: 5 # changes y: 206 line churn src/guardrails/evals/core/benchmark_reporter.py x: 5 # changes y: 602 line churn docs/agents_sdk_integration.md x: 3 # changes y: 234 line churn examples/basic/hello_world.py x: 7 # changes y: 256 line churn examples/basic/local_model.py x: 6 # changes y: 227 line churn examples/basic/multi_bundle.py x: 7 # changes y: 308 line churn tests/unit/checks/test_anonymizer_baseline.py x: 2 # changes y: 195 line churn docs/index.md x: 3 # changes y: 124 line churn examples/basic/multiturn_chat_with_alignment.py x: 7 # changes y: 888 line churn examples/basic/structured_outputs_example.py x: 7 # changes y: 220 line churn examples/hallucination_detection/run_hallucination_detection.py x: 6 # changes y: 185 line churn examples/implementation_code/blocking/blocking_completions.py x: 6 # changes y: 130 line churn examples/implementation_code/streaming/streaming_completions.py x: 6 # changes y: 153 line churn examples/implementation_code/streaming/streaming_responses.py x: 5 # changes y: 156 line churn src/guardrails/evals/core/visualizer.py x: 5 # changes y: 855 line churn docs/evals.md x: 7 # changes y: 512 line churn src/guardrails/evals/guardrail_evals.py x: 9 # changes y: 2040 line churn .gitignore x: 4 # changes y: 47 line churn examples/basic/agents_sdk.py x: 5 # changes y: 182 line churn docs/ref/checks/competitors.md x: 3 # changes y: 84 line churn docs/ref/checks/moderation.md x: 3 # changes y: 140 line churn src/guardrails/evals/README.md x: 5 # changes y: 506 line churn requirements.txt x: 4 # changes y: 732 line churn src/guardrails/evals/.gitignore x: 3 # changes y: 17 line churn src/guardrails/evals/core/types.py x: 5 # changes y: 260 line churn examples/basic/custom_context.py x: 5 # changes y: 219 line churn src/guardrails/utils/conversation.py x: 1 # changes y: 328 line churn src/guardrails/evals/__init__.py x: 4 # changes y: 78 line churn src/guardrails/evals/core/benchmark_calculator.py x: 4 # changes y: 438 line churn src/guardrails/evals/core/jsonl_loader.py x: 4 # changes y: 144 line churn src/guardrails/evals/core/latency_tester.py x: 4 # changes y: 281 line churn src/guardrails/registry.py x: 3 # changes y: 537 line churn src/guardrails/utils/schema.py x: 3 # changes y: 574 line churn tests/unit/test_registry.py x: 4 # changes y: 363 line churn tests/integration/test_guardrails.py x: 3 # changes y: 260 line churn openai-guardrails-docs-setup.md x: 1 # changes y: 648 line churn docs/examples.md x: 2 # changes y: 92 line churn docs/streaming_output.md x: 2 # changes y: 116 line churn examples/implementation_code/fast/fast_responses.py x: 2 # changes y: 256 line churn .pre-commit-config.yaml x: 2 # changes y: 18 line churn docs/assets/images/favicon-platform.svg x: 2 # changes y: 32 line churn docs/stylesheets/extra.css x: 2 # changes y: 388 line churn src/guardrails/utils/output.py x: 2 # changes y: 328 line churn
4061.0
line churn
  min: 2.0
  average: 348.73
  25th percentile: 71.5
  median: 169.0
  75th percentile: 403.0
  max: 4061.0
0 21.0
# changes
min: 1.0 | average: 3.77 | 25th percentile: 2.0 | median: 3.0 | 75th percentile: 5.0 | max: 21.0

Number of Contributors vs. Line Churn: 66 points

src/guardrails/checks/text/prompt_injection_detection.py x: 5 # contributors y: 1389 line churn src/guardrails/agents.py x: 5 # contributors y: 2217 line churn src/guardrails/checks/text/llm_base.py x: 5 # contributors y: 1130 line churn src/guardrails/checks/text/secret_keys.py x: 6 # contributors y: 1367 line churn src/guardrails/checks/text/urls.py x: 5 # contributors y: 2798 line churn src/guardrails/resources/chat/chat.py x: 6 # contributors y: 534 line churn src/guardrails/resources/responses/responses.py x: 6 # contributors y: 974 line churn src/guardrails/checks/text/pii.py x: 6 # contributors y: 1676 line churn src/guardrails/utils/anonymizer.py x: 2 # contributors y: 217 line churn src/guardrails/_base_client.py x: 5 # contributors y: 1286 line churn src/guardrails/utils/safety_identifier.py x: 2 # contributors y: 74 line churn src/guardrails/evals/core/async_engine.py x: 5 # contributors y: 919 line churn .github/dependabot.yml x: 1 # contributors y: 27 line churn src/guardrails/__init__.py x: 5 # contributors y: 175 line churn src/guardrails/_streaming.py x: 5 # contributors y: 338 line churn src/guardrails/checks/text/hallucination_detection.py x: 6 # contributors y: 779 line churn src/guardrails/checks/text/jailbreak.py x: 5 # contributors y: 550 line churn src/guardrails/client.py x: 5 # contributors y: 2231 line churn src/guardrails/runtime.py x: 5 # contributors y: 1213 line churn src/guardrails/types.py x: 5 # contributors y: 509 line churn src/guardrails/utils/create_vector_store.py x: 5 # contributors y: 358 line churn src/guardrails/utils/parsing.py x: 3 # contributors y: 480 line churn .agents/skills/maintainer-review/agents/openai.yaml x: 1 # contributors y: 12 line churn .agents/skills/final-release-review/agents/openai.yaml x: 1 # contributors y: 4 line churn .agents/skills/code-change-verification/scripts/run.ps1 x: 1 # contributors y: 52 line churn .agents/skills/implementation-final-review/scripts/review_protocol.py x: 1 # contributors y: 1375 line churn .agents/skills/implementation-final-review/scripts/review_state.py x: 1 # contributors y: 725 line churn .agents/skills/implementation-kickoff/scripts/validate_handoff.py x: 1 # contributors y: 292 line churn src/guardrails/checks/text/moderation.py x: 4 # contributors y: 573 line churn src/guardrails/checks/text/nsfw.py x: 3 # contributors y: 178 line churn src/guardrails/checks/text/off_topic_prompts.py x: 4 # contributors y: 206 line churn src/guardrails/checks/text/user_defined_llm.py x: 4 # contributors y: 195 line churn src/guardrails/evals/core/benchmark_reporter.py x: 4 # contributors y: 602 line churn src/guardrails/evals/core/visualizer.py x: 4 # contributors y: 855 line churn src/guardrails/evals/guardrail_evals.py x: 4 # contributors y: 2040 line churn src/guardrails/spec.py x: 3 # contributors y: 218 line churn src/guardrails/evals/core/types.py x: 4 # contributors y: 260 line churn src/guardrails/utils/__init__.py x: 3 # contributors y: 28 line churn src/guardrails/utils/conversation.py x: 1 # contributors y: 328 line churn src/guardrails/evals/__init__.py x: 4 # contributors y: 78 line churn src/guardrails/evals/core/benchmark_calculator.py x: 4 # contributors y: 438 line churn src/guardrails/evals/core/calculator.py x: 4 # contributors y: 223 line churn src/guardrails/evals/core/jsonl_loader.py x: 4 # contributors y: 144 line churn src/guardrails/evals/core/latency_tester.py x: 4 # contributors y: 281 line churn src/guardrails/registry.py x: 3 # contributors y: 537 line churn src/guardrails/utils/context.py x: 3 # contributors y: 160 line churn src/guardrails/utils/schema.py x: 3 # contributors y: 574 line churn src/guardrails/checks/__init__.py x: 3 # contributors y: 80 line churn src/guardrails/evals/core/json_reporter.py x: 3 # contributors y: 316 line churn src/guardrails/evals/core/validate_dataset.py x: 3 # contributors y: 190 line churn src/guardrails/resources/responses/__init__.py x: 3 # contributors y: 20 line churn src/guardrails/checks/text/__init__.py x: 2 # contributors y: 20 line churn src/guardrails/evals/core/__init__.py x: 2 # contributors y: 90 line churn src/guardrails/exceptions.py x: 2 # contributors y: 122 line churn src/guardrails/utils/output.py x: 2 # contributors y: 328 line churn
2798.0
line churn
  min: 4.0
  average: 514.18
  25th percentile: 87.5
  median: 270.5
  75th percentile: 632.75
  max: 2798.0
0 6.0
# contributors
min: 1.0 | average: 3.39 | 25th percentile: 2.0 | median: 3.5 | 75th percentile: 5.0 | max: 6.0

File Size vs. Line Churn: 66 points

src/guardrails/checks/text/prompt_injection_detection.py x: 208 lines of code y: 1389 line churn src/guardrails/agents.py x: 413 lines of code y: 2217 line churn src/guardrails/checks/text/llm_base.py x: 333 lines of code y: 1130 line churn src/guardrails/checks/text/secret_keys.py x: 503 lines of code y: 1367 line churn src/guardrails/checks/text/urls.py x: 1338 lines of code y: 2798 line churn src/guardrails/resources/chat/chat.py x: 119 lines of code y: 534 line churn src/guardrails/resources/responses/responses.py x: 265 lines of code y: 974 line churn src/guardrails/checks/text/pii.py x: 427 lines of code y: 1676 line churn src/guardrails/utils/anonymizer.py x: 51 lines of code y: 217 line churn src/guardrails/_base_client.py x: 265 lines of code y: 1286 line churn src/guardrails/utils/safety_identifier.py x: 24 lines of code y: 74 line churn src/guardrails/evals/core/async_engine.py x: 279 lines of code y: 919 line churn .github/dependabot.yml x: 24 lines of code y: 27 line churn src/guardrails/__init__.py x: 56 lines of code y: 175 line churn src/guardrails/_streaming.py x: 102 lines of code y: 338 line churn src/guardrails/checks/text/hallucination_detection.py x: 140 lines of code y: 779 line churn src/guardrails/checks/text/jailbreak.py x: 27 lines of code y: 550 line churn src/guardrails/client.py x: 551 lines of code y: 2231 line churn src/guardrails/context.py x: 23 lines of code y: 169 line churn src/guardrails/runtime.py x: 207 lines of code y: 1213 line churn src/guardrails/types.py x: 140 lines of code y: 509 line churn src/guardrails/utils/create_vector_store.py x: 93 lines of code y: 358 line churn src/guardrails/utils/parsing.py x: 147 lines of code y: 480 line churn .agents/skills/maintainer-review/agents/openai.yaml x: 4 lines of code y: 12 line churn .agents/skills/final-release-review/agents/openai.yaml x: 4 lines of code y: 4 line churn src/guardrails/checks/text/keywords.py x: 72 lines of code y: 355 line churn .agents/skills/code-change-verification/scripts/run.ps1 x: 42 lines of code y: 52 line churn .agents/skills/implementation-final-review/agents/openai.yaml x: 6 lines of code y: 7 line churn .agents/skills/implementation-final-review/scripts/review_protocol.py x: 1289 lines of code y: 1375 line churn .agents/skills/implementation-final-review/scripts/review_state.py x: 650 lines of code y: 725 line churn .agents/skills/implementation-kickoff/scripts/validate_handoff.py x: 252 lines of code y: 292 line churn src/guardrails/checks/text/moderation.py x: 101 lines of code y: 573 line churn src/guardrails/checks/text/nsfw.py x: 17 lines of code y: 178 line churn src/guardrails/checks/text/off_topic_prompts.py x: 20 lines of code y: 206 line churn src/guardrails/checks/text/user_defined_llm.py x: 21 lines of code y: 195 line churn src/guardrails/evals/core/benchmark_reporter.py x: 154 lines of code y: 602 line churn src/guardrails/evals/core/visualizer.py x: 212 lines of code y: 855 line churn src/guardrails/evals/guardrail_evals.py x: 627 lines of code y: 2040 line churn src/guardrails/spec.py x: 40 lines of code y: 218 line churn mkdocs.yml x: 73 lines of code y: 187 line churn src/guardrails/evals/core/types.py x: 51 lines of code y: 260 line churn src/guardrails/utils/__init__.py x: 1 lines of code y: 28 line churn src/guardrails/utils/conversation.py x: 219 lines of code y: 328 line churn src/guardrails/evals/__init__.py x: 32 lines of code y: 78 line churn src/guardrails/cli.py x: 53 lines of code y: 207 line churn src/guardrails/evals/core/benchmark_calculator.py x: 92 lines of code y: 438 line churn src/guardrails/evals/core/calculator.py x: 41 lines of code y: 223 line churn src/guardrails/evals/core/jsonl_loader.py x: 34 lines of code y: 144 line churn src/guardrails/evals/core/latency_tester.py x: 62 lines of code y: 281 line churn src/guardrails/registry.py x: 100 lines of code y: 537 line churn src/guardrails/utils/context.py x: 38 lines of code y: 160 line churn src/guardrails/utils/schema.py x: 149 lines of code y: 574 line churn src/guardrails/checks/__init__.py x: 26 lines of code y: 80 line churn src/guardrails/checks/text/competitors.py x: 29 lines of code y: 184 line churn src/guardrails/evals/core/json_reporter.py x: 87 lines of code y: 316 line churn src/guardrails/evals/core/validate_dataset.py x: 55 lines of code y: 190 line churn src/guardrails/resources/chat/__init__.py x: 7 lines of code y: 24 line churn src/guardrails/resources/responses/__init__.py x: 5 lines of code y: 20 line churn src/guardrails/checks/text/__init__.py x: 1 lines of code y: 20 line churn src/guardrails/evals/core/__init__.py x: 38 lines of code y: 90 line churn src/guardrails/exceptions.py x: 27 lines of code y: 122 line churn src/guardrails/utils/output.py x: 93 lines of code y: 328 line churn
2798.0
line churn
  min: 4.0
  average: 514.18
  25th percentile: 87.5
  median: 270.5
  75th percentile: 632.75
  max: 2798.0
0 1338.0
lines of code
min: 1.0 | average: 160.26 | 25th percentile: 24.0 | median: 59.0 | 75th percentile: 207.25 | max: 1338.0