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-
|
|
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)
|
package/knowledge/INDEX.md
CHANGED
|
@@ -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
|
+
- **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