passes testing after slimming

This commit is contained in:
2026-01-03 02:30:33 -07:00
parent da300f75fe
commit 928f08cc57
18 changed files with 97 additions and 784 deletions

View File

@@ -1,14 +0,0 @@
Request for generation of writing prompts for journaling
Payload:
The previous 60 prompts have been provided as a JSON array for reference.
Guidelines:
Using the attached JSON of writing prompts, you should try to pick out four unique and intentionally vague single-word themes that apply to some portion of the list.
Then add two more single word themes that are fairly different from the other four for a total of six words.
Expected Output:
Output as a JSON list with just the six words, in lowercase.
Despite the provided history being a keyed list or dictionary, the expected return JSON will be a simple list with no keys.
Respond ONLY with valid JSON. No explanations, no markdown, no backticks.

View File

@@ -1,20 +0,0 @@
Request for generation of writing prompts for journaling
Payload:
The previous 60 prompts have been provided as a JSON array for reference.
Guidelines:
Please generate some number of individual writing prompts in English following these guidelines.
Topics can be diverse, and the whole batch should have no outright repetition.
These are meant to inspire one to two pages of writing in a journal as exercise.
Prompt History:
The provided history brackets two mechanisms.
The history will allow for reducing repetition, however some thematic overlap is acceptable. Try harder to avoid overlap with lower indices in the array.
As the user discards prompts, the themes will be very slowly steered, so it's okay to take some inspiration from the history.
Expected Output:
Output as a JSON list with the requested number of elements.
Despite the provided history being a keyed list or dictionary, the expected return JSON will be a simple list with no keys.
Respond ONLY with valid JSON. No explanations, no markdown, no backticks.

View File

@@ -1,26 +0,0 @@
[
{
"feedback00": "memory",
"weight": 3
},
{
"feedback01": "reflection",
"weight": 4
},
{
"feedback02": "perspective",
"weight": 1
},
{
"feedback03": "ritual",
"weight": 6
},
{
"feedback04": "invention",
"weight": 6
},
{
"feedback05": "solitude",
"weight": 6
}
]

View File

@@ -1,12 +0,0 @@
# settings.cfg
# This controls how many prompts are presented and consumed from the pool, as well as how much to pre-cache.
# This is used to maintain functionality offline for some number of iterations.
[prompts]
min_length = 500
max_length = 1000
num_prompts = 3
# Pool size can affect the prompts if is too high. Default 20.
[prefetch]
cached_pool_volume = 20

View File

@@ -9,18 +9,18 @@
},
{
"feedback02": "velocity",
"weight": 0
"weight": 3
},
{
"feedback03": "syntax",
"weight": 0
"weight": 3
},
{
"feedback04": "divergence",
"weight": 6
"feedback04": "oblivion",
"weight": 3
},
{
"feedback05": "oblivion",
"weight": 6
"feedback05": "divergence",
"weight": 3
}
]

View File

