jksim/agent-skills-jksim

Verschiebt die Arbeitsdateien eines laufenden Projekts (SPEC.md, tasks/plan.md, tasks/todo.md, CONSTRAINTS.md, …) von den Stammpfaden des Upstreams in die Team-Pfade unter .claude-work/. Verwenden, wenn ein Projekt vor der Installation von agent-skills-jksim gestartet wurde oder wenn sowohl Stamm-Arbeitsdateien als auch .claude-work/ existieren.

Was ist agent-skills-jksim?

Dieser Skill migriert Arbeitsdateien eines laufenden Projekts vom Projektstamm in die Team-Verzeichnisstruktur unter .claude-work/. Er wird benötigt, wenn ein Projekt vor der Installation von agent-skills-jksim begonnen wurde oder wenn sowohl Dateien im Stamm als auch .claude-work/ vorhanden sind. Der Skill verschiebt Dateien wie SPEC.md, tasks/plan.md, tasks/todo.md und CONSTRAINTS.md mit `git mv`, sodass der vollständige Git-Verlauf erhalten bleibt. Er aktualisiert auch Querverweise in Dokumenten wie CLAUDE.md oder README.md und führt alle Änderungen in einem einzigen Commit zusammen, um die Historie sauber zu halten. Der Skill prüft vorab den Zustand des Repos, erfordert die Benutzerfreigabe für das Migrationslayout und behandelt Konflikte wie bereits vorhandene Zieldateien oder mehrere Spezifikationen benutzerfreundlich. Er unterstützt die Plattformen Claude Code, Cursor und Codex und ist speziell für Projekte gedacht, die das agent-skills-jksim-Arbeitsablaufmuster verwenden.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jksim/agent-skills-jksim/tree/HEAD/skills/migrate-layout

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Migrate Layout

Übersicht

Das Upstream agent-skills hält Arbeitsdateien im Projektstamm. Das Team bewahrt sie in .claude-work/ auf (siehe Pfadtabelle in den Team-Overrides). Dieser Skill verschiebt ein laufendes Projekt in einem Commit in das Team-Layout. Jede Datei behält ihren Git-Verlauf. Aufgaben-Kontrollkästchen werden mit den Dateien verschoben, sodass die Arbeit dort fortgesetzt wird, wo sie gestoppt wurde.

Das Argument ist die <id> für die Plan- und Aufgaben-Dateien, zum Beispiel /agent-skills-jksim:migrate-layout fl-debug.

Wann zu verwenden

  • Ein Projekt hat SPEC.md, tasks/plan.md, tasks/todo.md oder CONSTRAINTS.md im Stamm.
  • Ein Projekt hat sowohl Stamm-Arbeitsdateien als auch .claude-work/.

Nicht für ein neues Projekt verwenden. Die Spezifikationsphase schreibt von Anfang an nach .claude-work/.

Ablauf

1. Startzustand prüfen

Anhalten und den Benutzer informieren, wenn eine dieser Bedingungen zutrifft:

  • Der Ordner ist kein Git-Repository.
  • git status --porcelain --untracked-files=no zeigt Änderungen an verfolgten Dateien. Den Benutzer bitten, diese zu committen oder zu stashen. Unverfolgte Dateien können bleiben: Schritt 8 stagt mit git add -u, das sie nie hinzufügt.
  • git check-ignore -q .claude-work/spec/SPEC.md ist erfolgreich. Prüfen eines Dateipfads: Ein Muster wie .claude-work/ passt nicht auf den Ordner, bevor er existiert. Consumer-Projekte committen .claude-work/.

2. Die alten Dateien finden

Nur auf diese Pfade achten, relativ zum Projektstamm:

Alter PfadTeam-Pfad
SPEC.md, docs/SPEC.md.claude-work/spec/SPEC.md
SPEC-<modul>.md.claude-work/spec/SPEC-<modul>.md
CAPABILITY-MAP.md.claude-work/spec/CAPABILITY-MAP.md
tasks/plan.md.claude-work/tasks/plan-<id>.md
tasks/todo.md.claude-work/tasks/todo-<id>.md
CONSTRAINTS.md.claude-work/docs/CONSTRAINTS.md
docs/ideas/<name>.md.claude-work/docs/ideas/<name>.md
docs/intent/<thema>.md.claude-work/docs/intent/<thema>.md
docs/decisions/Bleibt. Nachfragen (siehe Schritt 4)

spec/ nicht anfassen. RSpec und andere Test-Layouts verwenden es.

Nur Dateien verwenden, die git verfolgt (git ls-files). git mv schlägt bei anderen Dateien fehl. Ungültige oder ignorierte alte Dateien benennen und den Benutzer fragen.

Wenn keine alte Datei existiert, den Benutzer informieren, dass es nichts zu migrieren gibt. Anhalten.

3. Die <id> ermitteln

Das Argument verwenden. Ohne Argument eine kurze kebab-case-id aus dem Projektnamen vorschlagen und den Benutzer fragen. Diesen Schritt überspringen, wenn es keine tasks/plan.md oder tasks/todo.md gibt.

4. Den Plan anzeigen und auf Genehmigung warten

