Skills/styling/style-blueprint/SKILL.md
Blueprint engineering-drawing style tokens and row template for the list-styling skill. Monochromatic blue palette, double-ring rubber-stamp status badges, ultra-compact spec-sheet card with a blue left edge. The most compact card in the library — no sidebar, no banner. Overdue is the only element that turns red. Use when the user says "blueprint," "technical drawing," "engineering," "schematic," "spec sheet," or similar.
npx skillsauth add zrosenfield/sharepoint-ai-skills style-blueprintInstall 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.
Monochromatic blue. Technical. Precise. Every card is a spec-sheet entry on an engineering drawing. Status badges are rubber stamps with double-ring borders. This is the most compact card in the library.
Layout philosophy: Ultra-compact spec sheet with a blue left edge. No sidebar, no banner — just a clean two-line card with a 4px blue left border. Line one is the document name. Line two is the stamp, progress bar, percentage, and due date — all on one row. The only color break in the entire list is overdue red. Everything else is blue, from the darkest ink to the palest wash.
| Swatch | Hex | Semantic Role |
|---|---|---|
| 1 | #1e3a8a | ink — primary text, left edge, darkest blue |
| 2 | #1e40af | stamp — rubber stamp borders and text |
| 3 | #2563eb | date — date text, secondary info |
| 4 | #3b82f6 | fill — progress bar fill |
| 5 | #60a5fa | label — subtle labels like "DUE" |
| 6 | #93c5fd | rule — card border, grid lines |
| 7 | #dbeafe | wash — progress track, lightest blue |
| 8 | #ffffff | paper — card background |
| 9 | #dc2626 | alert — overdue ONLY, the single non-blue |
CRITICAL: Swatches 1–8 are ALL BLUE. Swatch 9 (red) is used ONLY for overdue states. There are no per-status color variations — every status looks the same monochromatic blue. The stamp text itself differentiates statuses. Overdue is the one dramatic break from the blueprint palette.
The stamp uses a double-ring border: an outer div with a 2px border and 1px padding, wrapping an inner span with a 1px border. This creates the classic certification/rubber-stamp impression.
2px solid #1e40af1px (gap between rings)1px solid #1e40af2px 8px10px700uppercase#1e40aftransparent (stamps are outlines, not fills)0px (sharp corners — technical, angular)| Value | stamp_border | stamp_text | background |
|---|---|---|---|
| Draft | #1e40af | #1e40af | transparent |
| In Review | #1e40af | #1e40af | transparent |
| Revising | #1e40af | #1e40af | transparent |
| Approved | #1e40af | #1e40af | transparent |
| Published | #1e40af | #1e40af | transparent |
| _fallback | #1e40af | #1e40af | transparent |
| OVERDUE (any) | #dc2626 | #dc2626 | transparent |
CRITICAL: Every status uses the SAME blue. The stamp text is the only differentiator. Overdue overrides ANY status — when a deadline has passed, the stamp turns red regardless of status value. This is intentionally monochromatic.
4px (ultra-thin — compact)#dbeafe (wash)none1px#3b82f6 (single blue — NO color changes by percentage)1px13px700#1e3a8a (ink)CRITICAL: Progress fill is ALWAYS #3b82f6 regardless of percentage. No low/mid/high color shifts. Blueprint is monochromatic.
DUE10px#60a5fa (label)#dc2626 (alert)12px#2563eb (date)500#dc2626 (alert)700OVERDUE (text only — no emoji, no fire, no icons)10px#dc2626CRITICAL: No emoji anywhere in the blueprint style. No 🔥, no 🗓️, no ✨. Text labels only. This is a technical drawing, not a party.
1px solid #93c5fd (rule)4px solid #1e3a8a (ink — the blue left edge)2px (barely rounded — sharp, technical)#ffffff (paper)4px (tight stacking)8px 14px (compact)none (clean, flat — no shadows on a blueprint)4px1px solid #dc26264px solid #dc2626CRITICAL: No shadows. Blueprints are flat technical drawings. The 4px left edge is the ONLY structural accent — it's a thin spec-sheet margin line, not a sidebar.
Ultra-compact two-line spec sheet with blue left edge.
┌──────────────────────────────────────────────────────┐
▌ API Guide.docx │
▌ ╔═APPROVED═╗ ━━━━━━━━━━━░░░░ 75% DUE 5/15/26 │
└──────────────────────────────────────────────────────┘
Overdue variant:
┌──────────────────────────────────────────────────────┐ ← red border
▌ API Guide.docx │
▌ ╔═APPROVED═╗ ━━━━━━━━━━━░░░░ 75% DUE 5/15 OVERDUE│
└──────────────────────────────────────────────────────┘
Key differences from every other style:
Adapt before applying. The column names below ([$Status], [$Progress], [$Deadline]) are example placeholders — replace them with the actual internal column names from the user's list. Note: Blueprint has no per-status color expressions, so there are no status value strings to remap. Follow list-styling Step 3.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/view-formatting.schema.json",
"hideSelection": false,
"hideColumnHeaders": true,
"rowFormatter": {
"elmType": "div",
"style": {
"display": "flex",
"flex-direction": "column",
"border": "=if([$Deadline] < @now, '1px solid #dc2626', '1px solid #93c5fd')",
"border-left": "=if([$Deadline] < @now, '4px solid #dc2626', '4px solid #1e3a8a')",
"border-radius": "2px",
"background-color": "#ffffff",
"margin-bottom": "4px",
"padding": "8px 14px",
"gap": "4px"
},
"children": [
{
"elmType": "div",
"style": {
"font-size": "13px",
"font-weight": "700",
"color": "#1e3a8a",
"line-height": "1.2"
},
"txtContent": "=if([$FileLeafRef] == '', [$Title], [$FileLeafRef])"
},
{
"elmType": "div",
"style": {
"display": "flex",
"align-items": "center",
"gap": "12px"
},
"children": [
{
"elmType": "div",
"style": {
"display": "inline-flex",
"padding": "1px",
"border": "=if([$Deadline] < @now, '2px solid #dc2626', '2px solid #1e40af')"
},
"children": [
{
"elmType": "span",
"txtContent": "[$Status]",
"style": {
"display": "inline-block",
"padding": "2px 8px",
"border": "=if([$Deadline] < @now, '1px solid #dc2626', '1px solid #1e40af')",
"font-size": "10px",
"font-weight": "700",
"text-transform": "uppercase",
"color": "=if([$Deadline] < @now, '#dc2626', '#1e40af')",
"white-space": "nowrap",
"background-color": "transparent"
}
}
]
},
{
"elmType": "div",
"style": {
"flex": "1",
"height": "4px",
"background-color": "#dbeafe",
"border-radius": "1px",
"overflow": "hidden",
"min-width": "60px"
},
"children": [
{
"elmType": "div",
"style": {
"width": "=toString([$Progress]) + '%'",
"height": "100%",
"background-color": "#3b82f6",
"border-radius": "1px"
}
}
]
},
{
"elmType": "span",
"txtContent": "=toString([$Progress]) + '%'",
"style": {
"font-size": "13px",
"font-weight": "700",
"color": "#1e3a8a",
"min-width": "32px"
}
},
{
"elmType": "div",
"style": {
"display": "flex",
"align-items": "center",
"gap": "4px"
},
"children": [
{
"elmType": "span",
"txtContent": "DUE",
"style": {
"font-size": "10px",
"font-weight": "600",
"color": "=if([$Deadline] < @now, '#dc2626', '#60a5fa')",
"text-transform": "uppercase"
}
},
{
"elmType": "span",
"txtContent": "=toLocaleDateString([$Deadline])",
"style": {
"font-size": "12px",
"font-weight": "=if([$Deadline] < @now, '700', '500')",
"color": "=if([$Deadline] < @now, '#dc2626', '#2563eb')"
}
},
{
"elmType": "span",
"txtContent": "=if([$Deadline] < @now, 'OVERDUE', '')",
"style": {
"font-size": "10px",
"font-weight": "700",
"color": "#dc2626",
"text-transform": "uppercase"
}
}
]
}
]
}
]
}
}
#1e3a8a) — a margin line, NOT a sidebar#3b82f6 — no color changes by percentage#dc2626) — left edge, stamp, date, and label all flip to redtesting
--- name: review-council description: Convene a council of expert AI personas to review, stress-test, and improve any document, idea, proposal, or plan. Use this skill whenever the user asks to "review," "stress-test," "get feedback on," "critique," "poke holes in," "red team," "evaluate," "council," "panel review," or "get perspectives on" any content — whether it's an uploaded Word doc, Excel spreadsheet, PowerPoint deck, PDF, or just a raw idea typed into chat. Also trigger on phrases like "w
tools
Generates a polished, self-contained HTML heatmap scorecard — a weighted comparison matrix where entities (rows) are scored across dimensions (columns), with computed totals, rank badges, and a winner highlight. Use when asked to build a scorecard, comparison matrix, decision matrix, vendor evaluation, tool assessment, candidate scoring grid, competitive analysis, site-readiness matrix, or any weighted multi-criteria ranking. Interviews the user if entities or criteria are missing, constructs a validated JSON document, then renders it into a sandbox-safe HTML file using the component library. No external dependencies — output runs inside a SharePoint sandboxed iframe.
development
Generates a polished, self-contained HTML roadmap or milestone timeline from any project data — SharePoint lists, pasted tables, or a verbal description. Use when asked to build a project roadmap, product roadmap, migration timeline, release plan, onboarding sequence, run-of-show, phase plan, or any visual schedule showing items over time. Interviews the user if data is incomplete, constructs a validated JSON document, then renders it into a single sandbox-safe HTML file. Chooses between two layouts automatically: horizontal roadmap with swimlanes (for phase-range data) or vertical milestone list (for point-in-time events). No external dependencies — output runs inside a SharePoint sandboxed iframe.
development
Generates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description. Use when asked to build an exec report, one-pager, summary page, status dashboard, project summary, business review, or any single-page visual summary of data. Interviews the user if data is incomplete, constructs a validated JSON document block by block, then renders it into a single sandbox-safe HTML file using the component library. No external dependencies — output runs inside a SharePoint sandboxed iframe.