Skip to content

Latest commit

 

History

History
75 lines (59 loc) · 4.16 KB

File metadata and controls

75 lines (59 loc) · 4.16 KB

IMPRINT.md

AI agents: this is the manifest. It describes how Gokhan (gkurt) sets up a repository and where each preference lives. To "imprint" a repo means: apply these preferences to it, adapting to the project's language and archetype.

If you were invoked via the imprint skill, you already resolved this file from an imprint source — a local directory or a <username>/imprint repo (public or private). Read the paths below relative to that source, not the repo you're imprinting. Follow the procedure below.

How to imprint a repository

Work top to bottom. Adapt, don't clobber: detect what the target repo already is (language, existing configs, monorepo or not), copy the relevant templates, and merge rather than blindly overwrite. If a file already exists and differs meaningfully, show the diff and ask before replacing.

  1. Read stack/README.md first. It's the philosophy — the runtime, language, and library defaults everything else assumes (Bun + TypeScript + Biome + ESM). Decide the project archetype before copying files.

  2. Config filesconfig/. Copy into the repo root:

    Source Destination
    config/tsconfig.json tsconfig.json
    config/biome.jsonc biome.jsonc
    config/bunfig.toml bunfig.toml
    config/editorconfig .editorconfig
    config/gitignore .gitignore
    config/package.template.json package.json (fill placeholders; merge into an existing one)
    config/husky-pre-commit .husky/pre-commit (then bunx husky init / set chmod +x)

    The dotless names (editorconfig, gitignore, husky-pre-commit) are stored that way so they don't take effect inside this repo — rename on copy.

  3. IDE settingside/. Copy extensions.json and settings.json into .vscode/. See ide/README.md for per-language add-ons.

  4. Agent instructionsagents/. Copy AGENTS.base.mdAGENTS.md and fill in the project-specific sections; copy CLAUDE.md verbatim.

  5. CI & releaseci/. Copy the workflows into .github/workflows/. See ci/README.md. Use ci.yml always; add the Tegami release.yml + PR-preview pair for publishable packages, plus ci/tegami.mtsscripts/tegami.mts (fill in the repo slug and the primary package name).

  6. GitHub repo settingsgithub/settings.md. Apply branch protection, merge settings, and publishing config (ideally with gh).

  7. Finish: install deps (bun i), run bun run checks, and fix anything the linter/formatter flags. Report what you changed and what still needs the user's hand (npm trusted-publishing setup, branch protection that needs the UI).

Directory map

Folder Contains
stack/ Runtime/language/library preferences + per-archetype setup notes. Read first.
config/ Drop-in config files: tsconfig, Biome, bunfig, editorconfig, gitignore, package.json template, husky hook.
ide/ .vscode extensions + settings.
agents/ AGENTS.md base + CLAUDE.md pointer.
ci/ GitHub Actions: CI + Tegami release/PR-preview workflows, and the scripts/tegami.mts config.
github/ GitHub repo settings checklist.
skills/imprint/ The installable imprint skill that drives this.

Principles behind the choices

  • One tool per job: Biome (not ESLint + Prettier), Bun (not Node + npm + a bundler for scripts).
  • Run source in dev, ship built code: the <pkg>@dev export condition.
  • Modern but strict: TypeScript 7 (native tsc), ESM-only, strict + noUncheckedIndexedAccess.
  • AGENTS.md is canonical; every other assistant file points at it.
  • Consistency across repos: same script names, same formatter values, same CI shape.