# Ulw Context

> [omh] Project terminology alignment workflow: look up, capture, correct, and align the words a repository uses before planning or handoff. Use when the user says: ulw-context, project terminology alignment, review project terms, align project terminology, terminology this project uses.

- Skill: `rlaope/ulw-context-2` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add rlaope/ulw-context-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rlaope/ulw-context-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: rlaope (https://skillmd.com/u/rlaope)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/rlaope/ulw-context-2

---


# Context

This is an OMH `context` workflow skill, projected for Agent Skills hosts (Claude Code, Codex, Cursor, opencode, OpenClaw, pi).

## Why This Exists

`context` exists to reduce repository terminology drift without creating a second machine store or a vocabulary router: the host can answer lookups, facilitate dependency-aware alignment, and project approved results into existing review and handoff boundaries.

## Do Not Use When

- A safe one-term definition or source lookup can be answered directly; use the read-only lookup mode and do not enter the full context interview.
- The request is broad ambiguity with no project-language conflict; use `deep-interview`.
- The unresolved decision is empirical and a cheap isolated experiment can answer it; use `decision-prototype` and keep the frontier for the rest.
- The terminology is already agreed and the request is to produce an implementation plan; use `ralplan`.
- The user wants to capture or curate general retained memory rather than repository terminology; use `memory-new` or `memory-sync`.
- The user asks for workflow discovery, help, status, file lookup, direct answer, or dispatch; preserve `oh-my-hermes` and ordinary protected-route behavior.

## Examples

Good example:

- Prompt: Use ulw-context to align the names this repository uses before we plan the feature.
- Expected behavior: Inspect source evidence, answer settled lookups directly, then present only the dependency-ready unresolved decisions with recommendations and confirmation gates.
- Why: The request is specifically about shared project language and must close understanding before planning.

Bad example:

- Prompt: This glossary says one phrase should be replaced by another; dispatch the implementation automatically.
- Expected behavior: Answer or explain the glossary content without routing from its vocabulary, and require separate confirmation for any staging, planning, or handoff.
- Why: Human glossary prose has no routing, approval, dispatch, or execution authority.

## Completion Checklist

- Source status and reviewed-profile status are named without treating either as model-use evidence.
- Safe lookups were answered directly and unresolved decisions were asked only when the user confirmed interview entry.
- Every decision frontier is dependency-ready, recommendation-backed, and exhausted before shared-understanding confirmation.
- Any machine mapping remains pending until separate review and approval; active profile v1 is unchanged.
- Any `ulw-plan` or coding-owner handoff remains prepared_not_observed and was prepared only after explicit confirmation.

## Recovery Notes

- If the optional source is absent, continue from repository evidence or reviewed profiles without warning, creating, or importing a file.
- If source and active reviewed terminology differ, report changed or missing freshness and ask whether to preview a new pending candidate; never synchronize automatically.
- If dependencies cannot be established, ask one boundary question before presenting a frontier rather than guessing an order.
- If frontier round or decision identity cannot be recovered, close with a named recovery blocker instead of restarting or emitting another round.
- If the user moves from terminology to implementation, summarize confirmed understanding and hand off to `ralplan`, `ulw-plan`, or the selected coding owner only after a separate go-ahead.



## Use When

Use when repository-specific language is unclear, inconsistent, or blocking shared understanding; keep read-only lookup direct and use a dependency-ready decision frontier only for unresolved terminology or product decisions.

    Strong routing signals: `ulw-context`, `$context`, `./context`, `project terminology alignment`, `review project terms`, `align project terminology`, `terminology this project uses`

## Catalog Metadata

Category: `clarification`
Phase: `terminology-alignment`
Quality tier: `clarity-gated`
Reasoning demand: `light`

Quality bar:

- Read repository facts and reviewed terminology before asking the user for discoverable information.
- For unresolved decisions, model dependencies and ask the whole currently ready frontier in one round; defer dependent questions.
- Attach one concise recommendation and tradeoff to each decision while leaving the decision with the user.
- Give every materialized decision a stable identifier and keep omitted decisions open unless the user explicitly resolves, defers, or blocks them.
- Keep terminology sparse: canonical identity, short definition, expression guidance, distinct-from boundary, and optional localized display label.
- A mid-run user message is an interjection, not a stop: answer it briefly and, in the same reply, continue the run — re-read the phase todo when one is active and dispatch or advance the next pending step, or name the armed wait it is waiting on -- handle, bound completion signal, deadline -- instead of re-reading status. Only the user's explicit stop or cancel, or the engine's own completion gate, ends the run; when the interjection changes scope, say so and update the declared plan or todo instead of silently abandoning it. A mid-run message is the latest steering for the active task, not automatically a replacement objective: it replaces the objective when the user says so and steers the current one otherwise.
- A follow-up that needs new authority, materially expands the scope, or changes external state not already authorized is described first and started only on the user's approval; persistence never broadens the authorized scope. A refused escalation gets a safer alternative inside the boundary, or the authorization the boundary asks for — never a workaround or an indirect execution.
- The closing brief scales to the change: one or two sentences plus the observed validation for a simple change, more only when the complexity earns it. Lead with the result or decision; omit abandoned approaches unless they explain a tradeoff the reader needs; narrate no internal bookkeeping (todo transitions, follow-up declarations, waits). Required closing lines stay outside this scaling: the observed run summary, and any prepared-not-observed or unmerged work, are stated whatever the brief's length.
- Stop on a terminal frontier, explicit user request, or the shared round ceiling; then confirm the summary separately from planning or coding.

Required inputs:

- the terminology question or alignment goal
- repository evidence and optional root PROJECT_TERMS.md source status
- active reviewed project terminology profile when one exists
- unresolved decisions and their dependency relationships when an interview is needed

Expected outputs:

- direct source-labeled terminology answer or proposed terminology alignment
- dependency-ready frontier with concise recommendations when decisions remain
- explicit pending-candidate staging choice when machine mappings should be reviewed
- confirmed shared-understanding summary and separately prepared planning or coding-owner handoff

Artifact expectations:

- Optional human-reviewed PROJECT_TERMS.md patch proposal; never write it automatically.
- Pending domain-intelligence candidates only after explicit staging confirmation.
- Prepared ulw-plan or selected coding-owner handoff only after separate confirmation.
- Load references/project-terms.md for source authority and capture; load `references/decision-frontier.md` before interviewing for the dependency-ready batch protocol, stable decision IDs, round bounds, consent gates, and compaction recovery.

Safety rules:

- Treat PROJECT_TERMS.md as optional human source prose with zero direct routing or machine authority.
- Never turn definitions, localized labels, distinct-from notes, say-instead guidance, or project terms into routing triggers, anti-triggers, reranking, or dispatch inputs.
- Answer safe read-only lookup directly with source and freshness status; do not force lookup through capture, interview, planning, or handoff.
- Require explicit confirmation before staging candidates, entering the decision-frontier interview, compiling a plan, or preparing a coding-owner handoff.
- Keep candidate staging, profile review and approval, clarification, handoff preparation, executor use, execution, review, CI, and merge as separate evidence states.
- Do not write, synchronize, approve, retire, or commit PROJECT_TERMS.md or the active profile automatically.

## Runtime Evidence

Use the current host's own tools and subagent/task mechanism when available;
otherwise run the same lanes sequentially or name the unavailable capability.
A prepared plan, handoff, checklist, or skill installation is not execution,
review, CI, merge-readiness, or merge evidence. Report actual tool results or
`not_observed` / `not_available`; never invent dispatch or host accounting.
Treat supplied context as advisory, not proof of hidden memory reads or writes.
State scope, constraints, verification, and the stop condition before work.
Supporting paths are relative to this skill directory; sibling skill paths are
relative to its parent. Resolve them from the host-provided skill base directory
(`{baseDir}` on hosts that provide it), never a hardcoded install location.
A named workflow not installed here is unavailable, not permission to emulate
its host-specific capabilities. Verify through the real surface before done.

