How jyz922/crack works
CRACK analyzes joke text through scope filtering, lexical and contextual pun analysis, resolution checks, then age-specific comprehension and safety assessment. Its runner coordinates the layers; the web server exposes synchronous and streaming analysis. The README documents the full L0–L8 capability set. Edges follow shown imports and calls; some detailed ordering and data handoffs are not visible in the excerpts, so they are not inferred.
Main entry points: runner.py Pipeline runner · layers.py Layer registry · providers.py LLM providers · l7_comprehension.py Age comprehension
Components 19
Analysis workflow
- Layer registry
src/crack/layers.py - Scope filtering
src/crack/l0_scope.py - Surface analysis
src/crack/l1_surface.py - Sense retrieval
src/crack/l2_senses.py - Candidate ranking
src/crack/l3_candidates.py - Sense anchoring
src/crack/l4_anchoring.py - Pun resolution
src/crack/l5_resolution.py - Sense distinctness
src/crack/l6_distinctness.py
Developmental assessment
- Age comprehension
src/crack/l7_comprehension.py - Age safety
src/crack/l8_appropriateness.py
Runtime and interfaces
- Pipeline runner
src/crack/runner.py - Corpus utilities
src/crack/corpus.py - Web API and stream
src/crack/serve.py
Shared foundations
- LLM providers
src/crack/providers.py - Pipeline settings
src/crack/config.py - Analysis records
src/crack/schema.py - Status vocabulary
src/crack/enums.py - WordNet and AoA
Other components
- Analyst
Connections 35
- Analyst → Web API and stream: submits text
src/crack/serve.py - Analyst → Pipeline runner: submits analysis
src/crack/runner.py - Web API and stream → Pipeline runner: runs analysis
src/crack/serve.py - Pipeline runner → Scope filtering: preprocesses input
src/crack/runner.py - Pipeline runner → Surface analysis: dispatches layer
- Pipeline runner → Sense retrieval: dispatches layer
- Pipeline runner → Candidate ranking: dispatches layer
- Pipeline runner → Sense anchoring: dispatches layer
- Pipeline runner → Pun resolution: dispatches layer
- Pipeline runner → Sense distinctness: dispatches layer
- Pipeline runner → Age comprehension: dispatches layer
- Pipeline runner → Age safety: dispatches layer
- Pipeline runner → Corpus utilities: uses corpus
src/crack/runner.py - Layer registry → Sense retrieval: retrieves senses
src/crack/layers.py - Layer registry → Candidate ranking: ranks candidates
src/crack/layers.py - Layer registry → Sense anchoring: anchors senses
src/crack/layers.py - Layer registry → Pun resolution: scores resolution
src/crack/layers.py - Layer registry → Sense distinctness: checks distinction
src/crack/layers.py - Layer registry → Age comprehension: assesses comprehension
src/crack/layers.py - Layer registry → Age safety: assesses safety
src/crack/layers.py - Sense retrieval → WordNet and AoA: queries lexicon
src/crack/l2_senses.py - Age comprehension → Sense retrieval: uses sense data
src/crack/l7_comprehension.py - Age safety → Age comprehension: uses age results
src/crack/l8_appropriateness.py - Sense anchoring → LLM providers: calls model
src/crack/l4_anchoring.py - Pun resolution → LLM providers: calls model
src/crack/l5_resolution.py - Sense distinctness → LLM providers: calls model
src/crack/l6_distinctness.py - Age comprehension → LLM providers: calls model
src/crack/l7_comprehension.py - Age safety → LLM providers: calls model
src/crack/l8_appropriateness.py - Pipeline runner → Pipeline settings: loads settings
src/crack/runner.py - Pipeline runner → Analysis records: builds records
src/crack/runner.py - Web API and stream → Pipeline settings: configures settings
src/crack/serve.py - Web API and stream → Analysis records: builds records
src/crack/serve.py - Pipeline settings → LLM providers: selects backends
src/crack/config.py - Analysis records → Status vocabulary: types statuses
src/crack/schema.py - Scope filtering → Status vocabulary: assigns scope
src/crack/l0_scope.py