From b6cc5acb64a4ab865900be5d95274a72d0d148a4 Mon Sep 17 00:00:00 2001 From: zhouwang <184232456@qq.com> Date: Fri, 17 Jul 2026 23:41:12 +0800 Subject: [PATCH] Add GitHub adoption kit --- .github/ISSUE_TEMPLATE/bug.yml | 7 +++- .github/ISSUE_TEMPLATE/feature.yml | 33 ++++++++++++++++ CHANGELOG.md | 5 +++ README.md | 11 ++++++ examples/github/.bugbundle.yml | 21 +++++++++++ examples/github/README.md | 13 +++++++ examples/github/bug-report.yml | 60 ++++++++++++++++++++++++++++++ 7 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/feature.yml create mode 100644 examples/github/.bugbundle.yml create mode 100644 examples/github/README.md create mode 100644 examples/github/bug-report.yml diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 180116b..f6cf810 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -29,7 +29,7 @@ body: id: version attributes: label: BugBundle version - placeholder: 0.1.0 + placeholder: 0.2.0 validations: required: true - type: dropdown @@ -43,6 +43,11 @@ body: - Other validations: required: true + - type: textarea + id: bundle + attributes: + label: Reviewed BugBundle (optional) + description: Drag a ZIP here only after running `bugbundle preview` and reviewing its complete contents. Never upload secrets or proprietary source. - type: checkboxes id: safety attributes: diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..3108836 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,33 @@ +name: Feature request +description: Propose a focused improvement to BugBundle +title: "[Feature]: " +labels: [enhancement, needs-triage] +body: + - type: textarea + id: problem + attributes: + label: Maintainer problem + description: What bug-report or reproduction workflow is difficult today? + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed improvement + description: Describe the smallest change that would improve the workflow. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: How do you handle this today? + - type: checkboxes + id: constraints + attributes: + label: Project constraints + options: + - label: The deterministic offline core can remain usable without an AI model. + required: true + - label: I have not included secrets, proprietary source code, or an unreviewed bundle. + required: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 2eaf7c9..5718cbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/en/1.1. ## [Unreleased] +### Added + +- a copy-paste GitHub adoption kit with a maintainer policy and reproducible bug-report Issue Form; and +- a public design-partner pilot and feature-request workflow. + ## [0.2.0] - 2026-07-17 ### Added diff --git a/README.md b/README.md index e4a96ed..819396e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ # BugBundle +[![CI](https://github.com/bugbundleZ/bugbundle/actions/workflows/ci.yml/badge.svg)](https://github.com/bugbundleZ/bugbundle/actions/workflows/ci.yml) +[![npm version](https://img.shields.io/npm/v/bugbundle.svg)](https://www.npmjs.com/package/bugbundle) +[![npm downloads](https://img.shields.io/npm/dm/bugbundle.svg)](https://www.npmjs.com/package/bugbundle) +[![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) + BugBundle captures a failing command as a privacy-safe, executable bug report artifact. It runs locally, requires no account or network connection, and never uploads the bundle. The project is in the experimental `0.x` series, so review release notes before upgrading. @@ -29,6 +34,12 @@ bugbundle capture --json --output bugbundle.zip -- npm test bugbundle verify --json bugbundle.zip ``` +## Adopt it in your project + +The [GitHub adoption kit](examples/github/README.md) contains a maintainer-owned policy and Issue Form that you can copy into a Node.js repository. Review the allowlist and replace the example test command before publishing the form. + +We are recruiting five Node.js CLI, build-tool, or library maintainers for a hands-on design-partner pilot. [Introduce your repository in the pilot discussion](https://github.com/bugbundleZ/bugbundle/discussions/9). + ## File allowlist `bugbundle init` creates `.bugbundle.yml`. Only matching files can enter a bundle. Run `bugbundle preview` before capture to inspect the exact paths and sizes. diff --git a/examples/github/.bugbundle.yml b/examples/github/.bugbundle.yml new file mode 100644 index 0000000..388ed80 --- /dev/null +++ b/examples/github/.bugbundle.yml @@ -0,0 +1,21 @@ +# Copy this file to the repository root and review every include pattern. +schemaVersion: 1 +files: + include: + - package.json + - package-lock.json + - pnpm-lock.yaml + - yarn.lock + - bun.lock + - tsconfig.json + - vite.config.{js,mjs,ts} + - vitest.config.{js,mjs,ts} + # Add the smallest safe source pattern required by your reproduction: + # - src/**/*.ts + exclude: + - node_modules/** + - .git/** + - dist/** + - coverage/** + maxFiles: 100 + maxFileBytes: 2097152 diff --git a/examples/github/README.md b/examples/github/README.md new file mode 100644 index 0000000..1fd55fe --- /dev/null +++ b/examples/github/README.md @@ -0,0 +1,13 @@ +# GitHub adoption kit + +This directory is a copy-paste starting point for maintainers who want reproducible, reviewable bug reports from Node.js projects. + +1. Copy `.bugbundle.yml` to the repository root. +2. Review every `files.include` pattern. Add source files only when they are safe and necessary to reproduce failures. +3. Copy `bug-report.yml` to `.github/ISSUE_TEMPLATE/bug-report.yml`. +4. Replace the example `npm test` command with the narrowest stable reproduction command for the project. +5. Run the workflow yourself before asking contributors to use it. + +Reporters should run `npx bugbundle@0.2.0 preview`, inspect the complete allowlist, capture the failure, and review the ZIP before attaching it. A BugBundle can still contain sensitive project information that no generic redactor can recognize. + +`bugbundle verify` checks archive structure and hashes without executing code. Maintainers should use `verify --run` only for trusted bundles and preferably inside an isolated environment. diff --git a/examples/github/bug-report.yml b/examples/github/bug-report.yml new file mode 100644 index 0000000..62fb472 --- /dev/null +++ b/examples/github/bug-report.yml @@ -0,0 +1,60 @@ +name: Reproducible bug report +description: Report a failure with a reviewed BugBundle +title: "[Bug]: " +labels: [bug, needs-triage] +body: + - type: markdown + attributes: + value: | + Thanks for helping us reproduce the problem. + + Run these commands from a safe reproduction project. Replace `npm test` if the maintainer documents another command. + + ```bash + npx bugbundle@0.2.0 preview + npx bugbundle@0.2.0 capture --output bugbundle.zip -- npm test + npx bugbundle@0.2.0 inspect bugbundle.zip + ``` + + Review the complete ZIP before uploading it. Never attach secrets or proprietary source code. + - type: textarea + id: description + attributes: + label: Description + description: What happened, and what did you expect? + validations: + required: true + - type: textarea + id: bundle + attributes: + label: Reviewed BugBundle + description: Drag `bugbundle.zip` here after reviewing its complete contents. + validations: + required: true + - type: input + id: version + attributes: + label: BugBundle version + placeholder: 0.2.0 + validations: + required: true + - type: dropdown + id: operating-system + attributes: + label: Operating system + options: + - Linux + - macOS + - Windows + - Other + validations: + required: true + - type: checkboxes + id: safety + attributes: + label: Safety confirmation + options: + - label: I ran `bugbundle preview` and reviewed every file in the bundle. + required: true + - label: The bundle contains no secrets or proprietary source code. + required: true