Bluesky Cascade Fetch
Use the CLI-owned bluesky.public-posts/fetch-cascades operation. This Skill
supplies intent routing and result-use boundaries only; the CLI TypeScript 7
runtime owns source discovery, schemas, endpoint policy, pagination, retries,
normalization, limits, partial results, and receipts.
Before running
- Read
references/tiangong-data-requirement.json.
- Use the caller- or workspace-resolved stable CLI. The requirement declares
compatible capability and operation contract majors; it does not select a
package build.
- Run
data describe with that same CLI. Continue only when the capability
ID and required contract majors match, and copy the exact current
capability/operation versions from that response into the run request.
tiangong-ai data describe bluesky.public-posts --json
Use the current Discovery Metadata to confirm source coverage, freshness,
restrictions, selection hints, provides, and doesNotProvide. Do not rely on
provider facts remembered from an older Skill revision.
Choose the seed source
- Use
search when the user supplied a topic or query.
- Use
author-feed only for a named public actor view.
- Use
feed only when the caller supplied a known public feed-generator AT-URI.
- Use
list-feed only when the caller supplied a known public list AT-URI.
- Enable thread expansion only when visible reply topology is needed. Prefer
seed-only retrieval when discovery breadth matters more than cascades.
- Preserve an explicit user time window and filters. Never widen or replace
them silently.
- When diagnosing an empty historical search, repeat the same bounded request
with
source.applyServerTimeFilter set to false. Keep the client-side time
window unchanged and classify any still-empty result as provider coverage,
not proof that no discussion occurred.
Prepare the request
Build one tiangong.data.run-request.v1 envelope and validate it against the
current input schema from data describe. Replace both version placeholders
with the exact versions from the same data describe response.
{
"schemaVersion": "tiangong.data.run-request.v1",
"capabilityId": "bluesky.public-posts",
"capabilityVersion": "<describe.manifest.capabilityVersion>",
"operationId": "fetch-cascades",
"operationVersion": "<describe.manifest.operations[0].operationVersion>",
"input": {
"source": {
"mode": "search",
"query": "climate policy",
"sort": "latest",
"language": "en",
"tags": ["climate"],
"applyServerTimeFilter": true
},
"startDateTime": "2026-03-10T00:00:00Z",
"endDateTime": "2026-03-11T00:00:00Z",
"pageSize": 50,
"expandThreads": true,
"maxThreads": 20,
"threadDepth": 8,
"threadParentHeight": 5
}
}
Do not put an endpoint override, credential, output path, scheduler, or
provider-specific field absent from the schema into the request. Persistence
and recurring collection belong to the caller.
Run
tiangong-ai data run bluesky.public-posts fetch-cascades \
--input /absolute/path/to/request.json --json
Preserve the complete tiangong.data.run-result.v1 envelope, including
contract, warnings, errors, summary, and receipt, when handing results
to another workflow.
Result boundaries
- Treat search ranking, feed selection, visibility, timestamps, counters, and
thread nodes as mutable provider snapshots, not exhaustive or verified facts.
- Surface blocked/not-found nodes, failed threads, empty results,
partial, and
truncation. Never reinterpret them as complete absence or complete coverage.
- Retain
hitsTotal, per-page invalid-record counts, cascade validation, and
the fallback-host indicator; they are acquisition diagnostics, not evidence
quality scores.
- Public posts can contain personal, sensitive, misleading, or unsafe content.
Quote or retain only what the task requires and preserve provenance.
- Reply topology is a visible snapshot. Do not infer causation, influence,
representativeness, identity, or sentiment labels from it alone.
- Use a separately governed repository/firehose workflow for exhaustive AT
Protocol records and a content workflow for media or linked pages.
- Cross-source comparison, evidence admission, persistence, polling, and
research conclusions belong to the caller or Auto Research.
Reference
references/tiangong-data-requirement.json: stable capability requirement; it is not a package lock.
1---2name: bluesky-cascade-fetch3description: Fetch bounded public Bluesky post seeds and optional visible reply cascades through the Tiangong CLI. Use for topic, author, custom-feed, or list-feed discussion reconnaissance and reply-topology collection; do not use for private or exhaustive repository/firehose data, media downloads, representative opinion, identity or fact verification, sentiment ground truth, or causal inference.4---5
6# Bluesky Cascade Fetch
7
8Use the CLI-owned `bluesky.public-posts/fetch-cascades` operation. This Skill
9supplies intent routing and result-use boundaries only; the CLI TypeScript 7
10runtime owns source discovery, schemas, endpoint policy, pagination, retries,
11normalization, limits, partial results, and receipts.
12
13## Before running
14
151. Read `references/tiangong-data-requirement.json`.
162. Use the caller- or workspace-resolved stable CLI. The requirement declares
17 compatible capability and operation contract majors; it does not select a
18 package build.
193. Run `data describe` with that same CLI. Continue only when the capability
20 ID and required contract majors match, and copy the exact current
21 capability/operation versions from that response into the run request.
22
23```bash
24tiangong-ai data describe bluesky.public-posts --json
25```
26
27Use the current Discovery Metadata to confirm source coverage, freshness,
28restrictions, selection hints, `provides`, and `doesNotProvide`. Do not rely on
29provider facts remembered from an older Skill revision.
30
31## Choose the seed source
32
33- Use `search` when the user supplied a topic or query.
34- Use `author-feed` only for a named public actor view.
35- Use `feed` only when the caller supplied a known public feed-generator AT-URI.
36- Use `list-feed` only when the caller supplied a known public list AT-URI.
37- Enable thread expansion only when visible reply topology is needed. Prefer
38 seed-only retrieval when discovery breadth matters more than cascades.
39- Preserve an explicit user time window and filters. Never widen or replace
40 them silently.
41- When diagnosing an empty historical search, repeat the same bounded request
42 with `source.applyServerTimeFilter` set to `false`. Keep the client-side time
43 window unchanged and classify any still-empty result as provider coverage,
44 not proof that no discussion occurred.
45
46## Prepare the request
47
48Build one `tiangong.data.run-request.v1` envelope and validate it against the
49current input schema from `data describe`. Replace both version placeholders
50with the exact versions from the same `data describe` response.
51
52```json
53{
54 "schemaVersion": "tiangong.data.run-request.v1",
55 "capabilityId": "bluesky.public-posts",
56 "capabilityVersion": "<describe.manifest.capabilityVersion>",
57 "operationId": "fetch-cascades",
58 "operationVersion": "<describe.manifest.operations[0].operationVersion>",
59 "input": {
60 "source": {
61 "mode": "search",
62 "query": "climate policy",
63 "sort": "latest",
64 "language": "en",
65 "tags": ["climate"],
66 "applyServerTimeFilter": true
67 },
68 "startDateTime": "2026-03-10T00:00:00Z",
69 "endDateTime": "2026-03-11T00:00:00Z",
70 "pageSize": 50,
71 "expandThreads": true,
72 "maxThreads": 20,
73 "threadDepth": 8,
74 "threadParentHeight": 5
75 }
76}
77```
78
79Do not put an endpoint override, credential, output path, scheduler, or
80provider-specific field absent from the schema into the request. Persistence
81and recurring collection belong to the caller.
82
83## Run
84
85```bash
86tiangong-ai data run bluesky.public-posts fetch-cascades \
87 --input /absolute/path/to/request.json --json
88```
89
90Preserve the complete `tiangong.data.run-result.v1` envelope, including
91`contract`, `warnings`, `errors`, `summary`, and `receipt`, when handing results
92to another workflow.
93
94## Result boundaries
95
96- Treat search ranking, feed selection, visibility, timestamps, counters, and
97 thread nodes as mutable provider snapshots, not exhaustive or verified facts.
98- Surface blocked/not-found nodes, failed threads, empty results, `partial`, and
99 truncation. Never reinterpret them as complete absence or complete coverage.
100- Retain `hitsTotal`, per-page invalid-record counts, cascade validation, and
101 the fallback-host indicator; they are acquisition diagnostics, not evidence
102 quality scores.
103- Public posts can contain personal, sensitive, misleading, or unsafe content.
104 Quote or retain only what the task requires and preserve provenance.
105- Reply topology is a visible snapshot. Do not infer causation, influence,
106 representativeness, identity, or sentiment labels from it alone.
107- Use a separately governed repository/firehose workflow for exhaustive AT
108 Protocol records and a content workflow for media or linked pages.
109- Cross-source comparison, evidence admission, persistence, polling, and
110 research conclusions belong to the caller or Auto Research.
111
112## Reference
113
114- `references/tiangong-data-requirement.json`: stable capability requirement; it is not a package lock.