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

start

Start or resume an Elixir rewrite of an app in any language (Rails, Django, PHP, Node, Go, Java, .NET, others) and show its status. Use when someone wants to port, migrate or rewrite an app into Elixir/Phoenix.

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

설치 방법 보기

포함된 파일(1)

  • SKILL.md6.3 KB

SKILL.md(원문)

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

Rewrite Start — Entry, Resume, Status

The front door of the rewrite workflow. It explains the method once, finds where an existing rewrite stands, checks that the legacy source has not changed underneath it, and routes to the next phase.

/rewrite:start → /rewrite:analyze → /rewrite:architect → /rewrite:roadmap
                                                             ↓ per slice
                         /rewrite:verify ← /phx:work ← /phx:plan

Iron Laws

  1. ONE PHASE AT A TIME — route to the next phase; with --auto, chain only analyze → architect → roadmap
  2. IDENTITY BEFORE RESUME — compare the source snapshot before trusting earlier artifacts
  3. STATE COMES FROM FILES — read .claude/rewrite/ and the ledger script, never memory of a previous session
  4. --auto STOPS AT DECISIONS — it never approves ASSUMED choices, never starts /phx:work, never deploys or touches production data
  5. LEGACY STAYS READ-ONLY — never write into or execute the source app

Workflow

1. Check dependencies and detect state

If the phx:plan skill is not in this session's skill list, tell the user to install elixir-phoenix from the marketplace that provided rewrite (/plugin install elixir-phoenix@oliver-kriska, or that marketplace's name), then run /reload-plugins. Without it the architect consults and the /phx:plan handoff fail, so --auto stops after analyze.

ls .claude/rewrite/ .claude/rewrite/architecture/ 2>/dev/null && sed -n '1,40p' .claude/rewrite/status.md
python3 "${CLAUDE_SKILL_DIR}/../architect/scripts/ledger.py" check --rewrite-dir .claude/rewrite  # once architecture.md exists

Read the first matching row, top to bottom. An active slice comes before seeding a new one:

FoundStateNext
nothingnewstep 2, then /rewrite:analyze <path>
phase analyzing, or an analysis/*.md missinganalyze incomplete/rewrite:analyze <Source path>
analysis/*.md, no ADR-000analyzed/rewrite:architect
ADR-000, no architecture.mdarchitect incomplete/rewrite:architect (resumes at step 4)
ADR-000 + architecture.md, but decisions.md or divergences.md missing, phase architecting, or ledger.py check failsarchitect incomplete/rewrite:architect (resumes at step 4 or 5)
ADR-000 + architecture.md + decisions.md + divergences.md, clean ledger, no roadmap.mdarchitected/rewrite:roadmap
a slice planned or in-progress whose plan.md has at least one - [x] and no - [ ]awaiting gate/rewrite:verify NN
a slice planned or in-progressbuilding/phx:work .claude/plans/{slug}/plan.md, then /rewrite:verify NN
roadmap.md with ready or seeded slicesslicing/rewrite:roadmap --next
every slice donecompleterelease rehearsal slice, or close out

2. New rewrite: explain once, then analyze

In five lines or fewer, tell the user how this works: features are goals, every mechanism's purpose is recovered before it is ported, the compatibility bar comes before architecture, slices go to /phx:plan, and parity needs evidence. Then run /rewrite:analyze with the path (ask for it if missing). The artifacts go to ./.claude/rewrite/ in the current directory; that must be the Elixir project or an empty workspace, not the legacy app.

3. Resume: check identity

SOURCE=$(sed -n 's/^Source path: //p' .claude/rewrite/status.md)
TARGET=$(sed -n 's/^Target path: //p' .claude/rewrite/status.md); [ "$(pwd -P)" = "$TARGET" ]
python3 "${CLAUDE_SKILL_DIR}/../analyze/scripts/inventory.py" "$SOURCE" \
  --compare .claude/rewrite/inventory/inventory.json

Stop and name Target path when the cwd differs. Exit 1 from --compare lists the changed identity fields. For a git source, show what changed since the recorded sha:

git -C "$SOURCE" diff --stat {recorded_sha}..HEAD

Ask whether to re-analyze the changed areas (/rewrite:analyze --scope …). Mark evidence stale for ledger rows whose anchors fall in changed files.

4. Status (--status, or always on resume)

python3 "${CLAUDE_SKILL_DIR}/../architect/scripts/ledger.py" stats --rewrite-dir .claude/rewrite
grep -E "^\| [0-9]{2}[a-z]? " .claude/rewrite/roadmap.md

Show: phase, ADR-000 status (accepted or ASSUMED), ledger verified-of- denominator with UNDECIDED and accepted-risk counts, slices by state, pending divergences, and the single next command.

5. --auto chain

Run /rewrite:analyze <path> --auto (passing any --steering or --oracle), then /rewrite:architect --auto, then /rewrite:roadmap --auto, each via the Skill tool from this session. Stop early when a phase reports a blocker. End with the list of ASSUMED decisions the user must approve and the next command; /phx:plan runs only when no consequential decision is ASSUMED or pending.

Headless or CI runs (claude -p) stop background agents 10 minutes after the last turn. Lift that ceiling for the whole chain:

CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS=0 claude -p "/rewrite:start /path/to/legacy --auto"

Artifacts (.claude/rewrite/)

PathWritten by
status.md, charter.md, inventory/, kb/, analysis/ (incl. budget.md)analyze
ledger.md, architecture/ (ADR-000-compatibility-bar.md, architecture.md, decisions.md, divergences.md, adr/, consults/)architect
roadmap.md, ../plans/rewrite-NN-*/interview.md + scratchpad.mdroadmap
verify/NN/ (preflight, evidence, idiom, parity, report), verify/accepted-risks.mdverify (risks: user only)

Arguments

  • <legacy-app-path> — the app to rewrite (new rewrites)
  • --steering <dir>, --oracle <dir> — passed to analyze: docs that steer it, and a test or API suite outside the app (read and graded, never run)
  • --status — report only
  • --auto — chain analyze → architect → roadmap without questions; defaults recorded as ASSUMED

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

analyze

무료

Analyze a legacy app in any language before rewriting it in Elixir: inventory, features as goals, why each mechanism exists, runtime topology, external contracts. Use to start or refresh a rewrite.

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

oliver-kriska/claude-elixir-phoenix5672026년 10월 17일 업데이트

architect

무료

Design the idiomatic Elixir architecture for a rewrite: set the compatibility bar (ADR-000), consult phx specialists on open questions, then build contexts, ledger and ADRs. Use after /rewrite:analyze.

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

oliver-kriska/claude-elixir-phoenix5672026년 10월 17일 업데이트

Ash Framework — resources, actions, policies, aggregates; Use when generating resources via mix ash.codegen, editing…

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

oliver-kriska/claude-elixir-phoenix5672026년 10월 17일 업데이트

Ash Framework — resources, actions, policies, aggregates, calculations, AshPhoenix.Form, LiveView, migrations. Use when generating resources via mix ash.codegen, editing changes, checks, types, validations, or domain code interfaces.

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

oliver-kriska/claude-elixir-phoenix5672026년 10월 17일 업데이트

assigns

무료

Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.

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

oliver-kriska/claude-elixir-phoenix5672026년 10월 17일 업데이트

Inspect LiveView socket assigns for memory bloat — missing temporary_assigns, unused assigns, unbounded lists needing streams, memory estimates. Use when LiveView memory grows or you need to add temporary_assigns.

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

oliver-kriska/claude-elixir-phoenix5672026년 10월 17일 업데이트

oliver-kriska의 스킬 모두 보기

이 스킬의 문제 신고