alterlab-trdizin — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited alterlab-trdizin (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Searches TR Dizin (TÜBİTAK ULAKBİM's ulusal atıf dizini — the national citation index) and answers the question Turkish academics actually ask: "Is this journal indexed in TR Dizin right now?" It hits the index's confirmed keyless API, parses the Elasticsearch records, and for a journal derives a current-status verdict from the authoritative coverage fields.
TR Dizin status is a career gate: it gates doçentlik (associate-professorship) eligibility and feeds akademik teşvik (academic-incentive) / UBYT payouts. This skill verifies status; it does not compute the points — see the routing table below.
Is the journal "Bilig" indexed in TR Dizin?
"Toplum ve Bilim" TR Dizin'de taranıyor mu?
Find TR Dizin publications about deprem okuryazarlığı, newest first
Search TR Dizin for an author / institution→ Run scripts/query_trdizin.py, read the JSON/table, and report the verdict. Never assert a journal's status from memory — always query the live index.
Use it for any of these intents:
verify a target venue's national-index status before submitting.
or citation count, narrow with the returned year/subject/language facets.
national index.
(e.g. before assembling a doçentlik dossier — but the point math is elsewhere).
| If the request is really about… | Route to |
|---|---|
| DergiPark journal hosting / OAI harvest / article BibTeX (hosting ≠ indexing) | alterlab-dergipark |
| Computing doçentlik eligibility points from a publication list | alterlab-docentlik-eligibility |
| Computing akademik teşvik / UBYT incentive scores | alterlab-akademik-tesvik |
| YÖK thesis (tez) search in Ulusal Tez Merkezi | alterlab-yok-tez |
| YÖK Akademik academic profile / affiliation lookup | alterlab-yok-akademik |
| YÖK Atlas program / admission statistics | alterlab-yokatlas |
| Verifying an arbitrary citation exists (Crossref/OpenAlex/etc.) | alterlab-citation-verifier |
| Turkish APA 7 / TR Dizin citation style formatting | alterlab-tr-academic-style |
This skill answers "is it in the index, and what does the index say?" — it does not adjudicate acceptance criteria, compute career points, or format citations.
The TR Dizin SPA is backed by an unauthenticated Elasticsearch search API (verified live 2026-06-06, HTTP 200). One endpoint, four record types:
GET https://search.trdizin.gov.tr/api/defaultSearch/{type}/?q=…&order=…&page=…
type ∈ { publication | journal | author | institution }Full endpoint, parameter, and _source field documentation is in references/api_reference.md. The journal-status logic is in references/journal_status.md.
Two facts to keep honest:
a client limit. To collect N records, page through page=1,2,… and slice client-side — which is exactly what the script's --limit does. Do not tell the user a server-side limit exists.
"now") and carry no index history. Status is derived from isActive, journalYear coverage, and rejectYearList only.
isActive=true while coverage stopped years ago and recent years are in rejectYearList (verified: Eğitim Bilim Toplum, ISSN 1303-9202 — active, coverage→2019, rejected 2020–2025). The script therefore checks rejectYearList against the latest coverage year before ever saying "currently indexed".
| User intent | Command |
|---|---|
| Is journal X indexed? | query_trdizin.py journal "<title or ISSN>" |
| Find indexed articles | query_trdizin.py publication "<terms>" --order publicationYear-DESC |
| Author / institution | query_trdizin.py author "<name>" / … institution "<name>" |
# Journal status (the headline use case)
uv run python skills/turkish-academia/alterlab-trdizin/scripts/query_trdizin.py \
journal "Bilig" --limit 3
# Publication search, newest first, with facets, JSON out
uv run python skills/turkish-academia/alterlab-trdizin/scripts/query_trdizin.py \
publication "deprem okuryazarlığı" \
--order publicationYear-DESC --limit 20 --facets --out trdizin.json--order (verified enum): relevance-DESC (default), publicationYear-ASC|DESC,title-ASC|DESC, orderCitationCount-ASC|DESC.
--limit N collects up to N records by paging client-side (default 10).--facets adds the year / subject / language aggregations.--json / --out PATH emit the structured report; default is a readable table.requests, falls back to stdlib urllib — runs in a bareuv env with no API key.
For a journal, surface the derived verdict, e.g.:
isActive is true, journalYear shows recent coverage, and there is no reject year newer than the last covered year.
recent rejectYearList year is newer than the last journalYear year. This fires even if `isActive` is still true (de-indexed venue).
rejectYearList is set butnot newer than coverage.
isActive is false.Quote ISSN/eISSN and the coverage years so the user can confirm it is the right journal (title collisions happen). If it matters for a submission decision, remind them TR Dizin status can change between terms — re-check before relying on it.
For publications, present a table of (year) title — journal · doi · access, sorted as requested, and offer to refine via the facets.
NETWORK UNAVAILABLE(exit 3), say so plainly and do not state a status from memory.
isActive / journalYear / rejectYearList — notfrom the query-time *IndexDate fields?
scoring, DergiPark hosting, tez search, or citation formatting, hand off to the sibling skill named in the routing table above.
references/api_reference.md — endpoint,parameters, order enum, response shape, _source fields per type, facets, and the no-limit / query-time-date caveats (all verified live).
indexing-status decision logic, worked examples, and why it gates doçentlik / teşvik (with hand-offs to those skills).
Part of the AlterLab Academic Skills suite.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.