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

2.2 KiB

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.