Skip to content

Claudinite growth: extract lessons - #28

Merged
missingbulb merged 1 commit into
mainfrom
claudinite-growth/extract-20260723
Jul 23, 2026
Merged

Claudinite growth: extract lessons#28
missingbulb merged 1 commit into
mainfrom
claudinite-growth/extract-20260723

Conversation

@missingbulb

Copy link
Copy Markdown
Owner

Daily growth-extract run over the last window. The substantive change was the
macOS signing/notarization work — commit #4 (Developer ID signing + Apple
notarization lane) and its follow-up #27 (pipefail in the DMG workflows).

Added one lesson to dev/procedures/ci-release.md (the doc CLAUDE.md sends
you to before editing the DMG workflows): a terse "Signing & notarization is
an optional, secret-gated lane"
section capturing the CI-side gotchas from #4
that were only recorded in the workflow YAML comments —

  • Notarization requires the Hardened Runtime, which then requires the explicit
    com.apple.security.device.audio-input mic entitlement (an ad-hoc build
    doesn't), so enabling notarization silently kills mic access without it.
  • An ad-hoc signature can't be notarized (separate lanes).
  • The ephemeral signing keychain must be added to the searchable list or
    codesign can't find the imported identity — and that sed pipe is why ci: run DMG workflow steps with pipefail #27
    needed pipefail.
  • Keep the lane secret-gated with an ad-hoc fallback so secret-less/fork builds
    still pass.
  • macOS 15 Sequoia removed the right-click → Open Gatekeeper bypass.

Deliberately not captured: the #27 pipefail lesson itself — it's already a
canon blocking check (gha/run-pipefail) and prose in the
git-github-advanced skill, so a local copy would only duplicate the canon.
This PR referenced it only as the reason the signing steps need shell: bash.

Writes only the project's own instruction docs. Refs #21.


Generated by Claude Code

The optional Developer ID signing + Apple notarization lane added to both DMG
workflows (#4) has real CI-side gotchas — the Hardened-Runtime-needs-the-mic-
entitlement coupling, ad-hoc-isn't-notarizable, the ephemeral-keychain
searchable-list trick, and the secret-gated ad-hoc fallback — that were only
recorded in the workflow YAML comments, so a future session editing the release
flow wouldn't be pointed at them. Re-home them into ci-release.md (the doc
CLAUDE.md sends you to before touching those workflows), the same way the
trigger gotchas were captured.

Refs #21.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@missingbulb
missingbulb merged commit 3b7bfaf into main Jul 23, 2026
@missingbulb
missingbulb deleted the claudinite-growth/extract-20260723 branch July 23, 2026 00:32
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