Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions plugins/i18n-curriculum/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "i18n-curriculum",
"version": "1.0.0",
"description": "Multi-language i18n Curriculum pipeline — Carmen (researcher/planner), Marcos (task creator), Curriculum (orchestrator). Works across all CEFR levels A1–C2 for any target language.",
"author": {
"name": "freeCodeCamp"
},
"keywords": ["i18n", "curriculum", "CEFR", "multilingual", "language"],
"hooks": "./hooks/hooks.json"
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
# Spanish Curriculum Plugin
# i18n Curriculum Plugin

A multi-agent pipeline for building the Professional Spanish course across CEFR levels A1–C2.
A multi-agent pipeline for building language curriculum content across CEFR levels A1–C2.
Works with any target language — Spanish, Portuguese, French, German, and beyond.

> **Note:** Carmen and Marcos are internal codenames for the researcher/planner and task creator agents. The names are not language-specific.

---

## What's inside

| Agent | Command | Role |
| --------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Dra. Carmen Vidal** | `/carmen` | Researcher & planner — reads the Google Sheets planning spreadsheet, maps PCIC concepts, writes detailed task sequences with `—carmen` signature |
| **Marcos Ibáñez** | `/marcos` | Task creator — reads Carmen's plan from Google Sheets and writes `.md` task files directly into a cloned Git repo on a feature branch |
| **Carmen** | `/carmen` | Researcher & planner — reads the Google Sheets planning spreadsheet, maps language framework concepts, writes detailed task sequences with `—carmen` signature |
| **Marcos** | `/marcos` | Task creator — reads Carmen's plan from Google Sheets and writes `.md` task files directly into a cloned Git repo on a feature branch |
| **Curriculum** | `/curriculum` | Orchestrator — runs Carmen → Marcos in sequence with a review checkpoint in between |

Plus a **task validation hook** that automatically checks every `.md` file Marcos writes for structural correctness.
Expand All @@ -25,15 +28,17 @@ High-level summary:
1. Admin creates a Google Cloud service account and shares the credentials JSON with the team
2. Each team member stores the JSON as the `GOOGLE_SERVICE_ACCOUNT_JSON` environment variable
3. Each team member clones the curriculum Git repo
4. Optionally: each team member adds their GitHub token to `.mcp.json` for PR creation
4. Each team member installs and authenticates the GitHub CLI (`gh auth login`) for PR creation
5. Each team member has the official language framework ready for their target language
(URL, local file, or spreadsheet tab) — Carmen asks for this at the start of each session

---

## Installation

Extract the plugin zip, then open the Claude desktop app:

- **Mac/Linux**: Settings → Plugins → Install from folder → select `spanish-curriculum/`
- **Mac/Linux**: Settings → Plugins → Install from folder → select `i18n-curriculum/`
- **Windows**: Same path using the Windows folder picker

All three slash commands appear immediately after installation.
Expand Down Expand Up @@ -66,7 +71,7 @@ Sheet: https://docs.google.com/spreadsheets/d/SHEET_ID/edit

```
/marcos — create tasks for "Describing a Company" chapter, module 2
Repo: /Users/yourname/projects/spanish-curriculum-content
Repo: /Users/yourname/projects/your-curriculum-repo
Sheet: https://docs.google.com/spreadsheets/d/SHEET_ID/edit
```

Expand Down Expand Up @@ -124,9 +129,9 @@ Warnings only — the file is still created, but flagged for review.

---

## GitHub MCP (optional)
## GitHub CLI — PR creation

With the GitHub MCP configured (see `setup/credentials-setup.md`), Marcos can open draft PRs directly from a session after writing task files. Carmen can also check which modules are merged vs in review, tying back to the "PR Links/notes" column in the Chapter Status sheet.
After Marcos finishes creating task files, he will provide a ready-to-run `gh pr create` command. Run it in your terminal to open a draft PR. No token or plugin configuration is needed — just the GitHub CLI installed and authenticated (`gh auth login`).

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ One person on the team creates the service account and shares the credentials wi

1. Go to [console.cloud.google.com](https://console.cloud.google.com)
2. Click the project dropdown at the top → **New Project**
3. Name it `spanish-curriculum` → **Create**
3. Name it `i18n-curriculum` → **Create**

### Step 2 — Enable the Google Sheets API

Expand Down Expand Up @@ -112,46 +112,57 @@ Marcos writes task files directly into a cloned Git repository. Each team member
### Step 1 — Clone the curriculum repo

```bash
git clone https://github.com/YOUR_ORG/spanish-curriculum-content.git
cd spanish-curriculum-content
git clone https://github.com/YOUR_ORG/YOUR_CURRICULUM_REPO.git
cd YOUR_CURRICULUM_REPO
```

### Step 2 — Set up the GitHub MCP (optional, for PR creation from sessions)

If you want Marcos to be able to open GitHub PRs directly from a session:

1. Go to [github.com/settings/tokens](https://github.com/settings/tokens)
2. **Generate new token (classic)**
3. Name: `spanish-curriculum-plugin`
4. Scopes: check `repo` (full control)
5. Copy the token

Open the plugin's `.mcp.json` file and replace `REPLACE_WITH_YOUR_GITHUB_TOKEN`:

```json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_yourTokenHere"
}
}
}
}
### Step 2 — Set up the GitHub CLI (for PR creation)

Marcos instructs you to open PRs using the GitHub CLI (`gh`). Make sure it is
installed and authenticated before your first session:

```bash
# Install (if not already installed)
# Mac: brew install gh
# Linux: https://github.com/cli/cli/blob/trunk/docs/install_linux.md

# Authenticate
gh auth login
```

Restart the Claude desktop app to activate.
Marcos will provide the exact `gh pr create` command at the end of each session.
You run it yourself — no token or plugin configuration is required.

---

## Part 4 — Language framework (each team member, before first session)

Carmen needs access to the official language framework for the target language
being taught. This is used to identify and rank teachable concepts at each CEFR level.

**You do not need to configure this in advance.** Carmen will ask for it at the
start of every session. Have one of the following ready:

- **A URL** to the official online framework document
(e.g., PCIC for Spanish, QCER for Portuguese, CECRL for French,
Goethe-Institut Curriculum for German)
- **A local file** you have prepared with the framework inventory for your target language
- **A spreadsheet tab name** if your planning spreadsheet already has the framework
concept inventory loaded (common for teams that have been using the plugin for a while)

Carmen will ask:
> _"What official language framework should I use? You can give me a URL, a local
> file, or point me to a tab in the spreadsheet."_

---

## Quick reference — what each agent needs

| Agent | Needs | Where |
| ------ | ------------------------------------- | ----------------------------- |
| Carmen | `GOOGLE_SERVICE_ACCOUNT_JSON` env var | Set in shell profile |
| Marcos | `GOOGLE_SERVICE_ACCOUNT_JSON` env var | Set in shell profile |
| Marcos | Cloned repo path | Told by user each session |
| Marcos | Feature branch | User creates; Marcos checks |
| Both | Sheet URL | Provided by user each session |
| Agent | Needs | Where |
| ------ | ------------------------------------- | ---------------------------------- |
| Carmen | `GOOGLE_SERVICE_ACCOUNT_JSON` env var | Set in shell profile |
| Carmen | Language framework source | Provided by user each session |
| Marcos | `GOOGLE_SERVICE_ACCOUNT_JSON` env var | Set in shell profile |
| Marcos | Cloned repo path | Told by user each session |
| Marcos | Feature branch | User creates; Marcos checks |
| Both | Sheet URL | Provided by user each session |
Loading
Loading