Skip to content

feat: Teaching config consolidation - unified config for flow-cli and Scholar #298

@Data-Wise

Description

@Data-Wise

Feature Request: Teaching Config Consolidation

Date: 2026-01-27
Updated: 2026-02-03 (narrowed scope — lesson plan extraction shipped in v6.1.0, config rename dropped)
Priority: Medium
Effort: Small (~1-2 hours)


What's Already Done (v6.1.0) ✅

  • Lesson plan extractionteach migrate-config separates weeks into .flow/lesson-plans.yml
  • Single-file lesson plan loading_teach_load_lesson_plan() reads from .flow/lesson-plans.yml with fallback to embedded weeks
  • Backward compatibility — Old embedded format still works with deprecation warning
  • teach plan CRUD — Full create/list/show/edit/delete on .flow/lesson-plans.yml

Dropped ❌

  • Config file rename — Both flow-cli (~14 refs) and Scholar (~30+ refs in source, tests, docs) use .flow/teach-config.yml. Renaming to config-teach.yml would be a breaking change across both repos with no functional benefit. Keeping current name.

Remaining Work

1. Merge teaching style into teach-config.yml

Currently teaching style lives in .claude/teaching-style.local.md (markdown frontmatter), read by Scholar's style-loader.js (line 153). Add support for a teaching_style: section directly in .flow/teach-config.yml:

# .flow/teach-config.yml
course:
  name: "STAT 545"
teaching_style:
  pedagogical_approach:
    primary: "problem-based"
  notation_conventions:
    expectation: "\\E{}"
command_overrides:
  slides:
    style: "rigorous"

flow-cli side:

New helpers needed:

_teach_get_style()             # Read teaching_style.<key> from teach-config.yml
_teach_get_command_override()  # Read command_overrides.<cmd>.<key>

teach doctor should report teaching style source location.

Scholar side (see #299):

Update loadCourseStyle() in style-loader.js to check .flow/teach-config.yml first, fall back to .claude/teaching-style.local.md.

2. Schema update

Add teaching_style and command_overrides to lib/templates/teaching/teach-config.schema.json.


Acceptance Criteria

  • teaching_style: section readable from .flow/teach-config.yml
  • .claude/teaching-style.local.md still works as fallback
  • _teach_get_style() and _teach_get_command_override() helpers exist
  • Schema validates new sections
  • teach doctor reports teaching style source

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions