원클릭으로
new-module
Scaffold a new hardware-isolated module with tests and wiring
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Scaffold a new hardware-isolated module with tests and wiring
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Reference for deploying to the Raspberry Pi
Review code changes against the HelmLog-specific data licensing policy (docs/data-licensing.md) — embargoes, protest firewall, biometrics consent, gambling exclusion, fleet-benchmark thresholds, coach access expiry. The model recovers general PII / cross-tenant / audit-logging concerns by default; this skill encodes only the HelmLog-specific items that are not recoverable from general engineering judgment. TRIGGER when modifying code that handles user data, PII, co-op/federation data sharing, export endpoints, deletion/anonymization, or audit logging. Key files — storage.py, export.py, peer_api.py, peer_client.py, federation.py, transcribe.py, audio.py, web.py (data endpoints). DO NOT trigger for UI-only changes, instrument decoding, polar analysis, config, docs, or CSS/JS/templates.
Run pre-PR verification checks before creating a pull request. TRIGGER when implementation is complete and the user is ready to create or push a PR — e.g., "create a PR", "ready for review", "push this up", or running /pr-checklist. DO NOT trigger mid-implementation, during TDD cycles, when exploring code, or when the user is still writing features.
HelmLog-specific test patterns and the pre-existing-error allowlist for ruff/mypy. The Red-Green-Refactor cycle and lint commands are already mandated in CLAUDE.md — this skill encodes only the patterns and known-pre-existing-errors list that aren't recoverable from existing tests at a glance. TRIGGER when writing or modifying Python source code in src/helmlog/. DO NOT trigger for documentation, config, templates, CSS/JS, skill definitions, or changes that don't affect runtime behavior.
Run a focused per-race debrief and attach the summary as a moment on the session. TRIGGER when the user says "debrief race N", "debrief that race", "/debrief", "post-race analysis", or asks for analysis of a single specific race. DO NOT trigger for season-wide reviews (that's a manual run of scripts/analysis/full_analysis.py), broad questions about boat performance, or non-race sessions.
Detect OCS (over-the-line at gun, returned to clear) races against the live DB and apply the 'ocs' tag to any newly identified ones. TRIGGER when the user asks "check for OCS", "did we OCS", "tag OCS races", "/ocs-check", or after a race day to find any starts that should be marked OCS. Auto-trigger when running /debrief on a race that hasn't been OCS-checked yet.
| name | new-module |
| description | Scaffold a new hardware-isolated module with tests and wiring |
| disable-model-invocation | true |
$ARGUMENTSFollow this checklist to create a new hardware-isolated module. Use TDD (/tdd)
for each step that involves code.
Before any file edits, make sure the session is in a git worktree. Check
git worktree list — reuse an existing one via EnterWorktree(path=...) if
it matches this task, otherwise create a new one via EnterWorktree(name=...).
Scaffolding touches tests/, src/logger/, main.py, and often web.py and
storage.py — exactly the kind of multi-file change that collides with other
agents sharing the repo. See CLAUDE.md for the full rule.
Create tests/test_$ARGUMENTS.py with tests for the module's public API.
Use the storage fixture from conftest.py and mock any external I/O.
Create src/logger/$ARGUMENTS.py:
loguru for logging (never print())If the module needs database tables:
_CURRENT_VERSION in storage.py_MIGRATIONS dictstorage fixtureIf the module needs API endpoints or admin UI:
web.py following existing patternsrequire_auth("admin")_nav_html()test_web.pymain.py (hardware isolation principle)_web_loop() / create_app() if neededIf the module requires new packages:
uv add <package> (never edit pyproject.toml manually for deps)uv sync and verify the import worksuv pip install — it bypasses the lockfile and won't persist.env.example with commentsCLAUDE.md project structure tree/pr-checklist