@@ -237,22 +237,6 @@ class JournalPromptGenerator:
self.historic_prompts = updated_prompts
self._save_historic_prompts()
def _prepare_prompt(self) -> str:
"""Prepare the full prompt with historic context."""
# Format historic prompts for the AI
if self.historic_prompts:
historic_context = json.dumps(self.historic_prompts, indent=2)
full_prompt = f"{self.prompt_template}\n\nPrevious prompts:\n{historic_context}"
else:
full_prompt = self.prompt_template
# Add feedback words if available
if self.feedback_words:
feedback_context = json.dumps(self.feedback_words, indent=2)
full_prompt = f"{full_prompt}\n\nFeedback words:\n{feedback_context}"
return full_prompt
def _parse_ai_response(self, response_content: str) -> List[str]:
"""
Parse the AI response to extract new prompts.

View File

@@ -1,182 +1,182 @@
[
{
"prompt00": "Recall a piece of art\u2014a painting, song, film\u2014that initially confused or repelled you, but that you later came to appreciate or love. Describe your first, negative reaction in detail. Then, trace the journey to understanding. What changed in you or your context that allowed a new interpretation? Write about the value of sitting with discomfort and the rewards of having your internal syntax for beauty challenged and expanded."
"prompt00": "You find an old, hand-drawn map that leads to a place in your neighborhood. Follow it. Does it lead you to a spot that still exists, or to a location now utterly changed? Describe the journey of reconciling the cartography of the past with the terrain of the present. What has been erased? What endures? What ghosts of previous journeys do you feel along the way?"
},
{
"prompt01": "Imagine your life as a vast, intricate tapestry. Describe the overall scene it depicts. Now, find a single, loose thread\u2014a small regret, an unresolved question, a path not taken. Write about gently pulling on that thread. What part of the tapestry begins to unravel? What new pattern or image is revealed\u2014or destroyed\u2014by following this divergence? Is the act one of repair or deconstruction?"
"prompt01": "Consider a skill you are learning. Break down its initial algorithm\u2014the basic, rigid steps you must follow. Now, describe the moment when practice leads to mutation: the algorithm begins to dissolve into intuition, muscle memory, or personal style. Where are you in this process? Can you feel the old, clunky code still running beneath the new, fluid performance? Write about the uncomfortable, fruitful space between competence and mastery."
},
{
"prompt02": "Recall a dream that felt more real than waking life. Describe its internal logic, its emotional palette, and its lingering aftertaste. Now, write a 'practical guide' for navigating that specific dreamscape, as if for a tourist. What are the rules? What should one avoid? What treasures might be found? By treating the dream as a tangible place, what insights do you gain about the concerns of your subconscious?"
"prompt02": "Analyze the unspoken social algorithm of a group you belong to\u2014your family, your friend circle, your coworkers. What are the input rules (jokes that are allowed, topics to avoid)? What are the output expectations (laughter, support, problem-solving)? Now, imagine introducing a mutation: you break a minor, unwritten rule. Chronicle the system's response. Does it self-correct, reject the input, or adapt?"
},
{
"prompt03": "Describe a public space you frequent (a library, a cafe, a park) at the exact moment it opens or closes. Capture the transition from emptiness to potential, or from activity to stillness. Focus on the staff or custodians who facilitate this transition\u2014the unseen architects of these daily cycles. Write from the perspective of the space itself as it breathes in or out its human occupants. What residue of the day does it hold in the quiet?"
"prompt03": "Imagine your daily routine is a genetic sequence. Identify a habitual behavior that feels like a dominant gene. Now, imagine a spontaneous mutation occurring in this sequence\u2014one small, random change in the order or execution of your day. Follow the consequences. Does this mutation prove beneficial, harmful, or neutral? Does it replicate and become part of your new code? Write about the evolution of a personal habit through chance."
},
{
"prompt04": "Listen to a piece of music you know well, but focus exclusively on a single instrument or voice that usually resides in the background. Follow its thread through the entire composition. Describe its journey: when does it lead, when does it harmonize, when does it fall silent? Now, write a short story where this supporting element is the main character. How does shifting your auditory focus create a new narrative from familiar material?"
"prompt04": "Your memory is a vast, dark archive. Choose a specific memory and imagine you are its archivist. Describe the process of retrieving it: locating the correct catalog number, the feel of the storage medium, the quality of the playback. Now, describe the process of conservation\u2014what elements are fragile and in need of repair? Do you restore it to its original clarity, or preserve its current, faded state? What is the ethical duty of a self-archivist?"
},
{
"prompt05": "Describe your reflection in a window at night, with the interior light creating a double exposure of your face and the dark world outside. What two versions of yourself are superimposed? Write a conversation between the 'inside' self, defined by your private space, and the 'outside' self, defined by the anonymous night. What do they want from each other? How does this liminal artifact\u2014the glass\u2014both separate and connect these identities?"
"prompt05": "Examine a mended object in your possession\u2014a book with tape, a garment with a patch, a glued-together mug. Describe the repair not as a flaw, but as a new feature, a record of care and continuity. Write the history of its breaking and its fixing. Who performed the repair, and what was their state of mind? How does the object's value now reside in its visible history of damage and healing?"
},
{
"prompt06": "Imagine you are a diver exploring the deep ocean of your own memory. Choose a specific, vivid memory and describe it as a submerged landscape. What creatures (emotions) swim there? What is the water pressure (emotional weight) like? Now, imagine a small, deliberate act of forgetting\u2014letting a single detail of that memory dissolve into the murk. How does this selective oblivion change the entire ecosystem of that recollection? Does it create space for new growth, or does it feel like a loss of truth?"
"prompt06": "Imagine you are a cartographer of sound. Map the auditory landscape of your current environment. Label the persistent drones, the intermittent rhythms, the sudden percussive events. What are the quiet zones? Where do sounds overlap to create new harmonies or dissonances? Now, imagine mutating one sound source\u2014silencing a hum, amplifying a whisper, changing a rhythm. How does this single alteration redraw the entire sonic map and your emotional response to the space?"
},
{
"prompt07": "Recall a conversation that ended in a misunderstanding that was never resolved. Re-write the exchange, but introduce a single point of divergence\u2014one person says something slightly different, or pauses a moment longer. How does this tiny change alter the entire trajectory of the conversation and potentially the relationship? Explore the butterfly effect in human dialogue."
"prompt07": "Contemplate the concept of a 'watershed'\u2014a geographical dividing line. Now, identify a watershed moment in your own life: a decision, an event, or a realization that divided your experience into 'before' and 'after.' Describe the landscape of the 'before.' Then, detail the moment of the divide itself. Finally, look out over the 'after' territory. How did the paths available to you fundamentally diverge at that ridge line? What rivers of consequence began to flow in new directions?"
},
{
"prompt08": "Spend 15 minutes in complete silence, actively listening for the absence of a specific sound that is usually present (e.g., traffic, refrigerator hum, birds). Describe the quality of this crafted silence. What smaller sounds emerge in the void? How does your mind and body react to the deliberate removal of this sonic artifact? Explore the concept of oblivion as an active, perceptible state rather than a mere lack."
"prompt08": "Observe a spiderweb, a bird's nest, or another intricate natural construction. Describe it not as a static object, but as the recorded evidence of a process\u2014a series of deliberate actions repeated to create a functional whole. Imagine you are an archaeologist from another planet discovering this artifact. What hypotheses would you form about the builder's intelligence, needs, and methods? Write your field report."
},
{
"prompt09": "Describe a skill or talent you possess that feels like it's fading from lack of use\u2014a language getting rusty, a sport you no longer play, an instrument gathering dust. Perform or practice it now, even if clumsily. Chronicle the physical and mental sensations of re-engagement. What echoes of proficiency remain? Is the knowledge truly gone, or merely dormant? Write about the relationship between mastery and oblivion."
"prompt09": "Walk through a familiar indoor space (your home, your office) in complete darkness, or with your eyes closed if safe. Navigate by touch, memory, and sound alone. Describe the experience. Which objects and spaces feel different? What details do you notice that vision usually overrides? Write about the knowledge held in your hands and feet, and the temporary oblivion of the visual world. How does this shift in primary sense redefine your understanding of the space?"
},
{
"prompt10": "Choose a common word (e.g., 'home,' 'work,' 'friend') and dissect its personal syntax. What rules, associations, and exceptions have you built around its meaning? Now, deliberately break one of those rules. Use the word in a context or with a definition that feels wrong to you. Write a paragraph that forces this new usage. How does corrupting your own internal language create space for new understanding?"
"prompt10": "You discover a single, worn-out glove lying on a park bench. Describe it in detail\u2014its color, material, signs of wear. Write a speculative history for this artifact. Who owned it? How was it lost? From the glove's perspective, narrate its journey from a department store shelf to this moment of abandonment. What human warmth did it hold, and what does its solitary state signify about loss and separation?"
},
{
"prompt11": "Contemplate a personal habit or pattern you wish to change. Instead of focusing on breaking it, imagine it diverging\u2014mutating into a new, slightly different pattern. Describe the old habit in detail, then design its evolved form. What small, intentional twist could redirect its energy? Write about a day living with this divergent habit. How does a shift in perspective, rather than eradication, alter your relationship to it?"
"prompt11": "Find a body of water\u2014a puddle after rain, a pond, a riverbank. Look at your reflection, then disturb the surface with a touch or a thrown pebble. Watch the image shatter and slowly reform. Use this as a metaphor for a period of personal disruption in your life. Describe the 'shattering' event, the chaotic ripple period, and the gradual, never-quite-identical reformation of your sense of self. What was lost in the distortion, and what new facets were revealed?"
},
{
"prompt12": "Describe a routine journey you make (a commute, a walk to the store) but narrate it as if you are a traveler in a foreign, slightly surreal land. Give fantastical names to ordinary landmarks. Interpret mundane events as portents or rituals. What hidden narrative or mythic structure can you impose on this familiar path? How does this reframing reveal the magic latent in the everyday?"
"prompt12": "You are handed a map of a city you know well, but it is from a century ago. Compare it to the modern layout. Which streets have vanished into oblivion, paved over or renamed? Which buildings are ghosts on the page? Choose one lost place and imagine walking its forgotten route today. What echoes of its past life\u2014sounds, smells, activities\u2014can you almost perceive beneath the contemporary surface? Write about the layers of history that coexist in a single geographic space."
},
{
"prompt13": "Imagine a place from your childhood that no longer exists in its original form\u2014a demolished building, a paved-over field, a renovated room. Reconstruct it from memory with all its sensory details. Now, write about the process of its erasure. Who decided it should change? What was lost in the transition, and what, if anything, was gained? How does the ghost of that place still influence the geography of your memory?"
"prompt13": "What is something you've been putting off and why?"
},
{
"prompt14": "You find an old, functional algorithm\u2014a recipe card, a knitting pattern, a set of instructions for assembling furniture. Follow it to the letter, but with a new, meditative attention to each step. Describe the process not as a means to an end, but as a ritual in itself. What resonance does this deliberate, prescribed action have? Does the final product matter, or has the value been in the structured journey?"
"prompt14": "Recall a piece of art\u2014a painting, song, film\u2014that initially confused or repelled you, but that you later came to appreciate or love. Describe your first, negative reaction in detail. Then, trace the journey to understanding. What changed in you or your context that allowed a new interpretation? Write about the value of sitting with discomfort and the rewards of having your internal syntax for beauty challenged and expanded."
},
{
"prompt15": "Imagine knowledge and ideas spread through a community not like a virus, but like a mycelium\u2014subterranean, cooperative, nutrient-sharing. Recall a time you learned something profound from an unexpected or unofficial source. Trace the hidden network that brought that wisdom to you. How many people and experiences were unknowingly part of that fruiting? Write a thank you to this invisible web."
"prompt15": "Imagine your life as a vast, intricate tapestry. Describe the overall scene it depicts. Now, find a single, loose thread\u2014a small regret, an unresolved question, a path not taken. Write about gently pulling on that thread. What part of the tapestry begins to unravel? What new pattern or image is revealed\u2014or destroyed\u2014by following this divergence? Is the act one of repair or deconstruction?"
},
{
"prompt16": "Imagine your creative or problem-solving process is a mycelial network. A question or idea is dropped like a spore onto this vast, hidden web. Describe the journey of this spore as it sends out filaments, connects with distant nodes of memory and knowledge, and eventually fruits as an 'aha' moment or a new creation. How does this model differ from a linear, step-by-step algorithm? What does it teach you about patience and indirect growth?"
"prompt16": "Recall a dream that felt more real than waking life. Describe its internal logic, its emotional palette, and its lingering aftertaste. Now, write a 'practical guide' for navigating that specific dreamscape, as if for a tourist. What are the rules? What should one avoid? What treasures might be found? By treating the dream as a tangible place, what insights do you gain about the concerns of your subconscious?"
},
{
"prompt17": "You are an archaeologist of the future, excavating the site of your own desk or kitchen counter. Treat the mundane objects you find as sacred artifacts. Create a detailed cartography of their arrangement. What does their spatial relationship suggest about the rituals of their user? What story does the wear pattern on a specific spot tell? Write your excavation report, inferring a civilization's values from its domestic debris."
"prompt17": "Describe a public space you frequent (a library, a cafe, a park) at the exact moment it opens or closes. Capture the transition from emptiness to potential, or from activity to stillness. Focus on the staff or custodians who facilitate this transition\u2014the unseen architects of these daily cycles. Write from the perspective of the space itself as it breathes in or out its human occupants. What residue of the day does it hold in the quiet?"
},
{
"prompt18": "Create a cartography of a significant year in your life, but map it as a celestial chart rather than a landmass. What were the major constellations (events, people) and how were they arranged? What were the dark spaces between them? Trace the orbital paths of your passions and fears. Now, imagine drawing navigation lines between these stars to create a new constellation with a name that defines that year's core lesson. What shape does it form?"
"prompt18": "Listen to a piece of music you know well, but focus exclusively on a single instrument or voice that usually resides in the background. Follow its thread through the entire composition. Describe its journey: when does it lead, when does it harmonize, when does it fall silent? Now, write a short story where this supporting element is the main character. How does shifting your auditory focus create a new narrative from familiar material?"
},
{
"prompt19": "Consider the mycelium of your social world\u2014the vast, often invisible network of connections, acquaintances, and weak ties that underpin your community. Choose one person you know only peripherally. Imagine the intricate web of relationships and experiences that connects you to them, however faintly. Write a speculative biography of this person based on the subtle, subliminal cues you've gathered. How does this exercise in connection alter your sense of isolation or belonging?"
"prompt19": "Describe your reflection in a window at night, with the interior light creating a double exposure of your face and the dark world outside. What two versions of yourself are superimposed? Write a conversation between the 'inside' self, defined by your private space, and the 'outside' self, defined by the anonymous night. What do they want from each other? How does this liminal artifact\u2014the glass\u2014both separate and connect these identities?"
},
{
"prompt20": "Imagine you are a cartographer of your own mind. Draw a map of a recent emotional landscape, labeling its features: the Swamp of Indecision, the Peak of Sudden Joy, the Quiet Forest of Contentment. What are the borders and territories? What hidden paths connect them? Now, consider the mycelial network of thoughts and memories beneath the surface, unseen but connecting everything. How does mapping the internal terrain change your relationship to its weather?"
"prompt20": "Imagine you are a diver exploring the deep ocean of your own memory. Choose a specific, vivid memory and describe it as a submerged landscape. What creatures (emotions) swim there? What is the water pressure (emotional weight) like? Now, imagine a small, deliberate act of forgetting\u2014letting a single detail of that memory dissolve into the murk. How does this selective oblivion change the entire ecosystem of that recollection? Does it create space for new growth, or does it feel like a loss of truth?"
},
{
"prompt21": "\"Examine the syntax of a city block you know well. Read its buildings like sentences, its intersections like punctuation, the flow of traffic like grammar. What is the block's dominant tense (past, present, future)? Its mood? Now, rewrite one element\u2014change a shop's sign in your mind, imagine a tree where there is concrete, slow the traffic to a standstill. Describe the block under this new syntactic rule. How does re-parsing a familiar place change your relationship to it?\","
"prompt21": "Recall a conversation that ended in a misunderstanding that was never resolved. Re-write the exchange, but introduce a single point of divergence\u2014one person says something slightly different, or pauses a moment longer. How does this tiny change alter the entire trajectory of the conversation and potentially the relationship? Explore the butterfly effect in human dialogue."
},
{
"prompt22": "\"Describe the velocity of your thoughts first thing in the morning as you lie in bed before rising. Are they slow and viscous, or do they race ahead to the day? Trace the arc of this mental speed as you move through your morning routine. What actions slow it down? What triggers accelerate it? Write about attempting to deliberately modulate this internal tempo. How does controlling the speed of thought affect your anxiety, creativity, or presence?\","
"prompt22": "Spend 15 minutes in complete silence, actively listening for the absence of a specific sound that is usually present (e.g., traffic, refrigerator hum, birds). Describe the quality of this crafted silence. What smaller sounds emerge in the void? How does your mind and body react to the deliberate removal of this sonic artifact? Explore the concept of oblivion as an active, perceptible state rather than a mere lack."
},
{
"prompt23": "\"Recall a conversation where the emotional velocity shifted dramatically\u2014from calm to stormy, from slow to fast, or vice versa. Map this shift. What was the catalyst word, glance, or silence? Describe the before and after as different climates. How did you navigate the change in pace? Write the dialogue not as it was spoken, but as you felt it in your body\u2014a script of accelerations and decelerations. What does this teach you about the thermodynamics of human interaction?\","
"prompt23": "Describe a skill or talent you possess that feels like it's fading from lack of use\u2014a language getting rusty, a sport you no longer play, an instrument gathering dust. Perform or practice it now, even if clumsily. Chronicle the physical and mental sensations of re-engagement. What echoes of proficiency remain? Is the knowledge truly gone, or merely dormant? Write about the relationship between mastery and oblivion."
},
{
"prompt24": "\"Stand perfectly still in a busy place (a park, a train station, a street corner). Observe the velocity of the world flowing around you\u2014people, vehicles, pigeons, leaves. Describe this flow as a force of nature. Now, focus on the small, still points within the chaos: a statue, a person sitting on a bench, a building's corner. Write about the experience of being a temporary still point. How does this shift in perspective affect your sense of self within the collective motion? What echoes of past stillness does it evoke?\","
"prompt24": "Choose a common word (e.g., 'home,' 'work,' 'friend') and dissect its personal syntax. What rules, associations, and exceptions have you built around its meaning? Now, deliberately break one of those rules. Use the word in a context or with a definition that feels wrong to you. Write a paragraph that forces this new usage. How does corrupting your own internal language create space for new understanding?"
},
{
"prompt25": "\"You are given a box labeled 'Syntactic Fragments.' Inside are torn pieces of paper, each with a phrase that seems part of a larger, unknown set of rules (e.g., 'if the moon is high,' 'always counter-clockwise,' 'except on Sundays'). Arrange a few of these fragments into a new, personal rule for living. Write the full 'rule' they inspire, and then describe a day lived deliberately according to this strange, assembled syntax. What new logic emerges? How does it alter your perception of order and meaning?\","
"prompt25": "Contemplate a personal habit or pattern you wish to change. Instead of focusing on breaking it, imagine it diverging\u2014mutating into a new, slightly different pattern. Describe the old habit in detail, then design its evolved form. What small, intentional twist could redirect its energy? Write about a day living with this divergent habit. How does a shift in perspective, rather than eradication, alter your relationship to it?"
},
{
"prompt26": "\"Find an artifact of velocity in your world\u2014a worn-out shoe sole, a smoothed-down stair railing, a particular bend in a path where the grass is beaten down. Examine it as an archaeologist would. What story of repeated motion, pressure, and passage does it tell? Who or what created this evidence of speed or frequent travel? Write from the perspective of the path or object itself, chronicling the countless transits it has silently witnessed and absorbed.\","
"prompt26": "Describe a routine journey you make (a commute, a walk to the store) but narrate it as if you are a traveler in a foreign, slightly surreal land. Give fantastical names to ordinary landmarks. Interpret mundane events as portents or rituals. What hidden narrative or mythic structure can you impose on this familiar path? How does this reframing reveal the magic latent in the everyday?"
},
{
"prompt27": "\"Describe a moment when you felt a sudden, overwhelming sense of velocity\u2014not just physical speed, but the feeling of life accelerating, decisions piling up, or time slipping through your fingers. Where were you? What triggered this sensation? Explore the contrast between the frantic pace and your desire for stillness. How did you respond? Did you try to brake, or did you surrender to the momentum? Reflect on what this experience taught you about your relationship with time and urgency.\","
"prompt27": "Imagine a place from your childhood that no longer exists in its original form\u2014a demolished building, a paved-over field, a renovated room. Reconstruct it from memory with all its sensory details. Now, write about the process of its erasure. Who decided it should change? What was lost in the transition, and what, if anything, was gained? How does the ghost of that place still influence the geography of your memory?"
},
{
"prompt28": "Analyze the syntax of a recurring dream or nightmare. What are its consistent elements (settings, characters, actions) and its variables? What is the underlying grammatical rule of this dreamscape? Write a new 'scene' in this dream's language, adhering to its strange logic. What might this internal syntax be trying to construct or communicate?"
"prompt28": "You find an old, functional algorithm\u2014a recipe card, a knitting pattern, a set of instructions for assembling furniture. Follow it to the letter, but with a new, meditative attention to each step. Describe the process not as a means to an end, but as a ritual in itself. What resonance does this deliberate, prescribed action have? Does the final product matter, or has the value been in the structured journey?"
},
{
"prompt29": "Find an object in nature that serves as an artifact of a process\u2014a smooth stone (water's work), a seashell (a creature's former home), a fallen leaf (a season's turn). Describe it as evidence. What story of transformation, pressure, or time does it tell? Write from the perspective of the elemental force that created it, explaining its methodology."
"prompt29": "Imagine knowledge and ideas spread through a community not like a virus, but like a mycelium\u2014subterranean, cooperative, nutrient-sharing. Recall a time you learned something profound from an unexpected or unofficial source. Trace the hidden network that brought that wisdom to you. How many people and experiences were unknowingly part of that fruiting? Write a thank you to this invisible web."
},
{
"prompt30": "Recall a phrase or sentence someone said to you long ago that has become a kind of mental echo, recurring at unexpected times. Why has it stuck? How has its meaning morphed with each repetition in your mind? Write a letter to the person who said it (you don't have to send it) explaining how their words have lived on inside you, far beyond their original intent."
"prompt30": "Imagine your creative or problem-solving process is a mycelial network. A question or idea is dropped like a spore onto this vast, hidden web. Describe the journey of this spore as it sends out filaments, connects with distant nodes of memory and knowledge, and eventually fruits as an 'aha' moment or a new creation. How does this model differ from a linear, step-by-step algorithm? What does it teach you about patience and indirect growth?"
},
{
"prompt31": "Listen for an echo in your physical environment\u2014your voice in a stairwell, a sound bouncing off a building. Describe its decay, its distortion. Now, consider an echo in your life: a piece of advice that returns to you, a pattern repeating, a consequence of an old action rippling forward. Personify this echo. What message is it trying to deliver through its repetition?"
"prompt31": "You are an archaeologist of the future, excavating the site of your own desk or kitchen counter. Treat the mundane objects you find as sacred artifacts. Create a detailed cartography of their arrangement. What does their spatial relationship suggest about the rituals of their user? What story does the wear pattern on a specific spot tell? Write your excavation report, inferring a civilization's values from its domestic debris."
},
{
"prompt32": "Describe a conversation you had where the words spoken were just the surface syntax. What was the true dialogue happening beneath\u2014in the pauses, the glances, the body language? Decode that subtext. Write the exchange as two columns: the spoken words on the left, and the real, unspoken meaning on the right. What does this reveal about the art of human communication?"
"prompt32": "Create a cartography of a significant year in your life, but map it as a celestial chart rather than a landmass. What were the major constellations (events, people) and how were they arranged? What were the dark spaces between them? Trace the orbital paths of your passions and fears. Now, imagine drawing navigation lines between these stars to create a new constellation with a name that defines that year's core lesson. What shape does it form?"
},
{
"prompt33": "You are handed a key to a room you didn't know existed. Describe the threshold: the door's material, the lock's sound, the feel of the key turning. Cross into the room. What does it contain? Focus not on fantastical treasures, but on things that feel intimately, unsettlingly familiar, as if they've been waiting for you. What does this space ask you to remember or acknowledge?"
"prompt33": "Consider the mycelium of your social world\u2014the vast, often invisible network of connections, acquaintances, and weak ties that underpin your community. Choose one person you know only peripherally. Imagine the intricate web of relationships and experiences that connects you to them, however faintly. Write a speculative biography of this person based on the subtle, subliminal cues you've gathered. How does this exercise in connection alter your sense of isolation or belonging?"
},
{
"prompt34": "Imagine you discover a forgotten artifact in your attic or basement\u2014a ticket stub, a faded postcard, a broken toy. Describe it with the reverence of an archaeologist. What story does this object tell about a past version of you or your family? Now, write the narrative of the day it was first acquired or used. How does this echo of a former life resonate with your present? Consider the weight of memory that physical objects can hold."
"prompt34": "Imagine you are a cartographer of your own mind. Draw a map of a recent emotional landscape, labeling its features: the Swamp of Indecision, the Peak of Sudden Joy, the Quiet Forest of Contentment. What are the borders and territories? What hidden paths connect them? Now, consider the mycelial network of thoughts and memories beneath the surface, unseen but connecting everything. How does mapping the internal terrain change your relationship to its weather?"
},
{
"prompt35": "Recall a time you were an outsider, entering a group or situation where you didn't know the rules. Describe the sensory details of that space and the subtle cues you missed. How did you learn to navigate? Did you assimilate, remain on the periphery, or leave? Reflect on the wisdom gained from being the novice, and the empathy it might foster for other outsiders you encounter."
"prompt35": "\"Examine the syntax of a city block you know well. Read its buildings like sentences, its intersections like punctuation, the flow of traffic like grammar. What is the block's dominant tense (past, present, future)? Its mood? Now, rewrite one element\u2014change a shop's sign in your mind, imagine a tree where there is concrete, slow the traffic to a standstill. Describe the block under this new syntactic rule. How does re-parsing a familiar place change your relationship to it?\","
},
{
"prompt36": "Write a review of today as if it were a product, a film, or a restaurant. Give it a star rating. Detail its pros and cons, its pacing, its standout features, and its flaws. Who would you recommend it to? Be both brutally honest and strangely objective. How does framing your lived experience as something to be critiqued change your perception of its value?"
"prompt36": "\"Describe the velocity of your thoughts first thing in the morning as you lie in bed before rising. Are they slow and viscous, or do they race ahead to the day? Trace the arc of this mental speed as you move through your morning routine. What actions slow it down? What triggers accelerate it? Write about attempting to deliberately modulate this internal tempo. How does controlling the speed of thought affect your anxiety, creativity, or presence?\","
},
{
"prompt37": "Describe a piece of furniture in your home not by its appearance, but by its function in your emotional geography. Is your bed an island of respite? Is your kitchen table a stage for negotiation? Is a certain chair a vessel for contemplation? Narrate a typical interaction with this piece. What secrets has it absorbed? If it were to be replaced, what intangible quality would be hardest to replicate?"
"prompt37": "\"Recall a conversation where the emotional velocity shifted dramatically\u2014from calm to stormy, from slow to fast, or vice versa. Map this shift. What was the catalyst word, glance, or silence? Describe the before and after as different climates. How did you navigate the change in pace? Write the dialogue not as it was spoken, but as you felt it in your body\u2014a script of accelerations and decelerations. What does this teach you about the thermodynamics of human interaction?\","
},
{
"prompt38": "Document the journey of a single breath. Start with the intention to inhale. Follow the air's path into your body, the expansion, the microscopic exchange. Then, trace the exhale out into the room, imagining its dispersal into the wider atmosphere. Where might its molecules travel next? Anchor yourself in this most fundamental rhythm. How does focusing on this autonomic process alter your sense of time and connection to the biosphere?"
"prompt38": "\"Stand perfectly still in a busy place (a park, a train station, a street corner). Observe the velocity of the world flowing around you\u2014people, vehicles, pigeons, leaves. Describe this flow as a force of nature. Now, focus on the small, still points within the chaos: a statue, a person sitting on a bench, a building's corner. Write about the experience of being a temporary still point. How does this shift in perspective affect your sense of self within the collective motion? What echoes of past stillness does it evoke?\","
},
{
"prompt39": "Describe your shadow at three different times today: dawn, noon, and dusk. Note its length, its sharpness, its behavior. Personify it. Is it a loyal follower, a stretched parody, a separate entity with its own agenda? Write a monologue from your shadow's perspective. What does it think of your daily pursuits? What does it see that you miss? Explore the duality of being both the caster and the cast."
"prompt39": "\"You are given a box labeled 'Syntactic Fragments.' Inside are torn pieces of paper, each with a phrase that seems part of a larger, unknown set of rules (e.g., 'if the moon is high,' 'always counter-clockwise,' 'except on Sundays'). Arrange a few of these fragments into a new, personal rule for living. Write the full 'rule' they inspire, and then describe a day lived deliberately according to this strange, assembled syntax. What new logic emerges? How does it alter your perception of order and meaning?\","
},
{
"prompt40": "Contemplate the concept of 'repair.' Choose something in your environment that is broken, frayed, or worn\u2014a relationship, an object, a habit. Describe the damage with forensic honesty. Now, instead of replacing or discarding it, imagine meticulously repairing it. What tools and materials would you need? What skills must you learn? Describe the slow, patient process of restoration. How does the value of the thing change when it bears the visible marks of its mending?"
"prompt40": "\"Find an artifact of velocity in your world\u2014a worn-out shoe sole, a smoothed-down stair railing, a particular bend in a path where the grass is beaten down. Examine it as an archaeologist would. What story of repeated motion, pressure, and passage does it tell? Who or what created this evidence of speed or frequent travel? Write from the perspective of the path or object itself, chronicling the countless transits it has silently witnessed and absorbed.\","
},
{
"prompt41": "Imagine you are tasked with archiving the contents of a single drawer in your home for a future museum of ordinary life. Select the drawer and catalog each item with the care of a curator. For each object, write a brief label explaining its function, origin, and emotional significance. What story does this collection tell about its owner? What might an archaeologist in 2224 misinterpret? Reflect on the biography of a life told through these accumulated fragments."
"prompt41": "\"Describe a moment when you felt a sudden, overwhelming sense of velocity\u2014not just physical speed, but the feeling of life accelerating, decisions piling up, or time slipping through your fingers. Where were you? What triggered this sensation? Explore the contrast between the frantic pace and your desire for stillness. How did you respond? Did you try to brake, or did you surrender to the momentum? Reflect on what this experience taught you about your relationship with time and urgency.\","
},
{
"prompt42": "Document the sounds of a single hour in your life, from the most prominent noise to the nearly inaudible background hum. Create a soundscape in words. Then, imagine composing a piece of music based on this sonic profile. What instruments would you use? What would the tempo and mood be? How does listening to your life as music change your perception of its rhythm and harmony?"
"prompt42": "Analyze the syntax of a recurring dream or nightmare. What are its consistent elements (settings, characters, actions) and its variables? What is the underlying grammatical rule of this dreamscape? Write a new 'scene' in this dream's language, adhering to its strange logic. What might this internal syntax be trying to construct or communicate?"
},
{
"prompt43": "You are asked to contribute an item to a time capsule that will be opened in 100 years. The item should represent the essence of daily life in your community now. What do you choose, and why? Write the explanatory note that will accompany it. Consider the mundane artifacts that future historians might prize. What message are you implicitly sending about what you value, fear, or find ordinary?"
"prompt43": "Find an object in nature that serves as an artifact of a process\u2014a smooth stone (water's work), a seashell (a creature's former home), a fallen leaf (a season's turn). Describe it as evidence. What story of transformation, pressure, or time does it tell? Write from the perspective of the elemental force that created it, explaining its methodology."
},
{
"prompt44": "Describe the process of waiting for something important. Break down the physical sensations: the checking of clocks, the fidgeting, the way the room seems to change. Chronicle the internal monologue that cycles through hope, doubt, rehearsal, and resignation. How do you pass the time? Find meaning in the liminal space of anticipation itself, separate from the outcome you await."
"prompt44": "Recall a phrase or sentence someone said to you long ago that has become a kind of mental echo, recurring at unexpected times. Why has it stuck? How has its meaning morphed with each repetition in your mind? Write a letter to the person who said it (you don't have to send it) explaining how their words have lived on inside you, far beyond their original intent."
},
{
"prompt45": "You receive a package with no return address. Inside is an object that seems intimately connected to you, but you cannot recall ever owning it. Describe the object with forensic detail\u2014its weight, its material, any inscriptions. How does handling it make you feel? Write the story of its imagined journey to your doorstep. What mystery does it represent, and will you try to solve it or simply let it be?"
"prompt45": "Listen for an echo in your physical environment\u2014your voice in a stairwell, a sound bouncing off a building. Describe its decay, its distortion. Now, consider an echo in your life: a piece of advice that returns to you, a pattern repeating, a consequence of an old action rippling forward. Personify this echo. What message is it trying to deliver through its repetition?"
},
{
"prompt46": "Describe your relationship with a particular type of weather (e.g., thunderstorms, fog, blistering heat). Do you seek it out or avoid it? Recall a specific, vivid encounter with this weather that left a mark on you. How does your body respond to its approach? Personify this weather as a recurring character in your life story. What role does it play\u2014antagonist, comforter, catalyst for change?"
"prompt46": "Describe a conversation you had where the words spoken were just the surface syntax. What was the true dialogue happening beneath\u2014in the pauses, the glances, the body language? Decode that subtext. Write the exchange as two columns: the spoken words on the left, and the real, unspoken meaning on the right. What does this reveal about the art of human communication?"
},
{
"prompt47": "Recall a time you were profoundly lost, either literally or metaphorically. Describe the landscape of that disorientation\u2014the fading landmarks, the growing panic or curiosity, the quality of the light. How did you eventually find your way, or decide on a direction? Explore what that period of being untethered taught you about navigation, trust, and the value of sometimes not knowing where you are going."
"prompt47": "You are handed a key to a room you didn't know existed. Describe the threshold: the door's material, the lock's sound, the feel of the key turning. Cross into the room. What does it contain? Focus not on fantastical treasures, but on things that feel intimately, unsettlingly familiar, as if they've been waiting for you. What does this space ask you to remember or acknowledge?"
},
{
"prompt48": "You are tasked with designing a new public holiday that addresses a modern need for connection or reflection. What is its name, and on what date does it fall? Describe its rituals, symbols, and traditional foods. How do people prepare for it, and what activities are encouraged or forbidden? Write a personal account of experiencing this holiday for the first time, focusing on the emotions it evokes and the societal gaps it aims to fill."
"prompt48": "Imagine you discover a forgotten artifact in your attic or basement\u2014a ticket stub, a faded postcard, a broken toy. Describe it with the reverence of an archaeologist. What story does this object tell about a past version of you or your family? Now, write the narrative of the day it was first acquired or used. How does this echo of a former life resonate with your present? Consider the weight of memory that physical objects can hold."
},
{
"prompt49": "Choose a street you walk down often. Today, walk it with the mission of noticing five things you've never seen before. They can be tiny: a crack in the pavement shaped like a continent, a particular stain on a wall, a hidden doorbell. Document each discovery in detail. Then, reflect on the phenomenon of selective attention. What had you been filtering out, and why? How does this exercise change your sense of the familiar path?"
"prompt49": "Recall a time you were an outsider, entering a group or situation where you didn't know the rules. Describe the sensory details of that space and the subtle cues you missed. How did you learn to navigate? Did you assimilate, remain on the periphery, or leave? Reflect on the wisdom gained from being the novice, and the empathy it might foster for other outsiders you encounter."
},
{
"prompt50": "Imagine you could host a dinner party for three fictional characters from different books, films, or myths. Who would you invite and why? Don't just list them. Set the scene: the table setting, the menu, the lighting. Write the conversation that unfolds. What would they argue about? What surprising common ground might they find? How would their presence challenge or affirm your own worldview? Let the dialogue reveal their core natures."
"prompt50": "Write a review of today as if it were a product, a film, or a restaurant. Give it a star rating. Detail its pros and cons, its pacing, its standout features, and its flaws. Who would you recommend it to? Be both brutally honest and strangely objective. How does framing your lived experience as something to be critiqued change your perception of its value?"
},
{
"prompt51": "Describe a taste you loved as a child but have since grown indifferent to or now dislike. Recreate the sensory memory of that taste with precision. What was its context? Who was with you? Now, analyze the shift. Did your palate change, or did the associations sour? Is there a way to reclaim the innocent pleasure of that taste, or is its loss a necessary marker of growing up? Explore the nostalgia and slight grief in outgrowing a flavor."
"prompt51": "Describe a piece of furniture in your home not by its appearance, but by its function in your emotional geography. Is your bed an island of respite? Is your kitchen table a stage for negotiation? Is a certain chair a vessel for contemplation? Narrate a typical interaction with this piece. What secrets has it absorbed? If it were to be replaced, what intangible quality would be hardest to replicate?"
},
{
"prompt52": "Contemplate the concept of 'waste' in your daily life. Choose one item destined for the trash or recycling. Trace its journey backwards from your hand to its origins as raw material. Then, project its journey forward after it leaves your custody. What systems does it touch? What hands might process it? Write a biography of this discarded object, granting it dignity and narrative. How does this perspective alter your sense of responsibility and connection?"
"prompt52": "Document the journey of a single breath. Start with the intention to inhale. Follow the air's path into your body, the expansion, the microscopic exchange. Then, trace the exhale out into the room, imagining its dispersal into the wider atmosphere. Where might its molecules travel next? Anchor yourself in this most fundamental rhythm. How does focusing on this autonomic process alter your sense of time and connection to the biosphere?"
},
{
"prompt53": "Invent a small, personal ritual you could perform to mark the transition from one part of your day to another (e.g., work to home, waking to activity). Describe each step with deliberate, sensory care. What object is involved? What words, if any, are said? How does your posture change? The goal isn't superstition, but mindfulness. Write about performing this ritual for a week. What subtle shifts in your awareness might it create? How does deliberately carving out a threshold affect your experience of time?"
"prompt53": "Describe your shadow at three different times today: dawn, noon, and dusk. Note its length, its sharpness, its behavior. Personify it. Is it a loyal follower, a stretched parody, a separate entity with its own agenda? Write a monologue from your shadow's perspective. What does it think of your daily pursuits? What does it see that you miss? Explore the duality of being both the caster and the cast."
},
{
"prompt54": "Consider a piece of music that feels like a physical space to you\u2014a song you can walk into. Describe the architecture of this auditory landscape. What is the floor made of? How high is the ceiling? What color is the light? Where are the shadows? What happens to your body and breath as you move through its sections\u2014the verses, the chorus, the bridge? Is it a place of refuge, confrontation, or memory? Explore how sound can build an environment you inhabit, not just hear."
"prompt54": "Contemplate the concept of 'repair.' Choose something in your environment that is broken, frayed, or worn\u2014a relationship, an object, a habit. Describe the damage with forensic honesty. Now, instead of replacing or discarding it, imagine meticulously repairing it. What tools and materials would you need? What skills must you learn? Describe the slow, patient process of restoration. How does the value of the thing change when it bears the visible marks of its mending?"
},
{
"prompt55": "Describe your ideal sanctuary\u2014not a grand fantasy, but a realistically attainable space you could create. Detail its location, size, lighting, furnishings, and most importantly, its rules (e.g., 'no devices,' 'only music without words,' 'must contain something living'). What specific activities would you do there? What state of mind does this space architecturally encourage? How would visiting it regularly change the rhythm of your weeks?"
"prompt55": "Imagine you are tasked with archiving the contents of a single drawer in your home for a future museum of ordinary life. Select the drawer and catalog each item with the care of a curator. For each object, write a brief label explaining its function, origin, and emotional significance. What story does this collection tell about its owner? What might an archaeologist in 2224 misinterpret? Reflect on the biography of a life told through these accumulated fragments."
},
{
"prompt56": "Describe a skill or piece of knowledge you possess that you learned in an unconventional, self-taught, or accidental way. Detail the messy, non-linear process of that learning. Who or what were your unlikely teachers? Celebrate the inefficiency and personal quirks of your method. How does this 'uncurated' knowledge differ in feel and application from something you were formally taught?"
"prompt56": "Document the sounds of a single hour in your life, from the most prominent noise to the nearly inaudible background hum. Create a soundscape in words. Then, imagine composing a piece of music based on this sonic profile. What instruments would you use? What would the tempo and mood be? How does listening to your life as music change your perception of its rhythm and harmony?"
},
{
"prompt57": "Think of a skill or piece of knowledge you possess that feels almost instinctual, something you can do without conscious thought (like riding a bike, typing, or a native language's grammar). Deconstruct this automatic competence. Describe the first clumsy attempts to learn it, the plateau of frustration, the moment it 'clicked' into muscle memory. Explore the duality of this knowledge: how it is both a part of you and a separate tool. What does this ingrained ability allow you to forget, and what freedom does that forgetfulness grant?"
"prompt57": "You are asked to contribute an item to a time capsule that will be opened in 100 years. The item should represent the essence of daily life in your community now. What do you choose, and why? Write the explanatory note that will accompany it. Consider the mundane artifacts that future historians might prize. What message are you implicitly sending about what you value, fear, or find ordinary?"
},
{
"prompt58": "Choose a natural element you feel a kinship with\u2014fire, stone, water, wind, or earth. Personify it deeply: give it desires, memories, a voice. Write a monologue from its perspective about its ancient, slow existence and its observations of human brevity and frenzy. Then, write about a moment in your life when you felt most aligned with this element's essence. How does connecting with this primal force alter your sense of time and scale?"
"prompt58": "Describe the process of waiting for something important. Break down the physical sensations: the checking of clocks, the fidgeting, the way the room seems to change. Chronicle the internal monologue that cycles through hope, doubt, rehearsal, and resignation. How do you pass the time? Find meaning in the liminal space of anticipation itself, separate from the outcome you await."
},
{
"prompt59": "Imagine you could preserve one hour from your recent memory in a vial, to be re-experienced fully at a future date. Which hour would you choose? Describe it not just as events, but as a full sensory immersion: the light, the sounds, the emotional texture, the quality of the air. Why is this particular slice of time worth encapsulating? What fears or hopes do you have about opening that vial years from now? Write about the desire to hold onto a fleeting feeling, and the wisdom or melancholy that might come from revisiting it."
"prompt59": "You receive a package with no return address. Inside is an object that seems intimately connected to you, but you cannot recall ever owning it. Describe the object with forensic detail\u2014its weight, its material, any inscriptions. How does handling it make you feel? Write the story of its imagined journey to your doorstep. What mystery does it represent, and will you try to solve it or simply let it be?"
}
]

View File

@@ -1,22 +1,22 @@
[
"Imagine you are a translator for a species that communicates through scent. Describe the complex 'sentence' of a specific place's aroma\u2014a bakery, a forest after rain, a subway station. Break down its notes as if they were clauses and modifiers. Now, attempt to translate this olfactory message into a human language. What is inevitably lost in translation? What unique wisdom might this scent-language contain about the world?",
"You are given a single, unmarked key. Instead of wondering what lock it fits, you decide to carry it with you for a week as a totem. Describe its weight in your pocket, the sound it makes against other items. How does its silent, potential purpose affect your daily decisions and observations? Does it begin to feel like it unlocks something metaphorical within your routine? Write about the power of an unanswered question made physical.",
"Recall a time you witnessed a complete stranger perform a small, unexpected act of kindness. Describe the scene in detail, focusing on the body language of both the giver and receiver. Now, imagine the vast, invisible network of causality that led to that precise moment. Trace one possible thread backwards through the stranger's day. How does acknowledging the depth of every fleeting interaction change your perception of anonymity?",
"Describe a piece of clothing you own that has been repaired\u2014a darned sock, a patched knee, a re-soled shoe. Focus on the repair itself. Is it visible or hidden? Skillful or clumsy? Does it match or contrast? Write the biography of this mended object, giving voice to both the original fabric and the intervention. What story of wear, care, and continuation does it tell? How is its value different from something pristine?",
"Contemplate a door in your life that is currently closed\u2014literal or metaphorical. Describe the door itself: its material, its handle, the sound it makes when shut. Now, instead of focusing on what's behind it or the desire to open it, write about the quality of the threshold it creates. What exists in the space of not-knowing? How does this closed door shape the rooms you currently occupy? Explore the architecture of limitation.",
"You discover your life is being gently edited by a benign, unseen force. Small, insignificant details are being erased: the memory of a cloud's shape, the name of a minor character in a book, the specific feeling of a Tuesday in March. Describe the sensation of these minor oblivions. Do you feel lighter or impoverished? Would you try to stop the edits, or trust the process? Write about the curation of a life through subtle forgetting.",
"Choose a common machine in your home (a refrigerator, a washing machine, a router). Spend ten minutes listening to its operational sounds. Describe its sonic signature\u2014its rhythms, clicks, and hums. Now, imagine writing its user manual, but from its own perspective. What are its instructions for human cohabitation? What does it need to function well? How does this shift in agency alter your relationship with the 'dumb' object?",
"Map a significant personal relationship as a shared garden. What have you each planted? What has grown wild? What requires constant tending, and what is delightfully low-maintenance? Describe the current season of this garden. Are you harvesting, weeding, or letting it lie fallow? Write about a conversation you might have while working side-by-side in this metaphorical space. What does this horticultural model reveal about partnership?",
"Describe a time you followed a set of instructions perfectly, but the outcome was a glorious or disastrous failure. Recreate the process step-by-step, with the growing sense of divergence from the expected path. Where did the rupture between plan and reality occur? Was it in the materials, the environment, or something ineffable? Explore the hidden variables that live in the gap between theory and practice, and what the 'failure' taught you that success could not.",
"You are tasked with creating a museum exhibit about an ordinary day in your life. Choose three 'artifacts' from today (a coffee mug, a crumpled to-do list, a specific text message). For each, write the museum placard that explains its significance to future visitors. What narrative about early 21st century life do these curated fragments tell? What essential truths would they miss entirely?",
"Listen to a song from a genre you typically avoid. Do not judge it; instead, dissect it as an anthropologist would. What are its conventions? What emotional need might it serve for its primary audience? Can you find one element\u2014a rhythm, a vocal inflection, an instrumental break\u2014that you can appreciate on its own terms? Write about the experience of analyzing taste instead of surrendering to it.",
"Imagine your mind has a 'search function' like a computer. Perform a search for a specific memory using fragmented keywords (e.g., 'yellow,' 'laughter,' 'rain'). Describe the 'results' that surface\u2014are they accurate? Are there unexpected associations? What memories are seemingly 'deleted' or unindexed? Explore the messy, non-linear, and poetic way human memory actually retrieves information compared to digital precision.",
"Describe a recurring thought or worry that circles in your mind. Give it a shape, a color, a texture. Now, imagine deliberately placing that thought on a small leaf and setting it adrift on a slow-moving stream. Narrate its journey away from you. What does the landscape look like as it floats further? How does the space in your mind feel once it is occupied by the image of the receding leaf instead of the thought itself?",
"Choose a tool you use regularly (a pen, a knife, a software program). Write a love letter to this tool from the perspective of the task it performs. For example, let 'the written sentence' thank the pen. Be specific about the qualities that make this tool an ideal partner. Then, write a brief breakup letter from the same perspective, citing the tool's flaws. How does this personification deepen your appreciation for designed objects?",
"You are given a notebook with the rule that you can only write in it while moving\u2014walking, on a train, in a car (as a passenger). Document your first entry. How does the kinetic state affect your handwriting, your thought flow, and your observations? What do you notice about the world that you might miss while stationary? Explore the link between physical motion and mental velocity, and the unique quality of thoughts captured in transit.",
"Recall a piece of advice you were given that you deliberately chose to ignore. Reconstruct the moment it was offered. Why did you reject it? Was it the source, the timing, or the content itself? Now, with the benefit of hindsight, was your divergence from that path wise or foolish? Or does the binary of wise/foolish not apply? Write a letter to your past self about the value of both heeding and disregarding guidance.",
"Describe your childhood home's kitchen at a specific, non-eventful time\u2014perhaps a Tuesday evening. Use all senses to capture its mundane essence. Now, imagine that space empty, all the furniture and appliances gone, leaving only the ghosts of their impressions on the floor. What echoes of activity can you still perceive in the bare room? Write about the persistence of memory in architecture and the haunting quality of absence.",
"Contemplate a small, daily obligation that feels like a chore (making the bed, doing dishes, answering emails). Perform it tomorrow with the reverence of a sacred ritual. Describe each micro-action with exaggerated care and attention. Does this shift in mindset transform the experience? Does it reveal a hidden rhythm or satisfaction, or simply make the task take longer? Explore the boundary between drudgery and mindfulness.",
"You find an old, blank map. Instead of filling it with geographical features, you decide to map the territories of your own personality. Chart the continents of your passions, the islands of secret skills, the treacherous swamps of your fears, the well-trod roads of habit. Where are the borders fuzzy? Where are there unexplored regions? Creating this cartography, what do you discover about the landscape of your self that you usually take for granted?",
"Describe a habit you have that is essentially a personal ritual, though you may not have named it as such (your morning coffee routine, the way you arrange your desk, your pre-sleep phone scroll). Break it down into its component actions. What need does this sequence fulfill beyond its practical outcome? What would happen if you skipped a step? Write an ode to this small, automatic ceremony that structures your day and provides a subtle anchor of identity."
"Describe a piece of clothing you own that has been altered or mended multiple times. Trace the history of each repair. Who performed them, and under what circumstances? How does the garment's story of damage and restoration mirror larger cycles of wear and renewal in your own life? What does its continued use, despite its patched state, say about your relationship with impermanence and care?",
"You are standing at the literal threshold of a building you've never entered\u2014a museum, a community center, a stranger's house with an open door for an event. Describe the act of crossing from the outside world into this new interior. What changes in the light, the sound, the smell? What internal shift occurs as you move from observer to participant? Write about the moment of commitment that a simple step can represent.",
"Observe a plant growing in an unlikely place\u2014a crack in the pavement, a gutter, a wall. Describe its tenacity and form. Now, imagine its hidden root system as a mycelial network, seeking out moisture and nutrients in the barren substrate. Write from the perspective of the plant about its silent, stubborn work of creation against all algorithmic logic of where life should be. What does its existence whisper about resilience?",
"Recall a piece of practical advice you received that functioned like a simple life algorithm: 'When X happens, do Y.' Examine a recent situation where you deliberately chose not to follow that algorithm. What prompted the deviation? What was the outcome? Describe the feeling of operating outside of a previously trusted internal program. Did the mutation feel like a mistake or an evolution?",
"Map the light in your home over the course of a single day. Start at dawn and note how sunlight, shadow, and artificial illumination claim different territories in each room. How do these shifting patterns of light and dark influence your mood and activities? Create a cartography of illumination, labeling the 'Golden Hour Peninsula' in the living room or the 'Noon Desert' of the kitchen table. What stories do these transient maps tell?",
"Consider a relationship in your life that has undergone a significant repair after a period of distance or conflict. Describe the 'break' itself as sparingly as possible. Instead, focus on the subtle, often wordless mechanics of the mending process. What small gestures, changed tones, or shared silences acted as stitches? How is the relationship stronger or more fragile at the seams now?",
"You encounter a door that is usually locked, but today it is slightly ajar. This is not a grand, mysterious portal, but an ordinary door\u2014to a storage closet, a rooftop, a neighbor's garden gate. Write about the potent allure of this minor threshold. Do you push it open? What mundane or profound discovery lies on the other side? Explore the magnetism of accessible secrets in a world of usual boundaries.",
"Analyze a daily ritual you perform almost unconsciously, like making coffee or locking up at night. Deconstruct it into its component steps as if it were a machine's algorithm. Now, introduce a single, whimsical mutation: perform one step backwards, or with your non-dominant hand, or while singing. Chronicle the experience. Does the ritual collapse, or does it absorb the change and create a new, slightly off-kilter normal?",
"Imagine your network of friends and acquaintances as a fungal mycelium, with connections visible and invisible. Consider a piece of joyful news or a resource that recently came to you. Trace it back through the network. Who passed it along, and who might have passed it to them? Write a note of gratitude that acknowledges not just the immediate source, but the entire hidden web that made the transfer possible.",
"You find an old, annotated map\u2014perhaps in a book, or a tourist pamphlet from a trip long ago. Study the marks: circled sites, crossed-out routes, notes in the margin. Reconstruct the journey of the person who held this map. Where did they plan to go? Where did they actually go, based on the evidence? Write the travelogue of that forgotten expedition, blending the cartographic intention with the likely reality.",
"Describe a tool you use regularly that is wearing out\u2014a favorite pen, a kitchen knife, a pair of scissors. Document its journey from pristine functionality to its current state. What does its gradual decline, and your reluctance to replace it, say about your attachment to the familiar? Personify the tool. What might it say about the work it has done and the hands that have used it?",
"Stand at a window and observe the world outside for ten full minutes. Your task is not to describe what you see, but to map the patterns of movement: the vectors of pedestrians, the drift of clouds, the flicker of leaves. Create a dynamic cartography of flux and stillness. Then, turn your attention inward. What internal movements\u2014of thought, memory, emotion\u2014mirror or contrast this external map?",
"Recall a time you had to learn a new system or language quickly\u2014a job, a software, a social circle. Describe the initial phase of feeling like an outsider, decoding the basic algorithms of behavior. Then, focus on the precise moment you felt you crossed the threshold from outsider to competent insider. What was the catalyst? A piece of understood jargon? A successfully completed task? Explore the subtle architecture of belonging.",
"Examine a household object that is a composite of many parts\u2014a clock, a bicycle, a computer. Choose one small, non-essential component (a decorative screw, a particular wire, a specific key on the keyboard). Imagine that component mutating: it changes color, texture, or emits a soft sound. How does this small, surreal change affect your perception and interaction with the whole machine? Write about the poetry of minor, inexplicable alterations.",
"Contemplate a personal belief or assumption that has recently been 'repaired'\u2014not shattered, but adjusted, nuanced, or strengthened after being challenged. Describe the 'crack' that appeared in its surface. What information or experience served as the glue or the patch? How does the belief function now, bearing the visible seam of its mending? Is it more resilient for having been questioned?",
"You are given a seed. It is not a magical seed, but an ordinary one from a fruit you ate. Instead of planting it, you decide to carry it with you for a week as a silent companion. Describe its presence in your pocket or bag. How does knowing it is there, a compact potential for an entire mycelial network of roots and a tree, subtly influence your days? Write about the weight of unactivated futures.",
"Map a recurring thought or worry not as a sentence, but as a landscape. Give it geography: Is it a swamp, a maze, a steep cliff? What are its landmarks? Now, draw (in words) a new path through this territory\u2014a bridge, a tunnel, a hidden valley of respite. Describe walking this new, imagined route. How does changing the internal cartography of a thought change its power?",
"Describe the process of trying to fix something that is, in the end, unfixable. It could be a physical object that breaks beyond repair, or a more abstract situation. Focus on the poignant, often futile steps taken: the diagnosis, the gathering of tools, the attempt, the realization of failure. What is learned in the space between the intention to repair and the acceptance of irreversible breakage?",
"Imagine your creative process as a room with many thresholds. Describe the room where you generate raw ideas\u2014its mess, its energy. Then, describe the act of crossing the threshold into the room where you refine and edit. What changes in the atmosphere? What do you leave behind at the door, and what must you carry with you? Write about the architecture of your own creativity.",
"Observe a community of ants, a flock of birds, or a school of fish in a video. Describe their collective movement as a perfect, emergent algorithm. No single individual has the map, yet the group flows with purpose. Now, think of a human group you are part of. What is the unspoken, collective algorithm that guides your shared behavior? How does it compare to the instinctual, beautiful logic of the animal world?"
]

View File

@@ -1,7 +0,0 @@
#!/bin/bash
#cp baseline_files/ds_prompt.txt .
cp baseline_files/feedback_words.json .
cp baseline_files/historic_prompts.json .
cp baseline_files/pool_prompts.json .
#cp baseline_files/settings.cfg .

26
run.sh
View File

@@ -35,9 +35,7 @@ fi
# Parse command line arguments
INTERACTIVE=false
SIMPLE=false
STATS=false
POOL_STATS=false
FILL_POOL=false
HELP=false
@@ -47,18 +45,10 @@ while [[ $# -gt 0 ]]; do
INTERACTIVE=true
shift
;;
-s | --simple)
SIMPLE=true
shift
;;
--stats)
STATS=true
shift
;;
--pool-stats)
POOL_STATS=true
shift
;;
--fill-pool)
FILL_POOL=true
shift
@@ -80,37 +70,27 @@ if [ "$HELP" = true ]; then
echo ""
echo "Options:"
echo " -i, --interactive Run in interactive mode (with rich interface)"
echo " -s, --simple Run simple version (no rich dependency)"
echo " --stats Show prompt history statistics"
echo " --pool-stats Show prompt pool statistics"
echo " --stats Show combined statistics (pool and history)"
echo " --fill-pool Fill prompt pool using AI (makes API call)"
echo " -h, --help Show this help message"
echo ""
echo "Examples:"
echo " ./run.sh # Draw prompts from pool (default)"
echo " ./run.sh -i # Interactive mode"
echo " ./run.sh -s # Simple version"
echo " ./run.sh --stats # Show history statistics"
echo " ./run.sh --pool-stats # Show pool statistics"
echo " ./run.sh --stats # Show combined statistics"
echo " ./run.sh --fill-pool # Fill prompt pool using AI"
exit 0
fi
if [ "$STATS" = true ]; then
echo "📊 Showing history statistics..."
echo "📊 Showing combined statistics..."
python3 generate_prompts.py --stats
elif [ "$POOL_STATS" = true ]; then
echo "📊 Showing pool statistics..."
python3 generate_prompts.py --pool-stats
elif [ "$FILL_POOL" = true ]; then
echo "🔄 Filling prompt pool using AI..."
python3 generate_prompts.py --fill-pool
elif [ "$INTERACTIVE" = true ]; then
echo "🎮 Starting interactive mode..."
python3 generate_prompts.py --interactive
elif [ "$SIMPLE" = true ]; then
echo "⚡ Running simple version..."
python3 simple_generate.py
else
echo "✨ Drawing prompts from pool..."
python3 generate_prompts.py

View File

@@ -1,319 +0,0 @@
#!/usr/bin/env python3
"""
Simple Daily Journal Prompt Generator
A lightweight version without rich dependency.
"""
import os
import json
import sys
import argparse
import configparser
from datetime import datetime
from typing import List, Dict, Any
from openai import OpenAI
from dotenv import load_dotenv
class SimplePromptGenerator:
"""Simple version without rich dependency."""
def __init__(self, config_path: str = ".env"):
"""Initialize the generator with configuration."""
self.config_path = config_path
self.client = None
self.historic_prompts = []
self.pool_prompts = []
self.prompt_template = ""
self.settings = {}
# Load configuration
self._load_config()
self._load_settings()
# Load data files
self._load_prompt_template()
self._load_historic_prompts()
self._load_pool_prompts()
def _load_config(self):
"""Load configuration from environment file."""
load_dotenv(self.config_path)
# Get API key
self.api_key = os.getenv("DEEPSEEK_API_KEY") or os.getenv("OPENAI_API_KEY")
if not self.api_key:
print("Error: No API key found in .env file")
print("Please add DEEPSEEK_API_KEY or OPENAI_API_KEY to your .env file")
sys.exit(1)
# Get API base URL (default to DeepSeek)
self.base_url = os.getenv("API_BASE_URL", "https://api.deepseek.com")
# Get model (default to deepseek-chat)
self.model = os.getenv("MODEL", "deepseek-chat")
# Initialize OpenAI client
self.client = OpenAI(
api_key=self.api_key,
base_url=self.base_url
)
def _load_settings(self):
"""Load settings from settings.cfg configuration file."""
config = configparser.ConfigParser()
# Set default values
self.settings = {
'min_length': 500,
'max_length': 1000,
'num_prompts': 6
}
try:
config.read('settings.cfg')
if 'prompts' in config:
prompts_section = config['prompts']
# Load min_length
if 'min_length' in prompts_section:
self.settings['min_length'] = int(prompts_section['min_length'])
# Load max_length
if 'max_length' in prompts_section:
self.settings['max_length'] = int(prompts_section['max_length'])
# Load num_prompts
if 'num_prompts' in prompts_section:
self.settings['num_prompts'] = int(prompts_section['num_prompts'])
except FileNotFoundError:
print("Warning: settings.cfg not found, using default values")
except ValueError as e:
print(f"Warning: Invalid value in settings.cfg: {e}, using default values")
except Exception as e:
print(f"Warning: Error reading settings.cfg: {e}, using default values")
def _load_prompt_template(self):
"""Load the prompt template from ds_prompt.txt and update with config values."""
try:
with open("ds_prompt.txt", "r") as f:
template = f.read()
# Replace hardcoded values with config values
template = template.replace(
"between 500 and 1000 characters",
f"between {self.settings['min_length']} and {self.settings['max_length']} characters"
)
# Replace the number of prompts (6) with config value
template = template.replace(
"Please generate 6 writing prompts",
f"Please generate {self.settings['num_prompts']} writing prompts"
)
self.prompt_template = template
except FileNotFoundError:
print("Error: ds_prompt.txt not found")
sys.exit(1)
def _load_historic_prompts(self):
"""Load historic prompts from JSON file."""
try:
with open("historic_prompts.json", "r") as f:
self.historic_prompts = json.load(f)
except (FileNotFoundError, json.JSONDecodeError):
print("Warning: Starting with empty prompt history")
self.historic_prompts = []
def _save_historic_prompts(self):
"""Save historic prompts to JSON file (keeping only last 60)."""
# Keep only the last 60 prompts
if len(self.historic_prompts) > 60:
self.historic_prompts = self.historic_prompts[-60:]
with open("historic_prompts.json", "w") as f:
json.dump(self.historic_prompts, f, indent=2)
def _prepare_prompt(self) -> str:
"""Prepare the full prompt with historic context."""
if self.historic_prompts:
historic_context = json.dumps(self.historic_prompts, indent=2)
full_prompt = f"{self.prompt_template}\n\nPrevious prompts:\n{historic_context}"
else:
full_prompt = self.prompt_template
return full_prompt
def _parse_ai_response(self, response_content: str) -> List[str]:
"""Parse the AI response to extract new prompts."""
try:
# Try to parse as JSON
data = json.loads(response_content)
# Check if data is a list (new format)
if isinstance(data, list):
# Return the list of prompt strings directly
# Ensure we have the correct number of prompts
if len(data) >= self.settings['num_prompts']:
return data[:self.settings['num_prompts']]
else:
print(f"Warning: AI returned {len(data)} prompts, expected {self.settings['num_prompts']}")
return data
elif isinstance(data, dict):
# Fallback for old format: dictionary with newprompt0, newprompt1, etc.
print("Warning: AI returned dictionary format, expected list format")
new_prompts = []
for i in range(self.settings['num_prompts']):
key = f"newprompt{i}"
if key in data:
new_prompts.append(data[key])
return new_prompts
else:
print(f"Warning: AI returned unexpected data type: {type(data)}")
return []
except json.JSONDecodeError:
# If not valid JSON, try to extract prompts from text
print("Warning: AI response is not valid JSON, attempting to extract prompts...")
# Look for patterns in the text
lines = response_content.strip().split('\n')
new_prompts = []
for i, line in enumerate(lines[:self.settings['num_prompts']]):
line = line.strip()
if line and len(line) > 50:
new_prompts.append(line)
return new_prompts
def generate_prompts(self) -> List[str]:
"""Generate new journal prompts using AI."""
print("\nGenerating new journal prompts...")
# Prepare the prompt
full_prompt = self._prepare_prompt()
try:
# Call the AI API
print("Calling AI API...")
response = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": "system", "content": "You are a creative writing assistant that generates journal prompts. Always respond with valid JSON."},
{"role": "user", "content": full_prompt}
],
temperature=0.7,
max_tokens=2000
)
response_content = response.choices[0].message.content
except Exception as e:
print(f"Error calling AI API: {e}")
return []
# Parse the response
new_prompts = self._parse_ai_response(response_content)
if not new_prompts:
print("Error: Could not parse any prompts from AI response")
return []
# Note: Prompts are NOT added to historic_prompts here
# They will be added only when the user chooses one
return new_prompts
def display_prompts(self, prompts: List[Dict[str, str]]):
"""Display generated prompts in a simple format."""
print("\n" + "="*60)
print("✨ NEW JOURNAL PROMPTS GENERATED ✨")
print("="*60 + "\n")
for i, prompt_dict in enumerate(prompts, 1):
# Extract prompt text
prompt_key = list(prompt_dict.keys())[0]
prompt_text = prompt_dict[prompt_key]
print(f"Prompt #{i}:")
print("-" * 40)
print(prompt_text)
print("-" * 40 + "\n")
def show_history_stats(self):
"""Show statistics about prompt history."""
total_prompts = len(self.historic_prompts)
print("\nPrompt History Statistics:")
print("-" * 30)
print(f"Total prompts in history: {total_prompts}")
print(f"History capacity: 60 prompts")
print(f"Available slots: {max(0, 60 - total_prompts)}")
def save_prompt_to_file(self, prompt_dict: Dict[str, str], filename: str = None):
"""Save a prompt to a text file."""
prompt_key = list(prompt_dict.keys())[0]
prompt_text = prompt_dict[prompt_key]
if not filename:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"journal_prompt_{timestamp}.txt"
with open(filename, "w") as f:
f.write(f"Journal Prompt - {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
f.write("="*50 + "\n\n")
f.write(prompt_text)
f.write("\n\n" + "="*50 + "\n")
f.write("Happy writing! ✍️\n")
print(f"Prompt saved to {filename}")
def main():
"""Main entry point for the simple script."""
parser = argparse.ArgumentParser(description="Generate journal prompts using AI (simple version)")
parser.add_argument(
"--stats", "-s",
action="store_true",
help="Show history statistics"
)
parser.add_argument(
"--save", "-S",
type=int,
help="Save a specific prompt number to file"
)
parser.add_argument(
"--config", "-c",
default=".env",
help="Path to configuration file (default: .env)"
)
args = parser.parse_args()
# Initialize generator
generator = SimplePromptGenerator(config_path=args.config)
if args.stats:
generator.show_history_stats()
else:
# Generate prompts
new_prompts = generator.generate_prompts()
if new_prompts:
generator.display_prompts(new_prompts)
# Save specific prompt if requested
if args.save:
prompt_num = args.save
if 1 <= prompt_num <= len(new_prompts):
generator.save_prompt_to_file(new_prompts[prompt_num - 1])
else:
print(f"Error: Prompt number must be between 1 and {len(new_prompts)}")
if __name__ == "__main__":
main()

View File

@@ -7,8 +7,8 @@ import json
import sys
import os
# Add the current directory to the Python path
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# Add the parent directory to the Python path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from generate_prompts import JournalPromptGenerator

View File

@@ -6,8 +6,8 @@ Test script to verify feedback_words integration
import sys
import os
# Add current directory to path
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# Add the parent directory to the Python path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from generate_prompts import JournalPromptGenerator
@@ -29,17 +29,6 @@ def test_feedback_words_loading():
else:
print("No feedback words loaded (this might be expected if file is empty)")
# Test _prepare_prompt method
print("\nTesting _prepare_prompt method...")
prompt = generator._prepare_prompt()
print(f"Prompt length: {len(prompt)} characters")
# Check if feedback words are included in the prompt
if generator.feedback_words and "Feedback words:" in prompt:
print("✓ Feedback words are included in the prompt")
else:
print("✗ Feedback words are NOT included in the prompt")
# Test _prepare_prompt_with_count method
print("\nTesting _prepare_prompt_with_count method...")
prompt_with_count = generator._prepare_prompt_with_count(3)

View File

@@ -1,55 +0,0 @@
#!/usr/bin/env python3
"""
Test to demonstrate the fix for the AttributeError when API returns list instead of dict.
"""
import json
from generate_prompts import JournalPromptGenerator
def test_original_error_case():
"""Test the exact error case: API returns a list instead of a dict."""
print("Testing the original error case: API returns list instead of dict")
print("="*60)
# Create a mock generator
generator = JournalPromptGenerator()
# Simulate API returning a list (which could happen with null/malformed data)
list_response = json.dumps([]) # Empty list
print("\n1. Testing with empty list []:")
try:
result = generator._parse_ai_response(list_response)
print(f" Result: Successfully parsed {len(result)} prompts (no AttributeError)")
except AttributeError as e:
print(f" ERROR: AttributeError occurred: {e}")
except Exception as e:
print(f" Other error: {type(e).__name__}: {e}")
# Test with list containing dictionaries (another possible malformed response)
list_with_dicts = json.dumps([
{"some_key": "some value"},
{"another_key": "another value"}
])
print("\n2. Testing with list of dictionaries:")
try:
result = generator._parse_ai_response(list_with_dicts)
print(f" Result: Successfully parsed {len(result)} prompts (no AttributeError)")
except AttributeError as e:
print(f" ERROR: AttributeError occurred: {e}")
except Exception as e:
print(f" Other error: {type(e).__name__}: {e}")
# Test with None/null data (worst case)
print("\n3. Testing with None/null data (simulated):")
# We can't directly test None since json.loads would fail, but our code
# handles the case where data might be None after parsing
print("\n" + "="*60)
print("Test complete! The fix prevents AttributeError for list responses.")
if __name__ == "__main__":
test_original_error_case()

View File

@@ -1,91 +0,0 @@
#!/usr/bin/env python3
"""
Test the new format where AI returns a list and keys are generated locally.
"""
import json
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from generate_prompts import JournalPromptGenerator
def test_new_format():
"""Test the new format where AI returns a list and keys are generated locally."""
print("Testing new format: AI returns list, keys generated locally")
print("="*60)
# Create a mock generator
generator = JournalPromptGenerator(config_path=".env")
# Create a mock AI response in the new list format
mock_ai_response = [
"Write about a childhood memory that still makes you smile.",
"Describe your perfect day from start to finish.",
"What is something you've been putting off and why?",
"Imagine you could have a conversation with any historical figure.",
"Write a letter to your future self one year from now.",
"Describe a place that feels like home to you."
]
# Convert to JSON string
json_response = json.dumps(mock_ai_response)
print("\n1. Testing _parse_ai_response with list format:")
result = generator._parse_ai_response(json_response)
print(f" Result type: {type(result)}")
print(f" Number of prompts: {len(result)}")
print(f" First prompt: {result[0][:50]}...")
# Verify it's a list of strings
assert isinstance(result, list), "Result should be a list"
assert all(isinstance(prompt, str) for prompt in result), "All items should be strings"
print("\n2. Testing add_prompts_to_pool with list of strings:")
# Get initial pool size
initial_pool_size = len(generator.pool_prompts)
print(f" Initial pool size: {initial_pool_size}")
# Add prompts to pool
generator.add_prompts_to_pool(result)
# Check new pool size
new_pool_size = len(generator.pool_prompts)
print(f" New pool size: {new_pool_size}")
print(f" Added {new_pool_size - initial_pool_size} prompts")
# Check that prompts in pool have keys
print(f"\n3. Checking that prompts in pool have generated keys:")
for i, prompt_dict in enumerate(generator.pool_prompts[-len(result):]):
prompt_key = list(prompt_dict.keys())[0]
prompt_text = prompt_dict[prompt_key]
print(f" Prompt {i+1}: Key='{prompt_key}', Text='{prompt_text[:30]}...'")
assert prompt_key.startswith("poolprompt"), f"Key should start with 'poolprompt', got '{prompt_key}'"
print("\n4. Testing draw_prompts_from_pool:")
drawn_prompts = generator.draw_prompts_from_pool(count=2)
print(f" Drawn {len(drawn_prompts)} prompts from pool")
print(f" Pool size after drawing: {len(generator.pool_prompts)}")
# Check drawn prompts have keys
for i, prompt_dict in enumerate(drawn_prompts):
prompt_key = list(prompt_dict.keys())[0]
prompt_text = prompt_dict[prompt_key]
print(f" Drawn prompt {i+1}: Key='{prompt_key}', Text='{prompt_text[:30]}...'")
print("\n" + "="*60)
print("✅ All tests passed! New format works correctly.")
print("\nSummary:")
print("- AI returns prompts as a JSON list (no keys)")
print("- _parse_ai_response returns List[str]")
print("- add_prompts_to_pool generates keys locally (poolprompt000, poolprompt001, etc.)")
print("- draw_prompts_from_pool returns List[Dict[str, str]] with generated keys")
return True
if __name__ == "__main__":
test_new_format()

View File

@@ -201,7 +201,7 @@ def test_python_scripts():
"""Test that Python scripts are syntactically valid."""
print("\nTesting Python scripts...")
scripts_to_test = ["generate_prompts.py", "simple_generate.py"]
scripts_to_test = ["generate_prompts.py"]
all_valid = True
for script in scripts_to_test:

View File

@@ -1,98 +0,0 @@
#!/usr/bin/env python3
"""
Test script to verify the prompt numbering logic.
"""
import json
import configparser
def get_num_prompts():
"""Get the number of prompts from settings.cfg or default."""
config = configparser.ConfigParser()
num_prompts = 6 # Default value
try:
config.read('settings.cfg')
if 'prompts' in config and 'num_prompts' in config['prompts']:
num_prompts = int(config['prompts']['num_prompts'])
except (FileNotFoundError, ValueError):
pass
return num_prompts
def test_renumbering():
"""Test the renumbering logic."""
# Get number of prompts from config
num_prompts = get_num_prompts()
# Create a sample historic prompts list
historic_prompts = []
for i in range(60):
historic_prompts.append({
f"prompt{i:02d}": f"Old prompt {i}"
})
print(f"Original prompts: {len(historic_prompts)}")
print(f"First prompt key: {list(historic_prompts[0].keys())[0]}")
print(f"Last prompt key: {list(historic_prompts[-1].keys())[0]}")
print(f"Number of prompts from config: {num_prompts}")
# Simulate adding new prompts (as the current code would create them)
new_prompts = []
for i in range(num_prompts):
new_prompts.append({
f"prompt{len(historic_prompts) + i:02d}": f"New prompt {i}"
})
print(f"\nNew prompts to add: {len(new_prompts)}")
for i, prompt in enumerate(new_prompts):
print(f" New prompt {i}: {list(prompt.keys())[0]}")
# Prepend new prompts (reverse to maintain order)
for prompt in reversed(new_prompts):
historic_prompts.insert(0, prompt)
print(f"\nAfter prepending: {len(historic_prompts)} prompts")
print(f"First 3 prompts keys:")
for i in range(3):
print(f" {i}: {list(historic_prompts[i].keys())[0]}")
# Renumber all prompts
renumbered_prompts = []
for i, prompt_dict in enumerate(historic_prompts):
prompt_key = list(prompt_dict.keys())[0]
prompt_text = prompt_dict[prompt_key]
new_prompt_key = f"prompt{i:02d}"
renumbered_prompts.append({
new_prompt_key: prompt_text
})
print(f"\nAfter renumbering: {len(renumbered_prompts)} prompts")
print(f"First 10 prompts keys:")
for i in range(10):
print(f" prompt{i:02d}: {list(renumbered_prompts[i].keys())[0]} = {renumbered_prompts[i][f'prompt{i:02d}'][:30]}...")
# Keep only first 60
if len(renumbered_prompts) > 60:
renumbered_prompts = renumbered_prompts[:60]
print(f"\nAfter keeping only first 60: {len(renumbered_prompts)} prompts")
print(f"First prompt: {list(renumbered_prompts[0].keys())[0]} = {renumbered_prompts[0]['prompt00'][:30]}...")
print(f"Last prompt: {list(renumbered_prompts[-1].keys())[0]} = {renumbered_prompts[-1]['prompt59'][:30]}...")
# Verify the range
for i in range(60):
expected_key = f"prompt{i:02d}"
actual_key = list(renumbered_prompts[i].keys())[0]
if expected_key != actual_key:
print(f"ERROR: Expected {expected_key}, got {actual_key}")
return False
print("\n✅ All tests passed! Prompt numbering is correct.")
return True
if __name__ == "__main__":
test_renumbering()

View File

@@ -6,7 +6,9 @@ Test the error handling with a valid response.
import sys
import os
import json
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# Add the parent directory to the Python path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from generate_prompts import JournalPromptGenerator