← Abilitya AssistantCONTENT HISTORY

Update to Abilitya Assistant

Snapshot Oct 2, 2026 · 00:28 UTC · version 1.0.0

Collection source: downloaded plugin package.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "education-module-creation",
  "description": "Bundled Education capability of Abilitya Assistant. Create, edit, structure, and populate Abilitya education modules, folders, and rich-HTML lessons; convert notes, PDFs, documents, lecture videos, YouTube links, and other supplied learning material into courses. Use within the Abilitya Assistant experience whenever a user asks for Education, learning or training modules, courses, lessons, module folders, lesson HTML, or conversion of source material into structured learning content.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 271
    },
    {
      "relative_path": "references/education-api.md",
      "size_in_bytes": 5942
    },
    {
      "relative_path": "references/long-form-video.md",
      "size_in_bytes": 6145
    },
    {
      "relative_path": "references/material-conversion.md",
      "size_in_bytes": 7102
    },
    {
      "relative_path": "references/rich-lesson-html.md",
      "size_in_bytes": 7227
    },
    {
      "relative_path": "references/source-coverage.md",
      "size_in_bytes": 4410
    }
  ],
  "skill_md_contents": "---\nname: education-module-creation\ndescription: Bundled Education capability of Abilitya Assistant. Create, edit, structure, and populate Abilitya education modules, folders, and rich-HTML lessons; convert notes, PDFs, documents, lecture videos, YouTube links, and other supplied learning material into courses. Use within the Abilitya Assistant experience whenever a user asks for Education, learning or training modules, courses, lessons, module folders, lesson HTML, or conversion of source material into structured learning content.\n---\n\n# Abilitya Education Capability\n\nCreate and edit Education modules, folders, and lessons on Abilitya. Convert supplied source material faithfully into a useful learning sequence. Keep the user-facing conversation under Abilitya Assistant and continue applying the parent skill's authentication, upload, privacy, confirmation, cached-read, and completion rules.\n\n## Load the needed references\n\n- Read [education-api.md](references/education-api.md) before any module, folder, or lesson API operation.\n- Read [rich-lesson-html.md](references/rich-lesson-html.md) before composing or editing lesson HTML.\n- Read [material-conversion.md](references/material-conversion.md) when converting notes, PDFs, documents, recordings, videos, or links into Education.\n- Read [source-coverage.md](references/source-coverage.md) before converting any supplied source material into modules or lessons.\n- Read [long-form-video.md](references/long-form-video.md) whenever a supplied video or video URL is source material for a module.\n- Read the parent [uploads reference](../abilitya-assistant/references/uploads.md) before uploading a cover, lesson image, or lesson video.\n- Read the parent [authentication reference](../abilitya-assistant/references/authentication-and-network-context.md) before login.\n\n## Treat the live catalog as authoritative\n\n- Search Executor by intent, inspect every selected tool with `tools.describe.tool(...)`, and build requests only from the live `inputTypeScript`.\n- Never guess a tool path or request field from this skill. Use the API reference for discovery terms, sequencing, and invariants only.\n- Branch on every `{ ok: false }` result. Treat successful write responses as authoritative because immediate GET responses can be cached.\n- Operate only on Abilitya.\n\n## Choose the learning structure\n\nBefore converting multi-topic material, determine which structure the user wants:\n\n1. One Education module containing topic folders and lessons; or\n2. Multiple topic-focused Education modules, each containing its own folders and lessons.\n\nIf the user has not made this choice clear, ask one short clarifying question before creating anything. Give a concrete example based on their material. Do not silently choose between these models.\n\nUse folders only when they improve navigation. Folders are root-level and cannot contain folders. Lessons may be placed at the module root or inside one folder.\n\n## Creation workflow\n\n1. Resolve the target network and authenticate the manager.\n2. Inspect all supplied material and create a source-coverage map before writing lessons. Identify its hierarchy, substantive claims, examples, definitions, chronology, evidence, source links, existing media, natural lesson boundaries, and gaps without inventing unsupported claims. A conversion request means a comprehensive learning companion by default, not a compact gist.\n   For recordings and video URLs, successfully extracting a transcript is only the intake step: review the complete timestamped source, map its substantive sections, and audit the proposed lesson bodies against that map before creating any Education item. Do not treat a transcript excerpt, search-result snippets, or a short generated outline as sufficient source review.\n3. Resolve the module structure choice when it is not already explicit.\n4. Prepare a concise proposed outline when conversion requires meaningful editorial restructuring. Keep it proportional to the request; do not add a redundant confirmation when the user's explicit create instruction already authorizes the outlined creation.\n5. Prepare a cover for every module. Use a user-supplied module cover when provided. Otherwise search for an appropriate, attributable image relevant to that module, prefer official or authoritative sources, upload it, and use the returned image upload id. Do not treat an image merely embedded in source notes as the requested module cover unless the user identifies it as such or it is unmistakably cover artwork.\n6. Preserve relevant images already present in the source material: extract or obtain the actual image bytes or authoritative source URL, upload each image, and place its returned media URL in the corresponding lesson HTML. When the supplied source is video and the user asks for visuals from it, use actual, topic-relevant frames, slides, maps, diagrams, or other visual material from the video—not its thumbnail. Plan the visual-to-lesson mapping before writing, use distinct source visuals by default, and reuse one only when that exact visual genuinely supports more than one lesson. If the source has no images, do not search for, generate, or add lesson images unless the user explicitly asks. This restriction applies to lesson imagery, not the required module cover.\n7. Use only videos the user supplies or explicitly asks to locate. Never search for, generate, or add a lesson video on your own. For a supplied video source, install and use the `summarize` CLI as described in the long-form-video reference to obtain a transcript and understand the material. Upload local video files before composing HTML. Use a supplied supported video URL directly.\n8. Compose semantic lesson HTML using the supported blocks and exact recipes in the rich-HTML reference. Allow no more than one video total per lesson. Put it at or near the top as the primary content when available.\n   Do not repeat the lesson title as an H1 or opening heading in the lesson body. The lesson title is already rendered on the lesson details page; begin the body with introductory or substantive content.\n   A default conversion must create substantial teaching material: each lesson should develop its mapped claims, reasoning, examples, and relevant evidence in enough detail for a learner to understand the topic without treating the lesson as a mere video description. Split a dense topic into multiple lessons rather than compressing it into a few short paragraphs.\n9. Validate every rich card or inline-card URL through URL extraction before saving it. Use a raw text link when a preview is unnecessary. Do not create a rich preview whose extraction lacks meaningful metadata.\n10. Create the module container first, then its root folders, then lessons with the returned folder ids. Create in intended display order when possible so append behavior produces the correct tree.\n11. Create modules, folders, and lessons as drafts by default. Set `isPublished: true` only when the user explicitly asks to publish. When publishing a completed module, first use the manager-only bulk **Publish all items** operation, then PATCH the module with `isPublished: true`; verify both results. Publishing a module does not implicitly authorize publishing its items, and publishing items does not implicitly authorize publishing the module.\n12. Use reorder endpoints only when needed. Read the appropriate fresh ETag immediately before reordering and handle revision conflicts as described in the API reference.\n13. Verify each write from its returned DTO: cover, title, type, parent relationship, draft/publication state, sanitized body HTML, and assigned order. Check that the sanitizer retained every required rich-media marker before claiming completion. Before completion, also confirm that every planned source section and source visual is represented once in the intended lesson, or report the concrete omission.\n\n## Editing workflow\n\n- Read the manageable module catalog and module tree before choosing targets. Read item detail when lesson body content is needed.\n- Patch only fields the user requested or fields necessarily affected by the requested structural change.\n- Never change an item's type. Move a lesson with `parentId`; do not attempt to nest a folder.\n- Preserve valid existing rich HTML and media unless the user asks to replace or remove them.\n- Ask for confirmation before deletion or a separate publication action when the parent confirmation rules require it.\n\n## Completion\n\nReport the module titles, folder/lesson structure, draft or published state, and important carried-over media in plain language. Mention any source material that could not be represented. Do not expose tokens, upload ids, internal tool paths, ETags, signed URLs, or raw API responses.\n"
}

SHA-256: af12e4f120303625ecf04a3f525ad739ca06dfe84aef348bc467aca64dda6804