Files
twenty/.github/workflows
martmull 57fb39ba00 ci: add app-docs drift check agent (#22696)
Part 8 (final) of the app-docs audit series. The preceding PRs
(#22688–#22695) fixed the drift that had already accumulated between the
app platform and its docs — wrong commands, nonexistent import paths,
missing enum values, stale scaffold descriptions. This PR adds the
guardrail that keeps it from accumulating again.

## What it does

`ci-app-docs-drift.yaml` runs on PRs that touch the app-development
surface:

- `packages/twenty-sdk/**` (CLI commands/flags, `define*` configs,
front-component runtime)
- `packages/create-twenty-app/**` (scaffold template and flags)
- `packages/twenty-client-sdk/**` (public client surface)
- `packages/twenty-shared/src/application/**` and `src/types/**`
(manifest types and enum value sets)

It launches a Claude agent (same `anthropics/claude-code-action` +
`CLAUDE_CODE_OAUTH_TOKEN` setup as the existing `claude.yml`) with a
prompt that:

1. Reads the PR diff and filters for genuinely user-facing changes
(new/renamed commands or flags, config properties, enum values, exports,
env vars, template files) — implementation-only changes short-circuit to
"no impact".
2. Follows a source-area → docs-page mapping to read the relevant pages
under `packages/twenty-docs/developers/extend/apps/`, and checks whether
the PR already updates them correctly.
3. Posts **one sticky comment** (marker-based, updated in place on
subsequent pushes): either "no documentation impact" or a table of
`Change / Docs page / Status / Suggested fix`.

## Guardrails

- Read-only tool allowlist plus `gh pr comment` / `gh api` — the agent
cannot edit code or docs, only report.
- Skips fork PRs (secrets unavailable) and bot-authored PRs.
- `--max-turns 60`, 30-minute timeout, per-ref concurrency with
cancel-in-progress.

The exhaustive audit that motivated this (every command, flag, export,
and enum cross-checked between docs and source, plus a scaffolded app
tested against a live server) is exactly the loop this workflow
automates in miniature on every relevant PR.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01ExboyDAT19khDuKXaYXETT)_

<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/22696?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->

---------

Co-authored-by: Martin <martin@twenty.com>
2026-07-09 09:38:26 +00:00
..