williamsnieves/landing-factory

Archiviert eine abgeschlossene OpenSpec-Änderung im experimentellen Workflow. Verwende dies, wenn der Benutzer eine Änderung nach der Implementierung finalisieren und archivieren möchte. Auch zu verwenden, wenn der Benutzer 'openspec archive' oder 'opsx archive' sagt.

Was ist landing-factory?

Diese Fähigkeit archiviert eine abgeschlossene OpenSpec-Änderung im experimentellen Workflow. Sie ist für Entwickler und KI-Agenten gedacht, die OpenSpec zur Verwaltung von Spezifikationen und Änderungen verwenden. Die Fähigkeit unterstützt mehrere Plattformen, einschließlich Claude Code, Cursor, Codex und andere KI-Assistenten. Sie hilft dabei, eine Änderung zu finalisieren, nachdem die Implementierung abgeschlossen ist, und stellt sicher, dass alle erforderlichen Prüfungen bestanden sind, bevor die Änderung archiviert wird. Der Workflow umfasst die Auswahl der Änderung, die Überprüfung des Abschlussstatus von Artefakten, die Bewertung der Delta-Spezifikationen, die Synchronisierung der Hauptspezifikationen und die Durchführung der Archivierung. Er ist nützlich, um den Lebenszyklus von Änderungen in OpenSpec-Projekten zu verwalten, da er es Benutzern ermöglicht, eine Änderung zu archivieren, sobald sie abgeschlossen ist, und dabei die Integrität der Spezifikationen und die Konsistenz mit den Delta-Spezifikationen zu gewährleisten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/williamsnieves/landing-factory/tree/HEAD/.claude/skills/openspec-archive-change

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

Archiviere eine abgeschlossene Änderung im experimentellen Workflow.

Store-Auswahl: Wenn der Benutzer einen Store benennt (ein Store ist ein eigenständiges OpenSpec-Repository, das auf diesem Rechner registriert ist) oder die Arbeit in einem solchen liegt, führe openspec store list --json aus, um registrierte Store-IDs zu ermitteln, und übergib dann --store <id> an die Befehle, die Spezifikationen und Änderungen lesen oder schreiben (new change, status, instructions, list, show, validate, archive, doctor, context, schemas, view). Behandle --store <id> nach der Auswahl als klebrig für den Rest des Workflows. Jedes nicht näher bezeichnete Beispiel dieser Befehle unten ist eine Kurzform: vor dem Ausführen das Flag anhängen. Führe beispielsweise openspec status --change "<name>" --json --store "<id>" aus, nicht die nicht näher bezeichnete Form, die unten gezeigt wird. Andere Befehle nehmen das Flag nicht an. Von Befehlen ausgegebene Hinweise tragen das Flag bereits; behalte es bei Folgemaßnahmen bei. Ohne einen Store arbeiten Befehle auf dem nächstgelegenen lokalen openspec/-Stammverzeichnis.

Projektprüfung: Diese Schritte erwarten ein Projekt, das bereits OpenSpec verwendet. Bestätige vor dem ersten Schritt, der etwas schreibt (new change, archive, sync specs oder dem Erstellen einer Artefaktdatei), dass das Projekt ein Stammverzeichnis hat: führe openspec list --json aus (mit --store <id>, wenn ein Store ausgewählt ist, da der Store dann das Stammverzeichnis ist) und lese root. Ein root-Objekt bedeutet, dass das Projekt eingerichtet ist. "root": null bedeutet, dass es nicht eingerichtet ist – es gibt kein openspec/-Verzeichnis hier, und ein Schreibvorgang wie openspec new change würde als Nebeneffekt eines erstellen. Der Befehl beendet sich auch mit einem Fehlercode ungleich Null, was die Antwort ist und kein defektes CLI, also lies das JSON, anstatt es erneut zu versuchen oder zu umgehen.

Ein "root": null ist nicht auf die Einrichtung bezogen: Wenn eine status-Fehlermeldung mit Declared in oder Invalid store declaration in beginnt und openspec/config.yaml (oder config.yml) dieses Projekts nennt, dann verwendet das Projekt OpenSpec über einen Store, den es deklariert, den dieser Rechner nicht auflösen kann (der Store ist nicht registriert oder die store:-Zeile ist fehlerhaft). Behandle es nicht als nicht initialisiert und überspringe die Zweige unten: Stoppe vor dem Schreiben und zeige dem Benutzer die message und den fix dieses Fehlers an.

