Vibe-Specing - From concepts to specification

Introduction

Code generation is a common use case for AI. What about the design process that comes before implementation? Personally, I've found that AI excels not just at coding, but also helping formalize abstract ideas into concrete specifications. This post explores how I used AI-assisted design to transform a collection of loosely related concepts into a technical specification for a new system made up of those concepts.

Specifications

Generally, I've had mixed success with vibe-coding (the practice of describing what you want in natural language and having AI generate the corresponding code). However, it's something that I'm constantly working on getting better at. Also, with tooling integrations like MCP, I can ground responses and supplement my prompts using external data.

What I find myself being more successful with is using AI to explore ideas and then formalizing those ideas into a specification. Even in the case of vibe-coding, what you're doing with your prompts is building a specification in real-time.

I'd like to think that eventually I'll get to the vibe-coding part but before diving straight into the code, I'd like to spend time in the design phase. Personally, this is also the part that I find the most fun because you can throw wild things at the wall. It's not until you implement them that you actually validate whether some of those wild ideas are practical. But I find the design phase a ton of fun.

The result of my latest vibe-specing adventure is what I'm calling the InterPlanetary Knowledge System (IPKS).

From concept to specification

Lately, I've been thinking a lot about knowledge. Some concepts that have been in my head are those of non-linear publishing (creating content that can be accessed in any order with multiple entry points, like wikis or hypertext) and distributed cognition (the idea that human knowledge and cognitive processes extend beyond the individual mind to include interactions with other people, tools, and environments). Related to those concepts, I've also been thinking about how digital gardens (personal knowledge bases that blend note-taking, blogging, and knowledge management in a non-linear format) and Zettelkasten (a method of note-taking where ideas are captured as atomic notes with unique identifiers and explicit connections) are ways to capture and organize knowledge.

One other thing that I'm amazed by is the powerful concept of a hyperlink and how it makes the web open, decentralized, and interoperable. When paired with the semantic web (an extension of the web that provides a common framework for data to be shared across applications and enterprises), you have yourself a decentralized knowledgebase containing a lot of the world's knowledge.

At some point, IPFS (InterPlanetary File System, a protocol designed to create a permanent and decentralized method of storing and sharing files) joined this pool of concepts I had in my head.

These were all interesting concepts individually, but I knew there were connections but couldn't cohesively bring them together. That's where AI-assisted specification design came in.

Below is a summary of the collaborative design interaction with Claude Sonnet 3.7 (with web search) that eventually led to the generation of the IPKS specifications. I haven't combed through them in great detail, but what they're proposing seems plausible.

Overall, I'm fascinated by this interaction. Whether or not IPKS ever becomes a reality, the process of using AI to transform abstract concepts into concrete specifications seems like a valuable and fun design approach that I'll continue to refine and include as part of my vibe-coding sessions.


Initial Exploration: IPFS and Knowledge Management

Our conversation began with exploring IPFS (InterPlanetary File System) and its fundamental capabilities as a content-addressed, distributed file system. We recognized that while IPFS excels at storing and retrieving files in a decentralized manner, it needed extensions to support knowledge representation, trust, and semantics.

Key insights from this stage:

Knowledge Management Concepts

We explored established knowledge management approaches, particularly:

Zettelkasten

The Zettelkasten method contributed these important principles:

Digital Gardens

The Digital Garden concept provided these insights:

These personal knowledge management approaches helped us envision how similar principles could work at scale in a distributed system.

The "K" in IPKS

When we proposed replacing "IPFS" with "IPKS" (changing File → Knowledge), we recognized the need to define what makes knowledge different from files. This led to identifying several key requirements:

  1. Semantic meaning - Knowledge needs explicit relationships and context
  2. Provenance and trust - Knowledge requires verifiable sources and expertise
  3. Evolution - Knowledge changes over time while maintaining continuity
  4. Governance - Knowledge exists in various trust and privacy contexts

These requirements shaped the layered architecture of the specifications.

Distributed Cognition and Non-Linear Publishing

Our discussions about distributed cognition highlighted how thinking processes extend beyond individual minds to include:

This concept directly influenced the IPKS design by emphasizing:

Similarly, non-linear publishing concepts shaped how we approached knowledge relationships and navigation in IPKS, moving away from sequential formats toward interconnected networks of information.

Web3 Technologies Integration

Our exploration of complementary technologies led to incorporating:

Decentralized Identifiers (DIDs)

DIDs provided the framework for:

Verifiable Credentials (VCs)

Verifiable Credentials offered mechanisms for:

Semantic Web (RDF/OWL)

Semantic Web standards influenced:

Business Context: Supply Chain Example

Our conversation about supply chain management provided a concrete use case that helped ground the specifications in practical application. This example demonstrated how IPKS could address real-world challenges:

This business context helped shape the Access Control & Privacy specification in particular, highlighting the need for nuanced governance models.

Technical Implementation Considerations

As we moved from abstract concepts to specifications, several technical considerations emerged:

  1. Building on IPLD: Recognizing that InterPlanetary Linked Data (IPLD) already provided foundational components for structured, linked data in content-addressed systems

  2. Modular Specification Design: Choosing to create multiple specifications rather than a monolithic standard to enable incremental implementation and adoption

  3. Backward Compatibility: Ensuring IPKS could work with existing IPFS/IPLD infrastructure

  4. Extensibility: Designing for future enhancements like AI integration, advanced semantic capabilities, and cross-domain knowledge mapping

The Path Forward

The IPKS specifications represent a synthesis of our conceptual exploration, grounded in:

Moving from concept to implementation will require:

  1. Reference implementations of the core specifications
  2. Developer tools and libraries to simplify adoption
  3. Domain-specific extensions for particular use cases
  4. Community building around open standards

By building on the combined strengths of IPFS, DIDs, VCs, and semantic web technologies, IPKS creates a framework for distributed knowledge that balances openness with trust, flexibility with verification, and collaboration with governance.


Send me a message or webmention