{"vibecode":{"doc":"v1_design_decisions_log","role":"consolidated index of design decisions made during V1 planning; not a spec — pointers to where each decision is canonically documented","status":"living document — append new decisions as they land","format":"one row per decision: short statement + canonical doc reference"}}
This page is an index of decisions, not the spec itself. Each row captures a decision in one line and points to the canonical doc where the full context lives. When two specs disagree, the canonical location wins; this log is just a finder.
Drinian's Aslan state hash holds a single call_stack field with one top_level frame carrying role + chain. No top-level current_role or chain — those are derived from the top frame. Later slices grow the hash without changing shape.
$class.implements?($other_class) ships in V1.0 — class-level structural API conformance check, runtime, no separate interface concept. Cheap (no new data structures; reads existing class metadata). Subset form via methods: [...] kwarg; malformed subset raises.
VSCode extension (codename Molly) is a thin client — syntax highlighting, static hover for keywords/sigils, language config, custom file icon. No LSP, no in-extension parser, zero Caspian-install dependency. Snippets and caspian fmt shell-out deferred to post-V1 Ideas. Spec lives in this repo; implementation in caspian-vscode.
LSP (Language Server Protocol) deferred to post-V1. Spec and build plan parked at documentation/ideas/lsp/ and documentation/ideas/lsp-build/. Reason: V1 LSP would require a local Caspian install for every editor user, which conflicts with the "first contact" goal and Miko's remote-development workflow.
tests/caspian/ reorganized: existing pipeline tests under v00/; Aslan tests under v001/. Renames to ashley//aslan/ deferred to each slice's first edit.
Pre-spec → canonical realignment plan, slice by slice. Each slice's "Step 1: Inventory" enumerates what it realigns. Cumulative plan is implicit, not yet written as a single chart.
Caspian regex syntax surface (PCRE-like compiled to LPeg vs native LPeg syntax). regexes.md § Pattern syntax.
Variable read materialization — {"var": "foo"} in non-receiver position. Sketch exists in caspianj.md assignment section; engine.materialize specifics TBD.
v00//v001/ test-dir renames to ashley//aslan/. Deferred to each slice's first edit.