{"_id":"@aaserag/reprokit","name":"@aaserag/reprokit","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aaserag/reprokit","version":"0.1.0","description":"Privacy-first GitHub issue repro bundles from local repository metadata","type":"module","bin":{"reprokit":"bin/reprokit.mjs"},"scripts":{"test":"node --test","check":"node --check bin/reprokit.mjs && node --check src/index.mjs && node --check src/collect.mjs && node --check src/redact.mjs && node --check src/report.mjs"},"keywords":["github","bug-report","diagnostics","privacy","cli","reproducible"],"license":"MIT","engines":{"node":">=18"},"repository":{"type":"git","url":"git+https://github.com/aaserag1/reprokit.git"},"bugs":{"url":"https://github.com/aaserag1/reprokit/issues"},"homepage":"https://github.com/aaserag1/reprokit#readme","publishConfig":{"access":"public"},"_id":"@aaserag/reprokit@0.1.0","gitHead":"3e797aebe2e8e4c818f7e9d12ae313146f80b1cc","_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-4r4Ysn1bubOc/rwWA9vM3jkvWQZ5xTY2yftd+Nh+AGXAdRhYpgFJjq7/ZCP9PIt4Jd1AG6z80RID9EtMm2615w==","shasum":"9e655f56087ef63a528eb46069033d5b346f0cff","tarball":"https://registry.npmjs.org/@aaserag/reprokit/-/reprokit-0.1.0.tgz","fileCount":8,"unpackedSize":16351,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFl+b3CQ58zl6tV50seJGpx38i+KQCEVKUqxH4nnFfUCAiBQl4HjAEUv8WLkkyXvhHBfUuQ+W66gPYIGnH0s1+eiRg=="}]},"_npmUser":{"name":"aaserag","email":"Aadelserag00@gmail.com"},"directories":{},"maintainers":[{"name":"aaserag","email":"Aadelserag00@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/reprokit_0.1.0_1786954052507_0.48857631511338395"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T08:07:32.267Z","0.1.0":"2026-08-17T08:07:32.654Z","modified":"2026-08-17T08:07:32.903Z"},"maintainers":[{"name":"aaserag","email":"Aadelserag00@gmail.com"}],"description":"Privacy-first GitHub issue repro bundles from local repository metadata","homepage":"https://github.com/aaserag1/reprokit#readme","keywords":["github","bug-report","diagnostics","privacy","cli","reproducible"],"repository":{"type":"git","url":"git+https://github.com/aaserag1/reprokit.git"},"bugs":{"url":"https://github.com/aaserag1/reprokit/issues"},"license":"MIT","readme":"# ReproKit\n\n[![License: MIT](https://img.shields.io/github/license/aaserag1/reprokit?style=flat)](LICENSE)\n[![Node.js 18+](https://img.shields.io/badge/node-%3E%3D18-5FA04E?style=flat&logo=nodedotjs&logoColor=white)](package.json)\n[![Privacy: local only](https://img.shields.io/badge/privacy-local%20only-2E7D5B?style=flat&logo=shield&logoColor=white)](#privacy-model)\n[![Status: beta](https://img.shields.io/badge/status-beta-F7B955?style=flat)](#status)\n\n**A privacy-first, maintainer-ready bug report draft from local repository metadata.**\n\n`reprokit` turns scattered context around a failed build into two local files: a human-editable `repro.md` and machine-readable `repro.json`. It does **not** upload data, open GitHub issues, read `.env` values, include Git remotes, include diffs, or run your application commands.\n\n> **The promise:** make the first maintainer reply less likely to be “Can you share your environment, lockfile state, Git state, and reproduction steps?”—without sending source code or secrets anywhere.\n\n## Status\n\nReproKit is an early beta. The preferred path after the first npm release is:\n\n```bash\nnpx @aaserag/reprokit --output .reprokit --title \"Build fails after dependency update\"\n```\n\nUntil that release is visible on npm, use the source-install path below.\n\n## Contents\n\n- [Try it from source](#try-it-from-source)\n- [What it writes](#what-it-writes)\n- [What ReproKit includes](#what-reprokit-includes)\n- [Privacy model](#privacy-model)\n- [Development](#development)\n- [Contributing](#contributing)\n\n## Why this exists\n\nIssue templates help contributors structure a report, while environment-reporting tools focus on operating-system and runtime versions. ReproKit focuses on the missing handoff: a concise, privacy-reviewed snapshot of a specific repository plus clear placeholders for the human reproduction steps.\n\n## Try it from source\n\n```bash\ngit clone https://github.com/aaserag1/reprokit.git\ncd reprokit\nnpm ci\nnode bin/reprokit.mjs --output .reprokit-demo --title \"Build fails after dependency update\"\n```\n\nTo run the CLI against **another** project, use the local executable from that project directory:\n\n```bash\nnode /path/to/reprokit/bin/reprokit.mjs --output .reprokit --title \"Describe the failure briefly\"\n```\n\nThis writes a report directory:\n\n```text\n.reprokit/\n├── repro.md    # paste into a GitHub issue after review\n└── repro.json  # structured metadata for tooling\n```\n\n## What it writes\n\n`repro.md` is a ready-to-edit GitHub issue draft. It contains clearly marked placeholders for the human parts of a useful report: what happened, the smallest reproduction, expected behavior, and actual behavior. `repro.json` carries the same safe metadata for tooling.\n\n```md\n# Build fails after dependency update\n\n## Steps to reproduce\n<!-- Add the smallest sequence of commands or interactions that triggers the problem. -->\n\n## Project snapshot\n- Ecosystems: node\n- Lockfiles:\n- package-lock.json (sha256: ...)\n```\n\nBefore sharing either file, review it yourself. ReproKit reduces risk; it cannot know every private detail in your project.\n\n## What it does not do\n\n| It does | It does not do |\n| --- | --- |\n| Detect ecosystem files, lockfile hashes, runtime versions and compact Git state | Read source-code content, manifest content, `.env` values, Git remotes, diffs or commit history |\n| Write `repro.md` and `repro.json` locally | Upload a report, create an issue, contact an API or run project test/build scripts |\n| Redact common token patterns before serializing output | Guarantee that a report contains no sensitive context; human review remains mandatory |\n\n## What ReproKit includes\n\n| Category | Included | Explicitly excluded |\n| --- | --- | --- |\n| Project | Detected ecosystem, manifest names, lockfile SHA-256 hashes, package script names | Source-code content and manifest content |\n| Runtime | Node, Python, Go and Rust version strings when available | Local binary paths |\n| Git | Branch, short commit, changed-file count and untracked-file flag | Remote URL, diff, file names and commit history |\n| Privacy | A summary of redaction categories | Environment variable values and `.env` values |\n\n## Privacy model\n\nReproKit is intentionally conservative. It only executes version checks and read-only Git metadata commands. Before writing output, it replaces common secret shapes such as GitHub tokens, AWS access keys, JWTs, URL credentials and `token=value` style assignments. This is a safety net, not a substitute for manually reviewing a report before sharing it.\n\n## Development\n\n```bash\nnpm ci\nnpm test\nnpm run check\nnode bin/reprokit.mjs --output .reprokit-demo\n```\n\n### Continuous integration\n\nA ready-to-use GitHub Actions workflow lives at [`docs/github-actions-test.yml`](docs/github-actions-test.yml). Copy it to `.github/workflows/test.yml` after the repository token or account has permission to create workflow files. The workflow runs the unit tests and syntax checks on Node.js 18, 20 and 22.\n\n## Contributing\n\nNew contributors are welcome, especially for ecosystem detectors, redaction rules, report wording, test fixtures, and accessibility/readability improvements in the generated Markdown. Start with [the first-contribution guide](docs/first-contributions.md), then read [CONTRIBUTING.md](CONTRIBUTING.md) and the [security policy](SECURITY.md).\n\n## Roadmap\n\nThe first release targets Node, Python, Rust and Go repositories. Future versions may add opt-in issue-template mapping, custom safe collectors, and integrations with GitHub CLI. ReproKit will keep external uploads and automatic issue creation opt-in.\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md","_rev":"1-04d7567eede7b27891c97324be237a0c"}