trace-it
Before modifying shared code (utilities, types, configs, base classes), traces all callers and dependents first. Prevents "fixed one thing, broke three others." Use when editing files in shared/, utils/, lib/, or anything imported by 3+ files.
Works with
--- name: trace-it description: Before modifying shared code (utilities, types, configs, base classes), traces all callers and dependents first. Prevents "fixed one thing, broke three others." Use when editing files in shared/, utils/, lib/, or anything imported by 3+ files. license: MIT --- # Trace It ## Purpose Shared code is high-leverage but high-risk. Change a utility function and you might break 10 callers. Change a type definition and you invalidate assumptions across the codebase. This skill forces you to trace impact before editing. ## When To Activate - Editing files in: `utils/`, `lib/`, `shared/`, `common/`, `core/` - Modifying exported functions, classes, or types - Changing function signatures (parameters, return types) - Editing config files or constants - Renaming anything that might be imported elsewhere - Modifying base classes or interfaces - User says "change how X works" for foundational code ## Instructions ### Before Modifying Shared Code ### Step 1: Find All Callers ```bash # Find imports/requires of this file grep -r "from.*['\"].*filename" src/ grep -r "import.*filename" src/ grep -r "require.*filename" src/ # Find usages of specific function/class grep -r "functionName" src/ --include="*.ts" ``` Document what you find: ```markdown ## Dependency Trace: [file or function name] **Direct callers:** [count] - `src/api/handler.ts:23` - uses for validation - `src/services/user.ts:45` - uses for formatting - `src/utils/helpers.ts:12` - re-exports it **Indirect dependents:** [count] - Files that import the direct callers ``` ### Step 2: Assess Impact For each caller, determine: | Caller | How it uses this | Will change break it? | |--------|------------------|----------------------| | `handler.ts` | Calls `validate(input)` | Yes - signature changes | | `user.ts` | Uses return value | No - return type same | **Impact level:** - **Low:** 1-2 callers, simple usages - **Medium:** 3-5 callers, varied usages - **High:** 6+ callers OR complex/varied usages ### Step 3: Plan the Change For **Low impact:** Proceed, update callers inline. For **Medium impact:** 1. Make change backward-compatible if possible 2. Update all callers in same commit 3. Test each caller's behavior For **High impact:** 1. Consider: Is this change necessary? 2. Create migration plan 3. Consider deprecation period 4. Update incrementally with tests ### Signature Changes When changing function signatures: ```markdown ## Signature Change **Before:** `function process(data: string): Result` **After:** `function process(data: string, options?: Options): Result` **Breaking:** No (new param is optional) **Callers to update:** 0 required, 5 could benefit ## OR **Before:** `function process(data: string): Result` **After:** `function process(data: ProcessInput): Result` **Breaking:** Yes **Callers to update:** 8 files **Migration:** [list each file and required change] ``` ## Output Format ```markdown ## Trace: [what you're changing] **Callers found:** [count] **Impact level:** [Low/Medium/High] **Changes required:** - [ ] `file1.ts:line` - [what needs updating] - [ ] `file2.ts:line` - [what needs updating] **Verified after change:** - [ ] All callers updated - [ ] No new type errors - [ ] Tests pass ``` ## NEVER - Modify shared code without tracing callers first - Change function signatures assuming "it's probably fine" - Update shared code and only test one caller - Forget to check re-exports (file A exports from file B) - Assume grep found everything (check for dynamic imports) ## ALWAYS - Trace before touching shared code - Document the caller count and impact level - Update ALL callers in the same change - Verify no type errors after the change - Check for string-based references (dynamic imports, configs) ## Example **User:** "Rename the `formatDate` function to `formatDateTime`" **Trace:** ```bash grep -r "formatDate" src/ ``` **Found:** ``` src/utils/date.ts:15 - definition src/components/Header.tsx:8 - import src/components/EventCard.tsx:12 - import src/pages/Dashboard.tsx:45 - import src/api/events.ts:23 - import src/utils/index.ts:5 - re-export ``` **Impact:** 6 files reference this. High impact. **Plan:** 1. Rename in `date.ts` 2. Update re-export in `utils/index.ts` 3. Update imports in all 4 consumer files 4. Verify: `grep -r "formatDate" src/` returns nothing **After completion:** > Renamed `formatDate` to `formatDateTime` across 6 files. > Verified: no remaining references to old name.
More Observability skills
google-agents-cli-observability
google/agents-cli
>
azure-observability
microsoft/azure-skills
Azure Observability Services including Azure Monitor, Application Insights, Log Analytics, Alerts, and Workbooks. Provides metrics, APM, distributed tracing, KQL queries, and interactive reports. USE FOR: Azure Monitor, Application Insights, Log Analytics, Alerts, Workbooks, metrics, APM, distributed tracing, KQL queries, interactive reports, observability, monitoring dashboards. DO NOT USE FOR: instrumenting apps with App Insights SDK (use appinsights-instrumentation), querying Kusto/ADX clusters (use azure-kusto), cost analysis (use azure-cost-optimization).
social
coreyhaines31/marketingskills
When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms, or wants to do social listening and engagement triage. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' 'viral content,' 'what should I post,' 'repurpose this content,' 'tweet ideas,' 'LinkedIn carousel,' 'social media strategy,' 'grow my following,' 'TikTok video,' 'Reels,' 'Shorts,' 'video script,' 'video hook,' 'short-form video,' 'create a reel,' 'social listening,' 'brand mentions,' 'competitor monitoring,' 'top posts to comment on,' 'find people asking for,' 'carousel,' 'slide-by-slide,' or 'document post.' Use this for social media content creation, repurposing, scheduling, short-form video scripting, and social listening. For broader content strategy, see content-strategy. For paid ads, see ad-creative. For earned media, see public-relations.

