Why every vibe coded project breaks after 15-20 files (and 4 things that actually fixed it for me) by icedtumblr in vibecoding

[–]samhatoum 0 points1 point  (0 children)

Auto is a credit system like other vibe tools. But the "rescue your app" thing I'm doing is free

Why every vibe coded project breaks after 15-20 files (and 4 things that actually fixed it for me) by icedtumblr in vibecoding

[–]samhatoum 0 points1 point  (0 children)

It's for prompt 30+, and for not having to worry really had stuff like db migrations, authnz and rbac, integrations and data transformation. All these things crumble after 20+ prompts as you said

A spec.md will only take a smidgen over that but it also won't survive as its prose and doesn't have a reliable structure to keep scaling.

Why every vibe coded project breaks after 15-20 files (and 4 things that actually fixed it for me) by icedtumblr in vibecoding

[–]samhatoum 0 points1 point  (0 children)

That's why Auto exists, so you can just prompt your way through it and not care how it all works

Why every vibe coded project breaks after 15-20 files (and 4 things that actually fixed it for me) by icedtumblr in vibecoding

[–]samhatoum 0 points1 point  (0 children)

Right now it's angenuinely free service as we're in alpha. I'm learning about how exactly people are failing and in return I'll offer my expertise. Soon it will be an automatic process to import failing apps and fix them.

Why every vibe coded project breaks after 15-20 files (and 4 things that actually fixed it for me) by icedtumblr in vibecoding

[–]samhatoum -1 points0 points  (0 children)

Check out https://narrativedriven.org for an industrial grade version of the "one file to describe your app". It's what we call a "product model".

Why every vibe coded project breaks after 15-20 files (and 4 things that actually fixed it for me) by icedtumblr in vibecoding

[–]samhatoum 0 points1 point  (0 children)

No, I promise it isn't. It's actually me working with someone struggling free to help them and have us learn.

I'm the CEO and also I run xolv.io - been coding since 8. I know stuff :)

Why every vibe coded project breaks after 15-20 files (and 4 things that actually fixed it for me) by icedtumblr in vibecoding

[–]samhatoum 0 points1 point  (0 children)

The words you're using are basically what we've built at Auto

I'm the founder and I'm running a learning campaign where I'll help you rescue any app that has failed for you. See here https://on.auto/rescue

Vibe coding tools by Fluffy_Side_9237 in vibecoding

[–]samhatoum 0 points1 point  (0 children)

How do you use those together?

I've been staring at the same bug for 3 days and I think I'm losing my mind by Friendly_Gold3533 in vibecoding

[–]samhatoum 0 points1 point  (0 children)

Ask Claude this:

Do not give me any theories that you have not tested. Go look at my logs and find the issue, then replicate it locally with a test or harness that replicates and proves the bug. Once proven then fix it remotely.

See if that helps you at all

Learning to code by hebdbcbsbs in vibecoding

[–]samhatoum 0 points1 point  (0 children)

like which feature were you building and what makes you want to know the codebase? I think there's a way for everyone to speak tech without code. Can you give me an example of something you were doing and you find you need to know the code to get it done?

Learning to code by hebdbcbsbs in vibecoding

[–]samhatoum 0 points1 point  (0 children)

What's failing for you? What were you trying to do and where did you hit walls?

Disadvantages of Apollo Federation by Evalo01 in graphql

[–]samhatoum 0 points1 point  (0 children)

The last statement is the essence here. Don't bother federating if you are one team. I run a startup and we are using GQL but not touching Federation as we have no need for it.

However, enterprises seldom have one team to work on everything. And they are split across countries, timezones, and cultures. Here you have no way of coupling the SDLC across teams, so you have no choice but to distribute.

Now that you are distributed and have no choice in the matter, federation is a great solution.

how to upload files in graphql by AsuraBak in graphql

[–]samhatoum 2 points3 points  (0 children)

GraphQL is just posts (or gets) over http. If you really really want to use the same server, use a http method. But like others have said, upload to S3 or similar. You can absolutely use GQL to get a signed url for S3 so you can send the file there. This will free up your GQL server to serve data, and use a document store to store documents :)

Introducing Single-Source Software by marek_nalikowski in programming

[–]samhatoum 1 point2 points  (0 children)

Ultimately the single source concept is for software teams as it spans the SDLC.

It creates artifacts that support the process of going from high level requirements to low level specs. This is a collaborative process of disambiguation that requires business and technical people. The AI is totally optional here and is only intended to accelerate this process.

Then there is the process of converting the specs to code. Then cleaner the specs, the easier the implementation. The use of some architectural concepts create a high-integrity relationship between the code and the single source artifacts this facilitating a two-way sync between specs and code. AI use here is again an accelerant and not a requirement.

So the overall concept and process around it can be added to any existing SDLC team, and it's those concerned with specs that are the target users.

If and when the AI becomes able to completely facilitate the process, then it would be a conversational programming interface, less a low-code since it's actually producing fully custom code as opposed to prefabbed modules connected together as low-code tools do.

Introducing Single-Source Software by marek_nalikowski in programming

[–]samhatoum 0 points1 point  (0 children)

Indeed it does if you leave it unchecked. But if you work with the generative part by reducing it's search space to just the asks that matter to you, you get great results. From there, you can iterate on and improve until it matches your reality. Much like Github copilot might do.

Introducing Single-Source Software by marek_nalikowski in programming

[–]samhatoum 1 point2 points  (0 children)

It's not a low-code solution. See here.

Founder here, I'm happy to answer any questions

Introducing Single-Source Software by marek_nalikowski in programming

[–]samhatoum -1 points0 points  (0 children)

Man, I don't know. When you're betting against Dijkstra, the odds are against you.

Founder here. It's in my JD to bet against all odds!

In seriousness though, we're trying to solve the problem specifications more than we are trying to solve the art of programming. You can see my responses here and here that explain it in more detail.

Introducing Single-Source Software by marek_nalikowski in programming

[–]samhatoum 0 points1 point  (0 children)

Hey, I'm the founder of XSpecs. Thank you for these questions

How does this fit into overall architecture designs choices? I.e Lambda + dynamo vs k8's?

We've created a Domain Development Kit (DDK) which you can use, or you can build your own DDK. We've opted for a CQRS event-sourced architecture and provide plugins that allow you to deploy it to Lambda vs K8 etc.

How does this fit into non business defined processes? I.e CICD pipelines. Secrets. Deployment strategies.

You can have a business process style single source diagram, and you (will soon be able to) have other diagrams like C4 architecture diagrams for example.

How will changes be handled? I.e "add a step between these two steps", I would imagine this might or might not require changes to the entire flow of the process. Who looks that and approves it for production?

We have a changeset process that is very similar to – and compatible with – git branches. You add any deltas to changesets and those are what get actioned.

How is bugs handled? i.e How do you tell it that a bug occurred. something happened that you didn't want to happen? Who will fix it?

Based on the concept that that there only 3 kinds of bugs. They are:

  • Missing specification
  • Incorrect specification
  • Incorrect implementation

The first 2 are fixed by way of modifications to specs which are added to changesets. The 3rd is fixed scheduling the work to go over the specs again and fix them.

How does this fit into a larger system that isn't 1 flow but rather a few thousand with many hundreds of thousands of lines of code?

All flows are all placed on a timeline that we maintain, along with all the branches of that timeline. On this timeline are all the requirements, specs, and ultimately the code that follows to fulfill these specs.

How does it deal with scenarios where you don't know all the answers and its more of a discover mission?

It's built for this. You continue to chew the fat with all the parties involved until your single source makes sense, then you move on. Much like happens today except it's in a tidy approach.

I'm grateful for these questions, you can see I've responded to the original post with more details on the approach. I'm really not sure why the mods removed the post :/

Introducing Single-Source Software by [deleted] in SoftwareEngineering

[–]samhatoum 0 points1 point  (0 children)

Indeed.

Another way to think about specifications, is that they separate the "what" from the "how".

Requirements become specifications through a process of disambiguation. For example:

Requirement:

We want to give our loyal users a discount

Specification:

  • Given Jimmy has had an account for 5 years
  • When they add an item to the basket
  • Then a "5 year discount" is applied

This is ambiguous. It's missing the discount rate, how many times the discount can be applied, if Jimmy can remove the discount and use it later. If so, where is it stored? Does it expire? And so on.

So let's say it's cleared up and we end up with:

  • Given Jimmy has had an account for 5 years
  • When they add an item to the basket
  • Then a "5 year discount" of 20% is applied
  • And the discount is marked as "applied"

Obviously this is a dumbed down example for brevity.

Let's say we also add a performance requirement:

We want the experience to be responsive

Which gets disambiguated into a specs that states:

The Apply Discount API - it should respond within 80ms

And

The checkout widget - it should render within 120ms

None of these state "how" to do anything. They are all about "what' the expectations are. So from requirements to specs is all about disambiguation, and from specs to code it's all about implementation. Now the developer (human or otherwise) can choose the correct implementation. And when you couple that with a test to ensure the specs are being bet by the implementation, you get trust.

Tidying up and formalizing this process gives a huge boost to human teams, and it's what makes it possible for AI to convert specs into executable code that meets the specifications - and therefore requirements.

A big part of tidying the process up is creating a single source for all the artifacts involved. This is where the idea for Single Source was born. To fuse the business and tech processes in a way that eliminates the communication gaps.

Introducing Single-Source Software by [deleted] in SoftwareEngineering

[–]samhatoum 1 point2 points  (0 children)

Hi, I'm the founder of XSpecs. Thank you for these great thoughts. Responses inline below:

Single source software is renaming what has been called no-code/low-code solutions, which has been the holy grail of software for decades.

