Skip to content

Latest commit

 

History

History
179 lines (125 loc) · 5.28 KB

File metadata and controls

179 lines (125 loc) · 5.28 KB

Project Progress

Last Updated: 2026-05-23
Version: 0.1.0
Status: MVP complete — fully functional


Current Status

Promptimize is a working VSCode/Cursor extension that records voice, transcribes with OpenAI Whisper, optionally transforms prompts with GPT-4, and inserts text into the active editor or chat.

Phase Status Progress
Documentation Complete 100%
MVP Implementation Complete 100%
Testing In progress 12+ automated tests; expanding coverage
Publication Pending Not published

Build: Successful (out/extension.js, ~579 KB)
TypeScript files: 43 in src/


Implementation Statistics

Code

Layer Files Status
Domain 12 Complete
Application 14 Complete
Infrastructure 11 Complete
Presentation 5 Complete
Shared + entry 1 Complete

Documentation

Category Files Location
ADRs 14 + template docs/adr/
User guides, architecture, ops 12 docs/*/
Documentation index 1 docs/README.md

Layer-specific implementation details live in src/ with TypeScript types and JSDoc comments. Port interfaces: src/application/ports/.


Completed Phases

Phase 1 — Documentation

  • Architecture overview, configuration guide, and ADRs
  • Flows, UX, security, testing, deployment, and research docs

Phase 2 — MVP Implementation

Domain layer

  • Entities: Recording, Transcription, Prompt
  • Value objects: AudioData, AudioFormat, RecordingState, ApiKey
  • Custom errors for recording, transcription, validation, config, and permissions

Application layer

  • 6 ports: audio, transcription, transformation, insertion, config, logging
  • 6 use cases: start/stop/cancel recording, transcribe, transform, insert
  • DTOs for transcription and transformed prompts

Infrastructure layer

  • NativeAudioRecorder (primary) and WebviewAudioRecorder (alternative)
  • OpenAI Whisper and GPT-4 integration
  • Text inserters: chat participant, editor, clipboard fallback
  • VSCode config + SecretStorage
  • Console and output-channel logging

Presentation layer

  • Commands: start, stop, cancel recording; configure API key
  • Status bar with visual states

Integration

  • Composition root in src/extension.ts with manual dependency injection

Working Features

  • One-click or shortcut recording (Cmd/Ctrl+Alt+V)
  • Native microphone capture (16 kHz mono)
  • OpenAI Whisper transcription
  • Optional GPT-4 prompt transformation
  • Automatic text insertion (chat → editor → clipboard fallback)
  • Secure API key storage
  • Status bar feedback and error handling

Pending Work

Testing (optional, not blocking usage)

  • Unit tests for domain entities and use cases
  • Integration tests for OpenAI services
  • E2E tests for the recording workflow

Nice to Have

  • Broader test coverage and CI/CD
  • Cursor chat integration improvements as APIs evolve
  • Marketplace publication (VSCode Marketplace, Open VSX)

Known Gaps (Documented, Not Blocking MVP)

Unused or unwired code

Item Location Status
WebviewAudioRecorder src/infrastructure/audio/ Deprecated (ADR-0013); not wired in extension.ts
ConsoleLogger src/infrastructure/logging/ Unused; production uses VSCodeOutputChannelLogger
Recording entity src/domain/entities/Recording.ts Defined but not instantiated in the live pipeline
Unused error types InvalidConfigError, RecordingTimeoutError, TranscriptionTimeoutError Reserved for future use

Configuration options not yet enforced

Setting Documented Applied in code
audioQuality Yes Loaded only — recorder always uses 16 kHz mono
maxRecordingDuration Yes Loaded only — not enforced in NativeAudioRecorder
showNotifications Yes Loaded only — commands always show notifications
transcriptionHint Partial Read/write via VS Code Settings; not in webview

These options are exposed in package.json and documented in README for forward compatibility.


How to Test

Prerequisites

  • Node.js 22+ (via nvm; see .nvmrc)
  • VSCode or Cursor
  • OpenAI API key

Setup

git clone https://github.com/vypdev/promptimize
cd promptimize
pnpm install
pnpm run compile

Debug

  1. Open the project in VSCode/Cursor
  2. Press F5 to launch the Extension Development Host
  3. Run Promptimize: Configure API Key from the Command Palette
  4. Press Cmd/Ctrl+Alt+V to start recording, speak, then stop
  5. Wait for transcription and insertion into the active editor

See README.md for full usage, configuration, and troubleshooting.


Timeline

Date Milestone
2026-05-22 Project started; documentation foundation completed
2026-05-23 MVP implementation completed; build successful

Next Steps

  1. Internal testing and feedback
  2. Optional: add unit and integration tests
  3. Package with pnpm run package when ready to distribute
  4. Publish to VSCode Marketplace / Open VSX

For developer documentation, see docs/README.md.