skills/check/SKILL.md
This skill should be used when the user wants to verify their changes before pushing, or update the project's rule checklists. Phase 1: validate changed files against .hoyeon/rules/ checklists and report PASS/WARN. Phase 2 (conditional): propose rule additions when unmatched patterns are detected. Essential before git push. Trigger phrases: "check", "checklist", "verify changes", "what did I miss", "pre-push check", "cascading changes", "any more changes needed", "update checklist", "update rules", "rules update", "체크", "체크리스트", "변경 확인", "빠뜨린 거 없나", "push 전 확인", "뭐 더 건드려야 해?", "연쇄 변경 확인", "규칙 갱신".
npx skillsauth add team-attention/hoyeon 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.
Analyze git diff against
.hoyeon/rules/to catch missed cascading changes, then propose rule updates when new unmatched patterns are detected.
Prerequisite: The project must have a .hoyeon/rules/ directory containing rule files with YAML frontmatter. If .hoyeon/rules/ does not exist, guide the user to create it: mkdir -p .hoyeon/rules, then help them write their first rule file following ${baseDir}/references/rules-authoring.md.
Two-phase structure:
# Gather committed + uncommitted changes
git diff --name-only HEAD~1..HEAD
git diff --name-only --cached
git diff --name-only
Deduplicate and store as CHANGED_FILES.
Read YAML frontmatter from all .hoyeon/rules/*.md files to construct the rule graph. Refer to references/rules-authoring.md ("Structure" section) for the frontmatter schema.
Matching order:
CHANGED_FILES against every rule's triggers patternsdepends_on edges from matched rules to pull in related rules (1-depth only)UNMATCHED_FILES (used in Phase 2)Note: Meta documents (e.g., RULES.md) are excluded from matching.
Spawn one subagent per active rule using the Agent tool (subagent_type="general-purpose") and run them in parallel.
Pass each subagent:
CHANGED_FILES listgit diff)Each subagent:
Collect all subagent results and output them grouped by category: domain rules first, then concern rules, then pipeline rules.
## Phase 1: Verification Results
### PASS (N items)
#### domain
- [billing] schema.ts changed -> migration file created
#### concern
- [infra] .env changed -> terraform synced
#### pipeline
- [api-codegen] swagger changed -> types regenerated
### WARN (N items)
#### concern
- [ux] en.json changed -> ko.json not updated
### Not Applicable (N items)
- [docs] no docs/ changes
If active rules have agents or commands fields:
pnpm generate:api).For each WARN item:
Phase 2 trigger conditions — Execute Phase 2 if ANY of the following is true:
UNMATCHED_FILEScontains at least one meaningful source file (.ts,.tsx,.json,.yaml,.tf, etc.) — exclude meta files (.md, lock files, etc.)- Any WARN from Phase 1 indicates a rule gap (not a rule violation)
Skip condition: If
UNMATCHED_FILESis empty AND no WARNs indicate rule gaps, skip Phase 2 and proceed directly to follow-up actions (step 9).Distinguishing rule gaps from rule violations: If a WARN was caused by violating an existing checklist item, it is a rule violation (handled in Phase 1). If no checklist item exists anywhere that could have caught the WARN in advance, it is a rule gap — this triggers Phase 2.
Analyze UNMATCHED_FILES and Phase 1 WARN results to identify:
triggersRead references/rules-authoring.md for authoring guidelines, then classify findings:
category field (domain | concern | pipeline)## Phase 2: Rule Update Proposals
1. [subscriptions.md] Add sync check for URL detection functions across 3 apps
- Reason: isSubstackUrl() duplicated in 3 locations, only 2 updated
2. [New file: webhook.md] Add sync check for webhook event changes
- category: domain
- Reason: new domain with no existing rule coverage
Confirm each proposal with AskUserQuestion:
Apply approved items to the corresponding rule files. For new rule files, create them with frontmatter (category and triggers are required).
After adding or modifying rules, verify that the frontmatter triggers patterns correctly match the intended files.
Consolidate WARNs from Phase 1 and rule updates from Phase 2 into a follow-up change list.
If one or more WARN items exist, present the list and use AskUserQuestion to ask the user:
When "Fix All" or "Select" is chosen, apply the fixes in order and display the updated results.
${baseDir}/references/rules-authoring.md — Rule authoring principles, frontmatter schema, category classification, and abstraction-level guidelines. Consult when creating or updating rules.development
Run a full implementation verification pass after code or data changes. Use when the user asks to verify, QA, smoke test, run checks, validate a feature, inspect a local app in the browser, capture screenshots, or turn discovered QA issues into regression tests/checklists with user approval.
development
Hoyeon execution workflow for Codex. Use when the user invokes "$hoyeon-execute" or wants to execute a Hoyeon plan.json through the Bash-first Codex adapter. This adapter loads the canonical execute skill and follows its Codex runtime surface.
development
Plan-driven orchestrator. Reads plan.json (from /blueprint) or requirements.md, then dispatches workers to build the system. Use when: "/execute", "execute", "plan 실행", "blueprint 실행"
testing
"/clarify", "clarify this", "keep asking until clear", "remove ambiguity", "clarify requirements", "clarify design", "clarify the plan", "질문 계속해", "모호한 게 없게", "명확해질 때까지", "계속 물어봐", "Q&A로 정리", "질문답변 기록", "요구사항 명확화", "설계 명확화". Relentless ambiguity-resolution interview that records Q&A under .hoyeon/clarify/<topic>/ and hands off to specify/blueprint/docs when clear.