Preserve the accumulated phase-two record and introduce the constellation design and working agreement. Archived approvals and plans are historical, not current authority.
92 KiB
Phase-two workflow design
Archived: abandoned direction; recorded approvals and next actions are historical.
Status: SharePoint login resumed at user request; admin coordination is now possible. Mail retrieval design reopened: user questions the custom helper and proposes semantic/vector search for mail and documents. No new ingestion is authorized. Earlier A/B local changes remain pending user activation and interactive editor acceptance. Updated 2026-09-08.
Scope and decisions
Primary agenda: ~/sync/notes/setup-todo.md (line references below refer to this
snapshot). Phase-one evidence: ../workflow-discovery.md, workflow-system.md,
and credential-consolidation.md. During design these sources and implementation
are read-only; only this new planning file may be changed. A subsequent explicit
user instruction authorized tranche A/B implementation. The working method was
realigned before resumption; remotes remain read-only and activation user-controlled.
Working agreement for agents and handoffs
- Astra owns the whole task: scope, source precedence, user intent, evidence relevance, consequential decisions, conflicts, synthesis and integration. Keep its context focused on those responsibilities; delegate bounded technical investigations instead of routinely loading low-level tool/source output here.
- Design delegation: at most two GPT-5.6 Sol investigators, each with one independent question, exact relevant paths and a concise evidence/uncertainty/ recommendation return. Low effort for facts, medium for synthesis, high only for critical judgment. Investigators neither delegate nor write shared files or overlap. Use one fresh Sol reviewer at high effort for a substantial synthesis. This design used those investigators and that reviewer; do not silently restart the discovery budget or repeat their successful work after a handoff.
- Astra is the orchestrator, not the implementer or tester: it explores high-level ideas with the user, maintains this plan, scopes bounded assignments and integrates concise findings. Implementation, test writing and validation belong to subagents, even for small changes. Carry applicable delegation limits and read/write boundaries into each assignment; keep one writer per area. The earlier Astra-written editor check violated this division of responsibility.
- Collaborative exploration: probe significant under-formed ideas with concrete journeys and tradeoffs before choosing a solution. Make routine assumptions. Do not require speculative memory, taxonomy or review policies; learn those through use. Keep proposals distinct from accepted requirements.
- Compose first, optimize from use: start with the smallest existing units. Do not predefine task/system categories, entry screens or workflows for imagined convenience. Optimize a specific repeated interaction only after it causes observed friction; a few ordinary manual steps are an acceptable baseline.
- Evidence and context: ask what decision each inspection can change. Accept ordinary documented capabilities; inspect pinned APIs only where integration or risk warrants it. Use targeted Context7/primary sources, bounded command output, quiet Nix commands and failure-only logs. Stop checking when the decision is settled. Keep raw output and investigation logs out of this living plan.
- Minimal implementation and verification: use existing owners, native tools and the smallest complete change. Prefer existing checks and one bounded smoke check of the changed integration. Add a small regression check only for concrete custom logic or a confirmed defect; no expansive test harness, duplicated tests of native behavior, or lengthy testing campaign for a few mappings. Report only checks actually completed and their limits.
- Durable state: update this file after material decisions and before handoff, compaction or finalization. Record accepted corrections, scope, dispositions, consequential evidence, status, blockers and next action. On resumption read those sections first; never treat a model switch as a fresh workflow or repeat completed discovery. Keep the plan concise and remove superseded duplication.
- Pause discipline: the two design steering boundaries are complete. Further questions need a material design choice or missing authority; routine progress does not become another check-in. A change from design to implementation must update the recorded scope before work starts.
- Autonomous continuation: continue all useful in-scope synthesis and bounded delegated work without waiting for a "continue." Acknowledgements and completed small steps are not stopping points. Exhaust independent work, then group only material unresolved questions with the recommendation and tradeoff. Stop for needed user input, missing authority or genuine completion—not routine approval.
Current implementation authority and checkpoint
The user authorized the local-first company-context tranche after its final review. Astra maintains this plan and coordinates; two bounded Sol implementation units own (1) project/workbench navigation and local-mail retrieval and (2) native SharePoint synchronization configuration. This implementation delegation does not restart phase-two discovery. Existing reviewer audits integration if material. No service/model code, remotes or mailbox state may be changed; Microsoft consent and system activation remain user-controlled. SharePoint blockers do not stop the independent source-navigation work.
Current SharePoint implementation defaults: Zenith only, dedicated destination
~/.local/share/yookr-reference/sharepoint, hourly refresh plus manual preview/
refresh, bounded first document library before expansion. Exact library and footprint
await authenticated discovery; this is not a permanent company-content allowlist.
Interactive Microsoft sign-in/consent is needed. Tenant-admin approval or a custom
app is conditional on actual policy, not an established prerequisite. No OAuth,
cloud reads, downloads or activation have occurred for this unit yet.
Source-navigation/local-mail implementation is complete pending integration review:
workbench and model-project README/AGENTS now link the shared sources and mark
DOMAINS.md provisional. Workbench just mail uses one standard-library mbox
reader, with bounded metadata output and opt-in bodies; Thunderbird remains the
only syncer. A real just mail Innexo --limit 1 read returned a cached company
message with source identity/date/folder and an available attachment. Wustmans
queries found no cached match, not proof of company-wide absence. The reader's
small self-check, documented invocation, command catalog and focused Nix check
passed. Folder/body coverage and freshness remain unknown. No mailbox state was
modified and no credentials were read by that pilot; the reader accesses message files,
not the client credential store. SharePoint configuration passed focused rendered
service evaluation, flake evaluation and the full Zenith system build without
activation. Review corrections are implemented: Just passes literal positional
arguments; the mail command uses a native read-only Bubblewrap mount and Python's
verified read-only mbox fallback, not a custom parser. A bounded verification
confirmed a non-writable mailbox handle; an adversarial argument check passed
without command execution. The routine self-check now runs without mounting or
reading the private mailbox, and its final run passed. This bounds that command,
not parent-agent credential authority.
SharePoint pins its gated config file and uses private UMask=0077; final rendered
unit evaluation passed after those changes, without repeating the full build.
Final review found no remaining material blockers. The native unit and its setup guidance
are in modules/capabilities/sharepoint-reference.nix and
docs/sharepoint-reference.md. The source gate remains absent; the subsequent
consent blocker and partial native-config state are recorded below.
SharePoint previously required tenant-admin approval; the user now requests resuming
login and can coordinate with the admin. The old OAuth session was cancelled. Native remote names
are orion: and a partial company-sharepoint:; both are preserved. The runtime
source gate and local mirror directory are absent. No SharePoint content was read
or synced, and nothing was activated. A fresh native sign-in flow is authorized;
admin/tenant changes are for the user's administrator, never performed by agents.
Next action: the existing company-sharepoint remote has been resumed without
duplication. A fresh token-redacted browser flow is waiting for the user's company
sign-in; configured requested scopes remain Files.Read Files.Read.All Sites.Read.All offline_access. Capture any actual nonsecret approval details for the user's admin.
Keep requested permissions read-only; no download before scope/size/preview gates.
Semantic retrieval evaluation is paused, not authorized. The custom mail helper
is not accepted as the final approach; leave current local implementation in place
but do not expand it. Assess existing retrieval capability and semantic/hybrid search
before proposing a new index or provider. Do not repeat completed mail reads/builds,
ingest content, replace Thunderbird or remove files during this design discussion.
The user's implementation go-ahead explicitly accepts write-capable credentials for the test discovery pilot while permitting read operations only. This supersedes the earlier requirement to prove test credentials read-only or deploy a separate identity before that pilot. Production testing remains deferred until agent-accessible production credentials for all systems are confirmed read-only. No SOPS-wide credential export, production inspection, remote writes or generation activation is needed for this pilot. Earlier design gates below remain the desired production boundary, not a reason to block the accepted test pilot.
Completed so far: eight lines of Neovim option/mapping changes; workbench source-map
and access guidance, a test-only inventory recipe, and a code-linked observation.
The test yookr-management namespace returned three Deployments, three Services
and three running Pods; the Svelte frontend has matching local manifest evidence.
The modified editor package built without activation. The 18-line runnable check
in tests/neovim-ergonomics.lua passed through configured startup: word wrapping
option, displayed-line motion, counted logical motion, unchanged operator mapping,
special-buffer fallback and configured Blink Escape cancellation. It does not prove
interactive preview restoration or visual-mode behavior. NixOS flake evaluation,
the workbench's existing command-catalog check and both tracked diffs' whitespace
checks passed. Invalid namespace rejection passed locally without authentication.
No company workload write was issued. No full system build or activation was run.
Next action: the user activates when ready and checks wrapped prose in normal and visual mode, an operator, completion-preview cancellation and ordinary Escape. Do not expand the pilot, create a test framework, or repeat successful cluster reads. Agent entry is settled for now: create a Herdr space, navigate to the relevant folder and ask through the native agent. No popup or predefined system chooser. Further design concerns composing existing company primitives on a real task, not optimizing this entry in advance. The next-task selection is recorded in section C; note search remains independent, not an authorized change or a prerequisite.
Design direction: make frequent work discoverable, make its project and environment visible, and constrain authority before adding automation. Nix owns stable integration; applications own sessions and mutable state; repositories own technical facts; the notebook owns personal knowledge. Prefer native keys, files, protocols, and commands. Keyboard-first is a usability criterion, not a requirement to replace a working GUI. New agenda entries remain candidates.
Provisional priority:
- Composable company workbench: discoverable company context and reusable access capabilities for investigation, design and authorized operations, with explicit scope and enforced permissions.
- Keyboard ergonomics: notes search/capture, completion cancellation, wrapped-line and split navigation, visible context, then launcher/icon polish.
- Agent collaboration: bounded output and context, existing native sessions through Herdr, targeted skill/MCP repair, small comparative evaluations.
- Host operations: actionable disk/service status and secure remote access; remote agents only after isolation and a real offload use case.
- Personal administration: bank-sync feasibility, vault hygiene and recovery, filesystem organization; retain separate explicit daily-use PIM gates.
Working defaults: explicit scope for each operation; use existing agent sessions, file/native search, Home Manager and Android. Recommend a small keyboard tranche alongside the workbench discovery foundation. Company production access is gated on enforcement evidence, not a read-only label.
The user accepted this order and access direction at the first steering boundary. Important, under-formed ideas will be explored with the user before becoming requirements; routine low-risk details may use the recommended default.
The second steering establishes a broader workbench intent. It is the common company entry point for humans and agents: small composable capabilities for databases, APIs, queues, files, repositories and meeting knowledge should support investigation, design, information synthesis and routine service management. "Quick question" describes low-friction task entry, not a separate agent type, short runtime, or read-only task. Examples include adding a NixOS capability, finding a keybinding, explaining an editor action, investigating a RabbitMQ queue, finding live database records, designing a data model and synthesizing SharePoint domain information. Entry is now settled as Herdr → folder → native agent; conversation lifetime can evolve through use.
The working architectural proposal is a shared capability and context catalogue that points to authoritative sources and existing tools. It should make relevant context discoverable on demand; it need not preload all company information, replicate each source, or impose a custom command wrapper on every tool. This proposal is grounded in the user's clarification: company processes and knowledge organization are still forming. Starting sources are SharePoint, meeting transcriptions, codebases, backend services and GitHub. Phase two must allow these sources and retrieval methods to evolve without redesigning the whole workflow. There is no established company knowledge taxonomy to reproduce or wait for. The model-project case also identifies company email, public web sources and uncaptured employee knowledge. These are potential evidence sources, not a mandate to build one connector per source or ingest everything.
The durable design principle is inspectable text as the interchange for context. Use existing Markdown, source files, JSON and tabular output as appropriate; materialize files when useful for inspection, reuse or handoff rather than requiring every response to become a saved file. Keep source location and revision or retrieval time alongside derived text so an agent can distinguish current service state, code behavior, transcript claims and reviewed business decisions. The appropriate source depends on the question: inspect current systems for runtime facts, and use code, documents and discussions for intent and rationale. Extracted text is a view, not an independent truth. Complex documents may still need their original tables, diagrams or attachments to interpret them correctly; text extraction should retain links to those originals.
Canonical ownership means where a file, service or decision is maintained, not that
its contents are correct or complete. DOMAINS.md may be wrong or incomplete, as
the user explicitly cautions. Apply the same skepticism to source comments, email,
transcripts and inferred business meaning. Distinguish observations, documented
claims, inferences and unresolved questions in ordinary prose; no confidence-scoring
framework. Contradictions trigger targeted checking, not automatic preference for
the newest document. Missing evidence is not evidence of a missing requirement.
Initial organization should be a small editable source/capability map with native commands and access prerequisites. Introduce domain groupings only as actual tasks reveal them. New source adapters, indexing or cached text require a demonstrated retrieval gap; no compulsory ingestion pipeline, plugin interface or central knowledge database is selected. This keeps iteration local to the affected source.
Live inspection is the preferred path for current-state questions: retrieve the current database schema from the target database and discover deployed services from the relevant Kubernetes environment. Source files still explain intended schema changes and service responsibilities; runtime inventory alone does not establish business meaning or capture services outside that cluster. Report the actual environment and visibility scope, including unavailable sources.
A synthesized service taxonomy is a candidate derived view. It should identify observed facts, inferred relationships, source scope and last successful observation time. Revalidate volatile claims against live sources when they matter to a task. Start with an on-demand refresh using the same discovery capabilities; investigate periodic agent-assisted updates only if maintaining that view proves useful in practice. Native tools collect facts; agents may add synthesis where interpretation is needed. A failed or partial refresh must not make old information appear fresh.
The user does not yet know the useful memory or review policy and expects to learn it during use. This is not a planning blocker. Keep native task history and simple, replaceable artifacts; evolve retention and review conventions from concrete tasks without requiring a general memory policy before starting.
Material evidence and conflicts
- Phase one's workbench-only-cross-system-artifacts rule is historical scope. The user's second steering broadens the phase-two design to company-wide task context and routine management capabilities. This does not authorize implementation, service mutation, or changes to existing documentation in this design phase.
- Phase one verified read-only operations but did not thereby establish that supplied credentials lack write privileges. The new agenda's live-agent restriction is stronger; credential delivery must be assessed before reuse.
- Phase-one SharePoint browse/download was deferred alongside personal workflows; company document retrieval now belongs to W1, independently of personal PIM. Existing API, database and RabbitMQ read pilots are evidence of reusable access, not evidence that their aggregate credential delivery is suitable for agents.
modules/hosts/polaris/default.nixalready imports OpenSSH and permits port 22 from192.168.178.0/24; the shared module disables root/password login. This is declared configuration, not a new live verification. Wake-on-LAN remains open.modules/capabilities/transcription.nixalready declares a systemd path unit watching the inbox. Replacing a timer is already covered.modules/capabilities/ai.nixalready declares agents, MCP, a Nix-owned skill, Ollama and a grounded-docs container. Another retrieval store would need to demonstrate a gap in these existing capabilities first. The phase-one statement that global runtimes are absent has an explicit Node exception in current code.- Herdr keyboard and remote workflows document keyboard control, persistent sessions, and phone SSH access. Mouse-first marketing alone does not justify replacement. Exact pinned integration remains a later implementation check.
- Actual GoCardless setup says new provider accounts stopped in July 2025. Actual is already hosted on Orion, but that does not establish usable Rabobank sync for this user.
- OpenAI models supports choosing Astra for demanding multi-step work and using the lowest adequate effort. Astra-led synthesis with bounded Sol investigation is a hypothesis to evaluate, not a claim that delegation is always cheaper or better.
- OpenAI authentication describes native cached credentials and automatic OAuth refresh. Keep OAuth with its client; do not turn SOPS into a competing token-refresh authority.
- Local access evidence:
~/dev/work/yookr-workbench/.envrcexports both test/live DB connections and other credentials; itsjustfileselects the test Garden target and K9s client mode.modules/secrets/sops.nixidentifies a distinct administrative age key. None of these files establishes server-side grants. - Editor evidence:
modules/capabilities/neovim/lua-config/lua/{options,keymaps}.luaandplugins/{completion,notes,http,database}.luaestablish the existing owners. Context7 retrieved upstream Blink cancellation and Kulala environment methods. These support native integration; pinned behavior must be checked during implementation. - Syntax-highlighting essay informs the restrained-emphasis candidate; it is an opinion, not a measured local defect.
Agenda dispositions
Line numbers give complete traceability, including combined duplicates. Type: problem = user-observed friction (not necessarily reproduced); improvement = proposed enhancement; research = unresolved capability/choice; speculation = no demonstrated need. Recommend means a design recommendation, not implementation authorization. Already covered means declared or historically verified; it does not claim a fresh live test.
| Agenda lines / idea | Type | Disposition | Owner / reason and dependency |
|---|---|---|---|
| 1, 82: global note search and note/agent entry keys | improvement | recommend | W2: direct desktop entry to existing notebook picker; retain daily capture. W3 owns agent entry. No second notes index. |
| 2, 66: simplify SOPS loading; SecretSpec | problem/research | investigate | W1: first narrow authority and export scope. Existing jq already performs necessary URL encoding/shell quoting. SecretSpec adds provider abstraction; adopt only if a real multi-provider requirement removes more code than it adds. |
| 3: Polaris SSH | improvement | already covered | W4: declared key-only, user-restricted SSH and LAN firewall rule; runtime reachability not rechecked. |
| 3: Polaris wake-on-LAN | improvement | investigate | W4: establish wired NIC/firmware support and waking source; no WAN port forward. Resume machine pilot explicitly before hardware tests. |
| 4: unclear terminal purpose | problem | recommend | W2: visibly name project/task/host through existing terminal or session title surfaces; do not encode secrets. Test identification with several terminals open. |
| 5: notifications | improvement | investigate | W3 owns agent attention, W4 service failures; choose one missed event and an actionable completion/failure notification. Preserve phase-one quiet default until a new pilot wins. |
| 5: keys that launch background work | improvement | investigate | W2 owns entry, the launched service/session owns lifecycle. First identify one repeated long task and how its status is reopened; a key alone would make work disappear. |
| 6: visible Kulala environment | problem | recommend | W1/W2: show native selected environment at request point. Public getter exists; result winbar alone is not proven to show request scope. |
| 7, 10: bounded command output and Nix-aware agents | problem | recommend | W3: refine existing command/context contract using actual recurring failures; preserve exit status and diagnostic files. No universal output-filter wrapper. |
| 9: Dadbod attachment, global environment, per-DB files | problem/improvement | investigate | W1: retain explicit per-operation environment as the safety rule. Choose buffer association, named query files or another native flow only after the user describes representative query journeys. |
| 11, 78: whole-system coherence and user/agent collaboration | improvement | recommend | Cross-cutting owner map and scope visibility below; improve the same entry points for both actors. No parallel agent-only knowledge universe. |
| 13: Neovim window movement across buffers | problem | recommend | W2: retain normal-mode Ctrl-h/j/k/l; use terminal-normal escape then same vocabulary. Add mode-specific bridges only for reproduced friction; no navigation plugin initially. |
| 15: Esc restores pre-completion text | problem | recommend | W2: Blink native cancel handles preview rollback; verify pinned behavior and define Esc as cancel-menu first, ordinary Escape when no menu. Accepted completion remains an edit handled by undo. |
| 16: Ctrl-j/k versus Ctrl-n/p | research | recommend | W2: keep established j/k movement in normal/navigation contexts; retain native n/p where applications own it. Do not override insert-mode meanings globally merely for symmetry. |
| 17: sometimes slow Walker | problem | investigate | W2: compare cold readiness and warm socket launch; service is already enabled. Optimize measured provider/startup bottleneck, not a speculative replacement. |
| 18: quick prompts through Walker, persistent Herdr | improvement | defer | W3: popup dropped for now; use a new Herdr space, navigate to the relevant folder and ask. No predefined system chooser. Revisit only a specific recurring friction; retain existing persistence. |
| 19: system-aware question agent | improvement | recommend | W3: discoverable current system context and capabilities usable by any agent; no distinct specialist daemon required. Nix tasks use system owners, company tasks use workbench context. |
| 20: Herdr keyboard fit | research | investigate | W3: official keyboard controls exist; evaluate five daily actions and prefix conflicts. Keep Herdr if keyboard pilot passes; native sessions remain fallback. |
| 21: Walker integrations, prefixes, projects/apps combined | improvement | recommend | W2: one launcher with distinct provider identities and existing project opener; promote frequent provider entry to a key. Avoid merging unlike result types or mirroring browser bookmarks. |
| 22: broadly seek new applications | speculation | defer | All owners: search replacements only after a named failed workflow; no tool-shopping workstream. |
| 23: declarative Vivaldi | improvement | investigate | W2: launchers already declared. Inventory only stable desired preferences and supported management interfaces; browser owns bookmarks, sessions, profiles and auth. No editing its live profile database. |
| 24: impermanence | speculation | defer | W4/W5: first classify persistent state and test backup/restore. Revisit for a demonstrated rebuild/drift problem, not as home cleanup. |
| 25: Hjem | speculation | defer | Nix/Home Manager: no demonstrated limitation justifies migration and loss/reimplementation of current module integration. |
| 26: active disk-space watcher | improvement | recommend | W4: one native timer/service check per relevant host, actionable threshold and recovery, no automatic deletion; tune from actual capacity during implementation. |
| 27: more Orion uses | speculation | defer | W4: add only a workload with a named owner and benefit. Hosting existing services and transcription is already useful. |
| 28: terminal Orion dashboard | improvement | defer | W4: start with systemd status/journal, disk usage and Herdr's own status. Add a composite surface only if repeated cross-service triage remains awkward. |
| 29: Tailscale rather than public IPs | research | investigate | W4: pilot personal administrative SSH privately; compare current SSH and plain WireGuard. Do not replace company VPN or remove public client access without a consumer map. |
| 30: OpenAI account switching | problem | investigate | W3: identify affected native client and personal/work identity need; verify supported account separation without copying refresh tokens or rotating accounts automatically. |
| 30: upgrade subscription | improvement | defer | W3: record actual allowance bottlenecks and task value first; no purchase recommendation before current plan, usage and budget are known. |
| 31: Bitwarden vault cleanup | improvement | recommend | W5: review ownership, duplicates and stale entries in native vault; preserve recovery and obtain item-specific deletion/revocation approval. Company and personal vaults remain distinct. |
| 32: finances, Rabobank sync, terminal/custom alternative | research | investigate | W5: bank-sync eligibility is a hard gate. Retain installed Actual pending provider/account evidence; GUI acceptable. Custom banking client rejected for this tranche; manual import does not satisfy required sync. |
| 33, 76: Omarchy and broader design philosophy | improvement | recommend | Soft selection criteria: simple, coherent, keyboard/terminal-first where useful, restrained visual hierarchy, open source, text and standard protocols, native Unix/systemd/Nix capabilities, inspectable tools, Rust over C++ for new owned code, and avoidance of dependency-heavy web stacks. Borrow principles; no distro/editor/VCS/language migration implied. |
| 34: consolidate theme, display manager, boot, Walker density | improvement/problem | recommend | W2: use existing Kanagawa palette; prioritize information density/readability and named defects. Stage login/boot polish after desktop behavior stabilizes. No theme framework by default. |
| 34: Limine overlay/logo defect | problem | investigate | W2/W4: reproduce on affected display, inspect actual asset/layout owner; keep boot recovery path. Do not infer a cause from description. |
| 34: smooth/120 Hz boot animation | research | defer | W2/W4: prefer static or subtle low-motion design; refresh rate depends on boot graphics path/hardware. Exact 120 Hz is not a prerequisite for good appearance. |
| 35: Nautilus missing icons | problem | investigate | W2: distinguish app icon, MIME icon and theme inheritance issue; existing GTK icon theme owns fix. No blanket icon pack replacement without reproduction. |
| 36, 63: home cleanup and move NixOS into projects | improvement | recommend | W5: inventory authored/state/cache ownership and path consumers, then reversible move to own-project root outside sync. No deletion mixed into relocation; activation/path references need explicit migration. |
| 37: centralize OAuth/API/Context7 credentials | research | recommend | W1/W3: centralize ownership knowledge, not all bytes. Native OAuth refresh stores; caller-scoped API secrets; existing machine/user SOPS authorities remain distinct. |
| 38: Neovim AI integration | improvement | defer | W3: start with adjacent native agent and files; add one integration only if selection/diff transfer is a measured bottleneck. Avoid second chat history/context manager. |
| 39: syntax highlighting essay | research | investigate | W2: compare restrained emphasis on real Nix/Rust/SQL files; preserve diagnostics and contrast. A design opinion, not empirical proof that current theme harms productivity. |
| 40: Nix-managed agents, skills and MCP | improvement | recommend | W3: already partly implemented; finish owner mapping and remove duplicate declarations only when identified. Nix owns durable config, plugin manager owns installed plugin state; no competing writers. |
| 41: broken Svelte MCP in Codex | problem | investigate | W3: absent from inspected managed MCP declaration; identify actual client/plugin config and precise failure before repair. Neovim Svelte LSP is a different owner. |
| 42, 45: prompt/skill/workflow evaluation and history pipeline | improvement | investigate | W3: explore which decisions the feedback loop should improve, then choose minimal sources, retention and redaction with the user. Start with a small manual evaluation set; automate only repeated useful analysis. |
| 43: initial rbw popup | problem | investigate | W2/W5: distinguish startup provider unlock from first intentional password lookup; retain authentication/lock boundary. No caching/unlocking workaround until trigger is understood. |
| 44: vi alias for nvim | improvement | recommend | W2: use existing Home Manager Neovim alias option if absent; no wrapper. |
| 46: word-boundary wrapping and visual j/k | problem | recommend | W2: native linebreak and count-aware display-line navigation; preserve counted logical-line movement, motions/operators and special buffers. |
| 47: Noctalia keyboard control | improvement | recommend | W2: bind native shell IPC for a small repeated set (notification history and control panel provisional); existing media/lock keys remain owners. |
| 48: Noctalia/Niri workspace icons | problem/research | investigate | W2: determine pinned native support and icon identity mapping; no custom workspace tracking service. |
| 49, 59: learn jq/jless and snippets | improvement | recommend | W2/W3: three real tasks using existing JSON tooling and completion/snippets. Learning tasks, not configuration infrastructure. |
| 51: Gardenctl packaging/workflow duplication | problem | recommend | W1: duplication confirmed in dev-tools.nix and workbench flake; select one pinned package owner for both consumers. Keep test-only scope; K9s readonly is not RBAC. |
| 52: Oil icons on direct directory open | problem | investigate | W2: initialization order of existing mini.icons and Oil is plausible, not proven; compare direct startup with later opening before adjusting load order. |
| 54: full Yookr architecture/topology/workbench | improvement | recommend | W1: user confirms company-wide context and composable capabilities for investigation, design, synthesis and routine management. Workbench owns discovery and composition; sources retain authoritative facts. Concrete context retrieval and operational interfaces remain to explore. |
| Steering: live discovery of schemas and deployed services | improvement | recommend | W1: prefer authorized live observations for runtime questions; report environment, scope and observation time. Code/documents explain intent and business meaning. |
| Steering: periodically regenerated service taxonomy | improvement | investigate | W1: try an on-demand derived view first; schedule refresh only after use establishes benefit and acceptable freshness/cost. Separate observed inventory from inferred classification. |
| 56: VPN legacy cipher | research | investigate | W1/W4: historical AES-256-CBC compatibility is explicit. Determine negotiated cipher and server upgrade owner in an authorized later check; do not silently change client or substitute personal mesh VPN. |
| 58: zk LSP | improvement | already covered | W2: zk package and zk-nvim LSP notebook root configured; diagnose only an actual failure. |
| 61: Bitwarden TOTP | improvement | investigate | W5: verify deployed Vaultwarden/client support and recovery. Same-vault TOTP trades independent-factor isolation for convenience; keep vault recovery/root second factor outside that vault. |
| 64: terminal interface for gh | improvement | defer | W3: gh and local review worktrees already own PR inspection; pilot a maintained TUI only when a concrete browsing/navigation gap remains, with read-only remote credentials. |
| 65: vector DB for notes/work/memories | research/improvement | investigate | W1/W3: reopened by user for semantic search over company mail/documents supporting cross-domain model design. Assess existing grounded-docs/Ollama before another component. Compare semantic plus exact retrieval; no new index/provider or ingestion accepted yet. |
| 67: Orion transcription watcher instead of timer | improvement | already covered | W4: systemd PathChanged watcher and phase-one successful transcription pilot. |
| 68: Orion persistent Herdr and Android access | improvement | investigate | W4 after W1/W3: SSH to the host where work lives; no public agent web UI. Separate service secrets from agent account, decide code location and resources; persistence does not imply reboot recovery. |
| 69: NixOS on phone | speculation | defer | W4: Android SSH client meets proposed remote access need; revisit only with device-specific support and a distinct OS need. No replacement phone OS research now. |
| 70: SOPS for company/other secrets | research | already covered | W1: company user-key authority approved and active. Team-wide backend remains a separate company decision; improved scope/delivery is still recommended above. |
| 71: evaluate/rework nixos-maintainer skill | improvement | recommend | W3: evaluate existing short skill on a real add-feature task; ask only consequential preferences, retain inspect/options/check flow. No rename or generic interview wizard without demonstrated mismatch. |
| 74: indiscriminate interaction/process/history capture | speculation | reject | W3: captures credentials/company material and creates retention burden without a defined decision it improves. |
| 74: local workflow feedback loop | improvement | investigate | W3: define the questions it should answer, then explore bounded opt-in events, selective existing histories, retention and redaction with the user. |
| 80: agents never get live write authority; careful test writes | requirement candidate | recommend | W1: hard design invariant; verified service permissions plus separation from human credentials/keys/sockets. Test writes require named scope and recovery, never inferred from read access. |
| 83: mnemonic, low-hand-movement key standard; Super+Alt | improvement | recommend | W2: preserve Super focus and Super+Alt movement; use free mnemonic chords for entry points. Do not collide with existing movement or globally renumber bindings. Ergonomic preference remains user-tested. |
| 85: compare Pi/other harnesses, quality/training hypothesis | research | investigate | W3: same bounded tasks and model where supported, permissions, tools and rubric; no assertion of official-harness superiority from training speculation. Name exact alternative before a second trial. |
| 87: Astra orchestration, Sol investigators, long-task context | research | recommend | W3: accepted split—Astra scopes, explores and integrates; bounded subagents investigate, implement and validate, with one writer per area. Evaluate quality/context efficiency through actual tasks; no claim of universal delegation gains. |
Related unfinished phase-one work
| Item | Disposition | Owner / gate |
|---|---|---|
| Cross-system investigation | already covered | W1: bounded test Kubernetes inventory linked to owning code completed. A broader business/technical composition is an extension, not unfinished acceptance of this pilot. |
| Marimo report pilot | defer | W1: after that trace produces an analysis requiring reproducible computation; Markdown/SQL first. |
| Docked Zenith two-output exchange | investigate | W2: hardware-gated pilot; names/focus restore and failure leaves session unchanged. No redesign before observation. |
| Evolution and Android DAVx5/Tasks.org daily-use pilots | defer | W5: user chooses to resume; existing Microsoft 365/Radicale authorities and Thunderbird/Outlook stay. Validate recurrence/reminders/default accounts then. |
| Polaris workstation/VPN/credential replication | defer | W4: distinct from SSH already declared; no remote access/testing until explicitly resumed. |
| Original plaintext credential retirement and archive review | recommend | W1/W5: verify each consumer/owner, then user approves exact deletion/revocation. Archive presence is not evidence of inactivity. |
| MariaDB identity-verification exceptions | investigate | W1: service owner must provide trusted CA/valid host identity; gate agent live DB use. |
| Malformed deployed OpenAPI and raw Authorization contract mismatch | defer | W1: use reviewed local contract; upstream correction belongs to service owners and requires separate authority. Mark caveats in topology links. |
| Account-service issue 197 implementation | defer | W1: route to account repos if product work is requested; retain local dashboard plans as evidence, not the implementation owner. |
| Additional Leafcloud project/rclone read pilot | defer | W1: new project credentials and permission evidence needed; existing Irristaud listing already passed. |
| SharePoint browse/download | recommend | W1: user wants native local filesystem access, so investigate one-way SharePoint-to-local synchronization using an established tool. Independent of personal PIM; no cloud writes or custom ingestion framework. |
| Team release process/OpenAPI publication automation | defer | W1: company policy/owner decision first; remote mutation prohibited. |
| Company-wide infrastructure secret source | defer | W1: company selection required; personal workbench decision cannot establish team authority. |
| Workbench publication | defer | W1: sharing need and changed remote policy required. |
| Retire Bruno/DBeaver | defer | W1: outside previous scope; only after replacement covers actual daily work and user requests retirement. |
| Worktrunk, codex agents, CI/remote builders/offload | defer | W3/W4: native worktrees/agents first; named concurrency, build-capacity or reliability gap required. |
| Report servers/notebook hubs/groupware/terminal PIM | defer | W1/W5: no demonstrated hosting or client gap. |
| Meeting summaries/OCR/dictation/clipboard remapping | defer | W2/W5: repeated workflow and data-consent owner first; do not auto-ingest recordings. |
| Additional concurrency isolation | defer | W3: add ports/data isolation on an actual concurrent workload; credential isolation in W1 is required for a different reason and is not deferred. |
Coherent interaction model
Every frequent workflow should have five visible coordinates without requiring a new control plane:
entry point → project/owner → environment/host → authority → durable result
- Direct compositor keys own a few frequent global intentions: terminal, daily capture and launcher; note search is a candidate. No dedicated agent entry now.
- Walker discovers applications, projects, and infrequent actions. Its providers stay distinct so a result's meaning is apparent.
- Neovim owns file-local editing, requests, queries, and notes. The current buffer should reveal the selected API/DB context before execution.
- Herdr presents persistent work sessions and agent attention. Native agent TUIs own prompts, conversation state, tools, and subagents.
- Nix declares stable packages, services, keys and integration. It does not own OAuth refresh tokens, browser state, vault items, database contents, or agent transcripts.
- Repositories own code facts and executable project commands. The workbench owns company-wide capability discovery, context navigation and useful compositions; it points into service repositories, document systems and meeting knowledge.
The same surfaces serve the user and agents. Authority can differ: shared context does not imply shared credentials.
Workstreams
W1 — Composable company capabilities and context
Problem. Company tasks need technical and business context across services,
documents and meetings as well as access to tools. The user wants capabilities
that both humans and agents can discover and compose for new tasks without
building a separate workflow for every question. The existing workbench makes
cross-system reads convenient, but exports API,
database, object-store and RabbitMQ credentials—including live database URLs—to
every child process. Dadbod, Kulala and k9s --readonly can issue arbitrary
operations; sample reads and client modes do not prove server-enforced limits.
The current API/DB environment is not always visible at execution time. Gardenctl
packaging is duplicated. Phase two must add useful company-wide context while
keeping each underlying fact and operation with its authoritative owner.
Evidence and assumptions. Workbench .envrc, justfile, HTTP/query files and
Neovim integration establish credential exposure and client behavior. Database
grants, API scopes, Kubernetes RBAC, RabbitMQ permissions and object-store policy
are not represented locally and remain unknown. The user accepts isolating agent
access. The workbench's user SOPS authority and the flake's administrative SOPS
authority are separate until recipients prove otherwise. Both MariaDB URLs disable
server identity verification; this is material for live credentials.
Owner and boundary. Service owners grant permissions; the workbench exposes capability discovery, source relationships and supported composition. Native tools perform reads and authorized management operations under the caller's identity; SOPS stores appropriate local encrypted values. An agent never receives a credential capable of live writes. Test writes require a named task, bounded target, explicit authority and recovery. Live database use remains gated by server-side read-only evidence and valid endpoint identity.
Alternatives. UI/client read-only modes are useful guardrails but insufficient enforcement. A single global test/live toggle hides scope and creates ambient risk. SecretSpec is valuable when one schema must resolve multiple backends; it does not supply permissions and currently adds an owner. An isolation boundary is needed whenever the agent principal can otherwise obtain out-of-scope credentials or authority. Human live-write credentials are a particularly consequential case; use a separate OS identity or constrained runtime if existing controls cannot enforce the boundary.
Proposed composable units. Reuse the existing native interfaces first. A unit needs a clear purpose, source/target, explicit scope, permission boundary and usable output; that is a documentation convention, not a requirement for a new framework.
| Capability | Existing or intended owner | Example composition |
|---|---|---|
| Database/schema access | Dadbod/native drivers and schema-owning repository | Find records; inspect constraints for a proposed model. |
| API/queue/service access | Service contracts and official management clients | Inspect queue metadata, then link producer/consumer code and service status. |
| Company files/search | SharePoint and its authorized access interface | Retrieve domain documents with source links and revision information. Access remains consent-gated. |
| Meeting/domain knowledge | Authored notes and approved recording/transcript sources | Link decisions and unresolved questions to documents and code; preserve source uncertainty. |
| Company correspondence | Company mail service; existing mail synchronization and local store | User prefers local-first email access shared by humans and agents. Read local copies without changing flags, moving/deleting messages or exposing mail credentials; preserve message/thread/date and attachment context. |
| Public domain context | Public primary sources and ordinary web search | Find terminology and external claims, then verify relevance; public descriptions do not establish private project requirements. Never include private company details in web queries. |
| Repository/architecture navigation | Service repos; workbench relationship map | Find the owner, current model and relevant project commands from a company-domain question. |
| GitHub issue/PR history | GitHub read-only access through gh | Link implementation rationale and discussion to code and domain documents; remote mutations remain prohibited. |
Suggested compositions to explore: queue metadata → producer/consumer ownership → relevant logs or records; domain documents + meeting decisions + existing schemas → data-model proposal. These are examples of reuse, not scripted workflows to build. Queue inspection must distinguish metadata from message consumption or purge. Information access must preserve source ACLs and company/personal boundaries.
Context iteration. Anchor the first discovery pilot in an authorized current system: inspect one Kubernetes test scope, then connect the observations to its owning code or documentation. Use a test credential only for the bounded read operations under tranche A's revised gate. If access is unavailable, finish the source map and command documentation; do not substitute old files while claiming live discovery. Add SharePoint retrieval when its access prerequisite is resolved. Keep results scoped to the question and label unavailable sources, inferred relationships and disagreements. Changing a retrieval tool should affect only its source entry and consumers of any changed output.
Use native task history and optional plain-text findings during the pilot. Learn what is worth retaining or reviewing from actual use; do not block the pilot on a memory taxonomy, automatic promotion policy or scheduled synthesis service.
Smallest first slice. Make one current-state discovery capability discoverable and reusable: test Kubernetes service inventory, linked to owning repositories. Document its native entry, bounded output, permissions and refresh procedure in the workbench. The accepted test credential allowance and read-only operations are specified in tranche A; production requires authoritative permission evidence. Unknown production authority stays unavailable to agents. A source map can be completed without credential access, but the live pilot stays explicitly pending until its access gate passes. The selected tranche below defines the deliverables and completion boundary.
Long-term production success (not a test-pilot gate). A reviewer can trace every workbench operation to one identity and server-enforced permission set. An agent process cannot obtain human write credentials. Live actions visibly say LIVE before execution, ordinary reads pass, and authoritative permission evidence establishes write denial. Mutation probes are permitted only on a disposable test target with explicit scope and recovery. TLS authenticates the MariaDB endpoint. Later capability pilots demonstrate that a human and agent can use the same documented primitive, then combine its output with another source for an investigation or design task. Routine management uses the owning tool with explicit authority; it is not excluded from the architecture.
Stop/defer. Omit production systems with unknown or excessive authority; use only the explicitly accepted test scope for this pilot. Stop topology expansion when the next link does not help an actual company task. Defer Marimo until the investigation needs reproducible computation; defer SecretSpec and a separate runtime until the permission/credential inventory demonstrates their need.
W2 — Keyboard-first, context-visible interaction
Problem. Several small daily frictions weaken an otherwise coherent desktop: wrapped-line movement, completion cancellation, note search discovery, terminal identity, database/API context, occasional Walker latency, direct-directory Oil icons, and inconsistent desktop polish. Combining them into a rewrite would hide which change helped.
Evidence and assumptions. Note capture (Super+N), zk find/create and zk LSP
already exist. Neovim already uses Ctrl-h/j/k/l for window focus and Ctrl-j/k in
completion and Telescope. Native Blink cancel reverts preview insertion. Walker
already uses its service/socket path; latency needs measurement. Kitty is the sole
terminal and Niri requests no client-side decorations, explaining the sparse
window identity without proving the preferred presentation. Existing Kanagawa
configuration is the visual palette owner.
Owner and boundary. Niri owns global chords and window motion; Walker owns discovery; each application owns its internal modes; Neovim owns editing motions; Kitty/Herdr expose terminal task identity; Noctalia owns shell panels. Preserve standard application meanings unless a frequent workflow demonstrates a conflict. Never place environment secrets in titles, status lines or notifications.
Alternatives. A navigation plugin adds value only if native mappings cannot bridge a reproduced mode. Notes in Walker reuse the notebook but create another search presentation; a direct key to the existing zk picker is the smaller first step. A universal key vocabulary is attractive but clashes with mode-specific semantics; consistent intention matters more than identical chords everywhere.
Smallest first slice. One native Neovim ergonomics cluster: word-boundary
wrapping, count-aware display-line j/k, and Escape invoking Blink cancel only
when its preview is active. Queue the vi alias, note-search entry, terminal title,
Walker measurement and defect reproductions independently.
Success. On a fixed Markdown sample, uncounted j/k traverses every displayed
segment, 3j/3k retains logical-line behavior, operators and special buffers are
unchanged, and words are not split when width allows. On a completion sample,
Escape restores pre-preview text while ordinary Escape still exits insert mode.
Later milestones define their own note, terminal and launcher criteria.
Stop/defer. Revert any mapping that breaks operators, counts or a common native interaction. Defer theme-wide changes until concrete icon/layout defects are reproduced. Defer exact boot refresh work; prefer a static or subtle transition if animation exposes low refresh. Add Walker notes/provider prefixes or a navigation plugin only after the direct/native slice leaves recurring friction.
W3 — Agent entry, persistence, context and evaluation
Problem. Ordinary questions can become persistent project work, company investigation or system changes. The accepted entry is a new Herdr space, navigation to the relevant folder and a native agent conversation. No predefined system categories or prompt popup are wanted. Large command output consumes context; Svelte MCP is reportedly broken; model/harness/orchestration ideas lack comparable evidence. Broad history logging would create more sensitive data than useful feedback.
Evidence and assumptions. Herdr documents keyboard navigation, persistent
local sessions, phone-over-SSH and direct remote attachment. Phase one verified
session lifecycle and deliberately disabled notifications. Official OpenAI guidance
fits Astra to demanding end-to-end judgment and Sol to complex bounded work, while
recommending the lowest adequate effort. The existing global agent instructions
already require quiet Nix commands, targeted logs, nix run for missing commands,
and remote read-only behavior.
Owner and boundary. Native agents own conversation/tool state and subagents;
Herdr owns session persistence and attention; the native agent owns prompt input.
No additional entry interface is selected. Repositories and AGENTS.md
own durable context;
Nix owns installed clients and stable MCP/skill declarations. Evaluation stores
only task, result, time/usage, corrections and notable failure—never raw credential,
company, shell or chat capture by default.
Alternatives. One persistent system agent minimizes startup and can accumulate useful conversational context, but risks stale context and unclear scope. A fresh project-rooted agent has clearer authority and current files, but adds launch cost. A Walker prompt popup is fast but must invent submission, error and attachment semantics. A vector store duplicates file search and the existing grounded-docs experiment before a recall failure exists. Neovim chat duplicates the native agent unless transferring selections/diffs is measurably painful.
Smallest first slice. Use the accepted Herdr → folder → native conversation journey without building anything. Let conversation lifetime follow actual work; do not require an upfront policy. Revisit entry only when a specific repeated task reveals worthwhile friction. Queue noisy-command handling, Svelte MCP diagnosis, orchestration evaluation and harness comparison as independent milestones so their effects can be attributed.
Success. Use a Herdr space rooted in the relevant folder and native conversation/resume; record specific recurring friction before optimizing. No additional entry pilot or upfront lifecycle choice is required. Task authority remains explicit and does not follow automatically from the working directory. Later output and model evaluations use a fixed task/rubric and an acceptance threshold chosen before comparison. No new index or transcript database is needed.
Stop/defer. Use native agent sessions directly if Herdr keys conflict after remapping. Stop delegation when integration/review costs exceed its result. Defer notifications until attention is actually missed, account upgrades until measured limits block valuable work, and remote agents until local entry and authority are settled.
W4 — Quiet host operations and remote reachability
Problem. Polaris wake-up, Orion status, disk exhaustion and remote agent access are related by availability, but a dashboard is premature. Polaris SSH is already declared; Orion already hosts services and event-driven transcription. Personal remote access and the company VPN have different owners and must not be conflated.
Evidence and assumptions. Polaris permits key-only SSH for the named user from the local subnet; live reachability is not reverified. Orion exposes SSH and durable services. The transcription path watcher is implemented. Herdr can attach over ordinary SSH and adapt to a phone terminal. Tailscale can provide private reachability but its account/control plane and endpoint inventory need an explicit choice.
Owner and boundary. Firmware/NIC and LAN own wake-on-LAN; OpenSSH owns login; the personal overlay network, if adopted, owns private reachability; systemd owns service/path state; each service owns health. Never expose a generic agent web UI, auto-delete for disk pressure, or use personal Tailscale as a substitute for the company VPN.
Candidate milestones. Select independently: (a) verify declared Polaris SSH and wired WoL during a resumed machine session; (b) define and pilot one disk threshold and actionable notification; (c) design personal remote access by comparing current public ingress, Tailscale and plain WireGuard on exposure, control-plane/account dependence, device support and upkeep, then pilot phone SSH to Herdr only after a choice. None belongs in the next tranche by default.
Success. Polaris wakes from an intended state only from a trusted path and accepts only key login. Disk pressure is reported early with host, filesystem, usage and a manual recovery link; no data is deleted. A phone can inspect and interact with a persistent low-authority agent session without public agent ports or service credentials.
Stop/defer. Stop WoL if firmware or wireless-only operation makes it unreliable. Defer a dashboard until three or more status commands are repeatedly correlated. Defer Orion offload until a named workload benefits and agent/service identities are isolated. Defer NixOS-on-phone because SSH already covers the stated access goal.
W5 — Personal administration roadmap
Problem. Vault cleanup, TOTP, finances, home-directory ownership and deferred PIM pilots concern durable personal state. They need recovery and data ownership, not a common terminal UI. Rabobank synchronization is required for finance, while Actual's documented European provider no longer accepts new accounts.
Evidence and assumptions. Actual is already hosted on Orion; Microsoft 365 and Radicale remain PIM authorities. Original credential sources remain pending consumer-specific retirement. No evidence establishes an eligible bank-sync account. Moving this Nix repository changes absolute paths and activation workflow; home cleanup can destroy uncatalogued state if combined with deletion.
Owner and boundary. Bitwarden/Vaultwarden owns personal secrets and optional TOTP; a separate recovery route and root second factor remain outside that vault. The bank and supported sync provider own transaction import; Actual may own budget data. The filesystem inventory classifies authored data, mutable application state, cache and archive before moving anything. Each PIM service remains authoritative.
Candidate milestones. These are separate projects and only one is selected at a time: (a) finance feasibility ends with a documented supported/unsupported Rabobank connector decision for the user's actual eligibility; (b) vault hygiene begins with an owner/status inventory and independently verified recovery before exact approved revocations or deletions; (c) filesystem organization inventories top-level paths and consumers before separately planning a reversible Nix repository move; (d) PIM daily-use pilots resume only by user choice. None belongs in the next tranche.
Stop/defer. Retain the current finance process if no trusted connector meets the sync requirement; do not build a bank client. Defer same-vault TOTP until recovery is proven. Defer impermanence until backup/restore and state classification expose a specific persistence problem. Resume Evolution/Android PIM only by user choice.
Dependencies and roadmap
- W1 permission evidence precedes all production company-agent access; W2 context visibility may be designed concurrently but cannot make access safe by itself. Fresh inspection of test systems also requires an appropriately scoped identity. "Live information" means current observation; it does not imply production.
- Existing Herdr spaces and native agents suffice for entry. Neither additional entry design nor editor acceptance blocks W1 context/access work. Add note or launcher integration only for its own demonstrated value; popup prompts remain deferred. Notifications and editor chat need a concrete missed event or friction.
- W3's local persistence and authority model precedes W4 remote agents. W4 remote reachability precedes any Orion dashboard consideration.
- W5 credential retirement depends on verified consumers from W1. Finance and PIM are otherwise independent and should not delay daily workflow improvements.
- Visual consolidation follows functional context and reproduced icon/boot defects; its acceptance is visual coherence, not configuration centralization.
Selected next tranche
Selection reflects both steering boundaries and the subsequent agreement on live information and easy iteration. A/B was selected and authorized; current implementation status and remaining user acceptance are recorded above.
A. Workbench discovery foundation — first priority
Deliverables. Extend the existing workbench README/AGENTS entry with a compact source map: SharePoint, meeting notes/transcripts, code, backend systems and GitHub. Create one summary entry per source family and expand only the Kubernetes source needed for this pilot. Do not inventory all repositories, sites or services; add detail as later tasks require it. For each, record the authoritative location, existing native access command/tool, scope and prerequisite, output form, and how to obtain current information. Mark unavailable access honestly. Keep source-specific detail beside its existing owner; do not introduce a capability framework or require every tool to share a wrapper.
Document one reproducible discovery route for the existing test Kubernetes target, limited to one explicit namespace. Use native tooling to collect the names/types of running workloads and services and the minimum non-secret relationships needed to connect them to owning code. Exclude Secrets, raw environment dumps, full manifests, logs and payloads. Record an observed service inventory with cluster, namespace, retrieval time, source commands and links to relevant code. Label any inferred business role and missing ownership. This is the first incremental service map, not a claim of complete backend taxonomy.
Access gate, revised by the user. Use the named test target and namespace; write-capable test credentials are accepted while operations remain reads only. Do not read Secrets, use exec/attach, consume messages or modify resources. Use the native Garden login without loading the workbench's aggregate SOPS-derived direnv exports. Neither client mode nor filtered output proves credential isolation, and the pilot must not claim otherwise. Production testing stays deferred until all agent-accessible production credentials are confirmed read-only. Provisioning a new OS identity is not a prerequisite for this accepted test pilot.
Observable acceptance.
- Every listed source has an owner and working entry or a named unmet prerequisite.
- Human and agent can follow the same documented discovery commands for the named namespace, subject to their permissions, without a new orchestration service.
- The inventory is based on a fresh query; at least one observed service is linked to source evidence for its owner/role, or an explicit ownership gap is recorded.
- Repeating the query produces fresh timestamped output, scratch or replaceable by default. Retain history only when useful to a task. An unavailable source is reported as unavailable and cannot silently reuse an old snapshot as current.
- The report distinguishes observed state, inferred meaning and uninspected scope; it contains no secret values or unnecessary service data.
- Record the exact test target and read operations, and state that credentials may permit writes. If test access is unavailable, mark the runtime pilot blocked and complete the source map/command design and independent editor work.
Prefer this Kubernetes pilot over simultaneously adding database, SharePoint and queue integrations: it directly exercises the user's current-service-map example through an existing access path. It does not assume that K9s readonly proves RBAC. Do not switch to production or add another connector to evade an unmet access gate.
B. Native Neovim ergonomics — independent, small implementation
Implement word-boundary wrapping and count-aware displayed-line j/k for ordinary
editing buffers, plus native completion-preview cancellation on Escape. Preserve
counted logical-line motions, operators, special-buffer mappings and normal Escape
behavior when completion is inactive. Use the existing plugins/options and verify
the pinned completion API before editing.
Acceptance is the fixed W2 sample: wrapped prose, j/k, 3j/3k, an operator and a
special buffer, then completion preview cancellation and ordinary Escape. Check
the actual configured startup path, not only a standalone Lua function. Add one
small runnable regression check for the custom branching mapping, without a test
framework. The configured editor build and flake evaluation suffice for this Lua-only
slice; Neovim is shared by all three hosts, not only workstations. Do not repeat a
successful build unless its inputs change. Only the user activates a generation.
C. Follow-on sequence and stop points
| Order | Milestone / owner | Evidence needed to proceed |
|---|---|---|
| Next design slice | Enable the traceability data-model exploration / W1 | Use ~/dev/work/traceability-data-model as the concrete case: domain fit, replacement scope, general versus specific models, and performance. Reuse project-owned research and native access; do not choose the model here. |
| Only if that task needs it | One missing retrieval or access primitive / W1 | Narrow credential delivery for the required test source, or enable a missing source such as SharePoint. No automatic connector expansion; source-specific access prerequisites apply. |
| Independent | Global note search / W2 | Existing notebook picker is the default; no new index. This convenience does not block company work. |
| Parallel when reproduced | Bounded command output, Svelte MCP, Oil/Walker/rbw/icon defects / W2–W3 | Each has a concrete failure and its own small fix/check. Packaging consolidation follows confirmed shared consumers. |
| After repeated agent use | Skill, orchestration and harness evaluations / W3 | Fixed representative tasks and rubric; change one variable at a time, compare correctness/corrections, time and available usage. Retain only demonstrated gains. |
| After useful repeated views | Service-map refresh automation / W1 | Observe required freshness and refresh cost; use native scheduling, add agent synthesis only where interpretation helps. |
| Later, independent | Host operations and personal milestones / W4–W5 | Resume one named pilot at a time; hardware, access, bank eligibility and recovery gates remain explicit. |
This sequence is a working priority, not a dependency between unrelated tasks. Deferred ideas retain their inventory dispositions and may move forward when use establishes their value. No fixed memory policy, domain taxonomy, indexing backend, new dashboard or company process is needed to start.
Selected real case: traceability data-model exploration. The user is working in
~/dev/work/traceability-data-model. They need to understand fit with existing
systems and how broadly the new model should replace them; compare a general model
with multiple domain-specific models; explore performance implications; and examine
Walkro/CNC, Irristaud, Innexo, Wustmans and the company's sensor/device/template
system. Relevant context is scattered. The exact question and useful output are
not settled, and need not be invented as a prerequisite to exploration.
Workflow-design scope: establish how the user and agents can discover and combine the needed evidence, compare alternatives and pursue targeted experiments through small existing capabilities. The model project owns domain analysis, model choices and experiments; the workbench owns reusable company-source access and navigation. This is not authorization to redesign that project, change services, run benchmarks or ingest company documents. Inspect its existing design/source material read-only through a bounded subagent before proposing any new research artifact.
Read-only project review establishes existing owners: AGENTS.md names
DOMAINS.md as the current requirements/source document, and sql/schema.sql for the reviewed
generic PostgreSQL/PostGIS candidate. This is a prototype, not a migration design;
sql/README.md:15 describes fresh-schema deployment. The current candidate is
evidence to compare, not a phase-two requirement to preserve unquestioned.
The user explicitly warns that DOMAINS.md may be incorrect or incomplete: neither
its domain claims nor its scope exclusions become accepted requirements here.
| Required context | Evidence already in the model project | Remaining gap |
|---|---|---|
| Walkro/CNC | DOMAINS.md:135 describes lifecycle, lineage and required queries; sources at line 369 |
Validate against actual company/customer needs, not just public domain descriptions. |
| Irristaud | Plant-cultivation scenario at DOMAINS.md:228, sources at line 377 |
Establish which actual requirements the representative scenario misses. |
| Innexo | Existing project per user, with a GitHub repository and Kubernetes deployment; possible SharePoint/public material | Locate remote sources rather than infer absence from local checkout names; deployment environment is not yet established or authorized for inspection. |
| Wustmans | Planning-stage project per user; possible public, SharePoint and email evidence | Look for intended needs and unresolved plans, not a deployed implementation that may not exist. |
| Sensor/device/template system | The existing company data model per user; dated dumps locally | Read current schemas and trace code/API usage when authorized; infer semantics cautiously. Historical dumps are not live truth. |
| Performance | Candidate indexes, no comparative measurements or workload targets found | Actual operations, volumes and distributions that could discriminate alternatives; do not infer performance from schema appearance. |
Proposed exploration, not a fixed research framework. Reuse the project's
existing design documents as revisable evidence. Trace a claimed requirement to its source,
candidate representation, affected current component and unresolved evidence.
No parallel workbench model ledger. Cover source availability across all named
domains first; deepen one discriminating journey rather than pretending one domain
proves generality. Treat missing facts as unknown, consistent with the project's
progressive-enrichment rule (DOMAINS.md:31).
Keep three questions separable: common domain meaning; general versus specialized
representations (including a shared core with domain-specific parts as a candidate);
and physical storage/query choices. Replacement breadth is an output of comparing
these alternatives, not an input the user must settle now. The document's exclusion
of connectivity, transport, auth and dashboards (DOMAINS.md:345) is an existing
scope proposal to examine, not permission to rule out investigation of sensor/template
data or measurement storage.
Performance exploration should begin with representative operations and scale, then use the smallest discriminating experiment if needed. Any later experiment belongs to the model project and is executed by a subagent under separate authority on disposable local/test resources. No production benchmarks, speculative test suite or performance conclusion from synthetic results without a stated limit.
The workbench's role is to make source locations and native retrieval reusable: code and design files for intended behavior, notes/company documents for business meaning, scoped live schemas for current structure, and workload evidence when a performance decision requires it. Add only the missing access path identified by this case. First-use success is that an unfamiliar agent can find the relevant owners and evidence gaps from the project/workbench entries without the user manually assembling all context; it need not produce a final model recommendation.
Bounded local source-location review found ~/dev/work/yookr-api/README.md and
device/sensor service and migration filenames as likely current-behavior pointers;
~/dev/work/yookr-management-svelte-redo/README.md and device-route filenames as
likely user-facing workflow pointers. Their semantics have not been reviewed in
this workflow-design pass. No Innexo/Wustmans-named repository or README path was
found among immediate active work repositories. ~/sync/notes/todo.md:16 contains
task mentions only, including obtaining an Innexo account, with no source pointer.
This is a bounded coverage gap, not a
claim that company sources do not exist.
Neither the model project's AGENTS.md nor its README.md references the
workbench. This is a concrete discoverability gap when an agent starts there.
Existing read-only GitHub access successfully located private repositories
yookrdev/yookr-innexo, yookrdev/yookr-innexo-2 and yookrdev/yookr-InnexoFE.
Descriptions are empty; metadata does not establish which version is current.
The frontend role is suggested by its name, not verified from behavior. This
settles availability of remote repository discovery, not Innexo domain meaning
or deployed ownership. No new login, cloning or Kubernetes access was needed.
Authorized local-first tranche:
- Make company-source navigation discoverable from the model project's native entry, with links back to project-owned design work. Extend existing entries, not a second evidence database or global task/system chooser.
- Exercise remote repository discovery and source reading through existing GitHub access using Innexo; identify intended versus deployed behavior without querying an unapproved cluster. Reuse schemas and code/API owners for current-model work.
- Provide native local SharePoint file access through one-way synchronization, using an established tool and native scheduler. Establish remote library scope, size and consent before downloading; cloud write authority is not required by the design. Reuse Thunderbird's existing local email synchronization if suitable; investigate a separate mail sync tool only for a demonstrated store/access gap.
First-use acceptance: an agent starting in the model project can locate the
workbench, find the known source owners for each named domain, retrieve a relevant
source through an available native route, and label inaccessible sources and
unsupported claims without treating DOMAINS.md as ground truth. No requirement
to finish the model comparison or add code. Later runtime reads expose only that
test source's credentials, never aggregate test/live exports. Stop source expansion
when further retrieval cannot affect the current comparison.
Tacit employee knowledge has unknown extent and ownership; do not inventory every employee or start interviews preemptively. When a consequential ambiguity survives available evidence, formulate the specific question and ask the user who can help. Contacting colleagues or sending messages needs separate authorization. Record an answer beside the affected project decision, with attribution and uncertainty. No current blocker requires the user to quantify missing knowledge, settle model scope or provide a complete source inventory.
Accepted company-content boundary: the user chooses on-demand search across all company content available to the authorized account, with selective retrieval and writes prohibited. No curated site/folder/mailbox allowlist is required now; scope may narrow later. Keep personal accounts out. The user explicitly requires SharePoint access across all sites available to their company account. Distinguish broad delegated authorization from configured sync coverage: the first-library pilot is not the completed all-sites solution. Inventory sites and their document libraries after consent, then plan coverage without implying every site is a single folder or every site object is a file. The user's subsequent native filesystem requirement explicitly permits proposed background SharePoint and mail copies; the earlier blanket no-mirroring recommendation is superseded. This does not imply an embedding/indexing pipeline. Broad availability does not require exhaustive retrieval for every task. Existing source ACLs still apply; this permission neither provisions new credentials nor proves read-only scopes. Production-runtime access retains its separate verified-read-only gate; the earlier test-credential exception is unchanged.
Accepted SharePoint design: one-way remote-to-local synchronization with read-only cloud authority. The user and agents treat the local folder as read-only; the user edits through SharePoint's web application. SharePoint owns the originals, and the sync process is the sole intended local writer. Use a dedicated managed reference directory outside authored notes, Git repositories and Syncthing. Reflect cloud updates and deletions within that directory; it is not an archive or backup. Never place authored work there. Resolve the exact target and download footprint before execution, and preview changes before enabling scheduled sync.
Read-only cloud authority, consumer behavior and filesystem enforcement are distinct. A user-owned directory or a read-only label alone is not an enforced agent boundary. Use existing native agent permissions where available and report what is actually enforced; do not claim credential isolation without evidence. For both Thunderbird and the mirror, consumer read-only use is currently an operating rule; OS-level immutability and credential isolation are not demonstrated. No new identity/isolation framework is selected by this design.
Preserve original formats and source paths, report refresh failures, and allow an on-demand refresh when a decision needs current files. A local Office/PDF file is not automatically searchable as plain text: use native readers or task-specific extraction when needed, without adding a permanent indexing service by default. The user has now authorized offline implementation of this design and its bounded pilot. New Microsoft consent and system activation remain user steps; actual sync still requires read-only cloud authority, known scope/footprint and safe preview.
Primary documentation supports rclone → managed local directory, scheduled with a native user timer. OneDrive/SharePoint authorization allows explicit read scopes; its default requested permissions are broader, so do not accept defaults as proof of read-only authority. Tenant consent/app policy is an implementation prerequisite, not established access. With cloud as source, sync changes the local destination to match it, including deletions; copy retains destination-only files and therefore is not an exact current mirror. Use an empty dedicated target, scope/size preview and native deletion safeguards before any bulk sync. No custom scheduler/downloader is justified.
Accepted email design: keep Thunderbird as the sole mail sync owner and read its existing local company store. Do not change mailbox files, flags or sync state, expose client credentials, or change the human mail workflow. mbsync is a replacement fallback only for a demonstrated limitation, never an additional syncer. Keep retrieval replaceable; no custom universal mail interface or UI migration.
Delegated metadata-only inspection found a populated company Microsoft 365 IMAP
store under ~/.thunderbird/kiri/ImapMail/, using standard mbox storage; relevant
configuration is in ~/.thunderbird/kiri/prefs.js:148 and :162. No concrete local
reading blocker was found. The inspected account preferences do not establish
complete folder/body/attachment coverage, and the active profile can change while
being read. Keep Thunderbird; confirm any needed missing content and consistent
read behavior through the first real task, not an exhaustive mailbox audit.
Only configuration and file metadata were inspected, not message contents or
credentials. Local reads do not require another mail authorization or syncer;
freshness still depends on Thunderbird's synchronization.
Thunderbird offline synchronization can retain message bodies locally; configuration and download scope must be checked. Its Maildir option is not an interchangeable standard Maildir store. Neither that limitation nor an mbox cache's mutability alone justifies replacing a working syncer: start with read-only local access and report incomplete/unavailable content. The investigator's initial mbsync-first recommendation is superseded by the user's explicit Thunderbird-first choice. No separate mail-sync daemon or IMAP provisioning is selected.
If a later concrete gap warrants mbsync, note that Microsoft's IMAP OAuth scope is not itself a read-only credential. Pull-only configuration cannot substitute for keeping its token outside agent authority; this is a fallback design caveat, not a prerequisite for reading already-local company mail.
Next-tranche acceptance and execution order:
These are independently deliverable units: SharePoint consent or footprint blockers must not hold up source navigation or available local-mail access. No further user design choice is needed; consent and activation remain user-controlled boundaries.
- Extend existing project/workbench entries: from the model repository an agent
can find company sources, the three Innexo repository candidates and their
unresolved status, and the owners/gaps for all five named domain groups. Keep
DOMAINS.mdvisibly provisional; do not create another model-research ledger. - Read one relevant local company email through an existing/native or standard parsing route; preserve message identity/date/folder and attachment availability. Account for an active mutable store without changing it. Missing bodies or attachments are a reported coverage gap, not a reason to install another syncer.
- Configure the smallest native rclone/user-timer SharePoint mirror after approved sign-in/consent. Inventory accessible libraries and download footprint first; stop for a material storage/policy obstacle, not routine path/cadence choices. Demonstrate one bounded initial download, cloud-read-only permission evidence, refresh/status visibility and the local-only deletion plan. Schedule only after user-controlled activation. No remote write probe or exhaustive sync test suite.
Use ordinary defaults for destination and cadence based on host/disk facts; report them before activation. Partial or failed refreshes must not be presented as a complete current snapshot. A useful local file can be opened by both user and agent, linked back to its SharePoint source and refreshed without a custom service. No need to finish the data-model comparison to accept this access tranche.
Prior implementation goal (paused; retrieval design now reopened):
Implement the local-first company-context tranche in this plan: connect the model project's native entry to the workbench and existing source owners; reuse Thunderbird's local company mail read-only; add a cloud-read-only rclone mirror of accessible SharePoint libraries into a dedicated managed reference directory with native scheduling. Preview scope/size/deletions before bulk sync; keep all authored changes out of the mirror and edit SharePoint only through its web UI. Keep one mail syncer, no indexing framework and no model experiments. Astra orchestrates; bounded subagents implement and perform minimal verification. Stop for Microsoft consent or a material storage/access blocker. Do not mutate company sources, mailbox state, service/model code or repository remotes; do not query production or activate NixOS/Home Manager. Report remaining coverage and enforcement limits honestly.
Open decisions and handoff
Reopened: semantic retrieval for company mail and documents
The user finds the custom mail route too complex and questions whether a vector database would better support semantic search. This reopens retrieval design; it does not authorize replacing the helper, starting services, embedding company content or selecting a database/provider. SharePoint remains consent-blocked.
Provisional direction: evaluate a maintained semantic/hybrid retrieval tool rather than build around a database first. Keep three responsibilities distinct:
- Acquisition and freshness: Thunderbird and eventual SharePoint access still supply originals. A vector index cannot fetch inaccessible sources or bypass admin approval. Keep one mail sync owner.
- Search: a replaceable derived index could combine conceptual matching with exact names/identifiers. Reuse the declared grounded-docs/Ollama experiment if it actually fits; declaration alone is not proof of ingestion support or usefulness.
- Evidence: return source-linked candidates, then read original messages/threads, documents or attachments. Semantic similarity is not confirmation of a domain requirement, and missing hits do not prove missing company knowledge.
These are responsibilities, not three new custom services. Native filesystem access remains useful to the user; semantic indexing need not replace local copies. Prefer an established tool owning extraction/index updates and a usable human/agent search interface over independently writing parsers, chunkers, refresh jobs and vector-store wrappers. Existing native agent conversations can own synthesis; no second chat UI is implied. Compare whole-workflow complexity, not just line count.
Before adopting an index, establish its source-format support, provenance, update/ deletion behavior and company-data boundary. Do not send a whole company corpus to a new embedding/search provider under the existing permission to read it. A small future comparison should ask whether meaningful relevant sources are found beyond exact keywords while exact identifiers remain retrievable; no broad evaluation framework or exhaustive corpus ingestion is selected.
Bounded primary-source assessment:
| Candidate | Useful existing capability | Material limit / disposition |
|---|---|---|
| Declared Grounded Docs + Ollama | modules/capabilities/ai.nix:72 declares local nomic-embed-text; line 82 pins docs-mcp-server 2.4.0. Upstream documents full-text/semantic hybrid search and common local document formats. |
No company source mount/library, refresh schedule or Codex MCP entry is declared; no successful pilot is recorded. Mailbox formats/thread semantics are not advertised. Investigate reuse for semantic document retrieval; do not call this a ready company search system. |
| Recoll | Maintained local full-text index with native Thunderbird mbox, attachments and common document formats, plus CLI search. Could replace custom mailbox handling. | Official docs do not establish vector/semantic similarity. It is a credible simpler baseline, not fulfillment of semantic discovery by itself. Do not deploy a second permanent index by default. |
Evidence: Grounded Docs pinned README, search configuration, Recoll formats, Recoll CLI, incremental indexing.
Recommendation remains the capability, not a database: source-linked hybrid retrieval with maintained ingestion, if its benefits justify the total machinery. A bounded local-only comparison on a small sample of company mail and model documents could establish whether semantic matches materially help the user's questions and whether the simpler full-text route is sufficient. Temporary sample conversion is an experiment, not acceptance of a permanent custom mail adapter. Indexing/embedding that sample requires new user authorization; no pilot has run. Do not index inaccessible SharePoint content, upload a company corpus to a new provider, launch a general evaluation harness or replace the existing tool yet.
The user authorized A/B and accepted test write-capable credentials for read-only operations. Production permission/isolation remains deferred. Database certificate identity and SharePoint consent apply to later capabilities, not to the Kubernetes source-map preparation. Their absence must not be reported as resolved by this design.
Agent popup is deferred; a predefined system chooser is rejected. Use existing Herdr spaces and ordinary folder navigation. Learn during use: conversation lifetime, what findings deserve retention, domain organization, recurring refresh cadence, Dadbod interaction and which history signals improve workflow. These are intentionally open, not unanswered prerequisites. Native sessions and an editable source map provide the initial path.
The independent audit and its follow-up covered the clarified live-discovery architecture. Material findings are resolved: no live write probes, scoped Kubernetes permissions, isolation from all out-of-scope authority, bounded source mapping, small independent slices and replaceable observations. Coverage checking accounted for all 70 agenda bullets; whitespace checking passed. No configuration tests or live-service checks were run for this planning-only deliverable.
Implementation goal (authorized; follow the working agreement above):
Implement tranche A/B from
docs/plans/workflow-phase-two.md: add the company source/capability map and one documented native discovery route for a single namespace in the existing test Kubernetes target, and independently implement the native Neovim wrapping/movement/completion ergonomics. Preserve current owners and use existing tools. Test write-capable credentials are allowed, but issue only read operations against the explicit test scope without loading aggregate credentials. If access is unavailable, deliver the source map/command design, mark the runtime pilot blocked, and complete the independent editor work. Defer production access until all agent-accessible production credentials are confirmed read-only. Never probe writes, change company services, expose secret values, modify remotes, or activate a NixOS or Home Manager generation. Keep changes local to NixOS configuration and workbench documentation/tooling; service repositories are read-only. Verify the acceptance criteria above and report exactly what passed, what needs user activation or company access provisioning, and the next smallest useful capability.