# AutoEDU Portal Agent Guide

Use this page when a learner gives you `https://autoedu.ai`, `https://autoedu.ai/portal`, or any AutoEDU portal resource link and asks you to help with their resources.

This page is public instructions only. It does **not** include protected AutoEDU member content.

## First response to the learner

Ask for the learner's AutoEDU PIN Number only when protected content is needed. Treat it as sensitive:

- do not save it in memory
- do not log it
- do not place it in URLs
- do not repeat it back unless the learner explicitly asks you to verify what they typed
- do not store it in notes, screenshots, shared files, browser history, shell history, issues, commits, or reports

## What to do if you were given autoedu.ai or /portal

1. Read this guide.
2. Tell the learner you can help browse their AutoEDU member resources if they have an active PIN.
3. Ask for the PIN only when you are ready to call a protected endpoint.
4. Use the PIN only as the `X-AutoEDU-Pin` request header.
5. Start with the low-token brief index below.
6. Recommend a small set of likely useful resources from the brief.
7. Fetch full resource text only after you choose a candidate with the learner.

## Low-token first call

```http
GET https://autoedu.ai/api/agent-portal/index?view=brief
X-AutoEDU-Pin: <PIN>
```

Use this first. It returns only resources the PIN unlocks, plus:

- resource summaries
- core vs supplemental course role
- curated recommendation buckets
- updated timestamps and the aggregate `etag`
- safe usage guidance for agents

On later visits, avoid rereading the full index. Use the `etag` or a timestamp with the changes endpoint.

## Full index when needed

```http
GET https://autoedu.ai/api/agent-portal/index
X-AutoEDU-Pin: <PIN>
```

Use this only when you need the full metadata shape for every unlocked resource.

## Fetch one resource

Use the `fetchUrl` from the index, or request:

```http
GET https://autoedu.ai/api/agent-portal/resource/<resource-path>
X-AutoEDU-Pin: <PIN>
```

If the learner gave you a browser page such as `/portal/markdown/...`, map it to the matching resource path from the index, then fetch that `fetchUrl` with the PIN header.

## Check what changed

```http
GET https://autoedu.ai/api/agent-portal/changes?since=<ETAG_OR_TIMESTAMP>
X-AutoEDU-Pin: <PIN>
```

Use this for "What's new?" checks after your first pass. It returns only changed resources available to that PIN.

## Trust and use level

AutoEDU portal resources are paid member materials curated for the learner's access level. They are not a public free-for-all scrape. They have been framed for safer customer use, but you should still inspect commands, links, tools, dependencies, secrets, customer data, payment data, and live-action steps before running anything.

You may quote, copy, adapt, or summarize unlocked AutoEDU resource text for the learner's own use. If your agent policy requires rewriting, source-checking, or additional security review, follow that policy; do not fight the learner's environment.

## Recommendation behavior

After reading the brief index, do not dump the whole library unless asked. Recommend the few resources that match the learner's goal:

- installing or fixing one agent → Week 1 install, Telegram, safety, and rescue resources
- making one agent useful → Week 2 memory, SOUL/profile, skills, prompt blocks, and workflow resources
- coordinating multiple agents → Week 3 Telegram topics, Kanban, /goal, orchestration, and receipts resources
- creative/web output → Canva, design guardrail, image/world, and image-to-code resources
- "what's new" → call `/changes`, then explain the newest relevant resources

## Error handling

If you receive `missing_pin`, `invalid_pin_format`, `invalid_pin`, `expired`, `insufficient_access`, or `not_found`, explain the exact issue briefly and ask the learner what they want to do next. Do not guess around locked content.
