Forward Deployed Engineer delivery contract for AWS engagements, build-first artifacts, grounded cost estimates, Well-Architected review, evolution roadmap
日本語の概要は準備中です。原文の説明を表示しています。
First-run onboarding — guides new users through Genesis setup on their first CC session. Configures user profile, essential API keys, Telegram, GitHub backup, and service verification. Triggered automatically while the install is not yet FUNCTIONAL (the setup floor — Claude Code login + an LLM key + an embedding key — is unmet), not merely while ~/.genesis/setup-complete is absent. Re-runnable by asking Genesis to "run setup" or "reconfigure [section]".
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Guide a new user through Genesis setup on their first interactive CC session. By the end, every critical subsystem is configured and verified live.
This skill is triggered automatically while the install is not yet functional
— i.e. the setup floor (genesis.onboarding.floor: Claude Code login + at least
one LLM/routing key + at least one embedding key) is unmet. It is NOT gated on the
~/.genesis/setup-complete marker (that marker means "bootstrap finished" and does
not imply a working brain). So a bootstrapped box that is still missing keys is
still guided here. It can also be invoked manually by asking Genesis to "run setup"
or "reconfigure [section]" to re-run specific sections.
Before this skill runs, install.sh (Layer 1) has already completed:
.claude/settings.json and .mcp.jsonsecrets.env created from template (may be empty)This skill handles everything that benefits from conversational guidance rather than scripted prompts.
The references/provider-guide.md file in this skill directory contains
detailed information about every API provider Genesis supports — what each key
unlocks, where to sign up, pricing tiers, and env var names. Read this file
during Step 2 and Step 5 to give the user accurate, specific information.
Do not expect the user to read it themselves — you present the relevant parts
conversationally.
If the user asks to reconfigure a specific section (e.g., "reconfigure secrets", "reconfigure telegram"), skip to that section only.
If ~/.genesis/setup-complete already exists, inform the user: "Onboarding was
already completed on [date]. Running the requested section only." Then proceed
with just the requested section (or offer a menu if no argument given).
Phase A — Essentials (Steps 1-4): These MUST be completed before onboarding can finish. Without them, Genesis cannot function. Do not let the user skip past these.
Phase B — Expansion (Step 5): Additional providers and capabilities the user can configure now or come back to later. Exploratory — show what's possible, let the user decide how deep to go.
The transition between phases should feel natural:
Good — the core system is working. Now let me show you what else you can configure to get more out of Genesis. None of this is required right now, but each key you add opens up new capabilities.
Introduce yourself. Be warm but direct — the user is here to get things working, not to read a manual.
Say something like:
I'm Genesis. This is our first session together, so let me help you get everything configured. This will take a few minutes — by the end, you'll have a fully operational system with verified API connections.
First, let me learn a bit about you so I can tailor how I work.
Gather (conversationally, not as a form):
Write results to:
src/genesis/identity/USER.md — update the user profile sectionUSER_TIMEZONE in secrets.env if providedDo NOT ask all questions at once. One or two at a time, naturally.
Principle: User sovereignty over secrets. Default to showing where things are, not asking for keys. Let the user choose their comfort level.
Read secrets.env and check which keys are configured vs. empty.
Read references/provider-guide.md to have full provider details available.
Report status clearly:
Here's your current API key status:
Configured: [list any that have values] Not yet configured: [list empty ones]
Your secrets file is at:
~/genesis/secrets.env
Explain what's essential and why:
To get Genesis fully operational, we need three things:
1. An LLM provider — this is Genesis's brain. I use language models for reasoning, reflection, triage, and every cognitive task. OpenRouter is the simplest option — one key covers 200+ models and I'll route to the best one for each task. Sign up at openrouter.ai/keys.
2. An embedding provider — this is how I remember things. Embeddings turn text into vectors for semantic search. DeepInfra is fast and cheap (~$0.01/M tokens). Sign up at deepinfra.com.
3. Telegram — this is how I reach you. Morning reports, alerts, proactive insights — all of Genesis's outreach happens over Telegram. Without it, I can only talk to you when you open a session.
These three make Genesis fully functional. We can't move forward without at least the LLM and embedding keys.
Respect their choice on HOW to provide keys:
You can edit
secrets.envdirectly with any editor — nano, vim, or transfer the file with SFTP/SCP. Or if you'd prefer, you can paste your API keys here and I'll write them to the file for you. Your choice.
If they provide keys, write them to secrets.env using the Edit tool:
API_KEY_OPENROUTER=)chmod 600 secrets.env after writingTelegram setup (essential, not optional):
Let's set up Telegram so I can reach you outside of these sessions. You'll need to create a bot via @BotFather on Telegram — it takes about 30 seconds. Here's how:
- Open Telegram, search for @BotFather, start a chat
- Send
/newbot, pick a name and username- Copy the bot token it gives you
TELEGRAM_BOT_TOKEN to secrets.envTELEGRAM_ALLOWED_USERSTELEGRAM_FORUM_CHAT_IDoutreach_send MCP toolGate check: Do NOT proceed past this step until at least one LLM key and one embedding key are configured and the user has acknowledged the Telegram decision (configured or explicitly deferred).
Check GitHub auth: gh auth status
If not authenticated:
Genesis backs up your data every 6 hours to a private GitHub repo — your database, memories, configuration, and session transcripts. Let's get GitHub set up.
Run this command:
gh auth login(Type! gh auth loginat the CC prompt to run it in this session.)
Wait for them to complete it, then verify with gh auth status.
Once authenticated:
gh auth statusgenesis-backups"gh repo view <user>/genesis-backupsgh repo create genesis-backups --privateWrite GENESIS_BACKUP_REPO=<user>/genesis-backups to secrets.env.
Set the backup passphrase (required for encryption):
GENESIS_BACKUP_PASSPHRASE is already set to a non-empty value in secrets.env.openssl rand -base64 32GENESIS_BACKUP_PASSPHRASE=<value> to secrets.env.secrets.env, the backups cannot be
decrypted. There is no recovery without it.Verify backup script can reach it: git ls-remote https://github.com/<user>/genesis-backups.git
Configure Tier 2 (large data). GitHub (Tier 1) holds only small encrypted text — memory, config, secrets. The large binaries (SQLite DB, Qdrant snapshots, transcripts) are gitignored from GitHub and need a separate target, or they stay local-only (no off-machine backup). Ask the user:
GENESIS_BACKUP_NAS=//host/share,
GENESIS_BACKUP_NAS_USER, GENESIS_BACKUP_NAS_PASS in secrets.env
(requires smbclient).Run one verify backup and confirm it succeeded (do NOT proceed if it
fails): bash "$HOME/genesis/scripts/backup.sh", then check
~/.genesis/backup_status.json shows "success": true (and
"tier2_status": "ok" if a NAS was configured).
Enable the 6h backup timer — only after the verify run passed.
systemctl --user enable --now genesis-backup.timer (the unit files are
installed by bootstrap but left disabled). Confirm with
systemctl --user list-timers genesis-backup.timer. This is done HERE,
deliberately — never auto-enabled at bootstrap — so backups are an opt-in,
verified setup, not a switch flipped for every install. (Do NOT also add a
crontab entry — the timer is the single scheduler; two would double every
backup.)
This is the essential verification. Every configured key gets tested live. Phase A does not complete without critical endpoints passing.
For each configured provider, make a lightweight API call:
LLM providers — Use the health_status MCP tool which runs
validate_api_keys() internally. This tests each configured provider
with a real HTTP request.
Embedding provider — Test with a real embedding:
memory_store MCP tool to store a test memory, orhealth_statusQdrant — Verify the vector database is running and writable:
memory_storememory_recallTelegram (if configured) — Send a test message:
If you received a Telegram message from me, it's working!
Backup repo (if configured) — git ls-remote to verify push access.
Database — Check that genesis.db exists and is writable:
ls -la ~/genesis/data/genesis.db
CC hooks — Already verified (the SessionStart hook triggered this flow).
Report:
Endpoint Verification:
- OpenRouter: PASS (models endpoint responded)
- DeepInfra: PASS (embedding returned 1024-dim vector)
- Qdrant: PASS (write + read cycle successful)
- Telegram: PASS (test message delivered)
- Backup repo: PASS (push access verified)
- Database: PASS
- CC Hooks: PASS (you're seeing this because they work)
All critical endpoints verified. The core system is operational.
If any CRITICAL endpoint fails (LLM or embedding), explain the error and help fix it before proceeding. Do not complete Phase A with broken critical endpoints.
Transition to Phase B:
Good — the core system is working. You have a functional brain (LLM), memory (embeddings + Qdrant), [and communication (Telegram) if configured].
Now let me show you what else you can configure. None of this is required right now, but each provider you add opens up new capabilities. You can always come back to this later — just ask me to "reconfigure" anything.
This step is exploratory. Read references/provider-guide.md and present
options based on the user's interests from Step 1.
Structure the conversation around capability categories, not provider lists. The user cares about what they can DO, not what API they need.
Here's what you can unlock with additional API keys. I'll explain what each one gives you — tell me which sound useful and I'll help set them up.
Speed & Volume (LLM providers):
Deep Reasoning:
Research & Web:
Voice (if relevant to user):
For each provider the user wants to add:
health_statusPoint to the Neural Monitor:
You can always check which providers are active and how they're performing on the Neural Monitor dashboard. Once the system is running, it shows real-time status for every provider, circuit breaker states, and cost tracking.
When the user is done exploring (or wants to stop):
You can always come back to add more providers later — just ask me to "reconfigure" or check the Neural Monitor to see what's active.
Only offer if the user expressed interest in background research or content processing in Step 1.
I can watch a folder (
~/inbox/) for files you want me to process in the background. Drop a markdown file with URLs or topics and I'll research them and store what I find. Want to enable this?
If yes, create ~/inbox/ and confirm the inbox monitor service is enabled.
Store something meaningful from this conversation. This proves the full memory pipeline works AND gives Genesis its first real memory.
Let me store our first conversation as a memory — this proves the whole pipeline works and gives me something to remember you by.
Use memory_store to save a summary of:
Then immediately memory_recall with a relevant query to prove retrieval works.
I just stored and retrieved our conversation. Ask me about this tomorrow and I'll remember.
Write the completion marker:
echo "$(date -Is)" > ~/.genesis/setup-complete
Summary:
Setup complete! Here's what we configured:
Essential (Phase A):
- Profile: [name], [timezone]
- LLM: [providers configured]
- Embeddings: [provider]
- Telegram: [configured / deferred]
- Backup: [repo or "not configured"]
- All critical endpoints: Verified
Additional (Phase B):
- [list any additional providers configured, or "None yet — you can add more anytime"]
What's next:
- I'll remember everything from this conversation
- Background processes will start (health monitoring, reflection cycles)
- [If Telegram configured:] You'll get your first morning report tomorrow
- Check the Neural Monitor to see system status anytime
- Talk to me anytime — I'm always learning
If you ever want to reconfigure anything, just ask: "reconfigure secrets", "reconfigure github", "reconfigure telegram", "add a new provider", "run verification"
secrets.env only.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Forward Deployed Engineer delivery contract for AWS engagements, build-first artifacts, grounded cost estimates, Well-Architected review, evolution roadmap
日本語の概要は準備中です。原文の説明を表示しています。
Canonical guide to Genesis browser automation - layers (Camoufox, Chromium, the user's Chrome over CDP, TinyFish, desktop), per-tool timeouts, safety gates, verify-after-act, what a click checks (scroll, hit test, covered targets), overlays, iframes, tabs, and failure diagnosis
日本語の概要は準備中です。原文の説明を表示しています。
Update Claude Code (the CC CLI / "clog code") to a new version, or bump the pinned CC version. Use when the user asks to update Claude Code, bump the CC pin, evaluate a new CC release, or says "clog code update". Routes to the canonical, standardized process in docs/reference/cc-compatibility.md — do NOT re-derive the update mechanism by grepping every time. Do NOT use for general "what changed in CC" trivia with no intent to update.
日本語の概要は準備中です。原文の説明を表示しています。
This skill should be used when a session's job is to DRIVE OPEN PRs TO MERGE rather than to write new code — "close out the open PRs", "review and fix the open PRs", "what's blocking our PRs", "which PRs are mergeable". It owns the In Review column: it reads each PR's gate status, verifies and fixes review findings on PRs OTHER sessions built, replies in-thread, and stops at the merge gate for the user's per-PR approval. Do NOT load it for building a feature and opening its PR — that is a build session (`genesis-development`).
日本語の概要は準備中です。原文の説明を表示しています。
Code understanding tool selection. Use when exploring architecture, finding definitions, tracing call chains, assessing blast radius of changes, or debugging code paths in the Genesis codebase.
日本語の概要は準備中です。原文の説明を表示しています。
End-to-end content creation and publishing. Takes a topic (or generates one), drafts in the user's voice, gets approval via Telegram, and publishes to Medium via browser automation. Invoke with "publish a post about X", "write and publish to Medium", "content-publish", or when an ego-dispatched session needs to create and distribute content.
日本語の概要は準備中です。原文の説明を表示しています。