Skip to content

Commit 2f2b491

Browse files
authored
Merge pull request #79 from markrai/docs/faq
Docs/faq
2 parents 62463e5 + f5d7f87 commit 2f2b491

2 files changed

Lines changed: 120 additions & 2 deletions

File tree

CONTRIBUTING.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,17 @@ Thank you for considering contributing to Scrumboy. This document explains how t
44

55
## Before you begin
66

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)).
818

919
## Development setup
1020

@@ -77,7 +87,7 @@ Binds `127.0.0.1:8080:8080` and uses the config in `docker-compose.yml`.
7787

7888
## Pull request guidelines
7989

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.
8191
2. **Tests:** Run `go test ./...` and ensure all tests pass.
8292
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.
8393
4. **Description:** Provide a clear description of the change and why it is needed.

FAQ.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# FAQ
22

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
314
## How do I enable Markdown in my notes?
415

516
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
1122
Preview hardening: HTML in notes is not rendered; images stay as escaped text; dangerous link schemes and embedded content are stripped or neutralized.
1223

1324
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

Comments
 (0)