Agent skill
finwiz-output-standards
Standards for all reports and outputs generated by FinWiz agents, including HTML structure, French language requirements, emoji usage, and final reporter patterns. Use when creating reports, formatting outputs, or implementing final reporter agents.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/finwiz-output-standards
SKILL.md
FinWiz Output Standards
Standards for all reports and outputs generated by FinWiz agents, ensuring professional, consistent, and well-structured deliverables.
General Principles
Primary output is a comprehensive HTML report that is:
- Well-structured and easy to read
- Contains all necessary information for decision-making
- Professional and consistent across all reports
Critical Rules
❌ DO NOT
- Return raw API responses as task result
- Include placeholder text like 'TODO' or 'TBD'
- Include debugging information or error traces
- Create malformed or incomplete HTML
- Mix languages within the same report
✅ ALWAYS
- Ensure output is single, complete, well-formed HTML document
- Use UTF-8 encoding for emoji and French character support
- Validate HTML structure before returning
- Include proper metadata and styling
- Use French for all user-facing content
HTML Structure Requirements
Required Document Structure
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Rapport FinWiz - [Asset Name]</title>
<style>
/* Professional CSS styling */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #f5f5f5;
}
h1 { color: #2c3e50; border-bottom: 3px solid #3498db; }
.grade-a-plus { color: #27ae60; font-weight: bold; }
.grade-d { color: #e74c3c; }
</style>
</head>
<body>
<h1>📊 Rapport d'Analyse FinWiz</h1>
<p><strong>Date:</strong> 2025-03-10</p>
<p><strong>Actif:</strong> Apple Inc. (AAPL)</p>
<!-- Content sections -->
</body>
</html>
Content Structure Requirements
- Proper heading hierarchy (h1-h6)
- Semantic elements (sections, tables, lists)
- Clear title and publication date
- Tables for comparative data
- Lists for sequential information
- Emphasis (bold/italic) for important points
Prohibited Elements
- Raw JSON data or API responses
- Debugging information or stack traces
- Placeholder text or TODOs
- Unclosed or malformed HTML tags
- Mixed language content
Strategic Emoji Usage
Use emojis strategically to enhance readability and highlight key information:
| Emoji | Usage | Example |
|---|---|---|
| 📈 | Growth trends, positive performance | "📈 Croissance de 25% sur 12 mois" |
| 📉 | Decline trends, negative performance | "📉 Baisse de 15% ce trimestre" |
| 🔍 | Analysis insights, detailed examination | "🔍 Analyse technique approfondie" |
| 🚀 | High-growth potential, opportunities | "🚀 Potentiel de croissance élevé" |
| ⚠️ | Risk indicators, warnings | "⚠️ Risque de volatilité élevée" |
| 💰 | Financial metrics, monetary values | "💰 Revenus: 365M€" |
| 📊 | Data visualization, statistics | "📊 Métriques de performance" |
| ✅ | Positive recommendation, approval | "✅ Recommandation: ACHETER" |
| ❌ | Negative recommendation, rejection | "❌ Recommandation: VENDRE" |
| 🎯 | Target prices, goals | "🎯 Prix cible: 180€" |
| 💎 | A+ opportunities, exceptional quality | "💎 Opportunité A+ identifiée" |
French Language Standards
Required French Output
All user-facing content must be in French with:
- Professional financial terminology
- Clear, actionable recommendations
- Proper accents and special characters
- Consistent vocabulary throughout
Standard Financial Terms
| English | French | Usage |
|---|---|---|
| Recommendation | Recommandation | "Recommandation: ACHETER" |
| Buy | Acheter | "Recommandation d'achat" |
| Hold/Keep | Conserver | "Conserver en portefeuille" |
| Sell | Vendre | "Recommandation de vente" |
| Risk | Risque | "Évaluation des risques" |
| Return | Rendement | "Rendement annualisé" |
| Portfolio | Portefeuille | "Analyse de portefeuille" |
| Analysis | Analyse | "Analyse fondamentale" |
| Opportunity | Opportunité | "Opportunité d'investissement" |
Standard Report Structure
Required Sections
-
Résumé Exécutif (Executive Summary)
- Key findings and main conclusions
- Primary recommendation with rationale
- Risk highlights and considerations
-
Analyse Détaillée (Detailed Analysis)
- Fundamental analysis with metrics
- Technical analysis with indicators
- Risk assessment with scoring
-
Recommandations (Recommendations)
- Specific actionable recommendations
- Price targets with timeframes
- Implementation timeline
-
Sources de Données (Data Sources)
- Citations with URLs when available
- As-of dates for all data points
- Confidence levels and limitations
Example Report Structure
<section>
<h2>📋 Résumé Exécutif</h2>
<p class="grade-a-plus">✅ <strong>ACHETER</strong> - Grade A+</p>
<p>Prix cible: 180,00 € (+20% de potentiel)</p>
<p>Horizon: 12 mois</p>
</section>
<section>
<h2>📊 Analyse Détaillée</h2>
<h3>Analyse Fondamentale</h3>
<table>
<tr><th>Métrique</th><th>Valeur</th><th>Évaluation</th></tr>
<tr><td>P/E Ratio</td><td>25.4</td><td>Raisonnable</td></tr>
</table>
</section>
<section>
<h2>🎯 Recommandations</h2>
<ul>
<li><strong>Action immédiate:</strong> Acheter jusqu'à 150€</li>
<li><strong>Objectif:</strong> Prix cible 180€ d'ici 12 mois</li>
<li><strong>Stop-loss:</strong> 130€ (-13%)</li>
</ul>
</section>
Final Reporter Pattern
Agent Configuration
@final_reporter # Enforces empty tools list
@agent
def investment_reporter(self) -> Agent:
return Agent(
config=self.agents_config['investment_reporter'],
tools=[], # MUST be empty - no external API calls
reasoning=False, # Fast consolidation, no complex reasoning
verbose=True
)
Implementation Pattern
@task
def generate_final_report(self) -> Task:
return Task(
description="""
Consolidate all analysis findings into a comprehensive French HTML report.
CRITICAL REQUIREMENTS:
- Output MUST be complete, well-formed HTML
- Use French for all user-facing content
- Include strategic emoji usage for key points
- Follow standard report structure (Résumé, Analyse, Recommandations)
- NO raw data, debugging info, or placeholders
""",
expected_output="Complete HTML report in French with professional formatting",
agent=self.investment_reporter(),
async_execution=False # Final task must be synchronous
)
Quality Assurance Checklist
Before returning any HTML output:
- HTML Validation: Well-formed with correct structure
- UTF-8 Encoding: Supports emojis and French characters
- Completeness: All required sections present
- Accuracy: All data verified (tickers, figures, dates)
- French Language: All user-facing text in French
- No Placeholders: No TODO, TBD, or debugging text
- Professional Formatting: Clean, readable layout
- Strategic Emojis: Used appropriately, not excessively
- Data Sources: All sources cited with dates
- Actionable Content: Clear recommendations provided
CSS Styling Standards
Professional Styling Template
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #f5f5f5;
}
h1 {
color: #2c3e50;
border-bottom: 3px solid #3498db;
padding-bottom: 10px;
}
h2 {
color: #34495e;
margin-top: 30px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
background-color: white;
}
th {
background-color: #3498db;
color: white;
padding: 12px;
text-align: left;
}
td {
padding: 10px;
border-bottom: 1px solid #ddd;
}
.grade-a-plus { color: #27ae60; font-weight: bold; }
.grade-a { color: #2ecc71; }
.grade-b { color: #f39c12; }
.grade-c { color: #e67e22; }
.grade-d { color: #e74c3c; }
.grade-f { color: #c0392b; font-weight: bold; }
Remember: The output is the product. A well-formatted, professional report reflects the quality of the entire FinWiz analysis.
Didn't find tool you were looking for?