`git clone <url> .` works only into a genuinely empty directory. verified: one
file makes it fail, and so does one HIDDEN file.
which is not an edge case on this machine — a commander's directory holds
CLAUDE.md and state/, and a plugin's chat directory holds a CLAUDE.md the
platform wrote. cloning into either fails outright.
the fetch-into-place workaround is written down because it is the answer, and
so is the thing it does quietly: `git checkout FETCH_HEAD -- .` OVERWRITES a
colliding file without asking. verified by doing it in a directory that had a
CLAUDE.md and watching it become the template's. in a commander directory that
is the brief gone, and the commander would come back next turn not knowing what
its job is.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
two things an agent cannot discover and gets wrong by default.
FIRST: asked to create an app, it scaffolds one. there is a template —
templates/template-react on gitea — and it is the agreed starting point. it
documents itself, so this points at its README, CLAUDE.md and CONVENTIONS.md
rather than restating them; the one thing worth lifting out is README step 1,
the rename, because it costs thirty seconds at the start and is a chore
forever after.
SSH not HTTPS, verified both ways: the https remote prompts for a username and
dies in a non-interactive shell. the tailnet address is noted as the fallback
for when the public host's ssh is being rate-limited, which the deploy skill
already records as a recurring thing.
SECOND: asked to run it, it runs bun dev in the foreground, which blocks until
the tool times out and reports a working server as a failure. backgrounding is
both the only thing that works AND what the owner wants — a background job gets
officer's live panel, the same one they would see running it themselves, so
they can read the output and stop it without asking.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043