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

2.6 KiB

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

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

~/.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:

( 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:

{
  "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:

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).