toga-ai 1.0.225 → 1.0.226

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.
@@ -4,6 +4,7 @@
4
4
  |-----|---------|-------|
5
5
  | [Worker (worker2) Architecture](architecture.md) | Worker (repo `worker2`) is an AWS Elastic Beanstalk **Worker Tier** application that processes background jobs. | worker2/Controller/Index.php, worker2/Worker/, worker2/LambdaFunctions/, _underscore/Worker.php |
6
6
  | [ClickUp Connectivity Watchdog](features/clickup-connectivity-watchdog.md) | A cron watchdog that emails when the ClickUp integration looks disconnected during business hours. | worker2/Worker/Clickup/Health.php, worker2/Database/ClickupHealthWatchdog.sql |
7
+ | [ClickUp GitHub-tab Auto-linking & Ticket-id Branch Naming](features/clickup-github-autolink.md) | How ClickUp surfaces branches/PRs/commits in a ticket's **GitHub tab**, and the branch / PR-title naming convention that triggers it. | |
7
8
  | [ClickUp Project & Opportunity Multi-List Routing](features/clickup-project-routing.md) | Routes ClickUp tasks into the correct **secondary multi-list memberships** based on their custom-field values, via the `clickup` webhook. | worker2/Worker/Clickup/Project.php, worker2/Worker/Clickup.php |
8
9
  | [ClickUp Rich-Text Custom Fields via Quill Delta (API)](features/clickup-richtext-api.md) | ClickUp custom text fields (type `text` and long-text) support rich formatting only through a **Quill Delta** written to the undocumented `value_richtext` key o | test/@dave/clickup_md2delta.js, .claude/skills/plan-ticket/scripts/clickup.js |
9
10
  | [ClickUp Work Type Automation (Committed / Conditional / Stretch)](features/clickup-work-type-automation.md) | The ClickUp webhook handler (`_Worker_Clickup`) automatically maintains each task's **Work Type** custom field — `Committed`, `Conditional`, or `Stretch` — base | worker2/Worker/Clickup.php, worker2/Tests/Worker/ClickupWorkTypeTest.php |
@@ -0,0 +1,44 @@
1
+ ---
2
+ title: ClickUp GitHub-tab Auto-linking & Ticket-id Branch Naming
3
+ framework: "2.0"
4
+ repo: worker2
5
+ project: Worker
6
+ client: shared
7
+ type: feature
8
+ status: active
9
+ updated: 2026-06-29
10
+ owners: [dfranks]
11
+ files: []
12
+ related:
13
+ - ../workflows/ticket-to-pseudocode-planning.md
14
+ ---
15
+
16
+ ## Summary
17
+
18
+ How ClickUp surfaces branches/PRs/commits in a ticket's **GitHub tab**, and the branch /
19
+ PR-title naming convention that triggers it. This is the linkage the `/work-ticket` skill
20
+ depends on when it ships PRs for a planned ticket.
21
+
22
+ ## How it works
23
+
24
+ - ClickUp's **native GitHub integration** automatically surfaces a branch, PR, or commit in a
25
+ ticket's GitHub tab **whenever the ticket id appears in the branch name and/or the PR
26
+ title/body**. The match is on the textual ticket id (e.g. `TRUE-79868`).
27
+ - **There is no ClickUp API call to create this link.** The `plan-ticket/scripts/clickup.js`
28
+ helper exposes only `get` and `push` (the latter writes the `📝 Pseudocode` field). Linking
29
+ is purely a side effect of the ticket id appearing in Git metadata.
30
+ - Therefore the durable rule for ticket work: name the **git branch as the BARE ticket id**
31
+ (e.g. `TRUE-79868`), **one branch per repo**, and include the ticket id in the PR body.
32
+ PRs default to base branch **`_main`**.
33
+
34
+ ## Branch naming overrides the generic git-workflow rule
35
+
36
+ ⚠ This intentionally **overrides** the generic `feature/<short-description>` type-prefix rule
37
+ in `.claude/rules/toga/common/git-workflow.md` **for ticket-driven work**. The bare ticket-id
38
+ branch name is exactly what ClickUp's native GitHub integration auto-links on, so a
39
+ `feature/…` prefix would break the auto-link. Confirmed against live repos already on
40
+ `TRUE-79142` (worker) and `TRUE-77219` (api2).
41
+
42
+ ## Change history
43
+
44
+ - 2026-06-29 — Initial doc: ClickUp native GitHub integration auto-links any branch/PR carrying the ticket id (no API call; clickup.js exposes only get/push); convention is bare-ticket-id branch name (one per repo) + ticket id in PR body, base `_main`. Bare-id naming intentionally overrides git-workflow.md's feature/ prefix for ticket work, confirmed from live TRUE-79142 (worker) and TRUE-77219 (api2) branches (dfranks)
@@ -6,13 +6,14 @@ project: Worker
6
6
  client: shared
