Methodology
AI coding tools make it easy to ship fast without structure. CRAFT keeps intent, decisions, and quality gates in place so the speed holds up.
Start with our AI agent. Find your next step.

Methodology
AI coding tools have democratized software development (opens in a new tab). Founders can go from idea to working prototype in days. Teams can ship features faster than ever. But speed without structure creates a specific kind of failure that we're seeing more of in the market: AI-generated code that works until it doesn't, architectures that made sense to an LLM but not to a human engineer, and codebases that are impossible to maintain or extend.
This is the problem InTech solves. We call it vibe coding chaos, and CRAFT, the operating system behind every InTech engagement, is how we prevent it.
Vibe coding is building software by feeding prompts to AI without engineering judgment or architectural oversight. It's not inherently bad. Prototypes built this way move fast. But when speed becomes the only metric, specific failure modes appear.
The engineer sits at the keyboard and describes what they want in natural language. Claude, Cursor, ChatGPT, or v0 generates code that looks correct. It compiles. It runs. It solves the immediate problem. Nobody asks why it was built that way, what tradeoffs were made, or whether it fits the larger product strategy. The code gets merged and shipped.
This repeats dozens of times. Each feature works in isolation. But the codebase has no coherent shape. There is no shared understanding of how things fit together. When a new engineer joins, they read code that was generated by an AI based on a vague prompt, and they have to reverse-engineer the intent. Sometimes the intent was right. Sometimes the AI solved the wrong problem confidently.
By the time you realize the system is unmaintainable, you're already six months into a codebase that would need to be rewritten. Security holes that should have been caught in code review went to production. Data models that looked reasonable in isolation break under scale. Integrations that worked once fail silently in production because nobody documented their assumptions.
Vibe coding produces five specific types of failure that compound over time.
Context collapse happens when AI generates code based on incomplete or vague prompts instead of structured product understanding. The AI is highly confident and the code is syntactically correct, but it solves the wrong problem or makes assumptions that contradict other parts of the system. By the time you discover this, it's already in production.
Decision erosion occurs when technical choices get made implicitly in AI prompts rather than explicitly by the team. Nobody documents why the system uses pagination instead of infinite scroll, why authentication was routed through a particular service, or why the data model has that denormalization. Six months later, a new engineer wants to refactor something and has no idea what problem it was solving.
Unchecked automation means AI gets applied to high-risk areas without proportional oversight. A developer asks an AI to "generate the database schema for user accounts" and gets code that works but has no encryption at rest, doesn't validate input, and exposes PII in logs. The AI never marked these as concerns because the prompt didn't ask for security. But security shouldn't depend on the developer remembering to ask.
Lost learning is the accumulation of the same mistakes across the codebase. The team encounters a problem, solves it with AI, ships it, and moves on. The next time the problem appears (and it always does), they solve it again the same way, sometimes worse. There's no mechanism to capture what worked, what didn't, and why. Improvement is lost.
Misaligned output is when the code is correct but serves the wrong purpose. An AI generates a feature that works perfectly but solves a problem the product no longer has, or solves it in a way that contradicts the product strategy. By the time the misalignment is discovered, the feature is live and other code depends on it.
Vibe-coded systems fail silently until they don't. A prototype that works looks like a product. An investor or customer sees working software and assumes it's ready to scale. But the first time you need to add a feature that touches the core architecture, or handle 10x the load, or integrate with another system, the codebase becomes a liability.
The business impact is predictable: wasted engineering investment, rebuilding from scratch, security incidents, customer-facing outages, and missed deadlines while engineers fight with unmaintainable code instead of building new value. In the worst cases, teams end up rebuilding large parts of a system they spent six or twelve months creating.
Founders who built with AI tools don't do this deliberately. They're moving fast because they need to. They're using the best tools available. But without structure, speed becomes waste.
CRAFT (Context, Rationale, Automate, Fortify, Telemetry) is InTech's operating system, the governance underneath strategy, product engineering and managed operations. Pro-Neering is the philosophy behind it. In AI-assisted development, CRAFT prevents these failure modes. It's not about slowing down. It's about making the right decisions visible and enforcing them before code gets written.
Context prevents context collapse. Before any code starts, the team agrees on an Intent Contract. An Intent Contract is a short, signed-off statement of the outcome, scope, success metrics, constraints, human authority boundaries and acceptance criteria. It is not a legal agreement; commercial terms live in the engagement agreement. It is approved by the people who understand the business and the product. This document is the shared reference that guards against vague prompts generating confident nonsense. When an AI agent has the full context, it generates code that actually solves the problem.
Rationale prevents decision erosion. Every material technical decision is recorded in a Decision Record with reasoning. Why did we choose this authentication provider? What tradeoff did we accept? What were the alternatives? These aren't detailed design documents. They're a permanent log of why things were built the way they were. New engineers read these and understand the intent. When you need to refactor later, you know what problem you're solving for.
Automate means using AI where it's strongest (code generation, refactoring, boilerplate) but with oversight. Automation without judgment is how security holes and bad patterns get shipped. Automation with code review, quality gates, and architectural review prevents the worst failure modes. AI does the labor. Engineers do the judgment.
Fortify prevents shipping broken or insecure code. Quality gates are mandatory before deployment. This includes code review, security scanning, performance testing, and integration testing. These aren't optional reviews that busy teams skip. They're gates that must be passed. If a piece of code doesn't meet the standards, it doesn't ship. The earlier you enforce this, the less waste.
Telemetry prevents lost learning. Every system in production gets observability. Logs, metrics, alerts, and session recordings. When something breaks, you know what happened and why. When a feature isn't used, you see it in the data. The team captures what works and learns from what doesn't. This creates compounding improvement instead of the same problems recurring.
In practice, structured AI-assisted development is faster than vibe coding in the long term because it prevents waste.
First, the team agrees on an Intent Contract. It usually takes days, not weeks, and comes out of the assessment when there is one. It forces the hard conversations. What are we trying to achieve? What are we not doing? What does success look like? What would cause us to kill this effort? By the end, everyone agrees on the shape of the work.
Then developers use AI as a tool to write code faster. They feed the Intent Contract into Claude or Cursor as context. They write prompts that reference specific decisions and constraints. The AI generates code that's aligned with the product strategy and architectural decisions, not just what fits a vague description.
Before anything merges, code review catches alignment issues. Is this code consistent with the architecture? Does it follow the patterns the team established? Does it satisfy the Intent Contract? If it doesn't, it gets fixed before it reaches the codebase. The cost of fixing an architectural problem here is hours. The cost of fixing it six months later is weeks.
The system gets deployed when it passes quality gates. Observability tells the team if it's working and how it's being used. Decisions get recorded. The next time a similar problem appears, the team references the Decision Record, considers whether the old solution still applies, and either reuses it or documents a new decision.
This isn't bureaucracy. It's the opposite. It's preventing the waste that comes from building without structure. It's moving fast on things that matter and preventing waste on things that don't.
Plenty of teams used AI tools to build something quickly and now need real engineering to make it dependable. People call this vibe coding rescue.
Here is how it typically shows up (a hypothetical scenario to show the pattern). A founder builds a prototype with v0 in two weeks. It works, and investors want the product in two months. Six months later, tens of thousands of lines of code have piled up. New features take longer to ship than they did in month two. The team argues about architecture because nobody documented why anything was built the way it was. The code is slow and has security holes.
When a codebase was built fast without structure, a Managed Transition Assessment establishes what to keep, what to rebuild, and the first Intent Contract. From there, the work is to capture the decisions that matter, document the architecture, put quality gates in place, and teach the team to build with structure.
Keeping what works is usually cheaper and faster than rebuilding from scratch. It's also a signal that the next phase of growth requires engineering discipline. The team learns to build differently.
In the short term, it feels slower because you're writing Intent Contracts and Decision Records before code. But it's faster overall because you prevent the waste that comes from building the wrong thing confidently, from rework due to misaligned code, and from unmaintainable systems that slow you down for months. An Intent Contract usually takes days, not weeks, and the time it saves is measured in weeks or months.
No. Design upfront assumes you know what you're building. An Intent Contract assumes you know what problem you're solving and what success looks like. The design decisions emerge from code and feedback. The Intent Contract is the guard rail, not the blueprint. There's a real difference.
Yes. It's harder than starting with it, but it's possible. You audit the codebase, extract the architecture and decisions, document them retroactively, and then enforce structure going forward. For a codebase built fast without structure, that work starts with a Managed Transition Assessment.
It works with the team you have, with better guardrails. The team size doesn't need to change. The process is lighter than traditional waterfall. The difference is that decisions are visible and enforced before code gets written, not after.
CRAFT is tool-agnostic. Whether you use Claude, ChatGPT, Cursor, or v0, the methodology is the same. You give the AI agent the Intent Contract as context. You use it to generate code faster. You enforce quality gates and record decisions. The tool is the accelerator. CRAFT is the structure that keeps the acceleration useful.
Then you update it. The Intent Contract isn't carved in stone. But updating it is a team decision with rationale. You don't just drift and hope the system still makes sense. When the scope changes or the success metrics shift, you record the change and decide how it affects the work in progress. This is how teams stay aligned instead of diverging into chaos.
Tell our AI agent what you want to improve. We’ll help you find a useful first step.