Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。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.