7
7
  type: workflow
8
8
  status: active
9
- updated: 2026-06-26
9
+ updated: 2026-06-29
10
10
  owners: [dfranks]
11
11
  files:
12
12
  - test/@dave/clickup_md2delta.js
13
13
  related:
14
14
  - ../features/clickup-richtext-api.md
15
15
  - ../features/talos-meeting-notes-integration.md
16
+ - ../features/clickup-github-autolink.md
16
17
  ---
17
18
 
18
19
  ## Summary
@@ -55,6 +56,34 @@ under `test/@dave/approach/`):
55
56
  **Architecture decision** · **Phases** (each with file paths + pseudocode) · **Testing** ·
56
57
  **Risks** · **Owners / open questions** · **Key files**.
57
58
 
59
+ ## Downstream: plan → work pipeline
60
+
61
+ Planning is the **first half** of a two-skill pipeline. Once the plan is approved and pushed
62
+ to the ticket's `📝 Pseudocode` field, the **downstream `/work-ticket <TICKET-ID>` skill**
63
+ (also a local skill, not in the team repo) implements it:
64
+
65
+ 1. **Loads the approved plan FROM the ticket's `📝 Pseudocode` field** — the field is the
66
+ source of truth, not the local `approach/<TICKET>.md`. It reads via
67
+ `plan-ticket/scripts/clickup.js get <TICKET>`, which returns JSON
68
+ `{id, custom_id, name, status, description, pseudocodeFieldId, url, fields:{…}}` where
69
+ `fields` is the non-empty custom fields keyed by display name. The plan is the `fields`
70
+ entry whose key contains "Pseudocode" (case-insensitive), as plain text. **Stops if empty.**
71
+ 2. **Primes framework context** (self-answered `/kickoff`) from the plan's
72
+ **Repos / Framework / Client** header line.
73
+ 3. **Implements phase-by-phase** with implementer subagents (worktree-isolated for independent
74
+ repos) + TOGA reviewers (php-reviewer / sql-reviewer) looping until clean.
75
+ 4. **Per repo in the plan's Repos header:** branch → commit → push, then opens **one PR per
76
+ repo** with `gh` (default base branch `_main`).
77
+ 5. **Reports and STOPS.**
78
+
79
+ **Autonomy boundary (decided):** `/work-ticket` runs autonomously through PR creation, then
80
+ stops. It **never changes the ClickUp ticket status** — advancing the ticket for approval is
81
+ always a manual developer action, because the developer must review the PR(s) first.
82
+
83
+ See [ClickUp GitHub-tab auto-linking & ticket-id branch naming](../features/clickup-github-autolink.md)
84
+ for the branch/PR naming convention `/work-ticket` relies on.
85
+
58
86
  ## Change history
59
87
 
88
+ - 2026-06-29 — Added the downstream half: `/plan-ticket` → `/work-ticket` pipeline. Records how `/work-ticket` loads the approved plan from the `📝 Pseudocode` field (clickup.js `get` JSON shape, "Pseudocode"-keyed plain-text value), implements phase-by-phase with reviewer loops, branches/commits/PRs per repo, and STOPS at PR creation — never touching ClickUp status (manual gate) (dfranks)
60
89
  - 2026-06-26 — Initial doc: ticket→pseudocode planning procedure (ClickUp read → codebase investigation → Talos DevCore grounding → phased plan → approval gate → guarded richtext push); records the shape, not the local skill source (dfranks)
@@ -17,7 +17,7 @@ _Auto-generated by `knowledge.js index`. Do not hand-edit._
17
17
  ## 2.0 framework
18
18
 
19
19
  - **_underscore** (_Underscore) _(framework core)_ — 17 doc(s) → [2.0/apps/_underscore/INDEX.md](2.0/apps/_underscore/INDEX.md)
20
- - **worker2** (Worker) — 20 doc(s) → [2.0/apps/worker2/INDEX.md](2.0/apps/worker2/INDEX.md)
20
+ - **worker2** (Worker) — 21 doc(s) → [2.0/apps/worker2/INDEX.md](2.0/apps/worker2/INDEX.md)
21
21
  - **api2** (API) — 7 doc(s) → [2.0/apps/api2/INDEX.md](2.0/apps/api2/INDEX.md)
22
22
  - **dbchanges2** (Database Changes) _(framework core)_ — 3 doc(s) → [2.0/apps/dbchanges2/INDEX.md](2.0/apps/dbchanges2/INDEX.md)
23
23
  - **toga2-supply** (TOGa Supply) — 3 doc(s) → [2.0/apps/toga2-supply/INDEX.md](2.0/apps/toga2-supply/INDEX.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.225",
3
+ "version": "1.0.226",
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",