Mercurial
diff .claude/skills/zenbu-personal-site/SKILL.md @ 265:056790c4fb0d
add role-aware Epi assistant prompts
Add verified June knowledge, guest/member/admin Copilot profiles, profile-isolated session recovery, animated Epi greetings, and a single authoritative runtime config workflow for inference.
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Fri, 07 Aug 2026 10:50:30 -0700 |
| parents | 04fee26ecce0 |
| children |
line wrap: on
line diff
--- a/.claude/skills/zenbu-personal-site/SKILL.md Fri Aug 07 07:34:12 2026 -0700 +++ b/.claude/skills/zenbu-personal-site/SKILL.md Fri Aug 07 10:50:30 2026 -0700 @@ -28,7 +28,10 @@ `--zenbu-ref-color-*` or add new `--zen-*` compatibility-token usage. - `mrjunejune/test/`: integration tests and snapshots. - `mrjunejune/BUILD`: Bazel build, bundle, asset movement, and test-visible filegroups. -- `mrjunejune/.config` and `.config.development`: server configuration. Do not commit secrets. +- `mrjunejune/.config` is the single ignored runtime configuration source for + the server, auth, S3, inference, LiteLLM, and Copilot token paths. + `.config.development` is the committed copyable template. Do not use `.env` + files or require shell exports for normal build/run/deploy workflows. - The JRPG chat is a production route. Seobeo owns conversation CRUD and POST SSE, Deita stores turns, and a Bazel-managed Python Copilot SDK sidecar uses a loopback LiteLLM `github_copilot` provider. Never use a virtualenv or pip @@ -88,17 +91,16 @@ test process. Give every shard its own port, temporary database, and fixture state. -Run the complete local inference stack with: +Authenticate Copilot once, using the token directory from `.config`: ```bash -export GITHUB_COPILOT_TOKEN_DIR="$HOME/.local/state/mrjunejune/inference/litellm-copilot" -bazel run //mrjunejune/inference:litellm_proxy -- \ - --authenticate \ - --token-dir "$GITHUB_COPILOT_TOKEN_DIR" +bazel run //mrjunejune:run_inference_stack -- --authenticate +``` -LITELLM_MASTER_KEY='<local proxy key>' \ - MRJUNEJUNE_ALLOW_ANONYMOUS_INFERENCE=1 \ - bazel run //mrjunejune:run_inference_stack +Then run live inference with no shell configuration: + +```bash +bazel run //mrjunejune:run_inference_stack ``` Use `bazel run //mrjunejune:run_inference_stack -- --mock` for deterministic @@ -113,7 +115,12 @@ - Use Dowa's fixed-width aliases and `boolean`/`TRUE`/`FALSE` in first-party C instead of introducing `<stdint.h>` `_t` types or `<stdbool.h>` `bool`. - Keep auth-protected APIs strict: missing auth should be `401`, invalid token `403`, malformed JSON/input `400`, unavailable DB/S3/ffmpeg `500`. -- Never hardcode secrets. Read configuration from `.config` or environment wiring already used by the Bazel target. +- Never hardcode secrets. Normal runtime configuration and secrets come from + the single ignored `.config`. +- Normal runtime settings belong in the single ignored `.config`. Environment + variables may be used internally between supervised subprocesses or as + backwards-compatible test/deployment overrides, but must not be required user + setup and must not replace `.config` with a `.env` file. - For uploads and downloads, validate filenames and content lengths before touching `/tmp`. - For binary responses, set `content-length` and avoid string-only operations on body bytes. - If a route is part of the public website, add or update snapshot coverage in `mrjunejune/test`.