Not in the top 1,000 by GitHub stars

uussnn/second-brain

Autonomous AI Agent Skill for Google AI Edge Gallery - self-evolving, 100% offline

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 56457c95b3b8

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 56457c95b3b80ef2281ee074d4551e2854149bab

git clone --filter=blob:none --no-checkout https://github.com/uussnn/second-brain.git .hotskills/uussnn-second-brain && git -C .hotskills/uussnn-second-brain checkout --detach 56457c95b3b80ef2281ee074d4551e2854149bab # Copy each selected skill directory from .hotskills/uussnn-second-brain into .gemini/skills/<skill-name>/
100GitHub stars
Not availablestars in 7 days
1skill in this repository
0commits in 30 days

Heat

Insufficient history

Not enough history yet to measure heat. It appears after a few days of data.

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Nov 2, 2026Nov 2, 2026100

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

second-brain

When your agent uses it

Полностью автономный, оффлайн-менеджер знаний на базе PARA. Организует заметки, выполняет векторный поиск и синтезирует информацию.

What it loads into context

Frontmatter

152 tokens

Always available to the agent

SKILL.md

1,533 tokens

When the skill is activated

Reference documents

11,449 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Правила категоризации (PARA):
  2. Правила взаимодействия с системными функциями:
  3. Обработка аудио-ввода:
  4. Доступные инструменты (Tools):
  5. Discovered Rules (Архитектурные ограничения)

Scripts executed separately

  • Makefile
  • app/Dockerfile
  • app/factory/__init__.py
  • app/factory/bot.py
  • app/factory/db.py
  • app/factory/handlers.py
  • app/factory/health.py
  • app/factory/kanban.py
  • app/factory/worker.py
  • app/tests/conftest.py
  • app/tests/test_db.py
  • app/tests/test_kanban.py
  • db/03-roles.sh
  • scripts/distill_memory.js
  • scripts/fs_operations.js
  • scripts/main.js
  • scripts/vector_search.js
  • scripts/vendor/sql-wasm.js
  • setup_server.sh
  • site/generator/__init__.py
  • site/generator/__main__.py
  • site/generator/build.py
  • site/generator/config.py
  • site/generator/data.py
  • site/generator/fmt.py
  • site/tests/conftest.py
  • site/tests/test_generator.py
  • site/tests/test_site.py

