Diagnose Content Search backend availability by probing the health endpoint, then surface connectivity issues between Flutter and backend when unhealthy.

Apache-2.0Auto-check: notesMobile

Install Sc Doctor

skills CLI
$ npx skills add open-edge-platform/edge-ai-suites --skill sc-doctor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install open-edge-platform/edge-ai-suites sc-doctor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/open-edge-platform/edge-ai-suites.git skills-src && mkdir -p .claude/skills && cp -r skills-src/education-ai-suite/.github/skills/sc-doctor .claude/skills/sc-doctor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
sc-doctor
GitHub stars
140
Token cost
~1.4k tokens
SKILL.md length
416 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
Apache-2.0

At a glance

Diagnose Content Search backend availability by probing the health endpoint, then surface connectivity issues between Flutter and backend when unhealthy.

  • Works in 7 steps: Is the backend reachable? → What services are reported by health? → Is the Python venv intact? → …
  • The user says is the backend up
  • SKILL.md covers 1. Is the backend reachable?, 2. What services are reported…, 3. Is the Python venv intact? and 4. Backend process / port check, plus 5 more sections
  • Calls flutter and uvicorn

What it does

Sc Doctor is an agent skill from open-edge-platform/edge-ai-suites. Diagnose Content Search backend availability by probing the health endpoint, then surface connectivity issues between Flutter and backend when unhealthy. Use when the user says "is the backend up", "check health", "backend unreachable", "debug backend", or "check connectivity".

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Cross-platform mobile apps. It works with Flutter. The repository describes itself as: A curated collection of sample applications intended for reference in developing optimized AI solutions and testing hardware performance across various industry use cases. The licence is Apache-2.0.

When your agent uses it

  • The user says is the backend up
  • Backend unreachable
  • Check connectivity

Example prompts

  • “is the backend up”
  • “check health”
  • “backend unreachable”
  • “/sc-doctor”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Is the backend reachable?
  2. What services are reported by health?
  3. Is the Python venv intact?
  4. Backend process / port check
  5. Read backend logs
  6. Flutter SDK health
  7. Check the .env config

What it can do on your machine

Read from SKILL.md and the folder at commit decbb06. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • flutter
    • uvicorn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Sc Doctor loads about 1.4k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 416 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~72
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:17
    ` (or the value in `utils/flutter/assets/.env`).
  • NoteMentions a .env fileSKILL.md:145
    ## 7. Check the .env config
  • NoteMentions a .env fileSKILL.md:162
    ok"}` but Flutter shows "unreachable" | `.env` URL mismatch | Fix `CONTENT_SEARCH_API_URL` in `.env`; hot-restart Flutte

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from open-edge-platform/edge-ai-suites at commit decbb06, republished under its Apache-2.0 licence (© open-edge-platform). 416 words, ~1,374 tokens.

