Skip to main content

Turn AI-generated bug fixes into Stack Overflow contributions automatically

Project description

Resolution Capsule

AI coding assistants are trained on Stack Overflow. When they fix your bug, that fix should go back to Stack Overflow.

Resolution Capsule closes the loop: it captures an AI-generated fix, strips everything private (tokens, emails, internal paths, IPs, ticket IDs), and posts a clean, reviewable draft directly to Stack Overflow.


The Problem

Every day, AI assistants help developers fix bugs using knowledge that was scraped from public forums. Those fixes stay in a chat window and never benefit the next person who hits the same error. The knowledge loop is broken.

What It Does

  1. You fix a bug — with an AI assistant or manually
  2. Resolution Capsule captures the fix and its context
  3. It redacts secrets, identity markers, and internal details automatically
  4. It produces a Stack Overflow-ready draft and posts it via the API

The goal is zero friction between "fix applied" and "community helped."


Surfaces

Surface Best for
VS Code extension Capturing AI-generated fixes directly from your editor (git diff → post)
MCP server Runs inside Claude Code, Cursor, or any MCP-compatible AI assistant
CLI CI pipelines, scripts, batch processing of resolved incidents
Web UI Quick one-off drafts and testing the sanitizer

VS Code Extension

Install from the marketplace or from the .vsix in vscode-extension/.

MCP server (Claude Code, Cursor, any MCP client):

uvx resolution-capsule        # run directly, no install needed
pipx install resolution-capsule  # install permanently

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "resolution-capsule": {
      "command": "uvx",
      "args": ["resolution-capsule"]
    }
  }
}

Key command — Create from AI Fix:

  1. Use your AI assistant to apply a fix
  2. Cmd+Shift+PResolution Capsule: Create from AI Fix
  3. Describe the problem and root cause
  4. A sanitized draft opens — one click posts it to Stack Overflow

The command captures your current git diff as the fix automatically. No copy-pasting.

Other commands: Create From Selection, Create From Prompts, Connect Stack Overflow, Disconnect Stack Overflow.


CLI

python3 capsule_cli.py \
  --problem "Build fails after dependency upgrade" \
  --rootCause "Lockfile drift" \
  --fix "Regenerated package-lock.json" \
  --source "ai-assisted"

JSON input:

python3 capsule_cli.py --format json --json '{"problem":"...","rootCause":"...","fix":"...","source":"ai-assisted","mode":"balanced"}'

Write to file:

python3 capsule_cli.py --output capsule.md --problem "..." --rootCause "..." --fix "..."

Web UI

python3 app.py

Open http://127.0.0.1:8000.


Sanitization

Balanced mode (default): API keys, bearer tokens, JWTs, GitHub tokens, Slack tokens, AWS keys, emails, IPs, internal URLs, filesystem user paths, private key blocks.

Strict mode: everything above plus ticket IDs and long numeric identifiers.


What's Missing (and Where to Help)

This is a work in progress. The pieces that matter most and aren't built yet:

  • Cursor / Copilot / Claude Code hooks — trigger a capsule automatically when an AI fix is accepted, without the developer doing anything manually
  • Entropy-based secret detection — catch high-entropy strings that don't match known patterns
  • Duplicate detection — check if the question already exists on Stack Overflow before posting
  • Team policy packs — org-level redaction rules layered on top of the defaults
  • JetBrains plugin — same workflow as the VS Code extension

If any of these interest you, the codebase is small and the engine is pure Python with no dependencies.


Stack Overflow Setup

To enable auto-posting, register a free app at stackapps.com/apps/oauth/register with OAuth domain localhost, then add your credentials to VS Code settings:

resolutionCapsule.stackOverflow.clientId
resolutionCapsule.stackOverflow.clientSecret
resolutionCapsule.stackOverflow.apiKey

Run Resolution Capsule: Connect Stack Overflow once to authorise.


Contributing

The repo is at github.com/adivarshney/resolution-capsule. Issues, PRs, and ideas are all welcome. If you're unsure where to start, the AI tool integrations section above is the frontier.


Run the Tests

python3 -m unittest test_app -v

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

resolution_capsule-0.2.0.tar.gz (72.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

resolution_capsule-0.2.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file resolution_capsule-0.2.0.tar.gz.

File metadata

  • Download URL: resolution_capsule-0.2.0.tar.gz
  • Upload date:
  • Size: 72.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for resolution_capsule-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4c84cd8f0137dda1d10972f2981a900fc4504e25bd2d2ab5b50a6d17603a14ae
MD5 aa2b93f5a1fa7bb8f8ae6170feab0ce3
BLAKE2b-256 d3712713a3144ed071d263bc44624571dba62bb4c059a7b9b3c398115e1ab258

See more details on using hashes here.

File details

Details for the file resolution_capsule-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: resolution_capsule-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for resolution_capsule-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c51a9559a9c21a4a52aab29b57a364add06344edeed9f7337d7566b519f064d
MD5 d5aff4d51f5d7426fcf1735c3ec5d101
BLAKE2b-256 eec0432c2bd228f1b28a8b6366e1615551333b1bf1a8c323190600b2d6f73498

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page