agentic-scorecard 0.3.0 → 0.3.1
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 +66 -50
- package/README.md +22 -15
- package/dist/cli.js +32 -4
- package/package.json +1 -1
package/AGENT_PROMPT.md
CHANGED
|
@@ -4,66 +4,82 @@ These prompts are vendor-neutral. The agent needs terminal access to the reposit
|
|
|
4
4
|
to download the published npm package. The default benchmark runs locally, reads only tracked paths,
|
|
5
5
|
invokes no model, uploads no source, and makes no network calls after installation.
|
|
6
6
|
|
|
7
|
-
## Recommended:
|
|
7
|
+
## Recommended: complete agent-assisted assessment
|
|
8
8
|
|
|
9
9
|
Copy and paste:
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
12
|
+
Perform the complete ADRB v0.3 assessment of this repository for AI-agent pull-request work.
|
|
13
|
+
|
|
14
|
+
Do not change product source, tests, configuration, policies, Git history, or the user's current
|
|
15
|
+
checkout. First inspect the repository's commit, tracked-file status, upstream tracking branch, and
|
|
16
|
+
ahead/behind state. If read-only network access is already authorized, fetch the upstream before
|
|
17
|
+
comparing it. Select the commit before creating an assessment worktree. Default to the current HEAD;
|
|
18
|
+
a dirty checkout does not change that selection, so assess HEAD from an isolated clean worktree. Use
|
|
19
|
+
the fetched upstream commit only when I asked for the latest/current upstream state and the branch is
|
|
20
|
+
behind. If the checkout is both dirty and behind, state both facts and preserve HEAD by default unless
|
|
21
|
+
I explicitly asked for upstream or another commit. State the exact commit you selected and why.
|
|
22
|
+
|
|
23
|
+
Before running the scorecard, choose and state an absolute durable artifact directory outside any
|
|
24
|
+
temporary worktree. Do not delete that directory during worktree cleanup. In the commands below,
|
|
25
|
+
replace `<artifact-dir>` with that path. The npm package version is 0.3.1, while report filenames use
|
|
26
|
+
the immutable ADRB benchmark version 0.3.0.
|
|
27
|
+
|
|
28
|
+
From that clean target, run the repository-only baseline:
|
|
29
|
+
npx --yes agentic-scorecard@0.3.1 assess . --profile pr-creation --scope tracked --format markdown --output <artifact-dir>/agentic-readiness-v0.3.0-baseline.md
|
|
30
|
+
|
|
31
|
+
Then prepare unresolved evidence:
|
|
32
|
+
npx --yes agentic-scorecard@0.3.1 init-evidence . --output <artifact-dir>/agent-evidence.yaml --request-output <artifact-dir>/evidence-request.md
|
|
33
|
+
|
|
34
|
+
Read the baseline, `<artifact-dir>/evidence-request.md`, and the empty target-bound
|
|
35
|
+
`<artifact-dir>/agent-evidence.yaml`. Investigate nuanced repository-scoped requests only from
|
|
36
|
+
tracked files at the selected commit. Before accessing Git hosting settings, CI, dashboards, logs,
|
|
37
|
+
ticketing, or any other connected system, tell me exactly which least-privileged read-only tools,
|
|
38
|
+
accounts, repositories, branches, dashboards, and time ranges you need, and why. Wait for my
|
|
39
|
+
authorization.
|
|
40
|
+
|
|
41
|
+
After authorization, attempt only eligible requests. For every attempted claim, record its status,
|
|
42
|
+
scope, concise derivation, collection time, 30-day-or-shorter expiry, and durable privacy-safe
|
|
43
|
+
references. Repository claims must use `repo:<path>[#Lx-Ly]`; do not merely restate a keyword match.
|
|
44
|
+
A permission error, stale source, or inconclusive result remains unknown and records the error.
|
|
45
|
+
Never infer a pass, invent an attestation, or treat unavailable evidence as a failure.
|
|
46
|
+
|
|
47
|
+
Do not place credentials, prompts, source excerpts, raw logs, personal data, customer data, private
|
|
48
|
+
URLs that reveal secrets, or sensitive dashboard contents in generated files.
|
|
49
|
+
|
|
50
|
+
When authorized evidence collection is complete, run:
|
|
51
|
+
npx --yes agentic-scorecard@0.3.1 assess . --profile pr-creation --scope tracked --agent-evidence <artifact-dir>/agent-evidence.yaml --format markdown --output <artifact-dir>/agentic-readiness-v0.3.0-assisted.md
|
|
52
|
+
|
|
53
|
+
Tell me the repository-detected progress and normative score, the highest passed profile, whether
|
|
54
|
+
pr-creation passes, every target blocker, and the five highest-value improvements. Compare baseline
|
|
55
|
+
and assisted reports control by control. Keep repository-detected, agent-collected, and
|
|
56
|
+
human-attested evidence separate; treat UNKNOWN as unresolved, not failed; and flag likely false
|
|
57
|
+
positives or negatives. If I decline external access, stop after the baseline and label it clearly as
|
|
58
|
+
a repository-only baseline. Before removing a temporary worktree, verify that every report, evidence
|
|
59
|
+
request, and evidence bundle you cite exists in the durable artifact directory, then tell me that
|
|
60
|
+
directory's absolute path. Leave generated artifacts uncommitted unless I explicitly ask otherwise.
|
|
61
|
+
Do not describe any result as certified, compliant, safe, secure, or independently verified.
|
|
30
62
|
```
|
|
31
63
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Use this only after reviewing the repository baseline:
|
|
35
|
-
|
|
36
|
-
```text
|
|
37
|
-
Investigate the controls that the ADRB v0.3 baseline could not establish.
|
|
38
|
-
|
|
39
|
-
First ensure tracked files match HEAD and the repository has a commit, then run:
|
|
40
|
-
npx --yes agentic-scorecard@0.3.0 init-evidence .
|
|
41
|
-
|
|
42
|
-
Read `.agentic/evidence-request.md` and the empty target-bound
|
|
43
|
-
`.agentic/agent-evidence.yaml` bundle. The request includes only unresolved controls that permit
|
|
44
|
-
agent-collected evidence. Before accessing any connected system, tell me which read-only tools,
|
|
45
|
-
accounts, repositories, branches, dashboards, and time ranges you need. Wait for my authorization.
|
|
46
|
-
|
|
47
|
-
After authorization, use only least-privileged read-only operations. For each attempted control,
|
|
48
|
-
record the source-backed status, scope, concise derivation, collection time, 30-day-or-shorter
|
|
49
|
-
expiry, and durable privacy-safe references. For repository-scoped claims, cite only tracked files
|
|
50
|
-
at the bound commit using `repo:<path>[#Lx-Ly]`; do not use a repository claim to restate a keyword
|
|
51
|
-
match. Add only claims you actually investigated. A permission error or inconclusive result must
|
|
52
|
-
remain unknown and include the error; never infer a pass.
|
|
64
|
+
The agent is an evidence investigator. The scorecard remains the scoring authority.
|
|
53
65
|
|
|
54
|
-
|
|
55
|
-
sensitive dashboard contents into the bundle.
|
|
66
|
+
## Fast repository-only baseline
|
|
56
67
|
|
|
57
|
-
|
|
58
|
-
|
|
68
|
+
Use this when you want an offline first look and accept that platform, organization, and outcome
|
|
69
|
+
controls will remain unresolved:
|
|
59
70
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
```text
|
|
72
|
+
Run a fast repository-only ADRB v0.3 baseline for AI-agent pull-request work. Verify and state the
|
|
73
|
+
selected commit and whether tracked files match HEAD, then run:
|
|
74
|
+
npx --yes agentic-scorecard@0.3.1 assess . --profile pr-creation --scope tracked --format markdown --output .agentic/reports/agentic-readiness-v0.3.0-baseline.md
|
|
75
|
+
|
|
76
|
+
Do not change repository files or invent evidence. Summarize repository-detected progress before
|
|
77
|
+
the normative score, target-profile blockers, and the five highest-value repository improvements.
|
|
78
|
+
Separate true repository gaps from platform, organization, and outcome evidence that this offline
|
|
79
|
+
scan cannot establish. Treat UNKNOWN as unresolved, not failed, and call the result a repository-only
|
|
80
|
+
baseline rather than a complete assessment. Leave generated artifacts uncommitted.
|
|
63
81
|
```
|
|
64
82
|
|
|
65
|
-
The agent is an evidence investigator. The scorecard remains the scoring authority.
|
|
66
|
-
|
|
67
83
|
## Choose a different authority level
|
|
68
84
|
|
|
69
85
|
Replace `pr-creation` with one of:
|
|
@@ -90,7 +106,7 @@ authorize.
|
|
|
90
106
|
## Reassessment
|
|
91
107
|
|
|
92
108
|
```text
|
|
93
|
-
Re-run the pinned ADRB v0.3.0 benchmark for the same profile and tracked scope. Compare reports
|
|
109
|
+
Re-run the pinned ADRB v0.3.0 benchmark with agentic-scorecard@0.3.1 for the same profile and tracked scope. Compare reports
|
|
94
110
|
control by control. Explain changes using evidence and identify changed commit state, expired
|
|
95
111
|
claims, scope differences, regressions, or newly established controls. Compare normative and
|
|
96
112
|
repository-detected progress separately. Write a new dated report; do not overwrite the previous
|
package/README.md
CHANGED
|
@@ -22,20 +22,27 @@ historical reproduction; scores from different benchmark versions are not direct
|
|
|
22
22
|
|
|
23
23
|
## Ask your coding agent
|
|
24
24
|
|
|
25
|
-
You do not need to install or learn the CLI yourself. Paste this
|
|
25
|
+
You do not need to install or learn the CLI yourself. Paste this instruction into Codex, Claude Code,
|
|
26
26
|
GitHub Copilot, Cursor, or another coding agent that has terminal access to your repository:
|
|
27
27
|
|
|
28
|
-
>
|
|
29
|
-
> `
|
|
30
|
-
>
|
|
31
|
-
>
|
|
32
|
-
>
|
|
33
|
-
>
|
|
34
|
-
>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
> Perform the complete ADRB v0.3 assessment of this repository for AI-agent pull-request work using
|
|
29
|
+
> `agentic-scorecard@0.3.1`. First select and state the commit without modifying my checkout; preserve
|
|
30
|
+
> HEAD when the checkout is dirty, and use upstream only if I requested the latest upstream state.
|
|
31
|
+
> Assess it from a clean worktree and keep all generated artifacts in a durable directory outside any
|
|
32
|
+
> temporary worktree. Run the tracked repository baseline, then run `init-evidence`, read its evidence
|
|
33
|
+
> request, and tell me which least-privileged read-only connected systems you need. Wait for my
|
|
34
|
+
> authorization before accessing them. After authorized collection, rerun the assessment and compare
|
|
35
|
+
> the baseline and assisted reports control by control. Keep repository-detected, agent-collected, and
|
|
36
|
+
> human-attested evidence separate; never invent evidence; treat UNKNOWN as unresolved; and leave
|
|
37
|
+
> generated artifacts uncommitted.
|
|
38
|
+
|
|
39
|
+
The complete copy-and-paste prompt, including privacy limits and exact commands, is in
|
|
40
|
+
[AGENT_PROMPT.md](AGENT_PROMPT.md). It makes the evidence-assisted workflow the recommendation. A
|
|
41
|
+
fast filesystem scan remains available, but it is explicitly a **repository-only baseline** and
|
|
42
|
+
cannot establish platform, organization, or outcome controls by itself.
|
|
43
|
+
|
|
44
|
+
The reference CLI/package is version 0.3.1. Generated report names use benchmark version 0.3.0
|
|
45
|
+
because the patch release changed workflow guidance, not the immutable scoring benchmark.
|
|
39
46
|
|
|
40
47
|
## Feedback and community
|
|
41
48
|
|
|
@@ -70,7 +77,7 @@ A supported Node.js LTS release (20.19+, 22.13+, or 24+) is required. Assessment
|
|
|
70
77
|
read-only, and offline by default.
|
|
71
78
|
|
|
72
79
|
```bash
|
|
73
|
-
npx agentic-scorecard@0.3.
|
|
80
|
+
npx agentic-scorecard@0.3.1 assess /path/to/repository \
|
|
74
81
|
--profile pr-creation \
|
|
75
82
|
--scope tracked \
|
|
76
83
|
--format markdown \
|
|
@@ -80,7 +87,7 @@ npx agentic-scorecard@0.3.0 assess /path/to/repository \
|
|
|
80
87
|
To record controls that repository inspection cannot prove:
|
|
81
88
|
|
|
82
89
|
```bash
|
|
83
|
-
npx agentic-scorecard@0.3.
|
|
90
|
+
npx agentic-scorecard@0.3.1 init /path/to/repository
|
|
84
91
|
```
|
|
85
92
|
|
|
86
93
|
Complete `.agentic/attestations.yaml` with owners and durable evidence links, then assess again.
|
|
@@ -91,7 +98,7 @@ external systems, first generate a target-bound template. The repository must be
|
|
|
91
98
|
with at least one commit so the bundle can bind to the exact assessed state:
|
|
92
99
|
|
|
93
100
|
```bash
|
|
94
|
-
npx agentic-scorecard@0.3.
|
|
101
|
+
npx agentic-scorecard@0.3.1 init-evidence /path/to/repository
|
|
95
102
|
```
|
|
96
103
|
|
|
97
104
|
Ask the agent to review `.agentic/evidence-request.md`, obtain approval before using
|
package/dist/cli.js
CHANGED
|
@@ -537,6 +537,10 @@ function toMarkdown(report) {
|
|
|
537
537
|
(control) => ["platform", "organization"].includes(controlScope(control))
|
|
538
538
|
);
|
|
539
539
|
const outcomeControls = unresolved.filter((control) => controlScope(control) === "outcome");
|
|
540
|
+
const repositoryOnlyBaseline = !report.controls.some(
|
|
541
|
+
({ agent_evidence: agentEvidence, attestation }) => agentEvidence !== null || attestation !== null
|
|
542
|
+
);
|
|
543
|
+
const resolvedEvidence = report.evidence_summary.resolved !== void 0 && report.evidence_summary.total !== void 0 ? `; ${report.evidence_summary.resolved}/${report.evidence_summary.total} controls resolved` : "";
|
|
540
544
|
const lines = [
|
|
541
545
|
"# Agentic Development Readiness Assessment",
|
|
542
546
|
"",
|
|
@@ -546,13 +550,16 @@ function toMarkdown(report) {
|
|
|
546
550
|
`- Git commit: ${report.target.git_head ? `\`${report.target.git_head}\`` : "unavailable"}`,
|
|
547
551
|
`- Working tree dirty: ${report.target.working_tree_dirty === null ? "unknown" : String(report.target.working_tree_dirty)}`,
|
|
548
552
|
`- Assessed: ${report.assessed_at}`,
|
|
549
|
-
|
|
553
|
+
...repositoryOnlyBaseline ? [
|
|
554
|
+
"- Assessment mode: **repository-only baseline** \u2014 platform, organization, and outcome evidence has not been established"
|
|
555
|
+
] : ["- Assessment mode: **evidence-assisted assessment**"],
|
|
550
556
|
...report.score.repository ? [
|
|
551
557
|
`- Repository-detected progress: **${report.score.repository.achieved}/${report.score.repository.ceiling} (${report.score.repository.percentage}%)** of the maturity levels the offline repository collector can establish`
|
|
552
558
|
] : [],
|
|
559
|
+
`- Normative readiness score: **${report.score.total}/${report.score.maximum} (${report.score.percentage}%)**`,
|
|
553
560
|
`- Highest readiness profile: **${report.readiness.highest_profile ?? "none"}**`,
|
|
554
561
|
`- Target \`${report.target.profile}\`: **${report.readiness.target_passed ? `PASS${targetProvenance}` : "FAIL"}**`,
|
|
555
|
-
`-
|
|
562
|
+
`- Established evidence: ${report.evidence_summary.repository_detected} repository-detected, ${report.evidence_summary.agent_collected} agent-collected, ${report.evidence_summary.attested} human-attested; ${report.evidence_summary.unmet} unmet, ${report.evidence_summary.unknown} unknown${resolvedEvidence}`,
|
|
556
563
|
...report.warnings && report.warnings.length > 0 ? [`- Warnings: **${report.warnings.length} \u2014 review before using this assessment**`] : [],
|
|
557
564
|
"",
|
|
558
565
|
...report.warnings && report.warnings.length > 0 ? [
|
|
@@ -1130,6 +1137,27 @@ async function assess(repo, benchmark, catalog, profileId, options = {}) {
|
|
|
1130
1137
|
)
|
|
1131
1138
|
)
|
|
1132
1139
|
);
|
|
1140
|
+
const warnings = [...options.warnings ?? []];
|
|
1141
|
+
if (benchmark.version === "0.3.0") {
|
|
1142
|
+
if (scope === "tracked" && context.metadata.tracked_tree_dirty) {
|
|
1143
|
+
warnings.push(
|
|
1144
|
+
"Tracked assessment includes uncommitted tracked-file contents, so the result is not reproducible from git_head alone. Use a clean worktree before comparing scores or collecting agent evidence."
|
|
1145
|
+
);
|
|
1146
|
+
}
|
|
1147
|
+
const hasActiveSupplementalEvidence = controls.some(
|
|
1148
|
+
({ agent_evidence: agentEvidence, attestation }) => agentEvidence !== null || attestation !== null
|
|
1149
|
+
);
|
|
1150
|
+
const unresolvedExternalOrOutcome = controls.some(
|
|
1151
|
+
({ evidence, status }) => (status === "unknown" || status === "not_met") && evidence.some(
|
|
1152
|
+
({ scope: evidenceScope }) => ["platform", "organization", "outcome"].includes(evidenceScope)
|
|
1153
|
+
)
|
|
1154
|
+
);
|
|
1155
|
+
if (!hasActiveSupplementalEvidence && unresolvedExternalOrOutcome) {
|
|
1156
|
+
warnings.push(
|
|
1157
|
+
"Repository-only baseline: no active agent-collected or human-attested evidence was supplied. Platform, organization, and outcome evidence remains unresolved until authorized evidence is collected with init-evidence or supplied by accountable owners."
|
|
1158
|
+
);
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1133
1161
|
const dimensions = benchmark.dimensions.map(({ id, title }) => {
|
|
1134
1162
|
const dimensionControls = controls.filter((control) => control.dimension === id);
|
|
1135
1163
|
return {
|
|
@@ -1157,7 +1185,7 @@ async function assess(repo, benchmark, catalog, profileId, options = {}) {
|
|
|
1157
1185
|
working_tree_dirty: context.metadata.working_tree_dirty
|
|
1158
1186
|
},
|
|
1159
1187
|
assessed_at: now.toISOString(),
|
|
1160
|
-
...benchmark.version === "0.3.0" ? { warnings
|
|
1188
|
+
...benchmark.version === "0.3.0" ? { warnings } : {},
|
|
1161
1189
|
score: {
|
|
1162
1190
|
total,
|
|
1163
1191
|
maximum: 40,
|
|
@@ -1295,7 +1323,7 @@ function countLines(contents) {
|
|
|
1295
1323
|
|
|
1296
1324
|
// src/cli.ts
|
|
1297
1325
|
var program = new Command();
|
|
1298
|
-
program.name("agentic-scorecard").description("Evidence-backed readiness assessment for agentic software development harnesses").version("0.3.
|
|
1326
|
+
program.name("agentic-scorecard").description("Evidence-backed readiness assessment for agentic software development harnesses").version("0.3.1");
|
|
1299
1327
|
program.command("validate").description("Validate the bundled benchmark catalog").action(async () => {
|
|
1300
1328
|
const { benchmark, controls } = await loadBenchmark();
|
|
1301
1329
|
process.stdout.write(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-scorecard",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Vendor-neutral, evidence-backed readiness benchmark for agentic software development harnesses.",
|
|
5
5
|
"author": "Planet B2B Inc. <benchmark@planetb2b.com>",
|
|
6
6
|
"homepage": "https://github.com/Planet-B2B/agentic-readiness#readme",
|