Troubleshooting

Common problems and how to fix them.

Skills not recognized after install

Symptoms

You type /think and the agent says it does not know that command, or suggests something unrelated.

Cause

The symlinks were not created correctly, or the agent session started before installation finished.

Fix

Run the doctor command and then restart your agent session:

npx create-nanostack doctor
# Fix any issues it reports, then restart the agent

Guard blocks a safe command

Symptoms

Guard blocks a command you know is safe, like deleting a build directory or running a database seed script.

Cause

The command matches a built-in block pattern. Guard uses pattern matching, not semantic analysis.

Fix

Add the command to your custom allowlist:

// .nanostack/config.json
{
  "guard": {
    "allowlist": [
      "rm -rf build",
      "npm run seed"
    ]
  }
}

Artifacts not found by other phases

Symptoms

/review says it cannot find the plan artifact, or /ship reports missing phase artifacts.

Cause

The previous phase crashed before saving its artifact, or you are running in a different working directory.

Fix

Check sprint status and verify your working directory:

sprint.sh status
ls .nanostack/plan/artifact.json

If the artifact is missing, re-run the phase that should have produced it. If the file exists but is not found, make sure all agents are running from the same project root.

Stale lock prevents phase claiming

Symptoms

sprint.sh claim reviewfails with "already claimed" but no agent is running that phase.

Cause

An agent crashed while holding the lock. The lock directory still exists on disk.

Fix

sprint.sh status        # confirms lock is stale
sprint.sh claim --force review

Secret scanner flags false positives

Symptoms

A base64 string in your test fixture or a random ID gets redacted as a suspected secret.

Cause

The string matches the generic pattern for long base64 secrets.

Fix

Add an ignore pattern for your specific format:

// .nanostack/config.json
{
  "secrets": {
    "ignore_patterns": [
      "test_fixture_[a-zA-Z0-9]{32}"
    ]
  }
}

Drift detection too noisy

Symptoms

Every review reports drift because of lock files, generated types, or snapshot files.

Cause

These files change on every build but are never part of the plan.

Fix

// .nanostack/config.json
{
  "drift_ignore": [
    "*.lock",
    "**/*.snap",
    "src/generated/**"
  ]
}

Agent picks the wrong stack

Symptoms

The agent generates React code for a Svelte project, or uses npm when you use pnpm.

Cause

Auto-detection inferred the wrong framework, or your project has config files from multiple frameworks (common in migrations).

Fix

Set the stack explicitly:

// .nanostack/stack.json
{
  "framework": "SvelteKit",
  "package_manager": "pnpm"
}

Project-level config always overrides auto-detection.

Rename did not apply after update

Symptoms

After running /nano-update, your renamed skills revert to their default names.

Cause

The renames.json file was deleted or corrupted.

Fix

Check the file and re-apply:

cat ~/.nanostack/renames.json
# If missing, re-create:
npx create-nanostack rename review=nano-review

/conductor times out waiting for phases

Symptoms

/conductor waits indefinitely for a phase to complete, but the agent running that phase has already finished or exited.

Cause

The agent completed the work but did not run sprint.sh complete <phase> to mark it done.

Fix

Check if the artifact exists and manually mark the phase complete:

ls .nanostack/review/artifact.json   # verify artifact exists
sprint.sh complete review            # mark it done

Getting more help

If your issue is not listed here, check the GitHub issues. If you do not find it there, open a new issue with the output of npx create-nanostack doctor and a description of what you expected versus what happened.

Previousbin/ scripts