conversation-review
Skill43 starsChanged 7 months agoApache-2.0View on GitHub
Use when a semantic/context layer curator wants to review past analysis conversations in bulk, categorize user feedback into actionable improvement areas, and apply targeted changes to the semantic model or context layer. Covers the full workflow from collecting conversations and classifying feedback through to creating action items and applying them on a branch.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- runxhq/runxtheir own version, first seen Oct 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- runxhq/runx★ 97same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- attribute-creationSkill
- context-item-creationSkill
- domain-creationSkill
- entity-creationSkill
- filteringSkill
- metric-creationSkill
- model-explorationSkill
- query-debuggingSkill
- querySkill
- relation-creationSkill
- validationSkill
- workspace-branchSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 2 are distinctive, and 11 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 17
Before starting, ensure a workspace and branch are set.
- Very specific: line 27
Use list_analysis_chats to retrieve past conversations.
- Very specific: line 56
If the feedback text alone is not enough to understand what went wrong, retrieve the full conversation content with get_stored_conversation:
- Distinctive: line 152
Ask the user whether to apply changes on:
- Very specific: line 163
Never apply changes directly to prod.
- Very specific: line 174
After each create_object or update_object, display the returned ui_url to the user.
- Very specific: line 182
Run list_context_items to check for existing items that overlap — update rather than duplicate.
- Very specific: line 190
After all changes are applied, run validation on the affected objects.
- Very specific: line 194
Use get_branch_history to review what changed on the branch.
- Distinctive: line 248
Batch similar items: If five conversations all lack the same metric, create it once and note all five as the motivation.
- Very specific: line 249
Prefer fixing the semantic layer over adding instructions: If a Data Issue can be resolved by correcting a metric's SQL, do that — don't …
- Very specific: line 250
Instructions must be short: If the proposed instruction is longer than two sentences, consider whether it should be a skill instead.
- Very specific: line 251
Check for existing items before creating: Run list_context_items and search_model before adding anything — duplicate instructions or …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Overview
This skill is for semantic and context layer curators who want to use accumulated user feedback to drive continuous improvement. It structures the work into two phases:
- Categorize — review past conversations with feedback and classify each piece of feedback into an actionable improvement category
- Act — turn the categorized feedback into a concrete list of changes, then apply them to the semantic model or context layer on a branch
Prerequisites
Before starting, ensure a workspace and branch are set. Use get_session_workspace_and_branch to check the current context. If nothing is set, use list_workspaces and set_session_workspace_and_branch. See the workspace-branch skill for the full reference.
You will be reading the model as-is (use prod branch for reading), then applying changes on a development branch later.
Phase 1: Collect Conversations
1.1 Fetch conversations with feedback
Use list_analysis_chats to retrieve past conversations. Focus on those that have received feedback — positive or negative.
list_analysis_chats(limit=50, offset=0)Paginate with offset until you have covered the desired time window or conversation count. For each conversation, note:
conversation_idtitleuser_feedback(the stored feedback text, if any)agentanddomain- creation time and the display name of the user who created it
- the client it was started from and the model it ran with
- how its last question ended:
DONE,ASK,FAIL, orABORTED
Filter to conversations with feedback. Skip conversations with no feedback unless the user explicitly wants to review all conversations. One exception: include conversations whose last question ended in FAIL even without feedback — a failed analysis is a signal in itself, and users rarely rate a conversation that never answered.
If the stored feedback is inaccurate, or a conversation you are reviewing has none, use provide_analysis_feedback to record the correct label before categorizing. A FAIL conversation with no feedback is the exception: read it first with get_stored_conversation (see 1.2) and label it only once you know what went wrong. Leave its feedback empty if the failure has no clear cause.
provide_analysis_feedback(conversation_id="abc123", feedback="Data Issue: net revenue metric missing")
provide_analysis_feedback(conversation_id="def456", feedback="Good")This keeps the stored feedback in sync with the categorization, so future reviews start from an accurate baseline.
1.2 Read the full conversation when needed
If the feedback text alone is not enough to understand what went wrong, retrieve the full conversation content with get_stored_conversation:
get_stored_conversation(conversation_id="abc123")This returns all final responses and plan/interpretation messages. Read these to understand what the AI actually did — what question it interpreted, what approach it took, and what it concluded.
To also see individual analysis steps (useful when you want to identify which step produced wrong data), pass with_step_ids: true:
get_stored_conversation(conversation_id="abc123", with_step_ids=true)This includes step_start and step_insight entries with step_id values you can then pass to get_analysis_step_details to retrieve the exact semantic query and SQL used in that step.
Phase 2: Categorize Feedback
For each conversation with feedback, assign it to one or more of the following action categories. A single conversation can yield multiple categories.
Feedback → Action Category Mapping
| Feedback Signal | Root Cause | Action Category |
Data Issue: X metric doesn't exist | Missing aggregation | Add metric |
Data Issue: wrong value / incorrect result | Metric or attribute SQL is wrong | Fix calculation |
Data Issue: missing dimension / can't slice by X | Missing attribute | Add attribute |
Wrong Judgement: used wrong field | Ambiguous names or descriptions | Improve metadata |
Wrong Judgement: missed a standing rule | Missing instruction | Add instruction |
Wrong Judgement: didn't follow a procedure | Missing analytical skill | Add skill |
Wrong Judgement: lacked business context | Missing knowledge or memory | Add knowledge / memory |
Wrong Judgement: wrong domain or agent | Agent misconfigured | Update agent |
Chart Issue | Visualization only | No semantic action |
Last question ended in FAIL (no feedback) | Analysis could not complete | Manual review — read the conversation with get_stored_conversation to find what it tried |
Good / positive | Working as intended | No action |
Other: X | Ambiguous | Manual review |
Categorization Output
Produce a table summarizing all categorized feedback before proceeding:
| Conversation | Feedback | Category | Proposed Change |
abc123 — "Revenue by region" | Data Issue: net revenue metric missing | Add metric | Add net_revenue to orders entity |
def456 — "Churn analysis" | Wrong Judgement: used gross revenue | Add instruction | "Always use orders.net_revenue for revenue questions" |
ghi789 — "Top products" | Good | No action | — |
Group the proposed changes by category to make patterns visible. If three conversations all flag the same missing metric, that is one action item, not three.
Phase 3: Build Action Items
Turn the categorized feedback into a concrete, prioritized action list. Each action item should be self-contained enough to execute in a single MCP call.
Action Item Format
For each item, record:
- Type: what kind of change (
add_metric,fix_attribute,add_instruction,add_skill,add_knowledge,add_memory,update_agent,improve_description) - Target: the entity, field, agent, or context item to create or update
- Evidence: the conversation IDs and feedback text that motivated this item
- What to do: a one-sentence description of the specific change
Action Item Types and Tools
| Type | Tool(s) |
| Add metric | create_object with metric YAML |
| Add calculated attribute | create_object with calculated attribute YAML |
| Fix calculation | get_field to read current YAML → update_object with corrected SQL |
| Improve metadata | get_entity or get_field → update_object with improved description or display_name |
| Add instruction | create_context_item with subtype: instruction |
| Add skill | create_context_item with subtype: skill |
| Add knowledge | create_context_item with subtype: knowledge and external_source |
| Add memory | create_context_item with subtype: event |
| Update agent | get_agent → update_agent with corrected domain, context globs, or description |
Prioritization
Present the action list sorted by impact × frequency:
- Changes that would have fixed multiple conversations (high frequency)
- Changes to core metrics or standing rules (high impact)
- Minor metadata improvements and one-off additions
Review the list with the user before applying any changes. Ask: "Would you like to proceed with all items, or select a subset?"
Phase 4: Apply Changes on a Branch
4.1 Choose a branch
Ask the user whether to apply changes on:
- A new branch — recommended for a significant batch of changes:
create_workspace_branch(workspace_id="...", branch_name="conversation-review-<date>") - An existing development branch — if work is already in progress:
set_session_workspace_and_branch(workspace_id="...", branch_id="<branch>")
Never apply changes directly to prod.
4.2 Apply semantic layer changes
For each semantic layer action item, apply in this order to avoid dependency issues:
- New entities (if any) —
create_entity - New calculated attributes —
create_objectwith calculated attribute YAML - New metrics —
create_objectwith metric YAML - Updated calculations or metadata —
update_object
After each create_object or update_object, display the returned ui_url to the user.
Refer to the attribute-creation, metric-creation, or entity-creation skills for the correct YAML structure.
4.3 Apply context layer changes
For each context layer action item:
- Run
list_context_itemsto check for existing items that overlap — update rather than duplicate. - Apply
create_context_itemorupdate_context_item. - Display the returned
ui_urlafter each call.
Refer to the context-item-creation skill for naming conventions, folder structure, and type-specific parameters.
4.4 Validate
After all changes are applied, run validation on the affected objects. Use validate_object on any YAML you are unsure about before committing it. For a broader check, use the validation skill.
4.5 Review branch history and open a PR
Use get_branch_history to review what changed on the branch. Then:
create_pr_for_working_branch(
title="Model improvements from conversation review — <date>",
description="Changes derived from reviewing N conversations with feedback. Addresses: <list of categories>."
)Display the returned PR URL to the user.
Full Workflow Summary
set_session_workspace_and_branch (confirm prod for reading)
│
▼
list_analysis_chats (paginate, collect all with feedback)
│
▼
[For each conversation with feedback]
→ read feedback text
→ optionally: get_stored_conversation for full context
→ optionally: get_analysis_step_details for a specific step
│
▼
Categorize feedback → produce categorization table
│
▼
Build action item list → review with user
│
▼
create_workspace_branch (or switch to existing dev branch)
│
├── Semantic layer: create_object / update_object (entities, calculated attributes, metrics)
├── Context layer: create_context_item / update_context_item
└── Agents: update_agent
│
▼
validate_object (for any uncertain YAML)
│
▼
get_branch_history (confirm what changed)
│
▼
create_pr_for_working_branch → display PR URLTips
- Batch similar items. If five conversations all lack the same metric, create it once and note all five as the motivation.
- Prefer fixing the semantic layer over adding instructions. If a
Data Issuecan be resolved by correcting a metric's SQL, do that — don't add an instruction telling the AI to work around the wrong value. - Instructions must be short. If the proposed instruction is longer than two sentences, consider whether it should be a skill instead. See the
context-item-creationskill for the boundary. - Check for existing items before creating. Run
list_context_itemsandsearch_modelbefore adding anything — duplicate instructions or metrics with slightly different names are worse than none. - Start small. Apply the highest-priority items first, validate, then continue. A PR with five focused changes is easier to review than one with twenty.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

