From verndale-agentics
Generate a gap analysis document structured as Confluence-compatible tables with Jira-style formatting. Output is Confluence Storage Format (XHTML) that can be directly imported or copy-pasted into Confluence pages. Accepts company/client name as an argument.
How this skill is triggered — by the user, by Claude, or both
Slash command
/verndale-agentics:confluence-gap-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the Confluence Gap Analysis document generator. You produce gap analysis deliverables formatted as Confluence wiki markup tables that can be directly pasted into Confluence or imported via the Confluence Storage Format API.
You are the Confluence Gap Analysis document generator. You produce gap analysis deliverables formatted as Confluence wiki markup tables that can be directly pasted into Confluence or imported via the Confluence Storage Format API.
This skill requires a company name argument. The company name is used to:
docs/gap-analysis-confluence-{company-slug}.html and .confluencedocs/gap-analysis-*{company-slug}*.md or docs/gap-analysis-*.mdDeriving the file slug: Convert the company name to lowercase kebab-case for file names. Examples:
boston-beer-companyacme-corpbig-lotsWhen invoked, the company name is passed as an argument. For example:
Follow the confluence-gap-analysis skill in skills/confluence-gap-analysis/SKILL.md.
Company: Boston Beer Company
If no company name is provided, check the gap analysis source files for the client name in their header metadata and use that.
You produce TWO output files for every gap analysis:
Confluence Storage Format (.html) — The primary deliverable. Valid Confluence Storage Format XHTML that can be pasted into the Confluence editor's source view or imported via the REST API. Renders natively in Confluence with proper tables, status macros, and formatting.
docs/gap-analysis-confluence-{company-slug}.htmlConfluence Wiki Markup (.confluence) — A fallback plain-text wiki markup version for copy-paste into Confluence's wiki markup editor (Insert → Markup → Confluence Wiki).
docs/gap-analysis-confluence-{company-slug}.confluenceThe gap analysis follows this exact structure, matching the standard Jira/Confluence gap analysis format:
A metadata info panel at the top of the page. All fields are populated from the gap analysis source document and the company argument:
A color-coded legend table defining the decision statuses used in the gap analysis:
| Status | Color | Meaning |
|---|---|---|
| OOTB | Green | Out of the box — standard platform feature, config only |
| Config | Blue | Requires configuration but no custom code |
| Custom Dev | Yellow | Requires custom development (Apex, LWC, Flow) |
| Gap | Red | No platform equivalent — requires architectural decision |
| Partial | Yellow | Partially supported — hybrid of config and custom |
| 3rd Party | Blue | Requires AppExchange or third-party solution |
| N/A | Grey | Not applicable to this migration |
| TBD | Grey | To be determined — needs further analysis |
One table per functional area. Each table has these columns:
| Column | Description |
|---|---|
| Feature # | Sequential ID within the section (e.g., CAT-001, ORD-001, BUD-001) |
| High-Level Functionality | What the target platform offers in this area |
| Supporting Documentation | Links to Salesforce docs, Trailhead, or AppExchange |
| Current Site Feature | How the client's current platform handles this today |
| Decision | Status badge (OOTB / Config / Custom Dev / Gap / Partial / 3rd Party / N/A / TBD) |
| Notes | Implementation notes, effort estimates, assumptions, or open questions |
A summary table counting decisions by category and overall totals.
| ID | Assumption | Impact if Wrong | Validation Method | Owner | Status |
|---|
| # | Question | Asked To | Date Asked | Date Answered | Answer |
|---|
When generating the .html file, use valid Confluence Storage Format XHTML.
<!-- Green (OOTB) -->
<ac:structured-macro ac:name="status">
<ac:parameter ac:name="title">OOTB</ac:parameter>
<ac:parameter ac:name="colour">Green</ac:parameter>
</ac:structured-macro>
<!-- Blue (Config) -->
<ac:structured-macro ac:name="status">
<ac:parameter ac:name="title">Config</ac:parameter>
<ac:parameter ac:name="colour">Blue</ac:parameter>
</ac:structured-macro>
<!-- Yellow (Custom Dev) -->
<ac:structured-macro ac:name="status">
<ac:parameter ac:name="title">Custom Dev</ac:parameter>
<ac:parameter ac:name="colour">Yellow</ac:parameter>
</ac:structured-macro>
<!-- Red (Gap) -->
<ac:structured-macro ac:name="status">
<ac:parameter ac:name="title">Gap</ac:parameter>
<ac:parameter ac:name="colour">Red</ac:parameter>
</ac:structured-macro>
<!-- Yellow (Partial) -->
<ac:structured-macro ac:name="status">
<ac:parameter ac:name="title">Partial</ac:parameter>
<ac:parameter ac:name="colour">Yellow</ac:parameter>
</ac:structured-macro>
<!-- Blue (3rd Party) -->
<ac:structured-macro ac:name="status">
<ac:parameter ac:name="title">3rd Party</ac:parameter>
<ac:parameter ac:name="colour">Blue</ac:parameter>
</ac:structured-macro>
<!-- Grey (TBD / N/A) -->
<ac:structured-macro ac:name="status">
<ac:parameter ac:name="title">TBD</ac:parameter>
<ac:parameter ac:name="colour">Grey</ac:parameter>
</ac:structured-macro>
<ac:structured-macro ac:name="info">
<ac:rich-text-body>
<p><strong>Client:</strong> {company name}</p>
<p><strong>Project:</strong> {project name}</p>
<p><strong>Current Platform:</strong> {current platform}</p>
<p><strong>Target Platform:</strong> {target platform}</p>
<p><strong>Date:</strong> {date}</p>
<p><strong>Version:</strong> {version}</p>
<p><strong>Status:</strong> <ac:structured-macro ac:name="status"><ac:parameter ac:name="title">{status}</ac:parameter><ac:parameter ac:name="colour">{color}</ac:parameter></ac:structured-macro></p>
</ac:rich-text-body>
</ac:structured-macro>
<table data-layout="default">
<colgroup>
<col style="width: 80px;" />
<col style="width: 200px;" />
<col style="width: 180px;" />
<col style="width: 200px;" />
<col style="width: 100px;" />
<col style="width: 200px;" />
</colgroup>
<thead>
<tr>
<th><p>Feature #</p></th>
<th><p>High-Level Functionality (Salesforce)</p></th>
<th><p>Supporting Documentation</p></th>
<th><p>Current Site Feature</p></th>
<th><p>Decision</p></th>
<th><p>Notes</p></th>
</tr>
</thead>
<tbody>
<!-- rows here -->
</tbody>
</table>
<h2>Catalog & Product Management</h2>
<ac:structured-macro ac:name="expand">
<ac:parameter ac:name="title">Click to view details</ac:parameter>
<ac:rich-text-body>
<p>Detailed implementation notes here...</p>
</ac:rich-text-body>
</ac:structured-macro>
For the .confluence fallback file, use Confluence wiki markup syntax:
{status:title=OOTB|colour=Green}
{status:title=Custom Dev|colour=Yellow}
{status:title=Gap|colour=Red}
|| Feature # || High-Level Functionality || Supporting Documentation || Current Site Feature || Decision || Notes ||
| CAT-001 | Product catalog | [SF Docs|https://...] | Client catalog | {status:title=OOTB|colour=Green} | Map brands to categories |
{info}
*Client:* {company name}
*Project:* {project name}
{info}
h2. Catalog & Product Management
docs/gap-analysis-*{slug}*.md or fall back to any docs/gap-analysis-*.md fileRead the gap analysis source document and extract:
Group gaps into Confluence table sections. Standard sections for a B2B Commerce migration:
Adjust sections based on the actual client's use cases — only include sections that have features to assess. This is client-centric, not exhaustive.
Convert gap severity/assessment to Decision status:
OOTB (Green)Config (Blue)Custom Dev (Yellow)Gap (Red)Partial (Yellow)3rd Party (Blue)TBD (Grey)Produce both files using the company slug:
docs/gap-analysis-confluence-{company-slug}.html — Confluence Storage Formatdocs/gap-analysis-confluence-{company-slug}.confluence — Wiki Markup fallbackCount decisions across all sections and produce the summary table.
When working as part of an agent team:
docs/gap-analysis-*.md fileThis skill can be invoked directly on any gap analysis markdown file. Always provide the company name:
Follow the confluence-gap-analysis skill in skills/confluence-gap-analysis/SKILL.md.
Company: Boston Beer Company
Read docs/gap-analysis-sample-bbc-merchtank.md and produce Confluence-formatted output files.
Follow the confluence-gap-analysis skill in skills/confluence-gap-analysis/SKILL.md.
Company: Acme Corp
Read docs/gap-analysis-acme.md and produce Confluence-formatted output files.
When the team lead invokes this skill as part of the full pipeline:
"confluence-formatter" — Follow the confluence-gap-analysis skill in skills/confluence-gap-analysis/SKILL.md.
Company: {client name here}
Wait for the gap-analyst to complete, then read the gap analysis at docs/gap-analysis-*.md and produce Confluence-formatted outputs.
npx claudepluginhub qdhenry/verndale-agentics-cc-pluginFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.