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.
- package/.claude/settings.json +0 -1
- package/knowledge/2.0/apps/worker2/INDEX.md +1 -1
- package/knowledge/2.0/apps/worker2/features/clickup-github-autolink.md +7 -0
- package/knowledge/standalone/apps/claude/workflows/clickup-ticket-workflow.md +15 -3
- package/package.json +1 -1
- package/rules/common/git-workflow.md +3 -1
- package/scripts/install.js +4 -1
- package/skills/finish/SKILL.md +12 -8
package/.claude/settings.json
CHANGED
|
@@ -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) |
|
|
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 ~
|
|
91
|
-
full option list).
|
|
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
|
@@ -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.
|
package/scripts/install.js
CHANGED
|
@@ -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: [
|
|
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');
|
package/skills/finish/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
|
35
|
-
|
|
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 (
|
|
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
|
-
|
|
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,
|
|
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: "<
|
|
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
|
|