Build or update the BlueBubbles external channel plugin for Moltbot (extension package, REST...
npx skills add alistaircroll/verbose-deployment --skill "deployment-report"
Install specific skill from multi-skill repository
# Description
Generate the CI/CD pipeline report — save a JSON companion file, build a multi-page HTML report with history timeline, apply project styling, and open in the browser. Use as Phase 10 (final phase) of the deployment pipeline.
# SKILL.md
name: deployment-report
description: "Generate the CI/CD pipeline report — save a JSON companion file, build a multi-page HTML report with history timeline, apply project styling, and open in the browser. Use as Phase 10 (final phase) of the deployment pipeline."
Deployment Report
Create a multi-page HTML report and open it in the user's browser. This is the final phase — it captures all metrics from the preceding phases.
File Location
Save to a project-appropriate location (e.g., e2e/results/, reports/, test-results/) — whichever already exists. If none exist, create reports/.
Filename pattern: cicd-report-{YYYYMMDD-HHMMSS}.html
JSON Companion
Before generating the HTML, save cicd-report-{YYYYMMDD-HHMMSS}.json to the same directory. This file contains all phase metrics in a machine-readable format for the HISTORY tab and future tooling.
See json-schema.md in this directory for the full schema specification.
Report Pages
| Page | Contents |
|---|---|
| Overview | Pipeline status (PASS/FAIL), project name + description, phase summary table, commit SHA, timestamp. All URLs clickable. Must include a "What was done" section listing dependency upgrades (from->to versions), migrations applied, security fixes, test fixes, etc. This is the user's changelog for pipeline-initiated changes. |
| History | Sticky swimlane timeline. See history-tab.md in this directory for the full specification. |
| Project | Phase 1 results: file counts by type, LOC, directory structure, recency histogram (small inline SVG/CSS bar chart showing 24h/7d/30d/90d/older), top 10 recently modified files, local vs remote diff summary, any anomalies. |
| Dependencies | Phase 2 results: outdated packages, vulnerabilities found and fixed, remaining known issues with links to advisories. |
| Tests | Unit test breakdown, build results, e2e results. Failing tests with error messages. |
| Security | Secrets scan results, vulnerability details with advisory links and dependency chains, .gitignore status, pre-commit hook status. |
| Deployment | Push details, deployment verification, build logs. Platform-specific or N/A. |
| Production | Smoke test results, application-specific metrics, error summary. |
| Diagnostics | Build sizes, tech stack versions with doc links, bugs fixed in this deploy, all errors across all phases, external links (repo, dashboard, production). |
Styling
- If the project has a design system (check DESIGN_SYSTEM.md, globals.css, tailwind config), use its colors and fonts.
- Otherwise use a clean default: light background, dark text, monospace for data, colored status pills (green=pass, red=fail, amber=warn).
- Navigation bar with page tabs. Project name as brand text in the nav. Status badge in the nav.
- Cards for key metrics, tables for details, dark log blocks for command output.
- All external URLs open in new tabs (
target="_blank"). - The recency histogram on the Project page should be a small inline bar chart (pure CSS or inline SVG — no external dependencies).
History Tab
The HISTORY tab is a swimlane timeline showing trends across pipeline runs. See history-tab.md for the complete specification including dot colors, popup content, time range toggle, and empty state handling.
History Loading
After saving the JSON, read all cicd-report-*.json files from the results directory. Parse each inside a try/catch — skip malformed files or unrecognized schemaVersion silently. Sort by timestamp descending. Inline as a HISTORY_DATA JS array in the HTML report.
Open the Report
open "path/to/cicd-report-{timestamp}.html" # macOS
xdg-open "path/to/report.html" # Linux
start "path/to/report.html" # Windows
Retention
After saving the new JSON and HTML, prune old files. Keep the 50 most recent of each type. JSON and HTML are pruned independently (orphans get cleaned up naturally).
Portable pruning (see shell-portability.md for why head -n -N is avoided):
FILES=$(/bin/ls -1 reports/cicd-report-*.json 2>/dev/null | /usr/bin/sort)
COUNT=$(echo "$FILES" | wc -l | tr -d ' ')
if [ "$COUNT" -gt 50 ]; then
echo "$FILES" | /usr/bin/head -n $(( COUNT - 50 )) | xargs rm -f
fi
Repeat for *.html.
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.