Presale Generator plugin
Presale Generator automates software project estimation and technical RFP analysis. It transforms unstructured specification documents into structured work-breakdown structures (WBS), estimates engineering hours per task, formulates project delivery schedules, and calculates required team staffing allocations.
Architecture and components
Section titled “Architecture and components”The Presale Generator plugin operates as a self-contained local worker container combining:
- State orchestration engine: 53 pure-function MCP tools managing workflow state machines, iterations, risk registries, and WBS trees.
- Python document extraction pipeline: High-capacity parsers (markitdown, pdftotext, pandoc, openpyxl, python-docx, docling) parsing multi-format briefs.
- Skill bundle: 22 CLI commands and 24 specialized prompts decomposing documents in parallel across subagents.
Workflow state machine
Section titled “Workflow state machine”Presale projects are organized into discrete opportunities initialized with /presale:add <slug>. Analysis progresses deterministically through enforced lifecycle phases:
flowchart LR Extract["1. Extract<br/>Multi-engine parsing"] --> Analyze["2. Analyze<br/>Actors, FR, NFR, Gaps"] Analyze --> Breakdown["3. Breakdown<br/>Epics, Features, Tasks"] Breakdown --> Estimate["4. Estimate<br/>Hours & Streams"] Estimate --> Plan["5. Plan<br/>Timeline & Staffing"]
Command /presale:continue inspects workflow preconditions, advancing execution only when preceding stage artifacts pass quality gates.
Skill hierarchy
Section titled “Skill hierarchy”The plugin employs orchestrator skills that dispatch parallel extraction workers across segmented document chunks:
| Primary skill | Functionality description |
|---|---|
presale-rfp-analyzer | Decomposes RFP documents into parallel chunks, extracting requirements and open gaps. |
presale-breakdown | Structures functional requirements into hierarchical Epics, Features, and Tasks. |
presale-estimator | Batches engineering tasks across estimation agents to evaluate hour allocations. |
presale-auto-assume | Converts unresolved technical gaps into documented assumptions with risk ratings. |
presale-cross-reference-builder | Validates end-to-end requirement traceability across generated artifacts. |
presale-risk-aggregator | Consolidates and prioritizes technical, architecture, and timeline risks. |
presale-team-composition | Calculates team staffing requirements based on technology stack and work streams. |
presale-timeline | Compiles delivery schedules factoring engineering capacity, holidays, and dependencies. |
presale-use-cases | Formulates structured use case specifications with alternative and exception flows. |
Command reference
Section titled “Command reference”Top-level workflow commands operate under the /presale: namespace:
| Command | Action |
|---|---|
/presale:add <name> | Initialize a new opportunity directory structure. |
/presale:select <name> | Bind the active session to a designated opportunity. |
/presale:extract | Parse documents in the opportunity folder to normalized Markdown. |
/presale:analyze | Run automated requirements extraction and gap analysis. |
/presale:create-wbs | Generate hierarchical WBS definitions. |
/presale:estimate | Calculate task hour allocations. |
/presale:timeline | Generate the delivery milestone schedule. |
/presale:team | Generate recommended team composition matrices. |
/presale:continue | Resume workflow execution from the current active checkpoint. |
/presale:status | Display phase progress metrics and artifact completeness scores. |
Iteration management (/presale:iteration)
Section titled “Iteration management (/presale:iteration)”create: Snapshot current WBS state into an immutable version checkpoint.list: Enumerate recorded iterations.switch: Revert active project state to a designated version snapshot.compare: Compute delta matrices between two iterations.
Configuration
Section titled “Configuration”The Presale Generator operates completely offline without external cloud API credentials:
- Enable the plugin for your project via Desktop settings or
speedwave plugin enable presale-generator --project <name>. - Initialize an opportunity using
/presale:add <opportunity-name>. - Copy RFP documents into the generated input directory and begin analysis.
Security boundaries
Section titled “Security boundaries”The Presale Generator executes entirely within an isolated local container without network egress routes. Uploaded documents and generated WBS hierarchies remain local to your workspace repository. Consult Credentials management for details.