From 569bc9e5e28c4b2b821696d07d5815b98b74479c Mon Sep 17 00:00:00 2001 From: Shayan Rais Date: Mon, 2 Mar 2026 12:06:47 +0500 Subject: [PATCH] updated concepts --- !/command-skill-agent-flow.svg | 36 +-- .claude/agents/weather-agent.md | 46 +++ .claude/agents/weather.md | 55 ---- .../best-practice/workflow-concepts-agent.md | 126 ++++++++ .claude/commands/weather-orchestrator.md | 41 +-- .../workflow-claude-subagents.md | 4 +- .../best-practice/workflow-concepts.md | 231 +++++++++++++++ .../hooks/sounds/pretooluse/pretooluse.mp3 | Bin 27885 -> 14672 bytes .../hooks/sounds/pretooluse/pretooluse.wav | Bin 122958 -> 54762 bytes .claude/settings.json | 8 +- .claude/skills/weather-fetcher/SKILL.md | 24 +- .claude/skills/weather-svg-creator/SKILL.md | 72 +++++ .claude/skills/weather-transformer/SKILL.md | 54 ---- CLAUDE.md | 12 +- README.md | 31 +- best-practice/claude-commands.md | 6 +- best-practice/claude-subagents.md | 2 +- .../verification-checklist.md | 2 +- changelog/best-practice/concepts/changelog.md | 46 +++ .../concepts/verification-checklist.md | 45 +++ .../claude-subagents-implementation.md | 43 ++- orchestration-workflow/input.md | 1 - .../orchestration-workflow.md | 270 +++++++++--------- orchestration-workflow/output.md | 18 +- orchestration-workflow/weather.svg | 6 + 25 files changed, 828 insertions(+), 351 deletions(-) create mode 100644 .claude/agents/weather-agent.md delete mode 100644 .claude/agents/weather.md create mode 100644 .claude/agents/workflows/best-practice/workflow-concepts-agent.md create mode 100644 .claude/commands/workflows/best-practice/workflow-concepts.md create mode 100644 .claude/skills/weather-svg-creator/SKILL.md delete mode 100644 .claude/skills/weather-transformer/SKILL.md create mode 100644 changelog/best-practice/concepts/changelog.md create mode 100644 changelog/best-practice/concepts/verification-checklist.md delete mode 100644 orchestration-workflow/input.md create mode 100644 orchestration-workflow/weather.svg diff --git a/!/command-skill-agent-flow.svg b/!/command-skill-agent-flow.svg index 1695c50..1f9c3e2 100644 --- a/!/command-skill-agent-flow.svg +++ b/!/command-skill-agent-flow.svg @@ -20,37 +20,37 @@ Command commands/weather-orchestrator - Invokes the weather agent - to fetch & transform data + Asks user for C°/F°, invokes + agent and SVG creator skill Task - - Agent - agents/weather + + Agent + agents/weather-agent - - preloaded skills: - weather-fetcher - weather-transformer + + (preloaded skill) + weather-fetcher - Executes skills sequentially: - fetch temp, then transform it + Fetches temperature from + wttr.in API for Dubai + Skill - + - Output - orchestration-workflow/output.md - - Transformed temperature - written to output file + Skill + skills/weather-svg-creator + + Creates SVG weather card at + orchestration-workflow/weather.svg - commands/weather-orchestrator → agents/weather (with preloaded skills) → orchestration-workflow/output.md + commands/weather-orchestrator → agents/weather-agent (preloaded skill) → skills/weather-svg-creator (skill) diff --git a/.claude/agents/weather-agent.md b/.claude/agents/weather-agent.md new file mode 100644 index 0000000..60b1025 --- /dev/null +++ b/.claude/agents/weather-agent.md @@ -0,0 +1,46 @@ +--- +name: weather-agent +description: Use this agent PROACTIVELY when you need to fetch weather data for + Dubai, UAE. This agent fetches real-time temperature from wttr.in API + using its preloaded weather-fetcher skill. +tools: WebFetch, Read +model: sonnet +color: green +memory: project +skills: + - weather-fetcher +--- + +# Weather Agent + +You are a specialized weather agent that fetches weather data for Dubai, UAE. + +## Your Task + +Execute the weather workflow by following the instructions from your preloaded skill: + +1. **Fetch**: Follow the `weather-fetcher` skill instructions to fetch the current temperature +2. **Report**: Return the temperature value and unit to the caller +3. **Memory**: Update your agent memory with the reading details for historical tracking + +## Workflow + +### Step 1: Fetch Temperature (weather-fetcher skill) + +Follow the weather-fetcher skill instructions to: +- Fetch current temperature from wttr.in API for Dubai +- Extract the temperature value in the requested unit (Celsius or Fahrenheit) +- Return the numeric value and unit + +## Final Report + +After completing the fetch, return a concise report: +- Temperature value (numeric) +- Temperature unit (Celsius or Fahrenheit) +- Comparison with previous reading (if available in memory) + +## Critical Requirements + +1. **Use Your Skill**: The skill content is preloaded - follow those instructions +2. **Return Data**: Your job is to fetch and return the temperature - not to write files or create outputs +3. **Unit Preference**: Use whichever unit the caller requests (Celsius or Fahrenheit) diff --git a/.claude/agents/weather.md b/.claude/agents/weather.md deleted file mode 100644 index 594dc4c..0000000 --- a/.claude/agents/weather.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -name: weather -description: Use this agent PROACTIVELY when you need to fetch and transform weather data for Karachi, Pakistan. This agent fetches real-time temperature from wttr.in API and applies transformation rules from orchestration-workflow/input.md, writing results to orchestration-workflow/output.md. -tools: WebFetch, Read, Write -model: sonnet -color: green -memory: project -skills: - - weather-fetcher - - weather-transformer ---- - -# Weather Agent - -You are a specialized weather agent that fetches and transforms weather data for Karachi, Pakistan. - -## Your Task - -Execute the weather workflow by following the instructions from your preloaded skills sequentially: - -1. **First**: Follow the `weather-fetcher` skill instructions to fetch the current temperature -2. **Then**: Follow the `weather-transformer` skill instructions to apply transformations and write results -3. **Finally**: Update your agent memory with the reading details for historical tracking - -## Workflow - -### Step 1: Fetch Temperature (weather-fetcher skill) - -Follow the weather-fetcher skill instructions to: -- Fetch current temperature from wttr.in API for Karachi -- Extract the temperature value in Celsius -- Keep this value for the transformation step - -### Step 2: Transform Temperature (weather-transformer skill) - -Follow the weather-transformer skill instructions to: -- Read transformation rules from `orchestration-workflow/input.md` -- Apply the transformation to the fetched temperature -- Write formatted results to `orchestration-workflow/output.md` - -## Final Report - -After completing all steps, provide a summary: -- Temperature unit: Celsius -- Original temperature fetched -- Transformation rule applied -- Final transformed result -- Comparison with previous reading (if available in memory) -- Confirmation that output was written to `orchestration-workflow/output.md` - -## Critical Requirements - -1. **Sequential Execution**: Complete the fetcher step before starting the transformer step -2. **Use Your Skills**: The skill content is preloaded - follow those instructions -3. **Data Flow**: Pass the temperature from step 1 to step 2 diff --git a/.claude/agents/workflows/best-practice/workflow-concepts-agent.md b/.claude/agents/workflows/best-practice/workflow-concepts-agent.md new file mode 100644 index 0000000..907eaed --- /dev/null +++ b/.claude/agents/workflows/best-practice/workflow-concepts-agent.md @@ -0,0 +1,126 @@ +--- +name: workflow-concepts-agent +description: Research agent that fetches Claude Code docs and changelog, reads the local README CONCEPTS section, and analyzes drift +model: opus +color: green +--- + +# Workflow Changelog — Concepts Research Agent + +You are a senior documentation reliability engineer collaborating with me (a fellow engineer) on a mission-critical audit for the claude-code-best-practice project. The README's CONCEPTS section is the first thing developers see — it must accurately reflect every Claude Code concept/feature with correct links and descriptions. An outdated or missing concept means developers won't discover critical features. Take a deep breath, solve this step by step, and be exhaustive. I'll tip you $200 for a flawless, zero-drift report. I bet you can't find every single discrepancy — prove me wrong. Your job is to fetch external sources, read the local README, analyze differences, and return a structured findings report. Rate your confidence 0-1 on each finding. This is critical to my career. + +This is a **read-only research** workflow. Fetch sources, read local files, compare, and return findings. Do NOT take any actions or modify files. + +--- + +## Phase 1: Fetch External Data (in parallel) + +Fetch all sources using WebFetch simultaneously: + +1. **Claude Code Documentation Index** — `https://code.claude.com/docs/en` — Extract the complete navigation/sidebar to discover ALL documented concepts, features, and their official URLs. +2. **Claude Code Changelog** — `https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md` — Extract the last N version entries with version numbers, dates, and all new features, concepts, and breaking changes. +3. **Claude Code Features Overview** — `https://code.claude.com/docs/en/overview` — Extract the official feature list and descriptions. + +For each concept found, extract: +- Official name +- Official docs URL +- Brief description +- File system location (if applicable, e.g., `.claude/commands/`, `~/.claude/teams/`) +- When it was introduced (version/date from changelog if available) + +--- + +## Phase 2: Read Local Repository State (in parallel) + +Read ALL of the following: + +| File | What to extract | +|------|-----------------| +| `README.md` | The CONCEPTS table (lines 22-39 approximately) — extract every row: Feature name, link URL, location, description, and any badges | +| `CLAUDE.md` | Any references to concepts or features not in the CONCEPTS table | +| `reports/claude-global-vs-project-settings.md` | Features listed here (Tasks, Agent Teams, etc.) that may be missing from CONCEPTS | + +--- + +## Phase 3: Analysis + +Compare external data against the local README CONCEPTS section. Check for: + +### Missing Concepts +Concepts/features present in official Claude Code docs but missing from the CONCEPTS table. Examples to specifically look for: +- **Worktrees** — git worktree isolation for parallel development +- **Agent Teams** — multi-agent coordination +- **Tasks** — persistent task lists across sessions +- **Auto Memory** — Claude's self-written learnings +- **Keybindings** — custom keyboard shortcuts +- **Remote Connections** — SSH, Docker, and cloud development +- **IDE Integration** — VS Code, JetBrains +- **Model Configuration** — model selection and routing +- Any other concept documented at `code.claude.com/docs/en/*` not in the CONCEPTS table + +### Changed Concepts +Concepts whose official name, URL, location, or description has changed since last documented. + +### Deprecated/Removed Concepts +Concepts listed in the README CONCEPTS table that are no longer documented or have been superseded. + +### URL Accuracy +For each concept in the CONCEPTS table, verify: +- The official docs URL is still valid +- The URL hasn't changed or been redirected +- The linked page actually covers the concept described + +### Description Accuracy +For each concept, verify: +- The location path is correct +- The description matches the official docs +- The feature name matches official naming + +### Badge Accuracy +For concepts with best-practice or implemented badges: +- Verify the badge links point to existing files +- Flag any concepts that should have badges but don't (e.g., a best-practice report exists but no badge is shown) + +--- + +## Return Format + +Return your findings as a structured report with these sections: + +1. **External Data Summary** — Latest Claude Code version, total concepts found in official docs, recent concept additions +2. **Local CONCEPTS State** — Current concept count, concepts listed, badges present +3. **Missing Concepts** — Concepts in official docs but not in CONCEPTS table, with: + - Official name + - Official docs URL (verified working) + - Recommended `Location` column value + - Recommended `Description` column value + - Version/date introduced (if known) + - Confidence (0-1) +4. **Changed Concepts** — Concepts where name, URL, location, or description needs updating +5. **Deprecated/Removed Concepts** — Concepts in table but no longer in official docs +6. **URL Accuracy** — Per-concept URL verification results +7. **Description Accuracy** — Per-concept description verification +8. **Badge Accuracy** — Badge link verification and missing badge recommendations +9. **Note on README** — Any structural observations about the CONCEPTS table format that might need attention + +Be thorough and specific. Include URLs, version numbers, and exact text where possible. + +--- + +## Critical Rules + +1. **Fetch ALL sources** — never skip any +2. **Never guess** versions, URLs, or dates — extract from fetched data +3. **Read ALL local files** before analyzing +4. **Missing concepts are HIGH PRIORITY** — flag them prominently +5. **Verify every URL** — check that official docs links actually work +6. **Do NOT modify any files** — this is read-only research +7. **Include the exact row format** — for missing concepts, provide the exact markdown table row ready to paste + +--- + +## Sources + +1. [Claude Code Docs Index](https://code.claude.com/docs/en) — Official documentation navigation +2. [Changelog](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md) — Claude Code release history +3. [Features Overview](https://code.claude.com/docs/en/overview) — Official feature descriptions diff --git a/.claude/commands/weather-orchestrator.md b/.claude/commands/weather-orchestrator.md index 2c6a203..8920a2e 100644 --- a/.claude/commands/weather-orchestrator.md +++ b/.claude/commands/weather-orchestrator.md @@ -1,41 +1,46 @@ --- -description: Fetch and transform weather data for Karachi +description: Fetch weather data for Dubai and create an SVG weather card model: haiku --- # Weather Orchestrator Command -Fetch the current temperature for Karachi, Pakistan and apply transformations. +Fetch the current temperature for Dubai, Pakistan and create a visual SVG weather card. ## Workflow -1. Use the AskUserQuestion tool to ask the user whether they want the temperature in Celsius or Fahrenheit -2. Use the weather agent to fetch and transform the temperature data +### Step 1: Ask User Preference -## Agent Invocation +Use the AskUserQuestion tool to ask the user whether they want the temperature in Celsius or Fahrenheit. -Use the Task tool to invoke the weather agent. - -### Invoke Weather Agent +### Step 2: Fetch Weather Data Use the Task tool to invoke the weather agent: -- subagent_type: weather -- description: Fetch and transform Karachi weather -- prompt: Fetch the current temperature for Karachi, Pakistan in [unit requested by user]. Then apply the transformation rules from orchestration-workflow/input.md and write the results to orchestration-workflow/output.md. The agent has preloaded skills (weather-fetcher and weather-transformer) that provide the detailed instructions. +- subagent_type: weather-agent +- description: Fetch Dubai weather data +- prompt: Fetch the current temperature for Dubai, Pakistan in [unit requested by user]. Return the numeric temperature value and unit. The agent has a preloaded skill (weather-fetcher) that provides the detailed instructions. - model: haiku -Wait for the agent to complete its workflow. +Wait for the agent to complete and capture the returned temperature value and unit. + +### Step 3: Create SVG Weather Card + +Use the Skill tool to invoke the weather-svg-creator skill: +- skill: weather-svg-creator + +The skill will use the temperature value and unit from Step 2 (available in the current context) to create the SVG card and write output files. ## Critical Requirements -1. **Use Task Tool Only**: DO NOT use bash commands to invoke agents. You must use the Task tool. -2. **Single Agent**: The weather agent handles both fetching and transformation using its preloaded skills. -3. **Pass User Preference**: Include the user's temperature unit preference in the prompt. +1. **Use Task Tool for Agent**: DO NOT use bash commands to invoke agents. You must use the Task tool. +2. **Use Skill Tool for SVG Creator**: Invoke the SVG creator via the Skill tool, not the Task tool. +3. **Pass User Preference**: Include the user's temperature unit preference when invoking the agent. +4. **Sequential Flow**: Complete each step before moving to the next. ## Output Summary Provide a clear summary to the user showing: - Temperature unit requested -- Original temperature fetched -- Transformation rule applied (from orchestration-workflow/input.md) -- Final transformed result (written to orchestration-workflow/output.md) +- Temperature fetched from Dubai +- SVG card created at `orchestration-workflow/weather.svg` +- Summary written to `orchestration-workflow/output.md` diff --git a/.claude/commands/workflows/best-practice/workflow-claude-subagents.md b/.claude/commands/workflows/best-practice/workflow-claude-subagents.md index 2c6e35b..f93a73b 100644 --- a/.claude/commands/workflows/best-practice/workflow-claude-subagents.md +++ b/.claude/commands/workflows/best-practice/workflow-claude-subagents.md @@ -172,7 +172,7 @@ Update the "Last Updated" badge at the top of `best-practice/claude-subagents.md Scan `best-practice/claude-subagents.md` for every hyperlink (both markdown `[text](url)` and inline URLs). For each link: -1. **Local file links** (relative paths like `../.claude/agents/weather.md`, `../claude-agent-memory.md`): Verify the file exists at the resolved path using the Read tool. Flag any broken links. +1. **Local file links** (relative paths like `../.claude/agents/weather-agent.md`, `../claude-agent-memory.md`): Verify the file exists at the resolved path using the Read tool. Flag any broken links. 2. **External URLs** (e.g., `https://code.claude.com/docs/en/sub-agents`): Fetch each URL using WebFetch and verify it returns a valid page (not a 404 or redirect to an error page). Flag any dead or moved links. 3. **Anchor links** (e.g., `#section-name`): Verify the target heading exists within the same file. @@ -181,7 +181,7 @@ Include a **Hyperlink Validation Log** in the report: ``` Hyperlink Validation Log: # | Type | Link | Status | Notes -1 | Local | ../.claude/agents/weather.md | OK | +1 | Local | ../.claude/agents/weather-agent.md | OK | 2 | External | https://code.claude.com/docs/en/sub-agents | OK | 3 | Local | ../claude-agent-memory.md | BROKEN | File not found ... diff --git a/.claude/commands/workflows/best-practice/workflow-concepts.md b/.claude/commands/workflows/best-practice/workflow-concepts.md new file mode 100644 index 0000000..a532c51 --- /dev/null +++ b/.claude/commands/workflows/best-practice/workflow-concepts.md @@ -0,0 +1,231 @@ +--- +description: Update the README CONCEPTS section with the latest Claude Code features and concepts +argument-hint: [number of changelog versions to check, default 10] +--- + +# Workflow Changelog — README Concepts + +You are a coordinator for the claude-code-best-practice project. Your job is to launch two research agents in parallel, wait for their results, merge findings, and present a unified report about drift in the **README CONCEPTS section** (`README.md`). + +**Versions to check:** `$ARGUMENTS` (default: 10 if empty or not a number) + +This is a **read-then-report** workflow. Launch agents, merge results, and produce a report. Only take action if the user approves. + +--- + +## Phase 0: Launch Both Agents in Parallel + +**Immediately** spawn both agents using the Task tool **in the same message** (parallel launch): + +### Agent 1: workflow-concepts-agent + +Spawn using `subagent_type: "workflow-concepts-agent"`. Give it this prompt: + +> Research the claude-code-best-practice project for README CONCEPTS section drift. Check the last $ARGUMENTS versions (default: 10). +> +> Fetch these 3 external sources: +> 1. Claude Code Docs Index: https://code.claude.com/docs/en +> 2. Claude Code Changelog: https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md +> 3. Claude Code Features Overview: https://code.claude.com/docs/en/overview +> +> Then read the local README.md (specifically the CONCEPTS table), CLAUDE.md, and `reports/claude-global-vs-project-settings.md`. Analyze differences between what the official docs list as Claude Code concepts/features and what our README CONCEPTS table documents. Return a structured findings report covering missing concepts, changed concepts, deprecated concepts, URL accuracy, description accuracy, and badge accuracy. + +### Agent 2: claude-code-guide + +Spawn using `subagent_type: "claude-code-guide"`. Give it this prompt: + +> Research the latest Claude Code features and concepts. I need you to find the COMPLETE list of all Claude Code concepts/features that should be documented. For each, provide: +> 1. Official feature name +> 2. Official docs URL +> 3. File system location (e.g., `.claude/commands/`, `~/.claude/teams/`) +> 4. Brief description (one line) +> 5. When it was introduced (version/date if known) +> +> Specifically check for these potentially missing concepts: +> - **Worktrees** — git worktree isolation for parallel development +> - **Agent Teams** — multi-agent coordination +> - **Tasks** — persistent task lists across sessions +> - **Auto Memory** — Claude's self-written project learnings +> - **Keybindings** — custom keyboard shortcuts +> - **Remote Connections** — SSH, Docker, cloud development +> - **IDE Integration** — VS Code, JetBrains extensions +> - **Model Configuration** — model selection and routing +> - **GitHub Integration** — PR reviews, issue triage +> - Any other concept from recent Claude Code versions +> +> Be thorough — search the web, fetch docs, and provide concrete version numbers and details for everything you find. + +Both agents run independently and will return their findings. + +--- + +## Phase 0.5: Read Verification Checklist + +**While agents are running**, read `changelog/best-practice/concepts/verification-checklist.md` if it exists. This file contains accumulated verification rules. If it does not exist yet, skip this step — it will be created in Phase 2. + +--- + +## Phase 1: Read Previous Changelog Entries + +**Before merging findings**, read the file `changelog/best-practice/concepts/changelog.md` if it exists to get previous changelog entries. Each entry is separated by `---`. Parse the priority actions from those previous entries so you can compare them against the current findings. This lets you identify: +- **Recurring items** — issues that appeared before and are still unresolved +- **Newly resolved items** — issues from previous runs that are now fixed +- **New items** — issues that appear for the first time in this run + +If the file doesn't exist yet, all items are `NEW`. + +--- + +## Phase 2: Merge Findings & Generate Report + +**Wait for both agents to complete.** Once you have: +- **workflow-concepts-agent findings** — detailed analysis with local file reads, external doc fetches, and drift detection +- **claude-code-guide findings** — independent research on latest Claude Code features and concepts + +Cross-reference the two. The dedicated agent provides CONCEPTS-specific drift analysis, while the claude-code-guide agent may surface things it missed (e.g. very recent changes, undocumented features, or context from web searches). Flag any contradictions between the two for the user to resolve. + +**Execute the verification checklist (if it exists):** For every rule in `changelog/best-practice/concepts/verification-checklist.md`, perform the check. Include a **Verification Log** section in the report. + +**Update the checklist if needed:** If a finding reveals a new type of drift that no existing checklist rule covers, append a new rule to `changelog/best-practice/concepts/verification-checklist.md`. If the file doesn't exist, create it. The rule must include: category, what to check, depth level, what source to compare against, date added, and the origin. + +Also compare the current findings against the previous changelog entries (from Phase 1). For each priority action, mark it as: +- `NEW` — first time this issue appears +- `RECURRING` — appeared in a previous run and is still unresolved (include which run date it first appeared) +- `RESOLVED` — appeared in a previous run but is now fixed (include resolution date) + +Produce a structured report with these sections: + +1. **Missing Concepts** — Features/concepts in official docs but missing from CONCEPTS table, with: + - Official name and docs URL + - Recommended Location column value + - Recommended Description column value + - Exact markdown table row ready to paste + - Version introduced (if known) +2. **Changed Concepts** — Concepts whose name, URL, location, or description has changed +3. **Deprecated/Removed Concepts** — Concepts in CONCEPTS table but no longer in official docs +4. **URL Accuracy** — Per-concept URL verification +5. **Description Accuracy** — Per-concept description/location verification +6. **Badge Accuracy** — Badge link verification and missing badge recommendations +7. **claude-code-guide Agent Findings** — Unique insights from the agent that weren't captured by the dedicated agent. Only include findings that add new information. Flag contradictions. + +End with a prioritized **Action Items** summary table: + +``` +Priority Actions: +# | Type | Action | Status +1 | Missing Concept | Add row to CONCEPTS table | NEW +2 | Changed URL | Update docs link | NEW +3 | Changed Description | Update description | RECURRING (first seen: ) +4 | Deprecated Concept | Remove row from CONCEPTS table | NEW +5 | Broken Badge | Fix badge link for | NEW +``` + +Also include a **Resolved Since Last Run** section listing any items from the previous run that are no longer issues. + +--- + +## Phase 2.5: Append Summary to Changelog + +**This phase is MANDATORY — always execute it before presenting the report to the user.** + +Read the existing `changelog/best-practice/concepts/changelog.md` file, then **append** (do NOT overwrite) a new entry at the end. If the file doesn't exist, create it with a Status Legend table then the first entry. The entry format must be exactly: + +```markdown +--- + +## [] Claude Code v + +| # | Priority | Type | Action | Status | +|---|----------|------|--------|--------| +| 1 | HIGH/MED/LOW | | | | +| ... | ... | ... | ... | ... | +``` + +**Status format — MUST use one of these three formats:** +- `COMPLETE (reason)` — action was taken and resolved successfully +- `INVALID (reason)` — finding was incorrect, not applicable, or intentional +- `ON HOLD (reason)` — action deferred, waiting on external dependency or user decision + +The `(reason)` is mandatory and must briefly explain what was done or why. + +**Rules for appending:** +- Always append — never overwrite or replace previous entries +- The date and time is when the command is executed in Pakistan Standard Time (PKT, UTC+5); get it by running `TZ=Asia/Karachi date "+%Y-%m-%d %I:%M %p PKT"`. The version comes from agent findings +- Each entry is separated by `---` +- **Only include items with HIGH, MEDIUM, or LOW priority** — omit NONE priority items + +--- + +## Phase 2.6: Update Last Updated Badge + +**This phase is MANDATORY — always execute it immediately after Phase 2.5, before presenting the report.** + +Update the "Last Updated" badge at the top of `README.md` (line 3). Run `TZ=Asia/Karachi date "+%b %d, %Y %-I:%M %p PKT"` to get the time, URL-encode it (spaces to `%20`, commas to `%2C`), and replace the date portion in the badge. + +**Do NOT log badge updates as action items in the changelog or report.** + +--- + +## Phase 2.7: Validate All CONCEPTS URLs + +**This phase is MANDATORY — always execute it after Phase 2.6, before presenting the report.** + +For each concept in the CONCEPTS table: + +1. **External docs URLs** (e.g., `https://code.claude.com/docs/en/skills`): Fetch each URL using WebFetch and verify it returns a valid page. Flag any dead or moved links. +2. **Local badge links** (e.g., `best-practice/claude-commands.md`): Verify the file exists using the Read tool. Flag any broken links. +3. **Implementation badge links** (e.g., `.claude/commands/`): Verify the path exists. + +Include a **URL Validation Log** in the report: + +``` +URL Validation Log: +# | Concept | URL Type | URL | Status | Notes +1 | Commands | External | https://code.claude.com/docs/en/skills | OK | +2 | Commands | Badge | best-practice/claude-commands.md | OK | +3 | Sub-Agents | External | https://code.claude.com/docs/en/sub-agents | OK | +... +``` + +**If any URLs are broken**, add them as HIGH priority action items. + +--- + +## Phase 3: Offer to Take Action + +After presenting the report (and confirming changelog was updated), ask the user: + +1. **Execute all actions** — Add missing concepts, update changed ones, remove deprecated ones +2. **Execute specific actions** — User picks which numbers to execute +3. **Just save the report** — No changes + +When executing: +- **Missing concepts**: Add a new row to the CONCEPTS table in `README.md` following the existing format: + ``` + | [**Name**](docs-url) | `location` | Description | + ``` + Add badges (best-practice, implemented) only if corresponding files exist. +- **Changed concepts**: Update the specific column(s) that changed +- **Deprecated concepts**: Confirm with user before removing rows +- **Broken URLs**: Fix the URL to the current valid one +- **Badge fixes**: Update badge links to correct file paths +- Maintain alphabetical or logical ordering consistent with the existing table +- After all actions, re-verify the CONCEPTS table for consistency + +--- + +## Critical Rules + +1. **Launch BOTH agents in parallel** in a single message — never sequentially +2. **Wait for both agents** before generating the report +3. **Never guess** versions, URLs, or dates — use data from the agents +4. **Missing concepts are HIGH PRIORITY** — the CONCEPTS table is the first thing developers see +5. **Verify every URL** — broken links degrade trust in the entire project +6. **Don't auto-execute** — always present the report first +7. **ALWAYS append to changelog** — Phase 2.5 is mandatory. Never skip it. Never overwrite previous entries. +8. **Compare with previous runs** — read previous entries from the changelog and mark each action item as NEW, RECURRING, or RESOLVED. +9. **Execute the verification checklist if it exists** — read the verification-checklist.md and execute every rule. Create the file if it doesn't exist and there are findings that warrant persistent rules. +10. **ALWAYS update the Last Updated badge** — Phase 2.6 is mandatory. +11. **ALWAYS validate all CONCEPTS URLs** — Phase 2.7 is mandatory. Broken URLs are HIGH priority. +12. **Provide ready-to-paste rows** — for missing concepts, include the exact markdown table row so execution is copy-paste. +13. **Respect the existing table format** — match the column structure, badge pattern, and linking style of existing rows. diff --git a/.claude/hooks/sounds/pretooluse/pretooluse.mp3 b/.claude/hooks/sounds/pretooluse/pretooluse.mp3 index b6447a5ea2b39443068f5f99c5fdd09d0b17418c..df19f1b6f02c072a9c4b53e347244170ac1dc5c4 100644 GIT binary patch literal 14672 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 DB5)?h diff --git a/.claude/hooks/sounds/pretooluse/pretooluse.wav b/.claude/hooks/sounds/pretooluse/pretooluse.wav index 4f993d8939ba30fcbfdffeff814ae55955273a71..dc340c62e79e7ea452c48dbf71f2699752c852e0 100644 GIT binary patch literal 54762 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 literal 122958 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

