# TP-027-input-examples-on-write-tools: TP-027-input-examples-on-write-tools — Status

**Current Step:** Step 4: Verify
**Status:** ✅ Complete
**Last Updated:** 2026-05-13
**Review Level:** 0
**Review Counter:** 0
**Iteration:** 2
**Size:** M

---

### Step 1: Curate examples

**Status:** ✅ Complete

- [x] Per tool, write 2–3 examples covering the common shapes (minimal, with `workout_doc` where relevant, with optional fields populated)
- [x] Examples must validate against the tool's own schema — add a unit test that enforces this
- [x] Examples must not contain real athlete data; use plausible fixtures only

---

### Step 2: Wire into schema

**Status:** ✅ Complete

- [x] Where the MCP SDK supports `examples` (JSON Schema 2020-12 `examples` keyword), use it directly
- [x] If the SDK surfaces a separate `input_examples` field, mirror the examples there
- [x] Document the chosen convention in `STATUS.md`

---

### Step 3: Catalog-wide invariant test

**Status:** ✅ Complete

- [x] One test that iterates all v0.3 write tools and asserts non-empty examples
- [x] Test fails when a new write tool lands without examples — this guards the convention going forward

---

### Step 4: Verify

**Status:** ✅ Complete

- [x] `make test`, `make build`, `make lint`

---

## Reviews

| #   | Type | Step | Verdict | File |
| --- | ---- | ---- | ------- | ---- |

---

## Discoveries

| Discovery | Disposition | Location |
| --------- | ----------- | -------- |

---

## Execution Log

| Timestamp        | Action         | Outcome                                 |
| ---------------- | -------------- | --------------------------------------- |
| 2026-05-13       | Task staged    | STATUS.md auto-generated by task-runner |
| 2026-05-13 21:59 | Task started   | Runtime V2 lane-runner execution        |
| 2026-05-13 21:59 | Step 1 started | Curate examples                         |
| 2026-05-13 22:28 | Worker iter 1  | done in 1738s, tools: 53                |
| 2026-05-13 22:28 | Step 3 started | Catalog-wide invariant test             |
| 2026-05-13 22:35 | Worker iter 2 | done in 441s, tools: 59 |
| 2026-05-13 22:35 | Task complete | .DONE created |

---

## Blockers

_None_

---

## Notes

- Step 2 convention: tool input schemas expose examples twice: standard JSON Schema 2020-12 `examples` and mirrored `input_examples`. The Go MCP SDK accepts the schema as an arbitrary map via `Tool.InputSchema`, so both keys are passed through to clients while retaining compatibility with clients that inspect either convention.
