openspec-ff-change

โดย rivet-dev

เร่งรัดการสร้างอาร์ติแฟกต์ OpenSpec ใช้เมื่อผู้ใช้ต้องการสร้างอาร์ติแฟกต์ทั้งหมดที่จำเป็นสำหรับการนำไปปฏิบัติอย่างรวดเร็วโดยไม่ต้องดำเนินการทีละขั้นตอน…

npx skills add https://github.com/rivet-dev/actors --skill openspec-ff-change

Fast-forward through artifact creation - generate everything needed to start implementation in one go.

Input: The user's request should include a change name (kebab-case) OR a description of what they want to build.

Steps

  1. If no clear input provided, ask what they want to build

    Use the AskUserQuestion tool (open-ended, no preset options) to ask:

    "What change do you want to work on? Describe what you want to build or fix."

    From their description, derive a kebab-case name (e.g., "add user authentication" → add-user-auth).

    IMPORTANT: Do NOT proceed without understanding what the user wants to build.

  2. Create the change directory

    openspec new change "<name>"
    

    This creates a scaffolded change at openspec/changes/<name>/.

  3. Get the artifact build order

    openspec status --change "<name>" --json
    

    Parse the JSON to get:

    • applyRequires: array of artifact IDs needed before implementation (e.g., ["tasks"])
    • artifacts: list of all artifacts with their status and dependencies
  4. Create artifacts in sequence until apply-ready

    Use the TodoWrite tool to track progress through the artifacts.

    Loop through artifacts in dependency order (artifacts with no pending dependencies first):

    a. For each artifact that is ready (dependencies satisfied):

    • Get instructions:
      openspec instructions <artifact-id> --change "<name>" --json
      
    • The instructions JSON includes:
      • context: Project background (constraints for you - do NOT include in output)
      • rules: Artifact-specific rules (constraints for you - do NOT include in output)
      • template: The structure to use for your output file
      • instruction: Schema-specific guidance for this artifact type
      • outputPath: Where to write the artifact
      • dependencies: Completed artifacts to read for context
    • Read any completed dependency files for context
    • Create the artifact file using template as the structure
    • Apply context and rules as constraints - but do NOT copy them into the file
    • Show brief progress: "✓ Created "

    b. Continue until all applyRequires artifacts are complete

    • After creating each artifact, re-run openspec status --change "<name>" --json
    • Check if every artifact ID in applyRequires has status: "done" in the artifacts array
    • Stop when all applyRequires artifacts are done

    c. If an artifact requires user input (unclear context):

    • Use AskUserQuestion tool to clarify
    • Then continue with creation
  5. Show final status

    openspec status --change "<name>"
    

Output

After completing all artifacts, summarize:

  • Change name and location
  • List of artifacts created with brief descriptions
  • What's ready: "All artifacts created! Ready for implementation."
  • Prompt: "Run /opsx-apply or ask me to implement to start working on the tasks."

Artifact Creation Guidelines

  • Follow the instruction field from openspec instructions for each artifact type
  • The schema defines what each artifact should contain - follow it
  • Read dependency artifacts for context before creating new ones
  • Use template as the structure for your output file - fill in its sections
  • IMPORTANT: context and rules are constraints for YOU, not content for the file
    • Do NOT copy <context>, <rules>, <project_context> blocks into the artifact
    • These guide what you write, but should never appear in the output

Guardrails

  • Create ALL artifacts needed for implementation (as defined by schema's apply.requires)
  • Always read dependency artifacts before creating a new one
  • If context is critically unclear, ask the user - but prefer making reasonable decisions to keep momentum
  • If a change with that name already exists, suggest continuing that change instead
  • Verify each artifact file exists after writing before proceeding to next

Skills เพิ่มเติมจาก rivet-dev

multiplayer-game
rivet-dev
รูปแบบเชิงปฏิบัติสำหรับการสร้างเกมผู้เล่นหลายคน: การจับคู่ผู้เล่น, ลูปการทำงานแบบติ๊ก, สถานะแบบเรียลไทม์, การจัดการความสนใจ และการตรวจสอบความถูกต้อง รวมถึงโค้ดเริ่มต้นและรูปแบบสถาปัตยกรรมสำหรับเกม 10 ประเภท (แบทเทิลรอยัล, อารีน่า, สไตล์ IO, โลกเปิด, ปาร์ตี้, ฟิสิกส์ 2D/3D, แบบจัดอันดับ, ผลัดกันเล่น, แบบไม่ได้เล่น) พร้อมโทโพโลยีของตัวละคร, แผนภาพวงจรชีวิต และกลยุทธ์เน็ตโค้ด ครอบคลุมพื้นฐานการจำลองเซิร์ฟเวอร์: ลูปเรียลไทม์แบบคงที่เทียบกับการอัปเดตที่ขับเคลื่อนด้วยการกระทำ, การเลือกเอ็นจิ้นฟิสิกส์ (
rivetkit
rivet-dev
การคำนวณแบบมีสถานะและอายุยืนสำหรับเอเจนต์ AI แอปผู้เล่นหลายคน และระบบอัตโนมัติของเวิร์กโฟลว์ แอคเตอร์เป็นกระบวนการในหน่วยความจำที่คงอยู่ซึ่งรักษาสถานะข้ามคำขอโดยไม่ต้องไปกลับฐานข้อมูล พร้อมการปรับขนาดอัตโนมัติจากศูนย์ไปจนถึงหลายล้านอินสแตนซ์พร้อมกัน มีการสื่อสารแบบเรียลไทม์ในตัวผ่าน WebSockets และอีเวนต์ คิวที่ทนทานสำหรับการประมวลผลข้อความตามลำดับ และ SQLite สำหรับการค้นหาข้อมูลที่มีโครงสร้าง สถานะคงอยู่ข้ามการรีสตาร์ทและการขัดข้องผ่าน Rivet Cloud หรือโฮสต์เอง...
ai-agent
rivet-dev
สร้างแบ็กเอนด์ AI agent ที่มีหน่วยความจำถาวร: หนึ่ง Rivet Actor ต่อการสนทนา การจัดการข้อความในคิว และการสตรีมการตอบสนองของ LLM เป็นเหตุการณ์แบบเรียลไทม์
ai-agent-workspace
rivet-dev
มอบคอมพิวเตอร์ส่วนตัวให้กับเอเจนต์ AI ทุกตัว: พื้นที่ทำงานถาวรที่มีระบบไฟล์ โปรเซส เชลล์ เครือข่าย และเซสชันของเอเจนต์บนระบบในกระบวนการที่มีน้ำหนักเบา…
chat-room
rivet-dev
สร้างแบ็กเอนด์ห้องแชทแบบเรียลไทม์ด้วย Rivet Actors: หนึ่ง actor ต่อหนึ่งห้อง, ประวัติข้อความที่ใช้ SQLite, และการกระจายสัญญาณ WebSocket ไปยังทุกไคลเอนต์ที่เชื่อมต่อ
collaborative-text-editor
rivet-dev
สร้างแบ็กเอนด์ของโปรแกรมแก้ไขข้อความแบบทำงานร่วมกันด้วย Yjs CRDTs และ Rivet Actors: ตัวแทนต่อเอกสารจะถ่ายทอดการอัปเดตการซิงค์และการรับรู้ และบันทึกสแนปช็อต
cron-jobs
rivet-dev
งาน cron ที่ทนทานด้วย Rivet Actors: ตัวจับเวลา schedule.after และ schedule.at ยังคงทำงานต่อหลังการรีสตาร์ทและ Crash พร้อมทั้ง re-arming งานที่เกิดซ้ำและ idempotent handlers
live-cursors
rivet-dev
เคอร์เซอร์สดและการแสดงสถานะผู้เล่นหลายคนด้วย Rivet Actors: สถานะเคอร์เซอร์ต่อการเชื่อมต่อ อัปเดตแบบเรียลไทม์ผ่านอีเวนต์หรือ WebSockets ดิบ และการจำกัดความถี่