Skip to content

Latest commit

 

History

History
88 lines (61 loc) · 3.27 KB

File metadata and controls

88 lines (61 loc) · 3.27 KB

Contributing to Ascent

Thanks for your interest in contributing. Ascent is an open-source AI literacy curriculum for product managers, engineering managers, and individual contributors — contributions that improve the content or the platform are equally welcome.

What you can contribute

  • New scenarios — realistic AI decision situations for PMs, EMs, or ICs
  • New modules — focused reading on AI concepts, LLM mechanics, adoption practices, or team dynamics
  • New missions — applied exercises that users complete on their actual work
  • Bug fixes — any issue in the platform code
  • Platform improvements — UI, performance, accessibility, developer experience
  • Translations — curriculum content in languages other than English

The highest-value contributions are new content. Good scenarios and missions are hard to write — if you have hands-on experience with AI adoption in product or engineering roles, that's exactly what this curriculum needs.


Getting started

git clone https://github.com/divarun/ascent.git
cd ascent
npm install
cp .env .env.local    # set DATABASE_URL and NEXTAUTH_SECRET
npm run db:setup
npm run dev

Full setup reference: detailed.md


Adding content

Content lives in src/data/ as TypeScript files. Each piece of content is a single file — add the file, register it in the index (modules.ts, scenarios.ts, or missions.ts), then re-seed.

Scenario checklist

Good scenarios:

  • Present a realistic, specific situation — not a vague hypothetical
  • Have a clear time pressure or decision point
  • Address at least one real pattern from PM/EM/IC practice
  • Include a rubric that defines what a strong response covers
  • Include staticFeedback that is genuinely useful, not a placeholder
  • Are tagged to the right roles and difficulty

Module checklist

Good modules:

  • Cover a specific concept, not a broad topic
  • Are readable in under 15 minutes
  • Include 1–3 quiz questions that test understanding, not recall
  • Name concrete implications for the target role(s)

Mission checklist

Good missions:

  • Ask the user to do a real thing on their actual work — not simulate it
  • Include a clear checklist of what a complete submission covers
  • Include staticFeedback that explains what strong submissions address

Code changes

  • Match the existing code style — TypeScript, no any unless unavoidable, no comments unless the WHY is non-obvious
  • No new dependencies without discussion — open an issue first if you're unsure
  • API routes: validate inputs with Zod, use getServerSession for auth, return NextResponse.json({ error }) on failure
  • Never import PrismaClient directly — always use src/lib/db.ts
  • Run npm run lint and npm run build before opening a PR

Reporting bugs

Open an issue on GitHub with:

  • What you did
  • What you expected
  • What happened instead
  • Your environment (OS, Node version, Docker or local)

Submitting

Open a pull request against main. Include a short description of what you changed and why. For new content, include the scenario/module/mission title and target roles in the PR description.

All contributors are welcome regardless of experience level — if you're unsure whether something is a good fit, open an issue first.