# Lumen Clause Extraction

How to answer review-table columns - formats, normalization, "not found" rules and the...

- Repository: https://github.com/kortix-ai/suna (20345 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kortix-ai/suna --skill lumen-clause-extraction -g -a claude-code -y`
Codex: `npx skills add kortix-ai/suna --skill lumen-clause-extraction -g -a codex -y`
Cursor: `npx skills add kortix-ai/suna --skill lumen-clause-extraction -g -a cursor -y`
Gemini CLI: `npx skills add kortix-ai/suna --skill lumen-clause-extraction -g -a gemini-cli -y`

## Description

How to answer review-table columns - formats, normalization, "not found" rules and the commercial preset columns.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Clause extraction

## Formats

| `format` | `value` | Example |
|---|---|---|
| `text` | a string of at most 40 words, the answer first | `"3 years from 1 April 2026"` |
| `yes_no` | `true`, `false` | `true` |
| `date` | ISO `YYYY-MM-DD`, or an ISO duration `P2Y`, `P90D` | `"2026-04-01"` |
| `money` | `{"amount": 2000000, "currency": "GBP"}` | |
| `tag` | one of the column's `options`, exactly | `"England and Wales"` |
| `verbatim` | the exact quote, nothing else | |
| `number` | a JSON number, no unit | `24` |
| `percent` | a JSON number, the percentage (8 % is `8`) | `8` |
| `list` | an array of short strings, one per item, at most 8 | `["Breach", "Insolvency"]` |

## Not found

- If the document has no clause on the column's question, the cell is
  `{"value": null, "not_found": true, "note": "No clause on X; checked clauses 1-14.", "confidence": "high", "citations": []}`.
- `not_found` means the document is silent. It is not "no": a lease with no renewal clause is `not_found`, not `false`.
- Use `false` only when a clause says no ("Neither party may terminate for convenience").

## Termination for convenience

- `true` only for a right to end the agreement with no trigger: "for convenience", "for any reason", "without cause", a break clause on notice.
- A right that arises only on an event is not convenience: breach, insolvency, force majeure, change of control, a condition precedent not met, a long-stop date ("if Completion has not occurred by 31 December 2026, either party may terminate"). Such a right alone is `not_found`, with the clause named in `note`.

## Normalization

The rest: https://github.com/kortix-ai/suna/blob/HEAD/apps/white-label/lumen/agent-kit/skills/lumen-clause-extraction/SKILL.md