Files

  • .agents/rules/SYSTEM_OS_CONTEXT.mddoc883 bytes
  • .env.exampleasset339 bytes
  • .gitignoreasset182 bytes
  • .nojekyllasset2 bytes
  • Caddyfileasset975 bytes
  • Evolution/capsules.jsonasset21 bytes
  • Evolution/events.jsonlasset111 bytes
  • Evolution/evolution_history.jsonlasset149 bytes
  • Evolution/genes.jsonasset149 bytes
  • Evolution/goals.jsonasset304 bytes
  • Evolution/preferences.jsonasset137 bytes
  • GEMINI.mddoc1,695 bytes
  • GEO-audit-dark-factory_project-brief.mddoc23,254 bytes
  • LICENSEasset10,173 bytes
  • Makefileruns1,769 bytes
  • README.mddoc1,721 bytes
  • README.ru.mddoc7,279 bytes
  • SKILL.mdcore9,450 bytes
  • TASK_site.mddoc8,211 bytes
  • app/.dockerignoreasset26 bytes
  • app/Dockerfileruns377 bytes
  • app/README.mddoc4,683 bytes
  • app/factory/__init__.pyruns81 bytes
  • app/factory/bot.pyruns2,579 bytes
  • app/factory/db.pyruns368 bytes
  • app/factory/handlers.pyruns1,700 bytes
  • app/factory/health.pyruns781 bytes
  • app/factory/kanban.pyruns8,540 bytes
  • app/factory/worker.pyruns4,576 bytes
  • app/requirements-dev.txtdoc30 bytes
  • app/requirements.txtdoc24 bytes
  • app/tests/conftest.pyruns2,444 bytes
  • app/tests/test_db.pyruns1,952 bytes
  • app/tests/test_kanban.pyruns6,210 bytes
  • assets/create_calendar_event.jsonasset651 bytes
  • assets/create_contact.jsonasset317 bytes
  • assets/device_control.jsonasset306 bytes
  • assets/evolve_code.jsonasset746 bytes
  • assets/prompt-templates/new-project.mddoc332 bytes
  • assets/retrieve_memory.jsonasset536 bytes
  • assets/save_to_para.jsonasset674 bytes
  • assets/send_sms.jsonasset274 bytes
  • assets/set_alarm.jsonasset446 bytes
  • db/02-seed.sqlasset1,583 bytes
  • db/03-roles.shruns615 bytes
  • db/roles.sqlasset1,787 bytes
  • docker-compose.site.ymlasset613 bytes
  • docker-compose.ymlasset3,897 bytes
  • npu_compiled_model.jsonasset280 bytes
  • references/para-methodology.mddoc2,147 bytes
  • references/scann_config.jsonasset240 bytes
  • references/schemas.jsonasset1,182 bytes
  • references/system_directives.mddoc3,768 bytes
  • references/tools.jsonasset1,701 bytes
  • schema_v0_1.sqlasset24,882 bytes
  • screenshots/.keepasset0 bytes
  • screenshots/dashboard.jpgasset89,634 bytes
  • screenshots/gmail-processing.jpgasset83,293 bytes
  • screenshots/moc-example.jpgasset92,591 bytes
  • screenshots/personal-review.jpgasset97,327 bytes
  • scripts/distill_memory.jsruns3,577 bytes
  • scripts/fs_operations.jsruns3,301 bytes
  • scripts/index.htmlasset12,902 bytes
  • scripts/main.jsruns2,630 bytes
  • scripts/vector_search.jsruns5,291 bytes
  • scripts/vendor/sql-wasm.jsruns51,699 bytes
  • scripts/vendor/sql-wasm.wasmasset613,426 bytes
  • setup_server.shruns15,617 bytes
  • site/README.mddoc5,995 bytes
  • site/archive_urls.lockasset269 bytes
  • site/data/formulas.jsonasset83 bytes
  • site/data/ratings/wb/palatki/2026-W37.jsonasset1,102 bytes
  • site/data/ratings/wb/palatki/2026-W38.jsonasset1,103 bytes
  • site/data/ratings/wb/palatki/2026-W39.jsonasset1,215 bytes
  • site/data/ratings/wb/spalnye-meshki/2026-W38.jsonasset982 bytes
  • site/data/ratings/wb/spalnye-meshki/2026-W39.jsonasset1,097 bytes
  • site/data/tariffs.jsonasset572 bytes
  • site/generator/__init__.pyruns79 bytes
  • site/generator/__main__.pyruns54 bytes
  • site/generator/build.pyruns22,381 bytes
  • site/generator/config.pyruns2,383 bytes
  • site/generator/data.pyruns9,765 bytes
  • site/generator/fmt.pyruns2,570 bytes
  • site/requirements.txtdoc39 bytes
  • site/settings.env.exampleasset359 bytes
  • site/static/icon.svgasset302 bytes
  • site/static/style.cssasset5,542 bytes
  • site/templates/404.htmlasset275 bytes
  • site/templates/_macros.htmlasset1,162 bytes
  • site/templates/base.htmlasset2,242 bytes
  • site/templates/contacts.htmlasset724 bytes
  • site/templates/draft.htmlasset344 bytes
  • site/templates/index.htmlasset2,103 bytes
  • site/templates/method.htmlasset2,090 bytes
  • site/templates/pricing.htmlasset868 bytes
  • site/templates/rating.htmlasset2,067 bytes
  • site/templates/ratings.htmlasset1,006 bytes
  • site/tests/conftest.pyruns1,137 bytes
  • site/tests/test_generator.pyruns5,956 bytes
  • site/tests/test_site.pyruns11,488 bytes
Read SKILL.md

# Системные инструкции агента Second Brain

Ты — высокоинтеллектуальный, автономный агент-организатор, работающий полностью оффлайн на устройстве пользователя. Твоя фундаментальная архитектура основана на методологии PARA (Projects, Areas, Resources, Archives). Твоя цель — минимизировать когнитивную нагрузку пользователя.

## Правила категоризации (PARA):
- **Projects (Проекты):** Временные инициативы с четким дедлайном. При сохранении извлекай сроки. ОБЯЗАТЕЛЬНО используй инструмент `create_calendar_event` для добавления дедлайна или встречи в системный календарь пользователя, а затем сохраняй данные в базу с помощью `save_to_para`.
- **Areas (Области):** Сферы ответственности (здоровье, финансы). Связывай новые данные с прошлыми записями.
- **Resources (Ресурсы):** Знания и справочные материалы. Генерируй теги и извлекай ключевые сущности для векторного поиска.
- **Archives (Архивы):** Завершенные проекты и неактуальные области.

