docs: establish the constellation Git baseline

Condense the working handoff into implemented state, activation evidence and open choices. Record both repositories, flag superseded SharePoint setup instructions and undocumented input/support changes, and align the design with completed workbench organization.

Keep the generated nvim.log locally but ignore it. Both flakes evaluated successfully and whitespace checks passed. No implementation behavior changes, tests, builds, activation or remote writes.
This commit is contained in:
kiri committed 2026-09-09 17:34:51 +02:00
1 parent a5ff81e98d
commit 8342efd8df
4 files changed
+99 -159

No files matched your search

+88 -156
View File
@@ -40,171 +40,103 @@ task-specific authority and care. Do not read secret values for layout discovery
Current exploration does not authorize relocating credentials, synchronizing
company content or deleting existing material. Existing local changes are preserved.
## Current exploration — organization
## Git baseline — 2026-09-09
Accepted: repositories are primarily code; general notes belong outside them.
Company work is broader than repositories. Workbench has a different purpose from
product projects. Structure should be intuitive without constraining future work.
The accumulated NixOS changes are recorded in focused local commits on
`chore/workflow-system`: AI tooling/inputs, editor ergonomics, query persistence
and target context, workspace navigation, Notes, SharePoint, Zellij and TeamViewer.
The original long handoff and archived plans are preserved in commit `4e3a3ac`;
use Git history for chronology. `nvim.log` is retained locally and ignored.
Workbench changes are committed on its local `main`: `eb8da6a` organizes HTTP/SQL
material and `063157c` archives helpers and documents native tools. The ordinary
company-root files are outside either repository and remain user-owned.
This cleanup preserves implementation behavior; a commit does not establish runtime
acceptance. Keep subsequent implementation and its documentation in the same
coherent commit before starting unrelated work.
Observed through shallow listings: project groups (now relocated below), `~/work`,
`~/sync/notes`, mixed material in `~/sync`, and loose work artifacts in home.
Names alone do not establish ownership, contents or redundancy.
## Implemented state
Accepted: the workbench supplies an environment at the company root. Reusable HTTP
and SQL files need a home. Native tools should remain freely composable; the current
custom inventory and mail commands are not the desired direction. Notes, credential
placement and synchronization remain open; no relocation is approved.
- **Places:** `~/yookr` has ordinary `.envrc` and `AGENTS.md` files; its environment
loads workbench tools only. Workbench is at `~/yookr/workbench`, company projects
at `~/yookr/projects`, and personal groups at `~/projects/{own,ext,forks}`.
Direct moves retained archives/worktrees; all three linked dashboard worktrees
were repaired. Nix owns tools/integration, not these workspace files.
- **Navigation:** Walker enters Yookr or a repository; Git identity follows the
company root; XDG projects points to `~/projects`. Notes has a desktop entry
opening `~/sync/notes` without creating a daily note. Existing note commands,
project search and Niri daily-note behavior remain.
- **Synchronization:** Bruno collections were previously moved to Trash on Zenith
and their shared Syncthing entry removed. Other devices' files were untouched.
Syncthing was subsequently observed running. Notes and credentials remain in place.
- **API/database work:** workbench `http/` groups requests by service with shared
authentication; `databases/` groups reusable queries by database. Private HTTP
environment files are ignored at any depth. Dadbod working queries persist under
`stdpath('data')/db_ui/working`; write them there without promoting them into Git.
Saved-query storage also contains connection state and must stay outside Git.
Lualine uses native Kulala environment and Dadbod connection/timing components.
These indicators are not access controls.
- **Editor ergonomics:** word-boundary wrapping, count-aware displayed-line `j/k`
in ordinary normal/visual buffers, and Blink Escape cancellation. The existing
`tests/neovim-ergonomics.lua` is retained; earlier smoke-check evidence is in the
archived plan, with interactive preview restoration/visual behavior unproven.
- **Agents:** agent-deck, Herdr and tmux coexist; no replacement has been chosen.
Codex has agent-deck notifications and hooks enabled. Shared Context7/NixOS skills
live under `.agents/skills`; a Nix-managed marketplace exposes Ponytail.
Zellij is also declared on workstations. None of this selects a session workflow.
- **SharePoint:** Zenith declares an hourly service syncing `company-sharepoint:`
into `~/.local/share/yookr-reference/sharepoint/Algemeen` and
`company-sharepoint-projecten:` into `Projecten`. Each invocation has
`--max-delete 100`; new files use `UMask=0077`. The latest implementation only
checks for `rclone.conf`; the old environment-file gate is gone. Archived setup
instructions describe an earlier version. Consent, remote configuration and
synchronization state were not inspected during this cleanup.
- **Remote support:** Zenith enables TeamViewer. Temporary Xorg/Xfce settings are
comments only. The purpose beyond remote support and runtime acceptance were
not recorded; preserve the change without calling it a settled design.
- **Inputs:** accumulated lock updates are retained, including an older Elephant
revision (`376ee71c` replacing `23f37238`). No rollback rationale was recorded.
Workbench `.envrc` still loads tools and exports test/live database, API,
object-store and RabbitMQ credentials together. Neovim's global database plugin
names four company connections. No services or secrets were read.
## Activation and verification
Direction: a tool/context environment at company root, maintained `workbench/`
tooling with `http/` and `databases/` material, and separate local investigation files.
Human credentials are supplied through environment variables for both test/live;
agent access requires separate treatment.
Organize reusable requests by service and queries by database, with visible target
selection. Keep setup
shortcuts only where they add value; let kubectl and other clients own operations.
Mail needs a searchable representation that preserves message meaning; rg over raw
mailbox storage is not automatically an adequate substitute for the current helper.
Earlier handoffs report user activation of the relocated XDG/Git/Walker paths and
Dadbod working-query persistence. Notes and the newer target statusline were last
recorded as pending activation. Only Zenith's filesystem was relocated; other hosts
need their own migration before adopting the shared paths. Reopen shells or
recreate path-dependent development environments as needed; no compatibility links
or cache rewrites were introduced.
API/database proposal: reusable HTTP files grouped by service, shared authentication
requests, and explicit visible HTTP target selection. Start database exploration
from a named connection (database + environment), creating or reopening an attached
query; retain direct-file opening with explicit connection assignment. Keep reusable
query text separate from target credentials. Working queries should survive restart
without automatically becoming tracked workbench material.
For this cleanup, `nix flake check --no-build --quiet` and diff whitespace checking
passed in both NixOS and workbench. NixOS emitted the expected dirty-tree and unknown
`modules` warnings; workbench emitted only the dirty-tree warning.
No builds, tests, activation, credential reads or company-service calls were
performed. Active-generation differences were not checked; earlier activation
reports are not a fresh comparison with this baseline.
Native evidence: [Kulala imports](https://github.com/mistweaverco/kulala.nvim/blob/main/doc/kulala.import-and-run-http.txt)
support sharing named authentication requests across files.
[Dadbod UI](https://github.com/kristijanhusak/vim-dadbod-ui/blob/master/doc/dadbod-ui.txt)
supports connection-associated saved queries, persistent temporary-query locations
and explicit assignment of independently opened buffers. Callable connection URLs
resolve while populating the list, not on selection (confirmed in pinned source);
they do not support the proposed per-selection credential delivery.
Its save location also holds connection state, so do not put the entire directory
under Git. Context7 covered Kulala; Dadbod required upstream help as fallback.
The persistent-query option was also confirmed in pinned Dadbod source. HTTP
import/run syntax was checked in current Kulala documentation; not exercised
against company services.
## Open choices and next discussion
Chosen root: `~/yookr`. Company-wide Neovim search is explicitly deferred for lack
of a concrete use case. Existing project search remains unchanged.
The focus is the broader environment, not further API/database polish. Candidate
areas remain places/ownership, navigation/interaction, human/agent collaboration,
and system operation/maintenance; these are discussion areas, not a work queue.
Created `~/yookr` directly with ordinary `.envrc` and `AGENTS.md` files. Moved the
actual workbench checkout from `~/dev/work/yookr-workbench` to `~/yookr/workbench`;
the temporary link was removed. Prefer direct moves over compatibility links.
Removed the earlier Home Manager
workspace declarations: Nix owns tools/integration, not working directories or
their authored files. Notes and credentials remain in place;
workbench uncommitted work moved with the checkout. Walker's Yookr entry and Git's new work-path identity rule remain
activated by the user.
Agent-session navigation was the last open conversation: agent-deck is already
installed (previously observed as 1.15.0). Its help offers native project sessions,
search, attach and Ctrl+Q detach, with optional groups. No sessions were inspected
or migrated. Start from the user's experience before changing bindings or selecting
it over Herdr. Proposed roles: Walker enters places/apps, Niri navigates windows,
and the session manager resumes agent work. Avoid duplicating its session list or
imposing groups before use demonstrates a need.
Repository environments remain independent. Future relocation/composition must
account for their own `.envrc` files (direnv provides `source_up`) without imposing
a personal directory layout on portable repositories. The workbench's own `.envrc`
still exports aggregate credentials; root entry uses its flake only.
Mail search remains unresolved. The workbench's custom mail reader, inventory
pilot, justfile and old README are archived; native Garden/kubectl/K9s now own the
documented operations. No replacement mail helper or semantic index is selected;
raw mailbox grep is not assumed sufficient. No new ingestion is authorized.
Verification: checked ordinary file types and whitespace
after the ownership correction. The earlier Nix configuration evaluation passed;
it was not repeated for removing the workspace declarations. No builds, tests,
credential reads or activation performed. The workspace files exist now; the user
can authorize its environment with `direnv allow ~/yookr`. System activation for
Walker/Git also includes pre-existing editor/AI/SharePoint changes in this checkout.
Human credential delivery remains both test/live via environment variables with
ordinary editor startup. Workbench `.envrc` supplies aggregate credentials; agents
must not source it. Separate read-only agent credentials and access isolation are
explicitly deferred, not prerequisites for unrelated work. Do not resume the
rejected per-connection launchers or per-selection decryption proposal.
Credential decision: user wants environment-variable delivery of BOTH test and
live credentials, with ordinary Neovim startup. Removed the rejected `mysql-test`
launcher; existing workbench `.envrc` already supplies both and remains unchanged.
Do not resume per-selection decryption or add per-connection launchers. The root
environment is still tools-only; agent isolation remains separate from the chosen
human workflow. No secrets were decrypted or databases contacted.
API/database organization implemented: `http/` contains service-specific files,
shared `auth.http` and the unchanged endpoint catalogue. Protected requests use
native `import`/`run` to authenticate before execution in the selected environment.
`databases/mysql/` separates server discovery and the two existing schemas;
`databases/mongodb/server.js` preserves MongoDB discovery. Existing request and
query contents were retained, with no additional system access or credentials.
Private HTTP environment files are ignored at any depth. No compatibility files.
Neovim uses `db_ui_tmp_query_location` under its data directory at
`db_ui/working`; write working queries there without promoting them into Git.
Dadbod's saved-query storage and connection selection remain unchanged. This
one-line editor change has been activated by the user. Whitespace and Lua syntax
were checked; no tests, company-service requests or decryption performed.
Target context prepared in the existing Lualine statusline: pinned Kulala 6.29.0
supplies a native `kulala` component for `.http` buffers (environment selection);
Dadbod's `db_ui#statusline` supplies connection/schema/table in attached query
buffers and timing in result buffers. No copied target state or credential URLs.
These additions await the next user activation; they are indicators, not access
controls. Lua syntax and whitespace checked; no company-service calls or tests.
Access isolation explicitly deferred by the user. Separate read-only credentials
for agents are the eventual direction, but cannot be created now. Root remains
tools-only; the workbench child supplies both human credential environments.
Existing agent restrictions remain. Do not revisit isolation as a prerequisite
for unrelated work or silently broaden access.
Current focus: the bigger picture, not further API/database polish. Revisited the
idea inbox. Proposed areas for exploration, not a committed implementation plan:
places and ownership; navigation and interaction; human/agent collaboration;
system operation and maintenance. Start with places because they establish the
context that launchers, editors and agents enter.
User clarification: work is mostly project-based, not organized into topics or
investigations; relevant project material mostly stays in the repository. Notes
are mostly meeting notes so far. Do not add investigation folders or outer project
containers without a concrete need.
Approved relocation completed: `~/dev/work` moved directly to `~/yookr/projects`,
including `.archive` and `.worktrees`; remaining `~/dev` renamed `~/projects`,
retaining `own`, `ext`, `forks`. No compatibility links. Repaired the three linked
worktrees in yookr-dashboard and yookr-dashboard-new with native Git repair;
all three resolve at their new paths. Updated company README/AGENTS references.
Walker roots, XDG projects path and Git identity rules updated in Nix. The new
XDG projects path is now active. Existing shells and path-dependent development environments
may need reopening/recreation; no caches or project files were rewritten.
User requested removal of Bruno collections and their Syncthing configuration.
Stopped the local Syncthing service before moving `~/dev/bruno` to Trash
(recoverable); removed its folder entry from shared Nix configuration. Other
devices' files were not touched. Syncthing was stopped for the move and has since
resumed (observed active on the following turn).
Only zenith's filesystem was migrated; other hosts need their own relocation
before adopting the shared project-path change. Nix files formatted; worktree
paths and whitespace checked. No tests or remote repository changes.
Notes entry: existing Neovim `Space n f` finds notes, `Space n n` creates one,
and `Space n t` finds tags. Niri `Mod+N` opens a daily note. Added a standard
Notes desktop entry, discoverable through Walker, opening `~/sync/notes` in
terminal Neovim. This neutral entry uses existing file/text search (`Space s f`,
`Space s g`) and note commands, without creating a daily note. Pending activation.
No new search provider, shortcuts, templates or note directories. Notes placement
and existing daily-note behavior unchanged; agent isolation remains deferred.
Current exploration: agent-session navigation. Agent-deck 1.15.0 is already
installed alongside Herdr and tmux; do not plan installation from stale notes.
Its installed help provides session search, attach and Ctrl+Q detach, plus native
project-path sessions and optional groups. No sessions were started, inspected,
stopped or migrated. Asked the user whether they have tried it and what feels good
or awkward before changing bindings or selecting it as Herdr's replacement.
Proposed division of responsibility: Walker enters a place/application, Niri
navigates visible windows, the session manager finds and resumes agent work.
Avoid mirroring the whole session list into another launcher or forcing a group
hierarchy before actual use. Agent isolation remains deferred.
Command cleanup complete: archived the workbench justfile, custom mail reader,
discovery pilot and old README in its `.archive/`. Removed the obsolete command
catalogue check and bubblewrap/Python/just shell dependencies. The shorter README
documents native Garden target/session setup followed by ordinary kubectl or K9s,
fixes product-repository links after relocation, and marks mail search unresolved.
No credentials, mail or remote systems were accessed. Files are recoverable in the
archive; no replacement wrapper or index was introduced.
Workbench `nix flake check --no-build --quiet` and whitespace checking passed.
Iteration setup: all five previous docs moved under `docs/.archive/`, retaining
their relative layout. Prior editor, AI and SharePoint implementation changes
remain; consult their owners when those areas become active.
Notes placement and further company material organization remain open. Work is
mostly project-based and notes mostly meetings; do not impose investigation
folders, outer project containers or company-wide editor search without a need.