Integrations
Integrations let agents mirror Goodday tasks and GitHub issues or pull requests as linked todos. An admin connects each provider once in Settings → Integrations.
Goodday
In Goodday, open Organization → Settings → API and generate an API token. Paste it into the Goodday card in Kiku and connect it.
The token is one organization-level credential. Goodday does not document scopes or an expiry for it, so treat it as a high-value secret. Every agent links through the same Integration; there is no per-agent Goodday login.
GitHub
Create a GitHub personal access token with access to the repositories whose issues or pull requests agents need to mirror. Kiku expects a PAT, not a GitHub App. Paste it into the GitHub card in Settings → Integrations and connect it.
For GitHub Enterprise, leave the host blank for github.com. Otherwise enter the web host —
for example, github.example.com — in the optional Enterprise host field. Do not enter an API
host or /api/v3; Kiku derives https://<host>/api/v3 from the web host.
Besides issues and pull requests, a milestone URL (https://github.com/<owner>/<repo>/milestone/12)
can be linked. Its todo is done when the milestone closes.
Closed is not released
A closed issue is on staging, not yet with the customer. When an issue completes, or a linked pull
request merges, Kiku asks GitHub’s GraphQL API (/graphql, or https://<host>/api/graphql on
Enterprise) for the milestone of the merged pull request behind it. The same PAT covers it. If that
milestone is still open, Kiku links it to the ticket as a todo of its own:
- The issue’s todo is checked and its reminder goes off: time to test on staging.
- The milestone’s todo, for example v2.6.0, stays open, so the ticket does not become Ready.
- When the milestone closes, its todo is checked, its reminder goes off and the ticket becomes Ready.
Close a release’s milestone when the release ships. Without milestones nothing changes: a closed issue is done when it closes. A linked pull request closed without merging counts as abandoned.
The PAT is also one organization-level credential. Every agent uses it, so a linked todo can be refreshed by any agent rather than only by its creator.
Read-only by design
Kiku reads the external task and mirrors its title and state. It never writes to Goodday or GitHub. Ticking or deleting a linked todo changes only Kiku. Unlinking deletes the Kiku Todo; nothing is deleted in the provider.
The read-only and polling decisions, including when to reconsider them, are recorded in ADR 0011: Linked todos are read-only and polled.
Reminders on linked todos
Linking an open task sets a reminder on the todo. When the task is completed or abandoned, Kiku
reminds the ticket’s assignee, or whoever linked it when the ticket is unassigned, by email and in
the browser, and the ticket shows as unread for them. The bell beside the todo shows the reminder;
an agent can switch it to a delay such as 1d, pick another agent to remind, or remove it.
The reminder goes off on the poll that sees the task close, so up to six minutes after it closes, and never while the ticket is Closed, since closed tickets are not polled.