forkctl 0.0.11

Control audited StGit downstream patch stacks
{
  "stage": "interview",
  "title": "Forkctl Audited Lifecycle",
  "goalSlug": "forkctl-audited-lifecycle",
  "questions": [
    {
      "id": "schema-compatibility",
      "prompt": "How should the expanded manifest coexist with the schema-1 manifests already used by released consumers?",
      "description": "The next version remains a patch release, while schema 1 has a live producer in Ghostty.",
      "answerMode": "single-custom",
      "recommendedAnswer": "Keep schema 1 fully supported and introduce schema 2 for the audited lifecycle; reject only operations that require fields unavailable in schema 1.",
      "recommendedOptionIds": ["dual-schema"],
      "options": [
        {
          "id": "dual-schema",
          "label": "Support schemas 1 and 2",
          "description": "Preserves 0.0.2 consumers while making the stronger contract explicit. Recommended."
        },
        {
          "id": "extend-schema-1",
          "label": "Extend schema 1 in place",
          "description": "Avoids a schema number change but weakens the meaning of existing schema-1 documents."
        },
        {
          "id": "schema-2-only",
          "label": "Require schema 2",
          "description": "Simplest implementation, but intentionally breaks existing consumers in a patch release."
        }
      ],
      "required": true
    },
    {
      "id": "release-boundary",
      "prompt": "What should happen after the forkctl-only implementation and tests pass?",
      "description": "The shared release-workflow collection and native build matrix are explicitly deferred.",
      "answerMode": "single-custom",
      "recommendedAnswer": "Prepare and publish 0.0.3 through the existing local crates.io/GitHub release path, while deferring only the new CI workflow and asset matrix.",
      "recommendedOptionIds": ["publish-local"],
      "options": [
        {
          "id": "publish-local",
          "label": "Publish 0.0.3 locally",
          "description": "Use the existing release path; add no workflow or matrix. Recommended if the feature should become consumable now."
        },
        {
          "id": "prepare-only",
          "label": "Prepare 0.0.3 only",
          "description": "Commit and verify the versioned implementation but wait for the workflow collection before publishing."
        },
        {
          "id": "implementation-only",
          "label": "Do not bump yet",
          "description": "Land implementation on main at 0.0.2 and decide release mechanics later."
        }
      ],
      "required": true
    },
    {
      "id": "new-command",
      "prompt": "What should `forkctl new` leave behind for the operator?",
      "description": "The command must keep the final bookkeeping patch last while creating a fully documented downstream patch.",
      "answerMode": "single-custom",
      "recommendedAnswer": "Create and position an empty StGit patch with required trailers, update manifest and generated ledger in the bookkeeping patch, then leave implementation edits to the operator.",
      "recommendedOptionIds": ["documented-empty-patch"],
      "options": [
        {
          "id": "documented-empty-patch",
          "label": "Create documented empty patch",
          "description": "Establishes identity and audit state before implementation. Recommended."
        },
        {
          "id": "metadata-only",
          "label": "Update metadata only",
          "description": "Do not create the StGit patch until the operator does so manually."
        },
        {
          "id": "defer-new",
          "label": "Defer `new`",
          "description": "Ship status, verify, rebase, and publish first."
        }
      ],
      "required": true
    },
    {
      "id": "proposal-disposition",
      "prompt": "How should the existing uncommitted 0.1/Zed proposal be handled?",
      "description": "It currently conflicts with the forkctl-only patch-release direction and is linked from the README.",
      "answerMode": "single-custom",
      "recommendedAnswer": "Revise it into the authoritative forkctl-only 0.0.3 design, removing the Zed migration and 0.1 release claims while preserving useful sourced research.",
      "recommendedOptionIds": ["revise-authoritative"],
      "options": [
        {
          "id": "revise-authoritative",
          "label": "Revise into the 0.0.3 design",
          "description": "Preserves useful research without keeping a contradictory plan. Recommended."
        },
        {
          "id": "preserve-superseded",
          "label": "Preserve as superseded research",
          "description": "Keep it with an explicit superseded banner and write a separate implementation plan."
        },
        {
          "id": "discard-proposal",
          "label": "Discard it",
          "description": "Remove the proposal and README link; derive the implementation only from the reviewed goal package."
        }
      ],
      "required": true
    }
  ]
}