KeiSeiKit-1.0/skills/sleep-setup/phase-4-test-push.md
Parfii-bot a4e667de10 KeiSeiKit-public — clean state
Single-commit clean baseline after security scrub of niche-tells,
project codenames, internal jargon, and contributor-email leaks.

Contents:
- 100 Rust crates (_primitives/_rust/)
- 37 agent manifests (_manifests/) + generated specs (_generated/)
- 67 user-invocable skills (skills/)
- 33 hooks (hooks/)
- Composition blocks (_blocks/)
- Documentation (docs/, README.md)
- TS adapter packages (_ts_packages/)
- Assembler (_assembler/)
- Roles (_roles/)
- Templates (_templates/)
- Forgejo CI (.forgejo/)

Author: Denis Parfionovich <info@greendragon.info>

License: see LICENSE.
2026-05-01 12:09:03 +08:00

89 lines
2.6 KiB
Markdown

# Phase 4 — Test push (verify write access)
Write a tiny marker file, call `kei-sleep-sync.sh`, let the user confirm
the commit landed in the remote.
## 4a — Write a test marker
```bash
touch ~/.claude/memory/sync-repo/traces/.sleep-setup-test
```
The marker file is tracked the same way real traces are (so it tests the
real `git add traces/` path used at session end).
## 4b — Invoke the sync helper
```bash
~/.claude/agents/_primitives/kei-sleep-sync.sh
```
Capture exit code. The helper is designed to be silent on success; capture
`~/.claude/memory/sync-errors.log` as well — if it gained a new line in
the last 60s, surface that line to chat.
## 4c — Show expected commit to user
Read `HEAD`'s commit message from the local mirror:
```bash
( cd ~/.claude/memory/sync-repo && git log -1 --pretty=format:'%h %s' )
```
Print this commit to chat as "expected to appear on your remote:".
## 4d — Confirm click
Emit ONE `AskUserQuestion`:
```json
{
"questions": [
{
"question": "Do you see this commit on the remote (refresh the repo page)?",
"header": "Test push",
"multiSelect": false,
"options": [
{"label": "Yes, commit is there", "description": "Proceed to schedule"},
{"label": "No, not showing up", "description": "Show diagnostics + 2-3 fix paths"},
{"label": "Skip — I'll check later", "description": "Mark as UNVERIFIED, continue"}
]
}
]
}
```
Handle each option:
- `Yes` → set `TEST_VERIFIED = true`, clean up marker, proceed to Phase 5.
- `No` → print the diagnostic block below; re-emit the click.
- `Skip` → set `TEST_VERIFIED = false`, proceed to Phase 5.
## 4e — Diagnostic block (when user says "not showing up")
Render constructively per RULE -1:
```
Three things to check:
1. Deploy key write-access — GitHub/GitLab/Bitbucket default to READ,
you must tick the write box explicitly.
2. Default branch — your repo must have a 'main' branch; if it has
'master' or nothing at all the push target is missing.
3. SSH reachability — run:
ssh -i ~/.ssh/keisei-memory-sync -T git@<host>
and confirm the auth banner shows your repo account.
If all three look correct, check ~/.claude/memory/sync-errors.log.
```
## 4f — Cleanup marker
Regardless of branch:
```bash
rm -f ~/.claude/memory/sync-repo/traces/.sleep-setup-test
```
## Verify-criterion
- Exactly ONE `AskUserQuestion` (plus loops on the "No" branch).
- `TEST_VERIFIED` is either `true` or `false` (both acceptable; only
"Abort" terminates the wizard, and that option doesn't exist here).