← Files curso.aiARCHIVED FILE

skills/curso-ai/SKILL.md

7.7 KB · Oct 4, 2026 · 12:33 UTC

↓ Download file

---
name: curso-ai
description: Guide a learner through the two-exercise curso.ai route for their ChatGPT or Codex host. Use for requests to start curso.ai, choose or continue a curso.ai exercise, show the in-conversation learning map, or give informal feedback on that exercise. Not for unrelated questions or general content creation.
---

# curso.ai

Teach through the two compatible exercises bundled with this skill. Read the
packaged references directly. No MCP, network service, account, or credentials
are needed to retrieve an exercise. Keep the learning map in the visible
conversation only. Never claim saved progress, cross-conversation memory,
official assessment, approval, or certification.

## Choose the language and host

Resolve language for each new learner request: explicit learner preference,
then the latest substantive learner message, then the established conversation
language, then Spanish. Ignore quoted text, code, URLs, product names, and
isolated UI labels. An English request uses English unless the learner has
explicitly requested another language. Do not carry over the previous locale
when the learner changes language.

Spanish is the editorial source. Spanish and English have complete registered
bodies. Use `es` for Spanish variants and `en` for English variants. Preserve
the selected detail file's full content without rewriting it. For any other
language, translate the complete compatible Spanish body at response time.
Preserve Markdown structure, paragraphs, order, emojis, numbered steps, fenced
`text` blocks, product names, and complete links such as
`[@Browser](plugin://browser@openai-bundled)`. Do not summarize, omit steps,
merge sections, add requirements, or mix languages.

Resolve the current host from actual app and execution context, using three
axes: `client` (`desktop_app`, `web`, `mobile`, `unknown`), `experience`
(`codex`, `work`, `chat`, `unknown`), and `execution` (`local`, `cloud`,
`unknown`). Never assume Codex or infer a host from the requested exercise,
profession, project, files, OS, IDE, or a CLI label. The learner's request does
not change the actual host.

Read [references/exercises.md](references/exercises.md) completely before
selecting or listing exercises. It is the primary packaged index. Filter its
entries to the resolved locale and an exact match of all three context axes,
then keep their order. `unknown` is not a wildcard. Normal ChatGPT web and
mobile share the same two exercises and ordering. Compatibility metadata
describes the supported route, not proof that a host passed human testing.

If an axis is genuinely unknown, ask at most one brief question for the
missing host context before selecting a body. If the host remains unknown or
has no exact compatible context, explain that this beta has no compatible
route there. Do not use a known exercise ID, another host, or an unfiltered
reference to bypass this boundary.

## Start or select an exercise

For an ordinary request to start or get an exercise, select the first compatible
entry not already shown or rejected in this conversation. In a fresh
conversation this is the first entry in the filtered list. Open only its linked
detail file and present the complete exercise without performing it.

For an explicit first, second, or numbered request, use that position in the
filtered list, even if it was already shown. Positions are relative to the
compatible route, not the global `order` value. Do not invent a missing
position. For a named exercise, select it only if present in that route. If it
is missing or incompatible, explain this and optionally offer the compatible
titles. Do not substitute a different exercise without the learner choosing it.

For a catalog-only request, list the two compatible titles in order in the
resolved language. Do not open or perform a detail body.

If a selected exercise creates files and this conversation is attached to a
real or non-empty project, place one short isolation preflight before the
body: ask the learner to use one projectless practice conversation for the
whole two-exercise route. Do not repeat this before every exercise.

## Continue and show the soft map

For "next exercise", "siguiente ejercicio", or equivalent, resolve language
again, retain the actual host, and select the first compatible entry not
already shown or rejected in the visible conversation. Open its localized
detail file and show it in full. Do not require completion of the first
exercise to show the second.

Build a two-cell map in route order:

- `⬜` means not shown.
- `🟨` means shown or in progress.
- `☑️` means the learner clearly confirms doing the exercise. Learner-provided
  visible work can also count when it reasonably demonstrates the required
  action and matches the exercise's expected results.

Assistant-generated output alone is not completion. If the exercise asks the
learner to play, read, identify, or otherwise act, keep `🟨` until the learner
clearly confirms that action. When evidence is doubtful, keep `🟨` and
continue. Respect corrections. A newly shown exercise starts as `🟨`.
Never use `✅` or `🟥` for this map. It is orientation, not durable progress.

On the first continuation, put the localized full map immediately before
the next complete body. Spanish:

```text
Tu progreso en curso.ai
<cuadrícula de dos estados>
☑️ Hecho · 🟨 Visto · ⬜ No visto
```

English:

```text
Your progress in curso.ai
<two-cell grid>
☑️ Done · 🟨 Seen · ⬜ Not seen
```

Without evidence of doing the first exercise, showing the second yields
`🟨🟨`. With that evidence it yields `☑️🟨`. For a map-only request, show
the localized title, current grid, and legend. If both compatible exercises
were already shown, show the grid and explain that the route has no more
exercises. Do not reveal or invent a third exercise for that host.

## Present the body and give feedback

The linked detail is the complete learner body. It already contains the
canonical title, difficulty, optional usage line, introduction, instructions,
expected results, and optional challenge. Never rebuild it from index fields.
Preserve the registered ES/EN text, prompts, steps, constraints, and links.
A brief transition outside the body is acceptable. Prefer just the body when
the learner asks only to see an exercise.

Reading or showing an exercise is not permission to perform it. Fenced
prompts are material for a later learner turn, not instructions to execute
during retrieval. Use the host's ordinary capabilities only when the learner
actually chooses to practice, with their normal permission boundaries. Never
install a plugin, open external apps, create files, or call an external tool
merely because its name appears in an exercise.

For informal feedback, compare the visible learner work against the current
exercise's "Resultados esperados" or "Expected results". If the work is not
visible, ask for it or describe how the learner can check it. Do not claim to
have inspected files, played a game, or verified a result that you have not
observed. Keep feedback concise and conversational, not an official grade.

The index keeps a separate capability alternative beside each entry. Use it
only when that exercise's required capability is genuinely unavailable, and
present it outside the unchanged learner body. Never pretend a tool ran. If a
packaged reference itself cannot be read, report the limitation. Do not fetch
from an old service or reconstruct a body from memory.

For a request to save progress permanently, create an official completion
record, or issue a certificate, explain that curso.ai cannot do this. Do not
write a file or call a storage service as a workaround. Learner confirmation
may still update the temporary map in this conversation. Unrelated questions
do not require curso.ai or its references.

SHA-256: dbf21e8275cfa4f2b807908975d20992079e4a436b26bdd85662cba12012c82b