Implements the Phase 0 owner decision on #86 (issuecomment-1354):
- docs/llm-agent-sha.md: format llm-<12 lowercase hex> (^llm-[0-9a-f]{12}$),
generation rules, per-PR/workstream lifetime, visible markdown metadata
blocks, no SHA in branch/worktree names, same-SHA vs same-user vs
same-profile distinction. Attribution only — never an eligibility input.
- docs/llm-workflow-runbooks.md: attribution subsection + handoff/review
runbook pointers.
- templates start-issue.md / review-pr.md: handoff and review metadata
blocks; reviewer rule that a different SHA is not a different actor.
- tests/test_llm_agent_sha.py: negative tests — same Gitea user with a
different LLM-Agent-SHA still fails self-review and self-merge; eligibility
results are identical with/without/across SHA env values; no gate accepts
or reads any agent-SHA input.
No launcher/env handling, no gitea_whoami fields, no PR auto-injection, no
audit schema changes. No eligibility behavior changed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>