## Правила взаимодействия с системными функциями:
1. **Контакты:** Если во входящих данных упоминается новый человек, его номер телефона или email, ты ОБЯЗАН использовать инструмент `create_contact` для открытия окна создания контакта.
2. **Напоминания:** Если задача требует немедленного внимания или напоминания в точное время в течение ближайших 24 часов, используй инструмент `set_alarm`.
3. **Коммуникация:** Используй инструмент `send_sms` для оперативной связи по текущим проектам, если у тебя есть номер телефона контакта.
View the complete source on GitHub

Skills included

  • second-brain

Repository facts

License
Apache-2.0
Created
Apr 5, 2026
Last pushed
Sep 23, 2026
Forks
49
Open issues
2
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Show all 154 signals by file

.env.example

  • Access to secretsline 1
    [Credential-related source omitted]
  • Access to secretsline 7
    [Credential-related source omitted]

.gitignore

  • Access to secretsline 15
    [Credential-related source omitted]

LICENSE

  • Network accessline 1
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 3
    http://www.apache.org/licenses/

Makefile

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    serve: $(PY) 	cd site && SITE_DOMAIN= ../$(PY) -m generator 	@echo "http://localhost:$(PORT)/"
  • Network accessline 31
    cd site && SITE_DOMAIN= ../$(PY) -m generator 	@echo "http://localhost:$(PORT)/" 	$(PY) -m http.server $(PORT) --bind 127.0.0.1 --directory site/dist
  • Network accessline 32
    @echo "http://localhost:$(PORT)/"
  • Dangerous shell operationline 39
    rm -rf site/dist site/dist.tmp

