Skip to content

chore(specgit): automate bootstrap around required harness specializations #521

Description

@LeXwDeX

This was generated by AI during triage.

Why

SpecGit 1.10.1 runs a harness-currency gate during specgit issue. Generated assets are compared byte-for-byte with the CLI template, but this repository must retain six proven specializations in .github/workflows/specgit-accept.yml:

  1. no workflow_dispatch
  2. global specgit@1.10.1 installation
  3. 45-minute job timeout
  4. Node.js 22
  5. dependency-free parsing of spec_git/policy.yaml
  6. a 40-minute polling deadline below the job timeout

specgit status --json confirms every generated asset is current except this intentionally specialized workflow, which is reported as asset_stale. Consequently a direct specgit issue exits before creating a delivery unless the workflow is temporarily replaced with template bytes.

The gate is bootstrap-only; specgit finish and the PR acceptance verdict remain functional.

Scope

Implement the smallest reversible repository-local solution:

  • Add one bootstrap wrapper that snapshots the specialized workflow, refreshes the generated harness, runs specgit issue with unchanged arguments, and restores the specialized bytes on success or failure.
  • Preserve the wrapped command's exit code and diagnostic.
  • Refuse to run when the relevant files contain pre-existing user changes that cannot be restored safely.
  • Update the repository instructions so this wrapper is the only documented bootstrap entry point until SpecGit provides an acknowledged-specialization seam.
  • File or link the upstream specialization request, but do not patch the globally installed CLI from this repository.

Out of scope: weakening spec_git/policy.yaml, dropping any specialization without independent CI evidence, or folding unrelated SpecGit integration defects into this delivery.

Acceptance

  • One scripted command completes a new SpecGit bootstrap without manual file swapping.
  • Before/after hashes of .github/workflows/specgit-accept.yml are identical on both successful and forced-failure paths.
  • No unrelated generated asset or user worktree change is modified.
  • Existing specgit finish --json acceptance behavior remains unchanged.
  • Instructions document the wrapper and the six retained specializations.

Separate follow-ups

These are separate WHYs and are intentionally excluded from this issue.

Evidence

  • specgit 1.10.1
  • specgit status --json: only .github/workflows/specgit-accept.yml is stale
  • .github/workflows/specgit-accept.yml:3-15, :38-64, :82-95, :222-234, :306-307
  • AGENTS.md, SpecGit local-specializations section
  • Commit 8b52b71aa4

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingkind::choreready-for-agentFully specified and ready for an agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions