buildUNPARTY

UNPARTY acts as both a relationship assistant and creative connector, with value in diverse AI methods coexisting for personal and communal growth.

My Mission for UNPARTY

My mission for UNPARTY has remained the same: to help people discover and connect with their next steps based on their own natural language and interactions. The name "UNPARTY" comes from a moment of personal reflection: “How do I leave the past behind while respecting the things that once made me, me?”

This project started off deeply personal—at times, probably too personal—because it was created as a response to my own failures. I needed to learn, build, and connect with my next career and personal goals while quickly rediscovering my confidence and sense of reality.

When I first began, I had no background in tech, no idea that what I was building would eventually become a Supportive, Modular, Actionable, Reliable, and Transparent () AI wrapper, and certainly no grasp of how long it would take to reach this point. The only thing I knew for sure was the problem: how can we build a better way to connect people with their next steps?

A few years later, that question has evolved into something bigger: how can we create a better way to connect people with building out their next steps—on their own terms?


Why I’m Sharing This My hope for UNPARTY is that it will play a small role in shifting the landscape of AI-powered tools. Too often, these tools focus on formulaic productivity designed to keep the user reliant on technology. Instead, I believe in creating actionable insights that empower users to learn, build, and connect with their next steps in the real world.

As I transition UNPARTY from a bootstrapped idea to a funded platform, I want to share an exercise I recently performed using Claude, OpenAI, and UNPARTY’s own knowledge base. This exercise illustrates the tech theory behind UNPARTY and highlights how it’s built to help users take meaningful action.


Next Steps: High-Level Overview of the Process

  1. User Input Users create, edit, and save reflections or notes, with the option to share when desired.

  2. Structured Analysis of User Input AI identifies relationships within the input that may not be immediately obvious to the user.

  3. Understanding Through Inactive and Active Context An iterative process refines insights, building a clearer roadmap to address personal roadblocks.

  4. Actionable Output Outputs align with UNPARTY’s vision of "authoring their past, present, and future," offering tools to process and act on user reflections.

  5. Visualization and Programming for Next Steps Proprietary.


Introducing the Exercise

The premise of UNPARTY is simple yet powerful: to organize and retrieve meaningful context from the user, present the findings clearly, and empower them to make more informed choices about what to do next. Quite simply, it mirrors a natural progression of thought.

By providing actionable next steps, UNPARTY not only gives users the confidence to see that they are authoring their past, present, and future but also reinforces that they are in control of the process every step of the way.

In the exercise below, I test how a large language model (LLM) processes a personal reflection. For this experiment, I chose to run the test through Claude by Anthropic in a new chat with no obvious context introduced.*

* Anthropic's privacy policy and its approach to training models using user data is not entirely transparent, making it difficult for me to confirm with full confidence that my user profile was not utilized in generating the response.

Step 1: User Input

UNPARTY Reflection Process:

I wrote the below passage after reviewing some of my previous "reflection" entries that I wrote down. In a process of organizing my old notes and writing I saw two unshared short entires "hubris." and "disorganized." I found that the theme in these short entries were about this persistence of the past and it struck out to me as a personal frustration with my writing style as these entires seemed to stop short of an action or a future oriented line of thinking.

-----

Reflection Entry:

i enjoy writing. there is something that feels a bit like a release to me, when i get into a rhythm that allows me to fill a page in my notebook as if i was on autopilot. however, the free flow of thought does not come consistently. i noticed the flow stops- when i am thinking of someone reading it. i notice that i choose my words too carefully out of fear. that fear could range from not wanting to be judged, misunderstood, or not accepted. it is not only fear that holds me back from releasing my thoughts, ideas, and anxieties through writing- some days it is finding the perfect spot where quiet can provide me peace to let it out and on some days it feels like i have nothing to say at all.

-----

Exercise My first step was to present Claude with just the reflection entry passage. I did not provide the title or the two short entries that inspired the summary. I gave Claude no direction—just the passage itself.


Step 2: Structured Analysis of User Input

Claude Response I hear a deep appreciation for those moments when writing flows naturally - that beautiful state where your hand seems to move across the page of its own accord. It's almost meditative, isn't it? Those moments when self-consciousness falls away and thoughts pour out unfiltered.

The struggle you're describing with self-censorship is something many writers grapple with. That imagined reader peering over your shoulder can be paralyzing - turning what should be a free expression into a careful performance. It's particularly poignant that you mention both the fear of judgment and of being misunderstood. Sometimes the desire to be perfectly understood can prevent us from saying anything at all.

