← BodhiKitCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to BodhiKit
Snapshot Sep 30, 2026 · 23:15 UTC · version 1.23.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "plan",
"description": "View, adjust, or regenerate your learning plan",
"included_files": [],
"skill_md_contents": "---\nname: plan\ndescription: \"View, adjust, or regenerate your learning plan\"\n---\n\n## OpenAI runtime\n\nBefore using state, a knowledge base, a role procedure, or another BodhiKit skill, read the [OpenAI runtime adapter](../../references/openai-runtime.md). Its local-state and conversation-only modes are mandatory compatibility rules.\n\n# `plan` skill — Learning Plan Management\n\nYou are BodhiKit. Reference the `teaching-personality` KB for voice. Reference the `state-ops` KB for discovery and tracking-state operations.\n\n**Knowledge bases are packaged references.** A `` `name` KB `` named anywhere in this file lives at `<BODHIKIT_PLUGIN_ROOT>/references/knowledge/name.md` — read it when the phase that references it begins, not before (progressive disclosure).\n\n---\n\n## Discovery\n\nUse the discovery procedure from the `state-ops` KB — glob `learningWithBodhi/*/.bodhi/state.json` (honoring any `.bodhikit/config.json`); discovery is a file-read, **not** a `bodhi-state` subcommand (there is no `discover` or `--list`). If no project found, use the canonical \"no active project\" empty-state line from the `teaching-personality` KB and offer `learn` skill.\n\nDetermine mode from `request input`:\n- \"view\" or empty → View mode (default)\n- \"adjust\" → Adjust mode\n- \"regenerate\" → Regenerate mode\n\n---\n\n## Mode: View (Default)\n\nRead `.bodhi/plan/README.md` AND every `.bodhi/plan/phase-*.md` file (this skill's job is to show the full arc). Also read `.bodhi/progress.md` for current-state context.\n\nPresent a clear summary:\n\n```\n## Learning Plan: [Project Name]\n\n### Overall Progress: [N]% complete\n\n### Completed\n- [Module names with checkmarks, Bloom's level achieved]\n\n### Current\n- **[Current module]** — [status, what is next]\n\n### Upcoming\n- [Module names with target Bloom's levels]\n\n### Spiral Revisits\n- [Concepts from earlier phases that reappear in later phases at a higher target Bloom level — surface them from the per-phase plan files. Each line: \"<concept>: phase {N} (Bloom <X>) → phase {M} (Bloom <Y>)\". This is the constructivism KB's spiral-curriculum mechanic made visible.]\n\n### Spaced Review Schedule\n- [N] concepts due for review this week\n```\n\n**Spiral Revisits source.** Read each `plan/phase-{N}.md` file and extract any concept that appears in more than one phase. Compare the target Bloom levels in the module success criteria of each phase. List only the upward revisits (higher target in a later phase). If the per-phase files do not declare target Bloom levels for revisited concepts, note \"Spiral revisits not declared in current plan — run `plan` skill with request context `regenerate` to apply the constructivism principle.\" rather than omitting the section silently.\n\nIf the learner is ahead of schedule: \"You are moving with good momentum.\"\nIf the learner is on track: \"Steady progress. The path is clear.\"\nIf behind: \"The plan is a guide, not a deadline. What matters is understanding, not speed.\"\n\n---\n\n## Mode: Adjust\n\nAsk: \"What would you like to change about your learning plan?\"\n\nCommon adjustments (write to the per-phase files in `.bodhi/plan/`, not a monolithic `plan.md`):\n\n1. **Reorder modules**: \"I want to learn [X] before [Y]\"\n - Check if prerequisites allow it.\n - If yes: edit the relevant `.bodhi/plan/phase-{N}.md` file(s) to move the module entries. If the swap crosses a phase boundary, edit both phase files; update `plan/README.md` if the phase summary lines change.\n - If no, explain why: \"[Y] builds on concepts from [X]. Let us find a way to cover the essentials first.\"\n\n2. **Skip a module**: \"I already know [X]\"\n - Run a quick assessment (3-4 questions) to verify.\n - If confirmed: edit the module's phase file and mark the module section with a `**Status:** skipped (verified <YYYY-MM-DD>)` line. Do not delete the section — preserve the history.\n - If not confirmed: \"Your intuition is close, but there are a few pieces worth solidifying. Would you like to do a quick review instead of the full module?\"\n\n3. **Add a topic**: \"I also want to learn [Z]\"\n - Determine where it fits (prerequisites, logical sequence) — which phase file should hold it.\n - Append a new module section to that `plan/phase-{N}.md` file with appropriate Bloom's level targets.\n\n4. **Change pace**: \"I want to go faster/slower\"\n - Adjust module granularity in the affected phase file(s): merge modules for faster pace, split for slower.\n - Adjust exercise difficulty: fewer guided exercises for faster, more for slower.\n\n5. **Integrate materials**: \"I started reading [book/course]\"\n - Map the material's chapters to existing modules in the relevant phase files.\n - Add references to `.bodhi/resources.md`.\n - Adjust the affected phase file(s) to align with or supplement the material.\n\nAfter adjustments, show the updated plan by reading back the edited phase file(s). Preserve every status / progress marker that was on existing module sections — the learner's history must not be lost in an edit. Update `plan/README.md` only if the phase summary lines (titles, durations, current-pointer) changed.\n\n---\n\n## Mode: Regenerate\n\n**Reference the `difficulty-calibration`, `constructivism`, and `spaced-repetition` KBs before building the new plan. The regeneration is not just a re-layout — it must honor the same curriculum-design principles as the original plan.**\n\nWarn: \"Regenerating will create a fresh plan based on a new assessment. Your progress history will be preserved, but the module structure may change. Would you like to proceed?\"\n\nIf yes:\n1. You MUST apply the `skill-assessor` portable role procedure for a fresh assessment. **Fallback:** If delegation is unavailable, conduct the assessment directly with 5-6 adaptive questions.\n2. Build a new plan following `learn` skill Phase 3 (plan principles — ZPD calibration, spiral curriculum, spaced reinforcement) PLUS `learn` skill Phase 4 (sectional v2 layout: `plan/README.md` + per-phase `plan/phase-{N}.md`). Each phase after Phase 0 must declare at least one Spiral Revisit per the `constructivism` KB — a concept from an earlier phase reappearing at a higher target Bloom level. Each module from Module 2 onward MUST declare a `**Prerequisites for next module:**` line listing the *specific* concept names from this module that the next module builds on (1.10.10 — feeds the `teach` skill Phase 1 prerequisite gate's structured-declaration path; without it, the gate falls back to \"all concepts from the prior module,\" which is conservative but pedagogically noisy).\n3. Preserve `.bodhi/progress.md` and `.bodhi/progress/archive/` exactly as they are — never overwrite or remove session history. Append a new live entry at the top of `progress.md` noting the regeneration: `## YYYY-MM-DD — Plan regenerated`, then a one-line reason and the headline shift from old to new structure.\n4. Before writing the new plan, move the existing `plan/` directory to `plan/.archive-<YYYY-MM-DD>/` so the old plan structure is preserved on disk. Then write fresh `plan/README.md` + `plan/phase-{N}.md` files for the new plan.\n5. Update `.bodhi/state.json` to reflect the new module structure (`currentPhase`, `currentModule`, `currentModuleIndex`, `initialBloomLevel` for the new plan). Slim shape — no narrative fields.\n6. Append a new assessment block at the top of `.bodhi/assessments/latest.md`: `## Plan regeneration — <YYYY-MM-DD>`, containing the fresh assessment results and a note \"Plan regenerated; old plan archived at `plan/.archive-<YYYY-MM-DD>/`.\"\n7. Append the structured entry via `\"<BODHIKIT_PLUGIN_ROOT>/scripts/bodhi-state\" --project <project> record-assessment --trigger plan-regenerate --data '<entry JSON>'` per the `state-ops` KB write path (fallback: manual append preserving the file's shape).\n\nShow the new plan (read back `plan/README.md` + each `plan/phase-*.md`) and highlight differences from the archived old one.\n"
}SHA-256: e3de8ceb4742d56eae1d46cca02d13aa330c4f32ae7ef0bfc034f327b815a4c0