Fission-AI/OpenSpec · error · StoreError

store_git_identity_missing

store_git_identity_missing

Error message

No usable Git commit identity is configured, so setup cannot create the initial store commit.

What it means

StoreError from assertGitCommitIdentity: probing 'git var GIT_COMMITTER_IDENT/GIT_AUTHOR_IDENT' failed for a non-exec-reason, meaning no user.name/user.email (or equivalent env) is configured, so the initial store commit cannot be authored. The probe is chosen to fail exactly when the commit would.

Solutions

  1. Run 'git config --global user.name <name>' and 'git config --global user.email <email>'
  2. Set GIT_COMMITTER_IDENT and GIT_AUTHOR_IDENT in the environment for headless/CI use
  3. Rerun the store setup after configuring identity
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/core/store/git.ts:77 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Fission-AI/OpenSpec@6926ccb18a (2026-08-25). Data as JSON: /api/errors/667cf7ee85ce9ef0. Report an issue: GitHub.

Appendix: source

Thrown at src/core/store/git.ts:77

 * auto-detection), so this fails precisely when the initial commit would.
 */
export async function assertGitCommitIdentity(probeCwd: string): Promise<void> {
  for (const identVar of ['GIT_COMMITTER_IDENT', 'GIT_AUTHOR_IDENT']) {
    try {
      await execFileAsync('git', ['var', identVar], { cwd: probeCwd });
    } catch (error) {
      if (isSpawnNotFoundError(error)) {
        throw new StoreError(
          'Git is not available, so setup cannot create the initial store commit.',
          'store_git_init_failed',
          {
            target: 'store.git',
            fix: 'Install Git or rerun setup with --no-init-git.',
          }
        );
      }

      throw new StoreError(
        'No usable Git commit identity is configured, so setup cannot create the initial store commit.',
        'store_git_identity_missing',
        {
          target: 'store.git',
          fix: 'Run git config --global user.name "Your Name" and git config --global user.email "you@example.com", or rerun setup with --no-init-git.',
        }
      );
    }
  }
}

/**
 * Index-preserving initial commit: the pathspec on `git commit` keeps files
 * the user had already staged out of setup's commit and leaves them staged.
 * Pathspecs may be files or directories.
 */
export async function commitStoreFiles(
  storeRoot: string,

View on GitHub (pinned to 6926ccb18a)