# New Assignment

> Create a new programming homework assignment for Mergington High School students. Use this skill whenever the user wants to create, add, scaffold, or generate a new assignment, exercise, or homework — even if they don't use the word "assignment" explicitly.

- Skill: `senih25/new-assignment` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add senih25/new-assignment`
- Raw SKILL.md: https://api.skillmd.com/api/skills/senih25/new-assignment/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: senih25 (https://skillmd.com/u/senih25)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/senih25/new-assignment

---


# Create New Programming Assignment

Assignments live in `assignments/<id>/`, and the website reads `config.json` to display them. Follow these steps to create both.

## Step 1: Gather Requirements

If the user hasn't specified, ask what programming concept the assignment should cover.

> 📖 Read [references/assignment-guide.md](references/assignment-guide.md) for guidance on difficulty, scope, and when to include starter code.

## Step 2: Create the Assignment

1. Create `assignments/<kebab-case-id>/README.md` following the [assignment template](../../../templates/assignment-template.md).
2. Optionally add starter code or data files to the same directory.

## Step 3: Register with the Website

Use the bundled scripts — do not edit `config.json` manually when the scripts are available.

Register the assignment:

```bash
node .github/skills/new-assignment/scripts/update-config.js <id> "<title>" "<description>"
```

Register each attachment:

```bash
node .github/skills/new-assignment/scripts/add-attachment.js <id> "<display-name>" <filename> <type>
```

Common types: `python`, `csv`, `json`, `txt`, `html`.

## Step 4: Verify

Confirm `config.json` contains the new assignment and all referenced files exist on disk.