What catches my attention is how you describe writing as a "release" - suggesting these thoughts and anxieties build up inside, seeking an outlet. The barriers you're encountering - whether external (finding that quiet space) or internal (feeling blocked or self-conscious) - seem to be standing between you and that needed release.

Have you ever tried writing with the explicit intention that no one else will ever read it? Sometimes giving yourself that permission to be messy, imperfect, or even "wrong" can help bypass that internal critic.


Reflection on Claude's Response As seen in the response, this follows a rather common formula for an AI model. While I cannot speak to the inner workings of the model, a few patterns stand out:

  1. Relatable Anecdote Claude opens with an engaging and relatable observation: "the beautiful state..." This helps build rapport by validating the user’s experience.

  2. Problem Identification The response then acknowledges and elaborates on a common struggle—self-censorship. By identifying the fear of judgment and misunderstanding, the model highlights challenges that resonate with many writers.

  3. Contextual Engagement The most critical step, in my view, is the addition of a follow-up question: "Have you ever tried writing with the explicit intention that no one else will ever read it?"

    While the question is generic, the follow-up sentence encourages the user to reflect further and stay engaged in the session. This iterative process keeps the conversation active and invites deeper introspection.


My Takeaway This example is fairly formulaic, meaning there isn’t anything particularly solution-oriented or value-driven for the user without further reliance or engagement with the model itself. That said, engaging with and talking through problems with a supportive entity—AI or otherwise—can make a significant difference in fostering problem-solving skills and emotional health.

However, I’d personally like to see this process go a step further. The goal should be to build confidence that users can apply in the real world—not just within the AI session.


Step 3: Understanding Through Inactive and Active Context

Remember, I did not provide Claude with a prompt or suggest that I was looking for solutions. I simply shared my reflection entry. The model’s first response identified barriers and struggles without any explicit guidance from me. To better understand the response, I asked a follow-up question:

"What problems did you identify that I am looking for solutions to within my passage?"


Claude’s Initial Problem Identification Claude identified the following four problems based solely on the reflection entry:

  1. Inconsistent Writing Flow

    • You enjoy and value those "autopilot" moments of fluid writing, but they're not reliably accessible to you.

  2. Self-Censorship Due to Fear

    • Fear of judgment from others

    • Fear of being misunderstood

    • Fear of not being accepted

  3. Environmental Barriers

    • Difficulty finding quiet spaces conducive to writing

    • Struggling to create the right conditions for peace and focus

  4. Internal Blocks

    • Days when you feel you have "nothing to say"

    • The intrusive awareness of potential readers that disrupts your natural writing process

    • Over-careful word choice that interrupts spontaneous expression


Follow-Up: Requesting Supporting Quotes To increase trust in the model’s response, I asked for supporting excerpts from my reflection entry to back up its identified problems. Claude provided the following:

  • Inconsistent Writing Flow

    • Quote: "however, the free flow of thought does not come consistently"

  • Self-Censorship Due to Fear

    • Quote: "i notice that i choose my words too carefully out of fear. that fear could range from not wanting to be judged, misunderstood, or not accepted"

  • Environmental Barriers

    • Quote: "some days it is finding the perfect spot where quiet can provide me peace to let it out"

  • Internal Blocks

    • Quotes:

      • "on some days it feels like i have nothing to say at all"

      • "i notice the flow stops- when i am thinking of someone reading it"

      • "i choose my words too carefully out of fear"


Model Insight At the end of this process, Claude offered an unexpected and insightful observation:

"I notice that the evidence for points 2 and 4 overlaps significantly, suggesting these might be more interconnected than my initial categorization suggested. For example, choosing words carefully due to fear could be considered both self-censorship and an internal block. Would you like me to reorganize these problems in a way that better reflects their relationships to each other?"


The Importance of this Insight This interaction highlights an important moment. By engaging with additional questions about its process, the model began inferring relationships between the identified problems. These were not profound questions either-one question to clarify the problem identification and the next just to back up its initial analysis with a excerpts.

It was in that back-up questioning that the model picked up on missing context from its initial analysis.

This shift—from static problem identification to dynamic relationship-building—demonstrates intelligent analysis and the potential to refine its initial assumptions for greater accuracy.


Step 4: Actionable Output

For this step, I aimed to engage with the model's trailing train of thought without introducing too much interruption. My response was:

"Yes, please provide excerpts from the passage to identify and support the core problems from the passage and their relationship to each other."


