Repository navigation
Ship only runtime files in the gem; add pack-contents spec - #62
Merged
Merged
Conversation
Replace the denylist over `git ls-files` with an allowlist (lib/, exe/, sig/, LICENSE, README, CHANGELOG) and set bindir to exe. `gem build` on main failed on a 141-byte .architecture filename and would otherwise have packaged 497 files including session transcripts and .claude/settings.local.json; it now builds 119 files. spec/gem_contents_spec.rb loads the gemspec and fails CI if the file list ever leaves the allowlist again. Closes codenamev#55 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
codenamev
approved these changes
Oct 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #55.
What changed
agentic.gemspec: thefilesclause is now an allowlist (lib/,exe/,sig/,LICENSE.txt,README.md,CHANGELOG.md) instead of a denylist overgit ls-files, andbindiris set toexe(it defaulted tobin, so RubyGems synthesised abin/agenticentry that does not exist).spec/gem_contents_spec.rb: loads the gemspec and fails if any packaged file falls outside that allowlist, or if a transcript,.local.json, or planning doc ever gets in. Runs under the default rake task, so CI is the pack-contents gate.Before / after
gem buildonmainfailed on the 141-byte.architecture/filename and would otherwise package 497 files, including.claude-sessions/transcripts and.claude/settings.local.json(the published 0.2.0 already carries those).gem buildsucceeds and packages 119 files:lib/plusexe/agentic,sig/agentic/builder.rbs, and the three top-level docs.Verification
The published 0.2.0 on rubygems still carries the stray files; yanking or cutting 0.2.1 is your call.
🤖 Generated with Claude Code