>BQGZ-pnt*-}@y-E9lkn4<6L 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 BW#9k+ diff --git a/.claude/settings.json b/.claude/settings.json index e21046f..be61ace 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -13,7 +13,13 @@ "mcp__claude-in-chrome__*", "mcp__playwright__*", "mcp__reddit-mcp-server__get_post_details", - "mcp__reddit-mcp-server__search_reddit" + "mcp__reddit-mcp-server__search_reddit", + "mcp__tavily-web-search__tavily_search", + "mcp__tavily-web-search__tavily_extract", + "WebFetch(domain:raw.githubusercontent.com)", + "WebFetch(domain:docs.anthropic.com)", + "WebFetch(domain:support.claude.com)", + "WebFetch(domain:wttr.in)" ], "deny": [], "ask": [ diff --git a/.claude/skills/weather-fetcher/SKILL.md b/.claude/skills/weather-fetcher/SKILL.md index aea4558..83075ff 100644 --- a/.claude/skills/weather-fetcher/SKILL.md +++ b/.claude/skills/weather-fetcher/SKILL.md @@ -1,6 +1,7 @@ --- name: weather-fetcher -description: Instructions for fetching current weather temperature data for Karachi, Pakistan from wttr.in API +description: Instructions for fetching current weather temperature data for Dubai, UAE from wttr.in API +user-invocable: false --- # Weather Fetcher Skill @@ -9,28 +10,31 @@ This skill provides instructions for fetching current weather data. ## Task -Fetch the current temperature for Karachi, Pakistan in degrees Celsius (Centigrade). +Fetch the current temperature for Dubai, UAE in the requested unit (Celsius or Fahrenheit). ## Instructions -1. **Fetch Weather Data**: Use the WebFetch tool to get current weather data for Karachi from wttr.in API: - - URL: `https://wttr.in/Karachi?format=j1` +1. **Fetch Weather Data**: Use the WebFetch tool to get current weather data for Dubai from wttr.in API: + - URL: `https://wttr.in/Dubai?format=j1` - This returns JSON format weather data -2. **Extract Temperature**: From the JSON response, extract the current temperature in Celsius from the `current_condition` section. +2. **Extract Temperature**: From the JSON response, extract the current temperature: + - For Celsius: use `temp_C` from the `current_condition` section + - For Fahrenheit: use `temp_F` from the `current_condition` section -3. **Store Result**: Keep the temperature value for the next step (transformation). +3. **Return Result**: Return the temperature value and unit clearly. ## Expected Output After completing this skill's instructions: ``` -Current Karachi Temperature: [X]°C -Status: Successfully fetched weather data +Current Dubai Temperature: [X]°[C/F] +Unit: [Celsius/Fahrenheit] ``` ## Notes -- Only fetch the temperature, do not perform any transformations yet +- Only fetch the temperature, do not perform any transformations or write any files - Use wttr.in as it provides reliable, free weather data -- Return just the numeric temperature value clearly +- Return the numeric temperature value and unit clearly +- Support both Celsius and Fahrenheit based on the caller's request diff --git a/.claude/skills/weather-svg-creator/SKILL.md b/.claude/skills/weather-svg-creator/SKILL.md new file mode 100644 index 0000000..7c2df7e --- /dev/null +++ b/.claude/skills/weather-svg-creator/SKILL.md @@ -0,0 +1,72 @@ +--- +name: weather-svg-creator +description: Creates an SVG weather card showing the current temperature for + Dubai. Writes the SVG to orchestration-workflow/weather.svg and updates + orchestration-workflow/output.md. +--- + +# Weather SVG Creator Skill + +This skill creates a visual SVG weather card and writes the output files. + +## Task + +Create an SVG weather card displaying the temperature for Dubai, UAE, and write it along with a summary to output files. + +## Instructions + +You will receive the temperature value and unit (Celsius or Fahrenheit) from the calling context. + +### 1. Create SVG Weather Card + +Generate a clean SVG weather card with the following structure: + +```svg + + + Unit: [Celsius/Fahrenheit] + [value]°[C/F] + Dubai, UAE + +``` + +Replace `[Celsius/Fahrenheit]`, `[value]`, and `[C/F]` with actual values. + +### 2. Write SVG File + +Write the SVG content to `orchestration-workflow/weather.svg`. + +### 3. Write Output Summary + +Write to `orchestration-workflow/output.md`: + +```markdown +# Weather Result + +## Temperature +[value]°[C/F] + +## Location +Dubai, UAE + +## Unit +[Celsius/Fahrenheit] + +## SVG Card +![Weather Card](weather.svg) +``` + +## Expected Input + +Temperature value and unit from the weather-agent: +``` +Temperature: [X]°[C/F] +Unit: [Celsius/Fahrenheit] +``` + +## Notes + +- Use the exact temperature value and unit provided - do not re-fetch or modify +- The SVG should be a self-contained, valid SVG file +- Keep the design minimal and clean +- Both output files go in the `orchestration-workflow/` directory diff --git a/.claude/skills/weather-transformer/SKILL.md b/.claude/skills/weather-transformer/SKILL.md deleted file mode 100644 index 1bd9b16..0000000 --- a/.claude/skills/weather-transformer/SKILL.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -name: weather-transformer -description: Instructions for applying mathematical transformations to temperature data based on rules in orchestration-workflow/input.md ---- - -# Weather Transformer Skill - -This skill provides instructions for transforming temperature data. - -## Task - -Apply mathematical transformations to a temperature value and write results to output file. - -## Instructions - -1. **Read Transformation Rules**: Use the Read tool to read `orchestration-workflow/input.md` which contains the transformation instructions. - -2. **Apply Transformation**: Apply the transformation rule to the temperature value. - - Example: If instruction says "add +10", add 10 to the temperature - - Example: If instruction says "multiply by 2", multiply temperature by 2 - -3. **Write Output**: Use the Write tool to save the transformed result to `orchestration-workflow/output.md` with proper formatting. - -## Expected Input - -The temperature value from the weather-fetcher skill: -``` -Temperature: [X]°C -``` - -## Expected Output - -Write to `orchestration-workflow/output.md` with format: -```markdown -# Weather Transformation Result - -## Original Temperature -[X]°C - -## Transformation Applied -[description from orchestration-workflow/input.md] - -## Final Result -[Y]°C - -## Calculation Details -[X]°C [operation] = [Y]°C -``` - -## Notes - -- Read the exact transformation from orchestration-workflow/input.md - don't assume -- Show your work: include original value, transformation, and result -- Ensure orchestration-workflow/output.md is properly formatted and readable diff --git a/CLAUDE.md b/CLAUDE.md index 734f0a8..42f8a85 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,13 +9,13 @@ This is a best practices repository for Claude Code configuration, demonstrating ## Key Components ### Weather System (Example Workflow) -A demonstration of the **Command → Agent → Skills** architecture pattern: -- `/weather-orchestrator` command (`.claude/commands/weather-orchestrator.md`): Entry point that invokes the weather agent -- `weather` agent (`.claude/agents/weather.md`): Executes workflow using preloaded skills -- `weather-fetcher` skill (`.claude/skills/weather-fetcher/SKILL.md`): Instructions for fetching temperature from wttr.in API -- `weather-transformer` skill (`.claude/skills/weather-transformer/SKILL.md`): Instructions for applying transformation rules from `orchestration-workflow/input.md`, writes results to `orchestration-workflow/output.md` +A demonstration of two distinct skill patterns via the **Command → Agent → Skill** architecture: +- `/weather-orchestrator` command (`.claude/commands/weather-orchestrator.md`): Entry point — asks user for C/F, invokes agent, then invokes SVG skill +- `weather-agent` agent (`.claude/agents/weather-agent.md`): Fetches temperature using its preloaded `weather-fetcher` skill (agent skill pattern) +- `weather-fetcher` skill (`.claude/skills/weather-fetcher/SKILL.md`): Preloaded into agent — instructions for fetching temperature from wttr.in API +- `weather-svg-creator` skill (`.claude/skills/weather-svg-creator/SKILL.md`): Skill — creates SVG weather card, writes `orchestration-workflow/weather.svg` and `orchestration-workflow/output.md` -The agent has skills preloaded via the `skills` field, providing domain knowledge for sequential execution. See `orchestration-workflow/orchestration-workflow.md` for the complete flow diagram. +Two skill patterns: agent skills (preloaded via `skills:` field) vs skills (invoked via `Skill` tool). See `orchestration-workflow/orchestration-workflow.md` for the complete flow diagram. ### Skill Definition Structure Skills in `.claude/skills//SKILL.md` use YAML frontmatter: diff --git a/README.md b/README.md index a179951..33c3148 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # claude-code-best-practice practice makes claude perfect -![Last Updated](https://img.shields.io/badge/Last_Updated-Feb_28%2C_2026_07%3A59_PM_PKT-white?style=flat&labelColor=555) GitHub Stars +![Last Updated](https://img.shields.io/badge/Last_Updated-Mar_02%2C_2026_11%3A13_AM_PKT-white?style=flat&labelColor=555) GitHub Stars [![Best Practice](!/tags/best-practice.svg)](best-practice/) *Click on this badge to show the latest best practice*
[![Implemented](!/tags/implemented.svg)](implementation/) *Click on this badge to show implementation in this repo*
-[![Orchestration Workflow](!/tags/orchestration-workflow.svg)](orchestration-workflow/orchestration-workflow.md) *Click on this badge to see the Command → Agent → Skills orchestration workflow* +[![Orchestration Workflow](!/tags/orchestration-workflow.svg)](orchestration-workflow/orchestration-workflow.md) *Click on this badge to see the Command → Agent → Skill orchestration workflow*

Claude Code mascot jumping @@ -24,18 +24,15 @@ practice makes claude perfect | Feature | Location | Description | |---------|----------|-------------| | [**Commands**](https://code.claude.com/docs/en/skills) | `.claude/commands/.md` | [![Best Practice](!/tags/best-practice.svg)](best-practice/claude-commands.md) [![Implemented](!/tags/implemented.svg)](.claude/commands/) Entry-point prompts for workflows — invoke with `/command-name` | -| [**Sub-Agents**](https://code.claude.com/docs/en/sub-agents) | `.claude/agents/.md` | [![Best Practice](!/tags/best-practice.svg)](best-practice/claude-subagents.md) [![Implemented](!/tags/implemented.svg)](implementation/claude-subagents-implementation.md) Custom agents with their own name, color, tools, permissions, and model — usable as main agent or isolated subagents via the Task tool | +| [**Sub-Agents**](https://code.claude.com/docs/en/sub-agents) | `.claude/agents/.md` | [![Best Practice](!/tags/best-practice.svg)](best-practice/claude-subagents.md) [![Implemented](!/tags/implemented.svg)](implementation/claude-subagents-implementation.md) Custom agents with their own name, color, tools, permissions, and model · [Agent Teams](https://code.claude.com/docs/en/agent-teams) | | [**Skills**](https://code.claude.com/docs/en/skills) | `.claude/skills//SKILL.md` | [![Best Practice](!/tags/best-practice.svg)](best-practice/claude-commands.md#skills-frontmatter-fields) [![Implemented](!/tags/implemented.svg)](.claude/skills/) Reusable knowledge, workflows, and slash commands — load on-demand or invoke with `/skill-name` | -| [**Memory**](https://code.claude.com/docs/en/memory) | `CLAUDE.md` | Persistent context via CLAUDE.md files and `@path` imports that Claude sees every session | -| [**Rules**](https://code.claude.com/docs/en/memory#modular-rules-with-clauderules) | `.claude/rules/*.md` | Modular topic-specific instructions with optional path-scoping via frontmatter | -| [**Hooks**](https://code.claude.com/docs/en/hooks) | `.claude/hooks/` | Deterministic scripts that run outside the agentic loop on specific events | -| [**MCP Servers**](https://code.claude.com/docs/en/mcp) | `.claude/settings.json` | Model Context Protocol connections to external tools, databases, and APIs | -| [**Plugins**](https://code.claude.com/docs/en/plugins) | distributable packages | Bundles of skills, subagents, hooks, and MCP servers | -| [**Marketplaces**](https://code.claude.com/docs/en/discover-plugins) | plugin registries | Host and discover plugin collections | -| [**Sandboxing**](https://code.claude.com/docs/en/sandboxing) | runtime config | File and network isolation that improves safety while reducing permission prompts | -| [**Output Styles**](https://code.claude.com/docs/en/output-styles) | `.claude/settings.json` | Configurable response tone and format — Explanatory, Learning, or Custom | -| [**Settings**](https://code.claude.com/docs/en/settings) | `.claude/settings.json` | [![Best Practice](!/tags/best-practice.svg)](best-practice/claude-settings.md) [![Implemented](!/tags/implemented.svg)](.claude/settings.json) Hierarchical configuration system for Claude Code behavior (37 settings, 84 env vars) | -| [**Permissions**](https://code.claude.com/docs/en/iam) | `.claude/settings.json` | Fine-grained access control for tools and operations with wildcard syntax | +| [**Hooks**](https://code.claude.com/docs/en/hooks) | `.claude/hooks/` | [![Implemented](!/tags/implemented.svg)](.claude/hooks/) Deterministic scripts that run outside the agentic loop on specific events | +| [**MCP Servers**](https://code.claude.com/docs/en/mcp) | `.claude/settings.json`, `.mcp.json` | [![Implemented](!/tags/implemented.svg)](.mcp.json) Model Context Protocol connections to external tools, databases, and APIs | +| [**Plugins**](https://code.claude.com/docs/en/plugins) | distributable packages | Bundles of skills, subagents, hooks, and MCP servers · [Marketplaces](https://code.claude.com/docs/en/discover-plugins) | +| [**Settings**](https://code.claude.com/docs/en/settings) | `.claude/settings.json` | [![Best Practice](!/tags/best-practice.svg)](best-practice/claude-settings.md) [![Implemented](!/tags/implemented.svg)](.claude/settings.json) Hierarchical configuration system · [Permissions](https://code.claude.com/docs/en/permissions) · [Model Config](https://code.claude.com/docs/en/model-config) · [Output Styles](https://code.claude.com/docs/en/output-styles) · [Sandboxing](https://code.claude.com/docs/en/sandboxing) · [Keybindings](https://code.claude.com/docs/en/keybindings) · [Status Line](https://code.claude.com/docs/en/statusline) · [Fast Mode](https://code.claude.com/docs/en/fast-mode) | +| [**Memory**](https://code.claude.com/docs/en/memory) | `CLAUDE.md`, `~/.claude/projects//memory/` | [![Implemented](!/tags/implemented.svg)](CLAUDE.md) Persistent context via CLAUDE.md files and `@path` imports · [Auto Memory](https://code.claude.com/docs/en/memory) · [Rules](https://code.claude.com/docs/en/memory#organize-rules-with-clauderules) | +| [**Checkpointing**](https://code.claude.com/docs/en/checkpointing) | automatic (git-based) | Automatic tracking of file edits with rewind (`Esc Esc` or `/rewind`) and targeted summarization | +| [**Remote Control**](https://code.claude.com/docs/en/remote-control) | CLI / claude.ai | Continue local sessions from any device — phone, tablet, or browser · [Headless Mode](https://code.claude.com/docs/en/headless) | > **Note:** Custom slash commands have been merged into skills. Files in `.claude/commands/` still work, but skills (`.claude/skills/`) are recommended as they support additional features like supporting files, invocation control, and subagent execution. @@ -43,7 +40,7 @@ practice makes claude perfect ## Orchestration Workflow -Workflow orchestration using the **Command → Agent → Skills** pattern. +Workflow orchestration using the **Command → Agent → Skill** pattern.

Command Skill Agent Architecture Flow @@ -51,9 +48,9 @@ Workflow orchestration using the **Command → Agent → Skills** pattern. | Component | Role | Example | |-----------|------|---------| -| **Command** | Entry point, user interaction | `/weather-orchestrator` | -| **Agent** | Orchestrates workflow with preloaded skills | `weather` agent | -| **Skills** | Domain knowledge injected at startup | `weather-fetcher`, `weather-transformer` | +| **Command** | Entry point, user interaction | [`/weather-orchestrator`](.claude/commands/weather-orchestrator.md) | +| **Agent** | Fetches data with preloaded skill (agent skill) | [`weather-agent`](.claude/agents/weather-agent.md) with [`weather-fetcher`](.claude/skills/weather-fetcher/SKILL.md) | +| **Skill** | Creates output independently (skill) | [`weather-svg-creator`](.claude/skills/weather-svg-creator/SKILL.md) | See [orchestration-workflow](orchestration-workflow/orchestration-workflow.md) for implementation details. diff --git a/best-practice/claude-commands.md b/best-practice/claude-commands.md index 4372756..7453925 100644 --- a/best-practice/claude-commands.md +++ b/best-practice/claude-commands.md @@ -58,11 +58,11 @@ Custom commands are invoked by typing `/command-name` in Claude Code's interacti ```yaml --- -description: Fetch and transform weather data for Karachi +description: Fetch weather data for Dubai and create an SVG weather card model: haiku --- -Fetch the current temperature for Karachi, Pakistan and apply transformations. +Fetch the current temperature for Dubai, UAE and create a visual SVG weather card. ``` ## Example: Full-Featured Command (All Fields) @@ -161,7 +161,7 @@ Custom commands defined in `.claude/commands/` for this project: | Command | Description | Model | |---------|-------------|-------| -| [`weather-orchestrator`](../.claude/commands/weather-orchestrator.md) | Fetch and transform weather data for Karachi | haiku | +| [`weather-orchestrator`](../.claude/commands/weather-orchestrator.md) | Fetch weather data for Dubai and create an SVG weather card | haiku | | [`workflows/best-practice/workflow-claude-subagents`](../.claude/commands/workflows/best-practice/workflow-claude-subagents.md) | Track Claude Code subagents report changes and find what needs updating | — | --- diff --git a/best-practice/claude-subagents.md b/best-practice/claude-subagents.md index 57dd329..325c551 100644 --- a/best-practice/claude-subagents.md +++ b/best-practice/claude-subagents.md @@ -161,7 +161,7 @@ Custom agents defined in `.claude/agents/` for this project: | Agent | Model | Color | Tools | Skills | Memory | |-------|-------|-------|-------|--------|--------| | [`presentation-curator`](../.claude/agents/presentation-curator.md) | sonnet | magenta | Read, Write, Edit, Grep, Glob | presentation/vibe-to-agentic-framework, presentation/presentation-structure, presentation/presentation-styling | — | -| [`weather`](../.claude/agents/weather.md) | sonnet | green | WebFetch, Read, Write | weather-fetcher, weather-transformer | project | +| [`weather-agent`](../.claude/agents/weather-agent.md) | sonnet | green | WebFetch, Read | weather-fetcher | project | | [`workflow-claude-subagents-agent`](../.claude/agents/workflows/best-practice/workflow-claude-subagents-agent.md) | opus | blue | All (inherited) | — | — | --- diff --git a/changelog/best-practice/claude-subagents/verification-checklist.md b/changelog/best-practice/claude-subagents/verification-checklist.md index 33c2919..ec0aa05 100644 --- a/changelog/best-practice/claude-subagents/verification-checklist.md +++ b/changelog/best-practice/claude-subagents/verification-checklist.md @@ -97,6 +97,6 @@ Rules that verify all hyperlinks in the report are valid. | # | Category | Check | Depth | Compare Against | Added | Origin | |---|----------|-------|-------|-----------------|-------|--------| -| 8A | Local File Links | Verify all relative file links (e.g. `../.claude/agents/weather.md`) resolve to existing files | exists | local filesystem | 2026-02-28 | File moves (reports/ → best-practice/) broke relative links — must catch future breakage | +| 8A | Local File Links | Verify all relative file links (e.g. `../.claude/agents/weather-agent.md`) resolve to existing files | exists | local filesystem | 2026-02-28 | File moves (reports/ → best-practice/) broke relative links — must catch future breakage | | 8B | External URL Links | Verify all external URLs (e.g. `https://code.claude.com/docs/en/sub-agents`) return valid pages | exists | HTTP response | 2026-02-28 | External docs pages can be restructured or removed — must validate on each run | | 8C | Cross-File Reference Links | Verify links to other report files (e.g. `../claude-agent-memory.md`) resolve to existing files | exists | local filesystem | 2026-02-28 | Reports can be moved or renamed — cross-references must stay in sync | diff --git a/changelog/best-practice/concepts/changelog.md b/changelog/best-practice/concepts/changelog.md new file mode 100644 index 0000000..219041c --- /dev/null +++ b/changelog/best-practice/concepts/changelog.md @@ -0,0 +1,46 @@ +# Changelog — README CONCEPTS Section + +Tracks drift between the README CONCEPTS table and official Claude Code documentation. + +## Status Legend + +| Status | Meaning | +|--------|---------| +| `COMPLETE (reason)` | Action was taken and resolved successfully | +| `INVALID (reason)` | Finding was incorrect, not applicable, or intentional | +| `ON HOLD (reason)` | Action deferred, waiting on external dependency or user decision | + +--- + +## [2026-03-02 11:14 AM PKT] Claude Code v2.1.63 + +| # | Priority | Type | Action | Status | +|---|----------|------|--------|--------| +| 1 | HIGH | Broken URL | Fix Permissions URL from `/iam` to `/permissions` | COMPLETE (URL updated to /permissions) | +| 2 | HIGH | Missing Concept | Add Agent Teams row to CONCEPTS table | COMPLETE (row added with ~\/\.claude\/teams\/ location) | +| 3 | HIGH | Missing Concept | Add Keybindings row to CONCEPTS table | COMPLETE (row added with ~\/\.claude\/keybindings\.json location) | +| 4 | HIGH | Missing Concept | Add Model Configuration row to CONCEPTS table | COMPLETE (row added with \.claude\/settings\.json location) | +| 5 | HIGH | Missing Concept | Add Auto Memory row to CONCEPTS table | COMPLETE (row added with ~\/\.claude\/projects\/\/memory\/ location) | +| 6 | HIGH | Stale Anchor | Fix Rules URL anchor from `#modular-rules-with-clauderules` to `#organize-rules-with-clauderules` | COMPLETE (anchor updated) | +| 7 | MED | Missing Concept | Add Checkpointing row to CONCEPTS table | COMPLETE (row added with automatic git-based location) | +| 8 | MED | Missing Concept | Add Status Line row to CONCEPTS table | COMPLETE (row added with ~\/\.claude\/settings\.json location) | +| 9 | MED | Missing Concept | Add Remote Control row to CONCEPTS table | COMPLETE (row added with CLI \/ claude\.ai location) | +| 10 | MED | Missing Concept | Add Fast Mode row to CONCEPTS table | COMPLETE (row added with \.claude\/settings\.json location) | +| 11 | MED | Missing Concept | Add Headless Mode row to CONCEPTS table | COMPLETE (row added with CLI flag -p location) | +| 12 | LOW | Changed Description | Update Memory description to mention auto memory | COMPLETE (description and location updated) | +| 13 | LOW | Changed Location | Update MCP Servers location to include `.mcp.json` | COMPLETE (location updated to include .mcp.json) | +| 14 | LOW | Missing Badge | Add Implemented badge to Hooks row | COMPLETE (Implemented badge added linking to .claude/hooks/) | + +--- + +## [2026-03-02 11:57 AM PKT] Claude Code v2.1.63 + +| # | Priority | Type | Action | Status | +|---|----------|------|--------|--------| +| 1 | HIGH | Table Consolidation | Consolidate CONCEPTS table from 22 rows to 10 rows — fold related concepts as inline doc links | COMPLETE (22 → 10 rows) | +| 2 | MED | Merged Concept | Fold Marketplaces into Plugins row as inline link | COMPLETE (linked to /discover-plugins) | +| 3 | MED | Merged Concept | Fold Agent Teams into Sub-Agents row as inline link | COMPLETE (linked to /agent-teams) | +| 4 | MED | Merged Concept | Fold Permissions, Model Config, Output Styles, Sandboxing, Keybindings, Status Line, Fast Mode into Settings row as inline links | COMPLETE (7 concepts folded with doc links) | +| 5 | MED | Merged Concept | Fold Auto Memory and Rules into Memory row as inline links | COMPLETE (linked to /memory and /memory#organize-rules-with-clauderules) | +| 6 | MED | Merged Concept | Fold Headless Mode into Remote Control row as inline link | COMPLETE (linked to /headless) | +| 7 | LOW | Reorder | Reorder table by logical grouping: building blocks → extension → config → context → runtime | COMPLETE (grouped by concern, not chronology) | diff --git a/changelog/best-practice/concepts/verification-checklist.md b/changelog/best-practice/concepts/verification-checklist.md new file mode 100644 index 0000000..eb45f45 --- /dev/null +++ b/changelog/best-practice/concepts/verification-checklist.md @@ -0,0 +1,45 @@ +# Verification Checklist — README CONCEPTS Section + +Rules for verifying CONCEPTS table accuracy. Each rule is checked during every workflow run. + +## Rules + +### 1. External URL Liveness +- **Category**: URL Accuracy +- **What to check**: Every external URL in the CONCEPTS table (docs links) returns a valid page +- **Depth**: Fetch each URL and confirm it loads the expected page (not a redirect to wrong page) +- **Source to compare against**: `https://code.claude.com/docs/llms.txt` for canonical URL list +- **Date added**: 2026-03-02 +- **Origin**: Permissions URL `/iam` was found to redirect to Authentication page instead of Permissions + +### 2. Anchor Fragment Validity +- **Category**: URL Accuracy +- **What to check**: Any URL with an anchor fragment (`#section-name`) matches an actual heading on the target page +- **Depth**: Fetch the page and verify the heading exists with the expected anchor +- **Source to compare against**: Fetched page content +- **Date added**: 2026-03-02 +- **Origin**: Rules anchor `#modular-rules-with-clauderules` was stale; section renamed to `#organize-rules-with-clauderules` + +### 3. Missing Docs Pages +- **Category**: Missing Concepts +- **What to check**: Every page in the official docs index (`llms.txt`) that represents a user-facing feature has a corresponding row in the CONCEPTS table +- **Depth**: Compare full docs index against CONCEPTS table entries +- **Source to compare against**: `https://code.claude.com/docs/llms.txt` +- **Date added**: 2026-03-02 +- **Origin**: Multiple missing concepts found (Agent Teams, Keybindings, Model Configuration, etc.) + +### 4. Local Badge Link Validity +- **Category**: Badge Accuracy +- **What to check**: Every badge target path in the CONCEPTS table (`best-practice/*.md`, `implementation/*.md`, `.claude/*/`) points to a file or directory that exists +- **Depth**: Use Read/Glob to verify file existence +- **Source to compare against**: Local filesystem +- **Date added**: 2026-03-02 +- **Origin**: Initial checklist creation + +### 5. Description Currency +- **Category**: Description Accuracy +- **What to check**: Each concept's description accurately reflects the current official docs description +- **Depth**: Compare README description against the official page's meta description or first paragraph +- **Source to compare against**: Official docs page content +- **Date added**: 2026-03-02 +- **Origin**: Memory description missing auto memory; MCP Servers location missing `.mcp.json` diff --git a/implementation/claude-subagents-implementation.md b/implementation/claude-subagents-implementation.md index 3dd2601..df94f9b 100644 --- a/implementation/claude-subagents-implementation.md +++ b/implementation/claude-subagents-implementation.md @@ -1,6 +1,6 @@ # Sub-agents Implementation -![Last Updated](https://img.shields.io/badge/Last_Updated-Feb_28%2C_2026_07%3A59_PM_PKT-white?style=flat&labelColor=555) +![Last Updated](https://img.shields.io/badge/Last_Updated-Mar_02%2C_2026_07%3A59_PM_PKT-white?style=flat&labelColor=555) @@ -13,52 +13,48 @@ Implemented -The weather agent is implemented in this repo as an example of the **Command → Agent → Skills** architecture pattern. +The weather agent is implemented in this repo as an example of the **Command → Agent → Skill** architecture pattern, demonstrating two distinct skill patterns. --- ## Weather Agent -**File**: [`.claude/agents/weather.md`](../.claude/agents/weather.md) +**File**: [`.claude/agents/weather-agent.md`](../.claude/agents/weather-agent.md) ```yaml --- -name: weather -description: Use this agent PROACTIVELY when you need to fetch and transform - weather data for Karachi, Pakistan. This agent fetches real-time temperature - from wttr.in API and applies transformation rules from - orchestration-workflow/input.md, writing results to - orchestration-workflow/output.md. -tools: WebFetch, Read, Write +name: weather-agent +description: Use this agent PROACTIVELY when you need to fetch weather data for + Dubai, UAE. This agent fetches real-time temperature from wttr.in API + using its preloaded weather-fetcher skill. +tools: WebFetch, Read model: sonnet color: green memory: project skills: - weather-fetcher - - weather-transformer --- # Weather Agent -You are a specialized weather agent that fetches and transforms weather data -for Karachi, Pakistan. +You are a specialized weather agent that fetches weather data for Dubai, +Pakistan. ## Your Task Execute the weather workflow by following the instructions from your preloaded -skills sequentially: +skill: -1. **First**: Follow the `weather-fetcher` skill instructions to fetch the +1. **Fetch**: Follow the `weather-fetcher` skill instructions to fetch the current temperature -2. **Then**: Follow the `weather-transformer` skill instructions to apply - transformations and write results -3. **Finally**: Update your agent memory with the reading details for +2. **Report**: Return the temperature value and unit to the caller +3. **Memory**: Update your agent memory with the reading details for historical tracking ... ``` -The agent has two skills preloaded (`weather-fetcher` and `weather-transformer`) that provide step-by-step instructions for fetching from the wttr.in API and applying transformation rules. +The agent has one preloaded skill (`weather-fetcher`) that provides instructions for fetching from the wttr.in API. It returns the temperature value and unit to the calling command. --- @@ -66,14 +62,14 @@ The agent has two skills preloaded (`weather-fetcher` and `weather-transformer`) ```bash $ claude -> What is the weather in Karachi? +> /weather-orchestrator ``` --- Orchestration Workflow -The weather agent is the **Agent** in the Command → Agent → Skills orchestration pattern. It receives the workflow from the `/weather-orchestrator` command and executes it using two preloaded skills (`weather-fetcher`, `weather-transformer`) within a single execution context. +The weather agent is the **Agent** in the Command → Agent → Skill orchestration pattern. It receives the workflow from the `/weather-orchestrator` command and fetches temperature using its preloaded skill (`weather-fetcher`). The command then invokes the standalone `weather-svg-creator` skill to create the visual output.

Command Skill Agent Architecture Flow @@ -82,6 +78,5 @@ The weather agent is the **Agent** in the Command → Agent → Skills orchestra | Component | Role | This Repo | |-----------|------|-----------| | **Command** | Entry point, user interaction | `/weather-orchestrator` | -| **Agent** | Orchestrates workflow with preloaded skills | `weather` agent | -| **Skills** | Domain knowledge injected at startup | `weather-fetcher`, `weather-transformer` | - +| **Agent** | Fetches data with preloaded skill (agent skill) | `weather-agent` with `weather-fetcher` | +| **Skill** | Creates output independently (skill) | `weather-svg-creator` | diff --git a/orchestration-workflow/input.md b/orchestration-workflow/input.md deleted file mode 100644 index 09bb87a..0000000 --- a/orchestration-workflow/input.md +++ /dev/null @@ -1 +0,0 @@ -add +20 in the result. \ No newline at end of file diff --git a/orchestration-workflow/orchestration-workflow.md b/orchestration-workflow/orchestration-workflow.md index 51f1a9a..74ac8c4 100644 --- a/orchestration-workflow/orchestration-workflow.md +++ b/orchestration-workflow/orchestration-workflow.md @@ -1,6 +1,6 @@ # Orchestration Workflow -This document describes the **Command → Agent → Skills** orchestration workflow, demonstrated through a weather data fetching and transformation system. +This document describes the **Command → Agent (with skill) → Skill** orchestration workflow, demonstrated through a weather data fetching and SVG rendering system.

@@ -11,10 +11,14 @@ This document describes the **Command → Agent → Skills** orchestration workf ## System Overview -The weather system demonstrates the **Command → Agent → Skills** architecture pattern, where: -- A command orchestrates the workflow -- An agent executes tasks using preloaded skills -- Skills provide domain-specific knowledge and instructions +The weather system demonstrates two distinct skill patterns within a single orchestration workflow: +- **Agent Skills** (preloaded): `weather-fetcher` is injected into the `weather-agent` at startup as domain knowledge +- **Skills** (independent): `weather-svg-creator` is invoked directly by the command via the Skill tool + +This showcases the **Command → Agent → Skill** architecture pattern, where: +- A command orchestrates the workflow and handles user interaction +- An agent fetches data using its preloaded skill +- A skill creates the visual output independently ## Flow Diagram @@ -22,58 +26,60 @@ The weather system demonstrates the **Command → Agent → Skills** architectur ┌─────────────────────────────────────────────────┐ │ User Interaction │ └─────────────────────────────────────────────────┘ - │ - ▼ - ┌───────────────────────────┐ - │ /weather-orchestrator │ - │ Command │ - │ (Entry point) │ - └───────────────────────────┘ - │ - │ Task tool invocation - ▼ - ┌───────────────────────────┐ - │ weather │ - │ Agent │ - │ (Orchestrates flow) │ - │ │ - │ skills: │ - │ - weather-fetcher │ - │ - weather-transformer │ - └───────────────────────────┘ - │ - ┌────────────────┴────────────────┐ - │ │ - ▼ ▼ - ┌───────────────────────────┐ ┌───────────────────────────┐ - │ weather-fetcher │ │ weather-transformer │ - │ Skill │ │ Skill │ - │ (Preloaded knowledge) │ │ (Preloaded knowledge) │ - └───────────────────────────┘ └───────────────────────────┘ - │ │ - ▼ ▼ - ┌───────────────────────────┐ ┌───────────────────────────┐ - │ wttr.in API │ │ orchestration-workflow/ │ - │ Fetch Temperature │ │ Read Transform Rules │ - │ for Karachi │ └───────────────────────────┘ - └───────────────────────────┘ │ - │ ▼ - │ Returns: 26°C ┌───────────────────────────┐ - │ │ Apply Transform │ - └──────────────────▶│ 26 + 10 = 36°C │ - └───────────────────────────┘ - │ - ▼ - ┌─────────────────────────────────────┐ - │ orchestration-workflow/output.md │ - │ Write Results │ - └─────────────────────────────────────┘ - │ - ▼ - ┌───────────────────────────┐ - │ Display Summary │ - │ to User │ - └───────────────────────────┘ + │ + ▼ + ┌───────────────────────────┐ + │ /weather-orchestrator │ + │ Command │ + │ (Entry point) │ + └───────────────────────────┘ + │ + ┌─────────────┤ + │ │ + ▼ │ + ┌──────────────┐ │ + │ AskUser │ │ + │ C° or F°? │ │ + └──────────────┘ │ + │ │ + ▼ │ + Step 2: Task tool │ + │ │ + ▼ │ + ┌───────────────────────────┐ + │ weather-agent │ + │ Agent │ + │ │ + │ preloaded skill: │ + │ - weather-fetcher │ + └───────────────────────────┘ + │ + │ Returns: temperature + unit + │ + ▼ + Step 3: Skill tool + │ + ▼ + ┌───────────────────────────┐ + │ weather-svg-creator │ + │ Skill │ + │ │ + │ Creates SVG card │ + │ Writes output files │ + └───────────────────────────┘ + │ + ┌────────┴────────┐ + │ │ + ▼ ▼ +┌──────────────────┐ ┌──────────────────┐ +│ weather.svg │ │ output.md │ +└──────────────────┘ └──────────────────┘ + │ + ▼ + ┌───────────────────────────┐ + │ Display Summary │ + │ to User │ + └───────────────────────────┘ ``` ## Component Details @@ -82,116 +88,118 @@ The weather system demonstrates the **Command → Agent → Skills** architectur #### `/weather-orchestrator` (Command) - **Location**: `.claude/commands/weather-orchestrator.md` -- **Purpose**: Entry point for weather operations -- **Action**: Invokes the weather agent via Task tool +- **Purpose**: Entry point — orchestrates the workflow and handles user interaction +- **Actions**: + 1. Asks user for temperature unit preference (Celsius/Fahrenheit) + 2. Invokes weather-agent via Task tool + 3. Invokes weather-svg-creator via Skill tool - **Model**: haiku -### 2. Agent with Skills +### 2. Agent with Preloaded Skill (Agent Skill) -#### `weather` (Agent) -- **Location**: `.claude/agents/weather.md` -- **Purpose**: Execute the weather workflow using preloaded skills -- **Skills**: `weather-fetcher`, `weather-transformer` -- **Tools Available**: WebFetch, Read, Write -- **Model**: haiku +#### `weather-agent` (Agent) +- **Location**: `.claude/agents/weather-agent.md` +- **Purpose**: Fetch weather data using its preloaded skill +- **Skills**: `weather-fetcher` (preloaded as domain knowledge) +- **Tools Available**: WebFetch, Read +- **Model**: sonnet - **Color**: green +- **Memory**: project -The agent has skills preloaded into its context at startup. It follows the instructions from each skill sequentially. +The agent has `weather-fetcher` preloaded into its context at startup. It follows the skill's instructions to fetch the temperature and returns the value to the command. -### 3. Skills +### 3. Skill + +#### `weather-svg-creator` (Skill) +- **Location**: `.claude/skills/weather-svg-creator/SKILL.md` +- **Purpose**: Create a visual SVG weather card and write output files +- **Invocation**: Via Skill tool from the command (not preloaded into any agent) +- **Outputs**: + - `orchestration-workflow/weather.svg` — SVG weather card + - `orchestration-workflow/output.md` — Weather summary + +### 4. Preloaded Skill #### `weather-fetcher` (Skill) - **Location**: `.claude/skills/weather-fetcher/SKILL.md` - **Purpose**: Instructions for fetching real-time temperature data -- **Data Source**: wttr.in API for Karachi, Pakistan -- **Output**: Temperature in Celsius (numeric value) - -#### `weather-transformer` (Skill) -- **Location**: `.claude/skills/weather-transformer/SKILL.md` -- **Purpose**: Instructions for applying mathematical transformations -- **Input Source**: `orchestration-workflow/input.md` (transformation rules) -- **Output Destination**: `orchestration-workflow/output.md` (formatted results) - -### 4. Data Files - -#### `orchestration-workflow/input.md` -- **Purpose**: Stores transformation rules -- **Format**: Natural language instructions (e.g., "add +10 in the result") -- **Access**: Read by weather agent following weather-transformer skill - -#### `orchestration-workflow/output.md` -- **Purpose**: Stores formatted transformation results -- **Format**: Structured markdown with sections: - - Original Temperature - - Transformation Applied - - Final Result - - Calculation Details +- **Data Source**: wttr.in API for Dubai, UAE +- **Output**: Temperature value and unit (Celsius or Fahrenheit) +- **Note**: This is an agent skill — preloaded into `weather-agent`, not invoked directly ## Execution Flow 1. **User Invocation**: User runs `/weather-orchestrator` command 2. **User Prompt**: Command asks user for preferred temperature unit (Celsius/Fahrenheit) -3. **Agent Invocation**: Command invokes weather agent via Task tool +3. **Agent Invocation**: Command invokes `weather-agent` via Task tool 4. **Skill Execution** (within agent context): - - **Step 1**: Agent follows `weather-fetcher` skill instructions to fetch temperature from wttr.in - - **Step 2**: Agent follows `weather-transformer` skill instructions to: - - Read transformation rules from `orchestration-workflow/input.md` - - Apply rules to the fetched temperature - - Write formatted results to `orchestration-workflow/output.md` -5. **Result Display**: Summary shown to user with: + - Agent follows `weather-fetcher` skill instructions to fetch temperature from wttr.in + - Agent returns the temperature value and unit to the command +5. **SVG Creation**: Command invokes `weather-svg-creator` via Skill tool + - Skill creates SVG weather card at `orchestration-workflow/weather.svg` + - Skill writes summary to `orchestration-workflow/output.md` +6. **Result Display**: Summary shown to user with: - Temperature unit requested - - Original temperature - - Transformation rule applied - - Final transformed result + - Temperature fetched + - SVG card location + - Output file location ## Example Execution ``` Input: /weather-orchestrator -├─ Asks: Celsius or Fahrenheit? -├─ User: Celsius -├─ Task: weather agent (via Task tool) -│ ├─ Skills Preloaded: -│ │ ├─ weather-fetcher (knowledge) -│ │ └─ weather-transformer (knowledge) -│ ├─ Step 1 (weather-fetcher skill): -│ │ └─ Fetches from wttr.in → 26°C -│ ├─ Step 2 (weather-transformer skill): -│ │ ├─ Reads: orchestration-workflow/input.md ("add +10") -│ │ ├─ Calculates: 26 + 10 = 36°C -│ │ └─ Writes: orchestration-workflow/output.md -│ └─ Returns: Complete report +├─ Step 1: Asks: Celsius or Fahrenheit? +│ └─ User: Celsius +├─ Step 2: Task tool → weather-agent +│ ├─ Preloaded Skill: +│ │ └─ weather-fetcher (domain knowledge) +│ ├─ Fetches from wttr.in → 26°C +│ └─ Returns: temperature=26, unit=Celsius +├─ Step 3: Skill tool → /weather-svg-creator +│ ├─ Creates: orchestration-workflow/weather.svg +│ └─ Writes: orchestration-workflow/output.md └─ Output: ├─ Unit: Celsius - ├─ Original: 26°C - ├─ Transform: Add +10 - └─ Result: 36°C + ├─ Temperature: 26°C + ├─ SVG: orchestration-workflow/weather.svg + └─ Summary: orchestration-workflow/output.md ``` ## Key Design Principles -1. **Command → Agent → Skills**: Three-tier architecture for clean separation -2. **Skills as Knowledge**: Skills provide domain knowledge preloaded into agent context -3. **Single Agent**: One agent handles multiple related tasks using its skills -4. **Sequential Execution**: Agent follows skill instructions in order -5. **Configurable Transformations**: Rules stored externally in input files -6. **Structured Output**: Results formatted consistently in output files +1. **Two Skill Patterns**: Demonstrates both agent skills (preloaded) and skills (invoked directly) +2. **Command as Orchestrator**: The command handles user interaction and coordinates the workflow +3. **Agent for Data Fetching**: The agent uses its preloaded skill to fetch data, then returns it +4. **Skill for Output**: The SVG creator runs independently, receiving data from the command context +5. **Clean Separation**: Fetch (agent) → Render (skill) — each component has a single responsibility -## Architecture Pattern: Agent-Skills +## Architecture Patterns -This system demonstrates the **agent-skills pattern** where: +### Agent Skill (Preloaded) ```yaml -# In agent definition (.claude/agents/weather.md) +# In agent definition (.claude/agents/weather-agent.md) --- -name: weather +name: weather-agent skills: - - weather-fetcher - - weather-transformer + - weather-fetcher # Preloaded into agent context at startup --- ``` - **Skills are preloaded**: Full skill content is injected into agent's context at startup - **Agent uses skill knowledge**: Agent follows instructions from preloaded skills -- **No dynamic invocation**: Skills are not invoked separately; they're reference material -- **Single execution context**: All work happens within one agent's context +- **No dynamic invocation**: Skills are reference material, not invoked separately + +### Skill (Direct Invocation) + +```yaml +# In skill definition (.claude/skills/weather-svg-creator/SKILL.md) +--- +name: weather-svg-creator +description: Creates an SVG weather card... +--- +``` + +- **Invoked via Skill tool**: Command calls `Skill(skill: "weather-svg-creator")` +- **Independent execution**: Runs in the command's context, not inside an agent +- **Receives data from context**: Uses temperature data already available in the conversation diff --git a/orchestration-workflow/output.md b/orchestration-workflow/output.md index 717c4da..eceb653 100644 --- a/orchestration-workflow/output.md +++ b/orchestration-workflow/output.md @@ -1,13 +1,13 @@ -# Weather Transformation Result +# Weather Result -## Original Temperature -27°C +## Temperature +32°C -## Transformation Applied -Add +20 to the result +## Location +Dubai, UAE -## Final Result -47°C +## Unit +Celsius -## Calculation Details -27°C + 20 = 47°C +## SVG Card +![Weather Card](weather.svg) diff --git a/orchestration-workflow/weather.svg b/orchestration-workflow/weather.svg new file mode 100644 index 0000000..bb3abc4 --- /dev/null +++ b/orchestration-workflow/weather.svg @@ -0,0 +1,6 @@ + + + Unit: Celsius + 32°C + Dubai, UAE +