jingbong

An imaginary friend for Linear and GitHub. It surfaces the consequences of a product change and the decisions it forces, and your team decides together in Linear, on the record.

github · guide · full install instructions

curl -fsSL https://jingbong.dev/ging_gang_gong_already.sh | sh

## what it does

Iterative, collaborative decision-making in Linear. jingbong runs the process and does the legwork, you and your team make the decisions.

## commands

@jingbong cpCheckpoint. Suggested title, what's been decided, open questions. React ✅ to write it into the issue.
@jingbong optEvery reasonable option with trade-offs, no recommendation. 👍 the one you pick. Reacting 🤔 on any comment does the same.
@jingbong buildImplements on a new branch, runs the checks, opens one PR per changed repo. Never merges.
@jingbong <text>Ask about the code or request work in plain words.

## examples

### ask in plain words

ENG-207  CSV download on reports

sam       reports page needs a download button, people keep
          copying the table into spreadsheets
maya      @jingbong how does the reports table get its rows?
          👀
jingbong  ReportsTable asks /api/reports for 50 rows at a
          time. filters and sort are query params, so the
          server already knows what's on screen.

### checkpoint

sam       @jingbong cp  👀
jingbong  suggested title: Export reports as CSV
          what the issue is: a button on the reports page
          that downloads the table as a CSV.
          done looks like:
          - a download button above the reports table
jingbong  open question · from checkpoint
          export only the 50 rows on screen, or every row
          matching the current filters?

### answer, then react 🤔 for options

  ↳ sam   every row with the filters applied. but some teams
          have 200k rows, can a browser even do that? and
          doesn't excel mangle accented names?
          🤔 1
jingbong  > every row with the filters applied. but some...
          question: where the CSV gets built, so it stays
          fast for big teams and opens cleanly in excel.
          what decides it:
          - how many rows the biggest exports have
          - whether people will wait, or want it sent later
  ↳ jingbong  A. build it in the browser from paged requests
              no server work; slow and memory-hungry at 200k
  ↳ jingbong  B. stream it from a new /api/reports.csv
              fast at any size; one new endpoint
              👍 1
  ↳ jingbong  C. background job, email a link when done
              handles any size; people wait, needs storage
  ↳ jingbong  D. export .xlsx with a spreadsheet library
              no excel encoding trouble; new dependency

### checkpoint until it's settled

sam       @jingbong cp  👀
jingbong  suggested title: Export reports as CSV
          done looks like:
          - a download button above the reports table
          - every row matching the current filters and sort
          - streamed from a new /api/reports.csv
jingbong  open question · from checkpoint
          write a UTF-8 byte order mark, so excel shows
          accented names correctly?
  ↳ sam   yes
maya      @jingbong cp  👀
jingbong  suggested title: Export reports as CSV
          done looks like:
          - a download button above the reports table
          - every row matching the current filters and sort
          - streamed from a new /api/reports.csv
          - UTF-8 with a byte order mark
          open questions: none
          ✅ 1
jingbong  ✅ applied to the title and description
          (previous version kept in this comment)

### build

maya      @jingbong build  👀
jingbong  🔨 building on jingbong/eng-207-export-reports-as-csv
jingbong  opened #412, checks pass
          - GET /api/reports.csv streams every matching row,
            using the same filters and sort as the table
          - "download CSV" button above ReportsTable
          assumptions:
          - file is named reports-<date>.csv
          - button is disabled while the table is loading

## install

Bring your own agent CLI: OpenCode, Claude Code, Codex, Gemini or Cursor.

curl -fsSL https://jingbong.dev/ging_gang_gong_already.sh | sh

Needs git and Node.js 18+. Clones to ~/jingbong, builds it and puts jingbong on your PATH (read the script). Then run /jingbong-setup in your agent from that folder, or follow SELF_HOSTING.md and SETUP_COMMENT_MODE.md to connect Linear and GitHub.