The nolte/workstation repository is a chezmoi
source tree that provisions developer workstations (chezmoi init --apply /
chezmoi update). It delivers:
- asdf-pinned CLI tool versions (
dot_tool-versions), - a baseline git configuration (
dot_gitconfig.tmpl), - zsh plugins (oh-my-zsh customs, cloned via
.chezmoiexternal.toml), - a reusable Taskfile collection (cloned to
~/.local/share/taskfile-collection/), - two Python virtual environments:
~/.venvs/development(pre-commit, cookiecutter) and~/.venvs/docs(mkdocs-material).
Renovate keeps tool versions, Python requirements, GitHub Action refs and the Vale style package in sync with upstream releases.
Boundary: chezmoi_config/ — declared as the chezmoi source directory via
.chezmoiroot — is the content that lands in target machines via
chezmoi apply. Everything outside chezmoi_config/ (docs/, .github/,
Taskfile.yml, mkdocs.yml, .vale.ini, .pre-commit-config.yaml,
renovate.json5) is repo-care tooling and is not delivered to target
machines.
Explicitly out of scope: application code; project-specific scaffolds (those live in dedicated cookiecutter-template repositories); IDE-/editor- specific configurations (VSCode, JetBrains); secrets, SSH keys and cloud credentials; OS-level setup (package manager installs, firewall, drivers) — chezmoi only provisions user-space dotfiles and asdf-managed CLI tools.
Each entry: label, relationship category, interaction surface, expectation,
documentation track (user-docs or developer-docs per
spec/project/docs-audience-tracks/), open questions, confirmed or assumed,
criticality (primary / secondary / peripheral). Mark a whole category as
none — <reason> when it does not apply.
workstation-operator— category: direct-consumer · surface: chezmoi CLI on the target machine; the generated dotfiles (~/.tool-versions,~/.gitconfig,~/.zshrcwith plugins,~/taskfile.yaml); zsh as the interactive shell;task <name>invocations on the provisioned machine · expects: idempotent setup on repeated apply, deterministic version pinning (reproducibility across machines), non-breaking incremental updates driven by Renovate · track:user-docs· status:confirmed(nolte personally) · criticality: primary- Open questions:
- Is the target OS Linux only, or also macOS?
- Is the operator audience strictly single-user (nolte only), or does any adjacent collaborator apply this repo directly on their own workstation?
- Open questions:
none — chezmoi runs as a one-shot tool on the workstation-operator's own machine; there is no long-running service to operate separately.
workstation-maintainer— category: contributor/maintainer · surface: GitHub (PR reviews, Release Drafter, auto-merge labels), local git,task lint,task test,task docs,task docs:build,pre-commit,vale· expects:pre-commit run --all-filesand Vale green;mkdocs build --strictsucceeds; Renovate PRs auto-merge for non-breaking bumps; Release Drafter accumulates PR titles ondevelop; release publish fast-forwardsmainto the release tag · track:developer-docs· status:confirmed· criticality: primary- Open questions:
- Are external contributions explicitly welcome (CLA / DCO / contribution-guide expectations)?
- Open questions:
-
nolte/gh-plumbing— category: governing · surface:_extends:references in.github/settings.yml,release-drafter.yml,boring-cyborg.yml;uses: nolte/gh-plumbing/.github/workflows/...@v1.x.yin workflow files; thegithub>nolte/gh-plumbing//renovate-configs/commonpreset inrenovate.json5· expects: workstation follows the portfolio branching model (develop→mainwith fast-forward on release publish), label-driven auto-merge, and the pinned reusable-workflow refs · track:developer-docs· status:confirmed· criticality: primary- Open questions: none.
-
nolte/vale-style— category: governing · surface:.vale.inipackage release URL · expects: prose underdocs/andREADME.mdrespects the shared vocabulary and style rules · track:developer-docs· status:confirmed· criticality: secondary- Open questions: none.
-
nolte/claude-shared— category: governing · surface: spec corpus underspec/project/...loaded bynolte-shared:*skills as input for futureproject/artefacts (mission, roadmap, features); the localspec/directory in this repo is currently empty · expects: onceproject/artefacts exist, they conform to the shared spec corpus (audience, mission, roadmap, feature-decompose, project-structure) · track:developer-docs· status:confirmed· criticality: secondary (rises to primary onceproject/artefacts are authored)- Open questions: none.
-
chezmoi(twpayne/chezmoi) — category: governing · surface:.chezmoiroot,dot_*naming convention,*.tmplGo-template suffix,run_onchange_before_*/run_onchange_after_*script naming,.chezmoiexternal.tomlfor cloned external sources,.chezmoiignorefor source-tree filtering · expects: the source tree obeys chezmoi's layout conventions; template data is read from~/.config/chezmoi/chezmoi.toml(git_email,git_name); idempotent re-runs on hash change · track:developer-docs· status:confirmed· criticality: primary- Open questions: none.
downstream-tooling-consumers— category: indirect · surface: the generated dotfiles, virtual environments and$PATHentries on the provisioned workstation, consumed by tools that run inside that environment (cookiecutter against~/.venvs/development; editors and IDEs reading~/.gitconfig; project-localtaskruns that include~/.local/share/taskfile-collection/includes) · expects: the dotfile layout, venv paths and$PATHshape stay stable across applies; tools pinned indot_tool-versionsremain available · track:user-docs· status:assumed· criticality: peripheral- Open questions:
- Which downstream tools depend on
~/.venvs/developmentvs~/.venvs/docsin practice?
- Which downstream tools depend on
- Open questions:
- Target OS scope: Linux only, or also macOS? Affects every direct-consumer
expectation and the
dot_tool-versionsselection. - External adopters / forks: actively discouraged, tolerated, or simply not
marketed? Determines whether a separate
external-adopterdirect-consumer audience needs to be added at the next revisit. - External contributions: are PRs from outside
noltewelcome, and if yes, under what contribution-guide expectations (CLA, DCO, style)?
- A long-running service becomes part of the setup → Operators category turns real and needs explicit audiences.
project/artefacts (mission, goals, roadmap, features) are authored →nolte/claude-sharedrises from secondary to primary criticality.- The repository is explicitly opened for external adopters / forks →
external-adopteris added as a second direct-consumer audience. - A critical asdf plugin, Python virtualenv requirement, or reusable workflow include is dropped or added → re-check operator and indirect-audience expectations.
- The boundary between repo-tooling and chezmoi-source (
chezmoi_config/vs the rest) changes → bothworkstation-operatorandworkstation-maintainerexpectations need to be re-evaluated.