toga-ai 1.0.980 → 1.0.982

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.
@@ -287,7 +287,6 @@
287
287
  ],
288
288
  "ask": [
289
289
  "mcp__clickup__clickup_update_task",
290
- "mcp__clickup__clickup_create_comment",
291
290
  "Bash(git push *)"
292
291
  ],
293
292
  "deny": [
@@ -72,4 +72,4 @@
72
72
  | [PHP Runtime Upgrade on Elastic Beanstalk (worker2 8.3 → 8.5 + PhpSpreadsheet 1.x → 3.x)](workflows/php-runtime-upgrade-dependency-audit.md) | Reusable checklist for moving a TOGA repo across an EB PHP runtime jump (worker2 8.3 → 8.5 + PhpSpreadsheet 1.x → 3.x); open before any runtime bump or when a c |
73
73
  | [Running worker2 locally against real NetSuite (and what EB does instead)](workflows/running-worker2-locally.md) | Boot worker2 on a dev machine to run a real worker action against live NetSuite + a local Forecast DB; open when local boot fails or before any local NetSuite r |
74
74
  | [Repointing the Sprint Tooling at a New ClickUp Sprints Folder (+ table reset)](workflows/sprint-clickup-folder-repoint.md) | Move worker2's sprint tooling onto a new ClickUp "True Dev Sprints" folder and reset the Team sprint tables; open when the sprints folder id changes. |
75
- | [Ticket → ClickUp Pseudocode Planning (Talos-grounded)](workflows/ticket-to-pseudocode-planning.md) | Procedure to turn a ClickUp ticket into a reviewed, formatted plan posted to its `📝 Pseudocode` field (ClickUp + codebase + Talos); open when planning a ticket |
75
+ | [Ticket → ClickUp Pseudocode Planning (Talos-grounded)](workflows/ticket-to-pseudocode-planning.md) | Retired procedure (`/plan-ticket` + `/work-ticket`) that planned a ClickUp ticket into its `📝 Pseudocode` field; open only for history. |
@@ -30,8 +30,15 @@ How ClickUp surfaces branches/PRs/commits in a ticket's GitHub tab and the branc
30
30
 
31
31
  - **Bare ticket-id branch name is now the git-workflow rule** (`rules/common/git-workflow.md`, 2026-10-08) — a `feature/…` prefix breaks ClickUp's native auto-link, which matches on the bare ticket id. Confirmed against live repos already on `TRUE-79142` (worker) and `TRUE-77219` (api2).
32
32
 
33
+ - **If PRs stop linking, the integration was disconnected** (it was, until 2026-10-08). Fix:
34
+ 1. ClickUp → Settings → App Center → GitHub → Reconnect (authorize as the `agilantgit` GitHub account; workspace-level).
35
+ 2. GitHub Settings → "Connect Repositories to Spaces": add each repo AND link it to the **Development** space. A repo not linked to that space never links its PRs.
36
+ 3. Repos added 2026-10-08: worker2, dbchanges2, toga25-desk, toga25-iq, toga25-blox, toga25-supply, toga2-commerce, toga2-supply, toga2-template, toga-blox-npm, saml, forward, apiproxy (`test` and `claude` skipped). A PR titled with the ticket id then linked automatically (verified).
37
+ - **Settings:** leave "auto-generated branch name" as `:taskId:`. Do not turn on "Update Task Status from GitHub" — worker2 owns status automation.
38
+
33
39
  ## Change history
34
40
 
41
+ - 2026-10-08 — Added reconnect fix, Development-space repo linking, and settings to leave alone. (jcardinal)
35
42
  - 2026-10-08 — `/work-ticket` and `/plan-ticket` retired; `/finish` opens the PRs. PR title = ticket id first; base = repo default branch; git-workflow now uses bare ticket-id branches. (jcardinal)
36
43
 
37
44
  ## Related
@@ -74,7 +74,7 @@ Write values are strings: drop_down = option uuid; labels = JSON array string of
74
74
 
75
75
  1. `claude mcp add --scope user --transport http clickup https://mcp.clickup.com/mcp`
76
76
  2. In Claude Code, run `/mcp` and sign in to `clickup`.
77
- 3. `gh auth login` (needed by `/finish` for PRs).
77
+ 3. `gh auth login` (needed by `/finish` for PRs; `gh` is often installed but not logged in).
78
78
  4. `npx toga-ai` in the workspace (installs the skills, the hook, and the settings).
79
79
 
80
80
  ## Gotchas
@@ -87,8 +87,11 @@ All tested 2026-10-08:
87
87
  headings, numbered steps, indented sub-points, no markdown symbols (no #, *, backticks, or _).
88
88
  - **The MCP cannot add a new option** to a labels or drop_down field. A truly new value: the
89
89
  developer adds it in ClickUp under that field, then Claude sets it.
90
- - **`clickup_get_task` with custom fields returns ~90k characters** (every field carries its
91
- full option list). Only the `ticket-reader` agent does that read. Drop_down values come back
90
+ - **`clickup_get_task` with custom fields returns ~76k characters** (every field carries its
91
+ full option list). Claude Code then replaces the tool result with "Output has been saved to
92
+ <file>". So the `ticket-reader` does a small read first, and `start-gate` reads the saved file
93
+ only from `~/.claude/projects/*/tool-results/`. Debug: env `TOGA_START_GATE_DEBUG=1` writes
94
+ `gate-debug.log` in the sessions dir. Only the `ticket-reader` agent does the full read. Drop_down values come back
92
95
  as an orderindex — map them through `type_config.options`.
93
96
  - **Done status is `development finished`** (lowercase; valid on the Dev Sprints lists).
94
97
  - **The ClickUp GitHub integration works:** a PR whose title starts with the ticket id auto-links.
@@ -108,12 +111,21 @@ All tested 2026-10-08:
108
111
  now?"; yes = it runs the `/commit` steps itself, then continues; no = stop. `gh` not logged in
109
112
  → "Run `gh auth login` in a terminal, then tell me 'done'", then re-check `gh auth status`.
110
113
 
114
+ - **The PR summary comment comes from a GitHub Action:** `.github/workflows/pr-summary.yml` +
115
+ `ci/pr-review/`, built from the `/commit` notes. Re-run it with the `re-review` label. Setup:
116
+ `ci/pr-review/SETUP.md`. Still pending: CODEOWNERS, the protected `pr-summary-v1` tag, and the
117
+ caller file in each app repo.
118
+
111
119
  ## Change history
112
120
 
113
121
  - 2026-10-08 — Created: ClickUp-tied sessions (`/start`, `/commit`, `/pseudocode`, `/finish`)
114
122
  replace `/kickoff`, `/capture`, `/plan-ticket`, `/work-ticket`, `/rework-ticket`. (jcardinal)
115
123
  - 2026-10-08 — Branch claims always re-checked fresh; `/finish` runs `/commit` on yes and
116
124
  guides `gh auth login`. (jcardinal)
125
+ - 2026-10-08 — Claude posts the PM comment and writes PR/commit/KB summaries without asking
126
+ for approval; `clickup_create_comment` removed from permissions.ask. Field changes and
127
+ pushes still ask. (jcardinal)
128
+ - 2026-10-08 — Added big-read/saved-file behavior, `gh auth login` note, and PR summary Action. (jcardinal)
117
129
 
118
130
  ## Related
119
131
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.980",
3
+ "version": "1.0.982",
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",
@@ -34,7 +34,9 @@ describes. It does not authorize publishing anything else in the session.
34
34
  - `/commit` — local commits of only the files this session changed. Never pushes.
35
35
  - `/finish` — the KB push to `_main`, the ticket-branch pushes, the PRs, and the ticket writes.
36
36
  If this session's files are uncommitted, `/finish` asks once and, on "yes", runs the
37
- `/commit` steps itself (same rules as `/commit`).
37
+ `/commit` steps itself (same rules as `/commit`). Claude writes and posts the PM comment,
38
+ PR subject/body, commit notes, and KB summary itself — no approval prompt (secret scan
39
+ still runs). Ticket field changes still need the one approval list; pushes still ask.
38
40
  - `/ship`, `/land-and-deploy` — the commits, pushes, and PRs they describe.
39
41
 
40
42
  Force-pushing is never automatic in any repo, including the knowledge repo.
@@ -436,7 +436,10 @@ const RETIRED_TOGA_HOOKS = ['kickoff-gate.js'];
436
436
 
437
437
  // Permission rules the TOGA template once shipped and no longer wants. Only exact TOGA-owned
438
438
  // strings go here — a developer's own rules are never removed.
439
- const RETIRED_TOGA_PERMISSIONS = { ask: ['mcp__clickup__clickup_create_task_comment'] };
439
+ const RETIRED_TOGA_PERMISSIONS = { ask: [
440
+ 'mcp__clickup__clickup_create_task_comment',
441
+ 'mcp__clickup__clickup_create_comment',
442
+ ] };
440
443
 
441
444
  function mergeSettings(claudeDir, sourceDir) {
442
445
  const templatePath = path.join(sourceDir, '.claude', 'settings.json');
@@ -9,7 +9,11 @@ Order: **Part 1** KB capture (always) → **Part 2** ticket field check (always,
9
9
  a ticket) → **Part 3** "Is this ticket finished?" → push, PRs, PM comment, status.
10
10
 
11
11
  Keep the main thread lean: the KB write pipeline runs in the `session-capture` subagent, and
12
- ClickUp reads run in the `ticket-reader` subagent. The main thread distills, asks, and approves.
12
+ ClickUp reads run in the `ticket-reader` subagent. The main thread distills and asks only for real decisions.
13
+
14
+ Claude writes and posts all summary text itself — PM comment, PR subject and body, commit
15
+ notes, KB capture summary. Never ask the developer to approve that wording. Approvals are only
16
+ for real decisions: ticket field changes (one list), ELEVATED KB docs, and pushes.
13
17
 
14
18
  ## Step 0 — Rules, helpers, session ticket
15
19
 
@@ -31,8 +35,8 @@ Never: force-push, push any other branch, commit source code (that is `/commit`)
31
35
  **Has Code Changes** field (`af9eaba8-d3d3-4769-b8bc-28de78b04570` — worker2 owns it), write
32
36
  "Pseudocode Review" / "Pseudocode Required", touch any other ticket, or use the old read-only
33
37
  `mcp__claude_ai_ClickUP_for_Dev__*` tools. The `start-gate` hook blocks every other ClickUp
34
- write (other tools, other fields, other tickets). Claude Code asks the developer before every
35
- ClickUp write — that prompt is expected; it is the approval gate. `git push` may also ask for
38
+ write (other tools, other fields, other tickets). Claude Code asks before `clickup_update_task`
39
+ (field changes) — that prompt is expected. The PM comment posts without a prompt. `git push` may also ask for
36
40
  permission — that is expected too.
37
41
 
38
42
  **Helpers** (both print JSON):
@@ -428,7 +432,7 @@ Exit 0 + `{ok:true}` = clean. Exit 1 + `{ok:false, hits:[...]}` = a hit: show th
428
432
  the hit types (it never prints the values), fix the text, and scan again. Exit 2 = the file
429
433
  could not be read — fix the path. Never post until it prints `{ok:true}`.
430
434
 
431
- ## Step 15 — PM comment (developer approves the text first)
435
+ ## Step 15 — PM comment (Claude writes and posts it — no approval)
432
436
 
433
437
  Draft a short comment for the PM and release notes. Plain words, no code dumps, no secrets,
434
438
  no local paths:
@@ -443,15 +447,15 @@ no local paths:
443
447
  **Ticket fields changed by Claude:** <from Step 10 — or "None">
444
448
  ```
445
449
 
446
- Show it; after the developer approves (edit if asked), write the text to a temp file
450
+ Do not ask the developer to approve it. Write the text to a temp file
447
451
  (`toga-comment-<TICKET>.md` in the OS temp dir), run the **Secret scan** on it, delete the
448
- file, then post:
452
+ file. Stop only on a hit. Then post it, and show the posted text in the Step 17 report:
449
453
 
450
454
  ```
451
455
  mcp__clickup__clickup_create_comment
452
456
  entity_type: "task"
453
457
  entity_id: "<internalId>"
454
- comment_text: "<approved markdown, max 40000 characters>"
458
+ comment_text: "<markdown, max 40000 characters>"
455
459
  ```
456
460
 
457
461
  ## Step 16 — Set the status
@@ -472,7 +476,7 @@ Short list:
472
476
  1. KB: publish status (Step 5).
473
477
  2. Ticket fields changed (or "none").
474
478
  3. PRs: one url per repo, and which got `re-review`.
475
- 4. PM comment: posted (yes/no).
479
+ 4. PM comment: posted (yes/no), with the posted text.
476
480
  5. Status: `development finished` (or why not).
477
481
  6. Anything manual the developer must still do — as a numbered list.
478
482