Files

71 lines
4.3 KiB
Markdown
Raw Permalink Normal View History

# Third-party projects
This page lists third-party projects, platforms, and services that build on, wrap,
or integrate Academic Research Skills (ARS). It also acknowledges upstream projects
whose mechanisms ARS has adapted (see **Upstream & related projects** below).
## Disclaimer
**Listing here is not an endorsement.** The entries below are community-submitted
and have **not been reviewed, tested, or verified** by the ARS maintainer. They are
operated by independent third parties, not affiliated with this project.
- Being listed here does not mean the maintainer vouches for the project's quality,
security, privacy practices, or continued availability.
- Links may point to external platforms with their own terms, pricing, tracking, and
data-handling policies. Read them before you sign up or upload anything.
- **Use at your own risk.** Do not paste unpublished research, personal data, or any
confidential material into a third-party service without checking its policies first.
docs: DATA_FLOWS.md — single map of network touchpoints + local stores (#758) (#770) * docs: single data-flow map + DF-1..DF-3 coverage lint (#758) Add docs/DATA_FLOWS.md — one row per network touchpoint (trigger, payload class, recipient, credentials, off switch) and one row per local store (path, content, TTL, deletion), with an explicit scope statement (the Claude session itself is platform-governed; nothing publishes autonomously). Covers the four gate resolvers, the standalone Chinese-literature resolver (NOT in the gate), the consent-bound claim-standing discovery adapters, both cross-model transports (API and citation-only Codex subscription), the SessionStart update check, the manual smoke tests, and the v3.9.4 timeline bootstrap — the last one surfaced by the new lint itself on first run (it was absent from the #758 issue enumeration). Inbound links from README, SECURITY.md (in-scope exfiltration anchor), and THIRD_PARTY.md (core-suite vs third-party contrast). Lint (same-PR drift-point discipline): scripts/check_data_flows.py — DF-1 every non-test scripts/*.py importing a network module (AST scan, so no-call guards naming urllib.request in strings do not count) must be named on the map; DF-2 same for curl-invoking shell scripts; DF-3 README/SECURITY/THIRD_PARTY keep a rendered resolving inbound link (fences + HTML comments stripped with the semantics converged in the PR #768 review; consolidation into a shared helper is follow-up). 12 mutation tests; wired into spec-consistency.yml + pytest manifest. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * refactor: apply /simplify pass (4-agent, deduped) (#758) Doc: the four gate resolvers collapse into a 4-column sub-table under one shared trigger/payload/off-switch lead (the wide table kept only heterogeneous touchpoints); the exhaustiveness sentence is bounded to what DF-1/DF-2 actually detect (direct imports + curl; spawned-CLI and session-tooling paths held by review); "Nothing here publishes" now inherits POSITIONING.md and its not-a-runtime-guarantee qualifier; the subscription-free note is trimmed to its rationale; Related gains the SETUP bullet as the tunables authority. Coverage: docs/SETUP.md becomes the fourth DF-3-pinned inbound surface (pointer added in the cache section); the four translated READMEs mirror the README pointer; docs/DATA_FLOWS.md registers into check_spec_consistency.py relative-link validation. Lint: DF-1 module vocabulary rebuilt as the network subset of the no-call envelope FORBIDDEN_IMPORTS (deviations documented: dotted urllib.request/http.client instead of bare urllib/http; ssl excluded); scan is now recursive into scripts/ subpackages. Tunable constants in verification_cache.py gain update-both comments. Tests: the three hollow assert-baseline tests become real mutations (name-based test exemption, uncomment-curl, from-urllib idiom); recursive-scan and SETUP-surface tests added (17 total). Skipped with reason: endpoint-hostname lint (near-zero event rate, composed-URL false-fire risk); row-id shrink constant (review-owned per degradation-registry precedent); markdown-helper consolidation with check_control_availability.py (whichever PR merges second extracts the shared module — recorded in both PR bodies). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: close codex R1 findings — 8 P2 + 4 P3 (#758) Doc accuracy (6): Chinese-literature row rewritten (callable client, no CLI; PubMed path sends the required NCBI contact email + bibliographic search coordinates); codex-transport payload names citation_context (can contain unpublished manuscript text); update check documented as one curl transfer per 24 h with redirects and the ARS_UPDATE_CHECK_REMOTE_URL override; retraction-status SQLite cache added to local stores (caller-supplied path, 30-day stale threshold, no auto-expiry); discovery adapters credentials corrected (fixed User-Agent, resolver env keys not consumed); resolver payload narrowed to identifiers + title query strings; update-check state content corrected (state label + two version strings). Lint mis-pass/mis-fire (4): DF-1/DF-2 coverage now requires the full repo-relative path (basename-substring collision closed); DF-2 is recursive over scripts/ and hooks/, recognizes path-qualified curl, and masks quoted spans before the comment strip; DF-3 strips inline code spans before link extraction (a backticked link does not render). Five mutation tests added (22 total). The code-span rule is a divergence from check_control_availability.py to be carried over at the declared helper consolidation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: close codex R2 findings — 4 P2 + 1 P3 (#758) - DF-2 scans command-substitution bodies BEFORE quote masking, so resp="$(curl ...)" — a real network call inside double quotes — fires (mutation test added; suite now genuinely 22, correcting the prior commit message which said 22 when 21 were collected). - Map gains the Codex audit wrapper row (scripts/run_codex_audit.sh: human/CI/hook-invoked only, sends deliverable + supporting file contents through the local Codex CLI login). - Update check re-bounded: at most one SUCCESSFUL check per 24 h; a failed attempt writes no state and may retry next session. - Cache TTL wording corrected: expiry is a cache miss, not deletion; expired rows persist until invalidated or the file is deleted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: full comment lines execute nothing — DF-2 substitution scan (#758) The R2 command-substitution scan ran before any comment handling, so a full comment line containing $(curl ...) false-fired — surfaced by the codex R3 pass (timed out mid-review, but its transcript had already demonstrated the false fire). Comment-only lines are now skipped before the substitution scan; a $(curl) inside a trailing inline comment remains a documented accepted edge. Mutation test added (23 total). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: close codex R3 findings — command-position curl + image links + retention wording (#758) - DF-2 rebuilt around COMMAND POSITION: curl counts only as the first non-assignment token of a segment (pipes/separators/substitution openers), so `command -v curl` preflights and `echo curl` no longer false-fire; VAR=x curl still fires; wrapper-prefixed invocations (sudo/timeout) are documented accepted edges. - DF-3 link grammar excludes image syntax — ![map](...) renders no anchor and cannot keep the acceptance criterion green. - Cache retention wording includes the overwrite path: expired rows persist until overwritten by re-verification, invalidated, or the file is deleted. - Three mutation tests added (26 total). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: close codex R4 finding — curl behind shell control words (#758) The command-position head-token scan now skips shell control words (if/elif/while/until/then/else/do/!/time/exec) before naming the head, so `if curl …; then` and `while ! curl …; do` fire while `if true; then` stays quiet. Two mutation tests (28 total). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: close codex R5 finding — option tokens after control words (#758) `time -p curl …` / option-bearing exec forms: the head scan now skips `-`-prefixed option tokens alongside assignments and control words, so the option cannot shadow the command head. Mutation test added (29 total). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: close codex R6 finding — harness spawned-CLI paths scoped out (#758) Three maintainer-only measurement scripts reach the network through locally authenticated CLIs (dispatch_e4_panel via claude -p, run_review_criteria_constructive_value via Codex, check_ranking_lift via gh api). They are not user-facing feature paths, so instead of diluting the touchpoint tables they are now an explicit named scope exclusion — the exhaustiveness claim no longer silently spans them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: close codex R7 finding — boundary count wording (#758) "Two boundaries" became three after the R6 harness exclusion; the count is removed rather than maintained. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 00:28:24 +08:00
For contrast, the **core suite's own** network touchpoints and local stores are mapped
in [docs/DATA_FLOWS.md](docs/DATA_FLOWS.md) — what leaves the machine, to which
services, and how to turn each path off. That map covers this repository only, never
the third-party projects below.
If you want a project *reviewed and officially recognized* by ARS (rather than merely
listed), that is a separate track — see **Getting officially recognized** below.
## How to get listed
The bar to be listed here is intentionally low, and separate from endorsement. Open an
issue or a pull request adding a row to the table. To be eligible, your project must:
1. **Credit ARS** — visibly attribute Academic Research Skills and link back to this
repository.
2. **Describe it faithfully** — do not misrepresent what ARS is or what your project
does with it.
That is all that is required for a listing. The maintainer may decline or remove an
entry that violates these two conditions, or that turns out to be spam, malware, or
otherwise harmful.
## Getting officially recognized
Listing on this page is *not* the same as ARS officially supporting or bundling your
integration. If you are building a platform port or a first-class integration and want
it recognized in the main README or shipped with the suite, that goes through the
**platform-ports policy** (community-maintained ports), which sets a higher bar than a
directory listing. See the Platform Port Reminder policy and open an issue to discuss.
## Listed projects
| Project | Maintainer | What it does | Link |
|---------|-----------|--------------|------|
| ClawMama | kinhunt (third party) | Hosted OpenClaw/Hermes-style agent offering a first-run trial of the Academic Research Pipeline via Telegram or WhatsApp | [Try in Telegram or WhatsApp](https://app.clawmama.run/skills/639wu5/hermes?utm_source=github&utm_medium=issue&utm_campaign=skill_outreach_academic_research_skills) |
| OrcaRouter | OrcaRouter team | OpenAI- and Anthropic-compatible gateway usable as the cross-model verification provider in Academic Research Skills via `ARS_OPENAI_COMPAT_BASE_URL` + `ARS_CROSS_MODEL`, with namespaced model IDs (e.g. `anthropic/claude-sonnet-5`) routing through the ungrounded OpenAI-compatible path | [orcarouter.ai](https://www.orcarouter.ai) |
*Columns:* **Project** name as the third party calls it · **Maintainer** the account
that submitted / operates it · **What it does** a one-line neutral description ·
**Link** where it lives. Descriptions are the submitters' own claims, restated
neutrally; the maintainer has not verified them.
## Upstream & related projects
The reverse direction: independent projects whose mechanisms ARS has adapted, with
credit recorded in the corresponding issues and pull requests. Listing here is
acknowledgement, not endorsement, and implies no affiliation.
| Project | Maintainer | Relationship | Link |
|---------|-----------|--------------|------|
| sci-ssci-skills | [@MissOrangePeel](https://github.com/MissOrangePeel) (Yila-AI) | Origin of the claim-strength ladder + deterministic invariant-checking mechanism shape adapted into the v3.19.0 revision-round claim-drift guards (#569 / #570, PR [#571](https://github.com/Imbad0202/academic-research-skills/pull/571)) | [Yila-AI/sci-ssci-skills](https://github.com/Yila-AI/sci-ssci-skills) |