| name | weekly-report |
| description | One-shot orchestrator that produces complete manager-adapted reports from the current git repository. Installed once per project, it reads the project's .useless-report/config.yml to know which manager profiles to generate for â no questions asked on repeat runs. Supports multiple managers: one run generates one report per saved profile. Ingests git activity, GitHub PRs, and ticket references. Renders to markdown, HTML, email, and/or slides using the project's DESIGN.md brand tokens. Use this skill when the user asks "generate my weekly report", "status update for my boss", or any one-shot report request from inside a git repo.
|
weekly-report
Goal
Run the entire useless-report pipeline end-to-end from inside the user's project. The skill is installed once per project and remembers everything: manager profiles, output formats, report period, brand identity. On repeat runs, one command â all reports generated, nothing to answer.
One command. Real data. Every manager covered. Nothing to answer twice.
Project configuration file
The skill reads .useless-report/config.yml at the root of the current project. This file is the source of truth for all defaults.
Structure:
period: 7d
user:
name: "[Ton prénom]"
role: "[Ton titre]"
style: assertive
tone: confident
strengths:
- "delivery track record"
- "technical depth"
modes:
status_update: "data-first, let numbers speak"
pitch: "hook â problem â solution â ask"
bad_news: "solution-first, context second, timeline always"
escalation: "ask-first, urgency clear, specific action"
managers:
- name: "Alice"
profile: control_oriented
notes: "Veut des options et de la traçabilité. Déteste les surprises."
formats: [html, email, qa]
- name: "Bob"
profile: risk_sensitive
notes: "Focus risques, délais, budget. Bulletpoints uniquement."
formats: [slides, call_prep]
Profils disponibles : control_oriented · risk_sensitive · process_heavy · stakeholder_oriented · low_context · volatile_priority · deadline_reactive · quality_maximalist · ambiguity_tolerant · synchronous_first
Formats disponibles : markdown · html · email · slides
Si le fichier n'existe pas, le skill le crée à la premiÚre exécution (voir Step 1).
How to use
Step 1 â Charger la config projet + vĂ©rifier le persona utilisateur
Chercher .useless-report/config.yml Ă la racine du projet courant.
Si prĂ©sent : charger silencieusement. Ne poser aucune question â tout est dĂ©jĂ configurĂ©.
Si absent : c'est la premiÚre exécution. Poser ces questions une seule fois :
- Période par défaut (default:
7d)
- Profil utilisateur (une fois pour toutes) :
- Nom, rĂŽle, style de communication (assertive / diplomatic / data-driven / storyteller / minimalist)
- Combien de managers ? â pour chacun :
- Nom (libre)
- Profil archĂ©type â si inconnu, proposer
useless-report:classify-manager-style
- Formats souhaités (html, email, slides, qa, call_prep)
- Notes optionnelles sur ses préférences
- Format de sortie global si pas spécifié par manager
Puis crĂ©er .useless-report/config.yml et confirmer : "Config sauvegardĂ©e â .useless-report/config.yml. Les prochaines exĂ©cutions seront silencieuses."
Step 1b â Historique (automatique)
Invoquer useless-report:track-history en mode silencieux :
- Charger les requĂȘtes ouvertes du manager depuis le run prĂ©cĂ©dent
- Préparer le delta (what changed since last time)
- Ces données s'injectent dans le rapport généré à l'étape 4
Step 2 â IngĂ©rer le codebase
Lire le projet courant â c'est la source de vĂ©ritĂ© unique :
useless-report:ingest-from-git â toujours, c'est la base. Commits du projet sur la pĂ©riode configurĂ©e.
useless-report:ingest-from-github â si le repo a un remote GitHub et que gh est authentifiĂ©.
useless-report:ingest-from-tickets â si des commits contiennent des IDs de tickets (JIRA, Linear, GitHub Issues).
Combiner en une base de faits unique. Ne jamais inventer â si une source est inaccessible, le noter dans le rapport.
Step 3 â Charger la charte visuelle
Chercher ./DESIGN.md Ă la racine.
- PrĂ©sent â les formats l'utilisent automatiquement. Rien Ă faire.
- Absent â proposer une seule fois : "DESIGN.md introuvable â veux-tu gĂ©nĂ©rer la charte de ta boĂźte ? (URL, CSS, screenshot, ou EntrĂ©e pour un design gĂ©nĂ©rique)"
- Si oui â
useless-report:generate-design
- Si non â design gĂ©nĂ©rique appliquĂ© automatiquement
Step 4 â GĂ©nĂ©rer les rapports
Pour chaque manager dans config.yml, dans l'ordre :
- Invoquer le skill
generate-* correspondant Ă son profil avec la base de faits :
| Profile | Skill |
|---|
control_oriented | useless-report:generate-control-report |
risk_sensitive | useless-report:generate-risk-report |
process_heavy | useless-report:generate-process-report |
stakeholder_oriented | useless-report:generate-stakeholder-brief |
low_context | useless-report:generate-low-context-digest |
volatile_priority | useless-report:generate-volatile-priority-update |
deadline_reactive | useless-report:generate-deadline-reactive-update |
quality_maximalist | useless-report:generate-quality-maximalist-report |
ambiguity_tolerant | useless-report:generate-ambiguity-tolerant-update |
synchronous_first | useless-report:generate-synchronous-first-update |
-
Pour chaque format demandé dans manager.formats, invoquer le skill correspondant sur le markdown généré :
html â useless-report:format-as-html
email â useless-report:format-as-email
slides â useless-report:format-as-slides
qa â useless-report:format-as-qa
call_prep â useless-report:format-as-call-prep
-
AprĂšs chaque rapport gĂ©nĂ©rĂ©, invoquer useless-report:track-history pour sauvegarder le snapshot et mettre Ă jour les requĂȘtes ouvertes du manager.
Convention de nommage des fichiers :
./useless-report/[YYYY-MM-DD]/[manager-name]-[profile].[ext]
Exemples :
useless-report/2026-05-01/alice-control.html
useless-report/2026-05-01/alice-control-email.html
useless-report/2026-05-01/bob-risk-deck.md
useless-report/2026-05-01/bob-risk-deck.pdf â si marp disponible
Créer le dossier ./useless-report/[date]/ automatiquement s'il n'existe pas.
Step 5 â RĂ©sumĂ© final
Afficher :
â Ingestion : [N] commits · [N] PRs · [N] tickets · pĂ©riode [pĂ©riode]
â Charte : [DESIGN.md trouvĂ© / design gĂ©nĂ©rique]
Rapports générés :
Alice (control_oriented)
â useless-report/2026-05-01/alice-control.html
â useless-report/2026-05-01/alice-control-email.html
Bob (risk_sensitive)
â useless-report/2026-05-01/bob-risk-deck.md
Prochaine exécution : /useless-report:weekly-report (aucune question)
Exemple de flux complet (2 managers, 2e exécution)
/useless-report:weekly-report
â Config chargĂ©e depuis .useless-report/config.yml (2 managers)
â git log --since=7days â 23 commits
â gh pr list â 5 PRs merged
â Tickets extraits : AUTH-201, AUTH-202, BILL-89
â DESIGN.md trouvĂ© â charte Stripe appliquĂ©e
â GĂ©nĂ©ration Alice (control_oriented) â HTML + email
â GĂ©nĂ©ration Bob (risk_sensitive) â slides Marp
â 3 fichiers sauvegardĂ©s dans useless-report/2026-05-01/
Rules
- Ne jamais inventer de faits. Tout vient du codebase. Si une source est indisponible, le noter.
- Silencieux par dĂ©faut sur les runs suivants â la config rĂ©pond Ă tout.
- Un dossier par date â ne pas Ă©craser les rapports prĂ©cĂ©dents.
- Respecter les formats par manager â Alice et Bob n'ont pas forcĂ©ment les mĂȘmes besoins.
- Signaler gracieusement si
gh n'est pas auth ou si marp n'est pas installĂ© â continuer sans bloquer.