Opsx Propose

Propose a new change — create it and generate all artifacts in one step.

TNSGXhosts updated 3mo ago
Claude CodeGeneric
View source ↗
Propose a new change — create it and generate all artifacts in one step.

I'll create a change with artifacts:
- `proposal.md` (what & why)
- `design.md` (how)
- `tasks.md` (implementation steps)

When ready to implement, run `/opsx-apply`.

---

**Input**: `$ARGUMENTS` — the change name (kebab-case), OR a description of what to build.

**Steps**

1. **If no input provided, ask what to build**

   Ask the user:
   > "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. **Read mandatory architecture docs**

   Before creating any artifact, read:
   - `.claude/docs/onion-architecture.md` — layer rules and violation codes V-1…V-12
   - `.claude/docs/Feature-Driven-Structure.md` — vertical slices layout, S-1…S-4
   - `.claude/docs/CQRS-and-Data-Flow.md` — pipeline rules, F-1…F-4
   - `.claude/docs/DI-and-IoC.md` — registration rules, D-1…D-3

   Apply their constraints to `design.md` and `tasks.md`. Every PLAN-N step must specify the exact layer, folder path, and file names per these docs.

3. **Create the change directory**

   ```bash
   openspec new change "<name>"

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

  1. Get the artifact build order

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

    Parse the JSON to get:

    • applyRequires: artifact IDs needed before implementation
    • artifacts: list of all artifacts with status and dependencies
  2. Create artifacts in sequence until apply-ready

    Use the TodoWrite tool to track progress through the artifacts.

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

    a. For each artifact that is ready:

    • 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 the 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 using template as the structure
    • Apply context and rules as constraints — 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
    • Stop when all applyRequires artifact IDs have status: "done"

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

    • Ask the user directly, then continue
  3. Show final status

    openspec status --change "<name>"
    

Output

After completing all artifacts, summarize:

  • Change name and location
  • List of artifacts created with brief descriptions
  • "All artifacts created! Ready for implementation."
  • Prompt: "Run /opsx-apply to start implementing."

Artifact Creation Guidelines

  • Follow the instruction field from openspec instructions for each artifact type
  • Read dependency artifacts for context before creating new ones
  • Use template as the structure — fill in its sections
  • IMPORTANT: context and rules are constraints for YOU, not content for the file

Guardrails

  • Create ALL artifacts needed for implementation (as defined by applyRequires)
  • Always read dependency artifacts before creating a new one
  • If context is critically unclear, ask the user — but prefer reasonable decisions to keep momentum
  • If a change with that name already exists, ask if the user wants to continue it or create a new one
  • Verify each artifact file exists after writing before proceeding to next

Maintain Opsx Propose?

Let people know it's listed here — add the badge (live metrics, light/dark aware) or a plain link to your README or docs.

[Opsx Propose on getagentictools](https://getagentictools.com/loops/tnsgxhosts-opsx-propose?ref=badge)