Backend Learning Project
Overview
Use this skill to create a compact, practical backend API project for learning a language and framework, then turn the project into a code-reading guide. Keep the project small enough to finish in one session but realistic enough to teach routing, validation, application layers, persistence, tests, Docker, and local operation.
How Users Invoke It
Use this skill when a user wants Codex to generate a backend learning project and explain the resulting code. The user can name the skill directly or describe the desired stack and learning goal.
Good example requests:
Use $backend-learning-project to create a Go/Gin API project for learning backend basics.
backend-learning-project で FastAPI と SQLite の小さい学習用 API を作って、コードの読み方も説明して。
Express で CRUD API を作りながらバックエンド構成を学べる教材プロジェクトを作って。
Tell the user they may specify:
- Language and framework, such as Go/Gin, Python/FastAPI, or Node/Express.
- App theme, such as bookmarks, tasks, notes, recipes, or expenses.
- Persistence, such as in-memory storage, SQLite, PostgreSQL, or another simple local option.
- Learning focus, such as routing, validation, service layers, database access, tests, Docker, or code-reading explanations.
Expected output is a runnable small API project plus a beginner-friendly guide under docs/ that explains the actual generated code. If the user omits details, choose practical beginner defaults and state them briefly.
Workflow
- Identify the target language, framework, persistence option, and app theme from the user request. If any are missing, choose conservative defaults and state them briefly before implementation.
- Read the relevant profile files:
- Language profile:
references/language-profiles/<language>.md when it exists.
- Framework profile:
references/framework-profiles/<framework>.md when it exists.
- If no profile exists, proceed with general backend conventions and create an opportunity to add a profile later.
- Use
references/project-generation.md to design and implement the project.
- Run the project checks that fit the stack, such as unit tests, formatting, linting, or a smoke test.
- Use
references/code-guide-generation.md to create a beginner-oriented guide under docs/, such as docs/gin-guide.md or docs/fastapi-guide.md.
- Finish with the created files, verification results, and the local run command.
Project Shape
Prefer a CRUD API around one clear domain object, such as reading items, bookmarks, tasks, notes, recipes, or expenses. Include one behavior that is more than plain CRUD, such as fallback title generation, status transitions, filtering, validation, or a small external HTTP lookup.
Use a layered structure when idiomatic for the framework:
HTTP/router/handler
-> service/use case
-> repository/data access
-> database/storage
Keep the code intentionally readable. Avoid clever abstractions, large generators, and broad scaffolds that hide the concepts the user is trying to learn.
Guide Style
Generate the learning guide from the actual code that exists in the project. Use this teaching pattern repeatedly:
- Name the target file.
- Show a short code excerpt.
- Explain language syntax first when the user is likely to be new to the language.
- Explain the framework concept.
- Explain the role this code plays in the request flow.
For Go, give extra attention to basic syntax before explaining Gin behavior. For other languages, follow the same principle using the relevant language profile.
Reference Files
references/project-generation.md: implementation checklist for new projects.
references/code-guide-generation.md: documentation checklist and guide structure.
references/language-profiles/go.md: Go syntax topics to explain in generated guides.
references/framework-profiles/gin.md: Gin concepts and project patterns to include.
references/framework-profiles/fastapi.md: FastAPI concepts, boundaries, and official docs references to include.
1---2name: backend-learning-project3description: Create small backend application projects for learning any language and web framework, then generate beginner-friendly code-reading guides from the generated project. Use when the user wants to learn a backend language/framework by building a new practical API project, wants a project like a FastAPI/Gin/Express learning repo, wants code explained from basic syntax through framework concepts, or wants reusable Codex guidance for creating language-specific learning projects.4---56# Backend Learning Project78## Overview910Use this skill to create a compact, practical backend API project for learning a language and framework, then turn the project into a code-reading guide. Keep the project small enough to finish in one session but realistic enough to teach routing, validation, application layers, persistence, tests, Docker, and local operation.1112## How Users Invoke It1314Use this skill when a user wants Codex to generate a backend learning project and explain the resulting code. The user can name the skill directly or describe the desired stack and learning goal.1516Good example requests:1718- `Use $backend-learning-project to create a Go/Gin API project for learning backend basics.`19- `backend-learning-project で FastAPI と SQLite の小さい学習用 API を作って、コードの読み方も説明して。`20- `Express で CRUD API を作りながらバックエンド構成を学べる教材プロジェクトを作って。`2122Tell the user they may specify:2324- Language and framework, such as Go/Gin, Python/FastAPI, or Node/Express.25- App theme, such as bookmarks, tasks, notes, recipes, or expenses.26- Persistence, such as in-memory storage, SQLite, PostgreSQL, or another simple local option.27- Learning focus, such as routing, validation, service layers, database access, tests, Docker, or code-reading explanations.2829Expected output is a runnable small API project plus a beginner-friendly guide under `docs/` that explains the actual generated code. If the user omits details, choose practical beginner defaults and state them briefly.3031## Workflow32331. Identify the target language, framework, persistence option, and app theme from the user request. If any are missing, choose conservative defaults and state them briefly before implementation.342. Read the relevant profile files:35 - Language profile: `references/language-profiles/<language>.md` when it exists.36 - Framework profile: `references/framework-profiles/<framework>.md` when it exists.37 - If no profile exists, proceed with general backend conventions and create an opportunity to add a profile later.383. Use `references/project-generation.md` to design and implement the project.394. Run the project checks that fit the stack, such as unit tests, formatting, linting, or a smoke test.405. Use `references/code-guide-generation.md` to create a beginner-oriented guide under `docs/`, such as `docs/gin-guide.md` or `docs/fastapi-guide.md`.416. Finish with the created files, verification results, and the local run command.4243## Project Shape4445Prefer a CRUD API around one clear domain object, such as reading items, bookmarks, tasks, notes, recipes, or expenses. Include one behavior that is more than plain CRUD, such as fallback title generation, status transitions, filtering, validation, or a small external HTTP lookup.4647Use a layered structure when idiomatic for the framework:4849```text50HTTP/router/handler51 -> service/use case52 -> repository/data access53 -> database/storage54```5556Keep the code intentionally readable. Avoid clever abstractions, large generators, and broad scaffolds that hide the concepts the user is trying to learn.5758## Guide Style5960Generate the learning guide from the actual code that exists in the project. Use this teaching pattern repeatedly:61621. Name the target file.632. Show a short code excerpt.643. Explain language syntax first when the user is likely to be new to the language.654. Explain the framework concept.665. Explain the role this code plays in the request flow.6768For Go, give extra attention to basic syntax before explaining Gin behavior. For other languages, follow the same principle using the relevant language profile.6970## Reference Files7172- `references/project-generation.md`: implementation checklist for new projects.73- `references/code-guide-generation.md`: documentation checklist and guide structure.74- `references/language-profiles/go.md`: Go syntax topics to explain in generated guides.75- `references/framework-profiles/gin.md`: Gin concepts and project patterns to include.76- `references/framework-profiles/fastapi.md`: FastAPI concepts, boundaries, and official docs references to include.