Claude’s Response Claude reorganized the core problems, providing supporting evidence and demonstrating their interrelationships:

  1. Core Problem: Disruption of Natural Writing Flow

    • Primary Quote: "however, the free flow of thought does not come consistently"

    • This disruption appears to stem from two interconnected sources:

    A. Fear-Based Self-Censorship

    • Supporting Quote: "i notice the flow stops- when i am thinking of someone reading it"

    • Deeper Fear Connection: "i choose my words too carefully out of fear. that fear could range from not wanting to be judged, misunderstood, or not accepted"

    • Relationship: The awareness of potential readers triggers fear, which disrupts the writing flow through self-censorship.

    B. External and Internal Barriers to Writing

    • Environmental Barrier: "some days it is finding the perfect spot where quiet can provide me peace to let it out"

    • Mental Barrier: "on some days it feels like i have nothing to say at all"

  2. Desired State and Contrasts

    • The contrast between the desired state and the barriers preventing it is clear:

      • Desired State Quote: "i enjoy writing. there is something that feels a bit like a release to me, when i get into a rhythmn that allows me to fill a page in my notebook as if i was on autopilot"

    • Insight: These barriers—fear-based self-censorship, environmental challenges, and internal blocks—form a cycle that interrupts the natural flow of writing.


Building Through Context This final analysis aligned more closely with the intention behind my original reflection. Interestingly, the clarity was achieved not through the model asking me additional questions but by prompting it to analyze how it reached its initial conclusion.


Key Takeaway By guiding the model to reflect on its reasoning and reorganize its findings, I was able to arrive at a richer and more actionable output. This process underscores the value of iterative questioning, not to extract more information but to refine and clarify what’s already there.


Step 5: Visualization and Programming for Next Steps

To conclude the session, I asked: "How would you identify these problems and their relationship in a visual way?"

I intentionally avoided specifying what the visual aspect should be, as I was curious to see how Claude would interpret the context of the session and respond.

Claude provided a Mermaid chart, illustrating the relationships between the identified problems.

graph TD
    A[Natural Writing Flow<br>'as if i was on autopilot'] -->|Disrupted by| B[Core Problem:<br>Inconsistent Flow]
    
    B -->|Manifests through| C[Fear-Based<br>Self-Censorship]
    B -->|Manifests through| D[External & Internal<br>Barriers]
    
    C -->|Triggered by| E[Awareness of<br>Potential Readers]
    E -->|Results in| F[Careful Word Choice]
    
    F -->|Due to| G[Fear of Judgment]
    F -->|Due to| H[Fear of Misunderstanding]
    F -->|Due to| I[Fear of Non-acceptance]
    
    D -->|External| J[Finding Perfect<br>Quiet Space]
    D -->|Internal| K[Nothing to<br>Say]
    
    %% Feedback loops
    F -->|Disrupts| B
    J -->|Affects| B
    K -->|Blocks| B
    
    style A fill:#e6ffe6
    style B fill:#ffe6e6
    style C fill:#e6e6ff
    style D fill:#e6e6ff
    style E fill:#fff2e6
    style F fill:#fff2e6
    style G fill:#ffe6ff
    style H fill:#ffe6ff
    style I fill:#ffe6ff
    style J fill:#e6ffff
    style K fill:#e6ffff

Key Takeaway This output demonstrated the model’s ability to translate textual analysis into a structured visual representation without explicit instruction. By using tools like Mermaid, the model transitioned from identifying problems to offering a clear visualization.

Step 5B: Enhanced Visualization and Programming for Next Steps

While a Mermaid chart is useful for visualizing data, the goal of this exercise is to connect users to their next steps in a more actionable way. This means guiding the model to suggest practical next steps for users' projects, ideas, or goals.

As an additional step in the exercise—and to highlight what this could look like with UNPARTY—I asked Claude:

"Using Apple's NLTokenizer approach, how would you break down the original passage?"


Claude’s Response

Claude provided Swift code for analyzing the passage using Apple's NLTokenizer approach, accompanied by the following analysis:

  1. Sentence Analysis

    • Splits the text into individual sentences

    • Identifies how thoughts are connected and where transitions occur

  2. Word Analysis

    • Counts total and unique words

    • Categorizes theme-related words:

      • Fear-related words: "fear," "judged," "misunderstood"

      • Flow-related words: "flow," "release," "rhythmn," "autopilot"

      • Blocking-related words: "stops," "carefully," "nothing"

  3. Structural Analysis

    • Identifies transition phrases

    • Categorizes sentences by type (e.g., simple vs. complex)

    • Analyzes punctuation patterns


