The AI practice inside a 24-year firm.
ASP Labs is where we integrate AI into how we build software. Not as a marketing angle — as measurable acceleration in cycle time, code quality, and documentation. Led by our Head of R&D, deployed in every engagement.
- Led by Eric Alfredo Haag
- Since 2024
- In every engagement
II · The thesis
AI isn't a tool. It's a discipline.
The market treats AI like a feature — something you bolt onto existing workflows and call yourself "AI-powered". The result is engineering teams shipping code with more bugs, teams unable to explain what the AI produced, and clients paying for slop wrapped in premium markup.
We take the opposite approach. ASP Labs treats AI as a set of practices that reshape how senior engineers work — with the discipline of a 24-year engineering firm as the backbone.
Every AI-generated artifact goes through the same review process as human-written code. Every acceleration claim is backed by measurable metrics. Every skill or MCP server we deploy internally has been battle-tested in production, not read about in a blog post.
This is what "AI-native" means when it's real.
Eric Alfredo Haag
Head of R&D · ASP Labs Lead
When people say their team uses AI, ask them one question: which specific tool, in which specific part of the workflow, with which measurable outcome. If they can't answer, they're using it the same way you would — occasionally.
III · In the loop
Where AI enters, step by step.
Four moments in the development cycle, each with the specific tool and the metric it moves.
01 · Code generation
Code generation with human-in-the-loop
Every senior engineer works with Claude Code integrated into their local environment. For multi-file edits, refactors, and boilerplate, the AI drafts; the engineer reviews line by line before commit. We never merge AI-generated code without human understanding — the goal is throughput without loss of intent. Custom skills are pre-loaded per project (conventions, testing patterns, architectural constraints) so the AI produces code that matches your codebase from the first prompt.
- Claude Code
- OpenCode
- Custom Skills
~40% less boilerplate time
02 · Code review
AI-augmented code review
AI-augmented reviewers run on every PR before a human looks at it: security, performance, and convention-adherence analysis via GitHub Actions. Trivial findings are resolved before a senior spends time on the basics, and human review is reserved for what actually needs judgment.
- Custom PR bot
- Semgrep
- CodeQL
- Custom MCP servers
80% of trivial findings surfaced before human review
03 · Documentation
Documentation as continuous output
MCP servers connect the AI to your repo and generate docs that stay in sync with the code: ADRs, onboarding guides, OpenAPI specs. Changes are detected automatically, so documentation stops being a debt you pay at the end.
- Custom MCP servers
- Claude
- OpenAPI generator
90%+ of technical docs generated automatically
04 · Test coverage
Test generation and coverage lift
Custom skills generate tests and lift coverage without ceremony. The AI surfaces edge cases a human would miss; humans validate them, they do not replace them. The result is real coverage, not inflated numbers.
- Custom testing skills
- Vitest
- Playwright
42% → 89% coverage in the first sprint
IV · Tools we use
The full stack. No black boxes.
We tell you exactly which tools our engineers use, in which part of the workflow, and why. Transparency about the stack is what separates AI-native practice from marketing.
Terminal agent
Claude Code
Multi-file edits, refactors, and PR drafts in the engineer's terminal.
Terminal agent · OSS
OpenCode
Alternative to Claude Code where open source matters.
IDE
Cursor
Optional — for engineers who prefer an IDE over the terminal.
Context protocol
Custom MCP Servers
Repo-aware AI that reads your codebase, docs, and tickets.
Prompt engineering
Custom Skills
Pre-loaded conventions, testing patterns, and project constraints.
RAG infrastructure
Vector databases
pgvector or Qdrant for client-facing RAG bots.
Orchestration
LangChain / LlamaIndex
Production bot workflows with multi-step reasoning.
App integration
Vercel AI SDK
Streaming AI responses inside production apps.
Security review
Semgrep + rules
Static analysis with custom rules for team-specific patterns.
V · Bots we've shipped
Every bot in production. None in POC.
We don't build demos. Every bot below serves real users, handles real load, and has documented outcomes. If we can't ship it, we don't scope it.
Public sector · In production 18 months
Citizen support chatbot
Deployed for a government entity fielding thousands of repetitive regulatory questions a month. The challenge was not answering — it was answering with citations to actual policy documents, in a domain where a wrong answer has legal consequences.
The bot indexes current policy and answers with the exact source (resolution, article, page). When it is unsure, it says so and escalates to a human instead of inventing.
- 1,200+ queries/day
- ~60% ticket reduction
- 98% citation accuracy
- <2s response time
Lessons learned
- Compliance requires a citation on every claim
- Doc freshness matters more than model size
- Off-topic detection was 30% of the engineering effort
Legal / corporate · In production 12 months
RAG agent over legal docs
Deployed for a corporate law firm with 40,000+ pages of contracts and rulings. Lawyers were losing hours hunting for specific clauses across scattered documents.
The agent answers natural-language questions over the whole corpus, with ranked sources and a confidence score. It does not replace legal judgment — it accelerates the search that precedes it.
- 40k+ pages indexed
- seconds vs hours of search
- citations on every answer
- confidence score per result
Lessons learned
- Chunking quality decides answer quality
- Lawyers trust the result only when they see the source
- Incremental re-indexing avoids reprocessing the whole corpus
Operations / logistics · In production 9 months
Internal process automation
Deployed for a logistics operator whose approval flows stalled in manual queues. Every request waited for someone to classify and route it.
An LLM-based decision node classifies each request, routes it to the right approver, and records why. Humans still approve; the AI removes the classification wait.
- 142 requests/day
- routing in <1s
- auditable decision trail
- zero manual classification
Lessons learned
- The LLM decision must be explainable, not just correct
- A clear human fallback is non-negotiable
- Measuring the before is what proves the after
VI · Open source
Skills we share back.
A subset of our internal skills is published openly for the community. Because if you can hand our AI setup to another engineer, we've done our job. Real defensibility comes from execution discipline, not proprietary prompts.
conventional-commits-strict
Enforces conventional commits and generates PR bodies from diffs.
- git
- all-langs
typescript-strict-review
AI code review focused on TypeScript strict mode.
- typescript
- code-review
spring-boot-migration
Migrates legacy Java to modern Spring Boot with tests.
- java
- spring
- migration
postgres-query-optimizer
Analyzes slow queries and suggests index or rewrite strategies.
- postgres
- performance
See all skills on GitHub
Contribute back, or fork and extend for your team.
VII · What we measure
Metrics and guardrails.
Numbers we track internally. Not because they look good in pitches — because they tell us whether AI is helping or hurting.
~40%
Less boilerplate time
3×
Legacy migration throughput
80%+
AI-assisted test coverage
90%+
Docs generated automatically
<5%
AI bugs escaping to production
100%
Human review on production PRs
What we DON'T do
- Merge AI code without human understanding
- Bill AI throughput as senior engineer hours
- Deploy AI to production without observability
- Use AI for security-sensitive logic without extra review
- Sell an AI capability we haven't shipped at least once
- Hide when AI produced something — attribution is standard
Work with ASP Labs
Book time with Eric.
A deep-technical discussion. Bring your AI questions — the ones vendors won't answer straight.