hoyeon-blueprint
Hoyeon blueprint workflow for Codex. Use when the user invokes "$hoyeon-blueprint" or wants to turn requirements.md into a…
Collect diverse opinions on technical topics from developer communities. Use for "developer reactions", "community opinions" requests. Aggregates Reddit, HN, Dev.to, Lobsters, ProductHunt, etc.
$ npx -y skills add team-attention/hoyeon --skill dev-scan --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/dev-scanContext preview
The summary Claude sees to decide when to auto-load this skill.
Collect diverse opinions on technical topics from developer communities. Use for "developer reactions", "community opinions" requests. Aggregates Reddit, HN, Dev.to, Lobsters, ProductHunt, etc.
name: dev-scan description: Collect diverse opinions on technical topics from developer communities. Use for "developer reactions", "community opinions" requests. Aggregates Reddit, HN, Dev.to, Lobsters, ProductHunt, etc. version: 3.1.0
Collect and synthesize diverse opinions on specific topics from multiple developer communities.
Quickly understand **diverse perspectives** on technical topics:
described below.
happen inside one Bash invocation with `&` and `wait`.
`date +%Y%m%d-%H%M%S` and store run artifacts under `$HOME/.hoyeon/codex-$RUN_ID/tmp/`.
bundled Python API scripts before using generic web search fallback.
`hoyeon-external-researcher`, `hoyeon-docs-researcher`, or `hoyeon-browser-explorer`.
| Platform | Method | |----------|--------| | Reddit | Vendored web-search.mjs (`chromux`) — Google `site:reddit.com` + enrichment (post body, comments, score) | | X (Twitter) | Vendored web-search.mjs (`chromux`) — Google `site:x.com` + enrichment (tweets, likes, replies) | | Hacker News | Vendored hn-search.py (`python3`) — Algolia API, no key needed | | Dev.to | Vendored web-search.mjs (`chromux`) — Google `site:dev.to` + enrichment (article, comments) | | Lobsters | Vendored web-search.mjs (`chromux`) — Google `site:lobste.rs` + enrichment (article, comments) | | Threads | Vendored web-search.mjs (`chromux`) — Google `site:threads.net` + enrichment (posts, replies, likes) | | ProductHunt | Vendored ph-search.py (`python3`) — GraphQL API, requires `PRODUCT_HUNT_TOKEN` env var |
Run all checks in a **single Bash call** using shell backgrounding (`&` + `wait`). Claude Code executes Bash calls sequentially — multiple Bash tool calls do NOT run in parallel. The only way to parallelize is within one shell invocation.
mkdir -p /tmp/dev-scan-$$ # Kill existing chromux instance (may be non-headless) and relaunch in headless mode chromux kill 2>/dev/null || true chromux launch default --headless 2>/dev/null || true node skills/dev-scan/vendor/chromux-search/web-search.mjs --check > /tmp/dev-scan-$$/web.txt 2>&1 & python3 skills/dev-scan/vendor/hn-search/hn-search.py --check > /tmp/dev-scan-$$/hn.txt 2>&1 & python3 skills/dev-scan/vendor/ph-search/ph-search.py --check > /tmp/dev-scan-$$/ph.txt 2>&1 & wait echo "=== Web (chromux) ===" && cat /tmp/dev-scan-$$/web.txt echo "=== HN ===" && cat /tmp/dev-scan-$$/hn.txt echo "=== ProductHunt ===" && cat /tmp/dev-scan-$$/ph.txt rm -rf /tmp/dev-scan-$$
| Result | Action | |--------|--------| | `web-search --check` → `available: true` | chromux available — Reddit, X, Dev.to, Lobsters all use Google `site:` + enrichment | | `web-search --check` → `available: false` | Fall back to WebSearch tool for all Google-based sources | | `hn-search --check` → `available: true` | Hacker News source available | | `hn-search --check` → `available: false` | Fall back to WebSearch for HN | | `ph-search --check` → `available: true` | ProductHunt source available | | `ph-search --check` → `available: false` | Skip ProductHunt (token not set or invalid) |
Report available sources before proceeding. Minimum 1 source required.
> **Note**: Step 0 (dependency check) and Step 1 (query planning) are independent — run Step 0 bash commands and perform Step 1 reasoning in the same message to save a round-trip.
Extract structured components from user request:
Examples:
User requests are often complex or conversational. Before generating platform-specific queries, decompose the request into **atomic search concepts** that search engines can match effectively.
**Why this matters**: Search engines match keywords, not intent. A verbose question like "Is React 19's use() hook a viable replacement for useEffect patterns in production apps?" will miss threads titled "use() vs useEffect" or "React 19 hooks review". Decomposition bridges this gap.
**Process**:
1. **Extract core entities**: Product/technology names exactly as communities write them 2. **Generate query variants** by search intent:
3. **Select best variant per platform** (see mapping below)
**Example**: "Can React 19's use() hook replace the existing useEffect pattern?"
| Variant | Query | |---------|-------| | `core` | `React 19 use hook` | | `versus` | `use() vs useEffect` | | `opinion` | `React 19 use hook worth it` | | `technical` | `React 19 use hook replace useEffect` |
**Example**: "Is Cursor worth paying for compared
All you need is requirements. A Claude Code plugin that derives requirements from your intent, verifies every derivation, and delivers traced code — without you writing a plan. AI can build anything. The hard part is knowing what to build — precisely.
Hoyeon blueprint workflow for Codex. Use when the user invokes "$hoyeon-blueprint" or wants to turn requirements.md into a…
Hoyeon browser automation workflow for Codex. Use when the user invokes "$hoyeon-browser-work" or asks Codex to perform a browser…
Hoyeon ambiguity-resolution interview for Codex. Use when the user invokes "$hoyeon-clarify", "/clarify", asks to keep asking…
Hoyeon deep research workflow for Codex. Use when the user invokes "$hoyeon-deep-research" or wants a multi-channel cited…
Hoyeon developer community scan workflow for Codex. Use when the user invokes "$hoyeon-dev-scan" or asks for developer reactions,…
Hoyeon Socratic discussion workflow for Codex. Use when the user invokes "$hoyeon-discuss", "/discuss", asks to think through an…