X Research
Use this as the X research entrypoint when the user needs public evidence for a
marketing, creator, audience, competitor, campaign, or localization decision.
Apply shared rulebook and user-guidance rules from postplus-shared.
When a supported command completes but evidence is empty, sparse, noisy,
off-topic, or the wrong record type, apply the postplus-shared reference
research-quality-recovery.md; hard execution errors still fail fast.
Reference Index
Always apply references/shared-contract.md before running a route.
| User asks for |
Apply |
| Known account, competitor account, account comparison |
references/account-and-competitor-audit.md |
| Public posts, hooks, formats, topics, competitor content |
references/organic-benchmark.md |
| Replies, audience voice, objections, FAQ, phrase bank |
references/audience-voice.md |
| Creators, experts, operators, partners, profile verification |
references/creator-discovery.md |
| Launch, hashtag, mention, brand or competitor campaign |
references/campaign-scout.md |
| Market, region, language, or cross-border comparison |
references/market-localization-scout.md |
| Profile facts only |
Apply references/shared-contract.md, then use x-profiles for known accounts or x-user-search for recall |
| Private accounts, DMs, hidden analytics, full follower graphs, ad spend, targeting, conversion, or ROAS |
Stop or ask for a supported public X scope |
| Cross-platform request |
Run only the X lane here; hand off other platforms |
First Question
Ask one question only when the answer changes platform, route,
public/private boundary, first-pass scope, or output shape.
| Missing |
Ask |
| Platform |
Which platform should I use first? |
| X seed |
Please give one X seed: keyword, hashtag, handle, profile/post URL, competitor, campaign term, or creator criteria. |
| Account audit without account |
Send the X handle/profile URL, or tell me the brand and closest competitors to use as recall seeds. |
| Audience voice without thread |
Send a public X post URL, or give a query so I can shortlist one to three threads first. |
| Creator discovery without seed |
Give one niche, topic, product, competitor, audience, or collaboration goal. |
| Localization without market |
Which market or language should I compare first? |
Do not ask for credentials, implementation choices, schemas, hidden
fields, private exports, cookies, or retry strategy.
Run Discipline
- Route the request with the table above.
- Apply
references/shared-contract.md.
- Apply the selected workflow reference.
- Run the narrowest collection chain that answers the first pass.
- Stop after the first pass and report scope, evidence, limits, and next action.
Result record shapes are documented in the postplus-shared reference
dataset-item-schemas.md; consult it before processing results, and inspect one
real record only to verify.
Do not present a bounded sample as full-platform truth. Use only the public
filters shown by the selected route.
Public Command Boundary
- Readiness diagnostics:
postplus doctor --skill x-research.
- Inspect a route with
postplus research run <route> --help only when its
semantic flags are not already clear.
- Run
postplus research run <route> --<query/handle/url flags> --limit <n> --wait --output <result.json>.
- Use only the semantic flags shown by the selected route.
- Resume a pending run with
postplus research run --resume-from <result.json>; never extract or
rewrite the opaque handle stored in that checkpoint.
- Keep the first pass bounded. If a command fails, report the exact error and
stop; do not silently swap sources or invent missing data.
- If the CLI returns a quote-confirmation challenge, run
postplus quote confirm --json --challenge-file <challenge.json> and retry
with the returned token.
postplus research run x-posts \
--wait \
--output ./result.json
1---2name: x-research3description: Route and run bounded public X research for posts, threads and replies, account audits, organic benchmarks, audience voice, creator discovery, campaign scouting, and market localization.4---56# X Research78Use this as the X research entrypoint when the user needs public evidence for a9marketing, creator, audience, competitor, campaign, or localization decision.1011Apply shared rulebook and user-guidance rules from `postplus-shared`.12When a supported command completes but evidence is empty, sparse, noisy,13off-topic, or the wrong record type, apply the `postplus-shared` reference14`research-quality-recovery.md`; hard execution errors still fail fast.1516## Reference Index1718Always apply `references/shared-contract.md` before running a route.1920| User asks for | Apply |21| --- | --- |22| Known account, competitor account, account comparison | `references/account-and-competitor-audit.md` |23| Public posts, hooks, formats, topics, competitor content | `references/organic-benchmark.md` |24| Replies, audience voice, objections, FAQ, phrase bank | `references/audience-voice.md` |25| Creators, experts, operators, partners, profile verification | `references/creator-discovery.md` |26| Launch, hashtag, mention, brand or competitor campaign | `references/campaign-scout.md` |27| Market, region, language, or cross-border comparison | `references/market-localization-scout.md` |28| Profile facts only | Apply `references/shared-contract.md`, then use `x-profiles` for known accounts or `x-user-search` for recall |29| Private accounts, DMs, hidden analytics, full follower graphs, ad spend, targeting, conversion, or ROAS | Stop or ask for a supported public X scope |30| Cross-platform request | Run only the X lane here; hand off other platforms |3132## First Question3334Ask one question only when the answer changes platform, route,35public/private boundary, first-pass scope, or output shape.3637| Missing | Ask |38| --- | --- |39| Platform | `Which platform should I use first?` |40| X seed | `Please give one X seed: keyword, hashtag, handle, profile/post URL, competitor, campaign term, or creator criteria.` |41| Account audit without account | `Send the X handle/profile URL, or tell me the brand and closest competitors to use as recall seeds.` |42| Audience voice without thread | `Send a public X post URL, or give a query so I can shortlist one to three threads first.` |43| Creator discovery without seed | `Give one niche, topic, product, competitor, audience, or collaboration goal.` |44| Localization without market | `Which market or language should I compare first?` |4546Do not ask for credentials, implementation choices, schemas, hidden47fields, private exports, cookies, or retry strategy.4849## Run Discipline50511. Route the request with the table above.522. Apply `references/shared-contract.md`.533. Apply the selected workflow reference.544. Run the narrowest collection chain that answers the first pass.555. Stop after the first pass and report scope, evidence, limits, and next action.5657Result record shapes are documented in the `postplus-shared` reference58`dataset-item-schemas.md`; consult it before processing results, and inspect one59real record only to verify.6061Do not present a bounded sample as full-platform truth. Use only the public62filters shown by the selected route.6364## Public Command Boundary6566- Readiness diagnostics: `postplus doctor --skill x-research`.67- Inspect a route with `postplus research run <route> --help` only when its68 semantic flags are not already clear.69- Run `postplus research run <route> --<query/handle/url flags> --limit <n>70 --wait --output <result.json>`.71- Use only the semantic flags shown by the selected route.72- Resume a pending run with73 `postplus research run --resume-from <result.json>`; never extract or74 rewrite the opaque handle stored in that checkpoint.75- Keep the first pass bounded. If a command fails, report the exact error and76 stop; do not silently swap sources or invent missing data.77- If the CLI returns a quote-confirmation challenge, run78 `postplus quote confirm --json --challenge-file <challenge.json>` and retry79 with the returned token.8081<!-- BEGIN GENERATED EXECUTION EXAMPLE -->82```bash83postplus research run x-posts \84 --wait \85 --output ./result.json86```87<!-- END GENERATED EXECUTION EXAMPLE -->