toga-ai 1.0.986 → 1.0.988

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.
@@ -16,6 +16,8 @@ files:
16
16
  - claude/agents/ticket-reader.md
17
17
  - claude/scripts/hooks/start-gate.js
18
18
  - claude/skills/start/scripts/start-helper.js
19
+ - claude/.claude/settings.json
20
+ - claude/scripts/install.js
19
21
  related:
20
22
  - ./ticket-branch-creation-safety.md
21
23
  - ./harness-distribution.md
@@ -47,7 +49,9 @@ writes, and agents until the session has a ticket. These replaced `/kickoff`, `/
47
49
  4. **`/finish`** — always writes the team KB first. Then one approval list for ticket fields
48
50
  (Application, Stakeholders, Task Type, title, Has UI Changes). If the ticket is done: push each
49
51
  repo with work, open or update a PR per repo, post a PM comment, set status
50
- `development finished`.
52
+ `development finished`. The PM comment is plain bullets for a non-technical PM: "What
53
+ changed" always; "Manual steps", "Still open", "Ticket fields changed by Claude" only when
54
+ they have content. No Apps/Clients/PRs sections. Template: `skills/finish/SKILL.md` Step 15.
51
55
 
52
56
  ### Ticket branch at /start
53
57
 
@@ -73,9 +77,13 @@ writes, and agents until the session has a ticket. These replaced `/kickoff`, `/
73
77
 
74
78
  - Writes go only to the session's own ticket — the `start-gate` hook blocks any other task id,
75
79
  and blocks task creation, deletion, moves, tags, links, docs, chat, and time tracking.
76
- - `permissions.ask` makes Claude Code ask the developer before every `clickup_update_task`
77
- (it cannot be scoped to one argument, so the status change asks too). `clickup_create_comment`
78
- posts without a prompt.
80
+ - The `start-gate` hook is the hard limit: session ticket only; fields Application,
81
+ Stakeholders, Task Type, Pseudocode, Has UI Changes, and the name; statuses `in progress` and
82
+ `development finished` only.
83
+ - No permission prompt for `clickup_update_task` or `clickup_create_comment` (since 2026-10-09).
84
+ Field changes are written only after the developer's yes in chat; status changes and the PM
85
+ comment need no question. Only `Bash(git push *)` stays in `permissions.ask`. `npx toga-ai`
86
+ strips the old ClickUp rules from a dev's existing `permissions.ask` (see harness distribution).
79
87
  - Use only the `clickup` MCP server (`mcp__clickup__clickup_*`). The old read-only
80
88
  "claude.ai ClickUP for Dev" server (`mcp__claude_ai_ClickUP_for_Dev__*`) is blocked.
81
89
 
@@ -156,6 +164,10 @@ All tested 2026-10-08:
156
164
  those, and `create-branch` creates/switches the ticket branch after the dev's yes. (jcardinal)
157
165
  - 2026-10-09 — `/start` sets status `to do` -> `in progress`; the gate allows `in progress` and
158
166
  `development finished` only. (jcardinal)
167
+ - 2026-10-09 — TRUE-82605: `clickup_update_task` and `clickup_create_comment` no longer ask;
168
+ the gate is the limit, field changes need the dev's yes in chat. (jcardinal)
169
+ - 2026-10-09 — PM feedback: PM comment is plain bullets for a non-technical PM; Apps, Clients,
170
+ PRs removed; empty sections left out; field changes as plain sentences with the reason. (jcardinal)
159
171
 
160
172
  ## Related
161
173
 
@@ -6,11 +6,12 @@ project: Claude Harness
6
6
  client: shared
7
7
  type: workflow
8
8
  status: active
9
- updated: 2026-10-06
9
+ updated: 2026-10-09
10
10
  owners: ["jcardinal"]
11
11
  files:
12
12
  - claude/scripts/install.js
13
13
  - claude/knowledge.js
14
+ - claude/.claude/settings.json
14
15
  related:
15
16
  - standalone/apps/claude/workflows/knowledge-publish-pipeline.md
16
17
  ---
@@ -45,6 +46,12 @@ There are **two copies** of `knowledge.js` on a developer's machine, and the ski
45
46
  - **Publish Action (`.github/workflows/publish.yml`, on push to `_main`: bump patch, `npm publish`).** Devs get a change only after a version bump (`/start` runs `npx toga-ai@latest` when installed != latest).
