Update to BodhiKit
Snapshot Oct 29, 2026 · 18:37 UTC · version 1.25.1
Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Instructions updated for plan
Skill instructions — Now says: Run ONE command — `"<BODHIKIT_PLUGIN_ROOT>/scripts/bodhi-state" --project <project> syllabus` — and render it per `references/module-row.md` in the...
Observed in instructions or declared skills. Runtime behavior has not been tested.
Up to 10 plugins free · no card required.
All fields and original values.
Skill instructions
Sep 30, 2026 · 23:15 UTC
Read `.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. Present a clear summary: ### Overall Progress: [N]% complete ### C...
Oct 29, 2026 · 18:37 UTC
Run ONE command — `"<BODHIKIT_PLUGIN_ROOT>/scripts/bodhi-state" --project <project> syllabus` — and render it per `references/module-row.md` in the `progress` skill directory (`<BODHIKIT_PLUGIN_ROOT>/skills/progress/references/module-row...
Compare saved observations
Download comparison JSONSKILL.md text changes
− removed · + added
--- before +++ after @@ -28,32 +28,29 @@ ## Mode: View (Default) -Read `.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. +Run ONE command — `"<BODHIKIT_PLUGIN_ROOT>/scripts/bodhi-state" --project <project> syllabus` — and render it per `references/module-row.md` in the `progress` skill directory (`<BODHIKIT_PLUGIN_ROOT>/skills/progress/references/module-row.md`): the plan's modules in order, each with the script's `status`, its evidence row and its next review. This is the view learners asked for — the syllabus, where they are in it, and how the finished parts went — and the same rows `progress` skill renders, so the two never disagree. Do not read the phase files to build the table; read them only for the Spiral Revisits section below. Read `.bodhi/progress.md`'s live entry for one line of narrative context, nothing more. -Present a clear summary: +**Fallback:** if `bodhi-state` is unavailable, read `.bodhi/plan/README.md`, the `### Module` headings of every `.bodhi/plan/phase-*.md`, and `.bodhi/state.json`'s `currentModule`, and render the table with status from plan order and `—` in every evidence column. + +Present: ``` ## Learning Plan: [Project Name] -### Overall Progress: [N]% complete - -### Completed -- [Module names with checkmarks, Bloom's level achieved] - -### Current -- **[Current module]** — [status, what is next] +**Where you are:** Module [position.index] of [position.of] — [position.module] (Phase [position.phase]) · [overallCompletion]% complete -### Upcoming -- [Module names with target Bloom's levels] +| # | Module | Status | Where you are | Mastered | Next review | +|---|--------|--------|---------------|----------|-------------| +| [id] | [name] | [Done / ◀ Current / Upcoming / Skipped] | [tier — outcome, per the reference] | [N]/[M] | [date] | +[… one row per `modules[]` entry, then any `unplanned[]` rows as `Not in plan`] ### Spiral Revisits -- [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.] - -### Spaced Review Schedule -- [N] concepts due for review this week +- [Concepts from earlier phases that reappear in later phases at a higher target level — surface them from the per-phase plan files. Each line: "<concept>: phase {N} (<outcome clause reached>) → phase {M} (<outcome clause targeted>)", the clauses from the `blooms-taxonomy` KB *Learner-Facing Rendering* table — the plan file stores the number, the learner reads what they will be able to do. This is the constructivism KB's spiral-curriculum mechanic made visible.] ``` -**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. +When `position` is `null`, say so in one line ("The plan does not name your current module — `plan` skill with request context `adjust` can set it") and render the table anyway. When `untracked` names a module that is `done`, note it once: nothing was recorded for it, so its row shows `—`. Surface any `warnings` in one line each. + +**Spiral Revisits source.** Read only the `## Spiral Revisits` section of 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. If the learner is ahead of schedule: "You are moving with good momentum." If the learner is on track: "Steady progress. The path is clear." @@ -102,7 +99,7 @@ If yes: 1. 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. -2. 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). +2. 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* concepts the next module builds on, from this module or any earlier one, or `none` when it opens a new strand (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). 3. 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. 4. 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. 5. Update `.bodhi/state.json` to reflect the new module structure (`currentPhase`, `currentModule`, `currentModuleIndex`, `initialBloomLevel` for the new plan). Slim shape — no narrative fields.
Full technical diff · 1 changed fields
changed /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""---\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\nRun ONE command — `\"<BODHIKIT_PLUGIN_ROOT>/scripts/bodhi-state\" --project <project> syllabus` — and render it per `references/module-row.md` in the `progress` skill directory (`<BODHIKIT_PLUGIN_ROOT>/skills/progress/references/module-row.md`): the plan's modules in order, each with the script's `status`, its evidence row and its next review. This is the view learners asked for — the syllabus, where they are in it, and how the finished parts went — and the same rows `progress` skill renders, so the two never disagree. Do not read the phase files to build the table; read them only for the Spiral Revisits section below. Read `.bodhi/progress.md`'s live entry for one line of narrative context, nothing more.\n\n**Fallback:** if `bodhi-state` is unavailable, read `.bodhi/plan/README.md`, the `### Module` headings of every `.bodhi/plan/phase-*.md`, and `.bodhi/state.json`'s `currentModule`, and render the table with status from plan order and `—` in every evidence column.\n\nPresent:\n\n```\n## Learning Plan: [Project Name]\n\n**Where you are:** Module [position.index] of [position.of] — [position.module] (Phase [position.phase]) · [overallCompletion]% complete\n\n| # | Module | Status | Where you are | Mastered | Next review |\n|---|--------|--------|---------------|----------|-------------|\n| [id] | [name] | [Done / ◀ Current / Upcoming / Skipped] | [tier — outcome, per the reference] | [N]/[M] | [date] |\n[… one row per `modules[]` entry, then any `unplanned[]` rows as `Not in plan`]\n\n### Spiral Revisits\n- [Concepts from earlier phases that reappear in later phases at a higher target level — surface them from the per-phase plan files. Each line: \"<concept>: phase {N} (<outcome clause reached>) → phase {M} (<outcome clause targeted>)\", the clauses from the `blooms-taxonomy` KB *Learner-Facing Rendering* table — the plan file stores the number, the learner reads what they will be able to do. This is the constructivism KB's spiral-curriculum mechanic made visible.]\n```\n\nWhen `position` is `null`, say so in one line (\"The plan does not name your current module — `plan` skill with request context `adjust` can set it\") and render the table anyway. When `untracked` names a module that is `done`, note it once: nothing was recorded for it, so its row shows `—`. Surface any `warnings` in one line each.\n\n**Spiral Revisits source.** Read only the `## Spiral Revisits` section of 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* concepts the next module builds on, from this module or any earlier one, or `none` when it opens a new strand (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"Full snapshot data
{
"description": "View, adjust, or regenerate your learning plan",
"included_files": [],
"name": "plan",
"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\nRun ONE command — `\"<BODHIKIT_PLUGIN_ROOT>/scripts/bodhi-state\" --project <project> syllabus` — and render it per `references/module-row.md` in the `progress` skill directory (`<BODHIKIT_PLUGIN_ROOT>/skills/progress/references/module-row.md`): the plan's modules in order, each with the script's `status`, its evidence row and its next review. This is the view learners asked for — the syllabus, where they are in it, and how the finished parts went — and the same rows `progress` skill renders, so the two never disagree. Do not read the phase files to build the table; read them only for the Spiral Revisits section below. Read `.bodhi/progress.md`'s live entry for one line of narrative context, nothing more.\n\n**Fallback:** if `bodhi-state` is unavailable, read `.bodhi/plan/README.md`, the `### Module` headings of every `.bodhi/plan/phase-*.md`, and `.bodhi/state.json`'s `currentModule`, and render the table with status from plan order and `—` in every evidence column.\n\nPresent:\n\n```\n## Learning Plan: [Project Name]\n\n**Where you are:** Module [position.index] of [position.of] — [position.module] (Phase [position.phase]) · [overallCompletion]% complete\n\n| # | Module | Status | Where you are | Mastered | Next review |\n|---|--------|--------|---------------|----------|-------------|\n| [id] | [name] | [Done / ◀ Current / Upcoming / Skipped] | [tier — outcome, per the reference] | [N]/[M] | [date] |\n[… one row per `modules[]` entry, then any `unplanned[]` rows as `Not in plan`]\n\n### Spiral Revisits\n- [Concepts from earlier phases that reappear in later phases at a higher target level — surface them from the per-phase plan files. Each line: \"<concept>: phase {N} (<outcome clause reached>) → phase {M} (<outcome clause targeted>)\", the clauses from the `blooms-taxonomy` KB *Learner-Facing Rendering* table — the plan file stores the number, the learner reads what they will be able to do. This is the constructivism KB's spiral-curriculum mechanic made visible.]\n```\n\nWhen `position` is `null`, say so in one line (\"The plan does not name your current module — `plan` skill with request context `adjust` can set it\") and render the table anyway. When `untracked` names a module that is `done`, note it once: nothing was recorded for it, so its row shows `—`. Surface any `warnings` in one line each.\n\n**Spiral Revisits source.** Read only the `## Spiral Revisits` section of 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* concepts the next module builds on, from this module or any earlier one, or `none` when it opens a new strand (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 of public snapshot: af844574d87bee130bc375be2416aa89aab61b4f1fcc956fbd6e5a474032fd89