{"id":74169,"plugin_id":"plugin_asdk_app_6aced5c309688191abba864964c7b839","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-31T06:10:42.546Z","digest":"6092ab976ef6b551486c7c7c4e469ea19eeae74fea1d688ac6c7998c375597dd","against":null,"payload":{"description":"Create a standard Contexta English practice project from selected materials or files, with an approved plan, default AI adaptation for interviews, and requested adaptation for other scenarios. Use for new interview, presentation/meeting, or work/study projects; additions to existing projects use save-material.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":329},{"relative_path":"assets/icon-large.png","size_in_bytes":14882},{"relative_path":"assets/icon-small.png","size_in_bytes":1111}],"name":"create-project","skill_md_contents":"---\nname: create-project\ndescription: Create a standard Contexta English practice project from selected materials or files, with an approved plan, default AI adaptation for interviews, and requested adaptation for other scenarios. Use for new interview, presentation/meeting, or work/study projects; additions to existing projects use save-material.\n---\n\n# Create a Contexta project\n\nKeep the reply focused on the learner’s result and next action. Do not show phrase, task, operation or request IDs, raw status fields, or tool/rendering diagnostics. Use titles and returned website links. Do not announce that a native widget was rendered or reopened; the widget already presents the result.\n\nNative Contexta UI is required when available: render the server-held preview and creation receipt as specified in the shared workflow. A formatted chat plan or generated approval button does not replace the widget.\n\nCreate an ordinary owned Contexta project through an approved server-held plan. Read and apply [the shared workflow](../../references/workflow.md) before replying or calling the service.\n\nPass `id_format=\"website\"` to project preview, creation, status, starter copying and widget calls; retain the exact returned website IDs and links.\n\n## Prepare a useful preview\n\nUse the learner's stated goal and selected source. Ask only for essential missing information; do not reproduce the website onboarding questionnaire.\n\nChoose the matching `preview_practice_plan` scenario:\n\n- `interview_preparation`: resume in `source_text`, vacancy in `supporting_source_text`. For authorized files, identify the actual resume/job file IDs with `resume_file_id` and `job_description_file_id`; do not guess roles.\n- `presentations_meetings`: the selected notes, slides or talking points, with the supplied audience and goal.\n- `work_study_materials`: articles, documents, research or study notes the learner wants to understand, discuss or answer.\n\nFor a new Interview project, use `preserve_source_text=false` by default: adapt the resume and vacancy into useful interview practice while retaining the original sources. Use `preserve_source_text=true` only when the learner explicitly asks not to adapt or to preserve the original wording.\n\nFor Presentations & Meetings and Work & Study, use `preserve_source_text=true` by default. Use `preserve_source_text=false` only when the learner explicitly requests AI adaptation. State the chosen mode in the plan preview. Explicit wording preferences override these scenario defaults; do not change the mode silently after approval. Supply `target_level` only when the learner chooses it; otherwise let the service use its supported account default. Supply `practice_intent` only when it follows from the learner's stated goal (`understand_remember`, `discuss_present`, or `write_answer`).\n\nSend only the selected text and/or actual host-authorized `files`, plus a stable idempotency key and the supplied goal/title. Never synthesize file URLs or replace a file with a chat summary presented as its original. The service decides source inventory, coverage, sizing and allowances; do not approximate the website wizard with independent formulas.\n\nExplain briefly that the selected material will be sent for a plan preview. An explicit request to create practice from that material provides transfer intent; unrelated attached content does not.\n\n## Approval and creation\n\nPoll `get_operation_status` at the returned interval within a bounded wait. At `plan_ready`, show the actual project title, level, source count, preservation/adaptation, ordered plan and any allowance consequences the response supplies. The preview is not an assessment or a created project.\n\nWhen `show_practice_widget` is available, explicitly render that server-held preview with `entry=\"project\"` and its `operation_id`. The widget displays the authoritative plan and an approval action; opening or polling it does not approve creation. For an explicitly requested new project interface before a preview exists, open `show_practice_widget(entry=\"project\")` for a short instruction to supply the goal and selected material in chat. The widget does not contain a second project editor. Keep the textual preview usable when a host does not render UI.\n\nAsk for approval of that returned plan. On clear approval call `create_practice_from_plan` with its `operation_id`; do not edit or resend the full plan. Reuse the same ID for uncertain retries. A material or goal change needs a fresh preview; an expired preview needs a new one too.\n\nWait for the actual `ready` response before promising usable practice and link to its exact owner-only URL. Pending or failed preparation remains pending or failed. Keep the existing operation for later continuation rather than making duplicate projects.\n\nAfter approval, render the receipt through `show_practice_widget(entry=\"project\", operation_id=...)` when available. It reads the same operation and owned project; the first session is usable only at `ready`. If failed or expired preparation already has a project, use its returned website link before proposing another project.\n\nFor adding material to an existing project, use the Add to Project skill (`save-material`) and its append-only approved planning flow. If the learner just says “save this article” without a destination, offer the choice of a new project or an existing project; do not silently create an Inbox. This skill creates a new project only; omit `project_id` and `pack_id` here. For explicit ready-made website starter requests, discover with `list_demo_practices` and copy the actually selected template using `create_demo_practice`; never guess a template or substitute a different level. Full listening, reading, writing and speaking sessions remain on the website.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}