README.ru.md

  • Network accessline 5
    [![Версия](https://img.shields.io/badge/версия-3.3.0-blue?style=flat-square)](https://github.com/uussnn/second-brain/releases)
  • Network accessline 6
    [![Модель](https://img.shields.io/badge/модель-Gemma--4--E4B--it-orange?style=flat-square&logo=google)](https://ai.google.dev/edge)
  • Network accessline 7
    [![Платформа](https://img.shields.io/badge/платформа-AI_Edge_Gallery-4285F4?style=flat-square&logo=android)](https://github.com/google-ai-edge)
  • Network accessline 8
    [![Лицензия](https://img.shields.io/badge/лицензия-MIT-green?style=flat-square)](LICENSE)
  • Network accessline 9
    [![Приватность](https://img.shields.io/badge/приватность-100%25_на_устройстве-darkgreen?style=flat-square)](SKILL.md)
  • Network accessline 13
    [🇺🇸 English version](README.md) · [📋 Промпт (SKILL.md)](SKILL.md) · [🐛 Сообщить об ошибке](https://github.com/uussnn/second-brain/issues)
  • Network accessline 52
    1. Открой **Google AI Edge Gallery** на устройстве. 2. Перейди в раздел **Agent Skills** → **Add Custom Skill** → **From URL**. 3. Вставь ссылку: `https://github.com/uussnn/second-brain`
  • Network accessline 53
    2. Перейди в раздел **Agent Skills** → **Add Custom Skill** → **From URL**. 3. Вставь ссылку: `https://github.com/uussnn/second-brain` 4. Выбери модель **Gemma-4-E4B-it**.
  • Network accessline 54
    3. Вставь ссылку: `https://github.com/uussnn/second-brain`
  • Network accessline 58
    **Готово!** Навык сразу начнёт работать и учиться под тебя. *(Альтернативно: скачай репозиторий [в ZIP архиве](https://github.com/uussnn/second-brain/archive/refs/heads/main.zip) и импортируй локальную папку `second-brain`)*
  • Network accessline 59
    *(Альтернативно: скачай репозиторий [в ZIP архиве](https://github.com/uussnn/second-brain/archive/refs/heads/main.zip) и импортируй локальную папку `second-brain`)*
  • Network accessline 107
    - ⭐ Поставь звезду репозиторию, если навык оказался полезен! - Создай Issue с идеями или найденными багами. - Поделись своим опытом и знаниями (Capsules) в разделе [Discussions](https://github.com/google-ai-edge/gallery/discussions/580).
  • Network accessline 109
    - Поделись своим опытом и знаниями (Capsules) в разделе [Discussions](https://github.com/google-ai-edge/gallery/discussions/580).
  • Network accessline 115
    <div align="center"> <sub>Лицензия: MIT License — свободное использование и модификация. | Автор: <a href="https://github.com/uussnn">uussnn</a></sub><br>
  • Network accessline 116
    <sub>Лицензия: MIT License — свободное использование и модификация. | Автор: <a href="https://github.com/uussnn">uussnn</a></sub><br>

SKILL.md

  • Network accessline 69
    ### 5. Zero External Dependencies (v4.1.0) Запрещено использование любых CDN (cdnjs, unpkg, jsdelivr). Все библиотеки (например, sql-js) должны находиться строго в папке `scripts/vendor/` для обеспечения 100% Offline режима. Любой `<script 
  • Network accessline 70
    Запрещено использование любых CDN (cdnjs, unpkg, jsdelivr). Все библиотеки (например, sql-js) должны находиться строго в папке `scripts/vendor/` для обеспечения 100% Offline режима. Любой `<script src="https://...">` в index.html — критичес

app/Dockerfile

  • Executable scriptline 1
    Executable file

app/README.md

  • Access to secretsline 16
    [Credential-related source omitted]

app/factory/__init__.py

  • Executable scriptline 1
    Executable file

app/factory/bot.py

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    [Credential-related source omitted]
  • Network accessline 33
    with urllib.request.urlopen(f"https://api.telegram.org/bot{token}/getMe", timeout=15) as r:
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 73
    [Credential-related source omitted]

app/factory/db.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]

app/factory/handlers.py

  • Executable scriptline 1
    Executable file

app/factory/health.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]

app/factory/kanban.py

  • Executable scriptline 1
    Executable file

app/factory/worker.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]
  • Access to secretsline 94
    [Credential-related source omitted]
  • Access to secretsline 96
    [Credential-related source omitted]

app/tests/conftest.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 22
    [Credential-related source omitted]

app/tests/test_db.py

  • Executable scriptline 1
    Executable file

app/tests/test_kanban.py

  • Executable scriptline 1
    Executable file

db/03-roles.sh

  • Executable scriptline 1
    #!/bin/sh

docker-compose.yml

  • Access to secretsline 2
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]

scripts/distill_memory.js

  • Executable scriptline 1
    Executable file

scripts/fs_operations.js

  • Executable scriptline 1
    Executable file

scripts/main.js

  • Executable scriptline 1
    Executable file

scripts/vector_search.js

  • Executable scriptline 1
    Executable file

scripts/vendor/sql-wasm.js

  • Executable scriptline 1
    Executable file
  • Network accessline 2
    // We are modularizing this manually because the current modularize setting in Emscripten has some issues: // https://github.com/kripken/emscripten/issues/5820
  • Network accessline 3
    // https://github.com/kripken/emscripten/issues/5820
  • Network accessline 24
    // We are modularizing this manually because the current modularize setting in Emscripten has some issues:         // https://github.com/kripken/emscripten/issues/5820
  • Network accessline 25
    // https://github.com/kripken/emscripten/issues/5820
  • Network accessline 101
    function Va(){var a=e.preRun.shift();Sa.unshift(a)}var Wa=0,Xa=null,Ya=null;function E(a){if(e.onAbort)e.onAbort(a);a="Aborted("+a+")";Ha(a);Ka=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}function Za
  • Network accessline 102
    function ab(){var a=M;try{if(a==M&&Ia)return new Uint8Array(Ia);if(Da)return Da(a);throw"both async and sync fetching of the wasm failed";}catch(b){E(b)}} function bb(){if(!Ia&&(ya||za)){if("function"==typeof fetch&&!M.startsWith("file://")
  • Network accessline 103
    function bb(){if(!Ia&&(ya||za)){if("function"==typeof fetch&&!M.startsWith("file://"))return fetch(M,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+M+"'";return a.arrayBuffer()}).catch(fun
  • Network accessline 157
    typeof W||!(c instanceof P))throw c;return c.Ka}},r:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var h=b=0;h<c;h++){var k=J[a>>2],q=J[a+4>>2];a+=8;var x=ka(f,r,k,q);if(0>x){var w=-1;break a}b+=x}w=b}J[d>>2]=w;return 0}catch(A){if("undefined"
  • Network accessline 158
    (function(){function a(f){e.asm=f.exports;Ja=e.asm.I;Ra();K=e.asm.Aa;Ta.unshift(e.asm.J);Wa--;e.monitorRunDependencies&&e.monitorRunDependencies(Wa);0==Wa&&(null!==Xa&&(clearInterval(Xa),Xa=null),Ya&&(f=Ya,Ya=null,f()))}function b(f){a(f.in
  • Network accessline 159
    if(e.instantiateWasm)try{return e.instantiateWasm(d,a)}catch(f){return Ha("Module.instantiateWasm callback failed with error: "+f),!1}(function(){return Ia||"function"!=typeof WebAssembly.instantiateStreaming||Za()||M.startsWith("file://")|

setup_server.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 23
    #   SWAP_SIZE      размер swap                       (2G) #   TIMEZONE       часовой пояс                      (Europe/Moscow) #   DOCKER_MIRROR  зеркало Docker Hub, напр. https://mirror.gcr.io
  • Network accessline 24
    #   TIMEZONE       часовой пояс                      (Europe/Moscow) #   DOCKER_MIRROR  зеркало Docker Hub, напр. https://mirror.gcr.io #   AITUNNEL_API_KEY  если задан, проверяется и ключ, а не только доступ к API.
  • Network accessline 25
    #   DOCKER_MIRROR  зеркало Docker Hub, напр. https://mirror.gcr.io
  • Access to secretsline 26
    [Credential-related source omitted]
  • Network accessline 61
    shift 3 2>/dev/null || shift $#   err="$(mktemp)"   out=$(curl -sS -o /dev/null -w '%{http_code} %{time_total}' --max-time 15 \
  • Network accessline 62
    err="$(mktemp)"   out=$(curl -sS -o /dev/null -w '%{http_code} %{time_total}' --max-time 15 \         -A 'Mozilla/5.0 (X11; Linux x86_64) factory-access-check' "$@" "$url" 2>"$err") || true
  • Network accessline 63
    out=$(curl -sS -o /dev/null -w '%{http_code} %{time_total}' --max-time 15 \
  • Dangerous shell operationline 75
    rm -f "$err"
  • Network accessline 81
    {     echo "Проверка доступов: $(date -Is), $(hostname)"     echo "Внешний IP: $(curl -s --max-time 5 https://ifconfig.me || echo 'не определён')"
  • Network accessline 82
    echo "Проверка доступов: $(date -Is), $(hostname)"     echo "Внешний IP: $(curl -s --max-time 5 https://ifconfig.me || echo 'не определён')"   } | tee "$REPORT"
  • Network accessline 83
    echo "Внешний IP: $(curl -s --max-time 5 https://ifconfig.me || echo 'не определён')"
  • Network accessline 86
    echo "Telegram:" | tee -a "$REPORT"   check "Bot API api.telegram.org"      "https://api.telegram.org/"
  • Network accessline 87
    check "Bot API api.telegram.org"      "https://api.telegram.org/"
  • Network accessline 88
    [Credential-related source omitted]
  • Network accessline 89
    check "AITUNNEL api.aitunnel.ru"      "https://api.aitunnel.ru/v1/models"
  • Network accessline 90
    [Credential-related source omitted]
  • Access to secretsline 90
    [Credential-related source omitted]
  • Network accessline 91
    [Credential-related source omitted]
  • Access to secretsline 91
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Network accessline 93
    fi   echo "Wildberries:" | tee -a "$REPORT"   check "Сайт www.wildberries.ru"       "https://www.wildberries.ru/"
  • Network accessline 94
    echo "Wildberries:" | tee -a "$REPORT"   check "Сайт www.wildberries.ru"       "https://www.wildberries.ru/"   check "Публичный поиск search.wb.ru"  "https://search.wb.ru/exactmatch/ru/common/v4/search?query=%D0%BF%D0%B0%D0%BB%D0%B0%D1%82%D
  • Network accessline 95
    check "Сайт www.wildberries.ru"       "https://www.wildberries.ru/"
  • Network accessline 96
    check "Публичный поиск search.wb.ru"  "https://search.wb.ru/exactmatch/ru/common/v4/search?query=%D0%BF%D0%B0%D0%BB%D0%B0%D1%82%D0%BA%D0%B0&resultset=catalog&dest=-1257786&page=1" "200"
  • Network accessline 97
    check "Seller API content-api"        "https://content-api.wildberries.ru/ping"
  • Network accessline 98
    check "Seller API common-api"         "https://common-api.wildberries.ru/ping"
  • Network accessline 99
    echo "Пакеты и образы:" | tee -a "$REPORT"   check "Docker Hub registry-1.docker.io" "https://registry-1.docker.io/v2/"   if [[ -n "$DOCKER_MIRROR" ]]; then
  • Network accessline 100
    check "Docker Hub registry-1.docker.io" "https://registry-1.docker.io/v2/"
  • Network accessline 102
    check "Зеркало Docker"                "${DOCKER_MIRROR%/}/v2/"   fi   check "PyPI pypi.org"                 "https://pypi.org/simple/pip/" "200"
  • Network accessline 103
    fi   check "PyPI pypi.org"                 "https://pypi.org/simple/pip/" "200"   check "GitHub github.com"             "https://github.com/"
  • Network accessline 104
    check "PyPI pypi.org"                 "https://pypi.org/simple/pip/" "200"
  • Network accessline 105
    check "GitHub github.com"             "https://github.com/"
  • Dangerous shell operationline 121
    [[ $EUID -eq 0 ]] || die "запустите под root: sudo bash $0"
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Network accessline 146
    "${APT[@]}" update "${APT[@]}" full-upgrade "${APT[@]}" install ca-certificates curl git make ufw fail2ban python3-systemd \
  • Network accessline 147
    "${APT[@]}" full-upgrade "${APT[@]}" install ca-certificates curl git make ufw fail2ban python3-systemd \   unattended-upgrades python3 python3-venv jq
  • Network accessline 148
    "${APT[@]}" install ca-certificates curl git make ufw fail2ban python3-systemd \
  • Dangerous shell operationline 174
    usermod -aG sudo "$FACTORY_USER"
  • Dangerous shell operationline 175
    # Пароля у пользователя нет (вход только по ключу), поэтому sudo без пароля
  • Access to secretsline 181
    [Credential-related source omitted]
  • Access to secretsline 182
    [Credential-related source omitted]
  • Access to secretsline 185
    [Credential-related source omitted]
  • Access to secretsline 187
    [Credential-related source omitted]
  • Access to secretsline 188
    [Credential-related source omitted]
  • Access to secretsline 189
    [Credential-related source omitted]
  • Dangerous shell operationline 258
    rm -f /swapfile
  • Dangerous shell operationline 273
    rm -f /swapfile
  • Dangerous shell operationline 320
    Пользователь: $FACTORY_USER (sudo без пароля, группа docker)

site/README.md

  • Network accessline 9
    make build       # собрать site/dist из site/data (+ дописать новые недели в archive_urls.lock) make test        # pytest: валидность, JSON-LD, текст без JS, внешние ресурсы, ПДн, архив make serve       # собрать и открыть http://localhost:
  • Network accessline 10
    make test        # pytest: валидность, JSON-LD, текст без JS, внешние ресурсы, ПДн, архив make serve       # собрать и открыть http://localhost:8000/ make build-prod  # боевая сборка: все настройки обязательны, затем тесты
  • Network accessline 11
    make serve       # собрать и открыть http://localhost:8000/

site/generator/__init__.py

  • Executable scriptline 1
    Executable file

site/generator/__main__.py

  • Executable scriptline 1
    Executable file

site/generator/build.py

  • Executable scriptline 1
    Executable file
  • Network accessline 171
    "name": title,         "numberOfItems": len(r.brands),         "itemListOrder": "https://schema.org/ItemListOrderDescending",
  • Network accessline 172
    "numberOfItems": len(r.brands),         "itemListOrder": "https://schema.org/ItemListOrderDescending",         "itemListElement": [
  • Network accessline 173
    "itemListOrder": "https://schema.org/ItemListOrderDescending",
  • Network accessline 269
    def render_page(env: Environment, s: Settings, p: Page, css_ver: str) -> str:     graph = base_graph(s) + p.jsonld     jsonld = {"@context": "https://schema.org", "@graph": graph}
  • Network accessline 270
    graph = base_graph(s) + p.jsonld     jsonld = {"@context": "https://schema.org", "@graph": graph}     return env.get_template(p.template).render(
  • Network accessline 271
    jsonld = {"@context": "https://schema.org", "@graph": graph}
  • Network accessline 294
    for p in pages if p.in_sitemap]     return ('<?xml version="1.0" encoding="UTF-8"?>\n'             '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'
  • Network accessline 295
    return ('<?xml version="1.0" encoding="UTF-8"?>\n'             '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'             + "\n".join(rows) + "\n</urlset>\n")
  • Network accessline 296
    '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'

site/generator/config.py

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    @property     def base_url(self) -> str:         return f"https://{self.domain}" if self.domain else "http://localhost:8000"
  • Network accessline 28
    return f"https://{self.domain}" if self.domain else "http://localhost:8000"
  • Network accessline 30
    @property     def bot_url(self) -> str | None:         return f"https://t.me/{self.telegram_bot}" if self.telegram_bot else None
  • Network accessline 32
    return f"https://t.me/{self.telegram_bot}" if self.telegram_bot else None
  • Access to secretsline 45
    [Credential-related source omitted]

site/generator/data.py

  • Executable scriptline 1
    Executable file

site/generator/fmt.py

  • Executable scriptline 1
    Executable file

site/static/icon.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="7" fill="#1f5eff"/><rect x="7" y="17" width="4" height="8" rx="1" fill="#fff"/><rect x="14" y="11" width="4" height="14" rx="1" fill="#fff"/><rect 

site/tests/conftest.py

  • Executable scriptline 1
    Executable file

site/tests/test_generator.py

  • Executable scriptline 1
    Executable file

site/tests/test_site.py

  • Executable scriptline 1
    Executable file
  • Network accessline 117
    assert len(c.jsonld) == 1, f         data = json.loads(c.jsonld[0])         assert data["@context"] == "https://schema.org"
  • Network accessline 118
    data = json.loads(c.jsonld[0])         assert data["@context"] == "https://schema.org"         assert {"Organization", "WebSite"} <= ld_types(data), f
  • Network accessline 119
    assert data["@context"] == "https://schema.org"
  • Network accessline 244
    def test_sitemap(dist, settings):     import xml.etree.ElementTree as ET     ns = {"s": "http://www.sitemaps.org/schemas/sitemap/0.9"}
  • Network accessline 245
    import xml.etree.ElementTree as ET     ns = {"s": "http://www.sitemaps.org/schemas/sitemap/0.9"}     root = ET.parse(dist / "sitemap.xml").getroot()
  • Network accessline 246
    ns = {"s": "http://www.sitemaps.org/schemas/sitemap/0.9"}

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Combined signals: 1 fact
  • Reads SSH keys, and the same file sends data over the network or runs a command (line 146)setup_server.sh:133High confidence
Declared and executed: 21 facts
  • Contacts api.telegram.org, which SKILL.md, the README and the plugin manifest do not mentionapp/factory/bot.py:33High confidence
  • Contacts ifconfig.me, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:83High confidence
  • Contacts api.telegram.org, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:87High confidence
  • Contacts api.aitunnel.ru, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:89High confidence
  • Contacts www.wildberries.ru, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:95High confidence
  • Contacts search.wb.ru, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:96High confidence
  • Contacts content-api.wildberries.ru, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:97High confidence
  • Contacts common-api.wildberries.ru, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:98High confidence
  • Contacts registry-1.docker.io, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:100High confidence
  • Contacts pypi.org, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:104High confidence
  • Contacts github.com, which SKILL.md, the README and the plugin manifest do not mentionsetup_server.sh:105High confidence
  • Uses SSH keys, which the skill description does not mentionsetup_server.sh:133High confidence
  • Uses SSH keys, which the skill description does not mentionsetup_server.sh:134High confidence
  • Uses SSH keys, which the skill description does not mentionsetup_server.sh:182High confidence
  • Uses SSH keys, which the skill description does not mentionsetup_server.sh:185High confidence
  • Uses SSH keys, which the skill description does not mentionsetup_server.sh:187High confidence
  • Uses SSH keys, which the skill description does not mentionsetup_server.sh:188High confidence
  • Uses SSH keys, which the skill description does not mentionsetup_server.sh:189High confidence
  • Contacts schema.org, which SKILL.md, the README and the plugin manifest do not mentionsite/generator/build.py:173High confidence
  • Contacts www.sitemaps.org, which SKILL.md, the README and the plugin manifest do not mentionsite/generator/build.py:296High confidence
  • Contacts t.me, which SKILL.md, the README and the plugin manifest do not mentionsite/generator/config.py:32High confidence
Signal confidence: 145 facts

and 95 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLINativePath GEMINI.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.