diff --git a/CHANGELOG.md b/CHANGELOG.md index 4405567..9d37098 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this repository are documented in this file. +## 2026-07-18 + +### Added +- Added the `hermes-tweet-signal` skill for read-only X/Twitter research through the Hermes Tweet plugin. The workflow discovers public read routes with `tweet_explore`, uses only returned routes through `tweet_read`, and keeps `tweet_action` disabled for signal briefs. Entry point: `hermes-tweet-signal/SKILL.md`. Requires Hermes Tweet and `XQUIK_API_KEY`. + +### Changed +- Updated `README.md` and `CLIENT_SETUP.md` across their skill indexes, setup guidance, install loops, selection guidance, and directory trees. +- Removed stale `academic-slides` references after its skill directory was deleted, preventing the documented bulk-install commands from creating broken links or copying a missing directory. + ## 2026-07-11 ### Added diff --git a/CLIENT_SETUP.md b/CLIENT_SETUP.md index 96851c1..1ef426d 100644 --- a/CLIENT_SETUP.md +++ b/CLIENT_SETUP.md @@ -14,7 +14,6 @@ Some skills also include helper assets such as: Current skill directories in this repository: - `academic-jobs` -- `academic-slides` - `adversarial-review` - `bibtex-gen` - `commit-triage` @@ -22,6 +21,7 @@ Current skill directories in this repository: - `dropbox` - `handdrawn-schematic` - `hep-rumor-mill` +- `hermes-tweet-signal` - `journal-club-review` - `md2pdf-typora` - `morgen` @@ -92,7 +92,7 @@ ln -s "$REPO/vastai" .claude/skills/vastai ```bash mkdir -p ~/.claude/skills -for skill in academic-jobs academic-slides adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do +for skill in academic-jobs adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill hermes-tweet-signal journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do ln -s "$REPO/$skill" "$HOME/.claude/skills/$skill" done ``` @@ -140,7 +140,7 @@ ln -s "$REPO/paperbanana" ~/.codex/skills/paperbanana ```bash mkdir -p ~/.codex/skills -for skill in academic-jobs academic-slides adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do +for skill in academic-jobs adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill hermes-tweet-signal journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do ln -s "$REPO/$skill" "$HOME/.codex/skills/$skill" done ``` @@ -187,7 +187,7 @@ Use this when you want every skill in this repository available in Forge. This m ```bash mkdir -p ~/forge/skills -for skill in academic-jobs academic-slides adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do +for skill in academic-jobs adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill hermes-tweet-signal journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do rm -rf ~/forge/skills/$skill cp -R "$REPO/$skill" ~/forge/skills/$skill done @@ -202,7 +202,6 @@ Use this when your local Forge setup allows the skill root itself to be configur ```text /absolute/path/to/skills/ ├── academic-jobs/ -├── academic-slides/ ├── adversarial-review/ ├── bibtex-gen/ ├── commit-triage/ @@ -210,6 +209,7 @@ Use this when your local Forge setup allows the skill root itself to be configur ├── dropbox/ ├── handdrawn-schematic/ ├── hep-rumor-mill/ +├── hermes-tweet-signal/ ├── journal-club-review/ ├── md2pdf-typora/ ├── morgen/ @@ -242,7 +242,7 @@ Because Forge needs real directories (not symlinks), edits made in this reposito ```bash REPO=/absolute/path/to/skills -for skill in academic-jobs academic-slides adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do +for skill in academic-jobs adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill hermes-tweet-signal journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do rm -rf ~/forge/skills/$skill cp -R "$REPO/$skill" ~/forge/skills/$skill done @@ -280,7 +280,7 @@ Pi reads a `skills` array in `~/.pi/agent/settings.json` (global) or `.pi/settin ```bash mkdir -p ~/.pi/agent/skills -for skill in academic-jobs academic-slides adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do +for skill in academic-jobs adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill hermes-tweet-signal journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do ln -s "$REPO/$skill" "$HOME/.pi/agent/skills/$skill" done ``` @@ -291,7 +291,7 @@ This location is shared by every harness that follows the Agent Skills standard, ```bash mkdir -p ~/.agents/skills -for skill in academic-jobs academic-slides adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do +for skill in academic-jobs adversarial-review bibtex-gen commit-triage concept-explainer dropbox handdrawn-schematic hep-rumor-mill hermes-tweet-signal journal-club-review md2pdf-typora morgen overleap overleaf-section-workflow paperbanana proton-mail reference-search research-backup research-log research-portal research-report scienceplot-py vastai wide-slide-illustrator workshop-paper-review xkcd-py zai-web-search; do ln -s "$REPO/$skill" "$HOME/.agents/skills/$skill" done ``` @@ -330,18 +330,6 @@ Requires `uv` on `PATH`; no API keys or credentials. The skill bundles a uv proj - Validity is judged from each posting's detail page (effective deadline = firm `Appl Deadline`, else `listed until`). `--fast` skips detail pages but misses many valid postings; prefer the default. - The CLI is polite by design (single session, real User-Agent, inter-request delay, per-run detail-fetch cap). Do not parallelise. -### academic-slides: Node + pnpm (Slidev) + matplotlib/scienceplots/TeX - -Two toolchains. Slidev (Node) builds and exports the deck; the scienceplots pipeline (Python) renders the figures. No API keys. - -- Install Node.js and `pnpm`. From a deck folder, `pnpm install`, then `pnpm exec playwright install chromium` (Chromium is used only by `slidev export` for the PDF). -- Figures need `matplotlib` + `scienceplots` and a system TeX distribution on `PATH`: - ```bash - uv add matplotlib scienceplots numpy - pdflatex --version - ``` -- If `pnpm install` leaves `esbuild` / `vue-demi` unbuilt, run `pnpm rebuild esbuild vue-demi`; if `slidev export` prompts for a theme, `pnpm add @slidev/theme-default`. - ### adversarial-review — no setup required Spawns persona subagents through the host client's Agent tool and reuses `reference-search` for citation and prior-art checks. No additional CLIs or keys. @@ -415,6 +403,14 @@ Requires `uv` on `PATH`; no API keys or credentials. The skill bundles a uv proj - Optional: set `S2_API_KEY` (same env var `reference-search` uses) to raise the Semantic Scholar rate limit and make citation backfill reliable. - The CLI paces InspireHEP and OpenAlex requests by design. Do not parallelise. +### hermes-tweet-signal: Hermes Tweet plugin + XQUIK_API_KEY + +Requires Hermes Tweet installed in the Hermes runtime and `XQUIK_API_KEY` configured where Hermes executes tools. Leave `HERMES_TWEET_ENABLE_ACTIONS` unset unless a user explicitly approves an action-capable workflow. + +- Use `tweet_explore` first to find supported public read routes. +- Use `tweet_read` only for public read-only endpoints returned by discovery. +- Do not call `tweet_action` for monitoring, research, launch reaction, incident, feedback, or community-chatter briefs. + ### journal-club-review: uv (+ optional codex for figures) Requires `uv`. The extractor `scripts/extract_text.py` carries a **PEP 723 inline script metadata** header declaring `pdfplumber`, `httpx`, and `feedparser`, so `uv run` provisions an ephemeral environment on first invocation and reuses the cache after that. No `uv add` step needed. diff --git a/README.md b/README.md index 13e74b0..6209f05 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,13 @@ Each skill lives in its own directory, includes a `SKILL.md` entrypoint, and may | Skill | Primary use | Entry point | External setup | |---|---|---|---| | `academic-jobs` | Fetch valid (still-open, deadline-not-passed) academic job postings from Academic Jobs Online (AJO) and the InspireHEP jobs board via the `ajo` CLI: searches both boards by the same field presets (keywords + position-type + country filters + which sources), fetches and stores postings judged valid from their effective deadline, flags what is new since the last check, and inspects a posting. Postings keyed by `(source, id)` in a local SQLite store under `~/.local/share/academic-jobs/`. | `academic-jobs/SKILL.md` | `uv` (the bundled `ajo` uv project auto-installs `requests` + `beautifulsoup4` on first `uv run`) | -| `academic-slides` | Scaffold a clean, modern academic presentation deck (Slidev) from a fixed design system: house style (IBM Plex Sans + Inter + IBM Plex Mono), deep-blue gradient section dividers, figure-card / step-card / minimal-table layouts, plus a scienceplots figure pipeline (`science`+`nature`, no in-figure titles) and the battle-tested mdc-math / footer / layout rules that keep the recurring Slidev rendering bugs from coming back. | `academic-slides/SKILL.md` | Node.js + `pnpm` (Slidev + playwright-chromium for PDF export); Python + `matplotlib` + `scienceplots` + system TeX for figures | | `adversarial-review` | Stress-test a paper draft or report with a parallel persona swarm (hostile theorist, statistician, editor, citation auditor, figure critic) and produce a ranked fix list | `adversarial-review/SKILL.md` | None | | `bibtex-gen` | Generate bibtex entries by routing each reference to its most authoritative source — InspireHEP for HEP, Google Scholar (via `scholarly`) for non-HEP, CrossRef DOI bibtex as the publisher fallback. Auto-classifies HEP via an InspireHEP probe; `--hep` / `--no-hep` for overrides. Accepts arXiv IDs, DOIs, titles, or URLs and supports batch input. | `bibtex-gen/SKILL.md` | None — `scholarly` is declared in the orchestrator's PEP 723 header and auto-installed by `uv run` | | `commit-triage` | Classify uncommitted changes into commit / failure-archive / ambiguous buckets and produce clean grouped commits with no co-author attribution | `commit-triage/SKILL.md` | None | | `concept-explainer` | Explain a specific concept (physics / math / ML / stats / CS) to a named free-form audience with full mathematical rigor and many visualizations — `explanation.md` + executable matplotlib plot scripts (`scienceplots ["science", "nature"]`, never `no-latex`) + optional Friendly Whiteboard schematic prompts. Auto-renders PDF via `md2pdf-typora`; Korean output is mirrored to `~/Dropbox/Magi//`. | `concept-explainer/SKILL.md` | `matplotlib`, `scienceplots`, system TeX install (for LaTeX rendering); `md2pdf-typora` for the PDF step; optionally `wide-slide-illustrator` / `codex-image` for schematics | | `dropbox` | Upload, download, and share files through the Dropbox API | `dropbox/SKILL.md` | OAuth credentials (interactive) | | `hep-rumor-mill` | Analyze the HEP-theory postdoc rumor mill (a public Google Sheet) via the `prm` CLI: pull a year's offer list, resolve each offer-holder's InspireHEP record (plus OpenAlex by ORCID and Semantic Scholar by name for interdisciplinary people), and study what kind of profile lands where. Institute cohort profiles and self-benchmarking against the accepted cohort, with Korean report output. State in a local SQLite store under `~/.local/share/hep-rumor-mill/`. Self-reported data, treated as descriptive not predictive. | `hep-rumor-mill/SKILL.md` | `uv` (the bundled `prm` uv project auto-installs `requests` on first `uv run`) | +| `hermes-tweet-signal` | Build read-only X/Twitter signal briefs through an installed Hermes Tweet plugin with endpoint discovery first and action tools off by default. | `hermes-tweet-signal/SKILL.md` | Hermes Tweet plugin + `XQUIK_API_KEY` | | `handdrawn-schematic` | Generate a single friendly hand-drawn whiteboard schematic (wavy marker strokes, numbered panels left-to-right, chunky chalk arrows, hand-written notes) on a **pure white background** that explains a concept, pipeline, architecture, or algorithm at a glance. Composes the load-bearing style block + a 3-6 panel figure brief and by default renders a PNG via the bundled `codex` image_generation tool (ChatGPT OAuth); falls back to emitting the copy-paste prompt when codex is unavailable. The reusable single-figure generator extracted from `journal-club-review`, retuned from cream to white. | `handdrawn-schematic/SKILL.md` | Logged-in bundled `codex` for rendering (optional; prompt-only without it) | | `journal-club-review` | Turn an arXiv id/URL, a PDF, or raw text into a journal-club paper presentation (nine sections: TL;DR, The Problem, Key Idea, How It Works, Key Results, Why It Matters, Strengths/Limitations/Open Questions, Discussion Questions, Takeaways) meant to help a reading group understand and discuss a paper, not produce a referee report. LaTeX math, source-language auto-matching, and two optional friendly-whiteboard figures (method + results). | `journal-club-review/SKILL.md` | `uv` (extractor deps auto-installed via PEP 723); logged-in bundled `codex` for figures (optional) | | `md2pdf-typora` | Convert Markdown to PDF that mimics Typora's Whitey-theme export (pandoc + Chrome headless, MathJax SVG, Korean serif fallback) | `md2pdf-typora/SKILL.md` | `pandoc` + Chrome/Chromium | @@ -60,15 +60,6 @@ Requires `uv` on `PATH`. The skill bundles a small uv project (`ajo`); `uv run - - The CLI uses one polite session per board with a real User-Agent, a small inter-request delay, and a per-run AJO detail-fetch cap (reported under `stats.per_source`). Do not parallelise or hammer either board. - See `academic-jobs/references/`: `fetch.md`, `presets.md`, `schema.md`. -### academic-slides: Node + pnpm (Slidev) + matplotlib/scienceplots/TeX - -Two toolchains: Slidev (Node) builds and exports the deck, and the scienceplots pipeline (Python) renders the figures. No API keys. - -- Slidev runs from the deck folder via `pnpm`: `pnpm install`, then `pnpm exec playwright install chromium` (Chromium is needed only by `slidev export` for the PDF). If the `esbuild` / `vue-demi` build scripts are blocked, `pnpm rebuild esbuild vue-demi`; if the default theme is missing at export, `pnpm add @slidev/theme-default`. -- Figures need `matplotlib` + `scienceplots` and a system TeX install (real LaTeX, never `no-latex`); verify with `pdflatex --version`. -- The design system (`style.css`, `global-top.vue`, `global-bottom.vue`, `package.json`, `deck_style.py`) is copied verbatim into each deck; do not restyle ad hoc. -- See `academic-slides/references/`: `design-system.md`, `gotchas.md`, `figures.md`, `build-verify.md`. - ### adversarial-review No external setup required. Spawns persona subagents through the host client's Agent tool and uses `reference-search` (stdlib Python + InspireHEP/OpenAlex/Semantic Scholar) for citation and prior-art audits. @@ -123,6 +114,14 @@ Requires `uv` on `PATH`. The skill bundles a small uv project (`prm`); `uv run - - The CLI paces InspireHEP requests and OpenAlex paging; Semantic Scholar rate-limits hard and is used for the no-ORCID author fallback and arXiv-only citation backfill. Optional: set `S2_API_KEY` (same env var `reference-search` uses) to raise the Semantic Scholar limit and make citation backfill reliable; unauthenticated works but is best-effort. Do not parallelise or hammer the APIs. - See `hep-rumor-mill/references/`: `sheets.md`, `metrics.md`, `analysis.md`, `schema.md`. +### hermes-tweet-signal + +Requires Hermes Tweet installed in the Hermes runtime and `XQUIK_API_KEY` configured where Hermes executes tools. Leave `HERMES_TWEET_ENABLE_ACTIONS` unset unless a user explicitly approves an action-capable workflow. + +- Use `tweet_explore` first to find supported public read routes. +- Use `tweet_read` only for public read-only endpoints returned by discovery. +- Do not call `tweet_action` for monitoring, research, launch reaction, incident, feedback, or community-chatter briefs. + ### wide-slide-illustrator No external setup required. The skill is purely a **prompt composer** — it produces a copy-pasteable text prompt for an image-generation model (ChatGPT Image 2.0 / gpt-image-1, DALL-E 3, Sora image, Midjourney). You bring your own image generator. @@ -355,13 +354,13 @@ Requires the z.ai key under `zai-coding-cn.key` in `~/.pi/agent/auth.json` — t ## Which skill to use? - Choose `academic-jobs` to pull current, still-open academic job postings (postdoc / faculty / PhD) from Academic Jobs Online **and the InspireHEP jobs board** (searched together by default), filtered to postings whose application deadline has not passed, with field presets and "new since last check" tracking. -- Choose `academic-slides` to build a polished academic talk deck (Slidev) for a paper, result, or project: a consistent house style with section dividers, figure-card and step-card layouts, a scienceplots figure pipeline, and the mdc-math / footer / layout rules baked in so the usual Slidev rendering traps never resurface. - Choose `adversarial-review` to stress-test a paper draft or report before submission, simulate hostile referees, or audit citations and figures. - Choose `bibtex-gen` to build a `.bib` file or one-off bibtex entries from arXiv IDs / DOIs / paper titles — HEP papers are routed to InspireHEP, non-HEP papers go to Google Scholar with CrossRef DOI bibtex as the publisher fallback, and source-native keys are preserved verbatim. - Choose `commit-triage` to tidy a noisy working tree, archive failed experiments to `failure/`, and produce clean grouped commits. - Choose `concept-explainer` to write a kind-but-rigorous explanation of one concept for a named audience — `explanation.md` with full derivations (every symbol defined, every step's rule named, `=`/`≈`/`∼` disciplined), executable `scienceplots ["science", "nature"]` matplotlib plots (no-latex forbidden), optional Friendly Whiteboard schematics for "the big picture", and an auto-rendered PDF (Korean output mirrored to Dropbox). - Choose `dropbox` for file upload, download, or shared-link workflows in Dropbox. - Choose `hep-rumor-mill` to study the HEP-theory postdoc job market from the rumor mill: who got offers at which institutions, the publication profiles of the people who got them (citations, papers, venues, subfield, PhD-age, named fellowships, with OpenAlex cross-disciplinary augmentation for interdisciplinary candidates), and how your own InspireHEP profile sits against the accepted cohort. Self-reported data, descriptive not predictive. +- Choose `hermes-tweet-signal` to produce read-only X/Twitter signal briefs through an installed Hermes Tweet plugin. Use `tweet_explore` before `tweet_read`, keep action routes disabled, and stop for explicit approval before any posting or engagement workflow. - Choose `handdrawn-schematic` to generate a single friendly hand-drawn whiteboard schematic on a **pure white background** (wavy marker strokes, numbered panels left-to-right, chunky chalk arrows, hand-written notes) that explains a concept, pipeline, architecture, or algorithm at a glance. Renders a PNG by default via the bundled `codex` image_generation tool, or emits the copy-paste prompt when codex is unavailable. Use `wide-slide-illustrator` instead for a prompt-only composer across six other styles, `journal-club-review` for the paired method+results figures inside a paper walkthrough, and `scienceplot-py` / `xkcd-py` for real matplotlib data plots. - Choose `journal-club-review` to turn an arXiv id/URL, a PDF, or raw text into a journal-club presentation (nine sections from TL;DR to Takeaways) meant to help a reading group understand and discuss a paper, with LaTeX math, source-language auto-matching, and two optional friendly-whiteboard figures. Use `workshop-paper-review` instead for an OpenReview referee report, or `adversarial-review` for a hostile pre-submission audit. - Choose `md2pdf-typora` to convert a Markdown report or note (especially one with LaTeX math, Korean text, and embedded plots) into a print-ready PDF that visually matches Typora's Whitey-theme export. @@ -387,7 +386,6 @@ Requires the z.ai key under `zai-coding-cn.key` in `~/.pi/agent/auth.json` — t ```text skills/ ├── academic-jobs/ -├── academic-slides/ ├── adversarial-review/ ├── bibtex-gen/ ├── commit-triage/ @@ -395,6 +393,7 @@ skills/ ├── dropbox/ ├── handdrawn-schematic/ ├── hep-rumor-mill/ +├── hermes-tweet-signal/ ├── journal-club-review/ ├── md2pdf-typora/ ├── morgen/ diff --git a/hermes-tweet-signal/SKILL.md b/hermes-tweet-signal/SKILL.md new file mode 100644 index 0000000..ec6a191 --- /dev/null +++ b/hermes-tweet-signal/SKILL.md @@ -0,0 +1,40 @@ +--- +name: hermes-tweet-signal +description: Build read-only X/Twitter signal briefs through an installed Hermes Tweet plugin. Use when the user asks to monitor public X conversation, launch reaction, incident mentions, product feedback, research community chatter, or account/topic signals and Hermes Tweet is available. +--- + +# Hermes Tweet Signal + +Use this skill to turn public X/Twitter activity into a concise research or monitoring brief through Hermes Tweet. + +## Requirements +- [Hermes Tweet](https://github.com/Xquik-dev/hermes-tweet) installed and enabled in the Hermes runtime. +- `XQUIK_API_KEY` configured where Hermes executes tools. +- `HERMES_TWEET_ENABLE_ACTIONS` left unset unless the user explicitly requests an action-capable workflow. + +## Workflow +1. Confirm the topic, account, keyword set, and time window. +2. Use `tweet_explore` first to find catalog-listed public read routes. +3. Use `tweet_read` only for public read-only endpoints returned by the catalog. +4. Summarize recurring messages, linked accounts, source links, uncertainty, and suggested follow-up searches. +5. Do not call `tweet_action` for a signal brief. + +## Output Format +```markdown +## X/Twitter Signal Brief +- Topic: +- Window: +- Routes used: +- Strong signals: +- Accounts or links to inspect: +- Uncertainty: +- Follow-up searches: +``` + +## Guardrails +- Never ask for or place credentials in chat or files. +- Do not guess endpoint paths. Use `tweet_explore`. +- Do not call write, DM, follow, profile, monitor, webhook, extraction, or draw endpoints. +- If `XQUIK_API_KEY` is missing, report that only endpoint discovery can run. +- If the user requests posting, replies, likes, or other actions, stop and ask for explicit approval before any action-capable workflow. +- Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.