Convert GSD codebase mapping to AutoForge app_spec.txt. This skill should be used when the user has run /gsd:map-codebase and wants to use AutoForge on an existing project. Triggers: "convert to autoforge", "gsd to spec", "create app_spec from codebase", "use autoforge on existing project", after /gsd:map-codebase completion.
Converts .planning/codebase/*.md (GSD mapping output) to .autoforge/prompts/app_spec.txt (AutoForge format).
/gsd:map-codebase on an existing projectThe project must have .planning/codebase/ with these files:
STACK.md - Technology stack (required)ARCHITECTURE.md - Code architecture (required)STRUCTURE.md - Directory layout (required)CONVENTIONS.md - Code conventions (optional)INTEGRATIONS.md - External services (optional)ls -la .planning/codebase/
Required files: STACK.md, ARCHITECTURE.md, STRUCTURE.md
If .planning/codebase/ doesn't exist:
GSD codebase mapping not found.
Run /gsd:map-codebase first to analyze the existing codebase.
Stop workflow. </step>
Read all available GSD documents:
cat .planning/codebase/STACK.md
cat .planning/codebase/ARCHITECTURE.md
cat .planning/codebase/STRUCTURE.md
cat .planning/codebase/CONVENTIONS.md 2>/dev/null || true
cat .planning/codebase/INTEGRATIONS.md 2>/dev/null || true
Extract key information:
cat package.json 2>/dev/null | head -20 || echo "No package.json"
Extract:
Create prompts/ directory:
mkdir -p .autoforge/prompts
Mapping GSD Documents to AutoForge Spec:
| GSD Source | AutoForge Target |
|---|---|
| STACK.md Languages | <technology_stack> |
| STACK.md Frameworks | <frontend>, <backend> |
| STACK.md Dependencies | <prerequisites> |
| ARCHITECTURE.md Layers | <core_features> categories |
| ARCHITECTURE.md Data Flow | <key_interactions> |
| ARCHITECTURE.md Entry Points | <implementation_steps> |
| STRUCTURE.md Layout | <ui_layout> (if frontend) |
| INTEGRATIONS.md APIs | <api_endpoints_summary> |
| INTEGRATIONS.md Services | <prerequisites> |
Feature Generation Guidelines:
Write the spec file using the XML format from references/app-spec-format.md:
cat > .autoforge/prompts/app_spec.txt << 'EOF'
<project_specification>
<project_name>{from package.json or directory}</project_name>
<overview>
{Synthesized from ARCHITECTURE.md overview}
</overview>
<technology_stack>
<frontend>
<framework>{from STACK.md}</framework>
<styling>{from STACK.md}</styling>
<port>{from STACK.md or default 3000}</port>
</frontend>
<backend>
<runtime>{from STACK.md}</runtime>
<database>{from STACK.md or INTEGRATIONS.md}</database>
<port>{from STACK.md or default 3001}</port>
</backend>
</technology_stack>
<prerequisites>
<environment_setup>
{from STACK.md Runtime + INTEGRATIONS.md requirements}
</environment_setup>
</prerequisites>
<core_features>
<!-- Group by ARCHITECTURE.md layers -->
<{layer_name}>
- {Feature derived from code analysis}
- {Feature derived from code analysis}
</{layer_name}>
</core_features>
<api_endpoints_summary>
{from INTEGRATIONS.md or inferred from STRUCTURE.md routes/}
</api_endpoints_summary>
<key_interactions>
{from ARCHITECTURE.md Data Flow}
</key_interactions>
<success_criteria>
<functionality>
- All existing features continue working
- New features integrate seamlessly
- No regression in core functionality
</functionality>
</success_criteria>
</project_specification>
EOF
head -100 .autoforge/prompts/app_spec.txt
echo "---"
grep -c "User can\|System\|API\|Feature" .autoforge/prompts/app_spec.txt || echo "0"
Validation checklist:
<project_specification> root tag present<project_name> matches actual project<technology_stack> reflects STACK.md<core_features> has categorized featuresOutput:
app_spec.txt generated from GSD codebase mapping.
Source: .planning/codebase/*.md
Output: .autoforge/prompts/app_spec.txt
Next: Start AutoForge
cd {project_dir}
python ~/projects/autoforge/start.py
Or via UI:
~/projects/autoforge/start_ui.sh
The Initializer will create features.db from this spec.
See references/app-spec-format.md for complete XML structure with all sections.
| Error | Resolution |
|---|---|
| No .planning/codebase/ | Run /gsd:map-codebase first |
| Missing required files | Re-run GSD mapping |
| Cannot infer features | Ask user for clarification |