Watch
1
0
Fork
You've already forked souveraine
0
souveraine/docs/tasks/souveraine-lock-primitives-session-prompt.md

46 lines
2.2 KiB
Markdown

# Next session — Souveraine-owned AGPL lock primitives
> Paste this into the next session as the opening message. It is orders, not
> a draft. Related task doc: `docs/tasks/souveraine-lock-primitives.md`.
---
We're building the Souveraine-owned lock surface. Read
`docs/tasks/souveraine-lock-primitives.md` first — it's the full spec:
dependency set, the primitive tiers, the build order, done-when criteria.
## Non-negotiables (do not re-litigate)
1. **SouveraineOS, not ii OS.** Cut the cord from ii by **rewriting**, never
vendoring. ii files inherit GPLv3; we will not ship ii-derived files.
Every primitive is original Souveraine AGPL, Casey as copyright holder.
2. **Build the end goal, not v1/v2.** No borrowed-widget bridges. The lock
may not compile or may miss a subcomponent while the owned primitives
are built — that's preferable to a single compromise. Full AGPL lock
dep graph is the target.
3. **ii is behavioral reference only.** Read how ii's widget behaves (on the
phone at `~/.config/quickshell/ii/modules/common/widgets/`, `ssh pixel`);
do not copy. Write fresh.
4. **No subagents for this.** Write the code in the main conversation.
5. **No mid-session paperwork** beyond the task doc that already exists.
Don't write PLAN.md / handoffs / memory unless asked.
6. **Don't run build/test loops as the model if you're Opus.** Verify once
with the real build.
## Start here
Tier 0 (`Appearance` / `ColorUtils` / `Translation`) — nothing compiles
without them, and `Appearance` is where the Souveraine lock palette gets
defined (retire the scattered `#d9ffffff` etc. literals). Confirm the
target path (`modules/souveraine/widgets/` unless Casey says otherwise),
then Tier 0 → Tier 1 (`StyledText`, `MaterialSymbol`, `MaterialShape`,
`ErrorShakeAnimation`) → Tier 2 (`RippleButton`) → Tier 3 (`AmbientCard`,
`PinDots`, `LockKeypad`, `LockUtilityRow`, `LockReveal`) → rewire
`TouchLockSurface.qml` + the two cards → manifest lines → deploy.
Behavior reference on the phone: ii widgets at
`~/.config/quickshell/ii/modules/common/widgets/`; Phosh lockscreen at
`~/build/phosh/src/lockscreen.c` + `ui/lockscreen.ui` (swipe-capture model,
shake midpoint-crossing termination — implement in QML, do not port).
Go.