@paxnax/berliner 0.5.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/skill/SKILL.md CHANGED
@@ -28,6 +28,7 @@ Hooks installed by `berliner setup` already report the session's cost, model, re
28
28
  | `--pr` | Every pull request, one flag each. |
29
29
  | `--coverage` | Percent, from the test run's coverage summary. |
30
30
  | `--evidence` | Each screenshot or video. |
31
+ | `--team`, `--no-team` | Only when the user asks for a one-off. See [Teams](#teams). |
31
32
 
32
33
  Do not pass `--session-id`, `--cost` or `--model`: the CLI fills them in from the tool's own records, and an explicit value is ignored with a warning. `--repo` and `--plan` are not needed either: the plan comes from the user's `BERLINER_PLAN`, or from their subscriptions in Settings. A report without `--title` keeps the session's existing title. `berliner update` ignores a session ID here.
33
34
 
@@ -86,6 +87,36 @@ In a non-interactive session (no user to answer), never ask and never save.
86
87
 
87
88
  The repository comes from `git remote get-url origin`; `--repo owner/name` names another one.
88
89
 
90
+ ## Teams
91
+
92
+ A session reports to the user's own plan unless a team is set. The CLI picks the team from the first of these that exists:
93
+
94
+ | Source | Use it for |
95
+ |---|---|
96
+ | `--team <uuid>` or `--no-team` | One report. `--no-team` beats every other source. |
97
+ | `team` in `.berliner.json` at the repository root: `{ "team": "<uuid>" }` | The whole team. The file is meant to be committed. |
98
+ | `BERLINER_TEAM` | One machine or shell. |
99
+ | `berliner team <uuid>` | One machine, saved globally. `berliner team --none` clears it; `berliner team` prints the team in effect and where it came from. |
100
+
101
+ With none of them, the session goes to the user's own plan. Do not set a team yourself: the user or the repository already did.
102
+
103
+ Only the report that creates a session sends the team. A session's team is fixed after that, and the CLI warns when a later setting differs. Ignore the warning.
104
+
105
+ The server can refuse the report that creates a team session with a 422. The message says how to fix it:
106
+
107
+ | Code | Meaning | Fix |
108
+ |---|---|---|
109
+ | `team_not_found` | No team has that uuid. | Check the uuid in `.berliner.json`, `BERLINER_TEAM` or the global setting. |
110
+ | `team_not_member` | The user is not a member of the team. | The user accepts the team's invite in the web app, or the owner invites them. |
111
+ | `team_not_eligible` | The repository's owner is not an organization the team covers. | The team's owner adds the organization in the web app, or the user reports this repository without the team. |
112
+ | `team_inactive` | The team has no active plan. | The team's owner sets up the plan in the web app. |
113
+
114
+ When a report is refused, tell the user in your next message and quote the message the CLI printed. Inside Claude Code, Codex or OpenCode the hook cannot print it: it saves a note, and the next `berliner report`, `update`, `session` or `sessions` in that repository prints it once. The web app shows it as a banner too.
115
+
116
+ Never add `--no-team` or a different `--team` just to get past a refusal unless the user agrees. That moves the session to another plan.
117
+
118
+ The team's owner sees every session and file reported to the team. Members never see each other's team work.
119
+
89
120
  ## Keep PR states current
90
121
 
91
122
  A PR in a repository without the Berliner GitHub App keeps the state you last reported. So:
@@ -119,6 +150,7 @@ Report again with the same `--session-id` whenever something changes.
119
150
  - `--public`: with `--evidence`, also make those files viewable without sign-in. See below.
120
151
  - `--task <id>`, `--task-url <url>`: the ticket. See [Tickets](#tickets).
121
152
  - `--project <name>`: only the ticket's tracker project or a project the user named. See [Projects](#projects).
153
+ - `--team <uuid>`, `--no-team`: which plan the session reports to. See [Teams](#teams).
122
154
  - `--started-at <ISO>`, `--ended-at <ISO>`.
123
155
 
124
156
  Quote any value that contains spaces.