Clean up stale dotfiles and harden terminal workflow#99
Merged
Conversation
Retire legacy and stale configs, align setup/CI docs with Makefile-driven automation, and ensure global gitignore is linked by Ansible. Harden shell startup behavior and improve ToggleTerm ergonomics with role-based terminals, then refresh the tmux cheatsheet to match the updated workflow.
…fication Tune the plan-quality rule to the work actually done (~80% one-off analysis and reporting, not maintained software), based on a survey of 54 saved plans and 216 session transcripts. - Premortem now has two framings by work type: analysis/report work uses "this result was shared and the conclusion turned out to be wrong because…" with analysis-specific failure classes (fan-out, wrong denominator, population mismatch, stale data, misread columns); the "3 months later" framing is kept only for maintained pipelines/tools/config. - Promote Context to a required first section (was in 87% of plans already). - Add Verification as its own section, distinct from the done-checklist (was in 72% of plans already). - Sync plan-review.sh gate list to match (9 gates). - Add cursor/rules/CHANGELOG.md recording the reasoning and rejected alternatives (mode selector, relaxing the 60s rule, reviving Outside view). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…e source) The audit gate list was duplicated in planning.mdc's section structure and in a hardcoded numbered list inside plan-review.sh; both had to be edited together by hand, with nothing catching a mismatch. Make the rule the sole source: - planning.mdc carries the canonical gate list as a <!-- gates ... --> HTML comment (invisible in Cursor's rendered view). - plan-review.sh extracts that manifest at runtime instead of hardcoding it, strips the comment from the injected rule body, and fails loud (exit 1) if the manifest is missing. Drift is now structurally impossible. Chosen over a CI drift-check, which would need to normalize the two deliberately-different naming schemes and add test infra the repo lacks. Also fixes CHANGELOG.md mdformat compliance (was failing `make fmt_check`) and logs both this change and the fix in cursor/rules/CHANGELOG.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…l-through Command-history review found the cookiecutter template still generating Poetry+black+isort+jfrog against a uv/ruff/duckdb workflow, and ~100+ exit-127s from vim scratch-SQL falling through to fish when duckdb wasn't the live terminal process. - python cookiecutter template: Poetry -> PEP 621 + uv, CodeArtifact index instead of jfrog, ruff format/check instead of black/isort, fix hardcoded package name, fix setuptools package discovery, add a passing placeholder test so the scaffold's own fmt/test/run chain succeeds out of the box. - Bring the existing ~/.config/uv/uv.toml under dotfiles management. - nvim: dedicated `sql` toggleterm role (`<leader>tq`) that always launches duckdb, so send-to-terminal SQL can no longer fall through to a shell. - fish: dq/dv helpers for the tmp/scratch.sql duckdb loop; harden the coreutils guard to check each g* binary individually. - Add ~/.duckdbrc and ~/.visidatarc (deliberately omit `.timer on` from duckdbrc: it writes to stdout and corrupts the dv->visidata CSV pipe).
…re local claude settings Ghostty 1.3 renamed auto-install-terminfo into shell-integration-features (ssh-terminfo flag) and changed notify-on-command-finish from a boolean to an enum, so the old config values were failing ghostty +validate-config on startup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
~/.gitignoreusage.run/test/scratch) with explicit lifecycle keymaps, then refresh the tmux cheatsheet.ruff formatinstead of black/isort) and bring~/.config/uv/uv.tomlunder dotfiles management.sqlrole (<leader>tq) that always launchesduckdb, so vim-to-terminal SQL can no longer fall through to a fish shell and produceexit 127; adddq/dvfish helpers for thetmp/scratch.sqlloop, plus managed~/.duckdbrc/~/.visidatarc.g*binary individually instead of gating everything ongcat's presence.ghostty +validate-configafter a Ghostty version bump:auto-install-terminfowas folded intoshell-integration-features(ssh-terminfoflag), andnotify-on-command-finishchanged from a boolean to an enum (nowunfocused).model/effortLeveldefaults in the managed Claude Codesettings.json, and ignore**/.claude/settings.local.jsonso personal local overrides don't get tracked.Test plan
make fmt_checkuvx --from ansible-core ansible-playbook -i "localhost," -c local ansible/dotfiles.yml --syntax-checkmake nvim-checkbash -n bash/bashrczsh -n zsh/zshrcfish --no-execute fish/config.fishansible-playbook ansible/dotfiles.ymlrun twice (real machine) — new links (uv.toml,duckdbrc,visidatarc) created on run 1, idempotent (no changes) on run 2uv sync && just fmt && just test && just runall succeed, no Poetry involved~/.duckdbrc/~/.visidatarcapply on launch and thatduckdb -csv < file.sql(used bydv) stays clean on stdoutghostty +validate-configreturns clean (exit 0) after the config fix;ghostty +show-configconfirmsssh-terminfoandnotify-on-command-finish = unfocusedapplied