Eine Tabelle anzeigen: alter Pfad, neuer Pfad. Dann jeden Konflikt auflisten und dazu befragen:

  • Ziel existiert: eine Datei ist bereits am Team-Pfad. Diese Datei nicht verschieben. Fragen, was zu tun ist.
  • Zwei Spezifikationen: sowohl SPEC.md als auch docs/SPEC.md existieren. Fragen, welche die Spezifikation ist.
  • Andere Dateien in tasks/: nur plan.md und todo.md verschieben. Die anderen Dateien benennen.
  • docs/decisions/ existiert: Standardmäßig belassen, da ein Projekt seinen eigenen ADR-Ordner behält. Nur in .claude-work/docs/adr/ verschieben, wenn der Benutzer dies sagt.

Nichts verschieben, bis der Benutzer die Tabelle genehmigt hat.

5. Mit git mv verschieben

git mv <alt> <neu> für jede Datei ausführen. Die Zielordner vorher erstellen (mkdir -p). Niemals kopieren und löschen: git mv bewahrt die Historie. Wenn tasks/ jetzt leer ist, rmdir tasks ausführen.

6. Live-Referenzen korrigieren

Das Projekt nach den alten Pfaden durchsuchen: git grep -n -E 'SPEC(-[A-Za-z0-9_-]+)?\.md|CAPABILITY-MAP\.md|CONSTRAINTS\.md|tasks/(plan|todo)\.md|docs/(ideas|intent|decisions)/'.

Auch nach den bloßen Dateinamen suchen, da eine verschobene Datei ihren Partner ohne Ordner nennen kann: git grep -n -E '(^|[^-/A-Za-z0-9_])(plan|todo)\.md'. Beispiel: "Detail in todo.md" im Plan wird zu "Detail in todo-.md".

Eine Live-Referenz sagt einem Leser oder dem Agenten, wo die Datei jetzt ist. Sie ändern:

  • CLAUDE.md: "SPEC.md: genehmigte Spezifikation" wird zu ".claude-work/spec/SPEC.md: genehmigte Spezifikation".
  • README.md: [SPEC.md](SPEC.md) wird zu [SPEC.md](.claude-work/spec/SPEC.md).
  • Ein relativer Link in einer verschobenen Datei: ../SPEC.md im alten tasks/plan.md wird zu ../spec/SPEC.md in .claude-work/tasks/plan-<id>.md.
  • Die Einschränkungszeiger-Zeile in CLAUDE.md.
  • Andere relative Links in jeder verschobenen Datei. Eine verschobene Datei befindet sich in einer neuen Tiefe, sodass ein Link zu einer nicht verschobenen Datei ebenfalls bricht. Beispiel: [x](src/a.kt) in der root SPEC-foo.md wird zu [x](../../src/a.kt) in .claude-work/spec/SPEC-foo.md.

Ein Datensatz sagt, was zu einem vergangenen Zeitpunkt passiert ist. So belassen, wie er ist:

  • Ein abgeschlossener Aufgabe-Eintrag: "Dateien: README.md, SPEC.md".
  • Ein Änderungslog, eine Überprüfungsnotiz oder eine Commit-Nachricht.

Wenn unsicher, den Text belassen und in Schritt 7 auflisten.

7. Ergebnis anzeigen

git status, den Diff der geänderten Referenzen und eine Liste der nicht geänderten alten Pfadreferenzen mit Begründung für jeden anzeigen.

8. Einmal committen

git mv hat die Verschiebungen bereits gestaged. Die bearbeiteten Referenzen mit git add -u stagen. git add -A nicht verwenden: es kann nicht verwandte Dateien hinzufügen. Mit der Nachricht Move working files to .claude-work committen. Nicht pushen.

Wenn ein Hook den Commit ablehnt, anhalten und melden. --no-verify nicht verwenden.

9. Nächsten Schritt melden

Dem Benutzer mitteilen, welche Dateien verschoben wurden und welche blieben. Wenn .claude-work/docs/VOCABULARY.md nicht existiert, sagen, dass die nächste Spezifikationsphase es erstellt (Regel 2). Jetzt nicht erstellen.

Häufige Rationalisierungen

RationalisierungRealität
"Kopieren ist einfacher als git mv."Eine Kopie verliert den Dateiverlauf. Überprüfer und git log --follow benötigen ihn.
"Ich werde jede Erwähnung von SPEC.md aktualisieren."Datensätze beschreiben die Vergangenheit. Sie zu ändern, schreibt Geschichte um.
"Der Baum ist nur ein wenig schmutzig."Nicht abgeschlossene Arbeit landet im Migrations-Commit. Zuerst den Benutzer fragen.
"Der Plan ist offensichtlich, also überspringe ich die Genehmigung."Der Benutzer entscheidet über die <id> und jeden Konflikt. Warten.

Warnsignale

  • git log --follow zeigt keine Historie vor dem Migrations-Commit.
  • Ein abgeschlossener Aufgabe-Eintrag oder ein Änderungslog nennt einen Team-Pfad, der damals nicht existierte.
  • spec/ oder docs/decisions/ wurden ohne Zustimmung des Benutzers verschoben.
  • Mehr als ein Commit oder ein Push.

Verifizierung

  • Jede alte Datei ist an ihrem Team-Pfad. Keine alte Datei ist im Stamm zurückgelassen, außer denen, die der Benutzer behalten wollte.
  • git log --follow <neuer Pfad> zeigt die alte Historie.
  • Live-Referenzen zeigen auf die Team-Pfade. Datensätze sind unverändert.
  • Aufgaben-Kontrollkästchen sind unverändert.
  • Ein Commit, Move working files to .claude-work. git status ist sauber. Nichts gepusht.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Verwandte Skills