Drydock Development Log — 2026-06-11 to 2026-06-17
Drydock work from 2026-06-11 to 2026-06-17 covers the SAIL methodology adoption, the Arrange-phase analyze and plan create pipeline, QuarterDeck redesign, and canonical specification consolidation.
This log covers Drydock work recorded from 2026-06-11 to 2026-06-17. The period establishes the SAIL delivery methodology, implements the Arrange-phase pipeline around drydock analyze and drydock plan create, and redesigns the QuarterDeck console around a configuration-driven index with file-existence visibility. The canonical specification is restructured repeatedly to match the shipped command surface, and the week closes with an Artifact Feed Matrix that makes every artifact's producer and consumer an explicit contract.
Milestones
- 2026-06-11 — QuarterDeck command-status report. QuarterDeck derives a live command-readiness and consistency report exclusively from configured Markdown Core Docs. Soundings remains the sole command-status authority; QuarterDeck provides a read-only projection without inspecting implementation or plan artifacts.
- 2026-06-11 — Build plan inspection commands.
drydock plan showanddrydock build statusare implemented over a shared canonical build-plan parser with dependency-aware runnable-frontier calculation. Read-only plan inspection is the lowest-risk useful slice beforedrydock buildand establishes a tested execution contract without LLM calls or state mutation. - 2026-06-11 —
drydock plan init. The command creates and updates the Blueprint planning intent inventory so curated plan ordering can begin before plan generation is implemented. - 2026-06-11 — Executable Planning Session foundation. Markdown intake, source-aware plan initialization, draft executable plan generation, optional feature hierarchy, approval-gated frontier, target-local QuarterDeck projection, and authoritative whole-plan decisions are implemented and verified. This establishes the intake-to-approved-frontier loop needed before
drydock build. - 2026-06-11 — QuarterDeck UI improvements. Six changes from live testing land in one batch: nav status icons, YAML frontmatter stripped before Markdown render, Soundings headings rendered as clickable tabs, compact Ship's Log badge display, a completion checkmark on finished questionnaires, and link items opening directly in a new tab.
- 2026-06-11 — QuarterDeck document type, sources scanning, and archive/unarchive. A tabbed document type collapses Markdown, HTML, and PDF variants into one item; glob-based source rules auto-discover files with explicit items taking priority; archive and unarchive become a database-backed toggle that never rewrites the authored console configuration.
- 2026-06-12 —
drydock run quarterdeck. The command starts the QuarterDeck server, with the port resolving from a--portoption, then thequarterdeck_portconfiguration key, then a default of 8080. It replaces the repository-bound launch script with a CLI command consistent with the installable package architecture. - 2026-06-12 —
drydock document assemble. Documentation assembly is surfaced through the standard command surface, deprecating the prior shell-script pipeline. - 2026-06-13 —
drydock statusworkspace dashboard and init identity fields.drydock statuswith no arguments enumerates all targets in the workspace with SAIL phase, detail, and concrete next steps.drydock initwrites display-name and short-description identity fields and accepts matching flags. - 2026-06-13 — Three-log taxonomy. Drydock separates an operational run log with automatic rotation, a workspace-level command history log, and the Ship's Log decision record, all in one logs directory. A
--debugflag routes function-entry traces to stderr through the logging system rather than print output. - 2026-06-13 —
drydock importall formats. Source import (stack detection, source collection, Blueprint file writing), Spec Kit import (discovery, LLM translation, conversion report), and automatic format detection are implemented, completing the Arrange-phase import capability required by the specification. - 2026-06-13 — Document ideas render as callouts.
drydock document assemblerenders ideas titles and bullets with compact callout styling and supports inline emphasis markup, so highlighted core ideas stand out without consuming excessive page space. - 2026-06-13 —
drydock survey. The command scores each command against per-command acceptance criteria, computes deterministic five-dimension scores, appends a scores ledger, and renders a scoreboard, with flags for LLM scoring, criteria regeneration, command filtering, and raw output. This provides a self-iterating quality loop with reproducible scores and actionable fixes. - 2026-06-13 —
drydock analyzeimplemented. The analyze command replaces its CLI stub with a working implementation and a dedicated test suite. Analyze is the first step of the Arrange pipeline: read-only Blueprint evaluation that writes analysis artifacts beforedrydock plan createruns. - 2026-06-15 — Analyze pipeline redesign.
drydock analyzeis rewritten around a six-role Scrum team persona, an analysis artifact with a Blocked/Questions/Ready quality signal and story list, unpopulated-Compass detection, forward-only lifecycle state, a Captain's Chair template, and a manifest work graph with frontier calculation and a story cap. The ratified design has the LLM propose and the human ratify. - 2026-06-15 — QuarterDeck nav, routing, and page header redesign. Home-based section routing surfaces pending items in Actions regardless of declared section; nav icons become two-state boxes; pages gain a standard header with title, filename, and Approve button; documents render in a single format by priority; and the layout consolidates to four sections. Rejection keeps an item pending rather than introducing a rejected state.
- 2026-06-15 — Prompt review workflow.
drydock prompt reviewevaluates prompt contracts against the specification, matching design notes, and consumer contracts, with deterministic scoring and archived review artifacts replacing ad hoc chat reviews. - 2026-06-17 — Validation benchmark scaffold. A repository-local validation harness ships with three benchmark cases, deterministic scoring, and report aggregation, giving Drydock executable fixtures and machine-readable evidence instead of prose-only review.
Changes
- 2026-06-11 — JSONL-only Ship's Log persistence. Material decisions and milestones are stored only in the JSONL Ship's Log and rendered through QuarterDeck. A generated Markdown copy was rejected because it duplicates canonical state and can drift.
- 2026-06-11 — Specification and Soundings as development authorities. The canonical Drydock specification is the sole approved behavior authority and Soundings is the authoritative implementation acceptance checklist, both exposed through QuarterDeck. A single current specification removes competing behavior authorities, and stateful Soundings rows make acceptance evidence explicit and reviewable.
- 2026-06-11 — Deployed Ship's Log capture deferred. Drydock's own injected agent process is the proving ground for automatic decision capture; standard target-project deployment waits until the decision backend and workflow are validated, so an unproven contract is not hardened.
- 2026-06-11 — Standard QuarterDeck product-owner artifacts. Commander's View (orientation), Soundings (acceptance-criteria checklist), and Sea Trials (objectives and success criteria) become methodology-wide standards pinned in Core Docs, with a terse-pages principle. Soundings covers implementation acceptance; Sea Trials covers strategic outcomes.
- 2026-06-11 — Section-move control added, then superseded. A per-page dropdown that moves items between QuarterDeck sections under a pin-core rule is added, then removed the same day: runtime rewrites of the authored console configuration conflict with version control, and a database-backed archive/unarchive toggle that never touches the config is the cleaner pattern.
- 2026-06-11 — QuarterDeck YAML config and five-section information architecture. The QuarterDeck index moves from JSON to a YAML configuration with five canonical sections — Drydock Core (pinned), Build Plan, Action Items, Project Pages, and Archive — with nav order, labels, and collapse state all config-driven, eliminating hardcoded section constants.
- 2026-06-11 — Planning Session approval as the sole plan gate. The planning workflow is import, target plan creation, QuarterDeck approval, then build status. Public plan lifecycle subcommands were rejected because they obscured the stakeholder approval workflow and mixed executable target state with authoritative Blueprint specifications.
- 2026-06-11 — Setup and project planning workflow defined. The canonical specification begins with Setup, then a precise Planning Session that imports, analyzes, reviews configuration, optionally conforms, creates one draft plan, orders and groups work, validates, and approves it, making failures diagnosable by stage.
- 2026-06-12 — Canonical specification sections reorganized. The specification is reordered around Rigging, QuarterDeck, Ship's Log, typed specifications, workflows, and Spec Kit compatibility, presenting foundational contracts before workflows and removing a redundant reference section.
- 2026-06-12 —
drydock initas target-only baseline scaffolding. The sole init syntax isdrydock init <Target>, creating a specification-independent Target baseline and runnable QuarterDeck while preserving existing files. Specifications enter Drydock through import and conformance workflows rather than initialization. - 2026-06-12 —
quarterdeck_portconfiguration key. The QuarterDeck port is configurable throughdrydock config setand visible throughdrydock config show, validated as an integer, so the port does not require a flag on every launch. - 2026-06-12 — Canonical CLI catalog normalized. Duplicated and stale command tables are replaced with one boxed CLI catalog; planning, build, and change phases are clarified; nonexistent commands are removed; and Soundings is aligned with the implemented public surface.
- 2026-06-12 — Specification restructured around the Setup-Plan-Build-Iterate lifecycle. Workflows move into their owning phase or capability sections, duplicate compaction passages merge, stale references are corrected, and all diagrams normalize to one canonical six-class standard. The specification must read as one lifecycle with exact command syntax, since it is the document Drydock is built from and the product's case for superseding Spec Kit.
- 2026-06-12 — Current-directory QuarterDeck launch.
drydock run quarterdeckwith an omitted Target launches the current directory's QuarterDeck, and baredrydock rundisplays valid run help, since a parent command with implemented children must not report itself as unimplemented. - 2026-06-12 — Orientation artifact renamed to Captain's Chair. The standard QuarterDeck orientation page is renamed from Commander's View to Captain's Chair across the reference console, target initializer, templates, specification, and acceptance evidence.
- 2026-06-12 — Soundings as a calculated acceptance ledger. Narrative sections and stored summary counts are replaced with one generic acceptance ledger; QuarterDeck calculates totals deterministically, and target initialization and planning create and preserve the standard artifacts the specification promises.
- 2026-06-12 — Canonical files protected from accidental deletion. The canonical specification, development contract, and documentation graphics deleted by an accidental broad commit are restored, and a fail-fast commit-time guard blocks their deletion before mutating hooks run.
- 2026-06-12 — Blueprint collapsed into the Target tree. The separate blueprints root is eliminated; every project artifact lives under one self-contained Target, with the Blueprint as a named subtree and human-authored files at the Target root. The manifest folds into the target metadata file,
drydock importgains a Target argument, andstatusreplacesvalidateas the user-facing term. - 2026-06-12 — SAIL adopted as the delivery methodology. Drydock's four delivery phases are named Set Up, Arrange, Implement, and Loop; the authoritative specification reorganizes around them, and Manifest is reserved for the accepted executable build plan. SAIL gives the lifecycle a memorable name while preserving precise CLI commands.
- 2026-06-12 — Agent contract consolidated. Two standing process documents fold into the single always-loaded agent contract file, keeping them in the cached prompt prefix so long sessions do not re-read them after every compaction.
- 2026-06-12 — Automatic protection hooks removed. Both canonical-file protection layers and the automatic pre-commit hook are removed; quality checks remain explicit commands. The automatic stash-and-restore behavior was inappropriate with multiple agents sharing one working tree.
- 2026-06-13 — INTENT renamed to COMPASS;
drydock iteraterenamed todrydock refit. COMPASS is the correct nautical term for the direction-setting document, and refit aligns the verb with the canonical SAIL Loop Refit concept. The specification, Rigging contract and template, source, and tests update together. - 2026-06-13 — Minimal shared-directory concurrency rules. Agents preserve concurrent writers' changes, retry Git-state conflicts, commit only their active task, and serialize direct edits to the authoritative specification through one active writer, in place of hooks, worktrees, or patch queues.
- 2026-06-13 — QuarterDeck index renamed; tickets artifact relocated. The QuarterDeck index artifact takes product-specific naming, and the ticket board is defined as a target-root artifact parallel to the scorecard rather than a QuarterDeck-owned state file.
- 2026-06-13 — Blueprint argument dropped from all CLI commands. Commands that took both Blueprint and Target now take only Target, with the Blueprint name resolved from target metadata, removing a positional argument that was always redundant in practice.
- 2026-06-13 — Single depends-on edge syntax. Every node type in the work graph declares its needs with one depends-on syntax on the dependent node. A second gating syntax was rejected so the frontier algorithm walks uniformly from leaf to root with no parser special cases.
- 2026-06-13 — Console actions are CLI commands. Every QuarterDeck console action maps to a
drydockCLI verb; the console is a thin GUI over the command surface, keeping every action scriptable and testable without a browser. - 2026-06-13 — Boundary between analyze and plan create.
drydock analyzedoes top-level assessment only — shape, coverage, questions, recommended routes — whiledrydock plan createperforms the full agile decomposition with scrum guardrails and integrity validation. Running the expensive decomposition before the product owner ratifies the shape wastes cost. - 2026-06-13 — Blueprint section headings shortened. The Blueprint prefix and Section suffix are dropped, leaving Acceptance Criteria, Guardrails, and Open Questions, since the longer names are redundant inside a Blueprint file.
- 2026-06-13 — Three paths seed the Blueprint Compass. A QuarterDeck editable Compass tab, a
drydock importformat flag, and a documented manual path via the Rigging template all write the same destination, giving the product owner at least one friction-free way to create the blocking artifact fordrydock analyze. - 2026-06-14 — Analyze produces its full artifact set in one LLM call. One call emits the analysis, Sea Trials, Soundings, the Compass if absent, four fixed spike questionnaires, and variable spikes via delimited output blocks; a deterministic parser writes each file so the LLM never controls file I/O. A two-call design was rejected for token cost and latency.
- 2026-06-14 — Sea Trials and Soundings seeded by analyze, not init. Files appear when real content is available rather than as empty shells;
drydock initcreates only the baseline identity and console artifacts. - 2026-06-14 — QuarterDeck hides items with absent backing files. Sidebar items whose backing file does not exist are filtered from navigation and reappear automatically when the file is created, so workflow stage is signaled entirely by file existence with no config rewrites.
- 2026-06-15 — Two-altitude decomposition.
drydock analyzeproduces a story list with high-level acceptance criteria (Sprint Planning Part 1);drydock plan createdecomposes each story into typed specification files (Sprint Planning Part 2). Analyze is cheap and iterative; plan create runs once against a de-risked story list. - 2026-06-15 —
drydock approveretired. Runningdrydock plan createis the explicit approval gesture, with the Ready quality signal on the analysis as the readiness indicator. A separate approval command added ceremony without safety. - 2026-06-15 — Scrum team persona for analyze. The analyze prompt plays all six team roles before synthesis, emits a Ready/Questions/Blocked quality signal, distinguishes blockers from carried-forward questions, and offers Rigging-derived concrete options in technology questionnaires.
- 2026-06-15 — Captain's Chair as self-contained HTML with lifecycle state in metadata. Each command fills a Rigging HTML template and writes the Chair forward-only; lifecycle state advances along a fixed ladder in the target metadata file, so commands never regress the display.
- 2026-06-15 — SAIL cover layout in the documentation renderer. Documentation assembly supports a dedicated cover section with oversized S, A, I, and L letterforms paired to grouped copy, which the generic ideas cards could not express cleanly.
- 2026-06-15 — Import seeds only root identity.
drydock importno longer copies the typed-spec template corpus into the Blueprint; after import the Blueprint contains only sources, with the Compass produced by analyze and typed spec files produced by plan create, matching the source-of-truth model. - 2026-06-16 — SAIL Phase 2 specification clarified and import restored. The Phase 2 section presents analyze, QuarterDeck review, and plan creation in execution order, clarifies that questionnaires and spikes are driven by actual unresolved decisions, and restores
drydock importas the intake boundary after an accidental omission. - 2026-06-16 — Import compass format renamed. Stale references to the old intent format flag are replaced with
--format compass; the specification must use the actual command surface consistently. - 2026-06-16 — No ticket board at init.
drydock initno longer seeds the ticket board; plan creation is the sole writer, so the kanban board obeys file-existence visibility and stays hidden until executable work exists. - 2026-06-16 — Analysis surfaced as a tabbed QuarterDeck Core artifact. A file-existence-gated item renders the analysis file's sections as switchable tabs using an existing config-driven rendering capability, giving the analyze stage its own navigable surface alongside the Captain's Chair scoreboard.
- 2026-06-16 — Plan create becomes LLM-driven Blueprint authoring. A single LLM call authors the typed Blueprint spec files per the analyze story map, emits the single build-ordering file and a draft Manifest, with module-side parsing and a deterministic integrity gate, replacing a deterministic generator that neither authored specs nor ran the prompt.
- 2026-06-16 — One definition for the build-ordering file. The build-ordering artifact is an ordered list of authored spec file names delimited into no-cross-stack build batches, emitted by plan create and consumed by build, superseding a conflicting curated-inventory definition.
- 2026-06-16 — Analyze spikes constrained to human-owned decisions. An ownership test permits a spike only for decisions the team cannot make from the sources; acceptance criteria, success evidence, smoke checks, and build gates become synthesized outputs rather than questions posed to the human.
- 2026-06-16 — Standing-directive feedback loop. Analyze and plan create each export a persistent, human-owned feedback file re-injected near the top of the prompt on every run; the old build-configuration artifact is retired, and plan create becomes a clean regenerate with no state merge, since non-deterministic LLM output makes id-keyed state preservation unreliable.
- 2026-06-17 — QuarterDeck specification synced to the ratified console model. The canonical specification adopts the implemented configuration-driven console: the blockers, core, actions, docs, and archive taxonomy, home-based routing with two-state icons, the editable page type, the standard page header, and the tabbed Analysis artifact, with the lagging seed template reconciled to match.
- 2026-06-17 — The Commander established as the canonical operator persona. The specification defines The Commander as the product-owner persona that directs the build and writes in third-person present tense throughout, resolving mixed marketing and tutorial voice.
- 2026-06-17 — Artifact Feed Matrix. A files-by-commands matrix declares, for every workspace artifact, which command produces, consumes, gates on, or produces-if-absent it, applied at the top of the specification's Workspace Layout section. An artifact is only worth keeping if it feeds a command, and the explicit contract prevents ghost artifacts and stray injections.
- 2026-06-17 — Agent inputs declared in prompt contracts. Each LLM-assisted command declares its consumed artifacts and their injection order in an ordered, Compass-first inputs row in its prompt contract, derived from the Artifact Feed Matrix, so re-routing an input is a configuration edit rather than a code change.
- 2026-06-17 — Buttonless questionnaires with autosave. QuarterDeck questionnaires drop resolution buttons; a question is answered exactly when its field holds text, answers autosave on field blur so tab switches never lose data, and only answered fields feed downstream work.