Andernfalls, wenn kein Stammverzeichnis vorhanden ist, hängt das weitere Vorgehen davon ab, wie dieser Workflow erreicht wurde:

  • Automatisch ausgewählt: Du hast diesen Workflow selbst ausgewählt, ohne dass der Benutzer OpenSpec genannt, diese Fähigkeit benannt oder ihren Slash-Befehl ausgeführt hat. Höre auf, OpenSpec zu verwenden, und beantworte die Anfrage normal, wie du es ohne installiertes OpenSpec tun würdest. Bitte den Benutzer nicht, etwas einzurichten, und erwähne keine OpenSpec-Einrichtung.
  • Explizite OpenSpec-Anfrage: Der Benutzer hat OpenSpec genannt, diese Fähigkeit benannt oder ihren Slash-Befehl ausgeführt. Stoppe vor dem Schreiben und frage, wie weiter verfahren werden soll: dieses Projekt einrichten (openspec init), einen bereits vorhandenen Store ansprechen (--store <id>) oder für diese Anfrage ohne OpenSpec fortfahren. Warte auf seine Antwort.

Erstelle in beiden Zweigen niemals das Stammverzeichnis als Nebeneffekt: Führe openspec init erst aus, wenn der Benutzer danach fragt, erstelle keine openspec/-Dateien von Hand und lasse keinen Befehl sie erstellen.

<capability-path> ist das Spezifikationsverzeichnis relativ zu specs/ (z. B. user-auth oder identity/user-auth). Behalte den vollständigen Pfad von jeder Delta-Spezifikation bei, wenn du ihre Hauptspezifikation auflöst.

Eingabe: Optional einen Änderungsnamen angeben. Wenn nicht angegeben, prüfe, ob er aus dem Gesprächskontext abgeleitet werden kann. Bei vagen oder mehrdeutigen Angaben MUSST du nach verfügbaren Änderungen fragen.

Schritte

  1. Die Änderung auswählen

    Wenn ein Name angegeben ist, verwende ihn. Andernfalls:

    • Aus dem Gesprächskontext ableiten, wenn der Benutzer eine Änderung erwähnt hat
    • Automatisch auswählen, wenn nur eine aktive Änderung existiert
    • Bei Mehrdeutigkeit openspec list --json ausführen, um verfügbare Änderungen zu erhalten, und den Benutzer bitten, eine auszuwählen

    Zeige beim Auffordern nur aktive Änderungen an (noch nicht archiviert). Füge das für jede Änderung verwendete Schema hinzu, falls verfügbar.

    Gib immer bekannt: "Verwende Änderung: " und wie man sie überschreibt (z. B. /opsx:archive <andere>).

    Lade die aktuellen Archiveingaben vor den bestehenden Archivprüfungen:

    Nachdem die ausgewählte Änderung aufgelöst und das Stammverzeichnis geplant wurde, führe Folgendes aus:

    openspec instructions archive --change "<name>" --json
    

    Behalte dieselben Flags für das ausgewählte Stammverzeichnis bei diesem Befehl. Diese Suche ist beratend und optional: Sie liefert nur zusätzliche Eingabeaufforderungen, daher darf sie das Archivieren niemals blockieren. Wenn sie mit einem Fehlercode ungleich Null beendet wird oder ungültiges JSON zurückgibt – zum Beispiel bei einer älteren CLI, die diesen Befehl noch nicht unterstützt –, setze den Archivierungs-Workflow ohne Kontext und ohne Betriebsanleitung fort. Melde keinen Fehler und stoppe nicht.

    Eine erfolgreiche Antwort kann beide optionalen Felder weglassen. Behandle context als erforderliche Eingabe auf Aufforderungsebene: Lies und berücksichtige sie und wende relevante Projektfakten, Konventionen und Einschränkungen an. Behandle operationGuidance als optionalen, ergänzenden Ratschlag: Lies und berücksichtige jeden Eintrag und folge Einträgen, die anwendbar und mit dem integrierten Archivierungs-Workflow kompatibel sind.

    Halte beide Felder getrennt von integrierten Schritten, expliziten Benutzerentscheidungen, aufgelösten Pfaden, CLI-Prüfungen und Befehlsverträgen. Wenn der Kontext mit einem dieser steuernden Eingaben in Konflikt steht, melde den Konflikt und behalte den steuernden Wert bei. Wenn eine Anleitung nicht anwendbar ist oder mit einer steuernden Eingabe in Konflikt steht, befolge sie nicht und erkläre warum. Leite keine Ersatzpfade, übersprungenen Aufforderungen oder Flags aus einem der beiden Felder ab und kopiere ihren Text nicht wörtlich in Spezifikationen, Änderungsartefakte oder Archivierungszusammenfassungen, es sei denn, der Benutzer bittet separat darum. Dies sind verhaltensbezogene Verträge auf Aufforderungsebene, keine durchsetzbaren Prüfungen.

  2. Abschlussstatus der Artefakte prüfen

    Führe openspec status --change "<name>" --json aus, um den Abschlussstatus der Artefakte zu prüfen.

    Analysiere das JSON, um Folgendes zu verstehen:

    • schemaName: Der verwendete Workflow
    • planningHome, changeRoot, artifactPaths und actionContext: Pfad- und Bereichskontext
    • artifacts: Liste der Artefakte mit ihrem Status (done, skipped oder andere)

    Wenn Artefakte weder done noch skipped sind (übersprungene Artefakte erfüllen die Anforderung – die Änderung deklariert skip_specs):

    • Warnung anzeigen, die unvollständige Artefakte auflistet
    • Den Benutzer bitten zu bestätigen, ob er fortfahren möchte
    • Fortfahren, wenn der Benutzer bestätigt
  3. Abschlussstatus der Aufgaben prüfen

    Führe openspec list --json mit denselben Flags für das ausgewählte Stammverzeichnis aus und suche den Eintrag in changes, dessen name exakt mit der ausgewählten Änderung übereinstimmt. Erfordere genau eine Übereinstimmung und nichtnegative ganze Zahlen totalTasks und completedTasks, mit completedTasks <= totalTasks. Die CLI löst die vom Schema verfolgten Aufgabendateien auf, einschließlich benutzerdefinierter Artefaktnamen, Ausgabepfade und Glob-Muster.

Individual skills in this repo

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

williamsnieves/landing-factory

Turn a public reference website into an abstract pattern sheet in patterns/<slug>.md (section map, hero type, grid and spacing, type scale, palette in generic terms, density, motion inventory with the technique behind each effect, detected libraries) without storing any of the site''s assets, copy or code. Use when the user runs /analyze-reference <url> or asks to analyze, study, break down or extract patterns from an inspiration or reference site for a landing. Checks robots.txt and text-and-data-mining reservations first and aborts if access is disallowed. Not for cloning or rebuilding a site.

williamsnieves/landing-factory

tasteskill v2, the anti-slop frontend skill. Art direction for websites, distilled from a study of 247 curated gallery sites (One Page Love, Awwwards Sites of the Day). Deals researched directions (idea, composition, type, palette, photographs, section blueprints) from a library, enforces a strict no-slop house style with a real-browser inspector, and runs a look-and-fix loop on screenshots. Use this whenever you build, design, redesign, restyle, polish or review a landing page, marketing site, portfolio, product page, one-pager, hero or any public-facing web page, in any stack (HTML/CSS, React, Next.js, Vue, Svelte, Astro, Tailwind) — also when the user says a page looks generic, templated, "AI-made", sloppy, or asks to make it look designed, premium, award-level or less like every other site. Not for dashboards or app screens.

williamsnieves/landing-factory

Use when the user wants to design, redesign, shape, critique, audit, polish, simplify, harden, animate, or otherwise improve a frontend interface: websites, landing pages, dashboards, product UI, components, forms, settings, onboarding, empty states, and native iOS or Android screens. Handles UX review, hierarchy, layout, typography, color, motion, UX copy, accessibility, responsive behavior, edge cases, and capturing or documenting design systems (DESIGN.md, tokens). Also for making bland UI bolder, loud UI quieter, or ambitious visual effects. Not for backend-only or non-UI tasks.

williamsnieves/landing-factory

Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks. Also use when the user says "openspec apply", "opsx apply", or "openspec implement".

Verwandte Skills