Docs/Reference

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.

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