From napa-doc-suite
NAPA Anesthesia Partners brand standards for all document generation. Use when creating presentations, documents, or spreadsheets for NAPA. Triggers on "NAPA branding", "brand colors", "brand standards", "NAPA style", or any document generation requiring brand compliance.
npx claudepluginhub chadronbryant/napa-cowork-plugins --plugin napa-doc-suiteThis skill uses the workspace's default tool permissions.
Apply these standards to ALL deliverables: presentations, documents, spreadsheets, and any visual output.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Apply these standards to ALL deliverables: presentations, documents, spreadsheets, and any visual output.
| Name | Hex | RGB | Python Constant | Use |
|---|---|---|---|---|
| NAPA Blue | #005195 | (0, 81, 149) | RGBColor(0x00, 0x51, 0x95) | Primary: headers, title bars, key text |
| Carrot Orange | #FFA300 | (255, 163, 0) | RGBColor(0xFF, 0xA3, 0x00) | Accent: KPIs, chart highlights, spreadsheet totals |
| Dark Blue | #003366 | (0, 51, 102) | RGBColor(0x00, 0x33, 0x66) | Secondary headers, callout text (info style) |
| White | #FFFFFF | (255, 255, 255) | RGBColor(0xFF, 0xFF, 0xFF) | Text on dark backgrounds |
| Body Text | #333333 | (51, 51, 51) | RGBColor(0x33, 0x33, 0x33) | Primary body text color |
| Gray | #666666 | (102, 102, 102) | RGBColor(0x66, 0x66, 0x66) | Subtitles, metadata, captions |
| Light Gray | #F5F5F5 | (245, 245, 245) | RGBColor(0xF5, 0xF5, 0xF5) | Alternating table rows, card backgrounds |
| Light Blue | #E8F0FE | (232, 240, 254) | — | Callout box background (info style) |
| Light Orange | #FFF3E0 | (255, 243, 224) | — | Callout box background (warning style) |
| Light Green | #E8F5E9 | (232, 245, 233) | — | Callout box background (success style) |
| Red | #CC0000 | (204, 0, 0) | RGBColor(0xCC, 0x00, 0x00) | Alerts, warnings, blockers |
| Green | #2E8B57 | (46, 139, 87) | RGBColor(0x2E, 0x8B, 0x57) | Approval, success, on-track |
| Element | Font | Size | Weight | Color |
|---|---|---|---|---|
| Body text | Arial | 12pt | Regular | #333333 |
| Heading 1 | Arial | 18pt | Bold | NAPA Blue |
| Heading 2 | Arial | 15pt | Bold | NAPA Blue |
| Heading 3 | Arial | 13pt | Bold | NAPA Blue |
| Table cells | Arial | 10pt | Regular | #333333 |
| Table headers | Arial | 10pt | Bold | White on NAPA Blue |
| Captions/meta | Arial | 10pt | Regular | #666666 |
| Title page | Arial | 28pt | Bold | NAPA Blue |
Hard rules:
Callout boxes use a left-border + light fill style. NEVER use solid-color backgrounds with white text (hard to read, especially orange on white).
| Style | Left Border | Background | Text Color | Use |
|---|---|---|---|---|
| info | NAPA Blue (#005195) | Light Blue (#E8F0FE) | Dark Blue (#003366) | Key findings, context, data highlights |
| warning | Orange (#FFA300) | Light Orange (#FFF3E0) | Body (#333333) | Decisions needed, caveats, phasing notes |
| success | Green (#2E8B57) | Light Green (#E8F5E9) | Body (#333333) | Wins, completed items, confirmations |
Implementation (python-docx):
from docx.oxml import OxmlElement
from docx.oxml.ns import qn
def add_callout(doc, text, style='info'):
"""Left-border callout box. Styles: info, warning, success."""
p = doc.add_paragraph()
pPr = p._element.get_or_add_pPr()
# Left border
pBdr = OxmlElement('w:pBdr')
left = OxmlElement('w:left')
colors = {'info': '005195', 'warning': 'FFA300', 'success': '2E8B57'}
left.set(qn('w:val'), 'single')
left.set(qn('w:sz'), '24')
left.set(qn('w:space'), '8')
left.set(qn('w:color'), colors.get(style, '005195'))
pBdr.append(left)
pPr.append(pBdr)
# Light fill
fills = {'info': 'E8F0FE', 'warning': 'FFF3E0', 'success': 'E8F5E9'}
shd = OxmlElement('w:shd')
shd.set(qn('w:fill'), fills.get(style, 'E8F0FE'))
shd.set(qn('w:val'), 'clear')
pPr.append(shd)
# Indent
ind = OxmlElement('w:ind')
ind.set(qn('w:left'), '360')
pPr.append(ind)
# Text
text_colors = {
'info': RGBColor(0x00, 0x33, 0x66),
'warning': RGBColor(0x33, 0x33, 0x33),
'success': RGBColor(0x33, 0x33, 0x33)
}
run = p.add_run(text)
run.font.size = Pt(12)
run.font.name = 'Arial'
run.font.color.rgb = text_colors.get(style, RGBColor(0x33, 0x33, 0x33))
return p
| Rule | Detail |
|---|---|
| Voice | Professional, data-driven, minimalist. Let data speak for itself. |
| Perspective | First-person platform owner (Chadron Bryant, Manager, Enterprise Applications) |
| Frame | Propose, recommend, evaluate, assess, analyze |
| Never say | Build, deploy, implement, commit, guarantee |
| ROI language | Hours saved at $50/hr blended rate. Never headcount reduction or dollar savings. |
| AI references | NONE. Agent-agnostic messaging. No mention of Claude, AI partner, or specific AI tools. |
| Verbosity | Less is more. Prefer tables over paragraphs. Data should drive conclusions. |
Presentations (PPTX)
ITSM Process and Standards/04 - Branding/)Documents (DOCX)
Spreadsheets (XLSX)
For detailed template-specific guidance, read the references in the respective builder skill (pptx-builder, docx-builder, xlsx-builder).