Inkling is a small, opinionated project. This is the short version of what to know before opening an issue or a pull request.
- Bugs and feature requests: use the issue templates. For bugs, the Inkling and Command Palette versions and — when the problem is inside the extension — its diagnostic log cut the guesswork; the template says how to get it.
- Security or data-loss problems (wrong file deleted, note content lost): see SECURITY.md and do not open a public issue.
Welcome without asking first: bug fixes, documentation fixes, UI-string corrections, small improvements. For anything that changes behaviour or adds a feature, open an issue first — much of the design is constrained by what Command Palette can and cannot do, and several obvious-looking ideas have already been tried, measured, and written down in docs/design-notes.md (Traditional Chinese). A short discussion saves a rewrite.
Before you start:
- Read docs/development.md (Traditional Chinese) — build, deploy,
project layout, troubleshooting. Everything under
src/Inkling.Coreis unit-tested.src/Inkling, the thin Command Palette layer, has tests too (tests/Inkling.Tests, run separately — it is deliberately outside the solution), but they only cover what does not need Command Palette running: command order and shortcuts, cache keys, unsubscribing on dispose. The screen itself is verified by hand (docs/manual-test-checklist.md, driven bytools\cmdpal-ui.ps1). - Read AGENTS.md (Traditional Chinese) — the repository's rulebook: the architecture, the hard-won rules for dealing with Command Palette, and the conventions, written for AI coding assistants and humans alike.
The rules that bite:
- UI strings never live in code. They go into all three
.resxfiles undersrc/Inkling/Properties/(English is the neutral one);ResourceParityTestsfails when one is missing or a placeholder does not match. - Logic that can live in
Inkling.Coregoes there, with tests.dotnet testmust pass. - Docs move with the code, in the same PR. Commands, settings, the file format, or any
user-visible behaviour → both
README.mdandREADME.zh-Hant.md(they are one document in two languages; keep the sections and table rows aligned) plusdocs/manual-test-checklist.md; build or deploy changes →docs/development.md; and an entry under[Unreleased]inCHANGELOG.md. - Top-level command Ids (
src/Inkling/CommandIds.cs) and the package identity are promises to users — renaming them wipes people's aliases, hotkeys, and settings. - Commit messages follow Conventional Commits: imperative, lower-case subject, no trailing period, ≤ 72 characters.
The maintainer docs and the code comments are Traditional Chinese only; the two READMEs are the exception. CLAUDE.md says why. Contribute in English — the translation is handled on the way in.