소스 정보
- 저장소
- lukemcqueen/hermes-cortex
- 최근 소스 활동
- 2026년 8월 30일 15:13
- 감지된 SKILL.md 언어
- 영어
- 스타
- 4
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/lukemcqueen/hermes-cortex --skill alembic-enum-double-create명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Cross-server agent health monitoring using binary status vectors — deploy health endpoints on each agent, poll from orchestrator, alert on state transitions.
Wire a self-hosted Langfuse instance to Hermes Agent — generate API keys, configure env vars, enable the bundled plugin, install SDK, and verify traces flow.
Use before enforcement code changes or shared-repo commits.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | alembic-enum-double-create |
| description | Use when alembic fails DuplicateObject enum on fresh DB. |
| version | 1.0.0 |
| category | software-development |
| platforms | ["linux","macos"] |
alembic upgrade head fails on a fresh/empty database (e.g. after Docker
volumes were deleted):
psycopg2.errors.DuplicateObject: type "notification_type" already exists
[SQL: CREATE TYPE notification_type AS ENUM (...)]
The api container crash-loops (health: starting forever), alembic_version
is stuck at an older revision, and web never starts (depends_on: api service_healthy). The same failure replays on every restart because
transactional DDL rolls the whole chain back.
The migration does BOTH:
sa.Enum(..., name="notification_type").create(op.get_bind())sa.Enum(..., name="notification_type", create_constraint=True)create_constraint=True makes SQLAlchemy emit CREATE TYPE again during
op.create_table (via Enum._on_table_create). Within one transaction the
type gets created twice → DuplicateObject. This only shows on a fresh DB;
an existing DB that already ran the migration never re-executes it, which is
why the bug can sit unnoticed.
Remove the explicit .create() calls. The column definitions create each
type exactly once during op.create_table:
def upgrade() -> None:
# Do NOT call sa.Enum(...).create() here — the column definitions below
# (create_constraint=True) emit CREATE TYPE during op.create_table.
# Double creation fails with DuplicateObject on a fresh DB.
op.create_table(
"notifications",
sa.Column("type", sa.Enum(..., name="notification_type", create_constraint=True), nullable=False),
...
)
Keep the downgrade dropping the types.
docker compose up -d).docker logs api | grep -E "Running upgrade|✓|✗" → all migrations run
through head, then ✓ Migrations up to date, uvicorn starts.alembic current reports the head revision.\dT+ shows the enum types exist exactly once.docker cp mode 600: copying a migration into a running container
lands with -rw------- owned by the host uid — the container user can't
read it → PermissionError on next start. Fix: docker exec -u root api chmod 644 /app/alembic/versions/<file>.py./app: if the Dockerfile COPYs the app (no volume mount for
code), docker cp is only a fast dev-loop test — rebuild the image so the
fix survives docker compose up / ./run up.alembic_version shows
the revision where the batch started (e.g. m10), not the failing one —
the whole batch rolled back.