| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Invoke | /dcm:quality |
| Aliases | /dcm, /dcm:analyze, /dcm:fix |
| Category | code-quality |
| Complexity | moderate |
/dcm:quality โ ์ฝ๋ ๊ฑด๊ฐ๊ฒ์งยท์๋์๋ฆฌ#
ํ๋ง๋๋ก#
์ฝ๋๋ฅผ ๊ฑด๊ฐ๊ฒ์งํ๊ณ ๊ฐ๋จํ ๋ฌธ์ ๋ ์๋์ผ๋ก ๊ณ ์ณ์ฃผ๋ ๋๊ตฌ์ ๋๋ค. ์๋์ฐจ ์ ๋น์์ฒ๋ผ, ์ด๋๊ฐ ๋ฌธ์ ์ธ์ง ์ ๊ฒํ๊ณ (๋ถ์) ์๋ณผ ์ ์๋ ๊ฑด ๊ทธ ์๋ฆฌ์์ ์๋ฆฌ(์๋์์ )ํด ์ค๋๋ค.
๋๊ฐยท์ธ์ ์ฐ๋์#
- ์ฝ๋ ํ์ง์ ํ๋ฒ ์ ๊ฒํ๊ณ ์ถ์ ๋
- ์ ์ฐ๋ ์ฝ๋๋ ํ์ผ์ด ์์ฌ ์๋์ง ํ์ธํ๊ณ ์ ๋ฆฌํ๊ณ ์ถ์ ๋
- ์ฝ๋ ๊ท์น(๋ฆฐํธ) ์๋ฐ์ด๋ ๋ณต์ก๋ ๊ฐ์ ์งํ๋ฅผ ์ดํด๋ณด๊ณ ์ถ์ ๋
- ๊ณ ์น ์ ์๋ ๋ฌธ์ ๋ฅผ ์๋์ผ๋ก ์ ๋ฆฌํ๊ณ ์ถ์ ๋
๋ฌด์์ ํด์ฃผ๋์#
- ์ฝ๋ ์ ์ฒด๋ฅผ ์ ๊ฒํด ๋ฌธ์ ๋ฅผ ํ์ผ๋ณยท์ฌ๊ฐ๋๋ณ๋ก ์ ๋ฆฌํ ๋ฆฌํฌํธ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
- ์๋์ผ๋ก ๊ณ ์น ์ ์๋ ๋ฌธ์ ๋ ๊ทธ ์๋ฆฌ์์ ์์ ํฉ๋๋ค.
- ์ ์ฐ๋ ์ฝ๋ยท์ ์ฐ๋ ํ์ผยท์ค๋ณต ์ฝ๋ยท๋ณต์ก๋ ์งํ๋ฅผ ์ฐพ์๋ ๋๋ค.
-
ํ ๋ฒ์ ๊ธฐ์ค์ ์ ์ก๋ ์์
(baseline)์ ํ๋ฉด
dcm_baseline.jsonํ์ผ์ด ๋ง๋ค์ด์ง๋๋ค โ ์ง๊ธ๊น์ง์ ๋ฌธ์ ๋ "์ด๋ฏธ ์๊ณ ์๋ ๊ฒ"์ผ๋ก ๋ฌถ์ด๋๊ณ , ์์ผ๋ก ์๋ก ์๊ธฐ๋ ๋ฌธ์ ๋ง ๊ณจ๋ผ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ด๋ป๊ฒ ์ฐ๋์#
# ๊ธฐ๋ณธ ์ ๊ฒ (๋์ ์๋ต ์ lib ํด๋)
/dcm:quality
# ํน์ ํด๋๋ง ์ ๊ฒ
/dcm:quality lib/src/feature
# ์ ์ฒด ์ ๊ฒ ํ ์๋์์ ๊น์ง ํ ๋ฒ์
/dcm:quality --mode=full
# ๋น ๋ฅธ ๋จ์ผ ์ ๊ฒ โ ๋ฆฐํธ / ์ ์ฐ๋ ์ฝ๋ / ์งํ
/dcm:quality --mode=analyze
/dcm:quality --mode=unused
/dcm:quality --mode=metrics
# ์๋์์ (์ํํ ์์ ๊น์ง ํฌํจํ๋ ค๋ฉด --unsafe)
/dcm:quality --mode=fix
/dcm:quality --mode=fix --unsafe
# ๊ธฐ์ค์ (baseline) ์ก๊ธฐ
/dcm:quality --baseline
-
--mode๋ ์ ๊ฒ ๋ฐฉ์์ ๋๋ค:full(์ ์ฒด),analyze(๋ฆฐํธ๋ง),fix(์๋์์ ),unused(์ ์ฐ๋ ์ฝ๋),metrics(์งํ),duplication(์ค๋ณต). -
--reporter๋ก ๊ฒฐ๊ณผ ํ์์ ๋ฐ๊ฟ ์ ์์ต๋๋ค:console(๊ธฐ๋ณธ, ํ๋ฉด ์ถ๋ ฅ),json(ํ์ผยท๋๊ตฌ ์ฐ๋์ฉ). --unsafe๋ ์๋์์ ์ ๋ค์ ์ํํ ์ ์๋ ์์ ๊น์ง ํฌํจํฉ๋๋ค.
์์์ ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์#
์ ํํ ๋ฐฉ์์ ๋ฐ๋ผ ์ ๊ฒ๊ณผ ์์ ์ ์ฐจ๋ก๋ก ์งํํฉ๋๋ค.
- ์ ์ฒด ์ ๊ฒ(full) โ ๋ชจ๋ ๊ฒ์ฌ๋ฅผ ํ ๋ฒ์ ๋๋ฆฌ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ํ์ผยท์ฌ๊ฐ๋๋ณ๋ก ๋ฌถ์ด ๋ณด์ฌ์ค๋๋ค. ๊ทธ๋ค์ ์๋์์ ์ ํ๊ณ , ๋ค์ ์ ๊ฒํด์ "์๋์ผ๋ก ํด๊ฒฐ๋ ๊ฒ"๊ณผ "์ฌ๋์ด ์ง์ ์๋ด์ผ ํ๋ ๊ฒ"์ ๊ตฌ๋ถํด ์๋ ค์ค๋๋ค.
- ๋น ๋ฅธ ์ ๊ฒ(analyze/unused/metrics) โ ํ์ํ ๊ฒ์ฌ ํ๋๋ง ๊ณจ๋ผ ๋๋ฆฌ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
- ์๋์์ (fix) โ ๊ณ ์น ์ ์๋ ๋ฌธ์ ๋ฅผ ์ ๋ฆฌํ๊ณ , ์ ์ฐ๋ ์ฝ๋๋ ์ ๋ฆฌํ ๋ค, ๋ค์ ์ ๊ฒํด์ ์ ๋๋ก ๊ณ ์ณ์ก๋์ง ํ์ธํฉ๋๋ค.
-
๊ธฐ์ค์ ์ก๊ธฐ(baseline) โ ๋จผ์ ์งํ ๊ณํ์ ๋ณด์ฌ์ฃผ๊ณ , ํ์ธ์ ๋ฐ์ ๋ค ๋จ๊ณ๋ณ๋ก ์คํํด
dcm_baseline.json์ ๋ง๋ค๊ณ ์ปค๋ฐ๊น์ง ์๋ดํฉ๋๋ค.
โ๏ธ ์์ธ ์ต์ ยท์คํ ๋ช ์ธ (๊ฐ๋ฐ์ / AI ์์ด์ ํธ์ฉ)
Triggers#
- When code quality analysis is requested
- When DCM lint checks are requested
- When unused code/file detection is requested
- When code metrics review is requested
- When auto-fix is requested
Context Trigger Pattern#
/dcm:quality {target} [--options]Parameters#
| Parameter | Required | Description | Example |
|---|---|---|---|
target | No | Analysis target (default: lib) | lib, lib/src/feature, . |
--mode | No | Execution mode | full, analyze, fix, unused, metrics, duplication |
--reporter | No | Output format | console (default), json |
--unsafe | No | Include unsafe fixes | |
--baseline | No | Run baseline workflow |
Actions#
| Action | Description | Command |
|---|---|---|
| Full check | Run all checks at once | dcm run . --all |
| Lint analysis | Check for lint rule violations | dcm analyze . |
| Auto-fix | Fix auto-fixable issues | dcm fix . |
| Unused code | Detect unused code declarations | dcm check-unused-code . |
| Unused files | Detect unused Dart files | dcm check-unused-files . |
| Dependency check | Check for dependency issues | dcm check-dependencies . |
| Code duplication | Detect duplicate code | dcm check-code-duplication . |
| Metrics | Calculate code metrics | dcm calculate-metrics . |
| Widget analysis | Analyze Flutter widgets | dcm analyze-widgets . |
| Asset analysis | Analyze image assets | dcm analyze-assets . |
| Structure analysis | Analyze project structure | dcm analyze-structure . |
Workflow Patterns#
Pattern 1: Full Code Review#
/dcm:quality --mode=full- Run
dcm run . --all - Group and report results by file and severity
- Auto-fix with
dcm fix . - Re-run
dcm analyze .to check remaining issues - Report fix results and items requiring manual action
Pattern 2: Quick Analysis#
/dcm:quality --mode=analyze
/dcm:quality --mode=unused
/dcm:quality --mode=metricsRun the appropriate single command and report results
Pattern 3: Fix Workflow#
/dcm:quality --mode=fix
/dcm:quality --mode=fix --unsafe- Run
dcm fix . - Run
dcm fix . --type=unused-code - Re-run checks to verify fixes
Pattern 4: Baseline Adoption#
/dcm:quality --baseline- Present the baseline workflow plan to the user
- Execute step by step after confirmation
- Guide
dcm_baseline.jsoncreation and commit