Take a tutorial or project-based source that was already analyzed by learn-source and create a minimal, testable MVP project rebuild. Uses `run.json` to validate preconditions, track rebuild progress, and persist the resulting project path.
rebuild-project turns a rebuildable learning package into a real MVP in projects/{slug}/.
This is not a documentation-only step.
sources/{slug}/run.json existsworkspace/{slug}/ existsworkspace.status is effectively complete| Parameter | Default | Description |
|---|---|---|
slug | required | The slug of the learning package |
target_lang | auto-derived | Programming language if not obvious |
scope | mvp | mvp or full |
Before doing any rebuild work:
python scripts/run_state.py validate --slug "{slug}" --check-files
python scripts/run_state.py refresh-next --slug "{slug}"
python scripts/run_state.py summary --slug "{slug}"
If the workspace is incomplete, stop and fix learn-source first.
Check whether the source is actually technical and rebuildable.
If it is not suitable for rebuild:
python scripts/run_state.py set --slug "{slug}" --path rebuild.status --value skipped
python scripts/run_state.py set --slug "{slug}" --path rebuild.reason --value not_applicable
python scripts/run_state.py refresh-next --slug "{slug}"
Then report that rebuild was explicitly skipped.
If rebuild is applicable:
python scripts/run_state.py set --slug "{slug}" --path rebuild.status --value in_progress
python scripts/run_state.py set --slug "{slug}" --path next_recommended_step --value rebuild-project
Read in this order:
workspace/{slug}/00_zusammenfassung.mdworkspace/{slug}/01_kernkonzepte.mdworkspace/{slug}/02_schritt_fuer_schritt.mdworkspace/{slug}/04_projekt_rebuild.mdsources/{slug}/sources/{slug}/nlm-*Use rtk read when useful for local reading.
Determine:
Mark assumptions explicitly as Annahme.
Mark unclear source gaps as Zu verifizieren.
Create projects/{slug}/ with:
README.mdtests/ directoryThe rebuild must be minimal but real.
Update workspace/{slug}/04_projekt_rebuild.md so it points to the real rebuild result, not just a speculative blueprint.
It should include:
After a successful rebuild:
python scripts/run_state.py set --slug "{slug}" --path rebuild.project_path --value "projects/{slug}"
python scripts/run_state.py set --slug "{slug}" --path rebuild.status --value done
python scripts/run_state.py refresh-next --slug "{slug}"
python scripts/run_state.py validate --slug "{slug}" --check-files
If the rebuild fails partway through:
rebuild.status = failedrebuild.reasonREBUILD-PROJECT COMPLETE
Slug: {slug}
Project: projects/{slug}/
Tech stack: {stack}
Scope: {scope}
Next recommended step: {next_recommended_step}
run.json synchronized with the actual result