Install
openclaw skills install @juneyaooo/lineage-skillTurn courses, books, video, audio, PDFs, slides, transcripts, OCR, notes, and long-form materials into source-grounded learning Skills that explain, demonstrate, ask the learner to try first, give focused feedback, schedule review, test transfer, and support independent work. Also use for CoursePackage migration, teacher-method extraction, learning paths, practice and assessment libraries, private learner-state workflows, reusable personal methods, and graduation evaluation.
openclaw skills install @juneyaooo/lineage-skillCompile source material into a learning Skill that can cite the source, demonstrate the teacher's method, guide practice, correct mistakes, and gradually reduce the learner's dependence on help.
Use this method:
Capture → Cite → Compress → Connect → Codify → Coach → Practice → Consolidate → Transfer → Graduate
Preserve evidence before synthesis. Require observable learner work before mastery. Keep immutable teacher assets separate from private learner state.
direct_source, source_grounded_synthesis, cross_source_synthesis, mentor_inference, learner evidence, external knowledge, and unsupported content.Choose the smallest workflow that preserves the requested evidence:
Do not rerun expensive capture when stable artifacts already exist and inputs have not changed.
Separate capability from configuration. Report missing configuration and the smallest viable fallback.
AUDIO_TRANSCRIBE_API_KEY, AUDIO_TRANSCRIBE_BASE_URL, AUDIO_TRANSCRIBE_MODEL.LINEAGE_VISION_API_KEY, LINEAGE_VISION_BASE_URL, LINEAGE_VISION_MODEL.LINEAGE_TEXT_API_KEY, LINEAGE_TEXT_BASE_URL, LINEAGE_TEXT_MODEL when LLM distillation is enabled.MINERU_API_TOKEN, unless existing OCR is reused.ffmpeg and ffprobe.If raw media needs an unavailable provider, stop before that capture stage. If transcripts, OCR, notes, or packages already exist, continue from them and report excluded modalities. Never store secrets in the repository or commit .env.
For media and documents:
python scripts/run_course_pipeline.py \
--input-dir <course-media> \
--documents-input <pdf-or-directory> \
--notes-input <notes> \
--course-name <course-name> \
--skill-name <skill-name> \
--mode mentor \
--apprenticeship full \
--practice-depth deep \
--learner-state external \
--output-dir ./dist
For text or books:
python scripts/run_course_pipeline.py \
--text-input <markdown-txt-or-directory> \
--course-name <course-name> \
--mode mentor \
--apprenticeship full \
--output-dir ./dist
Use --text-no-llm for deterministic explicit-label extraction. Treat implicit teacher cognition from ordinary exposition as medium/low confidence and require review.
Build or migrate CoursePackage:
python scripts/build_course_package.py \
--course-name <course-name> \
--source-dir <course-workspace>
python scripts/migrate_course_package.py \
<legacy-course-package.json>
Compile the apprenticeship assets in dependency order:
python scripts/build_teacher_model.py --source-dir <course-workspace>
python scripts/build_capability_graph.py --source-dir <course-workspace>
python scripts/build_practice_bank.py --source-dir <course-workspace> --practice-depth deep
python scripts/build_assessment_bank.py --source-dir <course-workspace>
python scripts/build_mentor_package.py --source-dir <course-workspace> --apprenticeship full
python scripts/build_mentor_readiness_audit.py --source-dir <course-workspace>
Then generate and validate:
python scripts/build_course_skill.py \
--course-name <course-name> \
--skill-name <skill-name> \
--mode mentor \
--apprenticeship full \
--learner-state external \
--source-dir <course-workspace> \
--output-dir ./dist
The builder uses a temporary directory and installs the target only after validation.
python scripts/build_multi_course_package.py \
--course <course-a-package-or-dir> \
--course <course-b-package-or-dir> \
--combined-name <combined-name> \
--output-dir <combined-workspace>
Migrate each package to an in-memory 1.0 form, namespace colliding IDs, keep source-course identity, record semantic conflicts, and route those conflicts into comparison rather than consensus.
mentor when the user wants capability formation.expert for source lookup, course Q&A, explanation, and citations.consultant for course-grounded diagnosis, option comparison, and advice.practitioner for playbooks, checklists, templates, workflows, and artifacts.custom for a user-defined source-bounded role.Treat role, scope, evidence strategy, apprenticeship mode, and learner-state strategy as separate dimensions. Mentor requests default to full apprenticeship; downgrade to guided or none when readiness is insufficient and report every blocker.
Require the following for full apprenticeship:
Use guided mode when useful training assets exist but full teacher evidence does not. Do not hide gaps.
First route the request as source lookup, direct explanation, diagnostic learning, guided practice, artifact feedback, real-world application, retrieval review, transfer test, or graduation test.
Read the detailed protocol and policies before operating a generated Mentor Skill.
Resolve the host-provided store as:
{learner_store_root}/apprenticeships/{mentor_package_id}/
Initialize, append, rebuild, schedule, select, validate, and build candidates with the generated runtime scripts. If the host cannot write, return a complete state patch and say it was not persisted. Never generate real learner_progress.json or apprenticeship state under Skill references/.
Generate a candidate only after:
Promote only after regression tests, a new-context success, no material capability regression, copyright/privacy review, Skill validation, and explicit learner approval.
Graduate only with delayed retention, unseen-case diagnosis, independent production, changed-context transfer, boundary recognition, critical comparison, personal adaptation evidence, and Personal Skill regression. After graduation, reduce Mentor behavior to source consultant, counterexample provider, advanced sparring partner, and source-update notifier.
Run:
python -m pytest -q -c /dev/null --rootdir=. -o cache_dir=.pytest_cache tests
python scripts/validate_lineage_package.py --package <course_package.json>
python scripts/validate_mentor_package.py --package <mentor_package.json>
python scripts/validate_generated_skill.py --skill-dir <generated-skill>
python "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" .
git diff --check
Report source state, workflow, generated path, visual evidence mode, source readiness, mentor readiness, runtime readiness, apprenticeship downgrade, human-review needs, test results, and remaining risks.
Generation is not complete while the learner still does not know how to use the new Skill.
After validation:
Do not expose compiler commands, schema names, runtime object names, or validation internals in the normal user handoff unless the user explicitly asks for developer details.
Do not commit private transcripts, images, OCR, learner state, or copyrighted bodies unless the user explicitly authorizes publication.