Vendor Scoring
You are helping an enterprise architect score vendor proposals against evaluation criteria, compare vendors, and maintain an auditable scoring record.
User Input
$ARGUMENTS
Note: Before generating, scan projects/ for existing project directories. For each project, list all ARC-*.md artifacts, check external/ for reference documents, and check 000-global/ for cross-project policies. If no external docs exist but they would improve output, ask the user.
Sub-Actions
Parse the first word of $ARGUMENTS to determine which action to perform:
Action 1: vendor <name> --project=NNN
Score a specific vendor against the project's evaluation criteria.
Read the project's EVAL artifact (evaluation criteria):
- If no EVAL exists, tell the user to run
$arckit-evaluate first
- Extract all evaluation criteria with their weights and categories
Read vendor proposal from projects/{id}/vendors/{vendor-name}/:
- If the directory doesn't exist, create it
- Read any
.md or .pdf files as vendor proposal content
Government award history (if present): When scoring criteria related to vendor experience, track
record, capability, or past performance, check for a ## Government Award History section in
projects/{id}/vendors/{slug}-profile.md (or a CMPT Competitor Landscape artefact in research/).
If it records UK government contract wins for this vendor (values, buyers, notice URLs), cite that as
objective evidence for the relevant criterion's score, carrying the caveat that awarded value is not
actual spend (it evidences track record, not committed cost). Run $arckit-competitors --supplier '<vendor>' to generate it if absent.
Read existing scores from projects/{id}/vendors/scores.json (if exists)
Score each criterion using the 0-3 rubric:
| Score |
Meaning |
Description |
| 0 |
Not Met |
No evidence of capability; does not address the criterion |
| 1 |
Partially Met |
Some evidence but significant gaps remain |
| 2 |
Met |
Fully addresses the criterion with adequate evidence |
| 3 |
Exceeds |
Goes beyond requirements with strong differentiation |
For each score, provide:
- The numeric score (0-3)
- Evidence from the vendor proposal supporting the score
- Any risks or caveats noted
Calculate weighted totals:
- Use weights from the EVAL criteria (default to equal weighting if none specified)
totalWeighted = sum(score * weight) / sum(weight)
totalRaw = sum(scores)
maxPossible = 3 * number_of_criteria
Write scores to projects/{id}/vendors/scores.json:
{
"projectId": "001",
"lastUpdated": "2026-03-08T10:00:00Z",
"criteria": [
{ "id": "C-001", "name": "Technical Capability", "weight": 0.25, "category": "Technical" }
],
"vendors": {
"acme-cloud": {
"displayName": "Acme Cloud Services",
"scoredDate": "2026-03-08T10:00:00Z",
"scoredBy": "Architecture Team",
"scores": [
{ "criterionId": "C-001", "score": 3, "evidence": "Demonstrated...", "risks": "" }
],
"totalWeighted": 2.45,
"totalRaw": 5,
"maxPossible": 6
}
}
}
Output a markdown summary to console showing all scores with evidence.
Action 2: compare --project=NNN
Generate a side-by-side vendor comparison.
Read projects/{id}/vendors/scores.json — if it doesn't exist or has fewer than 2 vendors, explain what's needed
Output comparison table:
## Vendor Comparison: Project 001
| Criterion | Weight | Acme Cloud | Beta Systems | Gamma Tech |
|-----------|--------|------------|--------------|------------|
| Technical Capability | 25% | 3 | 2 | 2 |
| Security Compliance | 20% | 2 | 3 | 1 |
| **Weighted Total** | | **2.45** | **2.30** | **1.95** |
### Recommendation
**Acme Cloud** scores highest overall (2.45/3.00).
### Risk Summary
- Acme Cloud: [aggregated risks from scoring]
- Beta Systems: [aggregated risks from scoring]
### Sensitivity Analysis
Show how the ranking changes if the top-weighted criterion weight is adjusted by +/- 10%.
Include sensitivity analysis: Vary the weight of each criterion by ±10% to identify which criteria are decisive.
Action 3: audit --project=NNN
Show the scoring audit trail.
Read projects/{id}/vendors/scores.json
Output chronological audit:
## Scoring Audit Trail: Project 001
| Date | Vendor | Scored By | Weighted Score | Criteria Count |
|------|--------|-----------|----------------|----------------|
| 2026-03-08 | Acme Cloud | Architecture Team | 2.45/3.00 | 8 |
| 2026-03-07 | Beta Systems | Architecture Team | 2.30/3.00 | 8 |
Show total vendors scored, date range, and whether any vendors are missing scores.
Default (no action specified)
If no recognised action, show usage:
Usage: $arckit-score <action> [options]
Actions:
vendor <name> --project=NNN Score a vendor against evaluation criteria
compare --project=NNN Side-by-side vendor comparison
audit --project=NNN Scoring audit trail
Examples:
$arckit-score vendor "Acme Cloud" --project=001
$arckit-score compare --project=001
$arckit-score audit --project=001
Important Notes
- Always preserve existing vendor scores when adding a new vendor — append, don't overwrite
- Criterion IDs must be consistent across all vendors in the same project
- The scores.json validator hook will warn if weights don't sum to 1.0 or scores are out of range
- Evidence field is mandatory — never assign a score without citing supporting evidence from the proposal
Suggested Next Steps
After completing this command, consider running:
$arckit-evaluate -- Create or update evaluation framework before scoring (when No EVAL artifact exists for the project)
$arckit-sow -- Generate Statement of Work for selected vendor (when Vendor selection complete, ready for procurement)
$arckit-competitors -- Generate the vendor's UK award-history evidence for scoring (when UK government procurement context)
1---2name: arckit-score3description: Score vendor proposals against evaluation criteria with persistent structured storage4---56# Vendor Scoring78You are helping an enterprise architect score vendor proposals against evaluation criteria, compare vendors, and maintain an auditable scoring record.910## User Input1112```text13$ARGUMENTS14```1516> **Note**: Before generating, scan `projects/` for existing project directories. For each project, list all `ARC-*.md` artifacts, check `external/` for reference documents, and check `000-global/` for cross-project policies. If no external docs exist but they would improve output, ask the user.1718## Sub-Actions1920Parse the first word of `$ARGUMENTS` to determine which action to perform:2122### Action 1: `vendor <name> --project=NNN`2324Score a specific vendor against the project's evaluation criteria.25261. **Read the project's EVAL artifact** (evaluation criteria):27 - If no EVAL exists, tell the user to run `$arckit-evaluate` first28 - Extract all evaluation criteria with their weights and categories29302. **Read vendor proposal** from `projects/{id}/vendors/{vendor-name}/`:31 - If the directory doesn't exist, create it32 - Read any `.md` or `.pdf` files as vendor proposal content3334 **Government award history (if present):** When scoring criteria related to vendor experience, track35 record, capability, or past performance, check for a `## Government Award History` section in36 `projects/{id}/vendors/{slug}-profile.md` (or a `CMPT` Competitor Landscape artefact in `research/`).37 If it records UK government contract wins for this vendor (values, buyers, notice URLs), cite that as38 **objective evidence** for the relevant criterion's score, carrying the caveat that awarded value is not39 actual spend (it evidences track record, not committed cost). Run `$arckit-competitors --supplier40 '<vendor>'` to generate it if absent.41423. **Read existing scores** from `projects/{id}/vendors/scores.json` (if exists)43444. **Score each criterion** using the 0-3 rubric:45 | Score | Meaning | Description |46 |-------|---------|-------------|47 | 0 | Not Met | No evidence of capability; does not address the criterion |48 | 1 | Partially Met | Some evidence but significant gaps remain |49 | 2 | Met | Fully addresses the criterion with adequate evidence |50 | 3 | Exceeds | Goes beyond requirements with strong differentiation |51525. **For each score, provide:**53 - The numeric score (0-3)54 - Evidence from the vendor proposal supporting the score55 - Any risks or caveats noted56576. **Calculate weighted totals**:58 - Use weights from the EVAL criteria (default to equal weighting if none specified)59 - `totalWeighted = sum(score * weight) / sum(weight)`60 - `totalRaw = sum(scores)`61 - `maxPossible = 3 * number_of_criteria`62637. **Write scores** to `projects/{id}/vendors/scores.json`:6465 ```json66 {67 "projectId": "001",68 "lastUpdated": "2026-03-08T10:00:00Z",69 "criteria": [70 { "id": "C-001", "name": "Technical Capability", "weight": 0.25, "category": "Technical" }71 ],72 "vendors": {73 "acme-cloud": {74 "displayName": "Acme Cloud Services",75 "scoredDate": "2026-03-08T10:00:00Z",76 "scoredBy": "Architecture Team",77 "scores": [78 { "criterionId": "C-001", "score": 3, "evidence": "Demonstrated...", "risks": "" }79 ],80 "totalWeighted": 2.45,81 "totalRaw": 5,82 "maxPossible": 683 }84 }85 }86 ```87888. **Output a markdown summary** to console showing all scores with evidence.8990### Action 2: `compare --project=NNN`9192Generate a side-by-side vendor comparison.93941. **Read** `projects/{id}/vendors/scores.json` — if it doesn't exist or has fewer than 2 vendors, explain what's needed952. **Output comparison table**:9697 ```markdown98 ## Vendor Comparison: Project 00199100 | Criterion | Weight | Acme Cloud | Beta Systems | Gamma Tech |101 |-----------|--------|------------|--------------|------------|102 | Technical Capability | 25% | 3 | 2 | 2 |103 | Security Compliance | 20% | 2 | 3 | 1 |104 | **Weighted Total** | | **2.45** | **2.30** | **1.95** |105106 ### Recommendation107 **Acme Cloud** scores highest overall (2.45/3.00).108109 ### Risk Summary110 - Acme Cloud: [aggregated risks from scoring]111 - Beta Systems: [aggregated risks from scoring]112113 ### Sensitivity Analysis114 Show how the ranking changes if the top-weighted criterion weight is adjusted by +/- 10%.115 ```1161173. **Include sensitivity analysis**: Vary the weight of each criterion by ±10% to identify which criteria are decisive.118119### Action 3: `audit --project=NNN`120121Show the scoring audit trail.1221231. **Read** `projects/{id}/vendors/scores.json`1242. **Output chronological audit**:125126 ```markdown127 ## Scoring Audit Trail: Project 001128129 | Date | Vendor | Scored By | Weighted Score | Criteria Count |130 |------|--------|-----------|----------------|----------------|131 | 2026-03-08 | Acme Cloud | Architecture Team | 2.45/3.00 | 8 |132 | 2026-03-07 | Beta Systems | Architecture Team | 2.30/3.00 | 8 |133 ```1341353. Show total vendors scored, date range, and whether any vendors are missing scores.136137### Default (no action specified)138139If no recognised action, show usage:140141```text142Usage: $arckit-score <action> [options]143144Actions:145 vendor <name> --project=NNN Score a vendor against evaluation criteria146 compare --project=NNN Side-by-side vendor comparison147 audit --project=NNN Scoring audit trail148149Examples:150 $arckit-score vendor "Acme Cloud" --project=001151 $arckit-score compare --project=001152 $arckit-score audit --project=001153```154155## Important Notes156157- **Always preserve existing vendor scores** when adding a new vendor — append, don't overwrite158- **Criterion IDs must be consistent** across all vendors in the same project159- **The scores.json validator hook** will warn if weights don't sum to 1.0 or scores are out of range160- **Evidence field is mandatory** — never assign a score without citing supporting evidence from the proposal161162## Suggested Next Steps163164After completing this command, consider running:165166- `$arckit-evaluate` -- Create or update evaluation framework before scoring *(when No EVAL artifact exists for the project)*167- `$arckit-sow` -- Generate Statement of Work for selected vendor *(when Vendor selection complete, ready for procurement)*168- `$arckit-competitors` -- Generate the vendor's UK award-history evidence for scoring *(when UK government procurement context)*