Group G — markdown tech-debt cleanup (post-audit 2026-05-02).
- 36 SKILL.md files: added "## When to use" section. Was missing across the
catalog; orchestrator routing by keyword could not auto-dispatch.
- 20 code-implementer agent .md files: added Output Footer block prescribing
RULE 0.16 STATUS-TRUTH MARKER schema in agent's final report. Previously only
code-implementer-rust.md had it; other 27 language/role variants were silent
about the marker, breaking RULE 0.16 §3 status-truth aggregation for non-Rust
batches.
- skills/site-create/: added phase-5-preview.md and phase-6-deploy.md skeleton
files. SKILL.md table-of-contents referenced 7 phases; only 5 existed on disk.
- skills/{ai-animation,rag-pipeline}/skill.md: added migration banner comment
noting they should be SKILL.md (canonical filename). Case-rename via git is a
separate orchestrator task (macOS APFS is case-insensitive; Linux deploy needs
explicit rename).
- 3 deprecated skills (site-builder, competitor-analysis, design-inspiration):
added concrete removed-after dates (was vague "before v2").
- docs/CONVERGENCE-PLAN.md:129: TBD on _blocks/evidence-grading.md duplicate
resolved (file exists, not duplicated).
- docs/DNA-INDEX.md: count edits made then overwritten by auto-encyclopedia-refresh
hook during agent run. The .kei-registry-ignore files in test fixtures (Group F)
are the structural fix; kei-registry walker implementation is the follow-up.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
146 lines
7.4 KiB
Markdown
146 lines
7.4 KiB
Markdown
---
|
|
name: sleep-setup
|
|
description: One-time wizard (5) that configures KeiSeiKit sleep layer. Phase 0 picks mode (local-only / remote-only / hybrid); Phase 0b picks local trigger time (6 options incl. Custom HH:MM). Remote/hybrid generate an SSH deploy key, init the memory-repo, write env refs (RULE 0.8), and emit a `/schedule create` command. Local-only / hybrid emit a CronCreate snippet. Pure-click except 2 free-text fields (repo URL in Phase 2, Custom time in Phase 0b).
|
|
argument-hint: (no arguments)
|
|
---
|
|
|
|
# Sleep Setup — Cloud REM Sync Wizard (index)
|
|
|
|
## When to use
|
|
|
|
- One-time setup of the KeiSeiKit sleep layer (local-only, remote-only, or hybrid nightly REM sync).
|
|
- Configuring the SSH deploy key, memory-repo, and `/schedule` trigger for the cloud consolidation agent.
|
|
- Enabling v0.13.0 deep-sleep NREM consolidation (Phase 3b store backend + fork mode).
|
|
|
|
You are running the one-time configuration wizard for the KeiSeiKit v0.11
|
|
sleep layer. Each session-end dump pushes to a private git repo; a cloud
|
|
Claude Code agent on `/schedule` clones the repo nightly, analyzes traces,
|
|
and commits a consolidation report back. In the morning the user runs
|
|
`git pull` and reads the report. Nothing in this pipeline blocks session
|
|
close, and report content is for the user to READ — never auto-injected.
|
|
|
|
This `SKILL.md` is the INDEX. Each phase lives in its own file and is
|
|
executed in order. Never skip a phase. Never re-order phases.
|
|
|
|
---
|
|
|
|
## Pipeline overview (8 phases, 11+ AskUserQuestion since v0.14.0)
|
|
|
|
| Phase | File | Purpose | AskUserQuestion |
|
|
|---|---|---|---|
|
|
| 0 | [phase-0-mode.md](phase-0-mode.md) | Pick sleep mode: local-only / remote-only / hybrid | 1 (click-only) |
|
|
| 0b | [phase-0b-time.md](phase-0b-time.md) | Pick local trigger time (6 options; Custom adds 1 free-text) | 1-2 (click; +freeText if Custom) |
|
|
| 1 | [phase-1-repo-pick.md](phase-1-repo-pick.md) | Pick repo provider + visibility (skipped if local-only) | 2 (click-only) |
|
|
| 2 | [phase-2-repo-url.md](phase-2-repo-url.md) | Collect SSH URL (skipped if local-only) | 1 (AskUserQuestion `freeText`) |
|
|
| 3 | [phase-3-deploy-key.md](phase-3-deploy-key.md) | Run `kei-sleep-setup.sh`, confirm deploy-key added (skipped if local-only) | 1 (click) |
|
|
| 3b | [phase-3b-deep-sleep.md](phase-3b-deep-sleep.md) | v0.13.0 — deep-sleep cadence + fork mode + store backend | 3 (click; +1 free-text if Custom cadence) |
|
|
| 4 | [phase-4-test-push.md](phase-4-test-push.md) | Dry-run a test commit (skipped if local-only) | 1 (click) |
|
|
| 5 | [phase-5-trigger.md](phase-5-trigger.md) | Render CronCreate and/or `/schedule create` per mode | 1-2 (click; hybrid asks twice) |
|
|
|
|
**Minimum AskUserQuestion count: 11** (remote-only / hybrid full pipeline).
|
|
**Local-only mode: 6 minimum** (Phases 0, 0b, 3b, 5; Phases 1-4 skipped).
|
|
All clicks except the repo-URL free-text in Phase 2 (skipped in local-only),
|
|
the Custom-time free-text in Phase 0b (optional), and the Custom-cadence /
|
|
S3 free-text fields in Phase 3b (optional).
|
|
|
|
---
|
|
|
|
## Variables the pipeline produces
|
|
|
|
| Name | Set in | Meaning |
|
|
|---|---|---|
|
|
| `SLEEP_MODE` | Phase 0 | `local-only` / `remote-only` / `hybrid` |
|
|
| `SLEEP_TIME_LOCAL` | Phase 0b | `HH:MM` 24h format (e.g. `03:00`); user's local time |
|
|
| `PROVIDER` | Phase 1 (remote/hybrid only) | `github` / `gitlab` / `bitbucket` / `self-hosted` |
|
|
| `VISIBILITY` | Phase 1 (remote/hybrid only) | `private` (recommended) / `public` (explicit user choice) |
|
|
| `REPO_URL` | Phase 2 (remote/hybrid only) | Validated SSH URL (`git@host:org/repo.git`) |
|
|
| `KEY_ADDED` | Phase 3 (remote/hybrid only) | boolean; was deploy key confirmed added? |
|
|
| `DEEP_SLEEP_CRON_DAYS` | Phase 3b | integer ≥0; 0 disables Phase C; default 7 |
|
|
| `DEEP_SLEEP_WITH_FORK` | Phase 3b | 0 (plan only) / 1 (plan + fork branch) / 2 (plan + local-patch; local-only mode) |
|
|
| `STORE_BACKEND` | Phase 3b | `github` / `forgejo` / `gitea` / `filesystem` / `s3` |
|
|
| `TEST_VERIFIED` | Phase 4 (remote/hybrid only) | boolean; did the user see the test commit in the remote? |
|
|
| `SLEEP_CRON_UTC` | Phase 5 (remote/hybrid only) | `m h * * *` cron expression derived from `SLEEP_TIME_LOCAL` + local TZ |
|
|
| `SCHEDULE_ACTION` | Phase 5 | mode-dependent; see phase-5-trigger.md §5d |
|
|
|
|
---
|
|
|
|
## Final report (emit after Phase 5)
|
|
|
|
Remote-only / hybrid (full pipeline):
|
|
```
|
|
=== SLEEP-SETUP REPORT ===
|
|
Mode: <SLEEP_MODE>
|
|
Time (local): <SLEEP_TIME_LOCAL>
|
|
Provider: <PROVIDER> (visibility: <VISIBILITY>)
|
|
Repo URL: <REPO_URL>
|
|
Deploy key: ~/.ssh/keisei-memory-sync(.pub)
|
|
Sync repo path: ~/.claude/memory/sync-repo/
|
|
Env refs: ~/.claude/secrets/.env (KEI_MEMORY_REPO_URL, _PATH, _SSH_KEY)
|
|
Test push: <PASS/FAIL> (Phase 4)
|
|
Schedule: <SCHEDULE_ACTION>
|
|
```
|
|
|
|
Local-only (Phases 1-4 skipped):
|
|
```
|
|
=== SLEEP-SETUP REPORT ===
|
|
Mode: local-only
|
|
Time (local): <SLEEP_TIME_LOCAL>
|
|
Provider: (skipped)
|
|
Repo URL: (skipped)
|
|
Deploy key: (not generated — local-only needs no git)
|
|
Sync repo path: (skipped)
|
|
Env refs: ~/.claude/secrets/.env (no sleep-sync keys written)
|
|
Test push: (skipped)
|
|
Schedule: <SCHEDULE_ACTION> # local-cron-created / -copy-later / -skipped
|
|
```
|
|
|
|
If `SCHEDULE_ACTION` contains `skipped` (remote) or `local-cron-skipped`,
|
|
add:
|
|
```
|
|
No nightly consolidation. Traces still land locally in
|
|
~/.claude/memory/traces/ (and push to the repo on every session end if
|
|
mode != local-only). Re-run /sleep-setup any time to register a trigger.
|
|
```
|
|
|
|
---
|
|
|
|
## Rules (apply throughout — enforced at every phase)
|
|
|
|
- **Pure-click contract.** Only Phase 2 (repo URL) and Phase 0b (Custom
|
|
time) ask for free text; every other decision is an `AskUserQuestion`.
|
|
No `freeText` outside those two points (plus optional Custom cadence /
|
|
S3 fields in Phase 3b).
|
|
- **Local-only skips Phases 1-4 entirely** — no git operations, no SSH
|
|
key, no repo URL collection, no deploy-key walkthrough, no test push.
|
|
The skill jumps phase-0 → phase-0b → phase-3b → phase-5 and never
|
|
touches git.
|
|
- **Idempotent.** Re-running the wizard must NOT clobber existing
|
|
`~/.ssh/keisei-memory-sync` or `~/.claude/memory/sync-repo/`; the
|
|
helper script handles re-use.
|
|
- **NO DOWNGRADE (RULE -1).** If SSH auth fails, return 2-3 constructive
|
|
paths (re-check deploy key, check `sshd` host, fall back to HTTPS with
|
|
PAT — with warning) — never "cannot set up".
|
|
- **NO HALLUCINATION (RULE 0.4).** Never fabricate repo URLs, key
|
|
fingerprints, or commit hashes. Show the real output of the script.
|
|
- **RULE 0.8 secrets.** The wizard writes env-var REFERENCES to
|
|
`~/.claude/secrets/.env`, never inline tokens in any generated file.
|
|
- ** private remotes.** Recommend private visibility in Phase 1.
|
|
If the user explicitly picks `public`, warn once: "a public memory
|
|
repo leaks your session prompts and tool usage — confirm?".
|
|
- **Silent failure (5).** Nothing in the session-end path may
|
|
block the session from closing. The wizard itself may fail loudly.
|
|
- **Constructor Pattern (RULE ZERO).** Every phase file < 200 LOC
|
|
(RULE ZERO hard limit). New lightweight phases (0, 0b) target < 100
|
|
LOC; phase-3b and phase-5 are heavier branch-heavy router files and
|
|
sit between 100-200.
|
|
|
|
---
|
|
|
|
## References
|
|
|
|
- `~/.claude/rules/sleep-layer.md` — 5 full text
|
|
- `~/.claude/rules/secrets-single-source.md` — RULE 0.8 enforcement
|
|
- `_primitives/kei-sleep-setup.sh` — the imperative setup helper
|
|
- `_primitives/kei-sleep-sync.sh` — the session-end-dump callback
|
|
- `_primitives/templates/sleep-trigger-prompt.md` — cloud agent prompt
|
|
- `hooks/session-end-dump.sh` — where `kei-sleep-sync.sh` is invoked
|