You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+12-2Lines changed: 12 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,17 @@ Thank you for considering contributing to Scrumboy. This document explains how t
4
4
5
5
## Before you begin
6
6
7
-
**You must sign the [Contributor License Agreement (CLA)](CLA.md) before your contributions can be accepted.** By submitting a pull request, you agree to the terms in [CLA.md](CLA.md).
7
+
Contributions use the **Developer Certificate of Origin (DCO)**. Sign off each commit with Git’s **`-s`** flag so the commit message includes a `Signed-off-by` line with your name and email.
8
+
9
+
Example:
10
+
11
+
```bash
12
+
git commit -s -m "Fix board filter chip styling"
13
+
```
14
+
15
+
You do **not** need to sign a separate CLA, email a form, or use any other signing service. The **`-s`** on your commits is enough. Pull requests are checked by the [DCO workflow](.github/workflows/dco.yml); every commit in the PR must be signed off.
16
+
17
+
By contributing, you certify that you have the right to submit your work under the project license (see [LICENSE](LICENSE)).
8
18
9
19
## Development setup
10
20
@@ -77,7 +87,7 @@ Binds `127.0.0.1:8080:8080` and uses the config in `docker-compose.yml`.
77
87
78
88
## Pull request guidelines
79
89
80
-
1.**CLA:**Ensure you have agreed to the [CLA](CLA.md). Your first PR serves as your signature.
90
+
1.**DCO:**Every commit must include `Signed-off-by` (use `git commit -s`, or amend with `git commit --amend -s --no-edit` if you forgot). You do not need any separate agreement or signature beyond that.
81
91
2.**Tests:** Run `go test ./...` and ensure all tests pass.
82
92
3.**Build:** Ensure `go build ./cmd/scrumboy` succeeds. If you change the frontend, run `npm run build` in `internal/httpapi/web` and include the built output.
83
93
4.**Description:** Provide a clear description of the change and why it is needed.
Copy file name to clipboardExpand all lines: FAQ.md
+108Lines changed: 108 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,16 @@
1
1
# FAQ
2
2
3
+
## Contents
4
+
5
+
-[How do I enable Markdown in my notes?](#how-do-i-enable-markdown-in-my-notes)
6
+
-[How do I edit several todos at once?](#how-do-i-edit-several-todos-at-once)
7
+
-[What does the done lane mean for dashboard stats?](#what-does-the-done-lane-mean-for-dashboard-stats)
8
+
-[Are tag colors personal, or shared with the team?](#are-tag-colors-personal-or-shared-with-the-team)
9
+
-[How do I use Scrumboy with Claude or other MCP clients?](#how-do-i-use-scrumboy-with-claude-or-other-mcp-clients)
10
+
-[Does Scrumboy use telemetry, tracking, or “phone home”?](#does-scrumboy-use-telemetry-tracking-or-phone-home)
11
+
-[What do I need to do to contribute?](#what-do-i-need-to-do-to-contribute)
12
+
13
+
# Notes
3
14
## How do I enable Markdown in my notes?
4
15
5
16
Set `SCRUMBOY_MARKDOWN_NOTES_ENABLED=1` on the server (also accepts `true`, `on`, or `yes`; case-insensitive). The feature defaults to off.
@@ -11,3 +22,100 @@ Notes are still stored as raw markdown in `todos.body`. Todo titles and board ca
11
22
Preview hardening: HTML in notes is not rendered; images stay as escaped text; dangerous link schemes and embedded content are stripped or neutralized.
12
23
13
24
For architecture, security, and source references, see [`docs/markdown.md`](docs/markdown.md).
25
+
26
+
# Board
27
+
28
+
## How do I edit several todos at once?
29
+
30
+
On the board, hold **Ctrl** (Windows/Linux) or **⌘ Command** (Mac) and click todo cards to select them. Selected cards are highlighted. When at least two are selected, a bar appears with **Edit N selected** - click it to open the bulk edit dialog.
31
+
32
+
In that dialog, turn on only the changes you want (each field has its own checkbox), then click **Apply**. Updates apply to the selected todos only - not the whole board. Tags you add are merged onto each card; they do not remove existing tags.
33
+
34
+
A normal click on a card (without Ctrl/⌘) opens the usual single-todo editor and clears the selection. Viewers cannot use multi-select; Ctrl/⌘+click still opens one todo for them.
35
+
36
+
# Dashboard
37
+
38
+
## What does the done lane mean for dashboard stats?
39
+
40
+
Each project has **exactly one workflow lane marked as done** (in **Settings → Workflow**, the radio on the rightmost lane). That lane can be named anything (for example **Done** or **Shipped**); what matters is the **done** flag on the column, not the display name.
41
+
42
+
**When you move a todo into the done lane**, Scrumboy records **`done_at`** (the completion time). That timestamp is set the **first** time a todo enters a done lane and is **not cleared** if you move it back out later.
43
+
44
+
The dashboard uses that lane flag and timestamp like this:
45
+
46
+
| What you see | Rule |
47
+
|--------------|------|
48
+
|**Your todo list** on the dashboard | Assigned todos **not** in the done lane |
49
+
|**WIP**, **assigned** counts, **workload**| Same: anything assigned and **not** in the done lane |
50
+
|**WIP split** (In progress vs Testing) | Only when the project still uses the default lane keys **`doing`** and **`testing`**. Custom workflows show a single WIP total |
51
+
|**Sprint completion** (you and team) | Todos in the **active sprint**; **done** = currently in the done lane **and**`done_at` falls between the sprint’s start and end |
52
+
|**Throughput** (last four weeks) |`done_at` in each calendar week (your timezone), while the todo is in the done lane |
53
+
|**Avg. lead time**|`created_at` → `done_at` for completed todos in the done lane (sprint window when a sprint is active; otherwise roughly the last 30 days) |
54
+
55
+
So dashboard “done” means **in the project’s designated done lane**, with completion time tracked via **`done_at`**. A todo sitting in **Review** or **Testing** counts as **WIP** until it reaches that done lane, even if you consider it finished informally.
56
+
57
+
# Tags
58
+
59
+
## Are tag colors personal, or shared with the team?
60
+
61
+
It depends on the kind of tag.
62
+
63
+
**Your personal tags** (tags you create and reuse across projects) keep a **color per user**. If you and a teammate both use a tag named `bug`, each of you can pick a different color in **Settings → Tag Colors**, and you will each see your own choice on cards and filter chips. The app remembers your colors when you sign in.
64
+
65
+
**Tags that belong to a specific board** (common on shared or anonymous boards) have **one color for everyone** on that board. When a maintainer sets the color, everyone sees the same tint on filter chips and todo cards.
66
+
67
+
When you open a board, Scrumboy refreshes colors from that board so what you see matches the rules above. Changing a color in **Settings → Tag Colors** saves it for next time and updates the board you have open. If something still looks wrong after a change, refresh the page or reopen the board so the latest colors load.
68
+
69
+
# Integrations
70
+
71
+
## How do I use Scrumboy with Claude or other MCP clients?
72
+
73
+
**Yes.** Scrumboy exposes an **MCP-compatible HTTP API** on the instance you run. AI assistants and automation (Claude, Cursor, custom agents, scripts) can list and call tools to manage projects, todos, sprints, tags, members, and board snapshots - without using the web UI for every change.
74
+
75
+
**Recommended for MCP-style clients:**`POST /mcp/rpc` with **JSON-RPC 2.0** (`initialize`, `tools/list`, `tools/call`). That is the same protocol shape many MCP clients expect, served over HTTP to your Scrumboy URL.
76
+
77
+
**Also available:**`POST /mcp` with a simple `{"tool":"…","input":{…}}` envelope for scripts and older integrations.
78
+
79
+
**Authentication:** sign in and use your session cookie, or create an **API access token** (starts with `sb_`) and send `Authorization: Bearer sb_…`. Tokens are created via the API while logged in (see the **Integrations & API Access** section in [`README.md`](README.md)).
80
+
81
+
**Important limits today:**
82
+
83
+
- Scrumboy is an **HTTP** MCP server on your host. It does **not** speak **stdio** MCP (the process-spawn model some desktop apps use). Clients must connect to your Scrumboy base URL over HTTP, or use a bridge that translates stdio to HTTP.
84
+
- All traffic stays between the client and **your** Scrumboy server. Scrumboy does not host a cloud MCP relay for you.
85
+
86
+
For tool names, auth rules, examples, and the optional Agora discover/invoke edge, see [`docs/mcp.md`](docs/mcp.md). For full HTTP behavior, see [`API.md`](API.md).
87
+
88
+
# Privacy
89
+
90
+
## Does Scrumboy use telemetry, tracking, or “phone home”?
91
+
92
+
**No.** Scrumboy does not ship product analytics, ad trackers, or background reporting to the Scrumboy project or any other vendor. Your boards, todos, tags, and account data stay on **the server you run** (typically a local SQLite database under your data directory).
93
+
94
+
Normal use only talks to **your own Scrumboy instance** - the web app loading pages and calling its API on the same host. There is no built-in usage statistics collection.
95
+
96
+
A few **optional** features can reach **other systems you control or enable**:
97
+
98
+
-**Sign-in (OIDC/SSO)** - only if you configure it; the browser talks to *your* identity provider, not Scrumboy’s servers.
99
+
-**Webhooks** - only if you add them; Scrumboy sends events to URLs *you* choose.
100
+
-**Desktop / PWA notifications** - only if you turn them on and the server has push keys configured; the browser’s push service (e.g. Apple or Google) delivers alerts, which is standard for web apps and not Scrumboy “spying.”
101
+
-**Integrations (API, MCP, automation)** - only when you or your tools call your instance.
102
+
103
+
Words like “analytics” or “activity” inside Scrumboy (for example dashboard stats or audit history) refer to **features that read your own database**, not third-party tracking.
104
+
105
+
If you self-host, you are responsible for your deployment’s network exposure, backups, and any optional integrations above. The application source is available to inspect under the project license.
106
+
107
+
# Contributing
108
+
109
+
## What do I need to do to contribute?
110
+
111
+
Fork the repo, make your changes on a branch, and open a pull request. For setup, tests, and PR expectations, see [`CONTRIBUTING.md`](CONTRIBUTING.md).
112
+
113
+
When you commit, add the **`-s`** flag so Git records a **Signed-off-by** line (Developer Certificate of Origin). That is what our CI checks on pull requests.
114
+
115
+
Example:
116
+
117
+
```bash
118
+
git commit -s -m "Fix board filter chip styling"
119
+
```
120
+
121
+
You do **not** need to sign a separate CLA, email a form, or use any other signing service. The **`-s`** on your commits is enough.
0 commit comments