Trello tracker adapter #636

Open
opened 2026-07-07 21:47:16 +00:00 by coilyco-ops · 3 comments
Member

Parent epic: #633. Depends on: #634 (Tracker port).

Context. Trello is the first target for the split-stack case: a GitHub or GitLab repo paired with a Trello board as the issue tracker. It is the concrete second tracker that should shape the Tracker port in #634, so its API constraints are baked into the interface rather than discovered later.

Proposed change.

  • Implement the Tracker port against the Trello REST API: map a card to an "issue", list cards on a board or list, read a card, post a comment, move a card to a done list (the close semantic), and apply a label.
  • Map ward's issue-ref concept to a Trello card URL or short link, and parse those refs back.
  • Credentials: a Trello key plus token, resolved user-side following the token-source pattern used for GitHub, never embedded.

Acceptance criteria.

  • A ward run can carry a Trello card end to end: read the card as the task, comment progress, and move it to the configured done list on success.
  • The "close" semantic maps to a configurable target list, since Trello has no closed state.
  • Tests cover ref parsing and the card-to-issue mapping.

Open question for the thread. Trello has no first-class labels-as-priority or milestone concept. Decide how ward's triage and priority map onto Trello labels or custom fields, or whether they degrade to no-ops on trackers that lack them.


Milestone: foreign-stack compat. Filed from the read-only director surface (she/her), part of the release-readiness issue batch.

Parent epic: #633. **Depends on:** #634 (Tracker port). **Context.** Trello is the first target for the split-stack case: a GitHub or GitLab repo paired with a Trello board as the issue tracker. It is the concrete second tracker that should shape the `Tracker` port in #634, so its API constraints are baked into the interface rather than discovered later. **Proposed change.** - Implement the `Tracker` port against the Trello REST API: map a card to an "issue", list cards on a board or list, read a card, post a comment, move a card to a done list (the close semantic), and apply a label. - Map ward's issue-ref concept to a Trello card URL or short link, and parse those refs back. - Credentials: a Trello key plus token, resolved user-side following the token-source pattern used for GitHub, never embedded. **Acceptance criteria.** - A ward run can carry a Trello card end to end: read the card as the task, comment progress, and move it to the configured done list on success. - The "close" semantic maps to a configurable target list, since Trello has no closed state. - Tests cover ref parsing and the card-to-issue mapping. **Open question for the thread.** Trello has no first-class labels-as-priority or milestone concept. Decide how ward's triage and priority map onto Trello labels or custom fields, or whether they degrade to no-ops on trackers that lack them. --- Milestone: foreign-stack compat. Filed from the read-only director surface (she/her), part of the release-readiness issue batch.
Author
Member

WARD-RESERVATION: held 🔒

reservation details

Holder: container engineer-codex-ward-636 on host kais-macbook-pro-2.local.

Reserved by ward agent --harness codex (reserved 2026-07-09T22:41:53Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (1h TTL). --force overrides.

Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).

run seed context — what this run is carrying (ward#609)
  • Resolved: coilyco-flight-deck/ward#636 · branch issue-636 · harness codex · workflow pull-requests-and-merge
  • Run: engineer-codex-ward-636 · ward v0.540.0 · dispatched 2026-07-09T22:41:53Z
  • Comment thread: 0 included in the pre-flight read, 0 stripped (ward's own automated comments).

Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.540.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> WARD-RESERVATION: held 🔒 <details><summary>reservation details</summary> Holder: container `engineer-codex-ward-636` on host `kais-macbook-pro-2.local`. Reserved by `ward agent --harness codex` (reserved 2026-07-09T22:41:53Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (1h TTL). `--force` overrides. **Do not comment on or edit this issue to steer the run while it is reserved.** The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a **new issue, dispatched fresh**. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494). <details><summary>run seed context — what this run is carrying (ward#609)</summary> - **Resolved:** `coilyco-flight-deck/ward#636` · branch `issue-636` · harness `codex` · workflow `pull-requests-and-merge` - **Run:** `engineer-codex-ward-636` · ward `v0.540.0` · dispatched `2026-07-09T22:41:53Z` - **Comment thread:** 0 included in the pre-flight read, 0 stripped (ward's own automated comments). Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.540.0). </details> </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Owner

this is accidentally racing this one: #882

this is accidentally racing this one: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/882
Owner

so I stopped its container locally

so I stopped its container locally
coilyco-ops added
P4
and removed
P3
labels 2026-07-14 06:50:28 +00:00
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#636
No description provided.