agentic-scorecard 0.3.1 → 0.4.0
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/AGENT_PROMPT.md +11 -11
- package/README.md +35 -29
- package/benchmark/v0.4/adapter-contract.md +129 -0
- package/benchmark/v0.4/adapters/known-agent-harnesses.yaml +266 -0
- package/benchmark/v0.4/adapters/known-ci-providers.yaml +57 -0
- package/benchmark/v0.4/adapters/known-command-wrappers.yaml +37 -0
- package/benchmark/v0.4/adapters/known-environment-tooling.yaml +17 -0
- package/benchmark/v0.4/adapters/known-github-conventions.yaml +27 -0
- package/benchmark/v0.4/adapters/known-python-tooling.yaml +15 -0
- package/benchmark/v0.4/adapters/known-security-tools.yaml +45 -0
- package/benchmark/v0.4/adapters/known-verification-tools.yaml +65 -0
- package/benchmark/v0.4/agent-evidence-schema.json +74 -0
- package/benchmark/v0.4/attestation-schema.json +35 -0
- package/benchmark/v0.4/benchmark.yaml +127 -0
- package/benchmark/v0.4/calibration-matrix.md +60 -0
- package/benchmark/v0.4/controls/context.yaml +75 -0
- package/benchmark/v0.4/controls/environment.yaml +93 -0
- package/benchmark/v0.4/controls/governance.yaml +132 -0
- package/benchmark/v0.4/controls/learning.yaml +78 -0
- package/benchmark/v0.4/controls/observability.yaml +91 -0
- package/benchmark/v0.4/controls/resilience.yaml +170 -0
- package/benchmark/v0.4/controls/security.yaml +143 -0
- package/benchmark/v0.4/controls/specification.yaml +65 -0
- package/benchmark/v0.4/controls/testing.yaml +82 -0
- package/benchmark/v0.4/controls/tooling.yaml +69 -0
- package/benchmark/v0.4/report-schema.json +89 -0
- package/benchmark/v0.4/scoring-policy.md +175 -0
- package/dist/cli.js +2287 -162
- package/package.json +3 -2
- package/templates/agent-evidence.yaml +2 -2
- package/templates/attestations.yaml +3 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
dimension: security
|
|
2
|
+
controls:
|
|
3
|
+
- id: ADRB-SEC-001
|
|
4
|
+
level: 1
|
|
5
|
+
title: Agent secret and sensitive-data boundaries are documented
|
|
6
|
+
outcome: Contributors can find agent-specific rules for credentials, secrets, and sensitive data.
|
|
7
|
+
risk: Agents expose credentials or sensitive data while planning, changing, or reporting work.
|
|
8
|
+
allow_agent_evidence: true
|
|
9
|
+
agent_evidence_scopes: [repository]
|
|
10
|
+
evidence:
|
|
11
|
+
- type: content_terms
|
|
12
|
+
scope: repository
|
|
13
|
+
files:
|
|
14
|
+
[
|
|
15
|
+
SECURITY.md,
|
|
16
|
+
AGENTS.md,
|
|
17
|
+
Agents.md,
|
|
18
|
+
agents.md,
|
|
19
|
+
.ai/AGENTS.md,
|
|
20
|
+
.ai/Agents.md,
|
|
21
|
+
.ai/constitution.md,
|
|
22
|
+
.ai/instructions/**/*.md,
|
|
23
|
+
.ai/rules/**/*.md,
|
|
24
|
+
.ai/skills/**/*.md,
|
|
25
|
+
.agents/**/*.md,
|
|
26
|
+
docs/security/**,
|
|
27
|
+
docs/agentic/**,
|
|
28
|
+
]
|
|
29
|
+
terms: [secret, secrets, credential, credentials, sensitive data, personal data, PII]
|
|
30
|
+
min_terms: 2
|
|
31
|
+
max_span_lines: 80
|
|
32
|
+
max_files_per_pattern: 50
|
|
33
|
+
remediation: Document agent-specific rules for secrets, credentials, sensitive data, logs, prompts, and generated artifacts.
|
|
34
|
+
- id: ADRB-SEC-002
|
|
35
|
+
level: 2
|
|
36
|
+
title: Agent data and autonomy boundaries are explicit
|
|
37
|
+
outcome: Agent preflight guidance binds permitted data, tools, mutations, approvals, and stop conditions.
|
|
38
|
+
risk: Operators grant more data or authority than the task requires.
|
|
39
|
+
allow_agent_evidence: true
|
|
40
|
+
agent_evidence_scopes: [repository]
|
|
41
|
+
evidence:
|
|
42
|
+
- type: content_terms
|
|
43
|
+
scope: repository
|
|
44
|
+
files:
|
|
45
|
+
[
|
|
46
|
+
SECURITY.md,
|
|
47
|
+
AGENTS.md,
|
|
48
|
+
Agents.md,
|
|
49
|
+
agents.md,
|
|
50
|
+
.ai/AGENTS.md,
|
|
51
|
+
.ai/Agents.md,
|
|
52
|
+
.ai/constitution.md,
|
|
53
|
+
.ai/instructions/**/*.md,
|
|
54
|
+
.ai/rules/**/*.md,
|
|
55
|
+
.ai/skills/**/*.md,
|
|
56
|
+
.agents/**/*.md,
|
|
57
|
+
docs/security/**,
|
|
58
|
+
docs/agentic/**,
|
|
59
|
+
templates/**,
|
|
60
|
+
]
|
|
61
|
+
terms:
|
|
62
|
+
[
|
|
63
|
+
data classification,
|
|
64
|
+
allowed tools,
|
|
65
|
+
mutation,
|
|
66
|
+
budget,
|
|
67
|
+
human approval,
|
|
68
|
+
autonomy,
|
|
69
|
+
stop condition,
|
|
70
|
+
]
|
|
71
|
+
min_terms: 3
|
|
72
|
+
max_span_lines: 120
|
|
73
|
+
max_files_per_pattern: 50
|
|
74
|
+
remediation: Add a task preflight that binds data, tools, write scope, budget, approvals, and stop conditions.
|
|
75
|
+
- id: ADRB-SEC-006
|
|
76
|
+
level: 2
|
|
77
|
+
title: Security reporting and response are documented
|
|
78
|
+
outcome: Contributors can find a vulnerability-reporting or security-escalation path.
|
|
79
|
+
risk: Security concerns discovered during agent work lack an accountable response path.
|
|
80
|
+
allow_agent_evidence: true
|
|
81
|
+
agent_evidence_scopes: [repository]
|
|
82
|
+
evidence:
|
|
83
|
+
- type: content_terms
|
|
84
|
+
scope: repository
|
|
85
|
+
files: [SECURITY.md, docs/security/**, docs/contributing/**]
|
|
86
|
+
terms: [report, vulnerability, security contact, escalation, incident]
|
|
87
|
+
min_terms: 2
|
|
88
|
+
max_span_lines: 80
|
|
89
|
+
remediation: Publish a vulnerability-reporting and security-escalation path with response ownership.
|
|
90
|
+
- id: ADRB-SEC-003
|
|
91
|
+
level: 3
|
|
92
|
+
title: Automated secret-leakage safeguards are enforced
|
|
93
|
+
outcome: Repository or platform automation scans relevant changes for secrets before integration.
|
|
94
|
+
risk: Credentials can enter version history because secret safeguards are absent or merely documented.
|
|
95
|
+
allow_attestation: true
|
|
96
|
+
allow_agent_evidence: true
|
|
97
|
+
agent_evidence_scopes: [repository, platform]
|
|
98
|
+
evidence_mode: any
|
|
99
|
+
evidence:
|
|
100
|
+
- type: ci_command
|
|
101
|
+
scope: repository
|
|
102
|
+
min_tools: 1
|
|
103
|
+
- type: manual
|
|
104
|
+
scope: platform
|
|
105
|
+
prompt: Show that host-native secret scanning or push protection covers the assessed repository and relevant branches, including current status and controlled exceptions.
|
|
106
|
+
remediation: Run a secret-leakage safeguard in applicable CI or enable equivalent protected platform scanning with reviewable evidence.
|
|
107
|
+
- id: ADRB-SEC-007
|
|
108
|
+
level: 3
|
|
109
|
+
title: Untrusted agent-input safeguards are enforced
|
|
110
|
+
outcome: The harness bounds untrusted content and prompt-borne instructions with enforced isolation, validation, or tested handling.
|
|
111
|
+
risk: Repository, issue, tool, or retrieved content can redirect an agent beyond the authorized task and authority.
|
|
112
|
+
allow_attestation: true
|
|
113
|
+
allow_agent_evidence: true
|
|
114
|
+
agent_evidence_scopes: [repository, platform, organization]
|
|
115
|
+
evidence:
|
|
116
|
+
- type: manual
|
|
117
|
+
scope: organization
|
|
118
|
+
prompt: Show the untrusted-input boundaries and recent mechanical tests or enforcement evidence for prompt injection, sandbox escape, or unauthorized tool instructions.
|
|
119
|
+
remediation: Define untrusted-input boundaries and enforce them with sandboxing, validation, allowlists, or adversarial tests appropriate to the harness.
|
|
120
|
+
- id: ADRB-SEC-005
|
|
121
|
+
level: 3
|
|
122
|
+
title: High-impact agent actions are technically gated
|
|
123
|
+
outcome: External authority controls prevent unapproved high-impact actions and record controlled exceptions.
|
|
124
|
+
risk: Repository instructions alone cannot prevent credential misuse or irreversible external actions.
|
|
125
|
+
allow_attestation: true
|
|
126
|
+
allow_agent_evidence: true
|
|
127
|
+
evidence:
|
|
128
|
+
- type: manual
|
|
129
|
+
scope: platform
|
|
130
|
+
prompt: Show authorization gates, scoped credentials, approval enforcement, audit records, and controlled bypasses for high-impact agent actions.
|
|
131
|
+
remediation: Enforce least-privileged credentials, approval gates, auditability, and restricted exception handling.
|
|
132
|
+
- id: ADRB-SEC-004
|
|
133
|
+
level: 4
|
|
134
|
+
title: Agent security outcomes drive improvement
|
|
135
|
+
outcome: Denials, near misses, incidents, exceptions, and adversarial exercises are trended and improve controls.
|
|
136
|
+
risk: Controls appear complete while effectiveness against real failure modes remains unknown.
|
|
137
|
+
allow_attestation: true
|
|
138
|
+
allow_agent_evidence: true
|
|
139
|
+
evidence:
|
|
140
|
+
- type: manual
|
|
141
|
+
scope: outcome
|
|
142
|
+
prompt: Provide agent-security outcome trends or exercise results and a recent control change driven by them.
|
|
143
|
+
remediation: Run adversarial exercises, trend security outcomes, and update boundaries from the results.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
dimension: specification
|
|
2
|
+
controls:
|
|
3
|
+
- id: ADRB-SPC-001
|
|
4
|
+
level: 1
|
|
5
|
+
title: Work has a durable objective
|
|
6
|
+
outcome: Engineering work starts from a tracked issue, request, or specification artifact.
|
|
7
|
+
risk: Agents optimize an inferred problem and completion cannot be judged consistently.
|
|
8
|
+
evidence:
|
|
9
|
+
- type: path_any
|
|
10
|
+
scope: repository
|
|
11
|
+
patterns: [docs/requirements/**, docs/spec*.md, docs/specs/**, specs/**, .ai/specs/**]
|
|
12
|
+
remediation: Adopt a tracked work-request or specification template with objective, owner, and outcome.
|
|
13
|
+
- id: ADRB-SPC-002
|
|
14
|
+
level: 2
|
|
15
|
+
title: Acceptance criteria and constraints are documented
|
|
16
|
+
outcome: Work artifacts state testable acceptance criteria plus material constraints or exclusions.
|
|
17
|
+
risk: An implementation can appear plausible without satisfying a shared definition of done.
|
|
18
|
+
allow_agent_evidence: true
|
|
19
|
+
agent_evidence_scopes: [repository]
|
|
20
|
+
evidence:
|
|
21
|
+
- type: content_terms
|
|
22
|
+
scope: repository
|
|
23
|
+
files: [docs/requirements/**, docs/spec*.md, docs/specs/**, specs/**, .ai/specs/**]
|
|
24
|
+
terms: [acceptance criteria, requirements, constraints, non-goals, verification]
|
|
25
|
+
min_terms: 2
|
|
26
|
+
max_span_lines: 160
|
|
27
|
+
remediation: Add testable outcomes, constraints, exclusions, and verification expectations to work artifacts.
|
|
28
|
+
- id: ADRB-SPC-003
|
|
29
|
+
level: 3
|
|
30
|
+
title: Specification traceability is mechanically checked
|
|
31
|
+
outcome: Automation checks that applicable changes and verification trace to an approved work artifact.
|
|
32
|
+
risk: Specifications become optional prose disconnected from implementation and tests.
|
|
33
|
+
allow_agent_evidence: true
|
|
34
|
+
agent_evidence_scopes: [repository]
|
|
35
|
+
evidence:
|
|
36
|
+
- type: ci_command
|
|
37
|
+
scope: repository
|
|
38
|
+
providers: []
|
|
39
|
+
tools: []
|
|
40
|
+
min_tools: 1
|
|
41
|
+
remediation: Add a deterministic traceability check from change to work artifact and verification record.
|
|
42
|
+
- id: ADRB-SPC-005
|
|
43
|
+
level: 3
|
|
44
|
+
title: Specification traceability is required before merge
|
|
45
|
+
outcome: Repository merge policy requires the applicable traceability check or equivalent review evidence.
|
|
46
|
+
risk: A configured check can be skipped or bypassed when delivery pressure rises.
|
|
47
|
+
allow_attestation: true
|
|
48
|
+
allow_agent_evidence: true
|
|
49
|
+
evidence:
|
|
50
|
+
- type: manual
|
|
51
|
+
scope: platform
|
|
52
|
+
prompt: Show that the traceability check or equivalent review requirement is an enforced merge gate with controlled exceptions.
|
|
53
|
+
remediation: Require the traceability check in merge policy and restrict, record, and review bypasses.
|
|
54
|
+
- id: ADRB-SPC-004
|
|
55
|
+
level: 4
|
|
56
|
+
title: Specification effectiveness drives improvement
|
|
57
|
+
outcome: Rework and escaped ambiguity attributable to specifications are trended and improve the process.
|
|
58
|
+
risk: Specification ceremony grows without reducing misunderstanding or rework.
|
|
59
|
+
allow_attestation: true
|
|
60
|
+
allow_agent_evidence: true
|
|
61
|
+
evidence:
|
|
62
|
+
- type: manual
|
|
63
|
+
scope: outcome
|
|
64
|
+
prompt: Provide specification-related rework or ambiguity trends and a recent process change driven by them.
|
|
65
|
+
remediation: Classify rework causes and evolve specification practices using outcome evidence.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
dimension: testing
|
|
2
|
+
controls:
|
|
3
|
+
- id: ADRB-TST-001
|
|
4
|
+
level: 1
|
|
5
|
+
title: Automated tests exist
|
|
6
|
+
outcome: The tracked repository contains executable tests for at least one important behavior.
|
|
7
|
+
risk: Agent changes rely on plausibility or manual inspection alone.
|
|
8
|
+
evidence:
|
|
9
|
+
- type: path_any
|
|
10
|
+
scope: repository
|
|
11
|
+
patterns: ['**/*.test.*', '**/*.spec.*', tests/**, test/**]
|
|
12
|
+
remediation: Add a fast automated test for a critical behavior and document how to run it.
|
|
13
|
+
- id: ADRB-TST-002
|
|
14
|
+
level: 2
|
|
15
|
+
title: Verification layers and canonical commands are documented
|
|
16
|
+
outcome: Contributors can identify applicable test layers and the canonical verification path.
|
|
17
|
+
risk: Agents run a convenient subset and overstate confidence in the result.
|
|
18
|
+
allow_agent_evidence: true
|
|
19
|
+
agent_evidence_scopes: [repository]
|
|
20
|
+
evidence:
|
|
21
|
+
- type: content_terms
|
|
22
|
+
scope: repository
|
|
23
|
+
files:
|
|
24
|
+
[
|
|
25
|
+
README.md,
|
|
26
|
+
CONTRIBUTING.md,
|
|
27
|
+
AGENTS.md,
|
|
28
|
+
Agents.md,
|
|
29
|
+
agents.md,
|
|
30
|
+
.ai/AGENTS.md,
|
|
31
|
+
.ai/Agents.md,
|
|
32
|
+
.ai/constitution.md,
|
|
33
|
+
.ai/instructions/**/*.md,
|
|
34
|
+
.ai/rules/**/*.md,
|
|
35
|
+
.ai/skills/**/*.md,
|
|
36
|
+
.agents/**/*.md,
|
|
37
|
+
docs/testing/**,
|
|
38
|
+
package.json,
|
|
39
|
+
Makefile,
|
|
40
|
+
]
|
|
41
|
+
terms: [unit test, integration test, end-to-end, e2e, typecheck, lint, test]
|
|
42
|
+
min_terms: 2
|
|
43
|
+
required_any_terms: [verify, verification, test, check, CI]
|
|
44
|
+
max_span_lines: 120
|
|
45
|
+
max_files_per_pattern: 50
|
|
46
|
+
remediation: Define the test taxonomy and one canonical command that matches CI.
|
|
47
|
+
- id: ADRB-TST-003
|
|
48
|
+
level: 3
|
|
49
|
+
title: CI executes the required verification layers
|
|
50
|
+
outcome: Repository automation runs appropriate tests and static checks from a clean state.
|
|
51
|
+
risk: Documented verification can be omitted from automation or run in an unrepresentative environment.
|
|
52
|
+
allow_agent_evidence: true
|
|
53
|
+
agent_evidence_scopes: [repository]
|
|
54
|
+
evidence:
|
|
55
|
+
- type: ci_command
|
|
56
|
+
scope: repository
|
|
57
|
+
min_tools: 2
|
|
58
|
+
remediation: Configure CI to run the applicable verification layers from a clean environment.
|
|
59
|
+
- id: ADRB-TST-005
|
|
60
|
+
level: 3
|
|
61
|
+
title: Verification is enforced before merge
|
|
62
|
+
outcome: Merge policy requires the applicable CI checks and restricts bypasses.
|
|
63
|
+
risk: Healthy CI configuration remains optional under delivery pressure.
|
|
64
|
+
allow_attestation: true
|
|
65
|
+
allow_agent_evidence: true
|
|
66
|
+
evidence:
|
|
67
|
+
- type: manual
|
|
68
|
+
scope: platform
|
|
69
|
+
prompt: Show required status checks or equivalent merge gates, covered branches, bypass actors, and exception controls.
|
|
70
|
+
remediation: Make appropriate CI checks required merge gates and restrict, record, and review bypasses.
|
|
71
|
+
- id: ADRB-TST-004
|
|
72
|
+
level: 4
|
|
73
|
+
title: Verification effectiveness drives improvement
|
|
74
|
+
outcome: Escaped defects, flakiness, and other signal-quality outcomes are trended and improve testing.
|
|
75
|
+
risk: Test count and coverage rise while meaningful defects still escape.
|
|
76
|
+
allow_attestation: true
|
|
77
|
+
allow_agent_evidence: true
|
|
78
|
+
evidence:
|
|
79
|
+
- type: manual
|
|
80
|
+
scope: outcome
|
|
81
|
+
prompt: Provide verification outcome trends by task class and a recent test-strategy improvement driven by them.
|
|
82
|
+
remediation: Trend escaped defects and signal quality, then invest in the weakest verification layers.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
dimension: tooling
|
|
2
|
+
controls:
|
|
3
|
+
- id: ADRB-TOL-001
|
|
4
|
+
level: 1
|
|
5
|
+
title: Supported agent tools are declared
|
|
6
|
+
outcome: The tracked repository identifies supported agent interfaces or tool configuration.
|
|
7
|
+
risk: Agents discover tools opportunistically and use unsupported or unsafe paths.
|
|
8
|
+
allow_agent_evidence: true
|
|
9
|
+
agent_evidence_scopes: [repository]
|
|
10
|
+
evidence:
|
|
11
|
+
- type: path_any
|
|
12
|
+
scope: repository
|
|
13
|
+
patterns: [.ai/agentic.config.*, .ai/skills/**, .agents/**, mcp.json, .mcp.json]
|
|
14
|
+
remediation: Commit a non-empty declaration of supported agent surfaces and their intended use.
|
|
15
|
+
- id: ADRB-TOL-002
|
|
16
|
+
level: 2
|
|
17
|
+
title: Tool scope and failure behavior are documented
|
|
18
|
+
outcome: Tool guidance defines authority, validation, success signals, failure handling, and approved fallback.
|
|
19
|
+
risk: Agents bypass failures, widen scope, or mistake partial results for success.
|
|
20
|
+
allow_agent_evidence: true
|
|
21
|
+
agent_evidence_scopes: [repository]
|
|
22
|
+
evidence:
|
|
23
|
+
- type: content_terms
|
|
24
|
+
scope: repository
|
|
25
|
+
files:
|
|
26
|
+
[
|
|
27
|
+
AGENTS.md,
|
|
28
|
+
Agents.md,
|
|
29
|
+
agents.md,
|
|
30
|
+
.ai/AGENTS.md,
|
|
31
|
+
.ai/Agents.md,
|
|
32
|
+
.ai/agentic*.md,
|
|
33
|
+
.ai/instructions/**/*.md,
|
|
34
|
+
.ai/rules/**/*.md,
|
|
35
|
+
.ai/skills/**/*.md,
|
|
36
|
+
.agents/**/*.md,
|
|
37
|
+
docs/agentic/**,
|
|
38
|
+
docs/tools/**,
|
|
39
|
+
]
|
|
40
|
+
terms: [authority, permission, read-only, validation, failure, fallback, approval]
|
|
41
|
+
min_terms: 3
|
|
42
|
+
required_any_terms: [tool, MCP, connector, skill, command, agent]
|
|
43
|
+
max_span_lines: 120
|
|
44
|
+
max_files_per_pattern: 50
|
|
45
|
+
remediation: Document each high-impact tool's authority, inputs, validation, failure mode, and fallback.
|
|
46
|
+
- id: ADRB-TOL-003
|
|
47
|
+
level: 3
|
|
48
|
+
title: High-impact tool authority is technically bounded and audited
|
|
49
|
+
outcome: High-impact tools enforce least privilege, authorization, structured validation, and audit records.
|
|
50
|
+
risk: Prompt instructions become the only barrier between an agent and an irreversible action.
|
|
51
|
+
allow_attestation: true
|
|
52
|
+
allow_agent_evidence: true
|
|
53
|
+
evidence:
|
|
54
|
+
- type: manual
|
|
55
|
+
scope: platform
|
|
56
|
+
prompt: Show technical least-privilege enforcement, authorization tests, validation, audit records, and fail-closed behavior for high-impact tools.
|
|
57
|
+
remediation: Enforce scoped credentials, authorization, schema validation, audit logging, and deny-by-default behavior.
|
|
58
|
+
- id: ADRB-TOL-004
|
|
59
|
+
level: 4
|
|
60
|
+
title: Tool reliability drives improvement
|
|
61
|
+
outcome: Tool success, partial failure, denial, latency, and unsafe-fallback attempts are trended and improved.
|
|
62
|
+
risk: Tooling quality and risky workarounds remain anecdotal until an incident occurs.
|
|
63
|
+
allow_attestation: true
|
|
64
|
+
allow_agent_evidence: true
|
|
65
|
+
evidence:
|
|
66
|
+
- type: manual
|
|
67
|
+
scope: outcome
|
|
68
|
+
prompt: Provide tool reliability trends and a recent tool or fallback improvement driven by them.
|
|
69
|
+
remediation: Trend tool outcomes by task and risk class and improve weak or bypassed interfaces.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentic-readiness.dev/schema/v0.4/report.json",
|
|
4
|
+
"title": "ADRB v0.4 assessment report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"schema_version",
|
|
8
|
+
"benchmark",
|
|
9
|
+
"target",
|
|
10
|
+
"assessed_at",
|
|
11
|
+
"warnings",
|
|
12
|
+
"score",
|
|
13
|
+
"evidence_summary",
|
|
14
|
+
"dimensions",
|
|
15
|
+
"controls",
|
|
16
|
+
"profiles",
|
|
17
|
+
"readiness",
|
|
18
|
+
"limitations"
|
|
19
|
+
],
|
|
20
|
+
"properties": {
|
|
21
|
+
"schema_version": { "const": "0.4.0" },
|
|
22
|
+
"benchmark": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"required": ["id", "version"],
|
|
25
|
+
"properties": { "version": { "const": "0.4.0" } }
|
|
26
|
+
},
|
|
27
|
+
"target": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"required": [
|
|
30
|
+
"repository",
|
|
31
|
+
"profile",
|
|
32
|
+
"scope",
|
|
33
|
+
"git_head",
|
|
34
|
+
"git_remote",
|
|
35
|
+
"working_tree_dirty"
|
|
36
|
+
],
|
|
37
|
+
"properties": { "scope": { "enum": ["tracked", "workspace"] } }
|
|
38
|
+
},
|
|
39
|
+
"assessed_at": { "type": "string", "format": "date-time" },
|
|
40
|
+
"warnings": { "type": "array", "items": { "type": "string" } },
|
|
41
|
+
"score": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"required": ["total", "maximum", "percentage", "repository"],
|
|
45
|
+
"properties": {
|
|
46
|
+
"total": { "type": "integer", "minimum": 0, "maximum": 40 },
|
|
47
|
+
"maximum": { "const": 40 },
|
|
48
|
+
"percentage": { "type": "integer", "minimum": 0, "maximum": 100 },
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"additionalProperties": false,
|
|
52
|
+
"required": ["achieved", "ceiling", "percentage"],
|
|
53
|
+
"properties": {
|
|
54
|
+
"achieved": { "type": "integer", "minimum": 0, "maximum": 40 },
|
|
55
|
+
"ceiling": { "type": "integer", "minimum": 0, "maximum": 40 },
|
|
56
|
+
"percentage": { "type": "integer", "minimum": 0, "maximum": 100 }
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"evidence_summary": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"additionalProperties": false,
|
|
64
|
+
"required": [
|
|
65
|
+
"repository_detected",
|
|
66
|
+
"agent_collected",
|
|
67
|
+
"attested",
|
|
68
|
+
"unmet",
|
|
69
|
+
"unknown",
|
|
70
|
+
"resolved",
|
|
71
|
+
"total"
|
|
72
|
+
],
|
|
73
|
+
"properties": {
|
|
74
|
+
"repository_detected": { "type": "integer", "minimum": 0 },
|
|
75
|
+
"agent_collected": { "type": "integer", "minimum": 0 },
|
|
76
|
+
"attested": { "type": "integer", "minimum": 0 },
|
|
77
|
+
"unmet": { "type": "integer", "minimum": 0 },
|
|
78
|
+
"unknown": { "type": "integer", "minimum": 0 },
|
|
79
|
+
"resolved": { "type": "integer", "minimum": 0 },
|
|
80
|
+
"total": { "type": "integer", "minimum": 0 }
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"dimensions": { "type": "array", "minItems": 10, "maxItems": 10 },
|
|
84
|
+
"controls": { "type": "array" },
|
|
85
|
+
"profiles": { "type": "array" },
|
|
86
|
+
"readiness": { "type": "object" },
|
|
87
|
+
"limitations": { "type": "array", "items": { "type": "string" } }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# v0.4 scoring policy
|
|
2
|
+
|
|
3
|
+
This document is normative for benchmark version 0.4.0.
|
|
4
|
+
|
|
5
|
+
## Unit and assessment scope
|
|
6
|
+
|
|
7
|
+
The unit is one repository plus explicitly supplied repository-semantic, external, and
|
|
8
|
+
organizational evidence bound to that repository. The default `tracked` mode considers only
|
|
9
|
+
Git-tracked paths, using their current working-tree contents. Reports record the commit, remote, and
|
|
10
|
+
dirty state. `workspace` mode is available for provisional assessment and is not directly
|
|
11
|
+
comparable with tracked-mode reports.
|
|
12
|
+
|
|
13
|
+
Generated reports, attestations, evidence requests, and imported evidence bundles never qualify as
|
|
14
|
+
repository evidence. An assessment must be idempotent: adding its own generated artifacts cannot
|
|
15
|
+
change its score.
|
|
16
|
+
|
|
17
|
+
## Dimension scores
|
|
18
|
+
|
|
19
|
+
Each dimension earns level `n` only when every applicable control at that level and every lower
|
|
20
|
+
level is met. More than one control may exist at a level when separate observable outcomes are
|
|
21
|
+
required. Controls met above the first gap are reported but do not increase the dimension score.
|
|
22
|
+
|
|
23
|
+
The normative score is the sum of ten dimension scores, with a maximum of 40. Its percentage is
|
|
24
|
+
display-only and does not determine readiness.
|
|
25
|
+
|
|
26
|
+
### Repository-detected progress
|
|
27
|
+
|
|
28
|
+
v0.4 also reports an explanatory repository score and ceiling. For each dimension, the ceiling is
|
|
29
|
+
the highest consecutive level for which every control has a deterministic, non-manual repository
|
|
30
|
+
collector. The achieved value is the highest consecutive level established only with
|
|
31
|
+
`repository-detected` evidence. The two values are summed across dimensions.
|
|
32
|
+
|
|
33
|
+
Agent-collected and human-attested evidence never increases repository-detected progress. The
|
|
34
|
+
repository percentage is `achieved / ceiling`; it does not replace the normative score, remove
|
|
35
|
+
UNKNOWN controls, or affect readiness-profile decisions.
|
|
36
|
+
|
|
37
|
+
## Readiness decisions
|
|
38
|
+
|
|
39
|
+
Each autonomy profile defines a floor for every dimension. A profile passes only if every floor is
|
|
40
|
+
met. Strength in one dimension cannot compensate for a security, testing, governance, or recovery
|
|
41
|
+
gap elsewhere. No profile grants deployment or production authority.
|
|
42
|
+
|
|
43
|
+
When a passed target profile depends on agent-collected or human-attested controls, the report's
|
|
44
|
+
target-profile headline discloses the number of required controls from each provenance class.
|
|
45
|
+
|
|
46
|
+
## Evidence scopes and provenance
|
|
47
|
+
|
|
48
|
+
- `repository-detected`: a deterministic collector found qualifying evidence in the selected path
|
|
49
|
+
scope. It proves the reported artifact match, not consistent human behavior or external
|
|
50
|
+
enforcement.
|
|
51
|
+
- `agent-collected`: an authorized agent supplied a structured, source-backed repository-semantic
|
|
52
|
+
or external claim. It may satisfy only explicitly eligible controls and is never independently
|
|
53
|
+
verified.
|
|
54
|
+
- `attested`: an accountable person supplied a dated, expiring claim and durable reference.
|
|
55
|
+
- `unknown`: evidence is unavailable, expired, mismatched, unauthorized, or inconclusive.
|
|
56
|
+
|
|
57
|
+
Repository controls use non-empty files, control-specific term thresholds, semantic component
|
|
58
|
+
groups, structurally identifiable non-placeholder ownership mappings, enabled integration-triggered
|
|
59
|
+
CI invocations with adapter-declared full action identities plus explicit refs or executable plus
|
|
60
|
+
required argument-group signatures and prohibited non-blocking modes, executable step/job structure,
|
|
61
|
+
auto-loaded provider entry points, supported complete conditions and inheritance, no unparsed path
|
|
62
|
+
or exclusion gates, and blocking foreground exit-status
|
|
63
|
+
propagation, bounded line windows, and per-pattern candidate limits. Partial evidence remains
|
|
64
|
+
visible but does not pass a control. An ownership artifact, explicit accountable-human approval
|
|
65
|
+
authority, and explicit accountable-human merge authority are independently required for
|
|
66
|
+
`ADRB-GOV-002`; a generic owner/reviewer mention or declared agent authority cannot establish either
|
|
67
|
+
human authority. Directly negated authority statements do not count as positive evidence whether
|
|
68
|
+
negation appears before or after the matched phrase, including a colon-delimited policy label, and
|
|
69
|
+
explicit mappings require a recognized repository-wide target or path/component target rather than
|
|
70
|
+
arbitrary or punctuation-only syntax.
|
|
71
|
+
Typed ownership-table scope columns may use substantive component names, while conventional
|
|
72
|
+
plain-text former-owner sections remain inactive. Restrictive phrases such as `must not exceed`
|
|
73
|
+
establish an upper bound and are not treated as absence of the control.
|
|
74
|
+
`ADRB-RES-002` requires resource budgets and retry bounds as independent co-located components;
|
|
75
|
+
neither substitutes for the other.
|
|
76
|
+
Mechanical Level 3 context, environment, specification, testing, and learning controls require
|
|
77
|
+
structurally recognized CI commands; comments, documentation, and command-name keywords do not
|
|
78
|
+
establish execution. `ADRB-ENV-003` requires a locked installation plus independent test and
|
|
79
|
+
static-analysis command classes in the same CI execution group; commands split across jobs or
|
|
80
|
+
workflow files do not prove that one clean environment performs canonical verification. GitHub
|
|
81
|
+
event conditions are part of that identity, so commands restricted to mutually exclusive
|
|
82
|
+
`pull_request` and `merge_group` executions do not combine.
|
|
83
|
+
`ADRB-TST-003`
|
|
84
|
+
requires independent test and static-analysis command classes aggregated across the assessed CI
|
|
85
|
+
entry points. Root package-manager tasks must
|
|
86
|
+
resolve to tracked script definitions whose command bodies establish the applicable command class,
|
|
87
|
+
including when supported wrappers or global package-manager options precede the invocation.
|
|
88
|
+
Context-changing package/workspace options require resolution of the selected manifest or fail
|
|
89
|
+
closed; nested package-exec tools may qualify only at a supported executable position.
|
|
90
|
+
Custom guidance validators additionally require adapter-declared validation structures in the
|
|
91
|
+
executed tracked source after language comments are excluded; file presence or comment text alone
|
|
92
|
+
does not establish behavior. Specification-traceability and knowledge-curation checks use the same
|
|
93
|
+
source-bound standard. A recognized specification validator binds an approved work-item reference
|
|
94
|
+
to both implementation and verification artifacts; checking only for a heading is insufficient.
|
|
95
|
+
Constant-false branches and validation functions without a top-level reachable call path fail closed.
|
|
96
|
+
Required structural groups cannot combine across unreachable function bodies. JavaScript/TypeScript
|
|
97
|
+
class methods, object shorthand methods, and object arrow methods fail closed when the conservative
|
|
98
|
+
collector cannot prove their invocation.
|
|
99
|
+
Tool-specific discovery or listing modes do not count as execution. In a supported fail-fast shell,
|
|
100
|
+
each multiline command may contribute because any failure gates the step; without fail-fast
|
|
101
|
+
semantics, only the final effective foreground command may establish execution.
|
|
102
|
+
Catalog pattern order is significant when a candidate limit is present: authoritative entry points
|
|
103
|
+
precede large run, skill, or documentation corpora. External platform, organization, and outcome
|
|
104
|
+
controls cannot be inferred from repository keywords.
|
|
105
|
+
|
|
106
|
+
Human attestations and agent evidence may satisfy only controls explicitly eligible for those
|
|
107
|
+
classes. A v0.4 control may permit an `agent-collected` repository claim when a legitimate tracked
|
|
108
|
+
artifact uses an unrecognized convention. This is a semantic alternative, not a deterministic
|
|
109
|
+
pass: it remains separately labelled and does not increase repository-detected progress. Human
|
|
110
|
+
attestations cannot override repository-artifact controls. `ADRB-SEC-003` permits a dated, expiring
|
|
111
|
+
human attestation only for its platform alternative, such as host-native secret scanning or push
|
|
112
|
+
protection; it cannot attest the repository CI alternative. Malformed or unknown v0.4 attestation
|
|
113
|
+
control IDs are rejected rather than silently ignored. Every v0.4 attestation file is bound to the
|
|
114
|
+
assessed repository's normalized, sanitized origin URL, or its canonical root when no origin exists,
|
|
115
|
+
and rejects unknown file or claim fields. An optional remote `.git` suffix does not change target
|
|
116
|
+
identity. Human attestations are repository-bound and expiring but not
|
|
117
|
+
commit-bound: they establish accountable platform, organization, or outcome facts whose review
|
|
118
|
+
period may span repository commits. `agentic-scorecard init` derives the target; a file for another
|
|
119
|
+
repository fails closed. A non-`unknown` attestation with a generated `TODO` owner or evidence value
|
|
120
|
+
fails closed, as does any attestation whose review date is later than the assessment time.
|
|
121
|
+
|
|
122
|
+
Controls require every evidence check by default. A v0.4 control may explicitly declare
|
|
123
|
+
`evidence_mode: any` only when the checks are alternative ways to establish the same outcome. A
|
|
124
|
+
repository-only run remains `unknown` when the repository alternative is absent and an external
|
|
125
|
+
alternative has not been collected; it does not infer either a platform pass or a platform failure.
|
|
126
|
+
Supplemental evidence resolves only alternatives with the same scope. A negative claim makes the
|
|
127
|
+
control `not_met` only when every alternative is established negatively; any uncollected alternative
|
|
128
|
+
keeps the control `unknown`.
|
|
129
|
+
The report shows every alternative and its provenance. Control confidence comes from the
|
|
130
|
+
alternative that establishes the decisive pass or complete negative result; supplemental input on a
|
|
131
|
+
different alternative does not relabel the result or its evidence-summary/profile dependency.
|
|
132
|
+
An unresolved control always serializes control confidence as `none`; the supplemental input remains
|
|
133
|
+
visible in its separately labelled claim fields.
|
|
134
|
+
Established-control tables display the scope of the evidence that resolved the control rather than
|
|
135
|
+
an unresolved alternative scope.
|
|
136
|
+
|
|
137
|
+
Level 4 requires time-series or outcome evidence and an improvement decision influenced by it. The
|
|
138
|
+
existence of a dashboard is insufficient.
|
|
139
|
+
|
|
140
|
+
## Agent evidence bundles
|
|
141
|
+
|
|
142
|
+
An agent evidence bundle is version-bound and target-bound. Claims record scope, status, collector,
|
|
143
|
+
collection and expiry times, a privacy-safe derivation summary, and durable references. The core
|
|
144
|
+
scanner makes no network calls; the agent obtains explicit authorization and uses read-only tools to
|
|
145
|
+
create the bundle. An error is distinct from a negative result and cannot pass a control.
|
|
146
|
+
|
|
147
|
+
Agent evidence can satisfy only controls with `allow_agent_evidence: true` and an allowed scope.
|
|
148
|
+
Deterministic passes take precedence. Repository-scoped claims additionally require tracked files
|
|
149
|
+
to match HEAD and references of the form `repo:<tracked-path>[#Lx-Ly]`; every referenced path must
|
|
150
|
+
exist in the tracked assessment scope at the exact bound commit. Untracked generated artifacts do
|
|
151
|
+
not affect tracked-scope evidence. An agent may use such a claim only to
|
|
152
|
+
establish the control outcome from a nonstandard artifact the deterministic catalog did not
|
|
153
|
+
recognize.
|
|
154
|
+
|
|
155
|
+
`ADRB-SEC-007` deliberately accepts source-backed agent claims at repository, platform, or
|
|
156
|
+
organization scope because enforced untrusted-input safeguards may be implemented as tracked
|
|
157
|
+
adversarial harness tests, platform sandbox or tool policy, or organization-wide controls. The
|
|
158
|
+
claim's scope must identify where enforcement actually resides. Repository-scoped claims remain
|
|
159
|
+
commit-bound and line-referenced; no scope may pass from prose alone, and deterministic repository
|
|
160
|
+
keyword scanning is not an evidence path for this non-compensating security floor.
|
|
161
|
+
|
|
162
|
+
## Changes and comparability
|
|
163
|
+
|
|
164
|
+
v0.1, v0.2, and v0.3 remain immutable. Scores from v0.1, v0.2, v0.3, and v0.4 are not directly
|
|
165
|
+
comparable because evidence and control semantics changed. Reports are comparable only when
|
|
166
|
+
benchmark version, target profile, repository scope, evidence policy, and assessment mode match.
|
|
167
|
+
|
|
168
|
+
## Claims
|
|
169
|
+
|
|
170
|
+
Allowed: “We self-assessed repository X against ADRB v0.4.0 on DATE; N controls were
|
|
171
|
+
repository-detected, M agent-collected, and P human-attested. Repository-detected progress was A of
|
|
172
|
+
an offline ceiling C.”
|
|
173
|
+
|
|
174
|
+
Not allowed: “Certified,” “compliant,” “safe,” “secure,” or “independently verified” based only on
|
|
175
|
+
this self-assessment.
|