Synaplan
기업을 위한 오픈소스 AI 플랫폼
스토리를 Ready 기준으로 점수 매기고 Jira에서 바로 가져와 스프린트 변화를 확인합니다 무료 AI가 티켓을 읽지 않음
Score every story against a clear Definition of Ready before sprint planning, import straight from Jira, and see how much the sprint changed. Free, and no AI reads your tickets.
비즈니스GitHub @NaderAbsy온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Sprintwise: a free tool for Product Owners. Checks user stories are ready before sprint planning, imports from Jira, and tracks sprint scope change.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Teams often start sprints with vague stories, and mid-sprint scope changes go unmeasured. Sprintwise scores every user story for readiness before planning, then measures how much the sprint changes after the team commits.
Paste a story, upload a CSV, or connect Jira Cloud to import, sync and send edits back. Light and dark themes. All sample data is invented.
Live: https://sprintwise.app · try the demo without signing in · watch the 3-minute demo video with voice-over on the home page.
Version 2 is live (see the changelog). Version 1's phases, from the requirements doc:
| Phase | Stories | State |
|---|---|---|
| 1 · Foundations | F-1 CI, F-3 GitHub sign-in, F-4 projects | Done, live |
| 2 · Readiness rules | R-1 paste a story, R-2 CSV import, R-3 sorted backlog, R-6 rule settings | Done, live |
| 3 · AI layer | R-4 rewrites, R-5 test scenarios | Built and tested, switched off on the live site; moved to v2 (see below) |
| 4 · Scope tracking | S-1 to S-4, S-6 | Done, live |
| 5 · Report and polish | S-5, F-2 demo, L-2 accessibility, F-5 privacy | Done: S-5 report, F-2 demo with a sample sprint, F-5 privacy and terms pages, L-2 accessibility (axe and keyboard tests) |
| 6 · Launch | L-1, L-3 | Done: README, screenshots, demo video and usage counts |
All data shown is invented. The images follow your GitHub theme. Regenerate them with pnpm screenshots.
Backlog: every story scored, in your priority order (drag to reorder) or weakest first, with search, band and status filters, and changes to several stories at once.
Story: the score and a plain-English reason for every point lost.
Sprint: metrics against the locked baseline, and the dated change log.
Report: one printable A4 page.
The calls that shaped v1, with the reasoning in DECISIONS.md:
ANTHROPIC_API_KEY turns it on.Why each choice was made is in DECISIONS.md.
You need Node 24 (nvm use), pnpm and Docker.
Install the dependencies:
pnpm install
Create .env from the example:
cp .env.example .env
In .env, set BETTER_AUTH_SECRET to the output of openssl rand -base64 32.
Start Postgres and run the migrations:
pnpm db:up
pnpm db:migrate
Start the app:
pnpm dev
Then open http://localhost:3000. The demo at /demo works without signing in.
http://localhost:3000/api/auth/callback/github.GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET in .env.read:jira-work, write:jira-work and read:jira-user, and the User identity API with read:me.http://localhost:3000/api/auth/callback/atlassian (and the live site's equivalent).ATLASSIAN_CLIENT_ID and ATLASSIAN_CLIENT_SECRET in .env./privacy), and whether the app stores personal data: yes, Atlassian account IDs, reported through the personal data reporting API.Atlassian requires apps that store account IDs to report them weekly. Vercel Cron calls /api/cron/atlassian-accounts daily (vercel.json); each ID is reported when its cycle is up, and a connection is deleted when Atlassian says its account was closed. A second cron, /api/cron/jira-sync, syncs each night the projects that have a sprint following the backlog. On Vercel, set CRON_SECRET (any long random string): both routes refuse every call without it, and Vercel Cron sends it.
Without these, the Jira parts of the app don't appear. End-to-end tests use a pretend Jira (JIRA_FAKE), so they never need a real one.
| Command | What it covers |
|---|---|
pnpm test | Unit tests: every scoring rule, the CSV parser, snapshot comparison and every metric, including the requirements doc's worked example |
pnpm test:e2e | End-to-end tests against a production build: home page, demo, sign-in, projects, scoring, CSV import, access control, keyboard-only flows, and axe accessibility scans of every public page |
pnpm lint and pnpm typecheck | Static checks |
CI runs all of these on every push and pull request (.github/workflows/ci.yml).
| Path | Contents |
|---|---|
src/lib/readiness | The rules engine: pure functions, no I/O |
src/lib/csv | The frozen CSV template and parser |
src/lib/sprint | Snapshot comparison and sprint metrics: pure functions |
src/lib/server | Database client, auth, and the data access layer that checks ownership on every read and write |
src/app | Pages and server actions; (marketing) holds the public site: home, product, demo, changelog, about and privacy |
src/components/marketing | The home page's interactive parts: live scorer, feature tabs, video player, scroll reveals |
src/demo | Invented sample data for demo mode, and the demo video's captions (video-lines.json), shared by the recorder and the home page transcript |
e2e | Playwright tests |
| Document | Contents |
|---|---|
| Demo video script | A timed shot list; pnpm record-demo --voice records it from a local build with a voice-over (MP4, WebM) |
| DECISIONS.md | Every decision with its options and reasons |
Usage counts (L-3): pnpm usage prints anonymous event counts by month: checks run, imports, reports and AI suggestions. Point it at production with DATABASE_URL="<Neon connection string>" pnpm usage. The events table holds only an event type and a time: no user ids and no story text.
"Send feedback" (footer and sidebar) opens a GitHub issue form. The live site counts page views with Vercel Web Analytics: no cookies, with ids, share tokens and query strings removed before sending (src/lib/analytics.ts).
Report security problems privately through GitHub's vulnerability reporting, not in a public issue. SECURITY.md covers scope, response times and safe testing. The live site also serves /.well-known/security.txt.
PolyForm Noncommercial 1.0.0. You may read, run and change the code for any noncommercial purpose, such as learning or personal use. Using it in a product or service you sell, or inside a business, needs permission. Copies taken before 19 October 2026 stay under the MIT license they came with.