instagram-research ยท diff

git:20261007.7f28d14 to git:20261020.6feee6e

36 added, 68 removed. Audit A to A.

---
name: instagram-research
description: Research public Instagram accounts, posts, Reels, comments, hashtags, and creators for audits, benchmarks, audience voice, or collaboration shortlists.
metadata:
postplus:
familyId: instagram
familyName: Instagram
---
# Instagram Research
- Use this as the single Instagram research entrypoint when the user has not
- already chosen a narrower Instagram skill. It routes the request, applies the
- public-surface contract, and runs the smallest supported first pass.
-
+ Research public Instagram evidence for the user's marketing decision. A product,
+ category, problem, competitor, account, or content URL is enough to start.
+ Use the task reference below and [shared contract](references/shared-contract.md)
+ for research completion, reporting, and downstream handoffs.
## Reference Index
- Read only the one route reference matching the request. The local contract is
- optional detail when platform scope remains unclear.
-
| User asks for | Apply |
| --- | --- |
| Known account, handle, profile URL, competitor account | `references/account-audit.md` |
| Organic examples, hooks, formats, "what works", competitor content | `references/organic-benchmark.md` |
| Comments, audience voice, objections, FAQ, consumer language | `references/audience-voice.md` |
| Creators, influencers, KOL/KOC, UGC makers, affiliates, contacts | `references/creator-discovery.md` |
| Campaign, hashtag, branded UGC sample, watchlist, competitor campaign | `references/campaign-scout.md` |
| Paid ads, Stories, Shop, LIVE, private data, backend analytics, broad social listening | Stop or ask for a supported public Instagram scope |
| Cross-platform request | Run only the Instagram lane here; hand off other platforms |
- ## First Question
-
- Ask one question only when the answer changes platform, route,
- public/private boundary, or first-pass scope.
-
- | Missing | Ask |
- | --- | --- |
- | Platform | `Which platform should I use first?` |
- | Instagram seed | `Please give one Instagram seed: handle, profile URL, post/Reel URL, hashtag, brand/search query, campaign term, or creator criteria.` |
- | Brand audit without handle | `Do you have the official handle, or should I first run search recall for candidate accounts?` |
- | Audience voice without post source | `Send 1-5 public post/Reel URLs, or give an account, hashtag, or query so I can build a shortlist first.` |
- | Creator discovery without seed | `Give one niche, category, hashtag, competitor account, audience keyword, region/language, or collaboration goal.` |
- | Contact enrichment without shortlist | `Send the narrowed creator usernames/profile URLs, or let me first shortlist candidates.` |
-
- Do not ask for credentials, private exports, or retry strategy.
-
- ## Run Discipline
+ ## Understand the request
- 1. Route the request with the table above.
- 2. Read only the selected workflow reference.
- 3. Run the narrowest collection chain that can answer the first pass.
- 4. If execution succeeds but evidence is empty, sparse, noisy, or off-topic,
- apply the quality rules below; do not repeat the
- same request or silently expand the approved PostPlus credit scope.
- 5. Stop after the bounded first pass and report scope, evidence, limits, and
- next action.
+ Infer the intended decision and useful deliverable from the request. Read an
+ unfamiliar product's official page before deriving brands, use cases, problem
+ phrases, and hashtags. Verify brand/account identity instead of guessing from a
+ name. Do not ask the user to supply competitor lists or choose search batches.
+ Ask one focused question only when missing product identity, subject, market,
+ or a public/private boundary would materially change the work. If the user has
+ provided a usable product/category/account/URL, start; do not ask for another
+ seed or an output-format choice. Preserve all platforms the user requested.
- Do not present a sample as full-platform truth. Do not add hidden implementation
- fields, analysis notes, unsupported filters, or compatibility fallbacks.
+ Keep explicit requirements, inferred search directions, and unknown conditions
+ separate. Inferred directions are not hidden exclusion rules. Unsupported
+ private metrics remain unknown; use the available public evidence only when it
+ can still answer the requested decision.
## Public Command Boundary
- - Choose the smallest matching command or workflow from the user input and run
- it directly.
- - Readiness diagnostics: `postplus doctor --skill instagram-research`.
-
- - Inspect a route with `postplus research run <route> --help` only when its
- semantic flags are not already clear.
- - Run `postplus research run <route> --<semantic flags> --wait --output
- <result.json>`.
- - Pass only public handles, URLs, hashtags, search terms, locations, and limits
- through flags shown by the selected route.
- - Keep the first pass bounded; expand only after inspecting the first result.
- - If the CLI returns a quote-confirmation challenge, reuse existing explicit user approval only when it covers the challenge scope and maximum cost; otherwise obtain approval before running `postplus quote confirm --json --challenge-file <challenge.json>` and retry with the returned token.
-
- ## Command Selection
-
- | Evidence need | Route | Semantic input | First pass |
- | --- | --- | --- | --- |
- | Known account facts | `instagram-profiles` | repeat `--handle`, `--limit` | 1-5 accounts |
- | Recent account posts | `instagram-posts` | repeat `--handle`, `--limit` | 20 posts |
- | Comments/audience voice | `instagram-comments` | repeat `--url`, `--limit` | 1-5 posts, 20 comments |
- | Hashtag/campaign sample | `instagram-hashtags` | repeat `--hashtag`, `--kind`, `--limit` | 20 items |
- | Brand/account/topic recall | `instagram-search` | repeat `--query`, `--kind`, `--limit` | 20 results |
- | Public contact signals | `instagram-email-search` | repeat `--handle` | Narrow shortlist |
-
- Only if platform scope or evidence interpretation remains unclear, consult
- [platform contract](references/shared-contract.md); it is not a preflight.
+ Run the selected route with its declared semantic flags:
- ## Evidence Quality
+ ```bash
+ postplus research run <route> --<semantic flags> --limit <n> --wait --output result.json
+ ```
- 1. Check that profile facts, post evidence, and actual comments match the requested decision; captions are not audience voice.
- 2. Prefer verified handles or post URLs; if discovery misses, change the query or hashtag and verify the shortlisted profiles.
- 3. Allow at most two changed follow-up passes after successful but insufficient results, within approved scope and budget; do not repeat an identical request or hide a failed/pending operation.
- 4. Stop when sufficient, at the bound, or when another pass would not help. Report useful evidence and uncertainty; preserve raw results and source links.
+ | Evidence need | Route | Inputs |
+ | --- | --- | --- |
+ | Profile facts | `instagram-profiles` | repeat `--handle` |
+ | Account posts or known posts | `instagram-posts` | repeat `--handle` or repeat `--url`, never both |
+ | Topic or hashtag content | `instagram-hashtags` | repeat `--query` or repeat `--hashtag`, never both; `--kind posts\|reels` |
+ | Account/tag discovery | `instagram-search` | repeat `--query`; `--kind user\|hashtag\|popular` |
+ | Actual comments | `instagram-comments` | repeat `--url`; `--include-replies` when needed |
+ | Public contact signals | `instagram-email-search` | repeat `--handle`, only shortlisted creators |
- Public follower counts are snapshots, not growth; contact signals are unverified, and absent metrics are not zero.
- Full machine fields belong to `postplus research schema --route <route> --json`;
- consult it only when required for processing, not before every request.
+ Use `postplus research run <route> --help` when flags, enums, or bounds are
+ unclear; inspect `postplus research schema --route <route> --json` only when
+ processing needs exact result fields. `postplus doctor --skill instagram-research`
+ is a diagnostic, not a compulsory preflight. Never use private supplier inputs.
+ Save independent batches separately; run them concurrently only after their
+ inputs are known. Follow the returned structured action for pending/failed
+ operations; resume the same operation, not a replacement submission.
<!-- BEGIN GENERATED EXECUTION EXAMPLE -->
```bash
postplus research run instagram-comments \
--url "https://example.com/source" \
--wait \
--output ./result.json
```
Follow the CLI's structured result and reported next action; do not infer recovery from free-text messages.
Reuse explicit user approval that already covers the requested scope and maximum cost; otherwise obtain approval before confirming a quote. Never infer spending authorization from a task alone.
Resume the same operation through its returned checkpoint or action; never resubmit uncertain work, repeat exhausted recovery, or switch providers to bypass failure.
<!-- END GENERATED EXECUTION EXAMPLE -->