본문으로 건너뛰기
cccskills
무료GitHub에 공개

wfa-extract-domain

Phase B of a WinForms-to-Avalonia migration: extract UI-independent application behavior, state rules, use cases, and boundary contracts with TDD and no WinForms/Avalonia references. Use only when an explicit migration still has business behavior in Forms or UI helpers, or when the orchestrator routes here. Do not build Avalonia XAML in this phase.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(4)

  • SKILL.md3.4 KB
  • references/boundary-adapter-patterns.md1.5 KB
  • references/core-layer.md1.4 KB
  • references/tdd-baseline.md1.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Phase B — Extract application core

Implement Phase A contracts as a UI-independent application core. The UI may call the core; the core never calls UI controls or framework services.

Read core layer for dependency boundaries, boundary adapter patterns when the application has external inputs or effects, and TDD baseline for test sequencing.

Workflow

1. Scaffold (if needed)

  • src/<Product>.Core — modern TFM, no UI packages
  • tests/<Product>.Core.Tests — representative behavior fixtures and helpers

2. Models and invariants

  • Preserve field meanings and documented invariants
  • Drop UI-only storage (control tags, display-only caches unless computed by services)
  • Prefer explicit edit APIs over free-form mutation from Views

Document intentional semantic changes.

3. Application rules and use cases

Extract calculations, validation, state transitions, and multi-step use cases discovered in Phase A. Replace control indexes and tags with semantic types.

4. Boundary contracts

  1. Keep deterministic translation or validation logic in the core when it has no environment dependency.
  2. Represent filesystem, process, network, device, clock, and OS dependencies as narrow ports when present.
  3. Implement environment-dependent adapters in Phase C, not as hidden calls from the core.

Return structured outcomes and diagnostics. Never prompt the user from the application core.

5. Untrusted-input baseline

  • Validate size, depth, counts, recursion, and identifier ranges before allocation or traversal.
  • Disable external resource access unless the product explicitly requires and constrains it.
  • Bound dynamic execution by capability, time, memory, and cancellation when it exists.
  • Add negative fixtures before the first releasable Avalonia build.

6. TDD

Port legacy tests; goldens for representative fixtures; edge cases from contracts; document intentional non-support with tests.

7. Coupling kill list

Check the core for zero WinForms/Avalonia types, UI prompts, environment-specific APIs, and unmediated external effects.

Corrections seen in practice

  • One application rule must drive every relevant entry point and consumer.
  • Validate extreme values and illegal transitions; add regression tests for rejected states.
  • Prefer typed diagnostic codes over free-form strings.
  • Public core types are a stable API: use role-based names, explicit invariants, and accurate documentation.
  • Preserve authoritative external contracts at boundary adapters; do not simplify away required semantics.

Deliverables

  • Core builds
  • Models, invariants, and use cases extracted
  • Boundary ports match discovered dependencies
  • Untrusted-input bounds covered before first release
  • Core tests green

Handoff

  • Platform and infrastructure adapters -> wfa-platform-services
  • UI → wfa-avalonia-ui
  • Product evolution after ship -> wfa-post-port-evolve

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tautcony/ChapterTool1132026년 10월 14일 업데이트

Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tautcony/ChapterTool1132026년 10월 14일 업데이트

Archive multiple completed changes at once. Use when archiving several parallel changes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tautcony/ChapterTool1132026년 10월 14일 업데이트

Continue working on an OpenSpec change by creating the next artifact. Use when the user wants to progress their change, create the next artifact, or continue their workflow.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tautcony/ChapterTool1132026년 10월 14일 업데이트

Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tautcony/ChapterTool1132026년 10월 14일 업데이트

Fast-forward through OpenSpec artifact creation. Use when the user wants to quickly create all artifacts needed for implementation without stepping through each one individually.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tautcony/ChapterTool1132026년 10월 14일 업데이트

tautcony의 스킬 모두 보기

이 스킬의 문제 신고