Reference
Git authorship: block-git-authorship
A gate on shell, eval and process-start calls (tama hook block-git-authorship) that refuses every
way of asking git who wrote something. Every agent in this workshop commits through the operator's git
identity, so an author line, a blame line, a shortlog or a mailmap names him whatever an agent did; who
decided something is answered by the transcripts (oko tasks --session <id> --full,
oko tasks rules --session <id>). The refusal carries a reason: line naming which
way the command asked.
#What is refused
| The command | Reason line |
|---|---|
git blame, git annotate, git shortlog, git check-mailmap |
git blame, annotate, shortlog or check-mailmap answers only with a name |
--author, --committer, --use-mailmap, --mailmap |
--author, --committer or a mailmap selects commits by who made them |
A format with %an, %ae, %al, %cn, %ce,
%cl, or %(author…), %(committer…), %(tagger…) |
the format asks for an author or committer identity |
--pretty or --format set to medium, full,
fuller, raw, email or mboxrd |
that built-in format prints the author line |
git log, git show, git whatchanged with no format chosen
(--oneline, --pretty, --format or --no-patch) |
git log, show and whatchanged print the author line unless a format says otherwise |
The subcommand is read after git's global options, including those that take their value as the next word
(-C <path>, -c <name>=<value>, --git-dir,
--work-tree, --namespace), so git -C repo blame is the same question as
git blame. Each pattern is assembled from git's own subcommand, option and placeholder names.
#What passes
History without an identity: git log --oneline, --format=%h,
--format=%s, --format=%ad; every other git command; a command that only mentions
git blame inside quoted text.
#Where it comes from
Source: rust/crates/tama-hook-tools/src/ports/block_git_authorship/mod.rs. The journey
cargo test --manifest-path rust/Cargo.toml -p tama-cli --test git_authorship_requests runs the built
hook on each refused shape, git -C repo shortlog among them, and requires its reason line, and on
the passing shapes requires no refusal.