.claude/skills/score-rfi/SKILL.md
Score vendor RFI responses using a 0-3 rubric with SQLite storage
npx skillsauth add DavidROliverBA/ArchitectKB .claude/skills/score-rfiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Score vendor RFI responses stored in SQLite databases using a standardised 0-3 rubric.
/score-rfi <vendor-name>
/score-rfi pwc
/score-rfi accenture
/score-rfi ibm
Before scoring, ensure the vendor's CSV has been converted to SQLite:
# Convert CSV to SQLite (see /csv-to-sql skill)
node scripts/csv-to-sqlite.js "Inbox/<vendor>-rfi-responses.csv" --start-row <n> --fts --verbose
| Score | Rating | Qualitative Assessment | | ----- | ------ | ---------------------------------------------------------------------------------------------------------------- | | 3 | High | Strong proven experience; clear, detailed answer demonstrating deep understanding; high confidence in capability | | 2 | Medium | Some capability demonstrated; potential but unproven or limited evidence; moderate risk | | 1 | Low | Insufficient evidence; generic or superficial response; does not address specifics; high risk | | 0 | Zero | Not demonstrated at all; no evidence or response; very high risk |
When evaluating responses, consider:
All scores MUST be written in this format:
[score] - [brief reason for score]
Examples:
3 - Strong domain-specific response with mature frameworks; explicit regulatory references; relevant experience cited2 - Solid methodology but no domain-specific examples; generic enterprise approach1 - Insufficient evidence of capability; significant capability gap0 - No response providedVerify database exists:
sqlite3 .data/<vendor>-rfi-scoring.db ".tables"
Check schema and scorer columns:
sqlite3 .data/<vendor>-rfi-scoring.db ".schema"
Identify the scorer column (e.g., john_smith, jane_doe)
Launch sub-agents to score questions in parallel. Each agent scores ~10-12 questions.
Agent Prompt Template:
You are scoring vendor RFI responses for the Systems Integrator procurement.
**Vendor:** <vendor-name>
**Database:** .data/<vendor>-rfi-scoring.db
**Table:** <table-name>
**Scorer Column:** <scorer-column>
**Questions:** <start-id> to <end-id>
**Scoring Rubric (0-3):**
- 3 = High: Strong proven experience, detailed response, high confidence
- 2 = Medium: Some capability, potential but unproven, moderate risk
- 1 = Low: Insufficient evidence, generic response, high risk
- 0 = Zero: Not demonstrated, no evidence, very high risk
**Focus Areas:**
- Domain specificity (industry regulations and compliance)
- Organisation context awareness
- Technical depth with concrete examples
- Proven implementations and references
**Instructions:**
1. Query questions <start-id> to <end-id>
2. For each, read the question and response columns
3. Apply the rubric to score each response
4. Return results in this format:
ID|SCORE|REASON
Example:
1|3|Strong domain-specific frameworks; compliance explicit
2|2|Solid approach but lacks specific examples
After scoring, update the database:
sqlite3 .data/<db>.db "UPDATE <table> SET <scorer_col> = '<score> - <reason>' WHERE id = '<id>';"
Launch 4 parallel agents covering all questions (e.g., 1-11, 12-22, 23-33, 34-44)
Verify updates:
sqlite3 .data/<vendor>-rfi-scoring.db -markdown -header \
"SELECT id, <scorer_col> FROM <table> ORDER BY CAST(id AS INTEGER);"
Query score distribution:
sqlite3 .data/<vendor>-rfi-scoring.db \
"SELECT CAST(SUBSTR(<scorer_col>, 1, 1) AS INTEGER) as score, COUNT(*)
FROM <table> GROUP BY score ORDER BY score DESC;"
Query low scores (risks):
sqlite3 .data/<vendor>-rfi-scoring.db -markdown -header \
"SELECT id, SUBSTR(question, 1, 60) as question, <scorer_col>
FROM <table>
WHERE <scorer_col> LIKE '1 -%' OR <scorer_col> LIKE '0 -%'
ORDER BY CAST(id AS INTEGER);"
Create summary Page using template below
Create a Page note at: Page - SI RFI Scoring - <Vendor> - <Scorer> Scores.md
Template:
---
type: Page
title: SI RFI Scoring - <Vendor> - <Scorer> Scores
created: <today>
modified: <today>
tags:
- project/<project-name>
- activity/evaluation
- vendor/<vendor-lowercase>
- workstream/rfi-scoring
confidence: high
freshness: current
source: primary
verified: true
reviewed: <today>
relatedTo:
- "[[Project - <Project Name>]]"
- "[[Page - SI RFI Scoring - <Vendor> Response]]"
---
# SI RFI Scoring - <Vendor> - <Scorer> Scores
Scoring assessment of <Vendor>'s response to the Systems Integrator RFI.
## Summary
| Metric | Value |
| ---------------- | ---------------- |
| Total Questions | <count> |
| Average Score | <avg> / 3.00 |
| Score 3 (High) | <count> (<pct>%) |
| Score 2 (Medium) | <count> (<pct>%) |
| Score 1 (Low) | <count> (<pct>%) |
| Score 0 (Zero) | <count> (<pct>%) |
## Key Findings
### Strengths (Score 3)
<bullet list of strength themes>
### Gaps (Score 1-2)
| ID | Area | Score | Risk |
| --- | ---- | ----- | ---- |
<table of low-scoring questions>
### Risk Summary
<brief summary of primary risks and mitigation>
## Detailed Scores
| ID | Question | Score | Reason |
| --- | -------- | ----- | ------ |
<full table of all scores>
## Data Source
Scores stored in SQLite database: `.data/<vendor>-rfi-scoring.db`
# All scores with full questions
sqlite3 .data/<db>.db -markdown -header \
"SELECT id, question, <scorer_col> FROM <table> ORDER BY CAST(id AS INTEGER);"
# Compare multiple scorers
sqlite3 .data/<db>.db -markdown -header \
"SELECT id, scorer_1, scorer_2, scorer_3 FROM <table> ORDER BY CAST(id AS INTEGER);"
# Average score
sqlite3 .data/<db>.db \
"SELECT ROUND(AVG(CAST(SUBSTR(<scorer_col>, 1, 1) AS REAL)), 2) FROM <table>;"
# Search responses for keyword
sqlite3 .data/<db>.db -markdown -header \
"SELECT id, question FROM <table>_fts WHERE <table>_fts MATCH 'integration';"
After scoring all vendors, create a comparison summary:
# Export each vendor's scores
sqlite3 .data/pwc-rfi.db "SELECT id, SUBSTR(scorer_col,1,1) as score FROM data;" > pwc-scores.txt
sqlite3 .data/accenture-rfi.db "SELECT id, SUBSTR(scorer_col,1,1) as score FROM data;" > accenture-scores.txt
Create a comparison Page: Page - SI RFI Scoring - Vendor Comparison.md
tools
--- context: fork --- # /youtube Save a YouTube video as both a Weblink (quick reference) and a detailed Page (full analysis). ## Usage ``` /youtube <url> /youtube <url> <optional title override> ``` ## Examples ``` /youtube https://www.youtube.com/watch?v=0TpON5T-Sw4 /youtube https://youtu.be/abc123 AWS re:Invent Keynote ``` ## Prerequisites This skill uses the MCP Docker YouTube tools: - `mcp__MCP_DOCKER__get_video_info` - Video metadata - `mcp__MCP_DOCKER__get_transcript` - Full trans
data-ai
Create and manage git worktrees for parallel agent sessions
testing
--- context: fork --- # /wipe Generate a context handoff summary, clear the session, and resume in a fresh conversation. Detects environment and provides automated (tmux) or manual workflow. ## Usage ``` /wipe /wipe quick # Minimal handoff, just essentials /wipe detailed # Comprehensive handoff with full context ``` ## Instructions When the user invokes `/wipe`: ### Phase 1: Detect Environment First, check the terminal environment: ```bash echo "Environment Detection:"
data-ai
--- context: fork --- # /weekly-summary Generate comprehensive weekly summary from daily notes, meetings, tasks, and project updates using parallel sub-agents. ## Usage ``` /weekly-summary /weekly-summary --last-week /weekly-summary --from 2026-01-01 --to 2026-01-07 /weekly-summary --output page # Create Page note instead of just outputting ``` ## Instructions This skill uses **5 parallel sub-agents** to gather data concurrently from different vault areas, then synthesizes a comprehensi