Atlas / Skills / shubhamsaboo / Awesome LLM Apps

Awesome LLM AppsBLOCK

skills/shubhamsaboo/academic-researcher

100+ AI Agents, Agent Skills and RAG Apps - Free and Open Source.

Verdict
BLOCK
Grade
F
Trust score
34 /100
Version
1.3.0
Hosts
5 documented
License
Apache-2.0
Stars
142,410
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

100+ open-source AI agents, agent skills, and RAG apps. Hand-built, tested end-to-end, Apache-2.0.

Clone it, ship it, sell it - 100% free and open-source

Works with Claude, Gemini, GPT, DeepSeek, Llama, Qwen and other open-source models.

[Step-by-step tutorials on Unwind AI](https://www.theunwindai.com) · Quick start · Browse all templates

Project Graveyard

Insurance Claim Live Agent Team

AI Fraud Investigation Agent

Self-Improving Agent Skills

Read from source at commit f01e3e0e1a4eOBSERVED · 2026-10-20
Advertisement
02

Install

Commands as the repository documents them. They are shown, not run.

npx skills add https://github.com/Shubhamsaboo/awesome-llm-apps/tree/main/agent_skills/project-graveyard
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
pip install -r requirements.txt
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
pip install -r requirements.txt
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
codexmentioned
copilotmentioned
cursormentioned
openclawmentioned
04

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: advisor-orchestrator-worker
description: >-
  Use when a task is too large for one model pass, needs parallel research or
  generation across many subtasks (like researching a dozen competitors at
  once), or the user asks to orchestrate multiple models, split work across a
  model team, run an advisor-worker loop, have a stronger model review the
  plan while cheap workers execute, or says "too big for one model" or "fan
  this out". Not for single-file edits or tasks one model handles in one pass.
license: Apache-2.0
metadata:
  author: "Shubham Saboo"
  version: "1.0.0"
  source: "https://github.com/Shubhamsaboo/awesome-llm-apps"
compatibility: >-
  Makes network calls: workers via the Antigravity CLI (agy), falling back to
  the Gemini API (GEMINI_API_KEY or GOOGLE_API_KEY); advisor via the claude
  CLI, falling back to the Anthropic API (ANTHROPIC_API_KEY). Needs jq. All
  snippets are bash. Runs in any harness that can execute shell commands.
---

# Advisor Orchestrator Worker

You are the Orchestrator of a three-tier model team. You own the hot
path: plan, delegate, verify, synthesize. You never do worker-level
work yourself, and you never execute through the advisor.

**Models are knobs.** The tiers are the durable part; the model IDs
below (current July 2026) swap freely. One rule survives every
generation: the advisor is the strongest reasoning model you can
reach, workers the cheapest that pass verification. Snippets are bash;
on another shell, run them with `bash -c`.

## The team

- **Workers (default: Gemini 3.8 Flash via the Antigravity CLI, `agy`)**: stateless
  generation units, with tools (web search, file work) when a
  subtask needs them. Never interpolate a brief into a shell string;
  briefs carry quotes and arbitrary text, so that is a shell-injection
  bug. Write each brief to a temp file and dispatch each worker from
  its own EMPTY temp dir (no `.antigravity.md` or project context
  leaks in), in its own subshell, into its own output file:

  ```bash
  # $brief = this worker's brief file; $out = its result file (absolute path)
  d=$(mktemp -d)
  ( cd "$d" && env -i HOME="$HOME" PATH="$PATH" \
      agy --dangerously-skip-permissions --model "gemini-3.8-flash" --effort high \
      --print-timeout 5m -p "$(cat "$brief")" \
      > "$out"; s=$?; rm -rf "$d"; exit "$s" ) &
  pids+=($!)
  ```

  The permissions flag is required in non-TTY shells or the call
  hangs; the empty dir + minimal env reduce leakage but are not a
  sandbox; the `--model` pin keeps primary and fallback on one model,
  and `--effort high` satisfies the CLI's required effort selection.
  Chunk every wave into batches of 3 (Antigravity quota is shared
  across its app, CLI, and SDK). Start each batch with `pids=()`, reap
  each worker with its own `wait "$pid"` (a collective wait reports
  only the last status), and read each `$out` in dispatch order,
  since a shared stdout hands verify interleaved output. Non-zero exit or an
  empty `$out` is a failed dispatch: retry it through the Gemini API
  fallback in `references/fallbacks.md` when a key is set (no key:
  ESCALATE), and record the switch on the status board. That fallback also takes over when
  agy is missing, and carries any brief too large (over ~100 KB) or
  too untrusted for a CLI argument (`agy -p` has no prompt-file
  input). API workers run uncapped in parallel but have no tools, so a
  subtask that needs tools goes through agy or gets ESCALATE. Clean up
  all temp files at run end.

- **Advisor (default: Claude Fable 5.1 via the claude CLI)**: consult
  written to a temp file, passed on stdin (never inline in the
  command), behind a timeout so a hung consult can't stall the loop
  (perl's alarm; timeout(1) is missing on stock macOS):
  `perl -e 'alarm shift; exec @ARGV' 300 claude --model claude-fable-5-1 -p < "$consult"`.
  Expensive judgment kept out of the hot path: strategy, decomposition
  critique, risk, taste. Never execution. If the CLI is missing or a
  consult fails, use the Anthropic API fallback in
  `references/fallbacks.md`.

## The loop

1. **Frame.** State the deliverable and 3 to 5 checkable success
   criteria; if the task is too vague for that, ask one question and
   stop. Check tools now, not mid-run: `agy`, `jq`, the `claude` CLI,
   `ANTHROPIC_API_KEY`, and `api_key="${GEMINI_API_KEY:-$GOOGLE_API_KEY}"`.
   Each role resolves CLI first, then API key; announce every fallback
   up front. If a role has no working path, say exactly how to set it
   up, then offer degraded mode: you temporarily play that role
   yourself, same budgets, every affected section and the final result
   labeled `[DEGRADED: <role>]`, context-isolation caveat noted.
   Degraded mode is the one exception to the never-do-worker-work rule
   and covers at most one role; with two or more missing there is no
   team left, so say so and proceed as ordinary single-model work.
2. **Plan.** Decompose into self-contained subtasks with inline inputs,
   acceptance criteria, and wave assignments that maximize parallelism.
3. **Plan review (mandatory advisor consult #1).** Send the plan using
   the format in `references/advisor-consult.md`. Revise. State what
   you changed and what you rejected.
4. **Delegate.** Dispatch each wave using the format in
   `references/worker-brief.md`. Parallel background calls, then wait.
5. **Verify.** Check every result against its own acceptance criteria,
   and make the check exercise the deliverable itself: run the actual
   command, read the actual output. Grepping a README, testing
   something adjacent, printing True while exiting zero, or re-checking
   that a file exists proves nothing. Verdict per result: PASS, FIX
   (redispatch naming the specific failure), or ESCALATE. Never
   silently accept a partial pass; never hand-patch a substantive
   failure; redispatch instead.
6. **Synthesize.** When all subtasks pass, assemble the deliverable.
   Resolve conflicts between worker outputs explici
05

Trust audit

BLOCKgrade F · trust 34/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (13 observation(s))
Network
declared (17 observation(s))
Shell
declared (6 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
ai_agent_framework_crash_course/google_adk_crash_course/4_tool_using_agent/4_2_function_tools/calculator_agent/tools.py:30
result = eval(safe_expression)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
generative_ui_agents/ai-mcp-app-builder/apps/threejs-server/src/threejs-app.tsx:152
const fn = new Function(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
generative_ui_agents/ai-mcp-app-builder/apps/web/app/api/copilotkit/route.ts:224
"1) exec(\"ss -tlnp 'sport = :3109' | grep -oP 'pid=\\\\K[0-9]+' | head -1 | xargs -r kill; sleep 1\") " +
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
generative_ui_agents/ai-mcp-app-builder/apps/web/app/api/copilotkit/route.ts:483
exec(workspaceId, "kill $(lsof -t -i:3109) 2>/dev/null; sleep 1")
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
generative_ui_agents/ai-mcp-app-builder/apps/web/app/api/copilotkit/route.ts:484
exec(workspaceId, "npm run dev", background=true)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
agent_skills/evals/tools/skill_scanner.py:86
"CRED01", "CRITICAL", "Reads SSH key material (SSH dir, id_rsa, id_ed25519)"),  # skillscan:allow
Why it matters. touches a credential store
HIGHNetwork egress · net.env_exfil · CWE-200, CWE-319
agent_skills/evals/tools/skill_scanner.py:85
id_rsa ... WebSocket
Why it matters. reads secrets in the same file that sends data out
HIGHHard-coded secrets · secret.db_uri · CWE-798, CWE-321
advanced_ai_agents/multi_agent_apps/agent_teams/ai_travel_planner_agent_team/client/.env.example:2
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/tripcraft_ai
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
generative_ui_agents/ai-mcp-app-builder/apps/mcp-use-server/.agent/skills/chatgpt-app-builder/references/setup.md:55
- Developer Mode enabled: Settings → Connectors → Advanced → Developer Mode
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
MEDIUMInventory / provenance · inv.binary · CWE-1104
generative_ui_agents/ai-financial-coach-agent/docker/Dockerfile.app
Dockerfile.app
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
generative_ui_agents/generative-ui-starter-project/docker/Dockerfile.app
Dockerfile.app
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
agent_skills/first-reader/scripts/feed.py:306
print(f"reader {r['name']}: READER_FEED={base}/{token}")
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
agent_skills/evals/tools/skill_scanner.py:326
add("EXFIL01", "CRITICAL", path, 0,
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
agent_skills/evals/tools/skill_scanner.py:327
"Same file both touches credentials/environment and makes network calls — the standard exfiltration shape. Review it line by line.", "")
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
generative_ui_agents/ai-knowledge-explorer/src/lib/example-content.ts:86
Agents with tool access can be manipulated through prompt injection. A malicious document could instruct the agent to exfiltrate data or delete files. Sandboxing tool access, validating tool inputs, a
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
advanced_ai_agents/multi_agent_apps/agent_teams/ai_travel_planner_agent_team/backend/api/app.py:49
"ALLOWED_ORIGINS", "http://localhost:3000,http://127.0.0.1:3000"
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
advanced_ai_agents/multi_agent_apps/ai_negotiation_battle_simulator/backend/agent.py:417
allow_origins=["http://localhost:3000", "http://127.0.0.1:3000"],
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
advanced_ai_agents/single_agent_apps/earnings_call_analyst_agent/live_demo/server.py:78
allow_origins=["http://127.0.0.1:4188", "http://localhost:4188"],
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
advanced_ai_agents/multi_agent_apps/agent_teams/ai_legal_agent_team/legal_agent_team.py:107
st.title("AI Legal Agent Team 👨⚖️")
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
advanced_ai_agents/multi_agent_apps/agent_teams/ai_teaching_agent_team/teaching_agent_team.py:12
st.set_page_config(page_title="👨🏫 AI Teaching Agent Team", layout="centered")
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
advanced_ai_agents/multi_agent_apps/agent_teams/ai_teaching_agent_team/teaching_agent_team.py:120
st.title("👨🏫 AI Teaching Agent Team")
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
advanced_ai_agents/single_agent_apps/ai_health_fitness_agent/health_agent.py:8
page_icon="🏋️♂️",
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
advanced_ai_agents/single_agent_apps/ai_health_fitness_agent/health_agent.py:66
st.markdown("### 🏋️♂️ Exercise Routine")
MEDIUMHard-coded secrets · secret.slack · CWE-798, CWE-321
advanced_ai_agents/multi_agent_apps/ai_news_and_podcast_agents/readme.md:495
SLACK_BOT_TOKEN=xoxb-your-bot-user-oauth-token
MEDIUMPrivilege escalation / persistence · review.unsafe_action · CWE-269, CWE-250
agent_skills/advisor-orchestrator-worker/SKILL.md
agy --dangerously-skip-permissions --model "gemini-3.8-flash" --effort high
Why it matters. Directs the agent to launch worker subagents with permission prompts disabled, bypassing safety controls without user approval.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-10-20 · audit v0.4.1 · source sha f01e3e0e1a4efull audit observations/trust-audit/skill/shubhamsaboo__academic-researcher.json · Report an issue / request a re-scan
06

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-20f01e3e0e1a4eBLOCKF34first audit
07

Questions

What does the academic-researcher — shubhamsaboo/awesome-llm-apps skill do?

100+ AI Agents, Agent Skills and RAG Apps - Free and Open Source.

Is academic-researcher — shubhamsaboo/awesome-llm-apps safe to install?

No — not without reading the findings first. The audit graded it F (34/100) and found 9 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What can academic-researcher — shubhamsaboo/awesome-llm-apps access on my machine?

The audit observed that it reaches the network, runs shell commands and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: found — see the findings.

Which assistants does academic-researcher — shubhamsaboo/awesome-llm-apps work with?

Its documentation mentions claude-code, codex, copilot, cursor and openclaw. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (f01e3e0e1a4e), read on 2026-10-20. The repository is watched, and a new audit runs when it changes — this is the first audit.

Add this badge to your README

Shows this page's audit result and links back to it. It updates when the audit does.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Awesome LLM Apps](https://modelsatlas.com/skills/shubhamsaboo/academic-researcher/badge.svg)](https://modelsatlas.com/skills/shubhamsaboo/academic-researcher/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement