agentic-scorecard 0.1.0 → 0.3.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 +68 -34
- package/FEEDBACK.md +53 -0
- package/README.md +120 -39
- package/benchmark/v0.2/adapter-contract.md +25 -0
- package/benchmark/v0.2/agent-evidence-schema.json +52 -0
- package/benchmark/v0.2/attestation-schema.json +26 -0
- package/benchmark/v0.2/benchmark.yaml +127 -0
- package/benchmark/v0.2/controls/context.yaml +51 -0
- package/benchmark/v0.2/controls/environment.yaml +70 -0
- package/benchmark/v0.2/controls/governance.yaml +60 -0
- package/benchmark/v0.2/controls/learning.yaml +48 -0
- package/benchmark/v0.2/controls/observability.yaml +76 -0
- package/benchmark/v0.2/controls/resilience.yaml +60 -0
- package/benchmark/v0.2/controls/security.yaml +71 -0
- package/benchmark/v0.2/controls/specification.yaml +62 -0
- package/benchmark/v0.2/controls/testing.yaml +60 -0
- package/benchmark/v0.2/controls/tooling.yaml +58 -0
- package/benchmark/v0.2/report-schema.json +47 -0
- package/benchmark/v0.2/scoring-policy.md +71 -0
- package/benchmark/v0.3/adapter-contract.md +44 -0
- package/benchmark/v0.3/adapters/known-agent-harnesses.yaml +177 -0
- package/benchmark/v0.3/adapters/known-python-tooling.yaml +18 -0
- package/benchmark/v0.3/adapters/known-security-tools.yaml +6 -0
- package/benchmark/v0.3/agent-evidence-schema.json +67 -0
- package/benchmark/v0.3/attestation-schema.json +26 -0
- package/benchmark/v0.3/benchmark.yaml +127 -0
- package/benchmark/v0.3/controls/context.yaml +79 -0
- package/benchmark/v0.3/controls/environment.yaml +93 -0
- package/benchmark/v0.3/controls/governance.yaml +97 -0
- package/benchmark/v0.3/controls/learning.yaml +80 -0
- package/benchmark/v0.3/controls/observability.yaml +91 -0
- package/benchmark/v0.3/controls/resilience.yaml +107 -0
- package/benchmark/v0.3/controls/security.yaml +129 -0
- package/benchmark/v0.3/controls/specification.yaml +83 -0
- package/benchmark/v0.3/controls/testing.yaml +85 -0
- package/benchmark/v0.3/controls/tooling.yaml +69 -0
- package/benchmark/v0.3/report-schema.json +89 -0
- package/benchmark/v0.3/scoring-policy.md +100 -0
- package/dist/cli.js +1043 -111
- package/package.json +5 -3
- package/templates/agent-evidence.yaml +11 -0
- package/templates/attestations.yaml +4 -4
- package/templates/baseline.csv +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
evidence:
|
|
19
|
+
- type: content_terms
|
|
20
|
+
scope: repository
|
|
21
|
+
files: [README.md, CONTRIBUTING.md, AGENTS.md, docs/testing/**, package.json, Makefile]
|
|
22
|
+
terms: [unit test, integration test, end-to-end, e2e, typecheck, lint, test]
|
|
23
|
+
min_terms: 2
|
|
24
|
+
remediation: Define the test taxonomy and one canonical command that matches CI.
|
|
25
|
+
- id: ADRB-TST-003
|
|
26
|
+
level: 3
|
|
27
|
+
title: CI executes the required verification layers
|
|
28
|
+
outcome: Repository automation runs appropriate tests and static checks from a clean state.
|
|
29
|
+
risk: Documented verification can be omitted from automation or run in an unrepresentative environment.
|
|
30
|
+
evidence:
|
|
31
|
+
- type: content_terms
|
|
32
|
+
scope: repository
|
|
33
|
+
files: [.github/workflows/**, .gitlab-ci.yml, Jenkinsfile, azure-pipelines.yml]
|
|
34
|
+
terms: [test, typecheck, lint, coverage, e2e, integration]
|
|
35
|
+
min_terms: 2
|
|
36
|
+
remediation: Configure CI to run the applicable verification layers from a clean environment.
|
|
37
|
+
- id: ADRB-TST-005
|
|
38
|
+
level: 3
|
|
39
|
+
title: Verification is enforced before merge
|
|
40
|
+
outcome: Merge policy requires the applicable CI checks and restricts bypasses.
|
|
41
|
+
risk: Healthy CI configuration remains optional under delivery pressure.
|
|
42
|
+
allow_attestation: true
|
|
43
|
+
allow_agent_evidence: true
|
|
44
|
+
evidence:
|
|
45
|
+
- type: manual
|
|
46
|
+
scope: platform
|
|
47
|
+
prompt: Show required status checks or equivalent merge gates, covered branches, bypass actors, and exception controls.
|
|
48
|
+
remediation: Make appropriate CI checks required merge gates and restrict, record, and review bypasses.
|
|
49
|
+
- id: ADRB-TST-004
|
|
50
|
+
level: 4
|
|
51
|
+
title: Verification effectiveness drives improvement
|
|
52
|
+
outcome: Escaped defects, flakiness, and other signal-quality outcomes are trended and improve testing.
|
|
53
|
+
risk: Test count and coverage rise while meaningful defects still escape.
|
|
54
|
+
allow_attestation: true
|
|
55
|
+
allow_agent_evidence: true
|
|
56
|
+
evidence:
|
|
57
|
+
- type: manual
|
|
58
|
+
scope: outcome
|
|
59
|
+
prompt: Provide verification outcome trends by task class and a recent test-strategy improvement driven by them.
|
|
60
|
+
remediation: Trend escaped defects and signal quality, then invest in the weakest verification layers.
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
evidence:
|
|
9
|
+
- type: path_any
|
|
10
|
+
scope: repository
|
|
11
|
+
patterns:
|
|
12
|
+
[
|
|
13
|
+
.codex/**,
|
|
14
|
+
.claude/**,
|
|
15
|
+
.agents/**,
|
|
16
|
+
.cursor/**,
|
|
17
|
+
.github/copilot-instructions.md,
|
|
18
|
+
mcp.json,
|
|
19
|
+
.mcp.json,
|
|
20
|
+
]
|
|
21
|
+
remediation: Commit a non-empty declaration of supported agent surfaces and their intended use.
|
|
22
|
+
- id: ADRB-TOL-002
|
|
23
|
+
level: 2
|
|
24
|
+
title: Tool scope and failure behavior are documented
|
|
25
|
+
outcome: Tool guidance defines authority, validation, success signals, failure handling, and approved fallback.
|
|
26
|
+
risk: Agents bypass failures, widen scope, or mistake partial results for success.
|
|
27
|
+
evidence:
|
|
28
|
+
- type: content_terms
|
|
29
|
+
scope: repository
|
|
30
|
+
files:
|
|
31
|
+
[AGENTS.md, CLAUDE.md, .agents/**/*.md, .claude/**/*.md, docs/agentic/**, docs/tools/**]
|
|
32
|
+
terms: [authority, permission, read-only, validation, failure, fallback, approval]
|
|
33
|
+
min_terms: 3
|
|
34
|
+
remediation: Document each high-impact tool's authority, inputs, validation, failure mode, and fallback.
|
|
35
|
+
- id: ADRB-TOL-003
|
|
36
|
+
level: 3
|
|
37
|
+
title: High-impact tool authority is technically bounded and audited
|
|
38
|
+
outcome: High-impact tools enforce least privilege, authorization, structured validation, and audit records.
|
|
39
|
+
risk: Prompt instructions become the only barrier between an agent and an irreversible action.
|
|
40
|
+
allow_attestation: true
|
|
41
|
+
allow_agent_evidence: true
|
|
42
|
+
evidence:
|
|
43
|
+
- type: manual
|
|
44
|
+
scope: platform
|
|
45
|
+
prompt: Show technical least-privilege enforcement, authorization tests, validation, audit records, and fail-closed behavior for high-impact tools.
|
|
46
|
+
remediation: Enforce scoped credentials, authorization, schema validation, audit logging, and deny-by-default behavior.
|
|
47
|
+
- id: ADRB-TOL-004
|
|
48
|
+
level: 4
|
|
49
|
+
title: Tool reliability drives improvement
|
|
50
|
+
outcome: Tool success, partial failure, denial, latency, and unsafe-fallback attempts are trended and improved.
|
|
51
|
+
risk: Tooling quality and risky workarounds remain anecdotal until an incident occurs.
|
|
52
|
+
allow_attestation: true
|
|
53
|
+
allow_agent_evidence: true
|
|
54
|
+
evidence:
|
|
55
|
+
- type: manual
|
|
56
|
+
scope: outcome
|
|
57
|
+
prompt: Provide tool reliability trends and a recent tool or fallback improvement driven by them.
|
|
58
|
+
remediation: Trend tool outcomes by task and risk class and improve weak or bypassed interfaces.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentic-readiness.dev/schema/v0.2/report.json",
|
|
4
|
+
"title": "ADRB v0.2 assessment report",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"schema_version",
|
|
8
|
+
"benchmark",
|
|
9
|
+
"target",
|
|
10
|
+
"assessed_at",
|
|
11
|
+
"score",
|
|
12
|
+
"evidence_summary",
|
|
13
|
+
"dimensions",
|
|
14
|
+
"controls",
|
|
15
|
+
"profiles",
|
|
16
|
+
"readiness",
|
|
17
|
+
"limitations"
|
|
18
|
+
],
|
|
19
|
+
"properties": {
|
|
20
|
+
"schema_version": { "const": "0.2.0" },
|
|
21
|
+
"benchmark": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"required": ["id", "version"],
|
|
24
|
+
"properties": { "version": { "const": "0.2.0" } }
|
|
25
|
+
},
|
|
26
|
+
"target": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"required": [
|
|
29
|
+
"repository",
|
|
30
|
+
"profile",
|
|
31
|
+
"scope",
|
|
32
|
+
"git_head",
|
|
33
|
+
"git_remote",
|
|
34
|
+
"working_tree_dirty"
|
|
35
|
+
],
|
|
36
|
+
"properties": { "scope": { "enum": ["tracked", "workspace"] } }
|
|
37
|
+
},
|
|
38
|
+
"assessed_at": { "type": "string", "format": "date-time" },
|
|
39
|
+
"score": { "type": "object" },
|
|
40
|
+
"evidence_summary": { "type": "object" },
|
|
41
|
+
"dimensions": { "type": "array", "minItems": 10, "maxItems": 10 },
|
|
42
|
+
"controls": { "type": "array" },
|
|
43
|
+
"profiles": { "type": "array" },
|
|
44
|
+
"readiness": { "type": "object" },
|
|
45
|
+
"limitations": { "type": "array", "items": { "type": "string" } }
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# v0.2 scoring policy
|
|
2
|
+
|
|
3
|
+
This document is normative for benchmark version 0.2.0.
|
|
4
|
+
|
|
5
|
+
## Unit and assessment scope
|
|
6
|
+
|
|
7
|
+
The unit is one repository plus explicitly supplied external and organizational evidence bound to
|
|
8
|
+
that repository. The default `tracked` mode considers only Git-tracked paths, using their current
|
|
9
|
+
working-tree contents. Reports record the commit, remote, and dirty state. `workspace` mode is
|
|
10
|
+
available for provisional assessment and is not directly comparable with tracked-mode reports.
|
|
11
|
+
|
|
12
|
+
Generated reports, attestations, evidence requests, and imported evidence bundles never qualify as
|
|
13
|
+
repository evidence. An assessment must be idempotent: adding its own generated artifacts cannot
|
|
14
|
+
change its score.
|
|
15
|
+
|
|
16
|
+
## Dimension scores
|
|
17
|
+
|
|
18
|
+
Each dimension earns level `n` only when every applicable control at that level and every lower
|
|
19
|
+
level is met. More than one control may exist at a level when separate observable outcomes are
|
|
20
|
+
required. Controls met above the first gap are reported but do not increase the dimension score.
|
|
21
|
+
|
|
22
|
+
The overall score is the sum of ten dimension scores, with a maximum of 40. The percentage is
|
|
23
|
+
display-only and does not determine readiness.
|
|
24
|
+
|
|
25
|
+
## Readiness decisions
|
|
26
|
+
|
|
27
|
+
Each autonomy profile defines a floor for every dimension. A profile passes only if every floor is
|
|
28
|
+
met. Strength in one dimension cannot compensate for a security, testing, governance, or recovery
|
|
29
|
+
gap elsewhere. No profile grants deployment or production authority.
|
|
30
|
+
|
|
31
|
+
## Evidence scopes and provenance
|
|
32
|
+
|
|
33
|
+
- `repository-detected`: a deterministic collector found qualifying evidence in the selected path
|
|
34
|
+
scope. It proves the reported artifact match, not consistent human behavior or external
|
|
35
|
+
enforcement.
|
|
36
|
+
- `agent-collected`: an authorized agent supplied a structured, source-backed external claim. It may
|
|
37
|
+
satisfy controls explicitly eligible for external evidence but is never independently verified.
|
|
38
|
+
- `attested`: an accountable person supplied a dated, expiring claim and durable reference.
|
|
39
|
+
- `unknown`: evidence is unavailable, expired, mismatched, unauthorized, or inconclusive.
|
|
40
|
+
|
|
41
|
+
Repository controls use non-empty files and control-specific, co-located term thresholds. External
|
|
42
|
+
platform, organization, and outcome controls cannot be inferred from repository keywords.
|
|
43
|
+
Human attestations and agent evidence may satisfy only controls explicitly eligible for those
|
|
44
|
+
classes; v0.2 repository-artifact controls are not overridable by declaration.
|
|
45
|
+
|
|
46
|
+
Level 4 requires time-series or outcome evidence and an improvement decision influenced by it. The
|
|
47
|
+
existence of a dashboard is insufficient.
|
|
48
|
+
|
|
49
|
+
## Agent evidence bundles
|
|
50
|
+
|
|
51
|
+
An agent evidence bundle is version-bound and target-bound. Claims record scope, status, collector,
|
|
52
|
+
collection and expiry times, a privacy-safe derivation summary, and durable references. The core
|
|
53
|
+
scanner makes no network calls; the agent obtains explicit authorization and uses read-only tools to
|
|
54
|
+
create the bundle. An error is distinct from a negative result and cannot pass a control.
|
|
55
|
+
|
|
56
|
+
Agent evidence can satisfy only controls with `allow_agent_evidence: true`. It cannot override a
|
|
57
|
+
failed repository artifact control.
|
|
58
|
+
|
|
59
|
+
## Changes and comparability
|
|
60
|
+
|
|
61
|
+
v0.1 remains immutable. v0.1 and v0.2 scores are not directly comparable because evidence and
|
|
62
|
+
control semantics changed. Reports are comparable only when benchmark version, target profile,
|
|
63
|
+
repository scope, evidence policy, and assessment mode match.
|
|
64
|
+
|
|
65
|
+
## Claims
|
|
66
|
+
|
|
67
|
+
Allowed: “We self-assessed repository X against ADRB v0.2.0 on DATE; N controls were
|
|
68
|
+
repository-detected, M agent-collected, and P human-attested.”
|
|
69
|
+
|
|
70
|
+
Not allowed: “Certified,” “compliant,” “safe,” “secure,” or “independently verified” based only on
|
|
71
|
+
this self-assessment.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# v0.3 adapter contracts
|
|
2
|
+
|
|
3
|
+
## Repository detector adapters
|
|
4
|
+
|
|
5
|
+
Portable controls define outcomes and generic repository conventions. Files in `adapters/*.yaml`
|
|
6
|
+
may extend one control evidence check with recognized harness-specific `patterns`, `files`, `terms`,
|
|
7
|
+
or `required_any_terms`. An extension names the control and zero-based evidence index and adds
|
|
8
|
+
exactly one of those fields. It cannot remove or weaken a threshold, change a control level, alter a
|
|
9
|
+
readiness floor, add an attestation path, or execute code.
|
|
10
|
+
|
|
11
|
+
Bundled adapters are loaded deterministically in filename order. Their candidates remain subject to
|
|
12
|
+
the same tracked/workspace scope, symlink, size, generated-artifact, co-location, proximity, and
|
|
13
|
+
per-pattern limits as portable candidates. Adding or changing a bundled adapter changes evidence
|
|
14
|
+
semantics and therefore requires a new benchmark version.
|
|
15
|
+
|
|
16
|
+
## Agent-collected evidence adapters
|
|
17
|
+
|
|
18
|
+
The core scanner is local, read-only, network-free, and vendor-neutral. An agent or adapter may
|
|
19
|
+
collect semantic repository evidence or external evidence that deterministic scanning cannot
|
|
20
|
+
establish, then provide it through the versioned agent evidence bundle.
|
|
21
|
+
|
|
22
|
+
Each claim contains:
|
|
23
|
+
|
|
24
|
+
- benchmark version and control ID;
|
|
25
|
+
- exact repository target and non-null commit binding;
|
|
26
|
+
- `met`, `not_met`, or `unknown` status;
|
|
27
|
+
- repository, platform, organization, or outcome scope;
|
|
28
|
+
- collector name and version;
|
|
29
|
+
- collection timestamp and mandatory expiry;
|
|
30
|
+
- privacy-safe references, never credentials or raw sensitive content;
|
|
31
|
+
- a concise derivation summary; and
|
|
32
|
+
- an optional error that is distinguishable from a negative result.
|
|
33
|
+
|
|
34
|
+
Collectors must be read-only, least-privileged, bounded to the approved target, time-limited, and
|
|
35
|
+
fail closed. Network content is untrusted input: it cannot alter benchmark policy, prompts, tool
|
|
36
|
+
authority, or the set of controls being assessed.
|
|
37
|
+
|
|
38
|
+
Repository-scoped claims require tracked files to match HEAD and
|
|
39
|
+
`repo:<tracked-path>[#Lx-Ly]` references. They may satisfy only explicitly eligible controls, remain `agent-collected`, and never increase the
|
|
40
|
+
repository-detected score. External claims require durable references appropriate to their source.
|
|
41
|
+
|
|
42
|
+
Agent-collected claims remain visibly distinct from deterministic repository evidence and human
|
|
43
|
+
attestations. A future conformant-adapter class may add signed identity and independent conformance
|
|
44
|
+
tests; v0.3 does not issue an independently verified label.
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
id: known-agent-harnesses
|
|
2
|
+
benchmark_version: 0.3.0
|
|
3
|
+
extensions:
|
|
4
|
+
- control_id: ADRB-CTX-001
|
|
5
|
+
evidence_index: 0
|
|
6
|
+
patterns:
|
|
7
|
+
[
|
|
8
|
+
CLAUDE.md,
|
|
9
|
+
.github/copilot-instructions.md,
|
|
10
|
+
.claude/**,
|
|
11
|
+
.codex/**,
|
|
12
|
+
.cursor/rules/**,
|
|
13
|
+
.cursor/agents/**,
|
|
14
|
+
.cursor/skills/**,
|
|
15
|
+
.opencode/**,
|
|
16
|
+
]
|
|
17
|
+
- control_id: ADRB-CTX-002
|
|
18
|
+
evidence_index: 0
|
|
19
|
+
files:
|
|
20
|
+
[
|
|
21
|
+
CLAUDE.md,
|
|
22
|
+
.github/copilot-instructions.md,
|
|
23
|
+
.claude/**/*.md,
|
|
24
|
+
.codex/**/*.md,
|
|
25
|
+
.cursor/rules/**/*.md,
|
|
26
|
+
.cursor/agents/**/*.md,
|
|
27
|
+
.opencode/**/*.md,
|
|
28
|
+
]
|
|
29
|
+
- control_id: ADRB-CTX-003
|
|
30
|
+
evidence_index: 0
|
|
31
|
+
required_any_terms: [CLAUDE.md, copilot instructions]
|
|
32
|
+
- control_id: ADRB-ENV-001
|
|
33
|
+
evidence_index: 0
|
|
34
|
+
files:
|
|
35
|
+
[
|
|
36
|
+
CLAUDE.md,
|
|
37
|
+
.claude/**/*.md,
|
|
38
|
+
.codex/**/*.md,
|
|
39
|
+
.cursor/agents/**/*.md,
|
|
40
|
+
.cursor/rules/**/*.md,
|
|
41
|
+
.cursor/skills/**/*.md,
|
|
42
|
+
.opencode/**/*.md,
|
|
43
|
+
]
|
|
44
|
+
- control_id: ADRB-SPC-001
|
|
45
|
+
evidence_index: 0
|
|
46
|
+
patterns: [.kiro/specs/**, .cursor/plans/**, .codex/plans/**]
|
|
47
|
+
- control_id: ADRB-SPC-002
|
|
48
|
+
evidence_index: 0
|
|
49
|
+
files: [.kiro/specs/**, .cursor/plans/**, .codex/plans/**]
|
|
50
|
+
- control_id: ADRB-TOL-001
|
|
51
|
+
evidence_index: 0
|
|
52
|
+
patterns:
|
|
53
|
+
[
|
|
54
|
+
.claude/**,
|
|
55
|
+
.codex/**,
|
|
56
|
+
.cursor/**,
|
|
57
|
+
.opencode/**,
|
|
58
|
+
.github/copilot-instructions.md,
|
|
59
|
+
opencode.json,
|
|
60
|
+
]
|
|
61
|
+
- control_id: ADRB-TOL-002
|
|
62
|
+
evidence_index: 0
|
|
63
|
+
files:
|
|
64
|
+
[
|
|
65
|
+
CLAUDE.md,
|
|
66
|
+
.claude/**/*.md,
|
|
67
|
+
.codex/**/*.md,
|
|
68
|
+
.cursor/agents/**/*.md,
|
|
69
|
+
.cursor/rules/**/*.md,
|
|
70
|
+
.cursor/skills/**/*.md,
|
|
71
|
+
.opencode/**/*.md,
|
|
72
|
+
]
|
|
73
|
+
- control_id: ADRB-SEC-001
|
|
74
|
+
evidence_index: 0
|
|
75
|
+
files:
|
|
76
|
+
[
|
|
77
|
+
CLAUDE.md,
|
|
78
|
+
.claude/**/*.md,
|
|
79
|
+
.codex/**/*.md,
|
|
80
|
+
.cursor/agents/**/*.md,
|
|
81
|
+
.cursor/rules/**/*.md,
|
|
82
|
+
.cursor/skills/**/*.md,
|
|
83
|
+
.opencode/**/*.md,
|
|
84
|
+
]
|
|
85
|
+
- control_id: ADRB-SEC-002
|
|
86
|
+
evidence_index: 0
|
|
87
|
+
files:
|
|
88
|
+
[
|
|
89
|
+
CLAUDE.md,
|
|
90
|
+
.claude/**/*.md,
|
|
91
|
+
.codex/**/*.md,
|
|
92
|
+
.cursor/agents/**/*.md,
|
|
93
|
+
.cursor/rules/**/*.md,
|
|
94
|
+
.cursor/skills/**/*.md,
|
|
95
|
+
.opencode/**/*.md,
|
|
96
|
+
]
|
|
97
|
+
- control_id: ADRB-TST-002
|
|
98
|
+
evidence_index: 0
|
|
99
|
+
files:
|
|
100
|
+
[
|
|
101
|
+
CLAUDE.md,
|
|
102
|
+
.claude/**/*.md,
|
|
103
|
+
.codex/**/*.md,
|
|
104
|
+
.cursor/agents/**/*.md,
|
|
105
|
+
.cursor/rules/**/*.md,
|
|
106
|
+
.cursor/skills/**/*.md,
|
|
107
|
+
.opencode/**/*.md,
|
|
108
|
+
]
|
|
109
|
+
- control_id: ADRB-GOV-001
|
|
110
|
+
evidence_index: 0
|
|
111
|
+
files:
|
|
112
|
+
[
|
|
113
|
+
CLAUDE.md,
|
|
114
|
+
.claude/**/*.md,
|
|
115
|
+
.codex/**/*.md,
|
|
116
|
+
.cursor/agents/**/*.md,
|
|
117
|
+
.cursor/rules/**/*.md,
|
|
118
|
+
.cursor/skills/**/*.md,
|
|
119
|
+
.opencode/**/*.md,
|
|
120
|
+
]
|
|
121
|
+
- control_id: ADRB-GOV-002
|
|
122
|
+
evidence_index: 1
|
|
123
|
+
files:
|
|
124
|
+
[
|
|
125
|
+
CLAUDE.md,
|
|
126
|
+
.claude/**/*.md,
|
|
127
|
+
.codex/**/*.md,
|
|
128
|
+
.cursor/agents/**/*.md,
|
|
129
|
+
.cursor/rules/**/*.md,
|
|
130
|
+
.cursor/skills/**/*.md,
|
|
131
|
+
.opencode/**/*.md,
|
|
132
|
+
]
|
|
133
|
+
- control_id: ADRB-LRN-001
|
|
134
|
+
evidence_index: 0
|
|
135
|
+
patterns: [.claude/memory/**, .codex/memory/**, .cursor/memory/**, .opencode/memory/**]
|
|
136
|
+
- control_id: ADRB-LRN-002
|
|
137
|
+
evidence_index: 0
|
|
138
|
+
files:
|
|
139
|
+
[
|
|
140
|
+
CLAUDE.md,
|
|
141
|
+
.claude/**/*.md,
|
|
142
|
+
.codex/**/*.md,
|
|
143
|
+
.cursor/agents/**/*.md,
|
|
144
|
+
.cursor/rules/**/*.md,
|
|
145
|
+
.cursor/skills/**/*.md,
|
|
146
|
+
.opencode/**/*.md,
|
|
147
|
+
]
|
|
148
|
+
- control_id: ADRB-OBS-001
|
|
149
|
+
evidence_index: 0
|
|
150
|
+
files: [.cursor/runs/README*, .codex/runs/README*, .claude/runs/README*]
|
|
151
|
+
- control_id: ADRB-OBS-002
|
|
152
|
+
evidence_index: 0
|
|
153
|
+
files: [.cursor/runs/README*, .codex/runs/README*, .claude/runs/README*]
|
|
154
|
+
- control_id: ADRB-RES-001
|
|
155
|
+
evidence_index: 0
|
|
156
|
+
files:
|
|
157
|
+
[
|
|
158
|
+
CLAUDE.md,
|
|
159
|
+
.claude/**/*.md,
|
|
160
|
+
.codex/**/*.md,
|
|
161
|
+
.cursor/agents/**/*.md,
|
|
162
|
+
.cursor/rules/**/*.md,
|
|
163
|
+
.cursor/skills/**/*.md,
|
|
164
|
+
.opencode/**/*.md,
|
|
165
|
+
]
|
|
166
|
+
- control_id: ADRB-RES-002
|
|
167
|
+
evidence_index: 0
|
|
168
|
+
files:
|
|
169
|
+
[
|
|
170
|
+
CLAUDE.md,
|
|
171
|
+
.claude/**/*.md,
|
|
172
|
+
.codex/**/*.md,
|
|
173
|
+
.cursor/agents/**/*.md,
|
|
174
|
+
.cursor/rules/**/*.md,
|
|
175
|
+
.cursor/skills/**/*.md,
|
|
176
|
+
.opencode/**/*.md,
|
|
177
|
+
]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
id: known-python-tooling
|
|
2
|
+
benchmark_version: 0.3.0
|
|
3
|
+
extensions:
|
|
4
|
+
- control_id: ADRB-ENV-001
|
|
5
|
+
evidence_index: 0
|
|
6
|
+
files: [pyproject.toml]
|
|
7
|
+
- control_id: ADRB-ENV-001
|
|
8
|
+
evidence_index: 0
|
|
9
|
+
terms: [requires-python, uv sync, python]
|
|
10
|
+
- control_id: ADRB-TST-002
|
|
11
|
+
evidence_index: 0
|
|
12
|
+
files: [run_quality_checks.sh, scripts/**/quality*.sh, tox.ini, noxfile.py]
|
|
13
|
+
- control_id: ADRB-TST-002
|
|
14
|
+
evidence_index: 0
|
|
15
|
+
terms: [pytest, mypy, flake8, ruff, pyright, tox, nox]
|
|
16
|
+
- control_id: ADRB-TST-003
|
|
17
|
+
evidence_index: 0
|
|
18
|
+
terms: [pytest, mypy, flake8, ruff, pyright, tox, nox, pytest-cov]
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentic-readiness.dev/schema/v0.3/agent-evidence.json",
|
|
4
|
+
"title": "ADRB v0.3 agent-collected evidence bundle",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "benchmark_version", "target", "collector", "claims"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": { "const": "0.3.0" },
|
|
10
|
+
"benchmark_version": { "const": "0.3.0" },
|
|
11
|
+
"target": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["repository", "git_head"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"repository": { "type": "string", "minLength": 1 },
|
|
17
|
+
"git_head": { "type": "string", "minLength": 1 }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"collector": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": ["name", "version"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"name": { "type": "string", "minLength": 1 },
|
|
26
|
+
"version": { "type": "string", "minLength": 1 }
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"claims": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"propertyNames": { "pattern": "^ADRB-[A-Z]{3}-[0-9]{3}$" },
|
|
32
|
+
"additionalProperties": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"additionalProperties": false,
|
|
35
|
+
"required": ["status", "scope", "summary", "references", "collected_at", "expires_at"],
|
|
36
|
+
"properties": {
|
|
37
|
+
"status": { "enum": ["met", "not_met", "unknown"] },
|
|
38
|
+
"scope": { "enum": ["repository", "platform", "organization", "outcome"] },
|
|
39
|
+
"summary": { "type": "string", "minLength": 1 },
|
|
40
|
+
"references": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"minItems": 1,
|
|
43
|
+
"items": { "type": "string", "minLength": 1 }
|
|
44
|
+
},
|
|
45
|
+
"collected_at": { "type": "string", "format": "date-time" },
|
|
46
|
+
"expires_at": { "type": "string", "format": "date-time" },
|
|
47
|
+
"error": { "type": ["string", "null"], "minLength": 1 }
|
|
48
|
+
},
|
|
49
|
+
"allOf": [
|
|
50
|
+
{
|
|
51
|
+
"if": { "properties": { "scope": { "const": "repository" } } },
|
|
52
|
+
"then": {
|
|
53
|
+
"properties": {
|
|
54
|
+
"references": {
|
|
55
|
+
"items": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"pattern": "^repo:(?!/)(?!\\.{1,2}(?:/|#|$))(?!.*\\/\\.{1,2}(?:/|#|$))(?!.*\\\\)[^#]+(?:#L[1-9][0-9]*(?:-L?[1-9][0-9]*)?)?$"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentic-readiness.dev/schema/v0.3/attestations.json",
|
|
4
|
+
"title": "ADRB v0.3 human attestation file",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["benchmark_version", "attestations"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"benchmark_version": { "const": "0.3.0" },
|
|
10
|
+
"attestations": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"required": ["status", "evidence", "owner", "reviewed_at", "expires_at"],
|
|
16
|
+
"properties": {
|
|
17
|
+
"status": { "enum": ["met", "not_met", "not_applicable", "unknown"] },
|
|
18
|
+
"evidence": { "type": "string", "minLength": 1 },
|
|
19
|
+
"owner": { "type": "string", "minLength": 1 },
|
|
20
|
+
"reviewed_at": { "type": "string", "format": "date" },
|
|
21
|
+
"expires_at": { "type": "string", "format": "date" }
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|