Files
alkvault/docs/architecture/open-questions.md
T
glm-5.3-flash 8e01fce5de docs: remove em dashes from prose across the repo
Adds the alk-family "no em dashes in prose" convention (as AGENTS.md
convention 10, mirroring alktty/alktunnels/alksocks) and rewrites the
existing prose to comply: markdown docs under docs/ (ADRs, spec docs,
OQs, sdd_process), README.md, CHANGELOG.md, Rust doc and inline
comments under src/, AGENTS.md, and the agent prompts under
.opencode/agents/. Punctuation substitutes are varied (colons,
parentheses, commas, semicolons, sentence splits); wire data, JSON
examples, and code identifiers are untouched. Prose-only change; no
code, API, or wire-format changes.

Also:
- ADR-021: add a historical note that the embedded code snippets
  predate review 001 (decrypt now returns Zeroizing<String>); the
  snippets are intentionally preserved as the decision record
- protocol.md: align the DerivedKey deserialization error snippet with
  the current error string in src/protocol.rs
- docs/reviews/ is exempt per convention 10 (archived review records)

Verification:
- grep for em/en clause dashes over docs/, src/, tests/, README.md,
  CHANGELOG.md, AGENTS.md, .opencode/agents/: clean (docs/reviews/
  exempt)
- cargo test --all-features: 108 passed, 0 failed
- cargo test: 101 passed, 0 failed
- cargo clippy --all-features --all-targets: clean
- cargo doc --no-deps --all-features: clean
2026-11-04 06:43:36 +00:00

3.6 KiB

status, last_updated
status last_updated
draft 2026-08-02

Open Questions

Each open question lives in its own file under questions/, named NNN-slug.md (mirroring the ADR convention). This file is the index: theme-grouped tables for scannability, plus a cross-theme Deferred / Blocked section that surfaces the safe-exit deferrals with their blocking conditions inline, so "what's currently parked and why" is answerable at a glance.

Status values:

  • open: Needs to be resolved now. Has a clear path to resolution.
  • resolved: Decided. The resolution is stated cleanly, without caveats about how it could be changed later.
  • deferred(scope): Cannot be resolved yet. The information is genuinely missing: a crate spec, POC result, or use case that doesn't exist yet. Has a concrete blocking condition. Not a failure, but scope management.
  • deferred(unclear): Cannot be resolved yet. The pieces exist (decided in other ADRs, existing types, existing patterns) but the composition (how they fit together) isn't clear yet. Resolution requires investigation (work through examples, maybe POC), not waiting. Has a concrete investigation target and an impacts field. Not a failure, just honest uncertainty in a poorly-defined problem space.
  • partially resolved: Some aspects decided, others deferred or open.
  • dissolved: The question was reframed out of existence (e.g., superseded by an ADR that retires the premise). Kept for reference.

Impacts field: Every unresolved OQ (open, deferred(scope), deferred(unclear), partially resolved) should have an Impacts field stating what it blocks downstream. Be specific: "blocks the first hub deployment because the hub dials workers" not "blocks the hub crate." This is the triage signal that makes the deferral's urgency visible.

Door type classifications describe reversal cost (how expensive it is to undo), not urgency:

  • One-way door: Reversal requires rewriting significant code or permanently closes a capability. Getting it wrong is expensive, so it requires an ADR before implementation.
  • Two-way door: Reversal is cheap or additive. Getting it wrong is recoverable: decide, implement, revert if needed.

Door type is separate from whether a decision is made. A two-way door is a decision you make now and can revert later, not a decision to defer.

Note on numbering: ADR and OQ numbers are preserved from the originating alknet repo. A subsequent pass will renumber them to a per-project sequence (001, 002, …) and update cross-references in the spec docs. Until then, the numbers reflect their alknet origin.

By Theme

alkvault

All vault open questions are resolved: the vault is a stable crate with implementation complete and verified.

OQ Title Status Door Pri
OQ-20 Salt/KDF and Encryption Key Derivation Method resolved one/two high
OQ-21 Remote Vault Administration resolved one med
OQ-22 Key Rotation Mechanism resolved one/two med

Deferred / Blocked

The safe-exit visibility surface. These questions are parked because the information needed to resolve them does not exist yet; each has a concrete blocking condition. They are not failures; they are scope management. This section exists so "what's currently blocking the architect" is answerable at a glance, not by filtering the tables above.

None: all vault open questions are resolved.