let-fate-decide: improved 12-card spread (100+ bits of entropy)#166
Open
tob-scott-a wants to merge 4 commits into
Open
let-fate-decide: improved 12-card spread (100+ bits of entropy)#166tob-scott-a wants to merge 4 commits into
tob-scott-a wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
- Compute ENTROPY_BITS from math.log2(math.comb(...)) so the dict cannot silently drift if the spread shape changes; test now verifies the formula and asserts the 100-bit floor. - Remove the ambiguous draw() wrapper (list-or-dict return); callers use explicit draw_zodiac_spread() / draw_cards() instead. - Extract _build_house_record() helper to bring draw_zodiac_spread() under the 50-line guideline. - Require --legacy explicitly for the positional count CLI; remove the implicit legacy flip when a bare integer was passed. - Generalize the rank-format test to all four minor suits. - Document test_reviewed_cards_avoid_unsafe_shortcuts as an exact-string regression guard rather than a semantic check. - SKILL.md: reframe example session as an explicit house-level fragment and note the draw agent's bullet output format. - README.md: correct the deck-shuffle description (two independent decks, not one 78-card shuffle); compute entropy text from formulas. - marketplace.json + plugin.json: sync description to mention the 12 Houses spread and the 100+ bit entropy budget. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Author
|
@claude review |
…aces PR review flagged the SKILL.md frontmatter said "Draws a 12 Houses..." while plugin.json, marketplace.json, and agents/draw.md all say "Draws the 12 Houses...". SPREAD_NAME is a single fixed spread, so "the" is correct. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR review flagged inconsistent naming in the entropy_bits dict: major_arcana (deck-named) vs minor_shuffle (operation-named). The value is also log2(C(56,24)), an unordered selection — not log2(56!), a full shuffle — and every prose consumer (SKILL.md, README.md, the entropy_note f-string) already calls it "Minor Arcana selection". Rename for parallel structure. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Expands
let-fate-decidefrom the previous 4-card draw into a default 12 Houses of the Zodiac Tarot spread.Each house now receives:
The previous 4-card behavior is still available via the explicit legacy path:
uv run --no-config {baseDir}/scripts/draw_cards.py --legacyPassing a count also keeps legacy behavior:
uv run --no-config {baseDir}/scripts/draw_cards.py 4Changes
houses/reference files describing each zodiac house across:references/TECHNICAL_CONTEXT_LENSES.mdfor translating readings into audit, evidence, domain, failure-class, and stakeholder lenses.SKILL.md, README, interpretation guide, and draw agent instructions.--legacy.let-fate-decideto1.2.0.Entropy
The default spread reports a conservative unordered-card entropy budget of 107.25 bits:
log2(C(22,12)) = 19.30log2(C(56,24)) = 51.9536The actual ordered assignment of cards to houses contains more entropy.
Validation
uv run --no-config plugins/let-fate-decide/skills/let-fate-decide/scripts/test_draw_cards.pyuv run --with ruff --no-project ruff check plugins/let-fate-decide/skills/let-fate-decide/scriptspython3 .github/scripts/validate_codex_skills.pygit diff --check -- plugins/let-fate-decideAlso reviewed with Claude for content quality and accidental disclosure of internal workflow details; no blocking findings remained.
(This was authored by Codex.)