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
- 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
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)