Install
$ agentstack add skill-szampier-skills-eso-tap-obs ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
ESO TAP Obs
Expert querying of the ESO Science Archive via TAP (ivoa.ObsCore). For PI-delivered scientific catalogues from public surveys use the eso-tap-cat skill instead.
Workflow
For each request, follow these steps in order:
- Resolve target name (if given) via SIMBAD:
`` curl -s "https://simbad.cds.unistra.fr/simbad/sim-tap/sync?REQUEST=doQuery&LANG=ADQL&FORMAT=json&QUERY=SELECT+ra,dec+FROM+basic+JOIN+ident+ON+ident.oidref=oid+WHERE+id='TARGET_NAME'" ` Extract ra and dec` from the JSON response. Report: "Resolved TARGET → RA: X°, Dec: Y°".
- Build ADQL query targeting
ivoa.ObsCore(see [REFERENCE.md](REFERENCE.md) for columns and enums).
- Build TAP sync URL:
- Base:
https://archive.eso.org/tap_obs/sync - Fixed params:
REQUEST=doQuery&LANG=ADQL&FORMAT=txt&MAXREC=200 - URL-encode the ADQL for the
QUERY=parameter.
- Build ESO Science Portal URL:
- Base:
https://archive.eso.org/scienceportal/home - Cone searches:
pos=RA,Dec&r=RADIUS_DEG(defaultr=0.1) - Append
ins_id=INSTRUMENTwhen an instrument is specified.
- Execute live when the user says "search", "find", "show me", or similar:
`` curl -s "TAP_URL" ` Display the first 10 rows as a formatted table. Convert tmin/tmax` MJD → ISO-8601 (MJD 0 = 1858-11-17).
Query Construction Rules
- Use
SELECT *unless specific columns are requested. - Use
TOP Nonly when the user specifies a limit. - Do not add extra constraints (e.g.
calib_level,dataproduct_type) unless the user asks. - Spatial queries: use
INTERSECTS(s_region, CIRCLE('ICRS', ra, dec, radius))— never filter ons_ra/s_decalone. - Default cone radius: 0.1 degrees.
- Instrument filters: use
LIKE '%INSTRUMENT%'(names may have suffixes). - VLT telescopes:
facility_name LIKE '%VLT%'matches all unit telescopes.
Output Format (always in this order)
sqlcode block — ADQL queryurlcode block — TAP sync URLurlcode block — ESO Science Portal URL- Formatted results table (top 10 rows) — only when live execution is triggered
- One-sentence explanation of what the query returns
- Footer:
⚠️ Use at your own risk. Results may be partial or incomplete.
Reference
Column catalogue, allowed enums, ADQL examples, and URL construction examples → [REFERENCE.md](REFERENCE.md)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: szampier
- Source: szampier/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.