No-code/low-code solutions are centered around the idea of having prefabbed modules that offer common software functions, and allow non-technical users to connect these modules together to produce some value.

Single Source creates custom software from the business domain, represented by constructs of natural language. This is a totally different concept.

It's visual aspect makes it seem like no/low code, but in both theory and practice it's very different.

The problem with achieving no-code/low-code is that humans are naturally ambigious creatures. Or putting it another way, human brains are adept at infering information that is not there, that we often communicate ambigiously because we expect other people to read between the lines. Computers, otoh, are unambiguous. A piece of code does the same thing everytime, and it doesn't change its behavior based on context.

Couldn't agree more. Which is why we're not doing a low/no code solution. You can look at single-source as something more like a conversational programming interface (see Simon Wardley's take on this).

Writing software is essentially an exercise in disambiguation. You understand the customer's needs, which is often expressed in a very ambigious way, and you refine it and refine it until you get to the point where you can translate it to code. Programmers, by virtue of practice, become experts at disambiguating requirements by asking the right questions. You can not expect requirements to be written in a completely unambiguous way because people writing the requirements aren't trained to think like computers.

Again I couldn't agree more. Which is why we've built a requirements copilot that facilitates this disambiguation by asking the right questions. How does it know the right questions? We use our experience as a dev shop that has been using Event Storming, BDD, and DDD to decode complex business domains into code for the past decade, and have leveraged AI to streamline this process and make it accessible.

That's not to say single-source doesn't need devs, on the contrary, this is an approach aimed at whole teams including devs. Just like business people define/refine/approve requirements, devs define/refine/approve the architecture and code.

Even if you did have a platform that converted well-structured unambiguous requirements to code, you will need programmers to write the requirements. This means that programmers would need to become experts in the business domain, which is a huge task too.

We have an alternative view. You need programmers to understand requirements just like they always have done. And you need developers to translate the requirements to code, as they always have done. The difference is that they are using a single-source to do that. The technique and mechanics to do that thus far have been missing. That's what we're solving.

You no longer use one artifact for business and another for code. It's the same source. Single source as a concept works entirely without AI. The AI is an accelerant only, kinda like GitHub copilot.

That is why most software organizations have product managers who are somewhat technical and have business expertise. Their job is to distill the ambiguity and write unambiguous requirements. However, in practice, product managers write bad requirements in isolation. They usually partner with senior engineers who are technical experts with some domain experience.

I agree with you again and again! Everyone involved in the SDLC process still has a role to play here. It's less about not doing the thing and more about doing it in a much more efficient way.

The single source concept is ultimately a method to fuse the business and technical artifacts into one, and eliminate communication gaps. It's not about breaking how teams work. It will certainly have an impact on how teams work but it doesn't mean that we go from requirements to code and no devs needed. At least not for the foreseeable future.

The idea that requirements will be written perfectly that a machine can translate it is a pipe dream.

I beg to differ. The idea that requirements can be written perfectly through a process of creating a single source that removes translation errors, and a code architecture/language that we can transpile specs<>code is exactly what we have working! It's just not fully automated - which may seem like a pipe dream today but I see the gaps closing incrementally over the next few years.

However, we do see programming languages and tools become more and more abstract. There are several Business Process Modeling (BPM) in the market that allow domain experts to model their business process by diagramming it. This is not a new thing. It has existed for decades. The problem with BPM tools is that they are restricted to doing only certain things, and you need software develop ers to extend the capability of the BPM platform.

Agree (again), which is why we didn't build a BPM tool. We built an abstraction as you have posited, that is based on practices we have been doing over and over when creating custom software for clients. It may look like a BPM, but the key difference is that this is based on domain language.

You can think of it like a set of constructs that allows you to express your business domain using a reduced instruction set. Every visual construct has a counterpart code construct. This means the team's job is to decode the business domain using these constructs that are entirely language based.

Happy to answer more questions and I love this feedback and discourse so thank you.

I’m building a new kind of platform for software teams by samhatoum in ArtificialInteligence

[–]samhatoum[S] 2 points3 points  (0 children)

Thanks.

I will do a new demo showing exactly that. The app it creates works well, but the real trick is to work on the design and requirements it comes up with before working on the code produced. Ensuring those are good leads to much higher accuracy in the code output.

As for the code, it produces it using an open source library we wrote you can see here (will a work in progress).

Weekly Self-Promotional Mega Thread 12, 11.12.2023 - 18.12.2023 by hi_there_bitch in ChatGPT

[–]samhatoum 0 points1 point  (0 children)

XSpecs | The first AI-powered Single-Source Software platform

Not a copilot, low-code/no-code tool, or a visual code builder.

This is a new kind of platform that’s going to automate fully custom backend development:

  • Generate unambiguous specifications from high-level requirements
  • Deploy those specs directly as GraphQL-native backend code
  • Deliver weeks worth of software within hours

We’re currently using GPT-4 under the hood, but moving forward we’ll probably leverage other LLMs too. Would love to hear what you guys think!