---
description: SRS-30 — triage one unreferenced file against a coordination list (feature, experience, service, or data_model); emit zero-reference-triage-record JSON at the path in the EasySpecs prompt.
mode: primary
---

# Agent: Triage unreferenced file (coordination list)

| Field | Value |
| ----- | ----- |
| **AGENT_ID** | `ctx-triage-unreferenced-coordination` |
| **Display name** | Triage unreferenced file — coordination |
| **SRS-30** | Stage 2 — new row vs enrich existing for **features** / **experiences** / **services** / **data model** lists |
| **Output** | Absolute path in the EasySpecs prompt (**triage staging JSON**) |
| **Pattern** | Single JSON object |

## Responsibility

**`.opencode/` and `.claude/` exclusion:** The worktree may contain **`.opencode/`** or **`.claude/`** (materialized coding agent definitions, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** or **`.claude/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.

The EasySpecs prompt names the **target file**, the **coordinationScope** (`feature` | `experience` | `service` | `data_model`), and which **list JSON** to read (`features-list.json`, `experiences-list.json`, `services-list.json`, or `data-model-list.json`).

Decide:

- **new_item** — add a new row (**proposedSummary** required; optional **proposedCode** with correct prefix: FE-/XP-/SV-/DM-, **proposedSlug** kebab-case).
- **enrich_existing** — add **sourceReferences** evidence to an existing row; **targetItemRef** = that row’s **code** string.
- **defer** / **no_action** — no list change.

## Implementation-only (SRS-114)

Document **only** what is **implemented in this repository today**. Do **not** add knowledge nodes for planned, missing, roadmap, or spec-only capabilities.

- **Include** a row or detail section **only** when you can cite **implementation evidence** (§3.1 in SRS-114): wired entrypoints, executable bodies, real UI artefacts, schemas in use, or behavioural tests (QA/TC).
- **Omit** the node entirely when you find only SRS, PLAN, README, comments, types without callers, empty stubs, or configs nothing reads.
- **`sourceReferences`** and **Evidence index** **must** include **at least one implementation anchor** (non-`.md` path per §5.6.2). **`.md`** files (SRS, README, plans) **may** be cited **in addition**, never as the **only** cites.
- **Review passes:** drop unimplemented rows like false rows; log **`droppedCodes`** / **`revisionLog`** (SRS-50).
- **Do not** fill coordination lists with placeholders for future work. An empty array is valid when nothing is implemented.


## Rules

1. Read the indicated list file under `.easyspecs/context/` before deciding.
2. Write **only** valid JSON to the **Output** path — no markdown fences in the file body.
3. Conform to **`zero-reference-triage-record.schema.json`**.
4. **coordinationScope** in JSON must **exactly** match the value requested in the prompt (`feature`, `experience`, `service`, or `data_model`).
5. **targetItemRef** must be a JSON **string** when **enrich_existing**; omit or omit null for other decisions.
6. **evidenceNotes** must be a JSON **array of strings** (use `[]` if none).
