opencode-skills-collection 4.0.29 → 4.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "updatedAt": "2026-08-12T00:55:43.080Z",
3
+ "updatedAt": "2026-08-14T00:56:33.364Z",
4
4
  "entries": [
5
5
  "00-andruia-consultant",
6
6
  "007",
@@ -161,6 +161,7 @@
161
161
  "astro",
162
162
  "astropy",
163
163
  "async-python-patterns",
164
+ "atlas-cloud-media",
164
165
  "atlas-contract",
165
166
  "atlas-ledger",
166
167
  "attack-tree-construction",
@@ -1883,6 +1884,7 @@
1883
1884
  "update-swiftui-apis",
1884
1885
  "upgrading-expo",
1885
1886
  "upstash-qstash",
1887
+ "us-property-data",
1886
1888
  "usage-based-pricing",
1887
1889
  "use-dom",
1888
1890
  "user-thoughts",
@@ -0,0 +1,257 @@
1
+ ---
2
+ name: atlas-cloud-media
3
+ description: "Generate Atlas Cloud images and videos through its asynchronous media API with schema-first model selection and credential-safe polling."
4
+ category: media
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-08-12"
9
+ author: binyangzhu000-sudo
10
+ tags: [atlas-cloud, image-generation, video-generation, media-api]
11
+ tools: [claude, codex, cursor, gemini]
12
+ ---
13
+
14
+ # Atlas Cloud Media
15
+
16
+ ## Overview
17
+
18
+ Use Atlas Cloud's asynchronous media API to generate images or videos. This
19
+ source-only skill describes model discovery, schema validation, task
20
+ submission, bounded polling, and safe output retrieval; it does not bundle an
21
+ SDK, executable, or hosted runtime.
22
+
23
+ ## When to Use This Skill
24
+
25
+ - Use when the user explicitly asks to generate an image or video with Atlas
26
+ Cloud.
27
+ - Use when an existing workflow needs an Atlas Cloud image or video generation
28
+ request and can make HTTPS calls.
29
+ - Use when model-specific parameters must be discovered before submission.
30
+ - Do not use this skill for OpenAI-compatible text chat; that API has a
31
+ different base URL and contract.
32
+
33
+ ## Preconditions
34
+
35
+ 1. Confirm the user is authorized to send the prompt and any reference media
36
+ to a third-party service.
37
+ 2. Explain that generation is paid and obtain approval before submitting a
38
+ billable request.
39
+ 3. Require `ATLASCLOUD_API_KEY` to be present in the environment. Never ask the
40
+ user to paste it into chat, source files, command history, or logs.
41
+ 4. Confirm the output directory and whether the user wants image generation,
42
+ video generation, or both.
43
+
44
+ ## API Contract
45
+
46
+ | Operation | Method and endpoint |
47
+ | --- | --- |
48
+ | List models | `GET https://api.atlascloud.ai/api/v1/models` |
49
+ | Generate image | `POST https://api.atlascloud.ai/api/v1/model/generateImage` |
50
+ | Generate video | `POST https://api.atlascloud.ai/api/v1/model/generateVideo` |
51
+ | Poll task | `GET https://api.atlascloud.ai/api/v1/model/prediction/{id}` |
52
+
53
+ Generation and polling requests use these headers:
54
+
55
+ ```text
56
+ Authorization: Bearer $ATLASCLOUD_API_KEY
57
+ Content-Type: application/json
58
+ ```
59
+
60
+ The model catalog is public. Each catalog entry includes a `schema` URL; fetch
61
+ that schema and validate parameters against it before sending a paid request.
62
+ Do not guess parameters from another model, because names such as `size`,
63
+ `ratio`, `aspect_ratio`, `image`, and `image_url` are model-specific.
64
+
65
+ ## Workflow
66
+
67
+ ### 1. Discover and Validate a Model
68
+
69
+ Fetch the catalog, filter by `type` (`Image` or `Video`), and match the user's
70
+ requested capability. Read the selected entry's `schema`, verify that all
71
+ required fields are present, and show the model and billable action to the user
72
+ before submission.
73
+
74
+ Example discovery request:
75
+
76
+ ```bash
77
+ curl --fail --silent --show-error \
78
+ "https://api.atlascloud.ai/api/v1/models" \
79
+ --output /tmp/atlas-models.json
80
+
81
+ jq -r '.data[] | select(.type == "Image") | [.model, .displayName, .schema] | @tsv' \
82
+ /tmp/atlas-models.json
83
+ ```
84
+
85
+ ### 2. Submit One Generation Task
86
+
87
+ Build the JSON body in a file so that quoting is deterministic and request
88
+ details can be reviewed without exposing the API key.
89
+
90
+ Image example using a catalog-confirmed model:
91
+
92
+ ```bash
93
+ jq -n \
94
+ --arg model "qwen-image-3.0/text-to-image" \
95
+ --arg prompt "A paper-cut city map in blue and white, clean editorial style" \
96
+ '{model: $model, prompt: $prompt, size: "1024*1024", n: 1}' \
97
+ > /tmp/atlas-image-request.json
98
+
99
+ curl --fail --silent --show-error \
100
+ --request POST \
101
+ "https://api.atlascloud.ai/api/v1/model/generateImage" \
102
+ --header "Authorization: Bearer $ATLASCLOUD_API_KEY" \
103
+ --header "Content-Type: application/json" \
104
+ --data @/tmp/atlas-image-request.json \
105
+ --output /tmp/atlas-submit.json
106
+ ```
107
+
108
+ Video example using a catalog-confirmed model:
109
+
110
+ ```bash
111
+ jq -n \
112
+ --arg model "bytedance/seedance-2.0-fast/text-to-video" \
113
+ --arg prompt "A small paper boat crossing a calm pond, locked camera" \
114
+ '{
115
+ model: $model,
116
+ prompt: $prompt,
117
+ duration: 4,
118
+ resolution: "480p",
119
+ ratio: "16:9",
120
+ generate_audio: false,
121
+ watermark: false
122
+ }' > /tmp/atlas-video-request.json
123
+
124
+ curl --fail --silent --show-error \
125
+ --request POST \
126
+ "https://api.atlascloud.ai/api/v1/model/generateVideo" \
127
+ --header "Authorization: Bearer $ATLASCLOUD_API_KEY" \
128
+ --header "Content-Type: application/json" \
129
+ --data @/tmp/atlas-video-request.json \
130
+ --output /tmp/atlas-submit.json
131
+ ```
132
+
133
+ Check that `.data.id` is a non-empty string before polling. Treat a non-2xx
134
+ response or a missing ID as submission failure; do not retry a billable request
135
+ automatically because the original task may still have been accepted.
136
+
137
+ ### 3. Poll with a Deadline
138
+
139
+ Poll every three seconds. Accept `completed` or `succeeded` as success, stop on
140
+ `failed` or `timeout`, and stop after ten minutes. Preserve the prediction ID
141
+ for diagnostics, but never log request headers or the API key.
142
+
143
+ ```bash
144
+ prediction_id=$(jq -er '.data.id | select(type == "string" and length > 0)' \
145
+ /tmp/atlas-submit.json)
146
+
147
+ for attempt in $(seq 1 200); do
148
+ sleep 3
149
+ curl --fail --silent --show-error \
150
+ "https://api.atlascloud.ai/api/v1/model/prediction/$prediction_id" \
151
+ --header "Authorization: Bearer $ATLASCLOUD_API_KEY" \
152
+ --output /tmp/atlas-prediction.json
153
+
154
+ status=$(jq -r '.data.status // "unknown"' /tmp/atlas-prediction.json)
155
+ case "$status" in
156
+ completed|succeeded) break ;;
157
+ failed|timeout)
158
+ jq -r '.data.error // "Atlas Cloud generation failed"' \
159
+ /tmp/atlas-prediction.json >&2
160
+ exit 1
161
+ ;;
162
+ esac
163
+ done
164
+
165
+ test "$status" = "completed" || test "$status" = "succeeded"
166
+ ```
167
+
168
+ ### 4. Download and Verify the Output
169
+
170
+ Read the first HTTPS URL from `.data.outputs`. Atlas output URLs are temporary,
171
+ so download promptly. Do not send `Authorization` or any other Atlas request
172
+ headers to the output host. Reject non-HTTPS URLs and inspect the downloaded
173
+ file's content type and size before treating it as a valid deliverable.
174
+
175
+ ```bash
176
+ output_url=$(jq -er '.data.outputs[0] | select(startswith("https://"))' \
177
+ /tmp/atlas-prediction.json)
178
+
179
+ curl --fail --silent --show-error --location \
180
+ "$output_url" \
181
+ --output ./atlas-output.bin
182
+
183
+ test -s ./atlas-output.bin
184
+ file ./atlas-output.bin
185
+ ```
186
+
187
+ Rename the file only after its detected type is known. Report the local path,
188
+ model ID, dimensions or duration, and whether the output passed basic playback
189
+ or decode validation.
190
+
191
+ ## Failure Handling
192
+
193
+ - `401` or `403`: stop and ask the user to verify access. Do not print or rotate
194
+ the key automatically.
195
+ - `400` or `422`: fetch the model's current schema and correct the payload. Do
196
+ not blindly resubmit.
197
+ - `429`: stop and report rate limiting; respect any `Retry-After` value.
198
+ - `5xx` or network timeout: first poll a known prediction ID. Do not create a
199
+ second paid task unless the user approves the possible duplicate charge.
200
+ - `failed` or `timeout`: report the sanitized service error and prediction ID;
201
+ do not claim an output was generated.
202
+ - Missing or invalid media: keep the original response for diagnosis, do not
203
+ overwrite an existing destination, and do not mark the task complete.
204
+
205
+ ## Best Practices
206
+
207
+ - Use the public catalog and per-model schema immediately before generation.
208
+ - Submit one task at a time unless the user explicitly approves a batch and its
209
+ cost.
210
+ - Keep prompts, reference-media rights, and provider content policies visible
211
+ in the approval step.
212
+ - Use short polling intervals only while a task is active; always enforce a
213
+ deadline.
214
+ - Download expiring outputs promptly and validate them locally.
215
+ - Never forward the Atlas bearer token to CDN or user-supplied URLs.
216
+
217
+ ## Limitations
218
+
219
+ - This source-only skill provides operational instructions, not an installed
220
+ Atlas Cloud client, bundled script, queue worker, or retry service.
221
+ - Available models, schemas, prices, and output retention can change; the live
222
+ catalog is authoritative.
223
+ - Model availability does not guarantee a prompt or reference asset is allowed.
224
+ - Generation is asynchronous and may take several minutes.
225
+ - Basic file checks do not replace human review of media quality, factual
226
+ accuracy, rights, or safety.
227
+
228
+ ## Security & Safety Notes
229
+
230
+ - Treat prompts and uploaded media as data sent to a third party; obtain user
231
+ consent first and avoid unnecessary personal or confidential information.
232
+ - Keep credentials in environment variables or an approved secret manager.
233
+ - Redact authorization headers and signed output URLs from logs and bug reports.
234
+ - Never execute downloaded media as code, and never use this workflow for bulk
235
+ hosting or unrelated file transfer.
236
+ - Follow applicable laws, provider policies, and intellectual-property rights.
237
+
238
+ ## Common Pitfalls
239
+
240
+ - **Problem:** A payload copied from another model returns a validation error.
241
+ **Solution:** Fetch the selected catalog entry's current `schema` and rebuild
242
+ the request from that schema.
243
+ - **Problem:** A network timeout causes a duplicate paid request.
244
+ **Solution:** Preserve and poll the original prediction ID before considering
245
+ a resubmission.
246
+ - **Problem:** The downloaded file is HTML or JSON instead of media.
247
+ **Solution:** Check the HTTP status, content type, file signature, and size
248
+ before renaming or publishing it.
249
+ - **Problem:** Output download leaks the API key to another host.
250
+ **Solution:** Use a fresh download request with no Atlas authorization header.
251
+
252
+ ## Related Skills
253
+
254
+ - `@video-router` - Decide whether a request should use generated video before
255
+ submitting a billable task.
256
+ - `@image-studio` - Plan and review image-production work around generated
257
+ assets.
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  title: Jetski/Cortex + Gemini Integration Guide
3
- description: "Use agentic-awesome-skills with Jetski/Cortex without hitting context-window overflow with 2,007+ skills."
3
+ description: "Use agentic-awesome-skills with Jetski/Cortex without hitting context-window overflow with 2,009+ skills."
4
4
  ---
5
5
 
6
- # Jetski/Cortex + Gemini: safe integration with 2,007+ skills
6
+ # Jetski/Cortex + Gemini: safe integration with 2,009+ skills
7
7
 
8
8
  > **Custom-host integration:** This guide documents a low-level, direct-manifest lazy loader for Jetski/Cortex and similar hosts. For Codex or Claude Code, the recommended path is [AAS Core](../users/aas-core.md), which provides neutral, deterministic catalog retrieval and validates exact agent-selected IDs through a bounded, read-only MCP server.
9
9
 
@@ -25,7 +25,7 @@ Never do:
25
25
  - concatenate all `SKILL.md` content into a single system prompt;
26
26
  - re-inject the entire library for **every** request.
27
27
 
28
- With 2,007+ skills, this approach fills the context window before user messages are even added, causing truncation.
28
+ With 2,009+ skills, this approach fills the context window before user messages are even added, causing truncation.
29
29
 
30
30
  ---
31
31
 
@@ -23,7 +23,7 @@ This example shows one way to integrate **agentic-awesome-skills** with a Jetski
23
23
  - How to enforce a **maximum number of skills per turn** via `maxSkillsPerTurn`.
24
24
  - How to choose whether to **truncate or error** when too many skills are requested via `overflowBehavior`.
25
25
 
26
- This pattern avoids context overflow when you have 2,007+ skills installed.
26
+ This pattern avoids context overflow when you have 2,009+ skills installed.
27
27
 
28
28
  Manifest contract references:
29
29
 
@@ -29,7 +29,7 @@ Preferred homepage:
29
29
  Preferred social preview:
30
30
 
31
31
  - lead with `AAS Core` and the profile → stack → plan flow;
32
- - present `2,007+ Agentic Skills` as supporting catalog evidence, not a second product;
32
+ - present `2,009+ Agentic Skills` as supporting catalog evidence, not a second product;
33
33
  - mention Codex and Claude as the current Core agent path, with broader host compatibility as distribution support;
34
34
  - avoid dense text and tiny logos that disappear in social cards.
35
35
 
@@ -72,7 +72,7 @@ The update process refreshes:
72
72
  - Canonical skills index (`skills_index.json`)
73
73
  - Compatibility mirror (`data/skills_index.json`)
74
74
  - Web app skills data (`apps\web-app\public\skills.json`)
75
- - All 2,007+ skills from the skills directory
75
+ - All 2,009+ skills from the skills directory
76
76
 
77
77
  ## When to Update
78
78
 
@@ -30,7 +30,7 @@ AAS MCP does not scan the repository and does not decide which skills are best.
30
30
  > **Release boundary:** AAS Core landed after release 14.6.0. Use an exact Core-capable release rather than an unreviewed moving tag.
31
31
 
32
32
  ```bash
33
- npm exec --yes --ignore-scripts --package=agentic-awesome-skills@15.12.0 -- aas mcp configure \
33
+ npm exec --yes --ignore-scripts --package=agentic-awesome-skills@15.13.0 -- aas mcp configure \
34
34
  --host codex \
35
35
  --scope user \
36
36
  --config /absolute/path/to/codex/config.toml \
@@ -1064,4 +1064,4 @@ Found a skill that should be in a bundle? Or want to create a new bundle? [Open
1064
1064
 
1065
1065
  ---
1066
1066
 
1067
- _Last updated: June 2026 | Total Skills: 2,007+ | Total Bundles: 58_
1067
+ _Last updated: June 2026 | Total Skills: 2,009+ | Total Bundles: 58_
@@ -17,7 +17,7 @@ Configure AAS Core for Claude Code, describe the task and constraints, let Claud
17
17
  - It lets Claude search the verified local catalog without loading the full library into context.
18
18
  - It preserves Claude's exact selection without using metadata as an eligibility gate.
19
19
  - It keeps MCP discovery read-only and CLI changes approval-gated.
20
- - It includes 2,007+ skills instead of a narrow single-domain starter pack.
20
+ - It includes 2,009+ skills instead of a narrow single-domain starter pack.
21
21
  - It supports the standard `.claude/skills/` path and the Claude Code plugin marketplace flow.
22
22
  - It also ships generated bundle plugins so teams can install focused packs like `Essentials` or `Security Developer` from the marketplace metadata.
23
23
  - It includes onboarding docs, bundles, and workflows so new users do not need to guess where to begin.
@@ -304,6 +304,10 @@ To manage a reproducible exact set and inspect every install, update, or removal
304
304
  npx agentic-awesome-skills@14.3.0 --path .agents/skills --release 14.3.0 --skills frontend-design,backend-dev-guidelines --dry-run
305
305
  ```
306
306
 
307
+ Default and `--release` installs fail closed unless the cloned Git commit matches
308
+ the immutable `gitHead` recorded for that exact npm version. `--tag` intentionally
309
+ accepts mutable Git refs and prints a warning because it skips that identity check.
310
+
307
311
  Remove `--dry-run` only after reviewing the plan.
308
312
 
309
313
  To review a Core stack manifest or immutable plan visually, use the hosted [Skill Workbench](https://sickn33.github.io/agentic-awesome-skills/workbench). It imports the JSON in browser memory and checks the supported artifact structure; it does not assemble a stack, generate install commands, access the filesystem, or install skills.
@@ -12,7 +12,7 @@ Install into the Gemini skills path, then ask Gemini to apply one skill at a tim
12
12
 
13
13
  - It installs directly into the expected Gemini skills path.
14
14
  - It includes both core software engineering skills and deeper agent/LLM-oriented skills.
15
- - It helps new users get started with bundles and workflows rather than forcing a cold start from 2,007+ files.
15
+ - It helps new users get started with bundles and workflows rather than forcing a cold start from 2,009+ files.
16
16
  - It is useful whether you want a broad internal skill library or a single repo to test many workflows quickly.
17
17
 
18
18
  ## Install Gemini CLI Skills
@@ -210,7 +210,7 @@ A: Use the activation flow in [agent-overload-recovery.md](agent-overload-recove
210
210
  A: The Antigravity CLI reads skill directories from `~/.gemini/antigravity-cli/skills/<skill>/SKILL.md`. Run `npx agentic-awesome-skills --agy`, restart `agy`, then open `/skills` or type a specific slash command such as `/brainstorming`.
211
211
 
212
212
  **Q: What if OpenCode or another `.agents/skills` host becomes unstable with a full install?**
213
- A: Start with a reduced install instead of copying the whole library. For example: `npx agentic-awesome-skills --path .agents/skills --category development,backend --risk safe,none`. You can narrow further with `--tags` and use a trailing `-` to exclude values such as `typescript-`. To manage a reproducible exact set, first preview it with `npx agentic-awesome-skills@14.3.0 --path .agents/skills --release 14.3.0 --skills frontend-design,backend-dev-guidelines --dry-run`, then remove `--dry-run` only after reviewing the plan.
213
+ A: Start with a reduced install instead of copying the whole library. For example: `npx agentic-awesome-skills --path .agents/skills --category development,backend --risk safe,none`. You can narrow further with `--tags` and use a trailing `-` to exclude values such as `typescript-`. To manage a reproducible exact set, first preview it with `npx agentic-awesome-skills@14.3.0 --path .agents/skills --release 14.3.0 --skills frontend-design,backend-dev-guidelines --dry-run`, then remove `--dry-run` only after reviewing the plan. Default and `--release` installs verify the cloned commit against the exact npm release's immutable `gitHead`; `--tag` is an explicit mutable-ref escape hatch and is not release-identity verified.
214
214
 
215
215
  **Q: Is this free?**
216
216
  A: Yes. Original code and tooling are MIT-licensed, and original documentation/non-code written content is CC BY 4.0. See [../../LICENSE](../../LICENSE) and [../../LICENSE-CONTENT](../../LICENSE-CONTENT).
@@ -18,7 +18,7 @@ Kiro is AWS's agentic AI IDE that combines:
18
18
 
19
19
  Kiro's agentic capabilities are enhanced by skills that provide:
20
20
 
21
- - **Domain expertise** across 2,007+ specialized areas
21
+ - **Domain expertise** across 2,009+ specialized areas
22
22
  - **Best practices** from Anthropic, OpenAI, Google, Microsoft, and AWS
23
23
  - **Workflow automation** for common development tasks
24
24
  - **AWS-specific patterns** for serverless, infrastructure, and cloud architecture
@@ -39,7 +39,7 @@ If you came in through a **Claude Code** or **Codex** plugin instead of AAS Core
39
39
 
40
40
  When you ran `npx agentic-awesome-skills` or cloned the repository, you:
41
41
 
42
- ✅ **Downloaded 2,007+ skill files** to your computer (default: `~/.agents/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
42
+ ✅ **Downloaded 2,009+ skill files** to your computer (default: `~/.agents/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
43
43
  ✅ **Made them available** to your AI assistant
44
44
  ❌ **Did NOT enable them all automatically** (they're just sitting there, waiting)
45
45
 
@@ -231,7 +231,7 @@ Let's actually use a skill right now. Follow these steps:
231
231
 
232
232
  ## Direct-install Step 5: Pick Skills Manually
233
233
 
234
- Don't try to use all 2,007+ skills at once. Here's a sensible approach:
234
+ Don't try to use all 2,009+ skills at once. Here's a sensible approach:
235
235
 
236
236
  If you want a tool-specific starting point before choosing skills, use:
237
237
 
@@ -362,7 +362,7 @@ Usually no, but if your AI doesn't recognize a skill:
362
362
 
363
363
  ### "Can I load all skills into the model at once?"
364
364
 
365
- No. Even though you have 2,007+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
365
+ No. Even though you have 2,009+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
366
366
 
367
367
  The intended pattern is:
368
368
 
@@ -40,7 +40,7 @@ agentic-awesome-skills/
40
40
  ├── 📄 CONTRIBUTING.md ← Contributor workflow
41
41
  ├── 📄 CATALOG.md ← Full generated catalog
42
42
 
43
- ├── 📁 skills/ ← 2,007+ skills live here
43
+ ├── 📁 skills/ ← 2,009+ skills live here
44
44
  │ │
45
45
  │ ├── 📁 brainstorming/
46
46
  │ │ └── 📄 SKILL.md ← Skill definition
@@ -53,7 +53,7 @@ agentic-awesome-skills/
53
53
  │ │ └── 📁 2d-games/
54
54
  │ │ └── 📄 SKILL.md ← Nested skills also supported
55
55
  │ │
56
- │ └── ... (2,007+ total)
56
+ │ └── ... (2,009+ total)
57
57
 
58
58
  ├── 📁 apps/
59
59
  │ └── 📁 web-app/ ← Interactive browser
@@ -106,7 +106,7 @@ agentic-awesome-skills/
106
106
 
107
107
  ```
108
108
  ┌─────────────────────────┐
109
- │ 2,007+ SKILLS │
109
+ │ 2,009+ SKILLS │
110
110
  └────────────┬────────────┘
111
111
 
112
112
  ┌────────────────────────┼────────────────────────┐
@@ -207,7 +207,7 @@ If you want a workspace-style manual install instead, cloning into `.agent/skill
207
207
  │ ├── 📁 brainstorming/ │
208
208
  │ ├── 📁 stripe-integration/ │
209
209
  │ ├── 📁 react-best-practices/ │
210
- │ └── ... (2,007+ total) │
210
+ │ └── ... (2,009+ total) │
211
211
  └─────────────────────────────────────────┘
212
212
  ```
213
213
 
@@ -9,8 +9,8 @@
9
9
  "version": "1.0.0",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
- "react": "^19.2.7",
13
- "react-dom": "^19.2.7"
12
+ "react": "^19.2.8",
13
+ "react-dom": "^19.2.8"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@types/react": "^19.2.7",
@@ -814,24 +814,24 @@
814
814
  }
815
815
  },
816
816
  "node_modules/react": {
817
- "version": "19.2.7",
818
- "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz",
819
- "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==",
817
+ "version": "19.2.8",
818
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz",
819
+ "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==",
820
820
  "license": "MIT",
821
821
  "engines": {
822
822
  "node": ">=0.10.0"
823
823
  }
824
824
  },
825
825
  "node_modules/react-dom": {
826
- "version": "19.2.7",
827
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz",
828
- "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==",
826
+ "version": "19.2.8",
827
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz",
828
+ "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==",
829
829
  "license": "MIT",
830
830
  "dependencies": {
831
831
  "scheduler": "^0.27.0"
832
832
  },
833
833
  "peerDependencies": {
834
- "react": "^19.2.7"
834
+ "react": "^19.2.8"
835
835
  }
836
836
  },
837
837
  "node_modules/rolldown": {
@@ -19,8 +19,8 @@
19
19
  "vite": "^8.0.16"
20
20
  },
21
21
  "dependencies": {
22
- "react": "^19.2.7",
23
- "react-dom": "^19.2.7"
22
+ "react": "^19.2.8",
23
+ "react-dom": "^19.2.8"
24
24
  },
25
25
  "overrides": {
26
26
  "picomatch": "4.0.4",
@@ -26,12 +26,11 @@ installations require the manual setup below.
26
26
 
27
27
  ## Version Note
28
28
 
29
- The current public project release is `v0.4.3`. The inspection procedure below
30
- intentionally pins the reviewed, immutable `v0.4.0` image and its recorded
31
- digests; those values are a historical security baseline and must not be
32
- silently replaced with a mutable tag. For a normal provider-free demo, use the
33
- current `v0.4.3` command in the [project README](https://github.com/happy520ai/unified-ai-system#try-it-in-60-seconds).
34
- A new content review is required before changing this pinned procedure.
29
+ The current public project release and latest reviewed immutable MCP image are
30
+ both `v0.4.9`. The inspection procedure below pins its recorded digests; those
31
+ values must not be silently replaced with a mutable tag. Use only the reviewed,
32
+ digest-pinned procedure below, including for a provider-free demo. A new content
33
+ review is required before changing this pinned procedure.
35
34
 
36
35
  ## Prerequisites And Setup
37
36
 
@@ -39,7 +38,7 @@ A new content review is required before changing this pinned procedure.
39
38
  2. If the nine tools are already visible, skip setup and do not register a
40
39
  duplicate server.
41
40
  3. Explain the first stage: it downloads one reviewed platform from the
42
- immutable `0.4.0` multi-platform index into Docker's cache, inspects its
41
+ immutable `0.4.9` multi-platform index into Docker's cache, inspects its
43
42
  metadata and layer history, creates but never starts a temporary container,
44
43
  exports its root filesystem, removes that temporary container, and writes an
45
44
  inspection inventory to a temporary directory. The reviewed platforms are
@@ -49,7 +48,7 @@ A new content review is required before changing this pinned procedure.
49
48
  the inspection. Do not execute the image or register it yet:
50
49
 
51
50
  ```bash
52
- IMAGE='ghcr.io/happy520ai/unified-ai-system/mcp-server@sha256:c185d124d1f672b5cf210a7b7d4c7dbdc907b81a5f7b62fe312a0dc18839e045'
51
+ IMAGE='ghcr.io/happy520ai/unified-ai-system/mcp-server@sha256:751a0d32acd2d6b1da6ad9ac67987fbd1ff36ce26b7160014d8605f18b7907b3'
53
52
  PLATFORM='linux/amd64' # Use linux/arm64 only on a reviewed ARM64 engine.
54
53
  REVIEW_DIR="$(mktemp -d)"
55
54
 
@@ -93,25 +92,25 @@ deletion is another filesystem change and requires approval for the exact path.
93
92
 
94
93
  5. Read every generated inventory and report the inspection before proceeding.
95
94
  Compare it with the versioned
96
- [image content review](https://github.com/happy520ai/unified-ai-system/blob/4bbc5e81d1f372a5c80ba5597973f3284965adf6/docs/security/mcp-image-review-0.4.0.md).
95
+ [image content review](https://github.com/happy520ai/unified-ai-system/blob/8561ec5c9e9d1ecf499c1be5aba0ba3720219074/docs/security/mcp-image-review-0.4.9.md).
97
96
  Require OCI index digest
98
- `sha256:c185d124d1f672b5cf210a7b7d4c7dbdc907b81a5f7b62fe312a0dc18839e045`.
97
+ `sha256:751a0d32acd2d6b1da6ad9ac67987fbd1ff36ce26b7160014d8605f18b7907b3`.
99
98
  For linux/amd64, require manifest digest
100
- `sha256:bb3ba00366a924d511c776986f890d62196ecc380034daf9c42f54000dcc7f2d`
99
+ `sha256:ff6cf988b01d5fb2e97aabe8e952f6a303dcffe650df5b4dcb0ba3d51ee88c06`
101
100
  and config digest
102
- `sha256:3224ec32c8a1407ba704febf897157866f6cabf86fb515d760b0466fe64c9df1`.
101
+ `sha256:0c2c0c7b9c7fb7ca24c73d9a903bcf719b079a0b285a3a3269ee3ae059905e97`.
103
102
  For linux/arm64, require manifest digest
104
- `sha256:2a58da07d11de97a4b4051f4a82ac444e7fefb5235556d7997080c96db2da6ae`
103
+ `sha256:90318b9e373820f863c1c1addc759be4b5ce186f2ecb6232ee502fad7c6613de`
105
104
  and config digest
106
- `sha256:1e480c2b6711283f9571079d96c73f5dfc423a30d86c22d05c0dfd052113a9b7`.
105
+ `sha256:c2047eb63fdc42bcb16d53fca17d78a4a6fb355cf6320b9aa6688e594371054f`.
107
106
  Require source `https://github.com/happy520ai/unified-ai-system`, revision
108
- `9f606b0b4189ef9759bdc01857919c254209e4be`, version `0.4.0`, license
107
+ `342a47313927870bcc696be13c9e5fb922062dac`, version `0.4.9`, license
109
108
  `Apache-2.0`, entrypoint `docker-entrypoint.sh`, and command
110
109
  `node packages/mcp-server/src/index.js`.
111
110
 
112
111
  Report these reviewed risks explicitly: the image uses the default root
113
112
  user; includes Debian shell/package utilities and 11 base-image SUID/SGID
114
- files; contains 519 internal pnpm links, two native Node binaries, and eight
113
+ files; contains 522 internal pnpm links, three native Node binaries, and eight
115
114
  lifecycle-hook declarations; and starts a child gateway with loopback HTTP.
116
115
  The optional `AI_GATEWAY_MCP_URL` can make an HTTP or HTTPS connection only
117
116
  when explicitly passed. The registered command below passes no host files,
@@ -127,7 +126,7 @@ deletion is another filesystem change and requires approval for the exact path.
127
126
  disabled, then inspect the stored configuration:
128
127
 
129
128
  ```bash
130
- IMAGE='ghcr.io/happy520ai/unified-ai-system/mcp-server@sha256:c185d124d1f672b5cf210a7b7d4c7dbdc907b81a5f7b62fe312a0dc18839e045'
129
+ IMAGE='ghcr.io/happy520ai/unified-ai-system/mcp-server@sha256:751a0d32acd2d6b1da6ad9ac67987fbd1ff36ce26b7160014d8605f18b7907b3'
131
130
  PLATFORM='linux/amd64' # Match the reviewed platform inspected above.
132
131
  codex mcp add unified-ai-system -- docker run --rm -i --pull never --platform "$PLATFORM" --network none --cap-drop ALL --security-opt no-new-privileges "$IMAGE"
133
132
  codex mcp get unified-ai-system --json
@@ -200,7 +199,7 @@ Agent:
200
199
  - Treat MCP registration, image pulls, container creation, networking, and
201
200
  teardown as host-state changes that require informed user approval.
202
201
  - Never substitute a mutable tag, a different OCI index, or an unreviewed
203
- platform manifest for the reviewed `0.4.0` identities. Keep download and
202
+ platform manifest for the reviewed `0.4.9` identities. Keep download and
204
203
  inspection approval separate from registration and activation approval.
205
204
  - Keep `--pull never` in the registered command. If the reviewed image is
206
205
  absent from the local cache, fail closed and return to the first approval
@@ -220,7 +219,7 @@ Agent:
220
219
  - The credential-free chat tool proves only the deterministic local fake path.
221
220
  - It does not configure real providers or handle provider credentials.
222
221
  - The published MCP image requires Docker.
223
- - The reviewed `0.4.0` path covers linux/amd64 and linux/arm64. Do not activate
222
+ - The reviewed `0.4.9` path covers linux/amd64 and linux/arm64. Do not activate
224
223
  another platform image without a separate content review.
225
224
  - The image runs as the container's default root user and bundles the gateway
226
225
  source, package-manager tooling, native dependencies, and base-image
@@ -243,4 +242,4 @@ Agent:
243
242
  - [Unified AI System](https://github.com/happy520ai/unified-ai-system)
244
243
  - [60-second Codex MCP quickstart](https://github.com/happy520ai/unified-ai-system/blob/master/docs/codex-mcp-quickstart.md)
245
244
  - [MCP server guide](https://github.com/happy520ai/unified-ai-system/blob/master/packages/mcp-server/README.md)
246
- - [MCP image content review](https://github.com/happy520ai/unified-ai-system/blob/4bbc5e81d1f372a5c80ba5597973f3284965adf6/docs/security/mcp-image-review-0.4.0.md)
245
+ - [MCP image content review](https://github.com/happy520ai/unified-ai-system/blob/8561ec5c9e9d1ecf499c1be5aba0ba3720219074/docs/security/mcp-image-review-0.4.9.md)
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: us-property-data
3
+ description: "Use when a task needs real U.S. residential property data: valuation, listings, price or tax history, schools, or a zillow.com URL."
4
+ category: api-integration
5
+ risk: safe
6
+ source: community
7
+ source_repo: ZeroPointRepo/zillow-skills
8
+ source_type: community
9
+ date_added: "2026-08-12"
10
+ author: zeropointstudio
11
+ tags: [property-data, real-estate, api, zillow]
12
+ tools: [claude, cursor, gemini]
13
+ license: "MIT-0"
14
+ license_source: "https://github.com/ZeroPointRepo/zillow-skills/blob/main/LICENSE"
15
+ ---
16
+
17
+ # U.S. Property Data
18
+
19
+ Gives Copilot a concrete, verifiable way to answer property-data questions in code instead of guessing at them.
20
+
21
+ ## When to Use
22
+
23
+ **Activate this skill when:**
24
+ - A task needs a real valuation, rent estimate or comparable for a specific U.S. address
25
+ - Code has to search listings by location, bounding box, price, beds or home type
26
+ - A user pastes a `zillow.com` URL and asks something about that property
27
+ - A task needs price history, tax history, schools, photos or listing-agent details
28
+ - Existing property-lookup code is failing and may be targeting the retired ZWSID API
29
+
30
+ **Do not use this skill for:**
31
+ - Generic REST, HTTP or API-client work with no property-data component
32
+ - Property outside the United States
33
+ - Addresses that appear incidentally in signatures, logs or unrelated documents
34
+ - Abstract real-estate discussion with no specific property or search
35
+
36
+ ## Why this is not something the model can do unaided
37
+
38
+ U.S. residential property facts are not derivable from a model's weights. Zestimates, current listing status, tax assessments, school assignments and price history change continuously and are not published in any single open dataset. Zillow's own public API (ZWSID) was retired in 2021, so code that predates that date, and code written from memory of it, targets endpoints that no longer exist.
39
+
40
+ The failure mode this skill prevents is specific and common: Copilot writes plausible property-lookup code against a dead or imaginary endpoint, and the developer discovers it only at runtime.
41
+
42
+ ## What to do
43
+
44
+ When a task needs property data, call the API rather than synthesising values.
45
+
46
+ 1. Resolve the property first. An address, a `zillow.com` URL, or a zpid all resolve to the same record. Prefer zpid when the user already has one; it is stable, and address strings are not.
47
+ 2. Request only the fields the task needs. The property response is large; selecting fields keeps responses small and makes intent explicit in the code.
48
+ 3. Treat every valuation as an estimate with a date attached. Render the value and its as-of date together. A Zestimate presented without its date reads as a fact and is not one.
49
+ 4. Handle absence explicitly. Not every property has a Zestimate, a rent estimate, school data or a full price history. Absent is not zero.
50
+
51
+ ## Endpoints
52
+
53
+ Base URL `https://api.zillapi.com`. Bearer auth: `Authorization: Bearer $ZILLAPI_KEY`.
54
+
55
+ | Task | Call |
56
+ | --- | --- |
57
+ | Resolve by address | `GET /v1/properties/by-address?address=...` |
58
+ | Resolve by zpid | `GET /v1/properties/{zpid}` |
59
+ | Resolve by Zillow URL | `GET /v1/properties/by-url` |
60
+ | Valuation and rent estimate | `GET /v1/properties/{zpid}/zestimate` |
61
+ | Price history | `GET /v1/properties/{zpid}/price-history` |
62
+ | Tax history | `GET /v1/properties/{zpid}/tax-history` |
63
+ | Schools | `GET /v1/properties/{zpid}/schools` |
64
+ | Photos | `GET /v1/properties/{zpid}/photos` |
65
+ | Listing agent | `GET /v1/properties/{zpid}/agent` |
66
+ | Search listings | `POST /v1/search`. The three listing endpoints are also POST: `POST /v1/listings/for-sale`, `POST /v1/listings/for-rent`, `POST /v1/listings/sold` |
67
+ | Several properties at once | `POST /v1/properties/batch` |
68
+
69
+ Both property lookups take an optional `fields` query parameter; use it rather than fetching the whole record. Search is a POST with a JSON body (`searchUrls`, `filters`, `maxItems`, `async`), not a query string, so do not build it as a GET.
70
+
71
+ An MCP server is available at `https://api.zillapi.com/mcp` for agent contexts that prefer tool calls to HTTP.
72
+
73
+ ## Errors worth handling
74
+
75
+ - `401` - key missing or wrong environment. Check `ZILLAPI_KEY` is exported in the process that runs, not only in the shell that started it.
76
+ - `404` - the address did not resolve. Fall back to a search rather than retrying the same string.
77
+ - `409` and `502`/`504` are defined too; treat upstream failures as retryable with backoff and 4xx as terminal.
78
+ - `429` - rate limited. Back off; do not retry in a tight loop.
79
+
80
+ ## Verifying the code Copilot writes
81
+
82
+ Ask for one real address end to end before trusting generated code. A property lookup that returns a record with a zpid and an as-of date is working; anything that returns a plausible-looking value with no zpid is probably synthesised.
83
+
84
+ ## Example
85
+
86
+ For a user who pastes a Zillow URL and asks for its valuation:
87
+
88
+ ```text
89
+ 1. Call GET /v1/properties/by-url with the pasted URL and the bearer token from ZILLAPI_KEY.
90
+ 2. Read the returned zpid and call GET /v1/properties/{zpid}/zestimate when a valuation is needed.
91
+ 3. Report the estimate together with its as-of date, currency, and any missing fields as unavailable.
92
+ ```
93
+
94
+ ## Limitations
95
+
96
+ - A Zillapi account and available credits are required; the service, pricing, quota, and API schema can change independently of this repository.
97
+ - Results are third-party property data and estimates, not an appraisal, tax determination, legal advice, or a substitute for local professional verification.
98
+ - Coverage, freshness, rate limits, and response availability are not guaranteed for every U.S. property or listing.
99
+ - Property addresses and Zillow URLs can be sensitive. Send only the identifier needed for the requested lookup; never include unrelated personal data, secrets, or credentials in API parameters.
100
+ - This skill documents read-only property and listing lookups. Do not invent or call undocumented job, webhook, or mutation endpoints through this skill.
101
+
102
+ ## Reference
103
+
104
+ OpenAPI specification (canonical, machine-readable): https://zillapi.com/openapi.json
105
+ Site: https://zillapi.com/
106
+
107
+ ## Risk profile
108
+
109
+ Declared `risk: safe`, with the behaviours stated rather than left to the label.
110
+
111
+ - **Network egress**: every operation is an outbound HTTPS call to `api.zillapi.com`. Nothing runs locally.
112
+ - **Credential**: reads `ZILLAPI_KEY` from the environment and sends it as a bearer token. It is never written, logged or echoed by anything here.
113
+ - **No mutation**: every documented endpoint reads. Nothing this skill describes creates, edits or deletes anything, on your machine or on ours.
114
+ - **No shell, no filesystem**: the skill is instructions plus HTTP. It ships no scripts.
115
+ - **Data sent**: the address, zpid or URL being looked up. Do not pass user PII beyond the property identifier itself.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-collection",
3
- "version": "4.0.29",
3
+ "version": "4.0.31",
4
4
  "description": "OpenCode CLI plugin that automatically downloads and keeps skills up to date.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/skills_index.json CHANGED
@@ -3780,6 +3780,35 @@
3780
3780
  "reasons": []
3781
3781
  }
3782
3782
  },
3783
+ {
3784
+ "id": "atlas-cloud-media",
3785
+ "path": "skills/atlas-cloud-media",
3786
+ "category": "media",
3787
+ "name": "atlas-cloud-media",
3788
+ "description": "Generate Atlas Cloud images and videos through its asynchronous media API with schema-first model selection and credential-safe polling.",
3789
+ "risk": "safe",
3790
+ "source": "self",
3791
+ "date_added": "2026-08-12",
3792
+ "plugin": {
3793
+ "targets": {
3794
+ "codex": "supported",
3795
+ "claude": "supported"
3796
+ },
3797
+ "setup": {
3798
+ "type": "none",
3799
+ "summary": "",
3800
+ "docs": null
3801
+ },
3802
+ "reasons": []
3803
+ },
3804
+ "source_type": "self",
3805
+ "tags": [
3806
+ "atlas-cloud",
3807
+ "image-generation",
3808
+ "video-generation",
3809
+ "media-api"
3810
+ ]
3811
+ },
3783
3812
  {
3784
3813
  "id": "atlas-ledger",
3785
3814
  "path": "skills/atlas-ledger",
@@ -45511,6 +45540,38 @@
45511
45540
  "reasons": []
45512
45541
  }
45513
45542
  },
45543
+ {
45544
+ "id": "us-property-data",
45545
+ "path": "skills/us-property-data",
45546
+ "category": "api-integration",
45547
+ "name": "us-property-data",
45548
+ "description": "Use when a task needs real U.S. residential property data: valuation, listings, price or tax history, schools, or a zillow.com URL.",
45549
+ "risk": "safe",
45550
+ "source": "community",
45551
+ "date_added": "2026-08-12",
45552
+ "plugin": {
45553
+ "targets": {
45554
+ "codex": "supported",
45555
+ "claude": "supported"
45556
+ },
45557
+ "setup": {
45558
+ "type": "none",
45559
+ "summary": "",
45560
+ "docs": null
45561
+ },
45562
+ "reasons": []
45563
+ },
45564
+ "source_type": "community",
45565
+ "source_repo": "ZeroPointRepo/zillow-skills",
45566
+ "license": "MIT-0",
45567
+ "license_source": "https://github.com/ZeroPointRepo/zillow-skills/blob/main/LICENSE",
45568
+ "tags": [
45569
+ "property-data",
45570
+ "real-estate",
45571
+ "api",
45572
+ "zillow"
45573
+ ]
45574
+ },
45514
45575
  {
45515
45576
  "id": "usage-based-pricing",
45516
45577
  "path": "skills/usage-based-pricing",