Formats goal progress into visual dashboards with tables, progress bars, and Mermaid Gantt charts. Activates when the user wants a goal dashboard, progress report, timeline visualization, or asks 'show me a visual of my goals.' Covers dashboard layout, Gantt generation, and formatted report assembly.
From founder-osnpx claudepluginhub thecloudtips/founder-os --plugin founder-osThis skill uses the workspace's default tool permissions.
references/dashboard-table-format.mdreferences/gantt-generation.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Format and visualize goal progress data into structured dashboards, timelines, and reports. Assemble dashboard tables with emoji RAG indicators and ASCII progress bars, generate Mermaid Gantt charts for timeline visualization, and structure reports for both chat and Notion output. Serve as the presentation layer that transforms raw goal tracking data into scannable, actionable summaries.
Assemble every goal report using exactly four sections, always in this order. Never reorder or omit sections (display empty-state messages when a section has no content).
Render a compact Markdown table with all goals, one row per goal. Sort rows by RAG status severity (Red first, Yellow second, Green third, Not Started last). Within each RAG group, sort by Target Date ascending (earliest deadline first). Include the progress bar and percentage inline in the Progress column.
Group goals by RAG status. Present Red goals first, then Yellow, then Green, then Not Started. Under each group header (using the corresponding RAG emoji), provide a brief 1-2 sentence analysis explaining the common patterns or root causes within that group. If a RAG group has zero goals, omit that group entirely from the breakdown rather than showing an empty section.
Render a bulleted list of goals that have active blockers. Sort by blocker severity (critical blockers first, then moderate, then minor). Each bullet must include the goal name, the blocker description, and a suggested next action. If no goals have active blockers, display: "No active blockers detected across tracked goals."
Generate a Mermaid Gantt chart showing all goals with milestones plotted on a timeline. Group goals by Category using Mermaid section directives. Apply color coding based on RAG status. Exclude goals without a Target Date from the chart and note their omission in a footnote below the chart.
Construct the dashboard table with the following columns in this exact order:
| Goal | Category | Progress | RAG | Target Date | Status |
Apply these formatting rules:
███████░░░ 70%.Sort the entire table by RAG severity: 🔴 Red first, 🟡 Yellow second, 🟢 Green third, ⚪ Not Started last. Apply left-alignment to text columns and center-alignment to RAG and Progress columns.
Reference ${CLAUDE_PLUGIN_ROOT}/skills/goal/goal-reporting/references/dashboard-table-format.md for full column specifications, alignment rules, and edge case handling.
Generate a Mermaid Gantt chart using the following structure and rules.
Open every Gantt chart with:
gantt
dateFormat YYYY-MM-DD
title Goal Progress Timeline
Group goals by Category using section directives. Place each category on its own section line. Within each section, list goals in Target Date order (earliest first).
Map RAG status to Mermaid task modifiers:
crit modifier (renders in red/critical styling).active modifier (renders in blue/active styling).done modifier (renders in grey/done styling).Render each goal as a single bar spanning from Start Date to Target Date. Use the format:
TaskName :modifier, startDate, endDate
Render milestones using the milestone keyword. Place milestone markers at their target dates within the appropriate category section. Use the format:
MilestoneName :milestone, targetDate, 0d
Exclude goals without a Target Date from the Gantt chart entirely. Add a footnote below the Mermaid code block listing omitted goals by name: "Note: The following goals are excluded from the timeline (no target date): [goal names]."
Reference ${CLAUDE_PLUGIN_ROOT}/skills/goal/goal-reporting/references/gantt-generation.md for complete Mermaid syntax examples, sanitization rules, and overflow handling strategies.
Apply filters to narrow the goal set before rendering any report section. All filters operate on the full goal list and reduce it to a subset.
--status=active: Include only goals with Status = "In Progress".--status=red: Include only goals with RAG status = Red.--status=completed: Include only goals with Status = "Completed".--category=X: Include only goals matching the specified category (case-insensitive match).--status=red --category=Revenue shows only Red RAG goals in the Revenue category.Build ASCII progress bars using a fixed 10-character width.
Calculate the number of filled characters:
filled_count. Calculate empty_count = 10 - filled_count.filled_count █ characters followed by empty_count ░ characters.| Percentage | Filled Count | Bar | Display |
|---|---|---|---|
| 0% | 0 | ░░░░░░░░░░ | ░░░░░░░░░░ 0% |
| 15% | 2 | ██░░░░░░░░ | ██░░░░░░░░ 15% |
| 25% | 3 | ███░░░░░░░ | ███░░░░░░░ 25% |
| 50% | 5 | █████░░░░░ | █████░░░░░ 50% |
| 70% | 7 | ███████░░░ | ███████░░░ 70% |
| 100% | 10 | ██████████ | ██████████ 100% |
Note: 25% divides to 2.5, which rounds to 3 filled characters. Always apply standard rounding at the boundary.
Map RAG classification to display emoji consistently across all report sections:
| RAG Status | Emoji | Meaning |
|---|---|---|
| Green | 🟢 | On track — progress aligns with timeline |
| Yellow | 🟡 | At risk — progress lagging or blockers emerging |
| Red | 🔴 | Behind — significantly off-track or blocked |
| Not Started | ⚪ | No data yet — goal created but work not begun |
Apply these emoji consistently in both the Dashboard Table RAG column and the RAG Breakdown section headers. Never use text labels ("Green", "Red") in place of emoji in rendered output. Include the text meaning only in the RAG Breakdown section headers for accessibility (e.g., "🔴 Red — Behind").
Adapt the report format based on the output destination.
Render the full report as Markdown directly in the chat response. Include the Mermaid Gantt chart inside a fenced code block with the mermaid language identifier. Present all four sections in order. Use Markdown table syntax for the dashboard. Keep the total output under 4000 characters when possible by truncating the RAG Breakdown analysis to one sentence per group.
Write the report content to the discovered Goals database (see goal-tracking skill for discovery protocol) or as a standalone Notion page, depending on the command invocation. Convert Mermaid code blocks to Notion code blocks (Notion does not natively render Mermaid, so preserve the source for manual rendering). Use Notion-compatible block types: tables as Markdown in a code block or as structured paragraphs, bulleted lists as bulleted_list_item blocks.
When --output=PATH is specified, write the complete report (all four sections, full Mermaid source) to the specified local file path. Use .md extension. Do not truncate any section for file output — include full analysis text and complete Gantt chart source.
Handle the following scenarios explicitly:
When the goal database is empty or contains only archived goals, display:
"No goals tracked yet. Use /founder-os:goal:create to get started."
Do not render empty tables, charts, or section headers. Return only the above message.
When every non-archived goal has Status = "Completed", display a celebration summary:
done.Include these goals in the Dashboard Table with "No deadline" in the Target Date column. Exclude them from the Gantt Timeline. List their names in a footnote below the Gantt chart. In the RAG Breakdown, treat them according to their calculated RAG status (which may factor in other signals beyond timeline).
Truncate goal names to 30 characters in the Dashboard Table, appending "..." to indicate truncation (e.g., "Implement new onboarding flo..."). In the Gantt chart, truncate to 40 characters. Preserve the full goal name in any detail views, tooltips, or linked Notion pages.
Render all four sections even with only one goal. The Dashboard Table has one row, the RAG Breakdown has one group, the Needs Attention section shows one bullet or the no-blockers message, and the Gantt chart shows one bar.
${CLAUDE_PLUGIN_ROOT}/skills/goal/goal-reporting/references/dashboard-table-format.md — Full column specifications, alignment rules, and formatting edge cases for the dashboard table.${CLAUDE_PLUGIN_ROOT}/skills/goal/goal-reporting/references/gantt-generation.md — Complete Mermaid Gantt syntax reference, sanitization rules, overflow handling, and example chart source code.