martin-hausleitner/martins-awesome-skills/ai-research-output-publisher

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when turning finished AI research results into clear chat messages, copy-ready summaries, duration metrics, PSPin/deep-research links, and optional Notion pages without exposing private data.

Install

npx vskill@latest install martin-hausleitner/martins-awesome-skills/ai-research-output-publisher

SKILL.md

AI Research Output Publisher

Use this skill after a Deep Research, Agent, or long AI workflow has finished and you need a polished result message plus optional Notion sync.

It does not run the browser workflow itself. It consumes a result JSON file from ai-research-browser, Oracle harvest output, or another orchestrator and produces:

  • a clear chat message with icon, readable links, and copy-ready summary text;
  • support for multiple research results in one notification;
  • average research duration and total duration metrics;
  • a Notion page payload where the summary appears above the full text;
  • optional live Notion page creation only when explicitly allowed.
  • optional live chat/webhook delivery only when explicitly allowed.

Safe Default

Render a message and Notion payload without external writes:

bash
python3 skills/productivity/ai-research-output-publisher/scripts/ai_research_output_publisher.py render \
--input /tmp/research-results.json \
--message-output /tmp/research-message.md \
--payload-output /tmp/research-notion-payload.json

The chat message includes summary text by default. Add --chat-summary off when only links and metrics should be shown. Secret-like values are redacted by default (--privacy redacted), including emails, obvious API tokens, bearer headers, proxy credentials, and URL query strings. Use --privacy full only for private/local artifacts that must preserve exact text.

Try the bundled public-safe example:

bash
python3 skills/productivity/ai-research-output-publisher/scripts/ai_research_output_publisher.py render \
--input skills/productivity/ai-research-output-publisher/examples/research-results.example.json

Expected message shape: examples/research-message.example.md.

Input Shape

json
{
"job_id": "research-batch-001",
"title": "Weekly AI research",
"results": [
{
"title": "Obsidian AI plugins",
"provider": "gemini",
"mode": "deep-research",
"status": "completed",
"deep_research_url": "https://example.com/research",
"pspin_url": "https://example.com/pin",
"summary": "Short summary shown in chat and at the top of Notion.",
"text": "Full research report.",
"research_duration_seconds": 720,
"total_duration_seconds": 900
}
]
}

The script accepts research_url, deep_research_url, chat_url, or source_url for the main research link.

Publish To Notion

Live Notion writes require explicit opt-in:

bash
NOTION_API_KEY="secret-token" \
python3 skills/productivity/ai-research-output-publisher/scripts/ai_research_output_publisher.py publish-notion \
--input /tmp/research-results.json \
--parent-page-id "<notion-parent-page-id>" \
--allow-external-write

Without --allow-external-write, the command writes only the planned Notion payload. Live writes still use redacted mode by default; pass --privacy full only when the destination workspace is allowed to receive the exact captured text.

Send Chat Notification

Prepare a chat/webhook notification without sending:

bash
python3 skills/productivity/ai-research-output-publisher/scripts/ai_research_output_publisher.py send-chat \
--input /tmp/research-results.json \
--channel webhook \
--webhook-url "https://example.invalid/research-webhook"

Live delivery requires explicit opt-in:

bash
python3 skills/productivity/ai-research-output-publisher/scripts/ai_research_output_publisher.py send-chat \
--input /tmp/research-results.json \
--channel discord \
--webhook-url "<discord-webhook-url>" \
--allow-external-write

Supported channels are webhook, discord, and telegram. Tokens and destinations must come from local environment variables or CLI arguments and must never be committed.

Output Contract

Each notification includes:

  • an icon-based headline;
  • one row per completed result;
  • readable Markdown links for Deep Research and PSPin;
  • average research duration and average total duration;
  • copy-ready summary text;
  • button metadata for copy, Deep Research, PSPin, and Notion page actions.
  • optional chat_delivery status when sent through the gated send-chat command.

Verification

Run the deterministic local E2E test:

bash
python3 -m unittest discover -s skills/productivity/ai-research-output-publisher/tests -p 'test_*.py'

The tests use fake input and a local fake Notion endpoint. They do not write to a real workspace.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/martin-hausleitner/martins-awesome-skills/ai-research-output-publisher/badge)](https://verified-skill.com/skills/martin-hausleitner/martins-awesome-skills/ai-research-output-publisher)

Something wrong with this skill or its page? Tell us.