Skip to content

feat(engineering-standards): three lessons from a real build session, and a correction - #57

Merged
schuettc merged 1 commit into
devfrom
docs/engineering-lessons
Aug 22, 2026
Merged

schuettc merged 1 commit into
devfrom
docs/engineering-lessons

Conversation

@schuettc

@schuettc schuettc commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Three new advisory skills and one correction, all from defects hit in a single galley build session. Each carries the incident that produced it, because the rule alone reads as obvious and the incident is what makes it stick.

exit-code-integrity

A pipeline reports the last command's status, so check | tail turns a failing check into a passing one. Four incidents in one codebase — a masked staticcheck finding, a masked govulncheck failure, a recurrence while verifying the coverage tool itself, and finally just build 2>&1 | tail -5 && echo BUILD OK printing OK over a build whose failure text was three lines above the word OK.

The reason it earns a skill is not subtlety. It is that a laundered exit code converts into a false statement made to a human who is relying on it.

verify-the-artifact

Source is a claim about behaviour; only the running artifact is evidence. A CSS rule was written, commented in its own defence, reviewed, and shipped without ever applying once — a container rule at (0,1,1) out-specified it at (0,1,0). Reading the file cannot answer does this rule apply, because that is decided by every other rule. One getComputedStyle call found it in seconds.

Also covers the gate blind spot: a full verification suite passed green over conflict markers committed inside generated CSS, because it compiles Go and Go does not compile CSS.

testing-interactions-over-time

Ten defects surfaced in the first real human session of a thoroughly tested editor. None had been found by any test, and every one was an interaction across time — a poll rebuilding a card while someone typed in it, a card growing after the stack was measured from its height, an agent's writes waking the agent.

State tests have one actor and one moment; these bugs need two of each. So adding more state tests leaves coverage of the class at exactly zero — which is why the suite was large and still blind.

worktree-isolation — correction

The skill's own location rule (<repo-root>/.worktrees/<branch>) puts worktrees inside the git directory when the primary clone is bare. Every go build in every such worktree then fails with error obtaining VCS status: exit status 128 — an error naming VCS stamping, with the actual cause being a directory layout chosen weeks earlier. Adds the sibling-directory form and the git rev-parse --is-bare-repository check that predicts it.

Plugin bumped 0.1.2 → 0.2.0. Advisory only — no tooling, no setup.

https://claude.ai/code/session_01VbUrPbRvCn9tBjxygjjjeD

… and a correction

exit-code-integrity — a pipeline reports the LAST command's status, so
`check | tail` turns a failing check into a passing one. Four incidents in one
codebase, the last of them printing BUILD OK over a build whose failure text was
three lines above the word OK.

verify-the-artifact — source is a claim about behaviour; only the running
artifact is evidence. A CSS rule was written, commented in its own defence,
reviewed and shipped without ever applying once, because a container rule
out-specified it. Reading the file cannot answer 'does this rule apply' — that
is decided by every other rule.

testing-interactions-over-time — ten defects surfaced in the first real human
session of a well-tested editor, and none had been found by any test. All were
interactions across time. State tests have one actor and one moment; these bugs
need two of each, so adding more of them leaves coverage of the class at zero.

worktree-isolation gains the bare-primary exception: the skill's own location
rule puts worktrees inside the git directory when the primary clone is bare,
which makes every go build fail with an error naming VCS stamping rather than
anything about worktrees.
@schuettc
schuettc merged commit 8ae9617 into dev Aug 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant