{"record":{"id":"667cf7ee85ce9ef0","repo":"Fission-AI/OpenSpec","slug":"store-git-identity-missing","errorCode":"store_git_identity_missing","errorMessage":"No usable Git commit identity is configured, so setup cannot create the initial store commit.","messagePattern":"No usable Git commit identity is configured, so setup cannot create the initial store commit\\.","errorType":"error_code","errorClass":"StoreError","httpStatus":null,"severity":"error","filePath":"src/core/store/git.ts","lineNumber":77,"sourceCode":" * auto-detection), so this fails precisely when the initial commit would.\n */\nexport async function assertGitCommitIdentity(probeCwd: string): Promise<void> {\n  for (const identVar of ['GIT_COMMITTER_IDENT', 'GIT_AUTHOR_IDENT']) {\n    try {\n      await execFileAsync('git', ['var', identVar], { cwd: probeCwd });\n    } catch (error) {\n      if (isSpawnNotFoundError(error)) {\n        throw new StoreError(\n          'Git is not available, so setup cannot create the initial store commit.',\n          'store_git_init_failed',\n          {\n            target: 'store.git',\n            fix: 'Install Git or rerun setup with --no-init-git.',\n          }\n        );\n      }\n\n      throw new StoreError(\n        'No usable Git commit identity is configured, so setup cannot create the initial store commit.',\n        'store_git_identity_missing',\n        {\n          target: 'store.git',\n          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.',\n        }\n      );\n    }\n  }\n}\n\n/**\n * Index-preserving initial commit: the pathspec on `git commit` keeps files\n * the user had already staged out of setup's commit and leaves them staged.\n * Pathspecs may be files or directories.\n */\nexport async function commitStoreFiles(\n  storeRoot: string,","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/store/git.ts#L59-L95","documentation":"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.","triggerScenarios":"Thrown at src/core/store/git.ts:77 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run 'git config --global user.name <name>' and 'git config --global user.email <email>'","Set GIT_COMMITTER_IDENT and GIT_AUTHOR_IDENT in the environment for headless/CI use","Rerun the store setup after configuring identity"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6926ccb18afa4ff621112813e9968334576ee11a","analyzedAt":"2026-08-25T12:29:45.729Z","contentChangedAt":"2026-08-25T12:29:45.729Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}