46
47
  - `npm publish` **E404** ("could not be found or you do not have permission") = auth failure, not a missing package: the `NPM_TOKEN` secret in the repo's **Actions environment** expired. Fix: new npm Automation token, update the secret, re-run only the latest failed run.
47
48
  - A publish ships the whole tip of `_main`, so earlier failed runs are not lost. Do not retry old runs (they hit "version already published").
49
+ - **Removing a permission rule from the shipped `.claude/settings.json` does not remove it from devs.** `mergeSettings()` only adds template rules. To retire one, also list it in `RETIRED_TOGA_PERMISSIONS` (`scripts/install.js`); `npx toga-ai` then filters it out of the dev's existing lists.
50
+ - **Auto mode blocks Claude from editing permission rules in `.claude/settings.json`** ("Self-Modification" safety classifier) — subagents too, even when the lead asked, and no approval prompt is shown. A person makes that one edit by hand; Claude can then do the rest (`install.js`, skill text).
51
+
52
+ ## Change history
53
+
54
+ - 2026-10-09 — Added permission-retire (`RETIRED_TOGA_PERMISSIONS`) and auto-mode settings-edit gotchas. (jcardinal)
48
55
 
49
56
  ## Related
50
57
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.986",
3
+ "version": "1.0.988",
4
4
  "description": "TOGA Technology Team Claude Knowledge System — shared AI coding harness with skills, knowledge base CLI, and project installer for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",
@@ -482,7 +482,7 @@ No session notes at all → under WHY write `not recorded — this work was not
482
482
  Never copy a key, token, or password into the body — write `a secret (redacted)` and list it
483
483
  under TEAM RULE CHECK.
484
484
 
485
- Keep every PR url for Steps 15 and 17.
485
+ Keep every PR url for Step 17.
486
486
 
487
487
  **Secret scan** (PR body and PM comment, before posting):
488
488
 
@@ -496,19 +496,43 @@ could not be read — fix the path. Never post until it prints `{ok:true}`.
496
496
 
497
497
  ## Step 15 — PM comment (Claude writes and posts it — no approval)
498
498
 
499
- Draft a short comment for the PM and release notes. Plain words, no code dumps, no secrets,
500
- no local paths:
499
+ Draft a short comment for a non-technical project manager (also used for release notes):
501
500
 
502
501
  ```
503
- **What changed:** <for users/clients, 1-3 plain lines>
504
- **Apps:** <Application values>
505
- **Clients:** <Stakeholders values>
506
- **PRs:** <one url per repo>
507
- **Manual steps:** <deploy / SQL file + database + order — or "None">
508
- **Still open:** <anything left — or "Nothing">
509
- **Ticket fields changed by Claude:** <from Step 10 — or "None">
502
+ **What changed**
503
+
504
+ - <plain, PM-friendly point>
505
+ - <...>
506
+
507
+ **Manual steps**
508
+
509
+ - <plain point>
510
+
511
+ **Still open**
512
+
513
+ - <plain point>
514
+
515
+ **Ticket fields changed by Claude**
516
+
517
+ - <plain sentence with the reason>
510
518
  ```
511
519
 
520
+ Rules:
521
+
522
+ 1. **Write for a PM, not a developer.** Say what users or clients will notice, or what the work
523
+ achieved. No file names, paths, commands, skill names, code terms, code dumps, or secrets.
524
+ 2. **Bullets in every section.** One point per bullet.
525
+ 3. **Only "What changed" is always there.** Leave out "Manual steps", "Still open", and
526
+ "Ticket fields changed by Claude" entirely when they have nothing — never write "None".
527
+ 4. **Manual steps in plain words** — e.g. "A database update must run before release", not a
528
+ SQL file name.
529
+ 5. **Ticket field changes (from Step 10) as plain sentences with the reason** — e.g. "The Has
530
+ UI Changes field was unchecked because this task had no UI changes." / "Added TOGa Desk to
531
+ Application because the work also changed the Desk app."
532
+ 6. **No Apps, Clients, or PRs sections.** Apps and clients are in the ticket fields; PRs link
533
+ to the ticket through the GitHub integration.
534
+ 7. **One blank line between sections**, and between a heading and its bullets.
535
+
512
536
  Do not ask the developer to approve it. Write the text to a temp file
513
537
  (`toga-comment-<TICKET>.md` in the OS temp dir), run the **Secret scan** on it, delete the
514
538
  file. Stop only on a hit. Then post it, and show the posted text in the Step 17 report: