Spekkio leverages reverse engineering techniques to extract valuable information from 'slapp' applications. By understanding builder intent and the actual behavior of the app, it generates comprehensive documentation and user stories, facilitating safe refactoring and intentional evolution of software projects.
Spekkio is an innovative tool designed to extract value from vibe-coded applications, often referred to as "slapps" or AI "slop apps," by reverse engineering their specifications. This approach addresses the common issue faced by developers and industry veterans alike: applications that function intermittently but still hold significant value. Spekkio transforms the chaotic nature of these apps into structured insights, facilitating better maintenance and development practices.
Key Features:
- Intent Understanding: Spekkio begins by collecting information regarding the original intent of the application builders, ensuring a clear understanding of what the app is supposed to achieve.
- Behavioral Baseline Maintenance: The tool keeps the existing slapp as a behavioral baseline to manage safe refactoring and evolution of the application.
- Behavior-Driven Development (BDD) Scenarios: By generating BDD scenarios that reflect the current behavior of the app, Spekkio supports more effective testing and development.
Workflow Overview:
The process is illustrated through the extract mechanism:
Existing code (vibe-coded)
↓
/spekkio.extract
↓
spec.md (inferred user stories, acceptance criteria)
features/*.feature (characterization scenarios)
↓
Human review: "Is this what we actually want?"
↓
Adjust spec (remove bugs-as-features, add missing intent)
↓
Normal Spec Kit flow from here
The extraction process comprises six phases, producing outputs that assist in revealing anomalies typically found in vibe-coded apps such as missing validations, security vulnerabilities, dead code, inconsistent error handling, and lack of test coverage:
| Phase | Output | Description |
|---|---|---|
| 0 | discovery.md | Detects language/framework, maps project structure, catalogs endpoints |
| 1 | inventory.yml | Structured behavioral record for every external interface |
| 2 | spec.md | Inferred user stories with acceptance criteria and confidence scores |
| 3 | features/characterization/*.feature | Gherkin scenarios describing current, observed behavior |
| 4 | source-mapping.md | Traceability between scenarios and source code |
| 5 | checklists/extraction-review.md | Human review checklist to identify anomalies and missing context |
Post-Extraction Analysis:
After extraction, users can:
- Review and update the checklist to confirm or modify each user story.
- Address anomalies by distinguishing intentional features from bugs.
- Transfer approved scenarios from the characterization directory to intended scenarios.
- Leverage the detailed specifications as a reliable source of truth for future development.
End-to-End Example:
An example FastAPI ATM application, located in examples/atm/, is available to demonstrate the extraction tool in action with intentional anomalies for educational purposes. To run it, use:
/spekkio.extract examples/atm
Visual Reporting:
Post-extraction, users can access screenshots detailing various reports, including an overview and specific filter views for human input and anomalies, helping in the assessment and refinement stages.
No comments yet.
Sign in to be the first to comment.