Files
lux/docs/plans/workflow-system.md
T
2026-09-06 04:03:54 +02:00

116 lines
5.7 KiB
Markdown

# Workflow system execution
Source: [`../workflow-discovery.md`](../workflow-discovery.md)
The declarative workflow implementation is complete. This file is the living
handoff for operational constraints and external gates; implementation history
is available in Git.
## Activation boundary
Only the user may switch or activate configurations. Agents must not run
`nixos-rebuild switch`, Home Manager activation, or an equivalent command that
changes the active generation. Evaluation and builds are allowed; after a
successful build, provide the exact activation command and wait for the user.
This boundary includes changes described as user-level, harmless, temporary, or
necessary for live verification. A direct Home Manager activation previously
restarted Kitty and closed the user's terminal session.
## Execution discipline
- Advance all safe independent work before asking the user to act.
- Batch declarative changes behind user-controlled activation.
- Consolidate empirical, credential, hardware, and approval gates only after no
autonomous work remains.
- Keep repositories and worktrees outside `~/sync`; synchronize authored
artifacts instead.
- Keep GitHub and other repository remotes strictly read-only.
## Current checkpoint
- State: declarative implementation and autonomous verification complete.
- Branch: `chore/workflow-system`.
- Validation: `nix flake check --no-build --quiet` plus no-link Zenith and Orion
system builds passed on 2026-09-06 after Orion became the sole transcription
owner. The expected dirty-tree and unknown `modules` warnings were emitted.
- Live state: Walker project and terminal actions, daily notes, stable web apps,
Evolution D-Bus activation, the Zenith VPN, invocation-scoped GitHub and
Context7 credentials, Pinta, and Orion transcription passed their completed
pilots.
## External or deferred gates
These gates do not block work on each other.
- During a docked Zenith session, capture the external display's stable identity
and test the two-output `Super+A` exchange. The current recorded session exposed
only `eDP-1`.
- Resume Evolution only when the user chooses to configure the personal,
old-personal, university, work, and Radicale accounts. Keep Thunderbird and
Outlook until the daily-use gate passes.
- On Android, complete the DAVx5/Radicale and Tasks.org pilots, including default
accounts, recurrence, reminders, and Microsoft To Do within documented limits.
- Supply one real Yookr S3 task, a least-privileged remote, and explicit permission
for any upload. `rclone` is installed; no remote or wrapper is preconfigured.
- Deploy a GET image exposing `/full-api-docs/openapi.json`, then rerun
`just openapi-refresh test`.
- Provide current API user credentials before the planned login and harmless
administrator read. The recovered legacy service credentials returned 401 and
were not repurposed.
- Add workbench database connections and a Marimo-to-HTML report only when a real
cross-system investigation gives them durable value.
- Keep Bruno, DBeaver, and PIM clients until their separate pilots decide them.
- Wait for a real Monday ticket before adding anything beyond native GitHub,
Herdr, Git, and worktree workflows.
## Deferred Polaris replication
Do not access or test Polaris unless the user resumes this deferred replication.
Zenith's result remains representative meanwhile.
1. Activate this NixOS configuration so `networkmanager-openvpn` is installed.
2. Restrict `~/sync/yookr-vpn.ovpn` to mode 0600.
3. Import it with `nmcli connection import type openvpn file ~/sync/yookr-vpn.ovpn`.
4. Rename the connection to `Yookr VPN`, disable autoconnect, and add
`data-ciphers=AES-256-CBC`.
5. Connect with `nmcli connection up "Yookr VPN"`.
6. Create mode-0600 `~/.config/yookr/github-read-only.token` without a trailing
newline, then verify a new shell can run
`gh project list --owner yookrdev`.
7. Create mode-0600 `~/.config/context7/api-key` without a trailing newline,
restart Codex after activation, and run one Context7 lookup.
## Durable implementation decisions
- Active work repositories live under `~/dev/work`, archives under `.archive`,
and worktrees under `.worktrees`. Repository trees never enter Syncthing.
- Participating repositories expose non-mutating direnv shells, minimal flake
checks, native commands through `just`, concise `AGENTS.md`, and machine-local
credential inputs.
- `yookr-workbench` starts with cross-system work only; isolation and additional
tools wait for observed needs.
- Walker's native Elephant menu scans repository roots and calls one Nix-owned
`open-project` command. Rare menu changes take effect at login.
- Kitty and Neovim are the sole declared terminal and editor. Retired duplicate
applications and global language runtimes stay absent unless a concrete owner
appears.
- The fine-grained GitHub token and Context7 key stay in mode-0600 machine-local
files and are exposed only to their callers. Secrets do not enter Nix or broad
process environments.
- `sync/notes` is the single notebook owner. Daily notes, meetings, and raw
transcripts have separate paths, and agents do not create issues or ingest
transcripts automatically.
- Orion is the sole transcription owner. It waits for file settlement, validates
media, archives originals, and publishes an unlabeled transcript when
diarization fails.
- Evolution remains a deferred presentation-layer pilot. Microsoft 365 and
Radicale remain the data authorities; Thunderbird and Outlook remain available.
- GitHub and every other repository remote stay read-only. Local files, commits,
fetches, clones, and worktrees remain available.
## Next step
Continue an external pilot only when its real input arrives. Otherwise no workflow
implementation action remains.