verify-language-support
Validates parser and resolver behavior for language support updates in clarity.
Install
mkdir -p .claude/skills/verify-language-support && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12756" && unzip -o skill.zip -d .claude/skills/verify-language-support && rm skill.zipInstalls to .claude/skills/verify-language-support
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
End-to-end workflow for validating language support changes in the clarity dependency graph analyzerKey capabilities
- →Verify parser and resolver behavior for language modules
- →Add or update regression tests for changed logic
- →Validate language support on real repositories
- →Build a review queue of commits for graph rendering
- →Render dependency graphs for individual commits in the IDE
- →Self-verify rendered graphs against commit patches
How it works
This skill provides an end-to-end workflow for validating language support in the clarity dependency graph analyzer by testing parsers, resolving behavior, and interactively verifying graphs on real repositories.
Inputs & outputs
When to use verify-language-support
- →Validate new language support
- →Run regression tests for dependency graphs
- →Verify parser behavior on real code
- →Generate dependency graphs for review
About this skill
Use this workflow to validate language support end-to-end in clarity.
Prepare
- Identify the target language module under
depgraph/<language>/. - Identify affected command output in
cmd/languages/when maturity level changes. - Confirm current local changes with
git status --short.
Verify Parser/Resolver Behavior
- Run targeted tests first:
go test ./depgraph/<language>
- If behavior changed, add or update regression tests near changed logic:
- Parser tests in
depgraph/<language>/parser_*_test.go - Resolver tests in
depgraph/<language>/*resolver*_test.go(or add one)
- Parser tests in
- Prefer symbol-usage-based assertions over package-level assumptions.
Validate on a Real Repository (Always Interactive)
- Pick a representative repo for the language.
- Clone into
/tmpwith a shallow depth of 50:git clone --depth 50 <repo-url> /tmp/<repo>
- Build a review queue before rendering graphs:
- Use non-merge commits only.
- Use commits with
5-30changed files. - Prioritize commits that are mostly about the target language (based on file extensions/paths).
- Each selected commit should include at least a few files in the target language (minimum 3 unless unavailable).
- Default queue size is 10 commits unless the user requests a different count.
- Show the queue to the user before starting graph renders.
- Render exactly one commit at a time in the IDE:
- Show commit context immediately before the diagram:
git -C /tmp/<repo> show -s --format='%h %s' <sha>
- In chat, print the commit message line before the Mermaid block so the user knows what change they are reviewing.
go run . show --repo /tmp/<repo> -c <sha> -f mermaid- Always include the rendered diagram directly in chat (Mermaid fenced block). If Mermaid is not visible, provide DOT/text fallback in chat.
- If diagrams still are not visible to the user, generate and open the graph URL in the browser (for example
clarity show -uor equivalent URL output).
- Show commit context immediately before the diagram:
- Self-verify each rendered commit before asking the user to continue:
- Read the commit patch and changed file list:
git -C /tmp/<repo> show --stat --patch --minimal <sha>
- For large patches, inspect the changed target-language files first.
- Confirm rendered edges are supported by source-level relationships such as imports, includes, module references, public declarations, re-export chains, test-to-production references, and cycles.
- Confirm notable missing edges are expected. For example, verify that isolated changed files truly do not import or reference each other, or that they are parallel copies, generated snapshots, docs, config, or independent tests.
- Include a short verification note with the graph that says what was checked and whether the relationships look correct, missing, or suspicious.
- If the graph appears wrong, pause the queue and investigate before moving on.
- Read the commit patch and changed file list:
- Pause after each commit and wait for explicit user confirmation (for example,
next) before continuing. - Continue this request/response loop until the queue is complete or the user stops.
- After completing the default 10-commit queue, ask:
- "Do you want me to proceed with updating maturity level and committing the changes?"
- If the user says yes, do it immediately without extra confirmation:
- Update module maturity as justified by validation results.
- Update
cmd/languagesgolden output if changed. - Run quality gates (
make lint,make test). - Commit the changes with a focused
type: subjectmessage.
- Keep validation focused on edge quality for each commit:
- Production file incorrectly depends on test file
- Fan-out caused by same-name declarations across source sets/targets
- Missing edges where symbols are clearly referenced
- If the user asks a side question during review (for example what
.inmeans), answer briefly and then resume the queue when prompted.
Fixing Issues
- Update parser extraction to collect real referenced symbols.
- Update resolver logic to map imports/references to concrete declarations.
- Avoid package-wide linking for imports.
- For ambiguous symbol definitions (multiple files define same symbol), skip linking unless disambiguation is available.
- Add regression tests covering the exact failing pattern from real commits.
Quality Gates
- Run lint and full tests:
make lintmake test
- If
cmd/languagesoutput changes (for example, maturity icon changed), update golden:go test ./cmd/languages -run TestLanguagesCommand_PrintsSupportedLanguagesAndExtensions -update- Re-run
make test
Review Graph of Local Changes
- If 3 or more files changed, run:
./clarity show -f mermaid
- Ensure test-to-code directionality and dependency density look plausible.
Handoff Checklist
- Summarize what changed and why.
- Include exact files touched.
- Include command results for
make lintandmake test. - If commit is requested, use one focused commit message in
type: subjectformat.
When not to use it
- →When the task does not involve validating language support changes in clarity
- →When the goal is to perform package-wide linking for imports
- →When the goal is to skip interactive validation on a real repository
Limitations
- →Requires interactive validation on a real repository
- →Does not permit package-wide linking for imports
- →Does not permit skipping individual commit review
How it compares
This workflow systematically validates language support changes through targeted testing and interactive graph review on real codebases, ensuring accuracy and preventing regressions, unlike isolated unit testing.
Compared to similar skills
verify-language-support side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| verify-language-support (this skill) | 0 | 2mo | No flags | Advanced |
| go-dev-guidelines | 14 | 9mo | No flags | Intermediate |
| architecture-patterns | 55 | 2mo | No flags | Advanced |
| workflow-orchestration-patterns | 10 | 2mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
go-dev-guidelines
jumppad-labs
This skill should be used when writing, refactoring, or testing Go code. It provides idiomatic Go development patterns, TDD-based workflows, project structure conventions, and testing best practices using testify/require and mockery. Activate this skill when creating new Go features, services, packages, tests, or when setting up new Go projects.
architecture-patterns
wshobson
Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use when architecting complex backend systems or refactoring existing applications for better maintainability.
workflow-orchestration-patterns
wshobson
Design durable workflows with Temporal for distributed systems. Covers workflow vs activity separation, saga patterns, state management, and determinism constraints. Use when building long-running processes, distributed transactions, or microservice orchestration.
code-formatting
openshift
MANDATORY: When writing Go tests, you MUST use 'When...it should...' format for ALL test names. When writing any Go code, you MUST remind user to run 'make lint-fix' and 'make verify'. These are non-negotiable HyperShift requirements.
tidb-test-guidelines
pingcap
Decide where to place TiDB tests and how to write them (basic structure, naming, testdata usage). Use when asked about test locations, writing conventions, shard_count limits, casetest categorization, or when reviewing test changes in code review.
generate-subsystem-skills
llama-farm
Generate specialized skills for each subsystem in the monorepo. Creates shared language skills and subsystem-specific checklists for high-quality AI code generation.