Add Kubrick hero artwork to skill README - #52
scrimshawlife-ctrl wants to merge 13 commits into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e7738728d8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "audience_visibility", policy.get("audience_surface_default", "peripheral") | ||
| ), | ||
| "confidence": item["total_score"], | ||
| "provenance": item["provenance"], |
There was a problem hiding this comment.
Emit a schema-conformant governing grammar
For every successful esoteric retrieval, this assigns a concept ID string, but esoteric-encoding.schema.yaml requires governing_grammar to be an object containing grammar_id, tradition, dramatic_function, provenance, and boundary. The emitted block also has no later conversion anywhere in the repository, so passing the retrieval output to the newly added validator always fails before it can be handed off; construct the declared schema object here instead.
Useful? React with 👍 / 👎.
| if not left_tokens or not right_tokens: | ||
| return neutral | ||
| return min(1.0, neutral + len(left_tokens & right_tokens) / max(1, len(left_tokens)) * 0.55) |
There was a problem hiding this comment.
Do not award a passing score for zero overlap
When the brief and concept have nonempty but disjoint tokens, this still returns the neutral baseline, and an omitted preferred_encoding_vectors receives an even higher 0.65 baseline. With the configured metadata bonuses, a PRIMARY concept with no dramatic or cinematic match scores 0.6225, above the 0.55 threshold, so any explicitly enabled brief with nonempty evidence selects up to three essentially arbitrary concepts instead of failing closed.
Useful? React with 👍 / 👎.
| for route, concept_ids in index.get("problem_routes", {}).items() | ||
| if concept_id in concept_ids and _tokens(route) & problem | ||
| ] | ||
| or [0.0] |
There was a problem hiding this comment.
Normalize route names to natural-language tokens
The configured route keys use underscores, such as identity_breakdown, while normal briefs use phrases such as identity breakdown; _tokens(route) preserves the former as one token and problem contains the latter as two tokens, so the intersection is empty and the documented 0.16 route bonus is never applied for natural-language input. Normalize underscores to separators on both sides before comparing, otherwise relevant concepts can lose their intended ranking or threshold boost.
Useful? React with 👍 / 👎.
| if len(traditions) > 1: | ||
| boundaries = [item.get("tradition_boundary", "").strip() for item in selections] | ||
| if not all(boundaries): | ||
| errors.append("cross-tradition selection lacks explicit boundaries") |
There was a problem hiding this comment.
Preserve schema errors when boundary values are invalid
When a cross-tradition payload contains an explicitly null or otherwise non-string tradition_boundary, JSON Schema correctly records that field error, but this subsequent .strip() raises AttributeError, causing the validator CLI to emit a traceback instead of its structured FAIL result. This occurs specifically on malformed inputs the validator is intended to diagnose; guard the value type or skip semantic checks that depend on fields already rejected by schema validation.
Useful? React with 👍 / 👎.
Changes
skills/kubrick/assets/kubrick-hero.svg.Scope
Documentation and artwork only. No runtime, schema, retrieval, or continuity behavior changes.