diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..5268b06e --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,21 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## What this repository is + +This is the **public distribution and issue-tracking repository** for GitHub Copilot CLI. The CLI's source code is **not** here — the product is closed-source and shipped as prebuilt binaries via GitHub Releases (and Homebrew, WinGet, and npm as `@github/copilot`). There is nothing to build, lint, or test in this repo, and no package manifest or test suite exists. + +The repository contains only: + +- `README.md` — product overview, installation methods, authentication (PAT with "Copilot Requests" permission via `GH_TOKEN`/`GITHUB_TOKEN`), experimental mode, and LSP server configuration (`~/.copilot/lsp-config.json` user-level, `.github/lsp.json` repo-level). +- `install.sh` — the curl-able installer served from `https://gh.io/copilot-install`. POSIX-leaning bash that detects platform/arch, downloads the release tarball, validates SHA256 checksums, installs to `$PREFIX/bin` (`/usr/local` for root, `$HOME/.local` otherwise), and offers to update the user's shell PATH. On Windows it delegates to `winget`. Honors `VERSION` (including `prerelease`, resolved via `git ls-remote --tags`) and `PREFIX` environment variables. +- `changelog.md` — the authoritative release changelog. Newest version first, each release as a `## - ` heading followed by a flat bullet list of changes. Release commits follow the message pattern `Update changelog.md for version `. +- `.github/` — issue templates (`bug_report.yml`, `feature_request.yml`) and issue-triage automation workflows. There is no CI for code because there is no code. + +## Working in this repo + +- **`install.sh` is the only executable code.** Changes to it should preserve its constraints: it must work when piped from curl/wget (interactive prompts read from `/dev/tty`), support both curl and wget, both `sha256sum` and `shasum`, and bash on macOS and Linux. Keep the checksum validation and tarball sanity checks intact. +- **`changelog.md` edits must follow the existing format** exactly: prepend a new `## - ` section at the top; entries are terse, imperative, one-line bullets with no sub-grouping. +- **The `.github/workflows/` files are all issue-hygiene or release automation**, not CI: labeling incoming issues with `triage` (`triage-issues.yml`), removing triage labels, closing single-word or invalid issues, stale marking after 365 days without auto-close (`stale-issues.yml`, exempt labels: `never-stale`, `help wanted`), no-response closing, and WinGet submission on release publish (`winget.yml`, package IDs `GitHub.Copilot` / `GitHub.Copilot.Prerelease`). +- Feature requests or bug reports about the CLI itself cannot be fixed here — the relevant changes happen in the private source repo. Work in this repo is limited to docs, the installer, changelog, and issue automation.