skills/base/bill-quality-check/SKILL.md
Use when you want a generic quality-check entry point that detects the dominant stack in scope and delegates to the matching stack-specific quality-check skill. Use when user mentions run checks, validate, lint, format, quality check, or run quality.
npx skillsauth add sermilion/mobile-development-plugin bill-quality-checkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this as the neutral validation entry point for feature workflows and standalone quality-check runs.
Keep this skill thin:
If .agents/skill-overrides.md exists in the project root and contains a ## bill-quality-check section, read that section and apply it as the highest-priority instruction for this skill. The matching section may refine or replace parts of the default workflow below.
If an AGENTS.md file exists in the project root, apply it as project-wide guidance.
Precedence for this skill: matching .agents/skill-overrides.md section > AGENTS.md > built-in defaults.
Determine the current unit of work:
Inspect the changed files and repo markers before routing.
Before routing, read stack-routing.md. Use it as the source of truth for:
This supporting file lives beside SKILL.md; keep the routing rules in this skill aligned with it.
Do not redefine stack signals here unless a route-specific exception is truly unique to quality-check behavior.
kmp signals dominate, delegate to the canonical quality-check implementation for the kmp package when it exists.backend-kotlin signals dominate, delegate to the canonical quality-check implementation for the backend-kotlin package when it exists.kotlin signals dominate, delegate to the canonical bill-kotlin-quality-check skill when it exists.agent-config signals dominate, delegate to the canonical bill-agent-config-quality-check skill when it exists.php signals dominate, delegate to the canonical bill-php-quality-check skill when it exists.go signals dominate, delegate to the canonical bill-go-quality-check skill when it exists.kmp and backend-kotlin quality-check implementations exist, route kmp, backend-kotlin, and kotlin work to bill-kotlin-quality-check.bill-<stack>-quality-check skill when it exists in the available skill catalog.When routing to another skill, pass along:
AGENTS.md guidance and matching .agents/skill-overrides.md sectionsSKILL.md as the primary rubricRouted to: <skill-name(s)>
Detected stack: <stack> | Mixed | Unknown/Unsupported
Signals: <markers>
Reason: <why this stack-specific quality-checker was selected>
<delegated quality-check output, or "No matching skill available yet" for unsupported>
This skill is telemeterable via the quality_check_started and quality_check_finished MCP tools. This router does not emit telemetry on its own — routing metadata is carried in the concrete stack-specific skill's telemetry call.
For the shared telemetry contract including the orchestrated flag semantics, follow telemetry-contract.md.
Standalone invocation (user runs bill-quality-check directly):
quality_check_started once stack routing is decided, with routed_skill, detected_stack, scope_type (files / working_tree / branch_diff / repo), and initial_failure_count (0 if the first check has not run yet).session_id.quality_check_finished when the quality-check loop finishes, with session_id, final_failure_count, iterations, result (pass / fail / skipped / unsupported_stack), optional failing_check_names and unsupported_reason.Orchestrated invocation (invoked by another skill such as bill-feature-implement that passes orchestrated=true):
quality_check_started entirely.quality_check_finished once with orchestrated=true and all started+finished fields combined (routed_skill, detected_stack, scope_type, initial_failure_count, final_failure_count, iterations, result, failing_check_names, unsupported_reason, duration_seconds).{"mode": "orchestrated", "telemetry_payload": {...}}. Return that payload to the orchestrator — it will embed it in its own finished event.The orchestrated flag must come from the caller. Never assume orchestrated mode from ambient state.
development
Use when running a governed editorial assignment desk from Readian recommendations through candidate selection and source-backed story packs.
testing
Use when reviewing unit tests in a file, current changes, or a commit to flag low-value, tautological, or coverage-only tests that do not validate real behavior. Use when user mentions check test quality, review tests, tautological tests, weak tests, or coverage-padding.
data-ai
Use when removing an existing skill or platform skill set and cleaning up agent installs, manifests, and supporting links.
development
Use when you want a generic quality-check entry point that detects the dominant stack in scope and delegates to the matching stack-specific quality-check skill. Use when user mentions run checks, validate, lint, format, quality check, or run quality.