Download SKILL.mdSave it as .claude/skills/sc-doctor/SKILL.md (or your agent's skills folder).
name
sc-doctor
description
Diagnose Content Search backend availability by probing the health endpoint, then surface connectivity issues between Flutter and backend when unhealthy. Use when the user says "is the backend up", "check health", "backend unreachable", "debug backend", or "check connectivity".

SC Doctor

Find out whether the Smart Classroom RAG system is healthy and what's broken. Agent: execute every command below directly using your terminal tool and relay the result. If the backend is not up, hand off to sc-up.

Set $BASE = "http://127.0.0.1:9011" (or the value in utils/flutter/assets/.env).


1. Is the backend reachable?

powershell
$BASE = "http://127.0.0.1:9011"
try {
    $r = Invoke-WebRequest -Uri "$BASE/api/v1/system/health" `
         -UseBasicParsing -TimeoutSec 5
    Write-Host "Status: $($r.StatusCode)"
    $r.Content
} catch {
    # 503 = running but degraded; the body still lists every service.
    if ($_.Exception.Response) {
        Write-Host "Status: $([int]$_.Exception.Response.StatusCode) (degraded)"
        $_.ErrorDetails.Message
    } else {
        Write-Host "UNREACHABLE — $($_.Exception.Message)"
    }
}
  • 200 / {"status":"ok"} → every Content Search service is ready, continue to step 2.
  • Connection refused / timeout → nothing is running on port 9011. Use sc-up to start the backend. GET /api/v1/system/ping distinguishes the two: it answers 200 whenever the API process itself is up.
  • 503 / {"status":"degraded"} → the API is up but a service behind it is not (still loading models, or dead). Read the services map, then step 3.

2. What services are reported by health?

A detailed health response includes per-service status. Parse it:

powershell
try   { $body = (Invoke-WebRequest -Uri "$BASE/api/v1/system/health" -UseBasicParsing).Content }
catch { $body = $_.ErrorDetails.Message }   # 503 while degraded
$body | ConvertFrom-Json | ConvertTo-Json -Depth 5

Look for any entry in services that is not "healthy". The keys map onto the services start_services.py launches: main_app/database (the API itself), chromadb (9090), file_ingest (9990), video_preprocess (8001, only when video summarization is enabled), plus vlm (the warm model on 8000).


3. Is the Python venv intact?

The backend and Content Search share one venv (smartclassroom/).

powershell
# venv exists?
Test-Path "smartclassroom\Scripts\python.exe"

# Python version
& "smartclassroom\Scripts\python.exe" --version

# Key packages installed?
& "smartclassroom\Scripts\pip.exe" list |
    Select-String "fastapi|llama-index|uvicorn|chromadb|faiss"

If packages are missing, run sc-setup to reinstall.


4. Backend process / port check

powershell
# Is something listening on 9011?
netstat -ano | findstr ":9011"

# Which PID owns it?
Get-Process -Id (netstat -ano | findstr ":9011" |
    ForEach-Object { ($_ -split '\s+')[-1] } | Select-Object -First 1 |
    Where-Object { $_ -match '^\d+$' }) -ErrorAction SilentlyContinue |
    Select-Object Id, Name, CPU

If port 9011 is occupied by a non-Python process, kill it and restart the backend.


5. Read backend logs

The backend logs to smart-classroom/content_search/logs/. Read recent lines:

powershell
$logDir = "smart-classroom\content_search\logs"
if (Test-Path $logDir) {
    Get-ChildItem $logDir -Filter "*.log" |
        Sort-Object LastWriteTime -Descending |
        Select-Object -First 1 |
        ForEach-Object { Get-Content $_.FullName -Tail 80 }
} else {
    Write-Host "No log directory found at $logDir"
}

Look for lines containing ERROR, CRITICAL, Traceback, or ImportError.


Show full SKILL.md (176 more words)Show less

6. Flutter SDK health

flutter --version triggers a tool-cache build that downloads from pub.dev.

powershell

# Flutter version (must be 3.22+)
flutter --version

# Run Flutter's own diagnostics
Push-Location utils\flutter
flutter doctor -v
Pop-Location

Look for [✗] entries — particularly missing Windows SDK, Visual Studio, or Android/Chrome for web mode.


7. Check the .env config

powershell
Get-Content "utils\flutter\assets\.env"

Verify CONTENT_SEARCH_API_URL matches the actual backend host:port. A mismatch here causes "service unreachable" errors in the Flutter app even when the backend is running.


Common diagnoses

SymptomLikely causeAction
Connection refused on port 9011Backend not startedUse sc-up
{"status":"ok"} but Flutter shows "unreachable".env URL mismatchFix CONTENT_SEARCH_API_URL in .env; hot-restart Flutter
Health returns 500Backend internal errorRead logs (step 5)
fastapi/langchain missing in venvIncomplete setupRun sc-setup
Port 9011 occupied by non-Python processStale processKill PID (step 4) and restart backend
flutter doctor shows [✗] WindowsVisual Studio / SDK missingInstall Visual Studio 2022 with "Desktop development with C++" workload
LLM service sub-health degradedModel endpoint not configuredCheck smart-classroom/content_search/ config files for LLM URL/API key

Output

Summarize as: backend reachable? → sub-services healthy? → venv intact? → Flutter SDK OK? → recommended next step (often a specific sc-up or sc-setup invocation).

© open-edge-platform, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in education-ai-suite/.github/skills/sc-doctor of open-edge-platform/edge-ai-suites.

Open the folder on GitHubat commit decbb06

Compare with similar skills

Sc Doctor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Sc Doctor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sc Doctor this skillopen-edge-platform/edge-ai-suites140—~1.4kAutomated safety check: NotesApache-2.0
Add Flutter Docusaurus Localematthiasn/lotti1.2k—~1.2kAutomated safety check: PassGPL-3.0
Tm Launcher DesignFar-Se/tabame372—~3.1kAutomated safety check: PassMIT
Flutter Initbear2u/my-skills932—~2.5kAutomated safety check: PassNone
Mobile App UI Designceorkm/mobile-app-ui-design409—~2kAutomated safety check: PassNone
Marionette Flutter Drive Appleancodepl/marionette_mcp482—~11kAutomated safety check: PassApache-2.0

Similar skills

  • Add, complete, or audit a locale across a Flutter application's ARB catalogs and a localized Docusaurus manual, including generated localization code, locale selectors, native platform declarations…

    1.2k GitHub stars~1.2k tokensUpdated today
    MobileAuto-check passed
  • Tm Launcher Design

    Far-Se/tabame

    Create or revise Tabame's Flutter launcher designs: frames, search bars, result rows, palettes, typography, and action dialogs.

    372 GitHub stars~3.1k tokensUpdated today
    MobileAuto-check passed
  • Flutter Init

    bear2u/my-skills

    A skill your agent uses when user wants to create a new Flutter project (Todo/Habit/Note/Expense/Custom domain) with Clean Architecture, Riverpod 3.0, Drift, and modern Flutter stack

    932 GitHub stars~2.5k tokensUpdated 3 mo ago
    MobileAuto-check passed
  • Mobile App UI Design

    ceorkm/mobile-app-ui-design

    Design high-quality mobile app UI/UX screens, flows, and components.

    409 GitHub stars~2k tokensUpdated 3 mo ago
    MobileAuto-check passed
  • Marionette Flutter Drive App

    leancodepl/marionette_mcp

    Set up and drive a running Flutter app (debug or profile) with Marionette — an AI agent's hands and eyes for the app.

    482 GitHub stars~11k tokensUpdated 4 days ago
    MobileAuto-check passed
  • Flutter Screenshot

    JustLookAtNow/pt_mate

    Capture and show two Flutter UI screenshots for this project: one landscape/large-screen preview and one portrait/mobile preview, without using Flutter Web.

    503 GitHub stars~511 tokensUpdated 5 days ago
    MobileAuto-check passed

More from open-edge-platform/edge-ai-suites

All 13 skills in this repo
  • Onboarding Validation

    open-edge-platform/edge-ai-suites

    Validate the get-started experience of Open Edge Platform (OEP) software components from the perspective of a first-time user.

    140 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Sc QA

    open-edge-platform/edge-ai-suites

    Ask a natural-language question against indexed content via the Content Search RAG Q&A endpoint.

    140 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Sc Upload

    open-edge-platform/edge-ai-suites

    Upload a file to the Content Search backend and poll the ingestion task until the file is fully indexed (status COMPLETED).

    140 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Uav Vision Analytics

    open-edge-platform/edge-ai-suites

    Build an end-to-end UAV object detection and telemetry overlay application on Intel hardware using DL Streamer Pipeline Server with MAVLink telemetry.

    140 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Knowledgebase

    open-edge-platform/edge-ai-suites

    Generic RAG query skill - Retrieve any information from the local knowledge base and generate structured reports, summaries, or Q&A responses.

    140 GitHub stars~900 tokensUpdated today
    Auto-check passed
  • Lvc Run App

    open-edge-platform/edge-ai-suites

    Run, start, or smoke-test the Live Video Captioning app (Docker Compose stack with dashboard on :4173).

    140 GitHub stars~796 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Sc Doctor

What does Sc Doctor do?

Diagnose Content Search backend availability by probing the health endpoint, then surface connectivity issues between Flutter and backend when unhealthy. Sc Doctor is an agent skill from open-edge-platform/edge-ai-suites. Diagnose Content Search backend availability by probing the health endpoint, then surface connectivity issues between Flutter and backend when unhealthy.

When should I use Sc Doctor?

Sc Doctor fits situations like: the user says is the backend up; backend unreachable; check connectivity.

How do I install Sc Doctor in Claude Code?

Run `npx skills add open-edge-platform/edge-ai-suites --skill sc-doctor -a claude-code`. Or copy the skill folder (education-ai-suite/.github/skills/sc-doctor in open-edge-platform/edge-ai-suites) into .claude/skills/sc-doctor in your project. Claude Code loads it when a task matches its description.

How do I install Sc Doctor in Codex?

Run `npx skills add open-edge-platform/edge-ai-suites --skill sc-doctor -a codex`. Or copy the skill folder (education-ai-suite/.github/skills/sc-doctor in open-edge-platform/edge-ai-suites) into .agents/skills/sc-doctor in your project. Codex loads it when a task matches its description.

Can I use Sc Doctor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add open-edge-platform/edge-ai-suites --skill sc-doctor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sc-doctor, .gemini/skills/sc-doctor, .github/skills/sc-doctor and .opencode/skills/sc-doctor in your project.

What does Sc Doctor need to run?

Going by SKILL.md and its folder, Sc Doctor needs the command-line tools its instructions call (flutter and uvicorn). Our summary lists: Python 3.

Does Sc Doctor access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Sc Doctor safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Sc Doctor use?

Sc Doctor is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Sc Doctor use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Sc Doctor?

Skills that share tags, products or a category with Sc Doctor: Add Flutter Docusaurus Locale (matthiasn/lotti, 1.2k stars), Tm Launcher Design (Far-Se/tabame, 372 stars), Flutter Init (bear2u/my-skills, 932 stars) and Mobile App UI Design (ceorkm/mobile-app-ui-design, 409 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Sc Doctor?

open-edge-platform (a GitHub organization) maintains it in open-edge-platform/edge-ai-suites, which has 140 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 9, 2026.

Source: open-edge-platform/edge-ai-suites on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.