sigaa

Interact with SIGAA (Sistema Integrado de Gestão de Atividades Acadêmicas), the academic management system used by 50+ Brazilian federal universities (UNB, UFRN, UFC, UFPE, UFCG, UFPI, etc.). Use when: (1) checking enrollment status or classes for students, (2) verifying grades or academic history, (3) accessing professor portal (classes, attendance, grade launch), (4) logging in to any SIGAA instance via CAS SSO or direct authentication, (5) automating any SIGAA task via web scraping. Handles both undergrad and graduate (stricto/lato sensu) portals. **REQUIRED ENVIRONMENT VARIABLES:** SIGAA_URL (institution base URL), SIGAA_USER (login/matricula), SIGAA_PASSWORD (password).

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "sigaa" with this command: npx skills add olegantonov/sigaa

SIGAA Skill

SIGAA is a JSF-based web system with no public REST API. All automation uses authenticated web scraping (curl + Python).

Prerequisites

Required Environment Variables:

export SIGAA_URL='https://sigaa.unb.br'   # Institution base URL (no trailing slash)
export SIGAA_USER='241104251'             # Login: matricula number or CPF (institution-specific)
export SIGAA_PASSWORD='yourpassword'      # Your SIGAA password
  • For username format per institution → see references/institutions.md
  • Never pass credentials as command-line arguments — use env vars only

Quick Start

1. Login

source scripts/sigaa_login.sh
# Sets $SIGAA_COOKIE_FILE and $SIGAA_USER_ID
# Cookie file is chmod 600 and auto-removed on shell exit

2. Student Operations

bash scripts/sigaa_student.sh status             # Basic info + active program
bash scripts/sigaa_student.sh enrollments        # Current semester classes
bash scripts/sigaa_student.sh enrollment-result  # Status of enrollment requests (SUBMETIDA / DEFERIDA / NEGADA)
bash scripts/sigaa_student.sh grades             # Grades
bash scripts/sigaa_student.sh history            # Full academic history
bash scripts/sigaa_student.sh schedule           # Class schedule

3. Professor Operations

bash scripts/sigaa_professor.sh classes              # Current semester classes
bash scripts/sigaa_professor.sh students <turma_id>  # Students in a class
bash scripts/sigaa_professor.sh attendance           # Pending attendance
bash scripts/sigaa_professor.sh schedule             # Teaching schedule

JSF Navigation Pattern

SIGAA uses JavaServer Faces (JSF) with jsCookMenu. All menu actions require a POST with a fresh ViewState and jscook_action:

VS=$(curl -s -b "$SIGAA_COOKIE_FILE" -c "$SIGAA_COOKIE_FILE" \
  "${SIGAA_URL}/sigaa/portais/discente/discente.jsf" | \
  grep -oP 'name="javax\.faces\.ViewState"[^>]*value="\K[^"]+' | head -1)

curl -s -L -b "$SIGAA_COOKIE_FILE" -c "$SIGAA_COOKIE_FILE" \
  -X POST "${SIGAA_URL}/sigaa/portais/discente/discente.jsf" \
  -d "menu%3Aform_menu_discente=menu%3Aform_menu_discente" \
  -d "id=${SIGAA_USER_ID}" \
  --data-urlencode "jscook_action=menu_form_menu_discente_discente_menu:A]#{BEAN.method}" \
  --data-urlencode "javax.faces.ViewState=${VS}"

Full action reference → references/student-guide.md and references/professor-guide.md

Parsing Responses

import re, html as h

def clean_html(content):
    content = re.sub(r'<script[^>]*>.*?</script>', '', content, flags=re.DOTALL)
    content = re.sub(r'<style[^>]*>.*?</style>', '', content, flags=re.DOTALL)
    text = re.sub(r'<[^>]+>', ' ', content)
    return h.unescape(re.sub(r'[ \t]+', ' ', text))

def extract_table_rows(html_content):
    content = re.sub(r'<script[^>]*>.*?</script>', '', html_content, flags=re.DOTALL)
    rows = re.findall(r'<tr[^>]*>(.*?)</tr>', content, re.DOTALL)
    result = []
    for row in rows:
        cells = re.findall(r'<t[dh][^>]*>(.*?)</t[dh]>', row, re.DOTALL)
        clean = [h.unescape(re.sub(r'<[^>]+>|\s+', ' ', c)).strip() for c in cells if c.strip()]
        if clean:
            result.append(clean)
    return result

Security Notes

  • Credentials via env vars only — never pass as CLI arguments (prevents shell history leakage)
  • Cookie files: auto-created with chmod 600, auto-deleted on shell exit via trap
  • Rate limiting: 0.5s delay between requests (built into scripts)
  • Session scope: SIGAA sessions expire after ~20 min inactivity — re-source login if you get redirected to login page
  • Network targets: scripts only contact $SIGAA_URL and the CAS SSO host derived from the login redirect — confirm these match your institution before running

Common Issues

SymptomFix
"Credenciais inválidas"Check username format for institution (see references/institutions.md)
"Nenhuma turma neste semestre"Run enrollment-result — status may be SUBMETIDA (pending)
JSF POST returns portal pageViewState stale — re-fetch portal before POST
Session redirect to loginCookie expired — re-source sigaa_login.sh
"Você não pode tentar re-enviar"Reused LT token — always fetch a fresh login page

References

  • references/institutions.md — Supported institutions, login URLs, username formats
  • references/student-guide.md — Full student portal guide, all JSF actions, parsing tips
  • references/professor-guide.md — Professor portal, grade/attendance workflows

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

Tweet Generator

推文生成、Thread长推、病毒传播分析、高质量回复、个人简介、发布时间建议。Tweet writer with threads, viral analysis, quality replies, bio optimization, posting schedule. Use when you need twee...

Registry SourceRecently Updated
Research

Movie Review

影评助手。电影评论、推荐、对比分析、深度解析、观影清单、剧透讨论。Movie review with reviews, recommendations, comparisons, analysis, watchlists, and spoiler discussions. Use when you need mo...

Registry SourceRecently Updated
1320Profile unavailable
Research

Skywork Excel

STRONGLY RECOMMENDED for ANY task involving Excel, data analysis, or structured analysis reports. This skill has BUILT-IN web search capability — no external...

Registry SourceRecently Updated
00Profile unavailable
Research

Agent Core Extractor

Export the agent core from supported framework repositories into a small source-only zip for AI migration or cross-framework analysis. Use when the user want...

Registry SourceRecently Updated
00Profile unavailable