# Reports > Guarda y carga reportes con timestamp y routing por keyword; incluye el Actionability Gate que revisa enlaces rotos, muertos, indirectos o faltantes antes de entregar briefings o reportes. Fuente: https://skillsagentes.com/skills/garrytan/gbrain/reports Markdown: https://skillsagentes.com/skills/garrytan/gbrain/reports.md Repositorio: https://github.com/garrytan/gbrain Autor: garrytan Licencia: MIT Actualizado: hace 9 días Coste de contexto: 72 tok instalada, 1.5k tok al activarse, 1.7k tok con todos los archivos del bundle Bundle: 2 archivos, 7 KB Permisos que pide: get_page, put_page, search ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add garrytan/gbrain --skill reports --agent claude-code # Cursor npx -y skills add garrytan/gbrain --skill reports --agent cursor # Codex npx -y skills add garrytan/gbrain --skill reports --agent codex # Gemini CLI npx -y skills add garrytan/gbrain --skill reports --agent gemini # Windsurf npx -y skills add garrytan/gbrain --skill reports --agent windsurf # Cline npx -y skills add garrytan/gbrain --skill reports --agent cline ``` ## Qué hace - Guarda reportes con nombre de archivo timestamped y frontmatter en reports/{category}/{fecha}.md - Carga el reporte más reciente por categoría - Mapea keywords de consulta a categorías de reporte - Aplica el Actionability Gate: detecta enlaces Broken/Dead/Indirect/Missing antes de entregar un reporte ## Cuándo usarla - Guardar output de un cron job como reporte - Consultar 'cuál es el último briefing' o 'muéstrame el pulse' - Antes de entregar un briefing matutino, digest de reunión o reporte de investigación con enlaces - Validar la calidad de los enlaces de un reporte ## Qué la activa - "Guarda este reporte" - "Carga el último briefing" - "Qué dice el último reporte de social mentions" - "Revisa la calidad de los enlaces de este reporte antes de enviarlo" ## Antes de instalar - Requiere acceso a las tools get_page, put_page y search de gbrain, y git en el repo brain para verificar enlaces a páginas. - makes network requests ## Archivos - SKILL.md — 6 KB - routing-eval.jsonl — 1 KB ## SKILL.md Reproducido tal cual desde garrytan/gbrain bajo MIT. Esta sección es el documento original y está en inglés. # Reports Skill ## Contract This skill guarantees: - Reports saved with timestamped filenames and frontmatter - Keyword routing: query → report category mapping - Latest report loadable by category name - Reports are searchable via gbrain search/query - Outbound reports pass the Actionability Gate (below) before delivery ## Phases 1. **Save report.** Write to `reports/{category}/{YYYY-MM-DD-HHMM}.md` with frontmatter: ```yaml --- title: {report title} type: report category: {category name} date: {YYYY-MM-DD} time: {HH:MM PT} --- ``` 2. **Load latest.** Given a category, find the most recent report file. 3. **Keyword routing.** Map common queries to report categories: - "email" / "inbox" → ea-inbox-sweep - "social" / "mentions" → social-mentions - "briefing" / "morning" → morning-briefing - "meeting" → meeting-sync - Custom mappings configurable ## Output Format Saved: `reports/{category}/{YYYY-MM-DD-HHMM}.md` Loaded: full report content with metadata. ## Actionability Gate Before any report reaches the user — a morning briefing, a meeting digest, a research report — every link must answer one question: **can the user click this and immediately act?** The link canon (deterministic, never-guessed URLs) lives in `skills/_output-rules.md` under Deterministic Links; this gate adds the delivery-time failure taxonomy and the retry loop. ### Four failure modes | Mode | What it means | Example | |------|--------------|---------| | **Broken** | Link is fake or a placeholder | `https://example.com`, `TODO-find-link` | | **Dead** | Link to a brain page that isn't committed/pushed | Page written but not pushed — the link 404s | | **Indirect** | Link goes somewhere, but not the right place | `x.com/alice-example` (profile) instead of `x.com/alice-example/status/` (the specific post) | | **Missing** | Actionable item mentioned with no link at all | "the clip making the rounds (~800K views)" with no URL | **Broken, Dead, and Indirect block delivery. Missing is a warning** — flag it, don't block. A missing link is honest. An indirect link is a broken promise. ### Blocked vs warning | Pattern | Status | Why it fails | |---------|--------|--------------| | `x.com/` | Blocked | Profile ≠ post. Link to `x.com//status/` | | Bare publication domain | Blocked | Homepage ≠ article. Add the article path | | `youtube.com/@channel` | Blocked | Channel ≠ video. Link to `youtube.com/watch?v=...` | | Brain-page link, file uncommitted | Blocked | Link 404s until committed + pushed | | `example.com` / `TODO` placeholder | Blocked | Not a real link | | `google.com/search?q=...` | Warning | Search ≠ source. Link to the actual result | | Actionable bullet with no URL | Warning | Where? Link it or describe how to find it | ### The retry loop (agent-run checks) There is no enforcement script. The agent runs these checks itself before delivering any report with links: 1. Compose the report. 2. Scan every link against the failure modes above: - **Brain-page links:** run `git status` in the brain repo — an uncommitted page behind a link is a Dead link; commit + push first. `gbrain get ` confirms the page exists at all. - **External links:** a profile, homepage, or channel URL standing in for specific content is Indirect. 3. If a check fails, fix the link: - Have the direct URL (post ID, article path, filing page)? Use it. - Don't have it? Search the source for the specific item. - Can't find it? Remove the link and describe the content instead: "clip on @alice-example's timeline, ~800K views — search there." Never leave a profile link as a substitute for a content link. 4. Re-check. 5. Max 2 retries → deliver with an explicit warning flag if Missing-class warnings remain. Broken, Dead, and Indirect links never ship. ### LLM-prompt gate snippet Paste into any report-generating prompt (subagent digests, research summaries, cron report jobs): ``` ACTIONABILITY GATE: Before finishing, verify every link answers "can the user click this and act immediately?" - Every X link → https://x.com/{user}/status/{post_id} — NEVER a profile link - Every article → full URL with path — NEVER a bare domain - Every brain-page link → committed + pushed, or don't link it - If you don't have the direct URL → describe the content WITHOUT a link - A missing link is better than an indirect link ``` ### Consumers Report surfaces route through this gate by harness-routing convention (a routing rule the resolver applies, not a mechanical guarantee): morning briefings (`skills/briefing/SKILL.md`), meeting digests, research reports, and any saved report that carries external links. ## Anti-Patterns - Saving reports without frontmatter (makes them unsearchable) - Using inconsistent category names across runs - Loading all reports when only the latest is needed - Not routing by keyword (forcing exact category name) - Delivering a report with a profile/homepage/channel link standing in for specific content (Indirect links block delivery) - Linking a brain page that hasn't been committed and pushed (Dead link) ## Dónde encaja - Categoría: [Productividad](https://skillsagentes.com/categorias/productividad.md) — Planificación, toma de notas y automatización de flujos personales. - Creador: [garrytan](https://skillsagentes.com/creators/garrytan.md) — 134 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Setup](https://skillsagentes.com/skills/garrytan/gbrain/setup.md): Configura GBrain con auto-aprovisionamiento de Supabase o PGLite, inyección en AGENTS.md y primera importación. - [Maintain](https://skillsagentes.com/skills/garrytan/gbrain/maintain.md): Chequeos de salud del brain: aplicación de back-links, auditoría de citas, validación de filing, detección de info obsoleta, páginas huérfanas y benchmarks. - [Schema Unify](https://skillsagentes.com/skills/garrytan/gbrain/schema-unify.md): Migra un brain de gbrain-base a la taxonomía de 14 tipos canónicos de gbrain-base-v2 usando gbrain onboard --check y el handler Minion unify-types. - [Retrieval Reflex](https://skillsagentes.com/skills/garrytan/gbrain/retrieval-reflex.md): Cuándo y qué recuperar: abre la página del brain de una entidad relevante antes de responder desde memoria. - [Minion Orchestrator](https://skillsagentes.com/skills/garrytan/gbrain/minion-orchestrator.md): Skill unificado de Minions para jobs deterministas de shell y orquestación de subagentes LLM: cola durable, observable y controlable, más la doctrina de ejecución durable para operaciones largas. ## Skills relacionadas - [Meeting Ingestion](https://skillsagentes.com/skills/garrytan/gbrain/meeting-ingestion.md): Ingiere transcripciones de cualquier grabadora de reuniones en páginas del brain con enriquecimiento de asistentes, propagación de entidades y fusión de timeline, verificando sustancia y secuencia. - [Migrate](https://skillsagentes.com/skills/garrytan/gbrain/migrate.md): Migración universal desde Obsidian, Notion, Logseq, markdown, CSV, JSON o Roam hacia gbrain. - [Maintain](https://skillsagentes.com/skills/garrytan/gbrain/maintain.md): Chequeos de salud del brain: aplicación de back-links, auditoría de citas, validación de filing, detección de info obsoleta, páginas huérfanas y benchmarks. - [Ingest](https://skillsagentes.com/skills/garrytan/gbrain/ingest.md): Enruta contenido hacia skills de ingesta especializadas. Detecta el tipo de entrada y delega en idea-ingest, media-ingest o meeting-ingestion. - [Conversation Archive](https://skillsagentes.com/skills/garrytan/gbrain/conversation-archive.md): Importa exports de ChatGPT, Claude y Perplexity y transcripciones de sesiones como páginas fechadas en conversations/, valida y extrae hechos, y mantiene el archivo sin huecos con detección y backfill. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)