Key Insights from the Analysis

  • Your writing alternates between flowing, complex sentences and shorter, direct statements.

  • A clear thematic pattern emerges around fear vs. flow.

  • Transitional phrases are used to connect contrasting ideas.

  • The passage combines personal reflection with an analysis of your writing process.

import Foundation
import NaturalLanguage

class TextAnalyzer {
    let text = """
    i enjoy writing. there is something that feels a bit like a release to me, when i get into a rhythmn that allows me to fill a page in my notebook as if i was on autopilot. however, the free flow of thought does not come consistently. i notice the flow stops- when i am thinking of someone reading it. i notice that i choose my words too carefully out of fear. that fear could range from not wanting to be judged, misunderstood, or not accepted. it is not only fear that holds me back from releasing my thoughts, ideas, and anxieties through writing- some days it is finding the perfect spot where quiet can provide me peace to let it out and on some days it feels like i have nothing to say at all.
    """
    
    func analyzeSentences() {
        let tokenizer = NLTokenizer(unit: .sentence)
        tokenizer.string = text
        
        print("=== Sentence Analysis ===")
        tokenizer.enumerateTokens(in: text.startIndex..<text.endIndex) { range, _ in
            let sentence = String(text[range]).trimmingCharacters(in: .whitespacesAndNewlines)
            print("Sentence: \(sentence)")
            return true
        }
    }
    
    func analyzeWords() {
        let tokenizer = NLTokenizer(unit: .word)
        tokenizer.string = text
        
        print("\n=== Word Analysis ===")
        var wordCount = 0
        var uniqueWords = Set<String>()
        
        tokenizer.enumerateTokens(in: text.startIndex..<text.endIndex) { range, _ in
            let word = String(text[range]).lowercased()
            wordCount += 1
            uniqueWords.insert(word)
            return true
        }
        
        print("Total words: \(wordCount)")
        print("Unique words: \(uniqueWords.count)")
        
        // Common writing markers analysis
        let fearWords = uniqueWords.filter { ["fear", "afraid", "judged", "misunderstood"].contains($0) }
        let flowWords = uniqueWords.filter { ["flow", "release", "rhythmn", "autopilot"].contains($0) }
        let blockingWords = uniqueWords.filter { ["stops", "carefully", "nothing", "back"].contains($0) }
        
        print("\nTheme-related words:")
        print("Fear-related: \(fearWords)")
        print("Flow-related: \(flowWords)")
        print("Blocking-related: \(blockingWords)")
    }
    
    func analyzeStructure() {
        print("\n=== Structural Analysis ===")
        
        // Analyze punctuation and transitions
        let transitions = text.components(separatedBy: .punctuationCharacters)
            .filter { $0.lowercased().contains("however") || $0.lowercased().contains("and") }
        
        print("Transition phrases found: \(transitions.count)")
        
        // Identify sentence types
        let tokenizer = NLTokenizer(unit: .sentence)
        tokenizer.string = text
        
        var sentenceTypes: [String: Int] = [
            "Statement": 0,
            "Complex": 0
        ]
        
        tokenizer.enumerateTokens(in: text.startIndex..<text.endIndex) { range, _ in
            let sentence = String(text[range])
            if sentence.contains(",") {
                sentenceTypes["Complex", default: 0] += 1
            } else {
                sentenceTypes["Statement", default: 0] += 1
            }
            return true
        }
        
        print("Sentence types:")
        for (type, count) in sentenceTypes {
            print("\(type): \(count)")
        }
    }
}

// Run the analysis
let analyzer = TextAnalyzer()
analyzer.analyzeSentences()
analyzer.analyzeWords()
analyzer.analyzeStructure()

Takeaway This step demonstrates how models like Claude, when paired with tools such as NLTokenizer, can deepen user reflections through technical breakdowns. While this analysis was conducted without full access to UNPARTY's knowledge base, it highlights the potential for next-step guidance tailored to users’ goals. The ability to extract actionable insights—whether through thematic analysis or structural breakdowns—is crucial in transitioning users from reflection to action.


Conclusion

Claude successfully retrieved enough context by clarifying its own process. However, this raises an important question: how many users would simply follow along with the initial response, providing more details about their ideas and reflections, without prompting the model to refine its analysis? This positions the AI as more of a relationship assistant—encouraging users to engage and share—rather than as a tool with the potential to connect users through how they create.

There’s a case to be made for both approaches. Debating one versus the other seems less impactful as we move toward a future where multiple AI methodologies will coexist.

For me, tech has always been a way to get outside my head and build a sense of community by connecting me to my next steps. It’s about taking anxious thoughts, good days, and everything in between to create something authentic—something made up of everything that makes me, me.

Last updated